import{s as h}from"./chunk-LvLJmgfZ.js";import{t as c}from"./react-Bj1aDYRI.js";import{t as y}from"./context-BFPaAUK_.js";var l=new Map,m=!1;try{m=new Intl.NumberFormat("de-DE",{signDisplay:"exceptZero"}).resolvedOptions().signDisplay==="exceptZero"}catch{}var u=!1;try{u=new Intl.NumberFormat("de-DE",{style:"unit",unit:"degree"}).resolvedOptions().style==="unit"}catch{}var p={degree:{narrow:{default:"\xB0","ja-JP":" \u5EA6","zh-TW":"\u5EA6","sl-SI":" \xB0"}}},f=class{format(t){var e;let r="";if(r=!m&&this.options.signDisplay!=null?b(this.numberFormatter,this.options.signDisplay,t):this.numberFormatter.format(t),this.options.style==="unit"&&!u){let{unit:s,unitDisplay:i="short",locale:a}=this.resolvedOptions();if(!s)return r;let o=(e=p[s])==null?void 0:e[i];r+=o[a]||o.default}return r}formatToParts(t){return this.numberFormatter.formatToParts(t)}formatRange(t,r){if(typeof this.numberFormatter.formatRange=="function")return this.numberFormatter.formatRange(t,r);if(r<t)throw RangeError("End date must be >= start date");return`${this.format(t)} \u2013 ${this.format(r)}`}formatRangeToParts(t,r){if(typeof this.numberFormatter.formatRangeToParts=="function")return this.numberFormatter.formatRangeToParts(t,r);if(r<t)throw RangeError("End date must be >= start date");let e=this.numberFormatter.formatToParts(t),s=this.numberFormatter.formatToParts(r);return[...e.map(i=>({...i,source:"startRange"})),{type:"literal",value:" \u2013 ",source:"shared"},...s.map(i=>({...i,source:"endRange"}))]}resolvedOptions(){let t=this.numberFormatter.resolvedOptions();return!m&&this.options.signDisplay!=null&&(t={...t,signDisplay:this.options.signDisplay}),!u&&this.options.style==="unit"&&(t={...t,style:"unit",unit:this.options.unit,unitDisplay:this.options.unitDisplay}),t}constructor(t,r={}){this.numberFormatter=d(t,r),this.options=r}};function d(t,r={}){var a;let{numberingSystem:e}=r;if(e&&t.includes("-nu-")&&(t.includes("-u-")||(t+="-u-"),t+=`-nu-${e}`),r.style==="unit"&&!u){let{unit:o,unitDisplay:n="short"}=r;if(!o)throw Error('unit option must be provided with style: "unit"');if(!((a=p[o])!=null&&a[n]))throw Error(`Unsupported unit ${o} with unitDisplay = ${n}`);r={...r,style:"decimal"}}let s=t+(r?Object.entries(r).sort((o,n)=>o[0]<n[0]?-1:1).join():"");if(l.has(s))return l.get(s);let i=new Intl.NumberFormat(t,r);return l.set(s,i),i}function b(t,r,e){if(r==="auto")return t.format(e);if(r==="never")return t.format(Math.abs(e));{let s=!1;if(r==="always"?s=e>0||Object.is(e,0):r==="exceptZero"&&(Object.is(e,-0)||Object.is(e,0)?e=Math.abs(e):s=e>0),s){let i=t.format(-e),a=t.format(e),o=i.replace(a,"").replace(/\u200e|\u061C/,"");return[...o].length!==1&&console.warn("@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case"),i.replace(a,"!!!").replace(o,"+").replace("!!!",a)}else return t.format(e)}}var g=h(c(),1);function D(t={}){let{locale:r}=y();return(0,g.useMemo)(()=>new f(r,t),[r,t])}export{f as n,D as t};
