@epam/statgpt-sdmx-toolkit 0.3.0-rc.1 → 0.3.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.cjs +2 -2
  2. package/index.mjs +3652 -828
  3. package/package.json +5 -4
package/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=e=>{if(e!=null){const t=e.split("=");return t.length===1?e:t[1]}},D=e=>{if(e==null)return{};const t=y(e),n={agency:"",id:"",version:""};return t&&(t.includes(":")&&(n.agency=t.split(":")[0],n.id=t.split(":")[1].split("(")[0]),t.includes("(")&&t.includes(")")&&(n.version=t.split("(")[1]?.split(")")[0])),n},Ae=e=>{const[t,n]=e.split(")."),{agency:s,id:r,version:o}=D(t+")");return{childId:n,agency:s,id:r,version:o}},ye=(e,t,n)=>{const s=t===""?"":`(${t})`;return`${n}:${e}${s}`};var P=(e=>(e.DESCENDANTS="descendants",e.NONE="none",e.ALL="all",e))(P||{}),J=(e=>(e.EXACT="exact",e.AVAILABLE="available",e))(J||{});function St(e){return{data:{codelists:e.data.codelists,conceptSchemes:e.data.conceptSchemes,dataConstraints:e.data.dataConstraints?.map(Tt),dataflows:e.data.dataflows,dataStructures:e.data.dataStructures,metadataStructures:e.data.metadataStructures}}}function Tt(e){return{...e,cubeRegions:e.cubeRegions?.map(Rt)}}function Rt(e){return{isIncluded:e.include,memberSelection:e.keyValues.map(vt)}}function vt(e){return{included:e.include,componentId:e.id,selectionValues:e.values.map(It)}}function It(e){return{memberValue:e.value}}const wt=(e="",t="",n="")=>`sdmx/3.0/availability/dataflow/${e}/${t}/${n}`;class Pt{constructor(t){this.client=t}async getConstraints(t,n){const{agency:s,id:r,version:o}=D(t),i={filters:n||[],mode:J.AVAILABLE,references:P.NONE},a=wt(s,r,o);if(this.client.config.sdmxProxyUrl){const c=await this.client.postRequest(a,{body:i},this.client.config.sdmxProxyUrl);return St(c)}return await this.client.postRequest(a,{body:i},this.client.config.constrainsApiUrl||this.client.config.apiUrl)}}var A=(e=>(e.CSV="csv",e.JSON="json",e.XML="xml",e))(A||{}),Se=(e=>(e.ID="id",e.NAME="name",e.ID_NAME="both",e))(Se||{}),Te=(e=>(e.FULL_DATASET="full",e.DATA_IN_TABLE="query",e))(Te||{});const Re=(e,t)=>{switch(e){case A.CSV:return T("application/vnd.sdmx.data+csv;version=2.0.0",t);case A.XML:return T("application/vnd.sdmx.data+xml;version=3.0.0",t);case A.JSON:return T(`application/${e}`,t);default:return T("application/vnd.sdmx.data+csv;version=2.0.0",t)}},T=(e,t)=>`${e}; labels=${t}`;var X=(e=>(e.REFERENCE_PARTIAL="referencepartial",e.FULL="full",e))(X||{});const Nt="all",ve="sdmx/3.0/data/dataflow",Ie="&",ce=":",_t="=",we="+",bt=",",Pe="*",G=(e,t,n)=>{const{filterKey:s,timeFilter:r}=n,{agency:o,id:i,version:a}=D(e),c=[r||"",t].filter(d=>!!d).join(Ie);return`${`${ve}/${o}/${i}/${a}`}/${s||Pe}?${c}`},$t=(e="",t="",n="",s=P.DESCENDANTS)=>`sdmx/3.0/structure/dataflow/${e}/${t}/${n}?references=${s}&detail=${X.REFERENCE_PARTIAL}`;class Ot{constructor(t){this.client=t}async getDataSet(t,n){const{agency:s,id:r,version:o}=D(t);return await this.client.getRequest($t(s,r,o,n))}async getDatasetData(t,n){const s=new URLSearchParams({includeHistory:"false",limit:"1000",attributes:Nt,dimensionAtObservation:"TIME_PERIOD"}).toString(),r=G(t,s,n);return await this.client.getRequest(r)}async downloadDataSet(t,n,s,r,o,i,a=!1){const c=new URLSearchParams({format:n,compress:"false",attributes:a?"all":"none",limit:"1000"}).toString(),u=G(t,c,o);return this.client.streamRequest(u,{method:"GET",headers:{Accept:Re(n,r),"Accept-language":s}},i)}}const Ct=(e,t)=>e.error||e.message||`${t.status} ${t.statusText}`,Mt="application/json",Lt="Content-Type",B="Api-Key",Ut="X-CONVERSATION-ID",v="Ocp-Apim-Subscription-Key";class ue extends Error{constructor(t){super(t.message),this.isHttpError=!0,this.name="HttpError",this.code=t.code,this.status=t.status,this.details=t.details,this.displayMessage=t.displayMessage}}const R=e=>isNaN(Date.parse(e))?null:new Date(e),K=(e,t,n)=>{const s={[Lt]:t?.contentType||Mt};return t?.jwt&&(s.Authorization=`Bearer ${t.jwt}`),t?.chatReference&&(s[Ut]=t.chatReference),{...s,...n}},xt=e=>{const t={...e};return t[B]&&(t[B]=t[B].substring(0,8)+"...[REDACTED]"),t.Authorization&&(t.Authorization="Bearer [REDACTED]"),t[v]&&(t[v]=t[v].substring(0,8)+"...[REDACTED]"),t},de=async(e,t,n)=>await fetch(e,{method:n.method||"GET",headers:t,body:n.body?JSON.stringify(n.body):void 0}),Wt=async(e,t,n)=>await fetch(e,{method:n.method,headers:t,body:n?.isFormData&&typeof n?.body=="string"?n.body:JSON.stringify(n.body),signal:n?.signal});class Yt{constructor(){this.decoder=new TextDecoder}async streamChat(t,n,s={},r){const{onMessage:o,onError:i,onComplete:a,signal:c}=s;try{const u=await this.initializeStreamRequest(t,n,c,r);await this.processStreamData(u,o),a?.()}catch(u){this.handleStreamError(u,i)}}async initializeStreamRequest(t,n,s,r){const o=K(void 0,{jwt:r}),i=await Wt(t,{Accept:"text/event-stream",...o},{method:"POST",body:n,signal:s});if(!i.ok){const a=await i.text();let c={};try{c=JSON.parse(a)}catch{c.error="Failed to parse error body"}throw new ue({status:i.status,message:c.error??"No response body"})}if(!i.body)throw new ue({message:"No response body",status:i.status});return i.body.getReader()}async processStreamData(t,n){let s="";try{for(;;){const{done:r,value:o}=await t.read();if(r){s.trim()&&this.parseSSEDataLine(s,n);break}const i=this.decoder.decode(o,{stream:!0});s+=i;const a=s.split(`
2
- `);s=a.pop()||"";for(const c of a)this.parseSSEDataLine(c,n)}}finally{t.releaseLock()}}handleStreamError(t,n){const s=t instanceof Error?t:new Error(String(t));throw n?.(s),s}parseSSEDataLine(t,n){const s=t.trim();if(!(!s||s.startsWith(":"))&&s.startsWith("data: ")){const r=s.slice(6);if(r==="[DONE]"){console.info("SSE: Stream completed");return}let o;try{o=JSON.parse(r)}catch(i){console.error(`Failed to parse SSE data: ${r} ${i}`)}n?.(o)}}}new Yt;class Qt{constructor(t){this.config=t,console.info("SdmxApiClient initialized",{apiUrl:t.apiUrl||"NOT SET"})}async getRequest(t,n){return this.request(t,{...n,method:"GET"})}async postRequest(t,n,s){return this.request(t,{...n,method:"POST"},s)}async streamRequest(t,n,s){const r=`${this.config.apiUrl}/${t}`,o={...K(void 0,{jwt:this.config.jwt}),...n.headers};this.config.apiKey!=null&&(o[v]=this.config.apiKey);const i=new ReadableStream({async start(c){try{const u=await de(r,o,n);if(!u.ok){const g=await u.text();throw console.error(`Fetch failed! Status: ${u.status}, Body: ${g}`),new Error(`Fetch failed with status ${u.status}`)}const d=u.body?.getReader();if(!d)throw new Error("Failed to create stream reader");const l=new Uint8Array([239,187,191]);c.enqueue(l);const m=async()=>{const{done:g,value:h}=await d.read();g?c.close():(c.enqueue(h),await m())};m()}catch(u){c.error(u)}}}),a=new Headers({"Content-Disposition":`attachment; filename=${encodeURIComponent(s)}`});return new Response(i,{headers:a})}async request(t,n,s){const r=Date.now(),o=`${s||this.config.apiUrl}/${t}`,i={...K(void 0,{jwt:this.config.jwt}),...n.headers};this.config.apiKey!=null&&(i["Ocp-Apim-Subscription-Key"]=this.config.apiKey),this.addInfoRequestLog("API Request",o,n,i);try{const a=await de(o,i,n),c=Date.now()-r;let u;const d=await a.text();try{u=d?JSON.parse(d):{}}catch{if(this.addErrorRequestParsing(o,n,a,c,d),!a.ok)throw new Error(`API request failed: ${a.status} ${a.statusText} - ${d.substring(0,100)}`);u={data:d}}if(!a.ok){this.addErrorRequestLog(o,n,a,c,u);const l=Ct(u,a);throw new Error(`API request failed: ${l}`)}return u}catch(a){const c=Date.now()-r;throw console.error("API Request Exception",{method:n.method,url:o,duration:`${c}ms`,error:a instanceof Error?a.message:String(a)}),a}}addInfoRequestLog(t,n,s,r){const o={method:s.method||"GET",url:n,headers:xt(r)};s.body&&(o.body=s.body),console.info(t,o)}addErrorRequestLog(t,n,s,r,o){console.error("API Request Failed",{method:n.method,url:t,status:s.status,statusText:s.statusText,duration:`${r}ms`,response:o})}addErrorRequestParsing(t,n,s,r,o){console.error("API Response Parse Error",{method:n.method,url:t,status:s.status,statusText:s.statusText,duration:`${r}ms`,responseText:o.substring(0,200),error:"Response is not valid JSON"})}}const kt=["FREQ","FREQUENCY"];var Ne=(e=>(e.CONDITIONAL="Conditional",e.MANDATORY="Mandatory",e))(Ne||{}),N=(e=>(e.DIMENSION="Dimension",e.MEASURE_DIMENSION="MeasureDimension",e.TIME_DIMENSION="TimeDimension",e))(N||{}),_e=(e=>(e.UNBOUNDED="unbounded",e))(_e||{});const be=(e,t)=>{const n=e?.data?.dataSets?.[0],r=e?.data?.structures?.[0]?.attributes?.dimensionGroup||[],o=n?.dimensionGroupAttributes,i={};for(const a of r){const c=a.relationship.dimensions,{codedSeriesKey:u,decodedSeriesKey:d}=Z(e,t,c);i[a.id]={values:o?.[u]||[],decodedSeriesKey:d,codedSeriesKey:u}}return i},Z=(e,t,n)=>{const s=e?.data?.structures?.[0],r=[...s?.dimensions.series||[],...s?.dimensions.observation||[]],o=new Array(r?.length),i=new Array(r?.length);return n?.forEach(a=>{const c=r?.findIndex(l=>l.id===a)||0,u=t[c],d=r[c].values.findIndex(l=>l.id===u||l.value===u)||0;o[c]=d>=0?d:u,i[c]=u}),{codedSeriesKey:o.join(":"),decodedSeriesKey:i.join(":")}},Vt=(e,t,n)=>{const s=e?.data?.dataSets?.[0],r=e?.data?.structures?.[0],o=(r?.attributes?.dimensionGroup||[]).filter(l=>l.relationship.dimensions?.length===1&&l.relationship.dimensions.includes(t||"")),i=s?.dimensionGroupAttributes,a=[...r?.dimensions.series||[],...r?.dimensions.observation||[]],c=a?.findIndex(l=>l.id===t),u=new Array(a?.length);u[c]=n||"";const d={};for(const l of o){const m=l.relationship.dimensions,{codedSeriesKey:g,decodedSeriesKey:h}=Z(e,u,m);d[l.id]={values:i?.[g]||[],decodedSeriesKey:h,codedSeriesKey:g}}return d},$e=(e,t)=>{if(t==null)return;const n=e.values?.[t];return n??(t instanceof Array?{values:t}:{value:t.toString()})},Oe="Observation",Ft=e=>{const t=e?.data?.dataSets,n=e?.data?.structures?.[0];if(!t||!n)return[];const s=n.attributes,r=n.dimensions,o=s?.dimensionGroup||[],i=t[0].series||t[0].observations,a=r.series?.length?r.series:r.observation,c=[];for(const u in i){const d=[],{name:l,parsedTimeSeriesValue:m}=Ce(u,a),g=i[u],h=g.attributes||[];if(Object.keys(g).length===0){c.push({name:l,parsedTimeSeriesValue:m,values:d,attributes:[],dataSetAttrs:[]});continue}d.push(...Bt(g,n));const k=I(s?.series||[],E=>h[E]),V=Gt(n.attributes?.dataSet||[],t[0].attributes?.filter(E=>E!=null)||[]),F=be(e,m),q=o.map((E,At)=>{const ae=F[E.id],yt=$e(E,ae.values[At]);return{attribute:E,dimensionGroupValue:yt,dimensionGroupData:ae}});c.push({name:l,parsedTimeSeriesValue:m,values:d,attributes:k,dataSetAttrs:V,dimensionGroupAttributes:q})}return c},Ce=(e,t)=>{const n=e.split(new RegExp("(?<!\\|):(?!\\||$)")),s=[];for(let r=0;r<n.length;r++){const o=t?.[r],i=Number(n[r]);if(i<0||o==null)continue;const a=o.values[i];if(a==null){s.push(n[r].replace("|:",":"));continue}s.push(a?.id||a?.value||"")}return{name:Me(s),parsedTimeSeriesValue:s}},I=(e,t)=>{const n=[];for(let s=0;s<e.length;s++){const r=e[s],o=t(s),i=o!=null&&r.values!=null?qt(o,r):void 0;n.push({name:r.id,value:i})}return n},qt=(e,t)=>{const n=t.values[e];return n==null?typeof e=="object"?e:e.toString():n?.id||n?.value||n?.ids||n?.values},Me=e=>e.map(t=>t?Le(t):"").join("."),Le=e=>e.replace(/\./g,"|.").replace(/:/g,"|:"),Bt=(e,t)=>{const n=t.measures?.observation?.length;if(e.observations==null)return[{values:le(e,t.measures),obsAttributes:I(t.attributes?.observation||[],i=>e[i+n]),dimensionAtObservation:Oe}];const s=e.observations,r=t.dimensions.observation?.[0],o=[];for(const i in s){const a=r?.values[i];o.push({dimensionAtObservation:a?.value||a?.id,values:le(s[i],t.measures),obsAttributes:I(t.attributes?.observation||[],c=>s[i][c+n])})}return o},le=(e,t)=>t?.observation?.map((n,s)=>({name:n.id,value:e[s]}))||[],Gt=(e,t)=>e.reduce((n,s,r)=>{const o=t[r];return Kt(n,s,o,""),n},[]),Kt=(e,t,n,s)=>{const r=n!=null?t?.values?.length>0?t.values[n]?.id||t.values[n]?.value:String(n):s;e.push({name:t.id,value:r||""})},Ue=/^[0-9][0-9][0-9][0-9]-Q[1-4]$/,xe=/^[0-9][0-9][0-9][0-9]-W[0-9][0-9]?$/,We=/^[0-9][0-9][0-9][0-9]-S[1-2]$/,Ye=/^[0-9][0-9][0-9][0-9]$/,Qe=/^[0-9][0-9][0-9][0-9]-(0[1-9]|1[0-2])-[0-9][0-9]$/,ke=/^[0-9][0-9][0-9][0-9]-M(0[1-9]|(1[0-2]))$/,_=e=>Ye.exec(e),b=e=>!!_(e),Ve=e=>We.exec(e),$=e=>!!Ve(e),O=e=>ke.exec(e),C=e=>!!O(e),M=e=>Ue.exec(e),L=e=>!!M(e),Fe=e=>Qe.exec(e),qe=e=>!!Fe(e),Be=e=>xe.exec(e),U=e=>!!Be(e),ee=1440*60*1e3,te=7*ee;function ne(e){const t=`${e}-01-01`,n=new Date(t);if(n.getDay()!==4){const r=1+(4-n.getDay()+7)%7;n.setMonth(0,r)}return n}function jt(e){const t=new Date(e),s=-((t.getDay()+6)%7)+3;return t.setDate(t.getDate()+s),new Date(t.valueOf())}function j(e,t="W"){const n=`${e}-12-31`,s=S(new Date(n),t);if(s.weekYear===e)return s.weekNumber;const r=`${e}-12-24`;return S(new Date(r),t).weekNumber}function se(e,t,n="W"){return`${e}-${n}${t<10?"0"+t:t}`}function S(e,t="W"){const n=jt(e),s=n.getFullYear(),r=ne(s),o=1+Math.ceil((n.getTime()-r.getTime())/te);return{code:se(s,o,t),weekNumber:o,weekYear:s}}function Ge(e){const[t,n]=e.split("-W"),r=ne(+t).getTime()+(+n-1)*te-3*ee;return new Date(r)}function Ke(e){const[t,n]=e.split("-W"),r=ne(+t).getTime()+(+n-1)*te+3*ee;return new Date(r)}function re(e){return b(e)?Ht(e):$(e)?Jt(e):L(e)?Zt(e):C(e)?tn(e):U(e)?Ge(e):sn(e)}function oe(e){return b(e)?zt(e):$(e)?Xt(e):L(e)?en(e):C(e)?nn(e):U(e)?Ke(e):rn(e)}function Ht(e){const t=_(e);if(t)return new Date(Number(t[0]),0,1)}function zt(e){const t=_(e);if(t)return new Date(Number(t[0])+1,0,1)}function Jt(e){const[t,n]=e.split("-S");switch(+n){case 1:return new Date(+t,0,1);case 2:return new Date(+t,6,1)}}function Xt(e){const[t,n]=e.split("-S");switch(+n){case 1:return new Date(+t,6,1);case 2:return new Date(+t+1,0,1)}}function Zt(e){const t=M(e);if(!t)return;const[n,s]=t[0].split("-Q");switch(+s){case 1:return new Date(+n,0,1);case 2:return new Date(+n,3,1);case 3:return new Date(+n,6,1);case 4:return new Date(+n,9,1)}}function en(e){const t=M(e);if(!t)return;const[n,s]=t[0].split("-Q");switch(+s){case 1:return new Date(+n,3,1);case 2:return new Date(+n,6,1);case 3:return new Date(+n,9,1);case 4:return new Date(+n+1,0,1)}}function tn(e){const t=O(e);if(!t)return;const[n,s]=t[0].split("-M");return new Date(+n,+s-1,1)}function nn(e){const t=O(e);if(!t)return;const[n,s]=t[0].split("-M");return new Date(+n,+s,1)}const sn=e=>new Date(`${e}T00:00:00`),rn=e=>{const t=new Date(`${e}T23:59:00`);return t.setMinutes(t.getMinutes()+1),t},on=1,je=(e,t,n,s=!0,r="Q")=>{const o=[],i=t&&t>3?mn(t,s):1,a=n?Math.floor((n-1)/3):4;for(let c=i;c<=a;c++)o.push(`${e}-${r}${c}`);return o},He=(e,t,n,s="S")=>{const r=[];return(t||1)<7&&(n||12)>6&&r.push(`${e}-${s}1`),n==null&&r.push(`${e}-${s}2`),r},an=e=>Math.ceil(e/3),ze=(e,t,n="M")=>`${e}-${n}${t.toString().padStart(2,"0")}`,cn=(e,t,n="M")=>{const s=[];for(let r=t;r<=12;r++)s.push(ze(e,r,n));return s},un=(e,t,n,s="M")=>{const r=[];for(let o=t;o<n;o++)r.push(ze(e,o,s));return r},Je=(e,t,n,s="M")=>{const r=t||1,o=n==null,i=n||12;return o?cn(e,r,s):un(e,r,i,s)},dn=(e,t,n="M")=>{switch(t){case 0:return[`${e}-${n}01`,`${e}-${n}02`,`${e}-${n}03`];case 1:return[`${e}-${n}04`,`${e}-${n}05`,`${e}-${n}06`];case 2:return[`${e}-${n}07`,`${e}-${n}08`,`${e}-${n}09`];case 3:return[`${e}-${n}10`,`${e}-${n}11`,`${e}-${n}12`];default:return[]}},Xe=(e,t)=>{const n=f(t,!0),s=f(e),r=n.getFullYear(),o=s.getFullYear(),i=n.getTime()<=s.getTime()?o+on-r:0;return Array.from({length:i},(c,u)=>r+u)},f=(e,t=!1)=>{const n=ln(e,t);return n?(n.getTimezoneOffset()>0&&n.setMinutes(n.getMinutes()+n.getTimezoneOffset()),n):new Date},ln=(e,t=!1)=>{const n=Number(e);return e.toString().length!==13?t?re(e):oe(e):isNaN(n)?new Date(`${e}T00:00:00.000Z`):new Date(n)},mn=(e,t)=>t?Math.floor((e+1)/3):Math.ceil((e+1)/3),gn=(e,t)=>{const n=ge(e)-ge(t);if(n===0&&e!==t){const s=me(e),r=me(t);return s-r}return n},me=e=>b(e)?6:$(e)?5:L(e)?4:C(e)?3:U(e)?2:qe(e)?1:0,ge=(e,t=!1)=>(t?re(e):oe(e))?.getTime()||0;var x=(e=>(e.LAST_UPDATE_AT="lastUpdatedAt",e.SERIES_COUNT="series_count",e))(x||{}),Ze=(e=>(e.C="c",e))(Ze||{}),p=(e=>(e.EQUALS="eq",e.NOT_EQUALS="ne",e.LESS="lt",e.LESS_OR_EQUAL="le",e.GREATER="gt",e.GREATER_OR_EQUAL="ge",e.CONTAINS="co",e.NOT_CONTAINS="nc",e.STARTS="sw",e.ENDS="ew",e))(p||{}),et=(e=>(e.BOOLEAN="Boolean",e.DATE_TIME="DateTime",e.DECIMAL="Decimal",e.INTEGER="Integer",e.OBSERVATION_TIME_PERIOD="ObservationalTimePeriod",e.STRING="String",e.TIME="Time",e.TIME_RANGE="TimeRange",e.URI="URI",e))(et||{}),tt=(e=>(e.ANNUAL="A",e.QUARTERLY="Q",e.MONTHLY="M",e))(tt||{});function fn(e){return e?.annotations?.find(t=>{if(t.id===x.LAST_UPDATE_AT)return t})?.value}const W=(e,t)=>e?.names&&e?.names[t]||e?.name,nt=(e,t,n)=>{if(!(!e||t?.has(e?.id))&&(t?.set(e?.id,e),e?.parent)){const s=n?.get(e?.parent);nt(s,t,n)}},st=(e,t)=>{const n=new Map,s=new Map(e?.map(r=>[r.id,r]));return t?.forEach(r=>{nt(r,n,s)}),Array.from(n?.values())},rt="time_period_end",ot="time_period_start",it="TIME_PERIOD",pn=e=>{const t=e?.find(o=>o.id===ot),n=e?.find(o=>o.id===rt),s=n?.title?new Date(n?.title):null;return{startPeriod:t?.title?new Date(t?.title):null,endPeriod:s}},hn=(e,t)=>e.id.localeCompare(t.id),En=(e,t)=>e.memberValue.localeCompare(t.memberValue),Dn=(e,t)=>{const n=new Array(e.length),s=e.map((i,a)=>[i,a]);s.sort((i,a)=>hn(i[0],a[0]));const r=[...t];r.sort(En);let o=0;for(const i of s){const a=i[0];for(;o<r.length&&r[o].memberValue.localeCompare(a.id)<0;)o+=1;o<r.length&&r[o].memberValue===a.id&&(n[i[1]]=i[0])}return n.filter(i=>i!=null)},An=e=>!!e?.some(t=>t.parent),yn=(e,t,n,s,r=[])=>{let o=e||[];if(Sn(n||[],t||"")){const i=(n||[])[0].cubeRegions?.find(({isIncluded:a})=>a);if(i){const a=i.memberSelection?.find(({componentId:c})=>c===t);a?o=o.length===0?(a.selectionValues||[]).map(({memberValue:c})=>({id:c,name:c})):Dn(o,a.selectionValues):o=[]}}else r.length!==0&&(o=o.filter(({id:i})=>r.includes(i)));return An(e)&&(o=st(e,o)),o?.map(i=>({...i,name:s?W(i,s):i?.name}))},Sn=(e,t)=>e!=null&&e.length>0&&t!=null,Tn=e=>{const t=[];return e?.filters?.forEach(n=>{n.componentCode!==it&&t.push({componentCode:n.componentCode,operator:p.EQUALS,value:n.values.join(",")})}),t},Rn=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,fe=e=>{if(typeof e!="string")throw new TypeError("Invalid argument expected string");const t=e.match(Rn);if(!t)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return t.shift(),t},pe=e=>e==="*"||e==="x"||e==="X",he=e=>{const t=parseInt(e,10);return isNaN(t)?e:t},vn=(e,t)=>typeof e!=typeof t?[String(e),String(t)]:[e,t],In=(e,t)=>{if(pe(e)||pe(t))return 0;const[n,s]=vn(he(e),he(t));return n>s?1:n<s?-1:0},Ee=(e,t)=>{for(let n=0;n<Math.max(e.length,t.length);n++){const s=In(e[n]||"0",t[n]||"0");if(s!==0)return s}return 0},wn=(e,t)=>{const n=fe(e),s=fe(t),r=n.pop(),o=s.pop(),i=Ee(n,s);return i!==0?i:r&&o?Ee(r.split("."),o.split(".")):r||o?r?-1:1:0},Pn=(e,t,n)=>{Nn(n);const s=wn(e,t);return at[n].includes(s)},at={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},De=Object.keys(at),Nn=e=>{if(De.indexOf(e)===-1)throw new Error(`Invalid operator, expected one of ${De.join("|")}`)},w="+",Y=(e,t)=>{const{agency:n,id:s,version:r}=D(e),o=t.filter(c=>c.agencyID===n&&c.id===s&&!c?.version?.includes(w));if(o.length===1)return o[0];if(!r?.includes(w))return o.find(c=>c.version===r);const i=o.map(c=>c.version),a=ct(r,i);return o.find(c=>c.version===a[0])},ct=(e,t)=>{const n=_n(e,t);return n.length>0?[n[0]]:[]},_n=(e,t)=>{const n=[];return t.forEach(s=>{dt(e,s)&&n.push(s)}),n},ut=e=>{const t=e.trim().replace(/\d+\+/,"*"),[n]=t.split("*");return new RegExp(`^${n}`)},dt=(e,t)=>{const n=e.trim().replace(/\+/,"");return ut(e).test(t)&&Pn(t,n,">=")},Q=(e,t)=>{const{concept:n}=lt(e,t);return n},lt=(e,t)=>{if(e==null)return{concept:void 0,scheme:void 0};const{childId:n,agency:s,id:r,version:o}=Ae(e);if(o?.includes(w)){const i=Y(e,t);return{concept:H(i?.concepts||[],n),scheme:i}}for(const i of t)if(bn(i,r,s,o))return{concept:H(i?.concepts||[],n),scheme:i};return{concept:void 0,scheme:void 0}},H=(e,t)=>e?.find(n=>n.id===t),bn=(e,t,n,s)=>e.id===t&&e.agencyID===n&&e.version===s,$n=(e=[],t=[],n)=>{const s=n?.conceptIdentity||"",r=Q(s,t),o=y(n?.localRepresentation?.enumeration),i=y(r?.coreRepresentation?.enumeration),a=o||i;if(a!=null)return Y(a,e)},On=(e,t,n,s)=>{const r=t?.find(o=>o?.id===e?.id)?.values;return n?.filter(o=>r?.some(i=>i.id===o.id))?.map(o=>({...o,name:s?W(o,s):o?.name}))||[]},mt=(e,t)=>{const n=t?.dataStructureComponents?.attributeList,s=e?.metadataStructureComponents?.metadataAttributeList;return n?.metadataAttributeUsages?.map(r=>{const o=s?.metadataAttributes?.find(i=>i?.id===r?.metadataAttributeReference);return{...o,attributeRelationship:r.attributeRelationship,isMandatory:Number(o?.minOccurs)>0}})},Cn=(e=[],t,n)=>{const s=y(t?.conceptIdentity)||"",r=Q(s,e);return n?W(r,n):r?.name??r?.id??t?.id};function z(e){return e?.dataStructures?.[0]?.dataStructureComponents?.dimensionList}function Mn(e){return e?.data?.structures?.[0]?.dimensions?.series||[]}function Ln(e){return e?.data?.structures?.[0]?.dimensions?.observation?.[0].values.map(t=>t.value).filter(t=>t!=null)||[]}function Un(e){return e.find(t=>t.type===N.TIME_DIMENSION)}const xn=e=>{const t=new Map,n=e?.dataStructures?.[0],s=e?.metadataStructures?.[0],r=e?.conceptSchemes||[],o=e?.codelists||[];return e&&[...z(e)?.dimensions||[],...z(e)?.timeDimensions||[],...mt(s,n),...n?.dataStructureComponents?.attributeList?.attributes||[]].forEach(a=>{const c=Q(a?.conceptIdentity,r),u=a?.localRepresentation?.enumeration||c?.coreRepresentation?.enumeration,d=Y(u,o);a?.id&&(u?t.set(a?.id,{...d,name:c?.name,names:c?.names}):t.set(a?.id,{id:a?.id,name:c?.name,names:c?.names}))}),t},Wn=e=>e?.find(t=>t.id===x.SERIES_COUNT)?.title||"",Yn="/api/download",Qn=(e,t,n,s,r,o,i)=>{const a=new URLSearchParams({urn:e,format:t,compress:"false",filename:o,filters:JSON.stringify(r),attribute:s,language:n,isMetadata:i?"true":"none"}).toString(),c=`${Yn}?${a}`;window.open(c,"_blank")},kn=(e,t)=>{const n=[];for(const s of e){if(s.type!==N.DIMENSION)continue;const r=t.find(o=>o.componentCode===s.id);r!=null&&r.values?.length>0?n.push(r.values?.join(we)):n.push("*")}return n.join(".")},gt=(e,t)=>{if(!e||!e.startPeriod&&!e.endPeriod)return null;const n=[],{startPeriod:s,endPeriod:r}=e;if(s&&n.push(`${p.GREATER_OR_EQUAL}${ce}${s.toISOString().split("T")[0]}`),r&&n.push(`${p.LESS_OR_EQUAL}${ce}${r.toISOString().split("T")[0]}`),n.length===0)return null;const o=t;return n.map(i=>`${encodeURIComponent(`c[${o}]`)}${_t}${encodeURIComponent(i)}`).join(Ie)},Vn=(e,t)=>{const n=ft(e,t)||null;return n?gt(n,t?.id):null},ft=(e,t)=>{const n=t.id,s=e?.filters?.find(c=>c.componentCode===n);if(!s||!s.values)return null;const r=s.values?.filter(c=>!!c);if(!r.length)return null;const o=s.operator;if(o===p.LESS_OR_EQUAL||o===p.LESS)return{startPeriod:null,endPeriod:R(r[0])};if(o===p.GREATER_OR_EQUAL||o===p.GREATER)return{startPeriod:R(r[0]),endPeriod:null};const i=R(r[0]),a=R(r[1]);return{startPeriod:i,endPeriod:a}},ie=(e,t,n)=>{const s=f(t,!0),r=f(n),o=f(e,!0),i=f(e),a=s.getTime()>o.getTime()?s:o,c=r.getTime()<i.getTime()?r:i;return{start:a,end:c}},pt=(e,t,n,s="W")=>{const r=+e,{start:o,end:i}=ie(e,t,n);if(o.getTime()>i.getTime())return[];const a=S(o,s),c=a.weekYear===r?a.weekNumber:a.weekYear<r?1:j(r,s),u=S(i,s),d=u.weekYear===r?u.weekNumber:u.weekYear>r?j(r,s):1,l=[];if(c<d)for(let m=c;m<=d;m++)l.push(se(r,m,s));return l},Fn=e=>{const t=new Date(e);return t.setMinutes(t.getMinutes()-t.getTimezoneOffset()),t.toISOString().slice(0,10)},ht=(e,t,n)=>{const{start:s,end:r}=ie(e,t,n);if(s.getTime()>r.getTime())return[];const o=[],i=new Date(s.getFullYear(),s.getMonth(),s.getDate()),a=new Date(r.getFullYear(),r.getMonth(),r.getDate());for(;i.getTime()<a.getTime();){const c=Fn(i);o.push(c),i.setDate(i.getDate()+1)}return o},Et=e=>({isDailyExist:!!e?.some(({memberValue:t})=>t==="D"),isWeeklyExist:!!e?.some(({memberValue:t})=>t==="W"),isMonthlyExist:!!e?.some(({memberValue:t})=>t==="M"),isQuarterlyExist:!!e?.some(({memberValue:t})=>t==="Q"),isSemiAnnualExist:!!e?.some(({memberValue:t})=>t==="S"),isYearlyExist:!!e?.some(({memberValue:t})=>t==="A"||t==="Y")}),qn=(e,t,n,s)=>{const r=s===0?f(t.toString(),!0)?.getMonth()+1:void 0,o=s===e.length-1?f(n.toString())?.getMonth()+1||1:void 0;return{startMonth:r,endMonth:o}},Dt=["FREQUENCY","FREQ"],Bn=(e,t)=>{const n=e?.[0]?.cubeRegions?.[0]?.memberSelection?.find(c=>Dt.includes(c.componentId))?.selectionValues,s=Et(n||[]),r=t?.startPeriod?.getTime()||1,o=t?.endPeriod?.getTime()||1,i=Xe(o,r),a=[];return i.forEach((c,u)=>{const d=[],{startMonth:l,endMonth:m}=qn(i,new Date(r),new Date(o),u),{isDailyExist:g,isWeeklyExist:h,isMonthlyExist:k,isQuarterlyExist:V,isSemiAnnualExist:F,isYearlyExist:q}=s;q&&d.push(c.toString()),F&&d.push(...He(c,l,m)),V&&d.push(...je(c,l,m,!1)),k&&d.push(...Je(c,l,m)),h&&d.push(...pt(c,r.toString(),o.toString())),g&&d.push(...ht(c,r.toString(),o.toString())),a.push(...d)}),a};function Gn(e){const{urn:t}=e.details;return ye(t.resourceId,t.version,t.agencyId)}function Kn(e){const t={};for(const n of e.datasets){const s=n.dataset,r=Gn(s);t[r]=s.details.dimensions}return t}exports.Annotations=x;exports.AssignmentStatus=Ne;exports.AvailabilityApi=Pt;exports.DATASET_DATA_URL=ve;exports.DatasetApi=Ot;exports.DimensionType=N;exports.DownloadType=Te;exports.FREQUENCY_DIMENSION_ID=kt;exports.FREQUENCY_DIM_ID=Dt;exports.FileColumnsAttribute=Se;exports.GET_v3_FILTER_ALL=Pe;exports.GET_v3_FILTER_AND=bt;exports.GET_v3_FILTER_OR=we;exports.OBSERVATION_KEY=Oe;exports.OccurrenceType=_e;exports.Periods=tt;exports.RepresentationTextType=et;exports.SDMX_DATA_QUERY_PARAMS=Ze;exports.SINGLE_WILDCARD_SYMBOL=w;exports.SdmxApiClient=Qt;exports.SdmxAvailabilityMode=J;exports.SdmxDataFormat=A;exports.SdmxDetails=X;exports.SdmxReferences=P;exports.SeriesFilterOperator=p;exports.TIME_PERIOD=it;exports.TIME_PERIOD_END=rt;exports.TIME_PERIOD_START=ot;exports.buildDatasetDimensionsMetadataMap=Kn;exports.dailyPattern=Qe;exports.decodeDimensionId=Le;exports.findCodelistByDimension=$n;exports.generateDatasetDataRequest=G;exports.generateShortUrn=ye;exports.getAdditionalColumns=Bn;exports.getAnnotationPeriod=pn;exports.getArtifactByUrnWithWildCard=Y;exports.getAttachedDimensionsSeriesByDimension=Vt;exports.getAttachedDimensionsSeriesByTsId=be;exports.getAttachedDimensionsSeriesKey=Z;exports.getAttributeValueFromDataQueryResponse=$e;exports.getAvailableCodes=On;exports.getAvailableCodesFromConstrains=yn;exports.getChildParsedUrn=Ae;exports.getConcept=Q;exports.getConceptByUrn=H;exports.getConceptWithScheme=lt;exports.getConvertedMetaAttributes=mt;exports.getDailyRegExp=Fe;exports.getDaysColumns=ht;exports.getDimensionTitle=Cn;exports.getDimensions=z;exports.getFilteredItemsWithParents=st;exports.getFiltersDtoFromDataQuery=Tn;exports.getISOWeek=S;exports.getKeyFromUrn=y;exports.getLastUpdatedTime=fn;exports.getLastWeekNumberOfYear=j;exports.getLocalizedName=W;exports.getMonthlyData=Je;exports.getMonthlyDataByQuarter=dn;exports.getMonthlyRegExp=O;exports.getParsedEndPeriodDate=oe;exports.getParsedResponse=Ft;exports.getParsedStartPeriodDate=re;exports.getPeriodDate=f;exports.getPeriods=Et;exports.getQuarterByMonth=an;exports.getQuarterlyRegExp=M;exports.getQuartersData=je;exports.getQueryTimePeriodFilters=gt;exports.getRequestAcceptHeader=Re;exports.getResolvedVersionBySingleWildcard=ct;exports.getSemiAnnualData=He;exports.getSemiAnnuallyRegExp=Ve;exports.getSeriesAttributes=I;exports.getSeriesName=Ce;exports.getStructureComponentsMap=xn;exports.getStructureDimensions=Mn;exports.getTimeDimension=Un;exports.getTimePeriods=Ln;exports.getTimeQueryFilter=Vn;exports.getTimeRangeFromAttachment=ft;exports.getTimeSeriesCount=Wn;exports.getTimeSeriesFilterKey=kn;exports.getTimeSeriesId=Me;exports.getWeekCode=se;exports.getWeeklyPeriodEndDate=Ke;exports.getWeeklyPeriodStartDate=Ge;exports.getWeeklyRegExp=Be;exports.getWeeksColumns=pt;exports.getWildCardRegexp=ut;exports.getYearPeriod=ie;exports.getYearlyRegExp=_;exports.getYears=Xe;exports.isDaily=qe;exports.isMonthly=C;exports.isQuarterly=L;exports.isSemiAnnually=$;exports.isWeekly=U;exports.isWildCardVersionCorrect=dt;exports.isYearly=b;exports.monthlyPattern=ke;exports.openDownloadWindow=Qn;exports.quarterPattern=Ue;exports.semiAnnuallyPattern=We;exports.sortPeriods=gn;exports.splitUrn=D;exports.weeklyPattern=xe;exports.yearlyPattern=Ye;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=t=>{if(t!=null){const e=t.split("=");return e.length===1?t:e[1]}},L=t=>{if(t==null)return{};const e=B(t),n={agency:"",id:"",version:""};return e&&(e.includes(":")&&(n.agency=e.split(":")[0],n.id=e.split(":")[1].split("(")[0]),e.includes("(")&&e.includes(")")&&(n.version=e.split("(")[1]?.split(")")[0])),n},ot=t=>{const[e,n]=t.split(")."),{agency:r,id:s,version:a}=L(e+")");return{childId:n,agency:r,id:s,version:a}},it=(t,e,n)=>{const r=e===""?"":`(${e})`;return`${n}:${t}${r}`};var ne=(t=>(t.DESCENDANTS="descendants",t.NONE="none",t.ALL="all",t))(ne||{}),Ae=(t=>(t.EXACT="exact",t.AVAILABLE="available",t))(Ae||{});function Tn(t){return{data:{codelists:t.data.codelists,conceptSchemes:t.data.conceptSchemes,dataConstraints:t.data.dataConstraints?.map(En),dataflows:t.data.dataflows,dataStructures:t.data.dataStructures,metadataStructures:t.data.metadataStructures}}}function En(t){return{...t,cubeRegions:t.cubeRegions?.map(xn)}}function xn(t){return{isIncluded:t.include,memberSelection:t.keyValues.map(Pn)}}function Pn(t){return{included:t.include,componentId:t.id,selectionValues:t.values.map(Mn)}}function Mn(t){return{memberValue:t.value}}const vn=(t="",e="",n="")=>`sdmx/3.0/availability/dataflow/${t}/${e}/${n}`;class An{constructor(e){this.client=e}async getConstraints(e,n){const{agency:r,id:s,version:a}=L(e),o={filters:n||[],mode:Ae.AVAILABLE,references:ne.NONE},i=vn(r,s,a);if(this.client.config.sdmxProxyUrl){const c=await this.client.postRequest(i,{body:o},this.client.config.sdmxProxyUrl);return Tn(c)}return await this.client.postRequest(i,{body:o},this.client.config.constrainsApiUrl||this.client.config.apiUrl)}}var H=(t=>(t.CSV="csv",t.JSON="json",t.XML="xml",t))(H||{}),ct=(t=>(t.ID="id",t.NAME="name",t.ID_NAME="both",t))(ct||{}),ut=(t=>(t.FULL_DATASET="full",t.DATA_IN_TABLE="query",t))(ut||{});const dt=(t,e)=>{switch(t){case H.CSV:return X("application/vnd.sdmx.data+csv;version=2.0.0",e);case H.XML:return X("application/vnd.sdmx.data+xml;version=3.0.0",e);case H.JSON:return X(`application/${t}`,e);default:return X("application/vnd.sdmx.data+csv;version=2.0.0",e)}},X=(t,e)=>`${t}; labels=${e}`;var Oe=(t=>(t.REFERENCE_PARTIAL="referencepartial",t.FULL="full",t))(Oe||{});const On="all",lt="sdmx/3.0/data/dataflow",ft="&",Qe=":",Rn="=",mt="+",Nn=",",ht="*",De=(t,e,n)=>{const{filterKey:r,timeFilter:s}=n,{agency:a,id:o,version:i}=L(t),c=[s||"",e].filter(d=>!!d).join(ft);return`${`${lt}/${a}/${o}/${i}`}/${r||ht}?${c}`},_n=(t="",e="",n="",r=ne.DESCENDANTS)=>`sdmx/3.0/structure/dataflow/${t}/${e}/${n}?references=${r}&detail=${Oe.REFERENCE_PARTIAL}`;class kn{constructor(e){this.client=e}async getDataSet(e,n){const{agency:r,id:s,version:a}=L(e);return await this.client.getRequest(_n(r,s,a,n))}async getDatasetData(e,n){const r=new URLSearchParams({includeHistory:"false",limit:"1000",attributes:On,dimensionAtObservation:"TIME_PERIOD"}).toString(),s=De(e,r,n);return await this.client.getRequest(s)}async downloadDataSet(e,n,r,s,a,o,i=!1){const c=new URLSearchParams({format:n,compress:"false",attributes:i?"all":"none",limit:"1000"}).toString(),u=De(e,c,a);return this.client.streamRequest(u,{method:"GET",headers:{Accept:dt(n,s),"Accept-language":r}},o)}}const In=(t,e)=>t.error||t.message||`${e.status} ${e.statusText}`,Sn="application/json",Yn="Content-Type",we="Api-Key",Cn="X-CONVERSATION-ID",z="Ocp-Apim-Subscription-Key";class Ue extends Error{constructor(e){super(e.message),this.isHttpError=!0,this.name="HttpError",this.code=e.code,this.status=e.status,this.details=e.details,this.displayMessage=e.displayMessage}}const gt=6048e5,Ln=864e5,Re=6e4,Ne=36e5,Wn=1e3,He=Symbol.for("constructDateFrom");function E(t,e){return typeof t=="function"?t(e):t&&typeof t=="object"&&He in t?t[He](e):t instanceof Date?new t.constructor(e):new Date(e)}function p(t,e){return E(e||t,t)}function wt(t,e,n){const r=p(t,n?.in);return isNaN(e)?E(n?.in||t,NaN):(e&&r.setDate(r.getDate()+e),r)}let $n={};function W(){return $n}function k(t,e){const n=W(),r=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,s=p(t,e?.in),a=s.getDay(),o=(a<r?7:0)+a-r;return s.setDate(s.getDate()-o),s.setHours(0,0,0,0),s}function C(t,e){return k(t,{...e,weekStartsOn:1})}function yt(t,e){const n=p(t,e?.in),r=n.getFullYear(),s=E(n,0);s.setFullYear(r+1,0,4),s.setHours(0,0,0,0);const a=C(s),o=E(n,0);o.setFullYear(r,0,4),o.setHours(0,0,0,0);const i=C(o);return n.getTime()>=a.getTime()?r+1:n.getTime()>=i.getTime()?r:r-1}function J(t){const e=p(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return n.setUTCFullYear(e.getFullYear()),+t-+n}function qn(t,...e){const n=E.bind(null,e.find(r=>typeof r=="object"));return e.map(n)}function Be(t,e){const n=p(t,e?.in);return n.setHours(0,0,0,0),n}function Fn(t,e,n){const[r,s]=qn(n?.in,t,e),a=Be(r),o=Be(s),i=+a-J(a),c=+o-J(o);return Math.round((i-c)/Ln)}function Qn(t,e){const n=yt(t,e),r=E(t,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),C(r)}function Un(t){return t instanceof Date||typeof t=="object"&&Object.prototype.toString.call(t)==="[object Date]"}function be(t){return!(!Un(t)&&typeof t!="number"||isNaN(+p(t)))}function Hn(t,e){const n=p(t,e?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}const Bn={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Gn=(t,e,n)=>{let r;const s=Bn[t];return typeof s=="string"?r=s:e===1?r=s.one:r=s.other.replace("{{count}}",e.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function ye(t){return(e={})=>{const n=e.width?String(e.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}const Vn={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Xn={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},jn={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Kn={date:ye({formats:Vn,defaultWidth:"full"}),time:ye({formats:Xn,defaultWidth:"full"}),dateTime:ye({formats:jn,defaultWidth:"full"})},zn={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Jn=(t,e,n,r)=>zn[t];function F(t){return(e,n)=>{const r=n?.context?String(n.context):"standalone";let s;if(r==="formatting"&&t.formattingValues){const o=t.defaultFormattingWidth||t.defaultWidth,i=n?.width?String(n.width):o;s=t.formattingValues[i]||t.formattingValues[o]}else{const o=t.defaultWidth,i=n?.width?String(n.width):t.defaultWidth;s=t.values[i]||t.values[o]}const a=t.argumentCallback?t.argumentCallback(e):e;return s[a]}}const Zn={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},er={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},tr={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},nr={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},rr={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},sr={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},ar=(t,e)=>{const n=Number(t),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},or={ordinalNumber:ar,era:F({values:Zn,defaultWidth:"wide"}),quarter:F({values:er,defaultWidth:"wide",argumentCallback:t=>t-1}),month:F({values:tr,defaultWidth:"wide"}),day:F({values:nr,defaultWidth:"wide"}),dayPeriod:F({values:rr,defaultWidth:"wide",formattingValues:sr,defaultFormattingWidth:"wide"})};function Q(t){return(e,n={})=>{const r=n.width,s=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],a=e.match(s);if(!a)return null;const o=a[0],i=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],c=Array.isArray(i)?cr(i,l=>l.test(o)):ir(i,l=>l.test(o));let u;u=t.valueCallback?t.valueCallback(c):c,u=n.valueCallback?n.valueCallback(u):u;const d=e.slice(o.length);return{value:u,rest:d}}}function ir(t,e){for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(t[n]))return n}function cr(t,e){for(let n=0;n<t.length;n++)if(e(t[n]))return n}function ur(t){return(e,n={})=>{const r=e.match(t.matchPattern);if(!r)return null;const s=r[0],a=e.match(t.parsePattern);if(!a)return null;let o=t.valueCallback?t.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;const i=e.slice(s.length);return{value:o,rest:i}}}const dr=/^(\d+)(th|st|nd|rd)?/i,lr=/\d+/i,fr={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},mr={any:[/^b/i,/^(a|c)/i]},hr={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},gr={any:[/1/i,/2/i,/3/i,/4/i]},wr={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},yr={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},pr={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Dr={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},br={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Tr={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Er={ordinalNumber:ur({matchPattern:dr,parsePattern:lr,valueCallback:t=>parseInt(t,10)}),era:Q({matchPatterns:fr,defaultMatchWidth:"wide",parsePatterns:mr,defaultParseWidth:"any"}),quarter:Q({matchPatterns:hr,defaultMatchWidth:"wide",parsePatterns:gr,defaultParseWidth:"any",valueCallback:t=>t+1}),month:Q({matchPatterns:wr,defaultMatchWidth:"wide",parsePatterns:yr,defaultParseWidth:"any"}),day:Q({matchPatterns:pr,defaultMatchWidth:"wide",parsePatterns:Dr,defaultParseWidth:"any"}),dayPeriod:Q({matchPatterns:br,defaultMatchWidth:"any",parsePatterns:Tr,defaultParseWidth:"any"})},pt={code:"en-US",formatDistance:Gn,formatLong:Kn,formatRelative:Jn,localize:or,match:Er,options:{weekStartsOn:0,firstWeekContainsDate:1}};function xr(t,e){const n=p(t,e?.in);return Fn(n,Hn(n))+1}function Dt(t,e){const n=p(t,e?.in),r=+C(n)-+Qn(n);return Math.round(r/gt)+1}function _e(t,e){const n=p(t,e?.in),r=n.getFullYear(),s=W(),a=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??s.firstWeekContainsDate??s.locale?.options?.firstWeekContainsDate??1,o=E(e?.in||t,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);const i=k(o,e),c=E(e?.in||t,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);const u=k(c,e);return+n>=+i?r+1:+n>=+u?r:r-1}function Pr(t,e){const n=W(),r=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,s=_e(t,e),a=E(e?.in||t,0);return a.setFullYear(s,0,r),a.setHours(0,0,0,0),k(a,e)}function bt(t,e){const n=p(t,e?.in),r=+k(n,e)-+Pr(n,e);return Math.round(r/gt)+1}function h(t,e){const n=t<0?"-":"",r=Math.abs(t).toString().padStart(e,"0");return n+r}const _={y(t,e){const n=t.getFullYear(),r=n>0?n:1-n;return h(e==="yy"?r%100:r,e.length)},M(t,e){const n=t.getMonth();return e==="M"?String(n+1):h(n+1,2)},d(t,e){return h(t.getDate(),e.length)},a(t,e){const n=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return n==="am"?"a.m.":"p.m."}},h(t,e){return h(t.getHours()%12||12,e.length)},H(t,e){return h(t.getHours(),e.length)},m(t,e){return h(t.getMinutes(),e.length)},s(t,e){return h(t.getSeconds(),e.length)},S(t,e){const n=e.length,r=t.getMilliseconds(),s=Math.trunc(r*Math.pow(10,n-3));return h(s,e.length)}},Y={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Ge={G:function(t,e,n){const r=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(t,e,n){if(e==="yo"){const r=t.getFullYear(),s=r>0?r:1-r;return n.ordinalNumber(s,{unit:"year"})}return _.y(t,e)},Y:function(t,e,n,r){const s=_e(t,r),a=s>0?s:1-s;if(e==="YY"){const o=a%100;return h(o,2)}return e==="Yo"?n.ordinalNumber(a,{unit:"year"}):h(a,e.length)},R:function(t,e){const n=yt(t);return h(n,e.length)},u:function(t,e){const n=t.getFullYear();return h(n,e.length)},Q:function(t,e,n){const r=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return h(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,e,n){const r=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return h(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,e,n){const r=t.getMonth();switch(e){case"M":case"MM":return _.M(t,e);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(t,e,n){const r=t.getMonth();switch(e){case"L":return String(r+1);case"LL":return h(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(t,e,n,r){const s=bt(t,r);return e==="wo"?n.ordinalNumber(s,{unit:"week"}):h(s,e.length)},I:function(t,e,n){const r=Dt(t);return e==="Io"?n.ordinalNumber(r,{unit:"week"}):h(r,e.length)},d:function(t,e,n){return e==="do"?n.ordinalNumber(t.getDate(),{unit:"date"}):_.d(t,e)},D:function(t,e,n){const r=xr(t);return e==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):h(r,e.length)},E:function(t,e,n){const r=t.getDay();switch(e){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(t,e,n,r){const s=t.getDay(),a=(s-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(a);case"ee":return h(a,2);case"eo":return n.ordinalNumber(a,{unit:"day"});case"eee":return n.day(s,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(s,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(s,{width:"short",context:"formatting"});default:return n.day(s,{width:"wide",context:"formatting"})}},c:function(t,e,n,r){const s=t.getDay(),a=(s-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(a);case"cc":return h(a,e.length);case"co":return n.ordinalNumber(a,{unit:"day"});case"ccc":return n.day(s,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(s,{width:"narrow",context:"standalone"});case"cccccc":return n.day(s,{width:"short",context:"standalone"});default:return n.day(s,{width:"wide",context:"standalone"})}},i:function(t,e,n){const r=t.getDay(),s=r===0?7:r;switch(e){case"i":return String(s);case"ii":return h(s,e.length);case"io":return n.ordinalNumber(s,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(t,e,n){const s=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(s,{width:"narrow",context:"formatting"});default:return n.dayPeriod(s,{width:"wide",context:"formatting"})}},b:function(t,e,n){const r=t.getHours();let s;switch(r===12?s=Y.noon:r===0?s=Y.midnight:s=r/12>=1?"pm":"am",e){case"b":case"bb":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(s,{width:"narrow",context:"formatting"});default:return n.dayPeriod(s,{width:"wide",context:"formatting"})}},B:function(t,e,n){const r=t.getHours();let s;switch(r>=17?s=Y.evening:r>=12?s=Y.afternoon:r>=4?s=Y.morning:s=Y.night,e){case"B":case"BB":case"BBB":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(s,{width:"narrow",context:"formatting"});default:return n.dayPeriod(s,{width:"wide",context:"formatting"})}},h:function(t,e,n){if(e==="ho"){let r=t.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return _.h(t,e)},H:function(t,e,n){return e==="Ho"?n.ordinalNumber(t.getHours(),{unit:"hour"}):_.H(t,e)},K:function(t,e,n){const r=t.getHours()%12;return e==="Ko"?n.ordinalNumber(r,{unit:"hour"}):h(r,e.length)},k:function(t,e,n){let r=t.getHours();return r===0&&(r=24),e==="ko"?n.ordinalNumber(r,{unit:"hour"}):h(r,e.length)},m:function(t,e,n){return e==="mo"?n.ordinalNumber(t.getMinutes(),{unit:"minute"}):_.m(t,e)},s:function(t,e,n){return e==="so"?n.ordinalNumber(t.getSeconds(),{unit:"second"}):_.s(t,e)},S:function(t,e){return _.S(t,e)},X:function(t,e,n){const r=t.getTimezoneOffset();if(r===0)return"Z";switch(e){case"X":return Xe(r);case"XXXX":case"XX":return I(r);default:return I(r,":")}},x:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"x":return Xe(r);case"xxxx":case"xx":return I(r);default:return I(r,":")}},O:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+Ve(r,":");default:return"GMT"+I(r,":")}},z:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+Ve(r,":");default:return"GMT"+I(r,":")}},t:function(t,e,n){const r=Math.trunc(+t/1e3);return h(r,e.length)},T:function(t,e,n){return h(+t,e.length)}};function Ve(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),s=Math.trunc(r/60),a=r%60;return a===0?n+String(s):n+String(s)+e+h(a,2)}function Xe(t,e){return t%60===0?(t>0?"-":"+")+h(Math.abs(t)/60,2):I(t,e)}function I(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),s=h(Math.trunc(r/60),2),a=h(r%60,2);return n+s+e+a}const je=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},Tt=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},Mr=(t,e)=>{const n=t.match(/(P+)(p+)?/)||[],r=n[1],s=n[2];if(!s)return je(t,e);let a;switch(r){case"P":a=e.dateTime({width:"short"});break;case"PP":a=e.dateTime({width:"medium"});break;case"PPP":a=e.dateTime({width:"long"});break;default:a=e.dateTime({width:"full"});break}return a.replace("{{date}}",je(r,e)).replace("{{time}}",Tt(s,e))},Te={p:Tt,P:Mr},vr=/^D+$/,Ar=/^Y+$/,Or=["D","DD","YY","YYYY"];function Et(t){return vr.test(t)}function xt(t){return Ar.test(t)}function Ee(t,e,n){const r=Rr(t,e,n);if(console.warn(r),Or.includes(t))throw new RangeError(r)}function Rr(t,e,n){const r=t[0]==="Y"?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Nr=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,_r=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,kr=/^'([^]*?)'?$/,Ir=/''/g,Sr=/[a-zA-Z]/;function Yr(t,e,n){const r=W(),s=r.locale??pt,a=r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=r.weekStartsOn??r.locale?.options?.weekStartsOn??0,i=p(t,n?.in);if(!be(i))throw new RangeError("Invalid time value");let c=e.match(_r).map(d=>{const l=d[0];if(l==="p"||l==="P"){const w=Te[l];return w(d,s.formatLong)}return d}).join("").match(Nr).map(d=>{if(d==="''")return{isToken:!1,value:"'"};const l=d[0];if(l==="'")return{isToken:!1,value:Cr(d)};if(Ge[l])return{isToken:!0,value:d};if(l.match(Sr))throw new RangeError("Format string contains an unescaped latin alphabet character `"+l+"`");return{isToken:!1,value:d}});s.localize.preprocessor&&(c=s.localize.preprocessor(i,c));const u={firstWeekContainsDate:a,weekStartsOn:o,locale:s};return c.map(d=>{if(!d.isToken)return d.value;const l=d.value;(xt(l)||Et(l))&&Ee(l,e,String(t));const w=Ge[l[0]];return w(i,l,s.localize,u)}).join("")}function Cr(t){const e=t.match(kr);return e?e[1].replace(Ir,"'"):t}function Lr(){return Object.assign({},W())}function Wr(t,e){const n=p(t,e?.in).getDay();return n===0?7:n}function $r(t,e){const n=qr(e)?new e(0):E(e,0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),n}function qr(t){return typeof t=="function"&&t.prototype?.constructor===t}const Fr=10;class Pt{subPriority=0;validate(e,n){return!0}}class Qr extends Pt{constructor(e,n,r,s,a){super(),this.value=e,this.validateValue=n,this.setValue=r,this.priority=s,a&&(this.subPriority=a)}validate(e,n){return this.validateValue(e,this.value,n)}set(e,n,r){return this.setValue(e,n,this.value,r)}}class Ur extends Pt{priority=Fr;subPriority=-1;constructor(e,n){super(),this.context=e||(r=>E(n,r))}set(e,n){return n.timestampIsSet?e:E(e,$r(e,this.context))}}class m{run(e,n,r,s){const a=this.parse(e,n,r,s);return a?{setter:new Qr(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}validate(e,n,r){return!0}}class Hr extends m{priority=140;parse(e,n,r){switch(n){case"G":case"GG":case"GGG":return r.era(e,{width:"abbreviated"})||r.era(e,{width:"narrow"});case"GGGGG":return r.era(e,{width:"narrow"});default:return r.era(e,{width:"wide"})||r.era(e,{width:"abbreviated"})||r.era(e,{width:"narrow"})}}set(e,n,r){return n.era=r,e.setFullYear(r,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=["R","u","t","T"]}const b={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},A={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function T(t,e){return t&&{value:e(t.value),rest:t.rest}}function y(t,e){const n=e.match(t);return n?{value:parseInt(n[0],10),rest:e.slice(n[0].length)}:null}function O(t,e){const n=e.match(t);if(!n)return null;if(n[0]==="Z")return{value:0,rest:e.slice(1)};const r=n[1]==="+"?1:-1,s=n[2]?parseInt(n[2],10):0,a=n[3]?parseInt(n[3],10):0,o=n[5]?parseInt(n[5],10):0;return{value:r*(s*Ne+a*Re+o*Wn),rest:e.slice(n[0].length)}}function Mt(t){return y(b.anyDigitsSigned,t)}function D(t,e){switch(t){case 1:return y(b.singleDigit,e);case 2:return y(b.twoDigits,e);case 3:return y(b.threeDigits,e);case 4:return y(b.fourDigits,e);default:return y(new RegExp("^\\d{1,"+t+"}"),e)}}function Z(t,e){switch(t){case 1:return y(b.singleDigitSigned,e);case 2:return y(b.twoDigitsSigned,e);case 3:return y(b.threeDigitsSigned,e);case 4:return y(b.fourDigitsSigned,e);default:return y(new RegExp("^-?\\d{1,"+t+"}"),e)}}function ke(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function vt(t,e){const n=e>0,r=n?e:1-e;let s;if(r<=50)s=t||100;else{const a=r+50,o=Math.trunc(a/100)*100,i=t>=a%100;s=t+o-(i?100:0)}return n?s:1-s}function At(t){return t%400===0||t%4===0&&t%100!==0}class Br extends m{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(e,n,r){const s=a=>({year:a,isTwoDigitYear:n==="yy"});switch(n){case"y":return T(D(4,e),s);case"yo":return T(r.ordinalNumber(e,{unit:"year"}),s);default:return T(D(n.length,e),s)}}validate(e,n){return n.isTwoDigitYear||n.year>0}set(e,n,r){const s=e.getFullYear();if(r.isTwoDigitYear){const o=vt(r.year,s);return e.setFullYear(o,0,1),e.setHours(0,0,0,0),e}const a=!("era"in n)||n.era===1?r.year:1-r.year;return e.setFullYear(a,0,1),e.setHours(0,0,0,0),e}}class Gr extends m{priority=130;parse(e,n,r){const s=a=>({year:a,isTwoDigitYear:n==="YY"});switch(n){case"Y":return T(D(4,e),s);case"Yo":return T(r.ordinalNumber(e,{unit:"year"}),s);default:return T(D(n.length,e),s)}}validate(e,n){return n.isTwoDigitYear||n.year>0}set(e,n,r,s){const a=_e(e,s);if(r.isTwoDigitYear){const i=vt(r.year,a);return e.setFullYear(i,0,s.firstWeekContainsDate),e.setHours(0,0,0,0),k(e,s)}const o=!("era"in n)||n.era===1?r.year:1-r.year;return e.setFullYear(o,0,s.firstWeekContainsDate),e.setHours(0,0,0,0),k(e,s)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]}class Vr extends m{priority=130;parse(e,n){return Z(n==="R"?4:n.length,e)}set(e,n,r){const s=E(e,0);return s.setFullYear(r,0,4),s.setHours(0,0,0,0),C(s)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]}class Xr extends m{priority=130;parse(e,n){return Z(n==="u"?4:n.length,e)}set(e,n,r){return e.setFullYear(r,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]}class jr extends m{priority=120;parse(e,n,r){switch(n){case"Q":case"QQ":return D(n.length,e);case"Qo":return r.ordinalNumber(e,{unit:"quarter"});case"QQQ":return r.quarter(e,{width:"abbreviated",context:"formatting"})||r.quarter(e,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(e,{width:"narrow",context:"formatting"});default:return r.quarter(e,{width:"wide",context:"formatting"})||r.quarter(e,{width:"abbreviated",context:"formatting"})||r.quarter(e,{width:"narrow",context:"formatting"})}}validate(e,n){return n>=1&&n<=4}set(e,n,r){return e.setMonth((r-1)*3,1),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]}class Kr extends m{priority=120;parse(e,n,r){switch(n){case"q":case"qq":return D(n.length,e);case"qo":return r.ordinalNumber(e,{unit:"quarter"});case"qqq":return r.quarter(e,{width:"abbreviated",context:"standalone"})||r.quarter(e,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(e,{width:"narrow",context:"standalone"});default:return r.quarter(e,{width:"wide",context:"standalone"})||r.quarter(e,{width:"abbreviated",context:"standalone"})||r.quarter(e,{width:"narrow",context:"standalone"})}}validate(e,n){return n>=1&&n<=4}set(e,n,r){return e.setMonth((r-1)*3,1),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]}class zr extends m{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(e,n,r){const s=a=>a-1;switch(n){case"M":return T(y(b.month,e),s);case"MM":return T(D(2,e),s);case"Mo":return T(r.ordinalNumber(e,{unit:"month"}),s);case"MMM":return r.month(e,{width:"abbreviated",context:"formatting"})||r.month(e,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(e,{width:"narrow",context:"formatting"});default:return r.month(e,{width:"wide",context:"formatting"})||r.month(e,{width:"abbreviated",context:"formatting"})||r.month(e,{width:"narrow",context:"formatting"})}}validate(e,n){return n>=0&&n<=11}set(e,n,r){return e.setMonth(r,1),e.setHours(0,0,0,0),e}}class Jr extends m{priority=110;parse(e,n,r){const s=a=>a-1;switch(n){case"L":return T(y(b.month,e),s);case"LL":return T(D(2,e),s);case"Lo":return T(r.ordinalNumber(e,{unit:"month"}),s);case"LLL":return r.month(e,{width:"abbreviated",context:"standalone"})||r.month(e,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(e,{width:"narrow",context:"standalone"});default:return r.month(e,{width:"wide",context:"standalone"})||r.month(e,{width:"abbreviated",context:"standalone"})||r.month(e,{width:"narrow",context:"standalone"})}}validate(e,n){return n>=0&&n<=11}set(e,n,r){return e.setMonth(r,1),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]}function Zr(t,e,n){const r=p(t,n?.in),s=bt(r,n)-e;return r.setDate(r.getDate()-s*7),p(r,n?.in)}class es extends m{priority=100;parse(e,n,r){switch(n){case"w":return y(b.week,e);case"wo":return r.ordinalNumber(e,{unit:"week"});default:return D(n.length,e)}}validate(e,n){return n>=1&&n<=53}set(e,n,r,s){return k(Zr(e,r,s),s)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]}function ts(t,e,n){const r=p(t,n?.in),s=Dt(r,n)-e;return r.setDate(r.getDate()-s*7),r}class ns extends m{priority=100;parse(e,n,r){switch(n){case"I":return y(b.week,e);case"Io":return r.ordinalNumber(e,{unit:"week"});default:return D(n.length,e)}}validate(e,n){return n>=1&&n<=53}set(e,n,r){return C(ts(e,r))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]}const rs=[31,28,31,30,31,30,31,31,30,31,30,31],ss=[31,29,31,30,31,30,31,31,30,31,30,31];class as extends m{priority=90;subPriority=1;parse(e,n,r){switch(n){case"d":return y(b.date,e);case"do":return r.ordinalNumber(e,{unit:"date"});default:return D(n.length,e)}}validate(e,n){const r=e.getFullYear(),s=At(r),a=e.getMonth();return s?n>=1&&n<=ss[a]:n>=1&&n<=rs[a]}set(e,n,r){return e.setDate(r),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]}class os extends m{priority=90;subpriority=1;parse(e,n,r){switch(n){case"D":case"DD":return y(b.dayOfYear,e);case"Do":return r.ordinalNumber(e,{unit:"date"});default:return D(n.length,e)}}validate(e,n){const r=e.getFullYear();return At(r)?n>=1&&n<=366:n>=1&&n<=365}set(e,n,r){return e.setMonth(0,r),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]}function Ie(t,e,n){const r=W(),s=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,a=p(t,n?.in),o=a.getDay(),c=(e%7+7)%7,u=7-s,d=e<0||e>6?e-(o+u)%7:(c+u)%7-(o+u)%7;return wt(a,d,n)}class is extends m{priority=90;parse(e,n,r){switch(n){case"E":case"EE":case"EEE":return r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(e,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});default:return r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"})}}validate(e,n){return n>=0&&n<=6}set(e,n,r,s){return e=Ie(e,r,s),e.setHours(0,0,0,0),e}incompatibleTokens=["D","i","e","c","t","T"]}class cs extends m{priority=90;parse(e,n,r,s){const a=o=>{const i=Math.floor((o-1)/7)*7;return(o+s.weekStartsOn+6)%7+i};switch(n){case"e":case"ee":return T(D(n.length,e),a);case"eo":return T(r.ordinalNumber(e,{unit:"day"}),a);case"eee":return r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});case"eeeee":return r.day(e,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});default:return r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"})}}validate(e,n){return n>=0&&n<=6}set(e,n,r,s){return e=Ie(e,r,s),e.setHours(0,0,0,0),e}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]}class us extends m{priority=90;parse(e,n,r,s){const a=o=>{const i=Math.floor((o-1)/7)*7;return(o+s.weekStartsOn+6)%7+i};switch(n){case"c":case"cc":return T(D(n.length,e),a);case"co":return T(r.ordinalNumber(e,{unit:"day"}),a);case"ccc":return r.day(e,{width:"abbreviated",context:"standalone"})||r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"});case"ccccc":return r.day(e,{width:"narrow",context:"standalone"});case"cccccc":return r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"});default:return r.day(e,{width:"wide",context:"standalone"})||r.day(e,{width:"abbreviated",context:"standalone"})||r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"})}}validate(e,n){return n>=0&&n<=6}set(e,n,r,s){return e=Ie(e,r,s),e.setHours(0,0,0,0),e}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]}function ds(t,e,n){const r=p(t,n?.in),s=Wr(r,n),a=e-s;return wt(r,a,n)}class ls extends m{priority=90;parse(e,n,r){const s=a=>a===0?7:a;switch(n){case"i":case"ii":return D(n.length,e);case"io":return r.ordinalNumber(e,{unit:"day"});case"iii":return T(r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),s);case"iiiii":return T(r.day(e,{width:"narrow",context:"formatting"}),s);case"iiiiii":return T(r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),s);default:return T(r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),s)}}validate(e,n){return n>=1&&n<=7}set(e,n,r){return e=ds(e,r),e.setHours(0,0,0,0),e}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]}class fs extends m{priority=80;parse(e,n,r){switch(n){case"a":case"aa":case"aaa":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}set(e,n,r){return e.setHours(ke(r),0,0,0),e}incompatibleTokens=["b","B","H","k","t","T"]}class ms extends m{priority=80;parse(e,n,r){switch(n){case"b":case"bb":case"bbb":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}set(e,n,r){return e.setHours(ke(r),0,0,0),e}incompatibleTokens=["a","B","H","k","t","T"]}class hs extends m{priority=80;parse(e,n,r){switch(n){case"B":case"BB":case"BBB":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}set(e,n,r){return e.setHours(ke(r),0,0,0),e}incompatibleTokens=["a","b","t","T"]}class gs extends m{priority=70;parse(e,n,r){switch(n){case"h":return y(b.hour12h,e);case"ho":return r.ordinalNumber(e,{unit:"hour"});default:return D(n.length,e)}}validate(e,n){return n>=1&&n<=12}set(e,n,r){const s=e.getHours()>=12;return s&&r<12?e.setHours(r+12,0,0,0):!s&&r===12?e.setHours(0,0,0,0):e.setHours(r,0,0,0),e}incompatibleTokens=["H","K","k","t","T"]}class ws extends m{priority=70;parse(e,n,r){switch(n){case"H":return y(b.hour23h,e);case"Ho":return r.ordinalNumber(e,{unit:"hour"});default:return D(n.length,e)}}validate(e,n){return n>=0&&n<=23}set(e,n,r){return e.setHours(r,0,0,0),e}incompatibleTokens=["a","b","h","K","k","t","T"]}class ys extends m{priority=70;parse(e,n,r){switch(n){case"K":return y(b.hour11h,e);case"Ko":return r.ordinalNumber(e,{unit:"hour"});default:return D(n.length,e)}}validate(e,n){return n>=0&&n<=11}set(e,n,r){return e.getHours()>=12&&r<12?e.setHours(r+12,0,0,0):e.setHours(r,0,0,0),e}incompatibleTokens=["h","H","k","t","T"]}class ps extends m{priority=70;parse(e,n,r){switch(n){case"k":return y(b.hour24h,e);case"ko":return r.ordinalNumber(e,{unit:"hour"});default:return D(n.length,e)}}validate(e,n){return n>=1&&n<=24}set(e,n,r){const s=r<=24?r%24:r;return e.setHours(s,0,0,0),e}incompatibleTokens=["a","b","h","H","K","t","T"]}class Ds extends m{priority=60;parse(e,n,r){switch(n){case"m":return y(b.minute,e);case"mo":return r.ordinalNumber(e,{unit:"minute"});default:return D(n.length,e)}}validate(e,n){return n>=0&&n<=59}set(e,n,r){return e.setMinutes(r,0,0),e}incompatibleTokens=["t","T"]}class bs extends m{priority=50;parse(e,n,r){switch(n){case"s":return y(b.second,e);case"so":return r.ordinalNumber(e,{unit:"second"});default:return D(n.length,e)}}validate(e,n){return n>=0&&n<=59}set(e,n,r){return e.setSeconds(r,0),e}incompatibleTokens=["t","T"]}class Ts extends m{priority=30;parse(e,n){const r=s=>Math.trunc(s*Math.pow(10,-n.length+3));return T(D(n.length,e),r)}set(e,n,r){return e.setMilliseconds(r),e}incompatibleTokens=["t","T"]}class Es extends m{priority=10;parse(e,n){switch(n){case"X":return O(A.basicOptionalMinutes,e);case"XX":return O(A.basic,e);case"XXXX":return O(A.basicOptionalSeconds,e);case"XXXXX":return O(A.extendedOptionalSeconds,e);default:return O(A.extended,e)}}set(e,n,r){return n.timestampIsSet?e:E(e,e.getTime()-J(e)-r)}incompatibleTokens=["t","T","x"]}class xs extends m{priority=10;parse(e,n){switch(n){case"x":return O(A.basicOptionalMinutes,e);case"xx":return O(A.basic,e);case"xxxx":return O(A.basicOptionalSeconds,e);case"xxxxx":return O(A.extendedOptionalSeconds,e);default:return O(A.extended,e)}}set(e,n,r){return n.timestampIsSet?e:E(e,e.getTime()-J(e)-r)}incompatibleTokens=["t","T","X"]}class Ps extends m{priority=40;parse(e){return Mt(e)}set(e,n,r){return[E(e,r*1e3),{timestampIsSet:!0}]}incompatibleTokens="*"}class Ms extends m{priority=20;parse(e){return Mt(e)}set(e,n,r){return[E(e,r),{timestampIsSet:!0}]}incompatibleTokens="*"}const vs={G:new Hr,y:new Br,Y:new Gr,R:new Vr,u:new Xr,Q:new jr,q:new Kr,M:new zr,L:new Jr,w:new es,I:new ns,d:new as,D:new os,E:new is,e:new cs,c:new us,i:new ls,a:new fs,b:new ms,B:new hs,h:new gs,H:new ws,K:new ys,k:new ps,m:new Ds,s:new bs,S:new Ts,X:new Es,x:new xs,t:new Ps,T:new Ms},As=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Os=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Rs=/^'([^]*?)'?$/,Ns=/''/g,_s=/\S/,ks=/[a-zA-Z]/;function Is(t,e,n,r){const s=()=>E(n,NaN),a=Lr(),o=a.locale??pt,i=a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,c=a.weekStartsOn??a.locale?.options?.weekStartsOn??0;if(!e)return t?s():p(n,r?.in);const u={firstWeekContainsDate:i,weekStartsOn:c,locale:o},d=[new Ur(r?.in,n)],l=e.match(Os).map(f=>{const g=f[0];if(g in Te){const M=Te[g];return M(f,o.formatLong)}return f}).join("").match(As),w=[];for(let f of l){xt(f)&&Ee(f,e,t),Et(f)&&Ee(f,e,t);const g=f[0],M=vs[g];if(M){const{incompatibleTokens:v}=M;if(Array.isArray(v)){const q=w.find(V=>v.includes(V.token)||V.token===g);if(q)throw new RangeError(`The format string mustn't contain \`${q.fullToken}\` and \`${f}\` at the same time`)}else if(M.incompatibleTokens==="*"&&w.length>0)throw new RangeError(`The format string mustn't contain \`${f}\` and any other token at the same time`);w.push({token:g,fullToken:f});const $=M.run(t,f,o.match,u);if(!$)return s();d.push($.setter),t=$.rest}else{if(g.match(ks))throw new RangeError("Format string contains an unescaped latin alphabet character `"+g+"`");if(f==="''"?f="'":g==="'"&&(f=Ss(f)),t.indexOf(f)===0)t=t.slice(f.length);else return s()}}if(t.length>0&&_s.test(t))return s();const x=d.map(f=>f.priority).sort((f,g)=>g-f).filter((f,g,M)=>M.indexOf(f)===g).map(f=>d.filter(g=>g.priority===f).sort((g,M)=>M.subPriority-g.subPriority)).map(f=>f[0]);let P=p(n,r?.in);if(isNaN(+P))return s();const S={};for(const f of x){if(!f.validate(P,u))return s();const g=f.set(P,S,u);Array.isArray(g)?(P=g[0],Object.assign(S,g[1])):P=g}return P}function Ss(t){return t.match(Rs)[1].replace(Ns,"'")}function Ys(t,e){const n=()=>E(e?.in,NaN),s=$s(t);let a;if(s.date){const u=qs(s.date,2);a=Fs(u.restDateString,u.year)}if(!a||isNaN(+a))return n();const o=+a;let i=0,c;if(s.time&&(i=Qs(s.time),isNaN(i)))return n();if(s.timezone){if(c=Us(s.timezone),isNaN(c))return n()}else{const u=new Date(o+i),d=p(0,e?.in);return d.setFullYear(u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()),d.setHours(u.getUTCHours(),u.getUTCMinutes(),u.getUTCSeconds(),u.getUTCMilliseconds()),d}return p(o+i+c,e?.in)}const j={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},Cs=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,Ls=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,Ws=/^([+-])(\d{2})(?::?(\d{2}))?$/;function $s(t){const e={},n=t.split(j.dateTimeDelimiter);let r;if(n.length>2)return e;if(/:/.test(n[0])?r=n[0]:(e.date=n[0],r=n[1],j.timeZoneDelimiter.test(e.date)&&(e.date=t.split(j.timeZoneDelimiter)[0],r=t.substr(e.date.length,t.length))),r){const s=j.timezone.exec(r);s?(e.time=r.replace(s[1],""),e.timezone=s[1]):e.time=r}return e}function qs(t,e){const n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+e)+"})|(\\d{2}|[+-]\\d{"+(2+e)+"})$)"),r=t.match(n);if(!r)return{year:NaN,restDateString:""};const s=r[1]?parseInt(r[1]):null,a=r[2]?parseInt(r[2]):null;return{year:a===null?s:a*100,restDateString:t.slice((r[1]||r[2]).length)}}function Fs(t,e){if(e===null)return new Date(NaN);const n=t.match(Cs);if(!n)return new Date(NaN);const r=!!n[4],s=U(n[1]),a=U(n[2])-1,o=U(n[3]),i=U(n[4]),c=U(n[5])-1;if(r)return Xs(e,i,c)?Hs(e,i,c):new Date(NaN);{const u=new Date(0);return!Gs(e,a,o)||!Vs(e,s)?new Date(NaN):(u.setUTCFullYear(e,a,Math.max(s,o)),u)}}function U(t){return t?parseInt(t):1}function Qs(t){const e=t.match(Ls);if(!e)return NaN;const n=pe(e[1]),r=pe(e[2]),s=pe(e[3]);return js(n,r,s)?n*Ne+r*Re+s*1e3:NaN}function pe(t){return t&&parseFloat(t.replace(",","."))||0}function Us(t){if(t==="Z")return 0;const e=t.match(Ws);if(!e)return 0;const n=e[1]==="+"?-1:1,r=parseInt(e[2]),s=e[3]&&parseInt(e[3])||0;return Ks(r,s)?n*(r*Ne+s*Re):NaN}function Hs(t,e,n){const r=new Date(0);r.setUTCFullYear(t,0,4);const s=r.getUTCDay()||7,a=(e-1)*7+n+1-s;return r.setUTCDate(r.getUTCDate()+a),r}const Bs=[31,null,31,30,31,30,31,31,30,31,30,31];function Ot(t){return t%400===0||t%4===0&&t%100!==0}function Gs(t,e,n){return e>=0&&e<=11&&n>=1&&n<=(Bs[e]||(Ot(t)?29:28))}function Vs(t,e){return e>=1&&e<=(Ot(t)?366:365)}function Xs(t,e,n){return e>=1&&e<=53&&n>=0&&n<=6}function js(t,e,n){return t===24?e===0&&n===0:n>=0&&n<60&&e>=0&&e<60&&t>=0&&t<25}function Ks(t,e){return e>=0&&e<=59}const K=t=>{if(!t.includes("T")){for(const n of zs){const r=Is(t,n,new Date);if(be(r))return r}return null}const e=Ys(t);return be(e)?e:null},zs=["yyyy-MM-dd","MM-dd-yyyy"],xe=(t,e,n)=>{const r={[Yn]:e?.contentType||Sn};return e?.jwt&&(r.Authorization=`Bearer ${e.jwt}`),e?.chatReference&&(r[Cn]=e.chatReference),{...r,...n}},Js=t=>{const e={...t};return e[we]&&(e[we]=e[we].substring(0,8)+"...[REDACTED]"),e.Authorization&&(e.Authorization="Bearer [REDACTED]"),e[z]&&(e[z]=e[z].substring(0,8)+"...[REDACTED]"),e},Ke=async(t,e,n)=>await fetch(t,{method:n.method||"GET",headers:e,body:n.body?JSON.stringify(n.body):void 0}),Zs=async(t,e,n)=>await fetch(t,{method:n.method,headers:e,body:n?.isFormData&&typeof n?.body=="string"?n.body:JSON.stringify(n.body),signal:n?.signal});class ea{constructor(){this.decoder=new TextDecoder}async streamChat(e,n,r={},s){const{onMessage:a,onError:o,onComplete:i,signal:c}=r;try{const u=await this.initializeStreamRequest(e,n,c,s);await this.processStreamData(u,a),i?.()}catch(u){this.handleStreamError(u,o)}}async initializeStreamRequest(e,n,r,s){const a=xe(void 0,{jwt:s}),o=await Zs(e,{Accept:"text/event-stream",...a},{method:"POST",body:n,signal:r});if(!o.ok){const i=await o.text();let c={};try{c=JSON.parse(i)}catch{c.error="Failed to parse error body"}throw new Ue({status:o.status,message:c.error??"No response body"})}if(!o.body)throw new Ue({message:"No response body",status:o.status});return o.body.getReader()}async processStreamData(e,n){let r="";try{for(;;){const{done:s,value:a}=await e.read();if(s){r.trim()&&this.parseSSEDataLine(r,n);break}const o=this.decoder.decode(a,{stream:!0});r+=o;const i=r.split(`
2
+ `);r=i.pop()||"";for(const c of i)this.parseSSEDataLine(c,n)}}finally{e.releaseLock()}}handleStreamError(e,n){const r=e instanceof Error?e:new Error(String(e));throw n?.(r),r}parseSSEDataLine(e,n){const r=e.trim();if(!(!r||r.startsWith(":"))&&r.startsWith("data: ")){const s=r.slice(6);if(s==="[DONE]"){console.info("SSE: Stream completed");return}let a;try{a=JSON.parse(s)}catch(o){console.error(`Failed to parse SSE data: ${s} ${o}`)}n?.(a)}}}new ea;class ta{constructor(e){this.config=e,console.info("SdmxApiClient initialized",{apiUrl:e.apiUrl||"NOT SET"})}async getRequest(e,n){return this.request(e,{...n,method:"GET"})}async postRequest(e,n,r){return this.request(e,{...n,method:"POST"},r)}async streamRequest(e,n,r){const s=`${this.config.apiUrl}/${e}`,a={...xe(void 0,{jwt:this.config.jwt}),...n.headers};this.config.apiKey!=null&&(a[z]=this.config.apiKey);const o=new ReadableStream({async start(c){try{const u=await Ke(s,a,n);if(!u.ok){const x=await u.text();throw console.error(`Fetch failed! Status: ${u.status}, Body: ${x}`),new Error(`Fetch failed with status ${u.status}`)}const d=u.body?.getReader();if(!d)throw new Error("Failed to create stream reader");const l=new Uint8Array([239,187,191]);c.enqueue(l);const w=async()=>{const{done:x,value:P}=await d.read();x?c.close():(c.enqueue(P),await w())};w()}catch(u){c.error(u)}}}),i=new Headers({"Content-Disposition":`attachment; filename=${encodeURIComponent(r)}`});return new Response(o,{headers:i})}async request(e,n,r){const s=Date.now(),a=`${r||this.config.apiUrl}/${e}`,o={...xe(void 0,{jwt:this.config.jwt}),...n.headers};this.config.apiKey!=null&&(o["Ocp-Apim-Subscription-Key"]=this.config.apiKey),this.addInfoRequestLog("API Request",a,n,o);try{const i=await Ke(a,o,n),c=Date.now()-s;let u;const d=await i.text();try{u=d?JSON.parse(d):{}}catch{if(this.addErrorRequestParsing(a,n,i,c,d),!i.ok)throw new Error(`API request failed: ${i.status} ${i.statusText} - ${d.substring(0,100)}`);u={data:d}}if(!i.ok){this.addErrorRequestLog(a,n,i,c,u);const l=In(u,i);throw new Error(`API request failed: ${l}`)}return u}catch(i){const c=Date.now()-s;throw console.error("API Request Exception",{method:n.method,url:a,duration:`${c}ms`,error:i instanceof Error?i.message:String(i)}),i}}addInfoRequestLog(e,n,r,s){const a={method:r.method||"GET",url:n,headers:Js(s)};r.body&&(a.body=r.body),console.info(e,a)}addErrorRequestLog(e,n,r,s,a){console.error("API Request Failed",{method:n.method,url:e,status:r.status,statusText:r.statusText,duration:`${s}ms`,response:a})}addErrorRequestParsing(e,n,r,s,a){console.error("API Response Parse Error",{method:n.method,url:e,status:r.status,statusText:r.statusText,duration:`${s}ms`,responseText:a.substring(0,200),error:"Response is not valid JSON"})}}const na=["FREQ","FREQUENCY"];var Rt=(t=>(t.CONDITIONAL="Conditional",t.MANDATORY="Mandatory",t))(Rt||{}),re=(t=>(t.DIMENSION="Dimension",t.MEASURE_DIMENSION="MeasureDimension",t.TIME_DIMENSION="TimeDimension",t))(re||{}),Nt=(t=>(t.UNBOUNDED="unbounded",t))(Nt||{});const _t=(t,e)=>{const n=t?.data?.dataSets?.[0],s=t?.data?.structures?.[0]?.attributes?.dimensionGroup||[],a=n?.dimensionGroupAttributes,o={};for(const i of s){const c=i.relationship.dimensions,{codedSeriesKey:u,decodedSeriesKey:d}=Se(t,e,c);o[i.id]={values:a?.[u]||[],decodedSeriesKey:d,codedSeriesKey:u}}return o},Se=(t,e,n)=>{const r=t?.data?.structures?.[0],s=[...r?.dimensions.series||[],...r?.dimensions.observation||[]],a=new Array(s?.length),o=new Array(s?.length);return n?.forEach(i=>{const c=s?.findIndex(l=>l.id===i)||0,u=e[c],d=s[c].values.findIndex(l=>l.id===u||l.value===u)||0;a[c]=d>=0?d:u,o[c]=u}),{codedSeriesKey:a.join(":"),decodedSeriesKey:o.join(":")}},ra=(t,e,n)=>{const r=t?.data?.dataSets?.[0],s=t?.data?.structures?.[0],a=(s?.attributes?.dimensionGroup||[]).filter(l=>l.relationship.dimensions?.length===1&&l.relationship.dimensions.includes(e||"")),o=r?.dimensionGroupAttributes,i=[...s?.dimensions.series||[],...s?.dimensions.observation||[]],c=i?.findIndex(l=>l.id===e),u=new Array(i?.length);u[c]=n||"";const d={};for(const l of a){const w=l.relationship.dimensions,{codedSeriesKey:x,decodedSeriesKey:P}=Se(t,u,w);d[l.id]={values:o?.[x]||[],decodedSeriesKey:P,codedSeriesKey:x}}return d},kt=(t,e)=>{if(e==null)return;const n=t.values?.[e];return n??(e instanceof Array?{values:e}:{value:e.toString()})},It="Observation",sa=t=>{const e=t?.data?.dataSets,n=t?.data?.structures?.[0];if(!e||!n)return[];const r=n.attributes,s=n.dimensions,a=r?.dimensionGroup||[],o=e[0].series||e[0].observations,i=s.series?.length?s.series:s.observation,c=[];for(const u in o){const d=[],{name:l,parsedTimeSeriesValue:w}=St(u,i),x=o[u],P=x.attributes||[];if(Object.keys(x).length===0){c.push({name:l,parsedTimeSeriesValue:w,values:d,attributes:[],dataSetAttrs:[]});continue}d.push(...oa(x,n));const S=ee(r?.series||[],v=>P[v]),f=ia(n.attributes?.dataSet||[],e[0].attributes?.filter(v=>v!=null)||[]),g=_t(t,w),M=a.map((v,$)=>{const q=g[v.id],V=kt(v,q.values[$]);return{attribute:v,dimensionGroupValue:V,dimensionGroupData:q}});c.push({name:l,parsedTimeSeriesValue:w,values:d,attributes:S,dataSetAttrs:f,dimensionGroupAttributes:M})}return c},St=(t,e)=>{const n=t.split(new RegExp("(?<!\\|):(?!\\||$)")),r=[];for(let s=0;s<n.length;s++){const a=e?.[s],o=Number(n[s]);if(o<0||a==null)continue;const i=a.values[o];if(i==null){r.push(n[s].replace("|:",":"));continue}r.push(i?.id||i?.value||"")}return{name:Yt(r),parsedTimeSeriesValue:r}},ee=(t,e)=>{const n=[];for(let r=0;r<t.length;r++){const s=t[r],a=e(r),o=a!=null&&s.values!=null?aa(a,s):void 0;n.push({name:s.id,value:o})}return n},aa=(t,e)=>{const n=e.values[t];return n==null?typeof t=="object"?t:t.toString():n?.id||n?.value||n?.ids||n?.values},Yt=t=>t.map(e=>e?Ct(e):"").join("."),Ct=t=>t.replace(/\./g,"|.").replace(/:/g,"|:"),oa=(t,e)=>{const n=e.measures?.observation?.length;if(t.observations==null)return[{values:ze(t,e.measures),obsAttributes:ee(e.attributes?.observation||[],o=>t[o+n]),dimensionAtObservation:It}];const r=t.observations,s=e.dimensions.observation?.[0],a=[];for(const o in r){const i=s?.values[o];a.push({dimensionAtObservation:i?.value||i?.id,values:ze(r[o],e.measures),obsAttributes:ee(e.attributes?.observation||[],c=>r[o][c+n])})}return a},ze=(t,e)=>e?.observation?.map((n,r)=>({name:n.id,value:t[r]}))||[],ia=(t,e)=>t.reduce((n,r,s)=>{const a=e[s];return ca(n,r,a,""),n},[]),ca=(t,e,n,r)=>{const s=n!=null?e?.values?.length>0?e.values[n]?.id||e.values[n]?.value:String(n):r;t.push({name:e.id,value:s||""})},Lt=/^[0-9][0-9][0-9][0-9]-Q[1-4]$/,Wt=/^[0-9][0-9][0-9][0-9]-W[0-9][0-9]?$/,$t=/^[0-9][0-9][0-9][0-9]-S[1-2]$/,qt=/^[0-9][0-9][0-9][0-9]$/,Ft=/^[0-9][0-9][0-9][0-9]-(0[1-9]|1[0-2])-[0-9][0-9]$/,Qt=/^[0-9][0-9][0-9][0-9]-M(0[1-9]|(1[0-2]))$/,se=t=>qt.exec(t),ae=t=>!!se(t),Ut=t=>$t.exec(t),oe=t=>!!Ut(t),ie=t=>Qt.exec(t),ce=t=>!!ie(t),ue=t=>Lt.exec(t),de=t=>!!ue(t),Ht=t=>Ft.exec(t),Bt=t=>!!Ht(t),Gt=t=>Wt.exec(t),le=t=>!!Gt(t),Ye=1440*60*1e3,Ce=7*Ye;function Le(t){const e=`${t}-01-01`,n=new Date(e);if(n.getDay()!==4){const s=1+(4-n.getDay()+7)%7;n.setMonth(0,s)}return n}function ua(t){const e=new Date(t),r=-((e.getDay()+6)%7)+3;return e.setDate(e.getDate()+r),new Date(e.valueOf())}function Pe(t,e="W"){const n=`${t}-12-31`,r=G(new Date(n),e);if(r.weekYear===t)return r.weekNumber;const s=`${t}-12-24`;return G(new Date(s),e).weekNumber}function We(t,e,n="W"){return`${t}-${n}${e<10?"0"+e:e}`}function G(t,e="W"){const n=ua(t),r=n.getFullYear(),s=Le(r),a=1+Math.ceil((n.getTime()-s.getTime())/Ce);return{code:We(r,a,e),weekNumber:a,weekYear:r}}function Vt(t){const[e,n]=t.split("-W"),s=Le(+e).getTime()+(+n-1)*Ce-3*Ye;return new Date(s)}function Xt(t){const[e,n]=t.split("-W"),s=Le(+e).getTime()+(+n-1)*Ce+3*Ye;return new Date(s)}function $e(t){return ae(t)?da(t):oe(t)?fa(t):de(t)?ha(t):ce(t)?wa(t):le(t)?Vt(t):pa(t)}function qe(t){return ae(t)?la(t):oe(t)?ma(t):de(t)?ga(t):ce(t)?ya(t):le(t)?Xt(t):Da(t)}function da(t){const e=se(t);if(e)return new Date(Number(e[0]),0,1)}function la(t){const e=se(t);if(e)return new Date(Number(e[0])+1,0,1)}function fa(t){const[e,n]=t.split("-S");switch(+n){case 1:return new Date(+e,0,1);case 2:return new Date(+e,6,1)}}function ma(t){const[e,n]=t.split("-S");switch(+n){case 1:return new Date(+e,6,1);case 2:return new Date(+e+1,0,1)}}function ha(t){const e=ue(t);if(!e)return;const[n,r]=e[0].split("-Q");switch(+r){case 1:return new Date(+n,0,1);case 2:return new Date(+n,3,1);case 3:return new Date(+n,6,1);case 4:return new Date(+n,9,1)}}function ga(t){const e=ue(t);if(!e)return;const[n,r]=e[0].split("-Q");switch(+r){case 1:return new Date(+n,3,1);case 2:return new Date(+n,6,1);case 3:return new Date(+n,9,1);case 4:return new Date(+n+1,0,1)}}function wa(t){const e=ie(t);if(!e)return;const[n,r]=e[0].split("-M");return new Date(+n,+r-1,1)}function ya(t){const e=ie(t);if(!e)return;const[n,r]=e[0].split("-M");return new Date(+n,+r,1)}const pa=t=>new Date(`${t}T00:00:00`),Da=t=>{const e=new Date(`${t}T23:59:00`);return e.setMinutes(e.getMinutes()+1),e},ba=1,jt=(t,e,n,r=!0,s="Q")=>{const a=[],o=e&&e>3?va(e,r):1,i=n?Math.floor((n-1)/3):4;for(let c=o;c<=i;c++)a.push(`${t}-${s}${c}`);return a},Kt=(t,e,n,r="S")=>{const s=[];return(e||1)<7&&(n||12)>6&&s.push(`${t}-${r}1`),n==null&&s.push(`${t}-${r}2`),s},Ta=t=>Math.ceil(t/3),zt=(t,e,n="M")=>`${t}-${n}${e.toString().padStart(2,"0")}`,Ea=(t,e,n="M")=>{const r=[];for(let s=e;s<=12;s++)r.push(zt(t,s,n));return r},xa=(t,e,n,r="M")=>{const s=[];for(let a=e;a<n;a++)s.push(zt(t,a,r));return s},Jt=(t,e,n,r="M")=>{const s=e||1,a=n==null,o=n||12;return a?Ea(t,s,r):xa(t,s,o,r)},Pa=(t,e,n="M")=>{switch(e){case 0:return[`${t}-${n}01`,`${t}-${n}02`,`${t}-${n}03`];case 1:return[`${t}-${n}04`,`${t}-${n}05`,`${t}-${n}06`];case 2:return[`${t}-${n}07`,`${t}-${n}08`,`${t}-${n}09`];case 3:return[`${t}-${n}10`,`${t}-${n}11`,`${t}-${n}12`];default:return[]}},Zt=(t,e)=>{const n=R(e,!0),r=R(t),s=n.getFullYear(),a=r.getFullYear(),o=n.getTime()<=r.getTime()?a+ba-s:0;return Array.from({length:o},(c,u)=>s+u)},R=(t,e=!1)=>{const n=Ma(t,e);return n?(n.getTimezoneOffset()>0&&n.setMinutes(n.getMinutes()+n.getTimezoneOffset()),n):new Date},Ma=(t,e=!1)=>{const n=Number(t);return t.toString().length!==13?e?$e(t):qe(t):isNaN(n)?new Date(`${t}T00:00:00.000Z`):new Date(n)},va=(t,e)=>e?Math.floor((t+1)/3):Math.ceil((t+1)/3),Aa=(t,e)=>{const n=Ze(t)-Ze(e);if(n===0&&t!==e){const r=Je(t),s=Je(e);return r-s}return n},Je=t=>ae(t)?6:oe(t)?5:de(t)?4:ce(t)?3:le(t)?2:Bt(t)?1:0,Ze=(t,e=!1)=>(e?$e(t):qe(t))?.getTime()||0;var fe=(t=>(t.LAST_UPDATE_AT="lastUpdatedAt",t.SERIES_COUNT="series_count",t))(fe||{}),en=(t=>(t.C="c",t))(en||{}),N=(t=>(t.EQUALS="eq",t.NOT_EQUALS="ne",t.LESS="lt",t.LESS_OR_EQUAL="le",t.GREATER="gt",t.GREATER_OR_EQUAL="ge",t.CONTAINS="co",t.NOT_CONTAINS="nc",t.STARTS="sw",t.ENDS="ew",t))(N||{}),tn=(t=>(t.BOOLEAN="Boolean",t.DATE_TIME="DateTime",t.DECIMAL="Decimal",t.INTEGER="Integer",t.OBSERVATION_TIME_PERIOD="ObservationalTimePeriod",t.STRING="String",t.TIME="Time",t.TIME_RANGE="TimeRange",t.URI="URI",t))(tn||{}),nn=(t=>(t.ANNUAL="A",t.QUARTERLY="Q",t.MONTHLY="M",t))(nn||{});function Oa(t){return t?.annotations?.find(e=>{if(e.id===fe.LAST_UPDATE_AT)return e})?.value}const me=(t,e)=>t?.names&&t?.names[e]||t?.name,rn=(t,e,n)=>{if(!(!t||e?.has(t?.id))&&(e?.set(t?.id,t),t?.parent)){const r=n?.get(t?.parent);rn(r,e,n)}},sn=(t,e)=>{const n=new Map,r=new Map(t?.map(s=>[s.id,s]));return e?.forEach(s=>{rn(s,n,r)}),Array.from(n?.values())},an="time_period_end",on="time_period_start",cn="TIME_PERIOD",Ra=t=>{const e=t?.find(a=>a.id===on),n=t?.find(a=>a.id===an),r=n?.title?new Date(n?.title):null;return{startPeriod:e?.title?new Date(e?.title):null,endPeriod:r}},Na=(t,e)=>t.id.localeCompare(e.id),_a=(t,e)=>t.memberValue.localeCompare(e.memberValue),ka=(t,e)=>{const n=new Array(t.length),r=t.map((o,i)=>[o,i]);r.sort((o,i)=>Na(o[0],i[0]));const s=[...e];s.sort(_a);let a=0;for(const o of r){const i=o[0];for(;a<s.length&&s[a].memberValue.localeCompare(i.id)<0;)a+=1;a<s.length&&s[a].memberValue===i.id&&(n[o[1]]=o[0])}return n.filter(o=>o!=null)},Ia=t=>!!t?.some(e=>e.parent),Sa=(t,e,n,r,s=[])=>{let a=t||[];if(Ya(n||[],e||"")){const o=(n||[])[0].cubeRegions?.find(({isIncluded:i})=>i);if(o){const i=o.memberSelection?.find(({componentId:c})=>c===e);i?a=a.length===0?(i.selectionValues||[]).map(({memberValue:c})=>({id:c,name:c})):ka(a,i.selectionValues):a=[]}}else s.length!==0&&(a=a.filter(({id:o})=>s.includes(o)));return Ia(t)&&(a=sn(t,a)),a?.map(o=>({...o,name:r?me(o,r):o?.name}))},Ya=(t,e)=>t!=null&&t.length>0&&e!=null,Ca=t=>{const e=[];return t?.filters?.forEach(n=>{n.componentCode!==cn&&e.push({componentCode:n.componentCode,operator:N.EQUALS,value:n.values.join(",")})}),e},La=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,et=t=>{if(typeof t!="string")throw new TypeError("Invalid argument expected string");const e=t.match(La);if(!e)throw new Error(`Invalid argument not valid semver ('${t}' received)`);return e.shift(),e},tt=t=>t==="*"||t==="x"||t==="X",nt=t=>{const e=parseInt(t,10);return isNaN(e)?t:e},Wa=(t,e)=>typeof t!=typeof e?[String(t),String(e)]:[t,e],$a=(t,e)=>{if(tt(t)||tt(e))return 0;const[n,r]=Wa(nt(t),nt(e));return n>r?1:n<r?-1:0},rt=(t,e)=>{for(let n=0;n<Math.max(t.length,e.length);n++){const r=$a(t[n]||"0",e[n]||"0");if(r!==0)return r}return 0},qa=(t,e)=>{const n=et(t),r=et(e),s=n.pop(),a=r.pop(),o=rt(n,r);return o!==0?o:s&&a?rt(s.split("."),a.split(".")):s||a?s?-1:1:0},Fa=(t,e,n)=>{Qa(n);const r=qa(t,e);return un[n].includes(r)},un={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},st=Object.keys(un),Qa=t=>{if(st.indexOf(t)===-1)throw new Error(`Invalid operator, expected one of ${st.join("|")}`)},te="+",he=(t,e)=>{const{agency:n,id:r,version:s}=L(t),a=e.filter(c=>c.agencyID===n&&c.id===r&&!c?.version?.includes(te));if(a.length===1)return a[0];if(!s?.includes(te))return a.find(c=>c.version===s);const o=a.map(c=>c.version),i=dn(s,o);return a.find(c=>c.version===i[0])},dn=(t,e)=>{const n=Ua(t,e);return n.length>0?[n[0]]:[]},Ua=(t,e)=>{const n=[];return e.forEach(r=>{fn(t,r)&&n.push(r)}),n},ln=t=>{const e=t.trim().replace(/\d+\+/,"*"),[n]=e.split("*");return new RegExp(`^${n}`)},fn=(t,e)=>{const n=t.trim().replace(/\+/,"");return ln(t).test(e)&&Fa(e,n,">=")},ge=(t,e)=>{const{concept:n}=mn(t,e);return n},mn=(t,e)=>{if(t==null)return{concept:void 0,scheme:void 0};const{childId:n,agency:r,id:s,version:a}=ot(t);if(a?.includes(te)){const o=he(t,e);return{concept:Me(o?.concepts||[],n),scheme:o}}for(const o of e)if(Ha(o,s,r,a))return{concept:Me(o?.concepts||[],n),scheme:o};return{concept:void 0,scheme:void 0}},Me=(t,e)=>t?.find(n=>n.id===e),Ha=(t,e,n,r)=>t.id===e&&t.agencyID===n&&t.version===r,Ba=(t=[],e=[],n)=>{const r=n?.conceptIdentity||"",s=ge(r,e),a=B(n?.localRepresentation?.enumeration),o=B(s?.coreRepresentation?.enumeration),i=a||o;if(i!=null)return he(i,t)},Ga=(t,e,n,r)=>{const s=e?.find(a=>a?.id===t?.id)?.values;return n?.filter(a=>s?.some(o=>o.id===a.id))?.map(a=>({...a,name:r?me(a,r):a?.name}))||[]},hn=(t,e)=>{const n=e?.dataStructureComponents?.attributeList,r=t?.metadataStructureComponents?.metadataAttributeList;return n?.metadataAttributeUsages?.map(s=>{const a=r?.metadataAttributes?.find(o=>o?.id===s?.metadataAttributeReference);return{...a,attributeRelationship:s.attributeRelationship,isMandatory:Number(a?.minOccurs)>0}})},Va=(t=[],e,n)=>{const r=B(e?.conceptIdentity)||"",s=ge(r,t);return n?me(s,n):s?.name??s?.id??e?.id};function ve(t){return t?.dataStructures?.[0]?.dataStructureComponents?.dimensionList}function Xa(t){return t?.data?.structures?.[0]?.dimensions?.series||[]}function ja(t){return t?.data?.structures?.[0]?.dimensions?.observation?.[0].values.map(e=>e.value).filter(e=>e!=null)||[]}function Ka(t){return t.find(e=>e.type===re.TIME_DIMENSION)}const za=t=>{const e=new Map,n=t?.dataStructures?.[0],r=t?.metadataStructures?.[0],s=t?.conceptSchemes||[],a=t?.codelists||[];return t&&[...ve(t)?.dimensions||[],...ve(t)?.timeDimensions||[],...hn(r,n),...n?.dataStructureComponents?.attributeList?.attributes||[]].forEach(i=>{const c=ge(i?.conceptIdentity,s),u=i?.localRepresentation?.enumeration||c?.coreRepresentation?.enumeration,d=he(u,a);i?.id&&(u?e.set(i?.id,{...d,name:c?.name,names:c?.names}):e.set(i?.id,{id:i?.id,name:c?.name,names:c?.names}))}),e},Ja=t=>t?.find(e=>e.id===fe.SERIES_COUNT)?.title||"",Za="/api/download",eo=(t,e,n,r,s,a,o)=>{const i=new URLSearchParams({urn:t,format:e,compress:"false",filename:a,filters:JSON.stringify(s),attribute:r,language:n,isMetadata:o?"true":"none"}).toString(),c=`${Za}?${i}`;window.open(c,"_blank")},to=(t,e)=>{const n=[];for(const r of t){if(r.type!==re.DIMENSION)continue;const s=e.find(a=>a.componentCode===r.id);s!=null&&s.values?.length>0?n.push(s.values?.join(mt)):n.push("*")}return n.join(".")},gn=(t,e)=>{if(!t||!t.startPeriod&&!t.endPeriod)return null;const n=[],{startPeriod:r,endPeriod:s}=t;if(r&&n.push(`${N.GREATER_OR_EQUAL}${Qe}${at(r)}`),s&&n.push(`${N.LESS_OR_EQUAL}${Qe}${at(s)}`),n.length===0)return null;const a=e;return n.map(o=>`${encodeURIComponent(`c[${a}]`)}${Rn}${encodeURIComponent(o)}`).join(ft)},at=t=>Yr(t,"yyyy-MM-dd"),no=(t,e)=>{const n=wn(t,e)||null;return n?gn(n,e?.id):null},wn=(t,e)=>{const n=e.id,r=t?.filters?.find(c=>c.componentCode===n);if(!r||!r.values)return null;const s=r.values?.filter(c=>!!c);if(!s.length)return null;const a=r.operator;if(a===N.LESS_OR_EQUAL||a===N.LESS)return{startPeriod:null,endPeriod:K(s[0])};if(a===N.GREATER_OR_EQUAL||a===N.GREATER)return{startPeriod:K(s[0]),endPeriod:null};const o=K(s[0]),i=K(s[1]);return{startPeriod:o,endPeriod:i}},Fe=(t,e,n)=>{const r=R(e,!0),s=R(n),a=R(t,!0),o=R(t),i=r.getTime()>a.getTime()?r:a,c=s.getTime()<o.getTime()?s:o;return{start:i,end:c}},yn=(t,e,n,r="W")=>{const s=+t,{start:a,end:o}=Fe(t,e,n);if(a.getTime()>o.getTime())return[];const i=G(a,r),c=i.weekYear===s?i.weekNumber:i.weekYear<s?1:Pe(s,r),u=G(o,r),d=u.weekYear===s?u.weekNumber:u.weekYear>s?Pe(s,r):1,l=[];if(c<d)for(let w=c;w<=d;w++)l.push(We(s,w,r));return l},ro=t=>{const e=new Date(t);return e.setMinutes(e.getMinutes()-e.getTimezoneOffset()),e.toISOString().slice(0,10)},pn=(t,e,n)=>{const{start:r,end:s}=Fe(t,e,n);if(r.getTime()>s.getTime())return[];const a=[],o=new Date(r.getFullYear(),r.getMonth(),r.getDate()),i=new Date(s.getFullYear(),s.getMonth(),s.getDate());for(;o.getTime()<i.getTime();){const c=ro(o);a.push(c),o.setDate(o.getDate()+1)}return a},Dn=t=>({isDailyExist:!!t?.some(({memberValue:e})=>e==="D"),isWeeklyExist:!!t?.some(({memberValue:e})=>e==="W"),isMonthlyExist:!!t?.some(({memberValue:e})=>e==="M"),isQuarterlyExist:!!t?.some(({memberValue:e})=>e==="Q"),isSemiAnnualExist:!!t?.some(({memberValue:e})=>e==="S"),isYearlyExist:!!t?.some(({memberValue:e})=>e==="A"||e==="Y")}),so=(t,e,n,r)=>{const s=r===0?R(e.toString(),!0)?.getMonth()+1:void 0,a=r===t.length-1?R(n.toString())?.getMonth()+1||1:void 0;return{startMonth:s,endMonth:a}},bn=["FREQUENCY","FREQ"],ao=(t,e)=>{const n=t?.[0]?.cubeRegions?.[0]?.memberSelection?.find(c=>bn.includes(c.componentId))?.selectionValues,r=Dn(n||[]),s=e?.startPeriod?.getTime()||1,a=e?.endPeriod?.getTime()||1,o=Zt(a,s),i=[];return o.forEach((c,u)=>{const d=[],{startMonth:l,endMonth:w}=so(o,new Date(s),new Date(a),u),{isDailyExist:x,isWeeklyExist:P,isMonthlyExist:S,isQuarterlyExist:f,isSemiAnnualExist:g,isYearlyExist:M}=r;M&&d.push(c.toString()),g&&d.push(...Kt(c,l,w)),f&&d.push(...jt(c,l,w,!1)),S&&d.push(...Jt(c,l,w)),P&&d.push(...yn(c,s.toString(),a.toString())),x&&d.push(...pn(c,s.toString(),a.toString())),i.push(...d)}),i};function oo(t){const{urn:e}=t.details;return it(e.resourceId,e.version,e.agencyId)}function io(t){const e={};for(const n of t.datasets){const r=n.dataset,s=oo(r);e[s]=r.details.dimensions}return e}exports.Annotations=fe;exports.AssignmentStatus=Rt;exports.AvailabilityApi=An;exports.DATASET_DATA_URL=lt;exports.DatasetApi=kn;exports.DimensionType=re;exports.DownloadType=ut;exports.FREQUENCY_DIMENSION_ID=na;exports.FREQUENCY_DIM_ID=bn;exports.FileColumnsAttribute=ct;exports.GET_v3_FILTER_ALL=ht;exports.GET_v3_FILTER_AND=Nn;exports.GET_v3_FILTER_OR=mt;exports.OBSERVATION_KEY=It;exports.OccurrenceType=Nt;exports.Periods=nn;exports.RepresentationTextType=tn;exports.SDMX_DATA_QUERY_PARAMS=en;exports.SINGLE_WILDCARD_SYMBOL=te;exports.SdmxApiClient=ta;exports.SdmxAvailabilityMode=Ae;exports.SdmxDataFormat=H;exports.SdmxDetails=Oe;exports.SdmxReferences=ne;exports.SeriesFilterOperator=N;exports.TIME_PERIOD=cn;exports.TIME_PERIOD_END=an;exports.TIME_PERIOD_START=on;exports.buildDatasetDimensionsMetadataMap=io;exports.dailyPattern=Ft;exports.decodeDimensionId=Ct;exports.findCodelistByDimension=Ba;exports.generateDatasetDataRequest=De;exports.generateShortUrn=it;exports.getAdditionalColumns=ao;exports.getAnnotationPeriod=Ra;exports.getArtifactByUrnWithWildCard=he;exports.getAttachedDimensionsSeriesByDimension=ra;exports.getAttachedDimensionsSeriesByTsId=_t;exports.getAttachedDimensionsSeriesKey=Se;exports.getAttributeValueFromDataQueryResponse=kt;exports.getAvailableCodes=Ga;exports.getAvailableCodesFromConstrains=Sa;exports.getChildParsedUrn=ot;exports.getConcept=ge;exports.getConceptByUrn=Me;exports.getConceptWithScheme=mn;exports.getConvertedMetaAttributes=hn;exports.getDailyRegExp=Ht;exports.getDaysColumns=pn;exports.getDimensionTitle=Va;exports.getDimensions=ve;exports.getFilteredItemsWithParents=sn;exports.getFiltersDtoFromDataQuery=Ca;exports.getISOWeek=G;exports.getKeyFromUrn=B;exports.getLastUpdatedTime=Oa;exports.getLastWeekNumberOfYear=Pe;exports.getLocalizedName=me;exports.getMonthlyData=Jt;exports.getMonthlyDataByQuarter=Pa;exports.getMonthlyRegExp=ie;exports.getParsedEndPeriodDate=qe;exports.getParsedResponse=sa;exports.getParsedStartPeriodDate=$e;exports.getPeriodDate=R;exports.getPeriods=Dn;exports.getQuarterByMonth=Ta;exports.getQuarterlyRegExp=ue;exports.getQuartersData=jt;exports.getQueryTimePeriodFilters=gn;exports.getRequestAcceptHeader=dt;exports.getResolvedVersionBySingleWildcard=dn;exports.getSemiAnnualData=Kt;exports.getSemiAnnuallyRegExp=Ut;exports.getSeriesAttributes=ee;exports.getSeriesName=St;exports.getStructureComponentsMap=za;exports.getStructureDimensions=Xa;exports.getTimeDimension=Ka;exports.getTimePeriods=ja;exports.getTimeQueryFilter=no;exports.getTimeRangeFromAttachment=wn;exports.getTimeSeriesCount=Ja;exports.getTimeSeriesFilterKey=to;exports.getTimeSeriesId=Yt;exports.getWeekCode=We;exports.getWeeklyPeriodEndDate=Xt;exports.getWeeklyPeriodStartDate=Vt;exports.getWeeklyRegExp=Gt;exports.getWeeksColumns=yn;exports.getWildCardRegexp=ln;exports.getYearPeriod=Fe;exports.getYearlyRegExp=se;exports.getYears=Zt;exports.isDaily=Bt;exports.isMonthly=ce;exports.isQuarterly=de;exports.isSemiAnnually=oe;exports.isWeekly=le;exports.isWildCardVersionCorrect=fn;exports.isYearly=ae;exports.monthlyPattern=Qt;exports.openDownloadWindow=eo;exports.quarterPattern=Lt;exports.semiAnnuallyPattern=$t;exports.sortPeriods=Aa;exports.splitUrn=L;exports.weeklyPattern=Wt;exports.yearlyPattern=qt;