diff --git a/feature/device-long-urls/assets/index-78cbd312.js b/feature/device-long-urls/assets/index-835be51d.js similarity index 99% rename from feature/device-long-urls/assets/index-78cbd312.js rename to feature/device-long-urls/assets/index-835be51d.js index 07917f2a..33684a0b 100644 --- a/feature/device-long-urls/assets/index-78cbd312.js +++ b/feature/device-long-urls/assets/index-835be51d.js @@ -903,7 +903,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */var Xw=function(){return Xw=Object.assign||function(t){for(var n,r=1,i=arguments.length;rV(cE,{tag:At,to:`/server/${e}`,className:"servers-list__server-item",children:[t,C(Fe,{icon:MQ,className:"servers-list__server-item-icon"})]}),z5=({servers:e,children:t,embedded:n=!1})=>V(Ye,{children:[t&&C("h5",{className:"mb-md-3",children:t}),e.length>0&&C(sE,{className:ge("servers-list__list-group",{"servers-list__list-group--embedded":n}),children:e.map(({id:r,name:i})=>C(Vse,{id:r,name:i},r))})]}),V5=({color:e=hE,className:t})=>C("svg",{className:t,viewBox:"0 0 512 512",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:V("g",{fill:e,children:[C("path",{d:" M 23.71 85.08 C 17.22 49.81 49.44 14.86 85.08 18.12 C 118.83 19.21 145.72 53.33 139.45 86.37 C 155.64 102.30 171.32 118.83 187.87 134.36 C 198.32 111.73 208.84 89.12 219.57 66.62 C 226.05 53.84 243.47 48.74 255.73 56.27 C 263.76 62.10 270.34 69.69 277.25 76.75 C 286.28 86.61 285.72 102.89 276.31 112.31 C 223.38 165.37 170.38 218.37 117.35 271.34 C 107.72 280.99 91.01 281.25 81.11 271.86 C 74.39 264.94 66.82 258.69 61.24 250.77 C 53.72 238.52 58.85 221.07 71.64 214.62 C 94.11 203.87 116.72 193.38 139.33 182.91 C 123.81 166.36 107.30 150.68 91.37 134.49 C 60.20 140.28 27.37 116.78 23.71 85.08 Z"}),C("path",{d:" M 205.21 201.23 C 225.32 181.36 260.88 181.11 281.14 200.86 C 299.25 218.75 317.37 236.65 335.10 254.93 C 356.73 278.01 352.01 318.70 326.03 336.56 C 320.07 330.47 313.73 324.65 308.12 318.28 C 323.86 309.39 328.76 286.18 316.63 272.39 C 301.73 256.95 286.30 242.03 271.24 226.75 C 264.49 219.65 256.80 212.00 246.37 211.52 C 224.65 208.64 205.52 233.36 214.49 253.58 C 221.09 266.81 234.22 275.12 243.62 286.24 C 240.43 295.96 238.09 306.13 238.29 316.46 C 225.55 304.29 213.16 291.73 200.89 279.09 C 180.97 257.57 183.10 220.45 205.21 201.23 Z"}),C("path",{d:" M 273.90 352.07 C 252.28 328.99 256.98 288.31 282.96 270.46 C 288.93 276.54 295.26 282.36 300.88 288.72 C 285.14 297.62 280.23 320.82 292.38 334.61 C 307.27 350.05 322.70 364.96 337.75 380.25 C 344.51 387.35 352.20 395.00 362.64 395.48 C 384.35 398.37 403.49 373.64 394.51 353.42 C 387.92 340.18 374.78 331.88 365.38 320.76 C 368.56 311.04 370.91 300.86 370.71 290.54 C 383.45 302.70 395.84 315.27 408.11 327.91 C 428.03 349.43 425.90 386.55 403.78 405.77 C 383.68 425.64 348.13 425.89 327.86 406.14 C 309.75 388.25 291.60 370.37 273.90 352.07 Z"}),C("path",{d:" M 422.11 403.83 C 431.96 394.07 441.60 384.06 451.66 374.51 C 460.90 383.74 471.89 392.70 474.89 406.11 C 480.16 429.97 484.08 454.13 488.76 478.12 C 490.00 483.41 484.47 488.29 479.35 486.63 C 454.66 481.52 429.55 478.12 405.14 471.84 C 393.17 467.97 385.20 457.75 376.55 449.27 C 386.39 439.49 396.13 429.60 406.06 419.91 C 416.37 433.45 435.74 414.00 422.11 403.83 Z"})]})});const Hse=({servers:e})=>{const t=jo(),n=Jc(e),r=!qn(n);return H.useEffect(()=>{const i=n.find(({autoConnect:o})=>o);i&&t(`/server/${i.id}`)},[]),C("div",{className:"home",children:C(Er,{className:"home__main-card",children:V(er,{className:"g-0",children:[C("div",{className:"col-md-5 d-none d-md-block",children:C("div",{className:"home__logo-wrapper",children:C("div",{className:"home__logo",children:C(V5,{})})})}),V("div",{className:"col-md-7 home__servers-container",children:[C("div",{className:"home__title-wrapper",children:C("h1",{className:"home__title",children:"Welcome!"})}),C(z5,{embedded:!0,servers:n,children:!r&&V("div",{className:"p-4 text-center",children:[C("p",{className:"mb-5",children:"This application will help you manage your Shlink servers."}),C("p",{children:V(At,{to:"/server/create",className:"btn btn-outline-primary btn-lg me-2",children:[C(Fe,{icon:wC})," ",C("span",{className:"ms-1",children:"Add a server"})]})}),C("p",{className:"mb-0 mt-5",children:C(Ei,{href:"https://shlink.io/documentation",children:V("small",{children:[C("span",{className:"me-1",children:"Learn more about Shlink"})," ",C(Fe,{icon:fQ})]})})})]})})]})]})})})};const Wse=e=>()=>{const[t,n,,r]=jt(),i=Mn(),{pathname:o}=i;H.useEffect(r,[i]);const s="/settings",a=ge("main-header__toggle-icon",{"main-header__toggle-icon--opened":t});return V(YC,{color:"primary",dark:!0,fixed:"top",className:"main-header",expand:"md",children:[V(qC,{tag:At,to:"/",children:[C(V5,{className:"main-header__brand-logo",color:"white"})," Shlink"]}),C(GC,{onClick:n,children:C(Fe,{icon:PQ,className:a})}),C(i5,{navbar:!0,isOpen:t,children:V(m_,{navbar:!0,className:"ms-auto",children:[C(ZC,{children:V(n5,{tag:At,to:s,active:o.startsWith(s),children:[C(Fe,{icon:DQ}),"  Settings"]})}),C(e,{})]})})]})};const su=({children:e})=>C("div",{className:"no-menu-wrapper container-xl",children:e}),Yse=e=>({error:"border-danger",default:""})[e],qse=e=>({error:"text-danger",default:"text-muted"})[e],Eo=({className:e,children:t,loading:n=!1,type:r="default",fullWidth:i=!1})=>{const o=ge({"col-md-12":i,"col-md-10 offset-md-1":!i});return C(er,{className:ge("g-0",e),children:C("div",{className:o,children:C(Er,{className:Yse(r),body:!0,children:V("h3",{className:ge("text-center mb-0",qse(r)),children:[n&&C(Fe,{icon:qI,spin:!0}),n&&C("span",{className:"ms-2",children:t??"Loading..."}),!n&&t]})})})})};function H5(e,t){return n=>{const r=Qs(),{selectServer:i,selectedServer:o}=n;return H.useEffect(()=>{r.serverId&&i(r.serverId)},[r.serverId]),o?LZ(o)?C(t,{}):C(e,{...n}):C(su,{children:C(Eo,{loading:!0})})}}const or=(e,t)=>mse(e,t,{serializeError:rC}),Gse=(e,t)=>{const n=z3(e),r=z3(t),i=n.pop(),o=r.pop(),s=W3(n,r);return s!==0?s:i&&o?W3(i.split("."),o.split(".")):i||o?i?-1:1:0},Qw=(e,t,n)=>{Qse(n);const r=Gse(e,t);return W5[n].includes(r)},Zse=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,z3=e=>{if(typeof e!="string")throw new TypeError("Invalid argument expected string");const t=e.match(Zse);if(!t)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return t.shift(),t},V3=e=>e==="*"||e==="x"||e==="X",H3=e=>{const t=parseInt(e,10);return isNaN(t)?e:t},Kse=(e,t)=>typeof e!=typeof t?[String(e),String(t)]:[e,t],Xse=(e,t)=>{if(V3(e)||V3(t))return 0;const[n,r]=Kse(H3(e),H3(t));return n>r?1:n{for(let n=0;n":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1]},Y3=Object.keys(W5),Qse=e=>{if(typeof e!="string")throw new TypeError(`Invalid operator type, expected string but got ${typeof e}`);if(Y3.indexOf(e)===-1)throw new Error(`Invalid operator, expected one of ${Y3.join("|")}`)},SE=(e,t,n=1)=>aC(n,e+1).map(t),yi=e=>!Bo(e)&&!qn(e),sh=e=>It(t=>t.preventDefault(),e),O1=e=>qn(e)?null:e,ya=e=>t=>e===t,Y5=e=>e?"true":"false",P1=e=>e===void 0?void 0:Y5(e),Jse=(e,{maxVersion:t,minVersion:n})=>{if(!yi(e))return!1;const r=!n||Qw(e,n,">=");return(!t||Qw(e,t,"<="))&&r},q5=EI(rC,e=>{try{return Qw(e,e,"=")}catch{return!1}}),G5=e=>q5(e)?`v${e}`:e,Z5=(e="latest")=>t=>q5(t)?t:e,CE="shlink/selectedServer",eae="1.0.0",tae="999.999.999",nae="latest",rae=It(e=>e===nae?tae:e,Z5(eae)),iae=EI(e=>`${e.id}_${e.url}_${e.apiKey}`,async(e,t)=>t().then(({version:n})=>({version:rae(n),printableVersion:G5(n)}))),q3=null,EE=wn(`${CE}/resetSelectedServer`),K5=e=>or(`${CE}/selectServer`,async(t,{dispatch:n,getState:r})=>{n(EE());const{servers:i}=r(),o=i[t];if(!o)return{serverNotFound:!0};try{const{health:s}=e(o),{version:a,printableVersion:l}=await iae(o,s);return{...o,version:a,printableVersion:l}}catch{return{...o,serverNotReachable:!0}}}),oae=(e,t)=>{const n=Lse();return n.startListening({actionCreator:e.fulfilled,effect:({payload:r},{dispatch:i})=>{o_(r)&&i(t())}}),n},sae=e=>Gn({name:CE,initialState:q3,reducers:{},extraReducers:t=>{t.addCase(EE,()=>q3),t.addCase(e.fulfilled,(n,{payload:r})=>r)}}),uo=e=>t=>o_(t)&&Jse(t.version,{minVersion:e}),X5={forwardQuery:uo("2.9.0"),nonRestCors:uo("2.9.0"),defaultDomainRedirectsEdition:uo("2.10.0"),nonOrphanVisits:uo("3.0.0"),allTagsFiltering:uo("3.0.0"),domainVisits:uo("3.1.0"),excludeBotsOnShortUrls:uo("3.4.0"),filterDisabledUrls:uo("3.4.0"),deviceLongUrls:uo("3.5.0")};Object.freeze(X5);const Mi=(e,t)=>H.useMemo(()=>X5[e](t),[e,K5]);const aae=(e,t,n,r,i,o,s,a,l,c,f,h,p)=>H5(({selectedServer:m,sidebarNotPresent:g,sidebarPresent:v})=>{const w=Mn(),[y,b,x,T]=jt(),P=o_(m);if(H.useEffect(()=>T(),[w]),H.useEffect(()=>(P&&v(),()=>g()),[]),!P)return C(c,{});const k=Mi("nonOrphanVisits",m),N=Mi("domainVisits",m),D=ge("menu-layout__burger-icon",{"menu-layout__burger-icon--active":y}),U=Soe(x,T);return V(Ye,{children:[C(Fe,{icon:GX,className:D,onClick:b}),C("div",{...U,className:"menu-layout__swipeable",children:V("div",{className:"menu-layout__swipeable-inner",children:[C(n,{selectedServer:m,showOnMobile:y}),C("div",{className:"menu-layout__container",onClick:()=>T(),children:C("div",{className:"container-xl",children:V(t_,{children:[C(yt,{index:!0,element:C(ZS,{replace:!0,to:"overview"})}),C(yt,{path:"/overview",element:C(f,{})}),C(yt,{path:"/list-short-urls/:page",element:C(t,{})}),C(yt,{path:"/create-short-url",element:C(r,{})}),C(yt,{path:"/short-code/:shortCode/visits/*",element:C(i,{})}),C(yt,{path:"/short-code/:shortCode/edit",element:C(h,{})}),C(yt,{path:"/tag/:tag/visits/*",element:C(o,{})}),N&&C(yt,{path:"/domain/:domain/visits/*",element:C(s,{})}),C(yt,{path:"/orphan-visits/*",element:C(a,{})}),k&&C(yt,{path:"/non-orphan-visits/*",element:C(l,{})}),C(yt,{path:"/manage-tags",element:C(e,{})}),C(yt,{path:"/manage-domains",element:C(p,{})}),C(yt,{path:"*",element:C(w5,{to:`/server/${m.id}/list-short-urls/1`,children:"List short URLs"})})]})})})]})})]})},c),lae={sidebarPresent:!1},{actions:cae,reducer:uae}=Gn({name:"shlink/sidebar",initialState:lae,reducers:{sidebarPresent:()=>({sidebarPresent:!0}),sidebarNotPresent:()=>({sidebarPresent:!1})}}),{sidebarPresent:fae,sidebarNotPresent:dae}=cae,hae=uae,pae=({children:e})=>{const t=Mn();return H.useEffect(()=>{scrollTo(0,0)},[t]),C(Ye,{children:e})},mae="%_VERSION_%",gae=It(Z5(),G5),G3=({project:e,version:t})=>C(Ei,{href:`https://github.com/shlinkio/${e}/releases/${t}`,className:"text-muted",children:C("b",{children:t})}),vae=({selectedServer:e,clientVersion:t=mae})=>{const n=gae(t);return V("small",{className:"text-muted",children:[o_(e)&&V(Ye,{children:["Server: ",C(G3,{project:"shlink",version:e.printableVersion})," - "]}),"Client: ",C(G3,{project:"shlink-web-client",version:n})]})};const yae=({selectedServer:e,sidebar:t})=>{const n=ge("text-center",{"shlink-versions-container--with-sidebar":t.sidebarPresent});return C("div",{className:n,children:C(vae,{selectedServer:e})})},Z3={"Content-Type":"application/json"},K3=e=>e!=null&&e.body?e?{...e,headers:{...e.headers??{},...Z3}}:{headers:Z3}:e;class _ae{constructor(t){Se(this,"fetchJson",(t,n)=>this.fetch(t,K3(n)).then(async r=>{const i=await r.json();if(!r.ok)throw i;return i}));Se(this,"fetchEmpty",(t,n)=>this.fetch(t,K3(n)).then(async r=>{if(!r.ok)throw await r.json()}));Se(this,"fetchBlob",t=>this.fetch(t).then(n=>n.blob()));this.fetch=t}}const Q5=({document:e},t,n)=>{const r=e.createElement("a");r.setAttribute("href",t),r.setAttribute("download",n),r.style.visibility="hidden",e.body.appendChild(r),r.click(),e.body.removeChild(r)},J5=(e,t,n)=>{const r=new Blob([t],{type:"text/csv;charset=utf-8;"}),i=URL.createObjectURL(r);Q5(e,i,n)};class bae{constructor(t,n){this.httpClient=t,this.window=n}async saveImage(t,n){const r=await this.httpClient.fetchBlob(t),i=URL.createObjectURL(r);Q5(this.window,i,n)}}class wae{constructor(t,n){Se(this,"exportVisits",(t,n)=>{n.length&&this.exportCsv(t,n)});Se(this,"exportShortUrls",t=>{t.length&&this.exportCsv("short_urls.csv",t)});Se(this,"exportCsv",(t,n)=>{const r=this.jsonToCsv(n);J5(this.window,r,t)});this.window=t,this.jsonToCsv=n}}const xae=(e,t)=>{e.constant("window",window),e.constant("console",console),e.constant("fetch",window.fetch.bind(window)),e.service("HttpClient",_ae,"fetch"),e.service("ImageDownloader",bae,"HttpClient","window"),e.service("ReportExporter",wae,"window","jsonToCsv"),e.serviceFactory("ScrollToTop",()=>pae),e.serviceFactory("MainHeader",Wse,"ServersDropdown"),e.serviceFactory("Home",()=>Hse),e.decorator("Home",yv),e.decorator("Home",t(["servers"],["resetSelectedServer"])),e.serviceFactory("MenuLayout",aae,"TagsList","ShortUrlsList","AsideMenu","CreateShortUrl","ShortUrlVisits","TagVisits","DomainVisits","OrphanVisits","NonOrphanVisits","ServerError","Overview","EditShortUrl","ManageDomains"),e.decorator("MenuLayout",t(["selectedServer"],["selectServer","sidebarPresent","sidebarNotPresent"])),e.serviceFactory("AsideMenu",Bse,"DeleteServerButton"),e.serviceFactory("ShlinkVersionsContainer",()=>yae),e.decorator("ShlinkVersionsContainer",t(["selectedServer","sidebar"])),e.serviceFactory("ErrorHandler",Use,"window","console"),e.serviceFactory("sidebarPresent",()=>fae),e.serviceFactory("sidebarNotPresent",()=>dae)};const ia=({text:e,disabled:t=!1,className:n="",children:r,dropdownClassName:i,right:o=!1,minWidth:s})=>{const[a,l]=jt(),c=`dropdown-btn__toggle btn-block ${n}`,f={minWidth:s&&`${s}px`};return V(nu,{isOpen:a,toggle:l,disabled:t,className:i,children:[C(ru,{caret:!0,className:c,color:"primary",children:e}),C(ml,{className:"w-100",end:o,style:f,children:r})]})};const Sae=({listDomains:e,value:t,domainsList:n,onChange:r})=>{const[i,,o,s]=jt(),{domains:a}=n,l=qn(t),c=()=>r("");return H.useEffect(()=>{e()},[]),i?V(th,{children:[C(Bc,{value:t??"",placeholder:"Domain",onChange:f=>r(f.target.value)}),C(mt,{id:"backToDropdown",outline:!0,type:"button",className:"domains-dropdown__back-btn","aria-label":"Back to domains list",onClick:It(c,s),children:C(Fe,{icon:mQ})}),C(Ur,{target:"backToDropdown",placement:"left",trigger:"hover",children:"Existing domains"})]}):V(ia,{text:l?"Domain":`Domain: ${t}`,className:l?"domains-dropdown__toggle-btn":"domains-dropdown__toggle-btn--active",children:[a.map(({domain:f,isDefault:h})=>V(Ve,{active:(t===f||h)&&l,onClick:()=>r(f),children:[f,h&&C("span",{className:"float-end text-muted",children:"default"})]},f)),C(Ve,{divider:!0}),C(Ve,{onClick:It(c,o),children:C("i",{children:"New domain"})})]})},Ao=({errorData:e,fallbackMessage:t})=>V(Ye,{children:[(e==null?void 0:e.detail)??t,MX(e)&&V("p",{className:"mb-0",children:["Invalid elements: [",e.invalidElements.join(", "),"]"]})]}),Lr=({children:e,type:t,className:n,small:r=!1})=>C(er,{className:n,children:C("div",{className:ge({"col-md-10 offset-md-1":!r,"col-12":r}),children:C(dn,{role:"document",className:ge("text-center",{"bg-main":t==="success","bg-danger":t==="error","bg-warning":t==="warning","text-white":t!=="warning"}),bodyClassName:ge({"p-2":r}),children:e})})});const Cae=500;let Mp;const ah=({onChange:e,className:t,large:n=!0,noBorder:r=!1,initialValue:i=""})=>{const[o,s]=H.useState(i),a=()=>{Mp&&clearTimeout(Mp),Mp=null},l=(c,f=Cae)=>{s(c),a(),Mp=setTimeout(()=>{e(c),a()},f)};return V("div",{className:ge("search-field",t),children:[C("input",{type:"text",className:ge("form-control search-field__input",{"form-control-lg":n,"search-field__input--no-border":r}),placeholder:"Search...",value:o,onChange:c=>l(c.target.value)}),C(Fe,{icon:OQ,className:"search-field__icon"}),C("div",{className:"close search-field__close btn-close",hidden:o==="",id:"search-field__close",onClick:()=>l("",0)})]})};const T_=({isOpen:e,toggle:t,children:n,right:r=!0})=>V(v_,{toggle:t,isOpen:e,children:[V(ru,{size:"sm",caret:!0,outline:!0,className:"dropdown-btn-menu__dropdown-toggle",children:[" ",C(Fe,{icon:yQ})," "]}),C(ml,{end:r,children:n})]}),kf=(e,t,n)=>Bo(n)?e.shortCode===t&&!e.domain:e.shortCode===t&&e.domain===n,Eae=(e,t)=>!e.domain&&t===O8?!0:e.domain===t,Tae=(e,t)=>{const n=(t==null?void 0:t.validateUrls)??!1;return e?{longUrl:e.longUrl,tags:e.tags,title:e.title??void 0,domain:e.domain??void 0,validSince:e.meta.validSince??void 0,validUntil:e.meta.validUntil??void 0,maxVisits:e.meta.maxVisits??void 0,crawlable:e.crawlable,forwardQuery:e.forwardQuery,deviceLongUrls:e.deviceLongUrls,validateUrl:n}:{longUrl:"",validateUrl:n}},e8="__",Oae=e=>e.replaceAll("/",e8),vm=e=>e.replaceAll(e8,"/");function et(e){if(e===null||e===!0||e===!1)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function Pe(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function ym(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ym=function(n){return typeof n}:ym=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},ym(e)}function Re(e){Pe(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||ym(e)==="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):((typeof e=="string"||t==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function gl(e,t){Pe(2,arguments);var n=Re(e),r=et(t);return isNaN(r)?new Date(NaN):(r&&n.setDate(n.getDate()+r),n)}function no(e,t){Pe(2,arguments);var n=Re(e),r=et(t);if(isNaN(r))return new Date(NaN);if(!r)return n;var i=n.getDate(),o=new Date(n.getTime());o.setMonth(n.getMonth()+r+1,0);var s=o.getDate();return i>=s?o:(n.setFullYear(o.getFullYear(),o.getMonth(),i),n)}function _m(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_m=function(n){return typeof n}:_m=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},_m(e)}function Pae(e,t){if(Pe(2,arguments),!t||_m(t)!=="object")return new Date(NaN);var n=t.years?et(t.years):0,r=t.months?et(t.months):0,i=t.weeks?et(t.weeks):0,o=t.days?et(t.days):0,s=t.hours?et(t.hours):0,a=t.minutes?et(t.minutes):0,l=t.seconds?et(t.seconds):0,c=Re(e),f=r||n?no(c,r+n*12):c,h=o||i?gl(f,o+i*7):f,p=a+s*60,m=l+p*60,g=m*1e3,v=new Date(h.getTime()+g);return v}function TE(e,t){Pe(2,arguments);var n=Re(e).getTime(),r=et(t);return new Date(n+r)}var kae=36e5;function Mae(e,t){Pe(2,arguments);var n=et(t);return TE(e,n*kae)}var Rae={};function Wo(){return Rae}function t8(e,t){var n,r,i,o,s,a,l,c;Pe(1,arguments);var f=Wo(),h=et((n=(r=(i=(o=t==null?void 0:t.weekStartsOn)!==null&&o!==void 0?o:t==null||(s=t.locale)===null||s===void 0||(a=s.options)===null||a===void 0?void 0:a.weekStartsOn)!==null&&i!==void 0?i:f.weekStartsOn)!==null&&r!==void 0?r:(l=f.locale)===null||l===void 0||(c=l.options)===null||c===void 0?void 0:c.weekStartsOn)!==null&&n!==void 0?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var p=Re(e),m=p.getDay(),g=(m=i.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}function Lae(e){Pe(1,arguments);var t=Nae(e),n=new Date(0);n.setFullYear(t,0,4),n.setHours(0,0,0,0);var r=Td(n);return r}function Uc(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}function Dr(e){Pe(1,arguments);var t=Re(e);return t.setHours(0,0,0,0),t}var Dae=864e5;function Od(e,t){Pe(2,arguments);var n=Dr(e),r=Dr(t),i=n.getTime()-Uc(n),o=r.getTime()-Uc(r);return Math.round((i-o)/Dae)}var Aae=6e4;function Jw(e,t){Pe(2,arguments);var n=et(t);return TE(e,n*Aae)}function OE(e,t){Pe(2,arguments);var n=et(t),r=n*7;return gl(e,r)}function zc(e,t){Pe(2,arguments);var n=et(t);return no(e,n*12)}function bm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?bm=function(n){return typeof n}:bm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},bm(e)}function X3(e){Pe(1,arguments);var t;if(e&&typeof e.forEach=="function")t=e;else if(bm(e)==="object"&&e!==null)t=Array.prototype.slice.call(e);else return new Date(NaN);var n;return t.forEach(function(r){var i=Re(r);(n===void 0||ni||isNaN(i.getDate()))&&(n=i)}),n||new Date(NaN)}function xm(e,t){Pe(2,arguments);var n=Re(e),r=Re(t),i=n.getTime()-r.getTime();return i<0?-1:i>0?1:i}var PE=6e4,O_=36e5,Iae=1e3;function Fae(e,t){Pe(2,arguments);var n=Dr(e),r=Dr(t);return n.getTime()===r.getTime()}function Sm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Sm=function(n){return typeof n}:Sm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Sm(e)}function kE(e){return Pe(1,arguments),e instanceof Date||Sm(e)==="object"&&Object.prototype.toString.call(e)==="[object Date]"}function n8(e){if(Pe(1,arguments),!kE(e)&&typeof e!="number")return!1;var t=Re(e);return!isNaN(Number(t))}function Pd(e,t){Pe(2,arguments);var n=Re(e),r=Re(t),i=n.getFullYear()-r.getFullYear(),o=n.getMonth()-r.getMonth();return i*12+o}function e2(e){Pe(1,arguments);var t=Re(e),n=Math.floor(t.getMonth()/3)+1;return n}function _v(e,t){Pe(2,arguments);var n=Re(e),r=Re(t);return n.getFullYear()-r.getFullYear()}function J3(e,t){var n=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return n<0?-1:n>0?1:n}function ME(e,t){Pe(2,arguments);var n=Re(e),r=Re(t),i=J3(n,r),o=Math.abs(Od(n,r));n.setDate(n.getDate()-i*o);var s=Number(J3(n,r)===-i),a=i*(o-s);return a===0?0:a}function r8(e,t){return Pe(2,arguments),Re(e).getTime()-Re(t).getTime()}var eR={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(t){return t<0?Math.ceil(t):Math.floor(t)}},$ae="trunc";function RE(e){return e?eR[e]:eR[$ae]}function jae(e,t,n){Pe(2,arguments);var r=r8(e,t)/O_;return RE(n==null?void 0:n.roundingMethod)(r)}function al(e){Pe(1,arguments);var t=Re(e);return t.setHours(23,59,59,999),t}function Bae(e){Pe(1,arguments);var t=Re(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}function Uae(e){Pe(1,arguments);var t=Re(e);return al(t).getTime()===Bae(t).getTime()}function bv(e,t){Pe(2,arguments);var n=Re(e),r=Re(t),i=xm(n,r),o=Math.abs(Pd(n,r)),s;if(o<1)s=0;else{n.getMonth()===1&&n.getDate()>27&&n.setDate(30),n.setMonth(n.getMonth()-i*o);var a=xm(n,r)===-i;Uae(Re(e))&&o===1&&xm(e,r)===1&&(a=!1),s=i*(o-Number(a))}return s===0?0:s}function zae(e,t,n){Pe(2,arguments);var r=r8(e,t)/1e3;return RE(n==null?void 0:n.roundingMethod)(r)}function Vae(e,t,n){Pe(2,arguments);var r=ME(e,t)/7;return RE(n==null?void 0:n.roundingMethod)(r)}function t2(e){Pe(1,arguments);var t=Re(e),n=t.getMonth(),r=n-n%3;return t.setMonth(r,1),t.setHours(0,0,0,0),t}function Hae(e){Pe(1,arguments);var t=Re(e);return t.setDate(1),t.setHours(0,0,0,0),t}function Wae(e){Pe(1,arguments);var t=Re(e),n=new Date(0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}function Yae(e,t){var n,r,i,o,s,a,l,c;Pe(1,arguments);var f=Wo(),h=et((n=(r=(i=(o=t==null?void 0:t.weekStartsOn)!==null&&o!==void 0?o:t==null||(s=t.locale)===null||s===void 0||(a=s.options)===null||a===void 0?void 0:a.weekStartsOn)!==null&&i!==void 0?i:f.weekStartsOn)!==null&&r!==void 0?r:(l=f.locale)===null||l===void 0||(c=l.options)===null||c===void 0?void 0:c.weekStartsOn)!==null&&n!==void 0?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var p=Re(e),m=p.getDay(),g=(m=i.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}function Kae(e){Pe(1,arguments);var t=o8(e),n=new Date(0);n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0);var r=Vc(n);return r}var Xae=6048e5;function s8(e){Pe(1,arguments);var t=Re(e),n=Vc(t).getTime()-Kae(t).getTime();return Math.round(n/Xae)+1}function ll(e,t){var n,r,i,o,s,a,l,c;Pe(1,arguments);var f=Wo(),h=et((n=(r=(i=(o=t==null?void 0:t.weekStartsOn)!==null&&o!==void 0?o:t==null||(s=t.locale)===null||s===void 0||(a=s.options)===null||a===void 0?void 0:a.weekStartsOn)!==null&&i!==void 0?i:f.weekStartsOn)!==null&&r!==void 0?r:(l=f.locale)===null||l===void 0||(c=l.options)===null||c===void 0?void 0:c.weekStartsOn)!==null&&n!==void 0?n:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var p=Re(e),m=p.getUTCDay(),g=(m=1&&m<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(h+1,0,m),g.setUTCHours(0,0,0,0);var v=ll(g,t),w=new Date(0);w.setUTCFullYear(h,0,m),w.setUTCHours(0,0,0,0);var y=ll(w,t);return f.getTime()>=v.getTime()?h+1:f.getTime()>=y.getTime()?h:h-1}function Qae(e,t){var n,r,i,o,s,a,l,c;Pe(1,arguments);var f=Wo(),h=et((n=(r=(i=(o=t==null?void 0:t.firstWeekContainsDate)!==null&&o!==void 0?o:t==null||(s=t.locale)===null||s===void 0||(a=s.options)===null||a===void 0?void 0:a.firstWeekContainsDate)!==null&&i!==void 0?i:f.firstWeekContainsDate)!==null&&r!==void 0?r:(l=f.locale)===null||l===void 0||(c=l.options)===null||c===void 0?void 0:c.firstWeekContainsDate)!==null&&n!==void 0?n:1),p=NE(e,t),m=new Date(0);m.setUTCFullYear(p,0,h),m.setUTCHours(0,0,0,0);var g=ll(m,t);return g}var Jae=6048e5;function a8(e,t){Pe(1,arguments);var n=Re(e),r=ll(n,t).getTime()-Qae(n,t).getTime();return Math.round(r/Jae)+1}function rt(e,t){for(var n=e<0?"-":"",r=Math.abs(e).toString();r.length0?r:1-r;return rt(n==="yy"?i%100:i,n.length)},M:function(t,n){var r=t.getUTCMonth();return n==="M"?String(r+1):rt(r+1,2)},d:function(t,n){return rt(t.getUTCDate(),n.length)},a:function(t,n){var r=t.getUTCHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];case"aaaa":default:return r==="am"?"a.m.":"p.m."}},h:function(t,n){return rt(t.getUTCHours()%12||12,n.length)},H:function(t,n){return rt(t.getUTCHours(),n.length)},m:function(t,n){return rt(t.getUTCMinutes(),n.length)},s:function(t,n){return rt(t.getUTCSeconds(),n.length)},S:function(t,n){var r=n.length,i=t.getUTCMilliseconds(),o=Math.floor(i*Math.pow(10,r-3));return rt(o,n.length)}};const Xo=ele;var Il={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},tle={G:function(t,n,r){var i=t.getUTCFullYear()>0?1:0;switch(n){case"G":case"GG":case"GGG":return r.era(i,{width:"abbreviated"});case"GGGGG":return r.era(i,{width:"narrow"});case"GGGG":default:return r.era(i,{width:"wide"})}},y:function(t,n,r){if(n==="yo"){var i=t.getUTCFullYear(),o=i>0?i:1-i;return r.ordinalNumber(o,{unit:"year"})}return Xo.y(t,n)},Y:function(t,n,r,i){var o=NE(t,i),s=o>0?o:1-o;if(n==="YY"){var a=s%100;return rt(a,2)}return n==="Yo"?r.ordinalNumber(s,{unit:"year"}):rt(s,n.length)},R:function(t,n){var r=o8(t);return rt(r,n.length)},u:function(t,n){var r=t.getUTCFullYear();return rt(r,n.length)},Q:function(t,n,r){var i=Math.ceil((t.getUTCMonth()+1)/3);switch(n){case"Q":return String(i);case"QQ":return rt(i,2);case"Qo":return r.ordinalNumber(i,{unit:"quarter"});case"QQQ":return r.quarter(i,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(i,{width:"narrow",context:"formatting"});case"QQQQ":default:return r.quarter(i,{width:"wide",context:"formatting"})}},q:function(t,n,r){var i=Math.ceil((t.getUTCMonth()+1)/3);switch(n){case"q":return String(i);case"qq":return rt(i,2);case"qo":return r.ordinalNumber(i,{unit:"quarter"});case"qqq":return r.quarter(i,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(i,{width:"narrow",context:"standalone"});case"qqqq":default:return r.quarter(i,{width:"wide",context:"standalone"})}},M:function(t,n,r){var i=t.getUTCMonth();switch(n){case"M":case"MM":return Xo.M(t,n);case"Mo":return r.ordinalNumber(i+1,{unit:"month"});case"MMM":return r.month(i,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(i,{width:"narrow",context:"formatting"});case"MMMM":default:return r.month(i,{width:"wide",context:"formatting"})}},L:function(t,n,r){var i=t.getUTCMonth();switch(n){case"L":return String(i+1);case"LL":return rt(i+1,2);case"Lo":return r.ordinalNumber(i+1,{unit:"month"});case"LLL":return r.month(i,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(i,{width:"narrow",context:"standalone"});case"LLLL":default:return r.month(i,{width:"wide",context:"standalone"})}},w:function(t,n,r,i){var o=a8(t,i);return n==="wo"?r.ordinalNumber(o,{unit:"week"}):rt(o,n.length)},I:function(t,n,r){var i=s8(t);return n==="Io"?r.ordinalNumber(i,{unit:"week"}):rt(i,n.length)},d:function(t,n,r){return n==="do"?r.ordinalNumber(t.getUTCDate(),{unit:"date"}):Xo.d(t,n)},D:function(t,n,r){var i=Zae(t);return n==="Do"?r.ordinalNumber(i,{unit:"dayOfYear"}):rt(i,n.length)},E:function(t,n,r){var i=t.getUTCDay();switch(n){case"E":case"EE":case"EEE":return r.day(i,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(i,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(i,{width:"short",context:"formatting"});case"EEEE":default:return r.day(i,{width:"wide",context:"formatting"})}},e:function(t,n,r,i){var o=t.getUTCDay(),s=(o-i.weekStartsOn+8)%7||7;switch(n){case"e":return String(s);case"ee":return rt(s,2);case"eo":return r.ordinalNumber(s,{unit:"day"});case"eee":return r.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(o,{width:"short",context:"formatting"});case"eeee":default:return r.day(o,{width:"wide",context:"formatting"})}},c:function(t,n,r,i){var o=t.getUTCDay(),s=(o-i.weekStartsOn+8)%7||7;switch(n){case"c":return String(s);case"cc":return rt(s,n.length);case"co":return r.ordinalNumber(s,{unit:"day"});case"ccc":return r.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(o,{width:"narrow",context:"standalone"});case"cccccc":return r.day(o,{width:"short",context:"standalone"});case"cccc":default:return r.day(o,{width:"wide",context:"standalone"})}},i:function(t,n,r){var i=t.getUTCDay(),o=i===0?7:i;switch(n){case"i":return String(o);case"ii":return rt(o,n.length);case"io":return r.ordinalNumber(o,{unit:"day"});case"iii":return r.day(i,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(i,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(i,{width:"short",context:"formatting"});case"iiii":default:return r.day(i,{width:"wide",context:"formatting"})}},a:function(t,n,r){var i=t.getUTCHours(),o=i/12>=1?"pm":"am";switch(n){case"a":case"aa":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(o,{width:"narrow",context:"formatting"});case"aaaa":default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(t,n,r){var i=t.getUTCHours(),o;switch(i===12?o=Il.noon:i===0?o=Il.midnight:o=i/12>=1?"pm":"am",n){case"b":case"bb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(o,{width:"narrow",context:"formatting"});case"bbbb":default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(t,n,r){var i=t.getUTCHours(),o;switch(i>=17?o=Il.evening:i>=12?o=Il.afternoon:i>=4?o=Il.morning:o=Il.night,n){case"B":case"BB":case"BBB":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(o,{width:"narrow",context:"formatting"});case"BBBB":default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(t,n,r){if(n==="ho"){var i=t.getUTCHours()%12;return i===0&&(i=12),r.ordinalNumber(i,{unit:"hour"})}return Xo.h(t,n)},H:function(t,n,r){return n==="Ho"?r.ordinalNumber(t.getUTCHours(),{unit:"hour"}):Xo.H(t,n)},K:function(t,n,r){var i=t.getUTCHours()%12;return n==="Ko"?r.ordinalNumber(i,{unit:"hour"}):rt(i,n.length)},k:function(t,n,r){var i=t.getUTCHours();return i===0&&(i=24),n==="ko"?r.ordinalNumber(i,{unit:"hour"}):rt(i,n.length)},m:function(t,n,r){return n==="mo"?r.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):Xo.m(t,n)},s:function(t,n,r){return n==="so"?r.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):Xo.s(t,n)},S:function(t,n){return Xo.S(t,n)},X:function(t,n,r,i){var o=i._originalDate||t,s=o.getTimezoneOffset();if(s===0)return"Z";switch(n){case"X":return nR(s);case"XXXX":case"XX":return ka(s);case"XXXXX":case"XXX":default:return ka(s,":")}},x:function(t,n,r,i){var o=i._originalDate||t,s=o.getTimezoneOffset();switch(n){case"x":return nR(s);case"xxxx":case"xx":return ka(s);case"xxxxx":case"xxx":default:return ka(s,":")}},O:function(t,n,r,i){var o=i._originalDate||t,s=o.getTimezoneOffset();switch(n){case"O":case"OO":case"OOO":return"GMT"+tR(s,":");case"OOOO":default:return"GMT"+ka(s,":")}},z:function(t,n,r,i){var o=i._originalDate||t,s=o.getTimezoneOffset();switch(n){case"z":case"zz":case"zzz":return"GMT"+tR(s,":");case"zzzz":default:return"GMT"+ka(s,":")}},t:function(t,n,r,i){var o=i._originalDate||t,s=Math.floor(o.getTime()/1e3);return rt(s,n.length)},T:function(t,n,r,i){var o=i._originalDate||t,s=o.getTime();return rt(s,n.length)}};function tR(e,t){var n=e>0?"-":"+",r=Math.abs(e),i=Math.floor(r/60),o=r%60;if(o===0)return n+String(i);var s=t||"";return n+String(i)+s+rt(o,2)}function nR(e,t){if(e%60===0){var n=e>0?"-":"+";return n+rt(Math.abs(e)/60,2)}return ka(e,t)}function ka(e,t){var n=t||"",r=e>0?"-":"+",i=Math.abs(e),o=rt(Math.floor(i/60),2),s=rt(i%60,2);return r+o+n+s}const nle=tle;var rR=function(t,n){switch(t){case"P":return n.date({width:"short"});case"PP":return n.date({width:"medium"});case"PPP":return n.date({width:"long"});case"PPPP":default:return n.date({width:"full"})}},l8=function(t,n){switch(t){case"p":return n.time({width:"short"});case"pp":return n.time({width:"medium"});case"ppp":return n.time({width:"long"});case"pppp":default:return n.time({width:"full"})}},rle=function(t,n){var r=t.match(/(P+)(p+)?/)||[],i=r[1],o=r[2];if(!o)return rR(t,n);var s;switch(i){case"P":s=n.dateTime({width:"short"});break;case"PP":s=n.dateTime({width:"medium"});break;case"PPP":s=n.dateTime({width:"long"});break;case"PPPP":default:s=n.dateTime({width:"full"});break}return s.replace("{{date}}",rR(i,n)).replace("{{time}}",l8(o,n))},ile={p:l8,P:rle};const n2=ile;var ole=["D","DD"],sle=["YY","YYYY"];function c8(e){return ole.indexOf(e)!==-1}function u8(e){return sle.indexOf(e)!==-1}function wv(e,t,n){if(e==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var ale={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"}},lle=function(t,n,r){var i,o=ale[t];return typeof o=="string"?i=o:n===1?i=o.one:i=o.other.replace("{{count}}",n.toString()),r!=null&&r.addSuffix?r.comparison&&r.comparison>0?"in "+i:i+" ago":i};const cle=lle;function k1(e){return function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth,r=e.formats[n]||e.formats[e.defaultWidth];return r}}var ule={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},fle={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},dle={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},hle={date:k1({formats:ule,defaultWidth:"full"}),time:k1({formats:fle,defaultWidth:"full"}),dateTime:k1({formats:dle,defaultWidth:"full"})};const ple=hle;var mle={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},gle=function(t,n,r,i){return mle[t]};const vle=gle;function Bu(e){return function(t,n){var r=n!=null&&n.context?String(n.context):"standalone",i;if(r==="formatting"&&e.formattingValues){var o=e.defaultFormattingWidth||e.defaultWidth,s=n!=null&&n.width?String(n.width):o;i=e.formattingValues[s]||e.formattingValues[o]}else{var a=e.defaultWidth,l=n!=null&&n.width?String(n.width):e.defaultWidth;i=e.values[l]||e.values[a]}var c=e.argumentCallback?e.argumentCallback(t):t;return i[c]}}var yle={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},_le={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},ble={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"]},wle={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"]},xle={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"}},Sle={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"}},Cle=function(t,n){var r=Number(t),i=r%100;if(i>20||i<10)switch(i%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},Ele={ordinalNumber:Cle,era:Bu({values:yle,defaultWidth:"wide"}),quarter:Bu({values:_le,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Bu({values:ble,defaultWidth:"wide"}),day:Bu({values:wle,defaultWidth:"wide"}),dayPeriod:Bu({values:xle,defaultWidth:"wide",formattingValues:Sle,defaultFormattingWidth:"wide"})};const Tle=Ele;function Uu(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],o=t.match(i);if(!o)return null;var s=o[0],a=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(a)?Ple(a,function(h){return h.test(s)}):Ole(a,function(h){return h.test(s)}),c;c=e.valueCallback?e.valueCallback(l):l,c=n.valueCallback?n.valueCallback(c):c;var f=t.slice(s.length);return{value:c,rest:f}}}function Ole(e,t){for(var n in e)if(e.hasOwnProperty(n)&&t(e[n]))return n}function Ple(e,t){for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:{},r=t.match(e.matchPattern);if(!r)return null;var i=r[0],o=t.match(e.parsePattern);if(!o)return null;var s=e.valueCallback?e.valueCallback(o[0]):o[0];s=n.valueCallback?n.valueCallback(s):s;var a=t.slice(i.length);return{value:s,rest:a}}}var Mle=/^(\d+)(th|st|nd|rd)?/i,Rle=/\d+/i,Nle={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},Lle={any:[/^b/i,/^(a|c)/i]},Dle={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Ale={any:[/1/i,/2/i,/3/i,/4/i]},Ile={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},Fle={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]},$le={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},jle={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]},Ble={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},Ule={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}},zle={ordinalNumber:kle({matchPattern:Mle,parsePattern:Rle,valueCallback:function(t){return parseInt(t,10)}}),era:Uu({matchPatterns:Nle,defaultMatchWidth:"wide",parsePatterns:Lle,defaultParseWidth:"any"}),quarter:Uu({matchPatterns:Dle,defaultMatchWidth:"wide",parsePatterns:Ale,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:Uu({matchPatterns:Ile,defaultMatchWidth:"wide",parsePatterns:Fle,defaultParseWidth:"any"}),day:Uu({matchPatterns:$le,defaultMatchWidth:"wide",parsePatterns:jle,defaultParseWidth:"any"}),dayPeriod:Uu({matchPatterns:Ble,defaultMatchWidth:"any",parsePatterns:Ule,defaultParseWidth:"any"})};const Vle=zle;var Hle={code:"en-US",formatDistance:cle,formatLong:ple,formatRelative:vle,localize:Tle,match:Vle,options:{weekStartsOn:0,firstWeekContainsDate:1}};const LE=Hle;var Wle=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Yle=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,qle=/^'([^]*?)'?$/,Gle=/''/g,Zle=/[a-zA-Z]/;function _o(e,t,n){var r,i,o,s,a,l,c,f,h,p,m,g,v,w,y,b,x,T;Pe(2,arguments);var P=String(t),k=Wo(),N=(r=(i=n==null?void 0:n.locale)!==null&&i!==void 0?i:k.locale)!==null&&r!==void 0?r:LE,D=et((o=(s=(a=(l=n==null?void 0:n.firstWeekContainsDate)!==null&&l!==void 0?l:n==null||(c=n.locale)===null||c===void 0||(f=c.options)===null||f===void 0?void 0:f.firstWeekContainsDate)!==null&&a!==void 0?a:k.firstWeekContainsDate)!==null&&s!==void 0?s:(h=k.locale)===null||h===void 0||(p=h.options)===null||p===void 0?void 0:p.firstWeekContainsDate)!==null&&o!==void 0?o:1);if(!(D>=1&&D<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var U=et((m=(g=(v=(w=n==null?void 0:n.weekStartsOn)!==null&&w!==void 0?w:n==null||(y=n.locale)===null||y===void 0||(b=y.options)===null||b===void 0?void 0:b.weekStartsOn)!==null&&v!==void 0?v:k.weekStartsOn)!==null&&g!==void 0?g:(x=k.locale)===null||x===void 0||(T=x.options)===null||T===void 0?void 0:T.weekStartsOn)!==null&&m!==void 0?m:0);if(!(U>=0&&U<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!N.localize)throw new RangeError("locale must contain localize property");if(!N.formatLong)throw new RangeError("locale must contain formatLong property");var A=Re(e);if(!n8(A))throw new RangeError("Invalid time value");var Y=Uc(A),q=i8(A,Y),ee={firstWeekContainsDate:D,weekStartsOn:U,locale:N,_originalDate:A},K=P.match(Yle).map(function(te){var oe=te[0];if(oe==="p"||oe==="P"){var se=n2[oe];return se(te,N.formatLong)}return te}).join("").match(Wle).map(function(te){if(te==="''")return"'";var oe=te[0];if(oe==="'")return Kle(te);var se=nle[oe];if(se)return!(n!=null&&n.useAdditionalWeekYearTokens)&&u8(te)&&wv(te,t,String(e)),!(n!=null&&n.useAdditionalDayOfYearTokens)&&c8(te)&&wv(te,t,String(e)),se(q,te,N.localize,ee);if(oe.match(Zle))throw new RangeError("Format string contains an unescaped latin alphabet character `"+oe+"`");return te}).join("");return K}function Kle(e){var t=e.match(qle);return t?t[1].replace(Gle,"'"):e}function DE(e,t){if(e==null)throw new TypeError("assign requires that input parameter not be null or undefined");for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}function Xle(e){return DE({},e)}var iR=1440,Qle=2520,M1=43200,Jle=86400;function ece(e,t,n){var r,i;Pe(2,arguments);var o=Wo(),s=(r=(i=n==null?void 0:n.locale)!==null&&i!==void 0?i:o.locale)!==null&&r!==void 0?r:LE;if(!s.formatDistance)throw new RangeError("locale must contain formatDistance property");var a=xm(e,t);if(isNaN(a))throw new RangeError("Invalid time value");var l=DE(Xle(n),{addSuffix:Boolean(n==null?void 0:n.addSuffix),comparison:a}),c,f;a>0?(c=Re(t),f=Re(e)):(c=Re(e),f=Re(t));var h=zae(f,c),p=(Uc(f)-Uc(c))/1e3,m=Math.round((h-p)/60),g;if(m<2)return n!=null&&n.includeSeconds?h<5?s.formatDistance("lessThanXSeconds",5,l):h<10?s.formatDistance("lessThanXSeconds",10,l):h<20?s.formatDistance("lessThanXSeconds",20,l):h<40?s.formatDistance("halfAMinute",0,l):h<60?s.formatDistance("lessThanXMinutes",1,l):s.formatDistance("xMinutes",1,l):m===0?s.formatDistance("lessThanXMinutes",1,l):s.formatDistance("xMinutes",m,l);if(m<45)return s.formatDistance("xMinutes",m,l);if(m<90)return s.formatDistance("aboutXHours",1,l);if(mr.getTime()}function Kr(e,t){Pe(2,arguments);var n=Re(e),r=Re(t);return n.getTime()"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Sv(e){return Sv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Sv(e)}function AE(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function sR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Cv(e){return Cv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Cv(e)}function cR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var wce=function(e){vce(n,e);var t=yce(n);function n(){var r;mce(this,n);for(var i=arguments.length,o=new Array(i),s=0;s0,r=n?t:1-t,i;if(r<=50)i=e||100;else{var o=r+50,s=Math.floor(o/100)*100,a=e>=o%100;i=e+s-(a?100:0)}return n?i:1-i}function v8(e){return e%400===0||e%4===0&&e%100!==0}function Tm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Tm=function(n){return typeof n}:Tm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Tm(e)}function xce(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function uR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Tv(e){return Tv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Tv(e)}function fR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Pce=function(e){Cce(n,e);var t=Ece(n);function n(){var r;xce(this,n);for(var i=arguments.length,o=new Array(i),s=0;s0}},{key:"set",value:function(i,o,s){var a=i.getUTCFullYear();if(s.isTwoDigitYear){var l=g8(s.year,a);return i.setUTCFullYear(l,0,1),i.setUTCHours(0,0,0,0),i}var c=!("era"in o)||o.era===1?s.year:1-s.year;return i.setUTCFullYear(c,0,1),i.setUTCHours(0,0,0,0),i}}]),n}(gt);function Om(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Om=function(n){return typeof n}:Om=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Om(e)}function kce(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function dR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ov(e){return Ov=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Ov(e)}function hR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ace=function(e){Rce(n,e);var t=Nce(n);function n(){var r;kce(this,n);for(var i=arguments.length,o=new Array(i),s=0;s0}},{key:"set",value:function(i,o,s,a){var l=NE(i,a);if(s.isTwoDigitYear){var c=g8(s.year,l);return i.setUTCFullYear(c,0,a.firstWeekContainsDate),i.setUTCHours(0,0,0,0),ll(i,a)}var f=!("era"in o)||o.era===1?s.year:1-s.year;return i.setUTCFullYear(f,0,a.firstWeekContainsDate),i.setUTCHours(0,0,0,0),ll(i,a)}}]),n}(gt);function Pm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Pm=function(n){return typeof n}:Pm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Pm(e)}function Ice(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function pR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Pv(e){return Pv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Pv(e)}function mR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var zce=function(e){$ce(n,e);var t=jce(n);function n(){var r;Ice(this,n);for(var i=arguments.length,o=new Array(i),s=0;s"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function kv(e){return kv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},kv(e)}function vR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Zce=function(e){Wce(n,e);var t=Yce(n);function n(){var r;Vce(this,n);for(var i=arguments.length,o=new Array(i),s=0;s"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Mv(e){return Mv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Mv(e)}function _R(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var nue=function(e){Qce(n,e);var t=Jce(n);function n(){var r;Kce(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=1&&o<=4}},{key:"set",value:function(i,o,s){return i.setUTCMonth((s-1)*3,1),i.setUTCHours(0,0,0,0),i}}]),n}(gt);function Rm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Rm=function(n){return typeof n}:Rm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Rm(e)}function rue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function bR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Rv(e){return Rv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Rv(e)}function wR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var cue=function(e){oue(n,e);var t=sue(n);function n(){var r;rue(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=1&&o<=4}},{key:"set",value:function(i,o,s){return i.setUTCMonth((s-1)*3,1),i.setUTCHours(0,0,0,0),i}}]),n}(gt);function Nm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Nm=function(n){return typeof n}:Nm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Nm(e)}function uue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function xR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Nv(e){return Nv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Nv(e)}function SR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var gue=function(e){due(n,e);var t=hue(n);function n(){var r;uue(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=0&&o<=11}},{key:"set",value:function(i,o,s){return i.setUTCMonth(s,1),i.setUTCHours(0,0,0,0),i}}]),n}(gt);function Lm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Lm=function(n){return typeof n}:Lm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Lm(e)}function vue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function CR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Lv(e){return Lv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Lv(e)}function ER(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Sue=function(e){_ue(n,e);var t=bue(n);function n(){var r;vue(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=0&&o<=11}},{key:"set",value:function(i,o,s){return i.setUTCMonth(s,1),i.setUTCHours(0,0,0,0),i}}]),n}(gt);function Cue(e,t,n){Pe(2,arguments);var r=Re(e),i=et(t),o=a8(r,n)-i;return r.setUTCDate(r.getUTCDate()-o*7),r}function Dm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Dm=function(n){return typeof n}:Dm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Dm(e)}function Eue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function TR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Dv(e){return Dv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Dv(e)}function OR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Rue=function(e){Oue(n,e);var t=Pue(n);function n(){var r;Eue(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=1&&o<=53}},{key:"set",value:function(i,o,s,a){return ll(Cue(i,s,a),a)}}]),n}(gt);function Nue(e,t){Pe(2,arguments);var n=Re(e),r=et(t),i=s8(n)-r;return n.setUTCDate(n.getUTCDate()-i*7),n}function Am(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Am=function(n){return typeof n}:Am=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Am(e)}function Lue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function PR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Av(e){return Av=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Av(e)}function kR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var jue=function(e){Aue(n,e);var t=Iue(n);function n(){var r;Lue(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=1&&o<=53}},{key:"set",value:function(i,o,s){return Vc(Nue(i,s))}}]),n}(gt);function Im(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Im=function(n){return typeof n}:Im=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Im(e)}function Bue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function MR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Iv(e){return Iv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Iv(e)}function R1(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Yue=[31,28,31,30,31,30,31,31,30,31,30,31],que=[31,29,31,30,31,30,31,31,30,31,30,31],Gue=function(e){zue(n,e);var t=Vue(n);function n(){var r;Bue(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=1&&o<=que[l]:o>=1&&o<=Yue[l]}},{key:"set",value:function(i,o,s){return i.setUTCDate(s),i.setUTCHours(0,0,0,0),i}}]),n}(gt);function $m(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?$m=function(n){return typeof n}:$m=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},$m(e)}function Zue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function RR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Fv(e){return Fv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Fv(e)}function N1(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var tfe=function(e){Xue(n,e);var t=Que(n);function n(){var r;Zue(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=1&&o<=366:o>=1&&o<=365}},{key:"set",value:function(i,o,s){return i.setUTCMonth(0,s),i.setUTCHours(0,0,0,0),i}}]),n}(gt);function $E(e,t,n){var r,i,o,s,a,l,c,f;Pe(2,arguments);var h=Wo(),p=et((r=(i=(o=(s=n==null?void 0:n.weekStartsOn)!==null&&s!==void 0?s:n==null||(a=n.locale)===null||a===void 0||(l=a.options)===null||l===void 0?void 0:l.weekStartsOn)!==null&&o!==void 0?o:h.weekStartsOn)!==null&&i!==void 0?i:(c=h.locale)===null||c===void 0||(f=c.options)===null||f===void 0?void 0:f.weekStartsOn)!==null&&r!==void 0?r:0);if(!(p>=0&&p<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=Re(e),g=et(t),v=m.getUTCDay(),w=g%7,y=(w+7)%7,b=(y"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function $v(e){return $v=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},$v(e)}function LR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var lfe=function(e){ife(n,e);var t=ofe(n);function n(){var r;nfe(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=0&&o<=6}},{key:"set",value:function(i,o,s,a){return i=$E(i,s,a),i.setUTCHours(0,0,0,0),i}}]),n}(gt);function Um(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Um=function(n){return typeof n}:Um=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Um(e)}function cfe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function DR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function jv(e){return jv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},jv(e)}function AR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var mfe=function(e){ffe(n,e);var t=dfe(n);function n(){var r;cfe(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=0&&o<=6}},{key:"set",value:function(i,o,s,a){return i=$E(i,s,a),i.setUTCHours(0,0,0,0),i}}]),n}(gt);function zm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?zm=function(n){return typeof n}:zm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},zm(e)}function gfe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function IR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Bv(e){return Bv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Bv(e)}function FR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var xfe=function(e){yfe(n,e);var t=_fe(n);function n(){var r;gfe(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=0&&o<=6}},{key:"set",value:function(i,o,s,a){return i=$E(i,s,a),i.setUTCHours(0,0,0,0),i}}]),n}(gt);function Sfe(e,t){Pe(2,arguments);var n=et(t);n%7===0&&(n=n-7);var r=1,i=Re(e),o=i.getUTCDay(),s=n%7,a=(s+7)%7,l=(a"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Uv(e){return Uv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Uv(e)}function jR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Mfe=function(e){Tfe(n,e);var t=Ofe(n);function n(){var r;Cfe(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=1&&o<=7}},{key:"set",value:function(i,o,s){return i=Sfe(i,s),i.setUTCHours(0,0,0,0),i}}]),n}(gt);function Hm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Hm=function(n){return typeof n}:Hm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Hm(e)}function Rfe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function BR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function zv(e){return zv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},zv(e)}function UR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ffe=function(e){Lfe(n,e);var t=Dfe(n);function n(){var r;Rfe(this,n);for(var i=arguments.length,o=new Array(i),s=0;s"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Vv(e){return Vv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Vv(e)}function VR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Hfe=function(e){Bfe(n,e);var t=Ufe(n);function n(){var r;$fe(this,n);for(var i=arguments.length,o=new Array(i),s=0;s"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Hv(e){return Hv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Hv(e)}function WR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Xfe=function(e){qfe(n,e);var t=Gfe(n);function n(){var r;Wfe(this,n);for(var i=arguments.length,o=new Array(i),s=0;s"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Wv(e){return Wv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Wv(e)}function qR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ide=function(e){ede(n,e);var t=tde(n);function n(){var r;Qfe(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=1&&o<=12}},{key:"set",value:function(i,o,s){var a=i.getUTCHours()>=12;return a&&s<12?i.setUTCHours(s+12,0,0,0):!a&&s===12?i.setUTCHours(0,0,0,0):i.setUTCHours(s,0,0,0),i}}]),n}(gt);function Gm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Gm=function(n){return typeof n}:Gm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Gm(e)}function ode(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function GR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Yv(e){return Yv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Yv(e)}function ZR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var fde=function(e){ade(n,e);var t=lde(n);function n(){var r;ode(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=0&&o<=23}},{key:"set",value:function(i,o,s){return i.setUTCHours(s,0,0,0),i}}]),n}(gt);function Zm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Zm=function(n){return typeof n}:Zm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Zm(e)}function dde(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function KR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function qv(e){return qv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},qv(e)}function XR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var yde=function(e){pde(n,e);var t=mde(n);function n(){var r;dde(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=0&&o<=11}},{key:"set",value:function(i,o,s){var a=i.getUTCHours()>=12;return a&&s<12?i.setUTCHours(s+12,0,0,0):i.setUTCHours(s,0,0,0),i}}]),n}(gt);function Km(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Km=function(n){return typeof n}:Km=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Km(e)}function _de(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function QR(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Gv(e){return Gv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Gv(e)}function JR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ede=function(e){wde(n,e);var t=xde(n);function n(){var r;_de(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=1&&o<=24}},{key:"set",value:function(i,o,s){var a=s<=24?s%24:s;return i.setUTCHours(a,0,0,0),i}}]),n}(gt);function Xm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Xm=function(n){return typeof n}:Xm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Xm(e)}function Tde(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function eN(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Zv(e){return Zv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Zv(e)}function tN(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Nde=function(e){Pde(n,e);var t=kde(n);function n(){var r;Tde(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=0&&o<=59}},{key:"set",value:function(i,o,s){return i.setUTCMinutes(s,0,0),i}}]),n}(gt);function Qm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Qm=function(n){return typeof n}:Qm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Qm(e)}function Lde(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function nN(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Kv(e){return Kv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Kv(e)}function rN(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var jde=function(e){Ade(n,e);var t=Ide(n);function n(){var r;Lde(this,n);for(var i=arguments.length,o=new Array(i),s=0;s=0&&o<=59}},{key:"set",value:function(i,o,s){return i.setUTCSeconds(s,0),i}}]),n}(gt);function Jm(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Jm=function(n){return typeof n}:Jm=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Jm(e)}function Bde(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function iN(e,t){for(var n=0;n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Xv(e){return Xv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Xv(e)}function oN(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Yde=function(e){zde(n,e);var t=Vde(n);function n(){var r;Bde(this,n);for(var i=arguments.length,o=new Array(i),s=0;s"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Qv(e){return Qv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Qv(e)}function aN(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Jde=function(e){Zde(n,e);var t=Kde(n);function n(){var r;qde(this,n);for(var i=arguments.length,o=new Array(i),s=0;s"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Jv(e){return Jv=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Jv(e)}function cN(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var she=function(e){nhe(n,e);var t=rhe(n);function n(){var r;ehe(this,n);for(var i=arguments.length,o=new Array(i),s=0;s"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ey(e){return ey=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},ey(e)}function fN(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var hhe=function(e){che(n,e);var t=uhe(n);function n(){var r;ahe(this,n);for(var i=arguments.length,o=new Array(i),s=0;s"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ty(e){return ty=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},ty(e)}function hN(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var bhe=function(e){ghe(n,e);var t=vhe(n);function n(){var r;phe(this,n);for(var i=arguments.length,o=new Array(i),s=0;s"u"||e[Symbol.iterator]==null){if(Array.isArray(e)||(n=xhe(e))||t&&e&&typeof e.length=="number"){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(c){throw c},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){n=e[Symbol.iterator]()},n:function(){var c=n.next();return o=c.done,c},e:function(c){s=!0,a=c},f:function(){try{!o&&n.return!=null&&n.return()}finally{if(s)throw a}}}}function xhe(e,t){if(e){if(typeof e=="string")return mN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mN(e,t)}}function mN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=1&&A<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var Y=et((g=(v=(w=(y=r==null?void 0:r.weekStartsOn)!==null&&y!==void 0?y:r==null||(b=r.locale)===null||b===void 0||(x=b.options)===null||x===void 0?void 0:x.weekStartsOn)!==null&&w!==void 0?w:D.weekStartsOn)!==null&&v!==void 0?v:(T=D.locale)===null||T===void 0||(P=T.options)===null||P===void 0?void 0:P.weekStartsOn)!==null&&g!==void 0?g:0);if(!(Y>=0&&Y<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(N==="")return k===""?Re(n):new Date(NaN);var q={firstWeekContainsDate:A,weekStartsOn:Y,locale:U},ee=[new dce],K=N.match(Che).map(function(O){var R=O[0];if(R in n2){var F=n2[R];return F(O,U.formatLong)}return O}).join("").match(She),te=[],oe=pN(K),se;try{var Z=function(){var R=se.value;!(r!=null&&r.useAdditionalWeekYearTokens)&&u8(R)&&wv(R,N,e),!(r!=null&&r.useAdditionalDayOfYearTokens)&&c8(R)&&wv(R,N,e);var F=R[0],Q=whe[F];if(Q){var X=Q.incompatibleTokens;if(Array.isArray(X)){var le=te.find(function(De){return X.includes(De.token)||De.token===F});if(le)throw new RangeError("The format string mustn't contain `".concat(le.fullToken,"` and `").concat(R,"` at the same time"))}else if(Q.incompatibleTokens==="*"&&te.length>0)throw new RangeError("The format string mustn't contain `".concat(R,"` and any other token at the same time"));te.push({token:F,fullToken:R});var ve=Q.run(k,R,U.match,q);if(!ve)return{v:new Date(NaN)};ee.push(ve.setter),k=ve.rest}else{if(F.match(Phe))throw new RangeError("Format string contains an unescaped latin alphabet character `"+F+"`");if(R==="''"?R="'":F==="'"&&(R=khe(R)),k.indexOf(R)===0)k=k.slice(R.length);else return{v:new Date(NaN)}}};for(oe.s();!(se=oe.n()).done;){var $=Z();if(ig($)==="object")return $.v}}catch(O){oe.e(O)}finally{oe.f()}if(k.length>0&&Ohe.test(k))return new Date(NaN);var I=ee.map(function(O){return O.priority}).sort(function(O,R){return R-O}).filter(function(O,R,F){return F.indexOf(O)===R}).map(function(O){return ee.filter(function(R){return R.priority===O}).sort(function(R,F){return F.subPriority-R.subPriority})}).map(function(O){return O[0]}),B=Re(n);if(isNaN(B.getTime()))return new Date(NaN);var re=i8(B,Uc(B)),W={},G=pN(I),ne;try{for(G.s();!(ne=G.n()).done;){var ae=ne.value;if(!ae.validate(re,q))return new Date(NaN);var me=ae.set(re,W,q);Array.isArray(me)?(re=me[0],DE(W,me[1])):re=me}}catch(O){G.e(O)}finally{G.f()}return re}function khe(e){return e.match(Ehe)[1].replace(The,"'")}function Mhe(e,t){Pe(2,arguments);var n=Re(e),r=Re(t);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()}function Rhe(e,t){Pe(2,arguments);var n=t2(e),r=t2(t);return n.getTime()===r.getTime()}function Nhe(e,t){Pe(2,arguments);var n=Re(e),r=Re(t);return n.getFullYear()===r.getFullYear()}function Hc(e,t){Pe(2,arguments);var n=Re(e).getTime(),r=Re(t.start).getTime(),i=Re(t.end).getTime();if(!(r<=i))throw new RangeError("Invalid interval");return n>=r&&n<=i}function jE(e,t){Pe(2,arguments);var n=et(t);return gl(e,-n)}function Io(e,t){var n;Pe(1,arguments);var r=et((n=t==null?void 0:t.additionalDigits)!==null&&n!==void 0?n:2);if(r!==2&&r!==1&&r!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(!(typeof e=="string"||Object.prototype.toString.call(e)==="[object String]"))return new Date(NaN);var i=Ihe(e),o;if(i.date){var s=Fhe(i.date,r);o=$he(s.restDateString,s.year)}if(!o||isNaN(o.getTime()))return new Date(NaN);var a=o.getTime(),l=0,c;if(i.time&&(l=jhe(i.time),isNaN(l)))return new Date(NaN);if(i.timezone){if(c=Bhe(i.timezone),isNaN(c))return new Date(NaN)}else{var f=new Date(a+l),h=new Date(0);return h.setFullYear(f.getUTCFullYear(),f.getUTCMonth(),f.getUTCDate()),h.setHours(f.getUTCHours(),f.getUTCMinutes(),f.getUTCSeconds(),f.getUTCMilliseconds()),h}return new Date(a+l+c)}var Rp={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},Lhe=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,Dhe=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,Ahe=/^([+-])(\d{2})(?::?(\d{2}))?$/;function Ihe(e){var t={},n=e.split(Rp.dateTimeDelimiter),r;if(n.length>2)return t;if(/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],Rp.timeZoneDelimiter.test(t.date)&&(t.date=e.split(Rp.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length))),r){var i=Rp.timezone.exec(r);i?(t.time=r.replace(i[1],""),t.timezone=i[1]):t.time=r}return t}function Fhe(e,t){var n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),r=e.match(n);if(!r)return{year:NaN,restDateString:""};var i=r[1]?parseInt(r[1]):null,o=r[2]?parseInt(r[2]):null;return{year:o===null?i:o*100,restDateString:e.slice((r[1]||r[2]).length)}}function $he(e,t){if(t===null)return new Date(NaN);var n=e.match(Lhe);if(!n)return new Date(NaN);var r=!!n[4],i=zu(n[1]),o=zu(n[2])-1,s=zu(n[3]),a=zu(n[4]),l=zu(n[5])-1;if(r)return Whe(t,a,l)?Uhe(t,a,l):new Date(NaN);var c=new Date(0);return!Vhe(t,o,s)||!Hhe(t,i)?new Date(NaN):(c.setUTCFullYear(t,o,Math.max(i,s)),c)}function zu(e){return e?parseInt(e):1}function jhe(e){var t=e.match(Dhe);if(!t)return NaN;var n=D1(t[1]),r=D1(t[2]),i=D1(t[3]);return Yhe(n,r,i)?n*O_+r*PE+i*1e3:NaN}function D1(e){return e&&parseFloat(e.replace(",","."))||0}function Bhe(e){if(e==="Z")return 0;var t=e.match(Ahe);if(!t)return 0;var n=t[1]==="+"?-1:1,r=parseInt(t[2]),i=t[3]&&parseInt(t[3])||0;return qhe(r,i)?n*(r*O_+i*PE):NaN}function Uhe(e,t,n){var r=new Date(0);r.setUTCFullYear(e,0,4);var i=r.getUTCDay()||7,o=(t-1)*7+n+1-i;return r.setUTCDate(r.getUTCDate()+o),r}var zhe=[31,null,31,30,31,30,31,31,30,31,30,31];function y8(e){return e%400===0||e%4===0&&e%100!==0}function Vhe(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(zhe[t]||(y8(e)?29:28))}function Hhe(e,t){return t>=1&&t<=(y8(e)?366:365)}function Whe(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}function Yhe(e,t,n){return e===24?t===0&&n===0:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}function qhe(e,t){return t>=0&&t<=59}function Yi(e,t){Pe(2,arguments);var n=Re(e),r=et(t),i=n.getFullYear(),o=n.getDate(),s=new Date(0);s.setFullYear(i,r,15),s.setHours(0,0,0,0);var a=rce(s);return n.setMonth(r,Math.min(o,a)),n}function Mf(e,t){Pe(2,arguments);var n=Re(e),r=et(t);return n.setHours(r),n}function Rf(e,t){Pe(2,arguments);var n=Re(e),r=et(t);return n.setMinutes(r),n}function nf(e,t){Pe(2,arguments);var n=Re(e),r=et(t),i=Math.floor(n.getMonth()/3)+1,o=r-i;return Yi(n,n.getMonth()+o*3)}function Ghe(e,t){Pe(2,arguments);var n=Re(e),r=et(t);return n.setSeconds(r),n}function ny(e,t){Pe(2,arguments);var n=Re(e),r=et(t);return isNaN(n.getTime())?new Date(NaN):(n.setFullYear(r),n)}function kd(e,t){Pe(2,arguments);var n=et(t);return no(e,-n)}function Zhe(e,t){Pe(2,arguments);var n=et(t);return OE(e,-n)}function Md(e,t){Pe(2,arguments);var n=et(t);return zc(e,-n)}const Nf="yyyy-MM-dd",BE="yyyy-MM-dd HH:mm",Ws=()=>new Date,UE=e=>typeof e!="string",_8=(e,t)=>!e||!UE(e)?e:t?_o(e,t):tce(e),b8=(e=Nf)=>t=>_8(t,e),Ys=e=>_8(e,void 0),Np=b8(),ry=b8(BE),wi=e=>UE(e)?e:Io(e),gN=e=>e?wi(e):null,lh=(e,t,n)=>{try{return Hc(wi(e),{start:wi(t??e),end:wi(n??e)})}catch{return!1}},_a=(e,t)=>f8(e,t)||Kr(e,t),ch="all",w8={today:"Today",yesterday:"Yesterday",last7Days:"Last 7 days",last30Days:"Last 30 days",last90Days:"Last 90 days",last180Days:"Last 180 days",last365Days:"Last 365 days",[ch]:void 0},x8=Object.keys(w8),S8=e=>e===void 0||qn(wI(Boolean,e)),iy=e=>typeof e=="string"&&x8.includes(e),Khe=x8.filter(e=>e!==ch),C8=(e,t)=>({startDate:gN(e),endDate:gN(t)}),Xhe=e=>{if(!(!e||S8(e)))return e.startDate&&!e.endDate?`Since ${Np(e.startDate)}`:!e.startDate&&e.endDate?`Until ${Np(e.endDate)}`:`${Np(e.startDate)} - ${Np(e.endDate)}`},zE=e=>{if(!(!e||e===ch))return iy(e)?w8[e]:Xhe(e)},Gr=e=>Dr(jE(Ws(),e)),Fl=e=>({startDate:e,endDate:al(Ws())}),E8=sC([[ya("today"),()=>Fl(Dr(Ws()))],[ya("yesterday"),()=>({startDate:Gr(1),endDate:al(jE(Ws(),1))})],[ya("last7Days"),()=>Fl(Gr(7))],[ya("last30Days"),()=>Fl(Gr(30))],[ya("last90Days"),()=>Fl(Gr(90))],[ya("last180Days"),()=>Fl(Gr(180))],[ya("last365Days"),()=>Fl(Gr(365))],[pI,()=>({})]]),Qhe=e=>{const t=wi(e);return sC([[()=>_a(Dr(Ws()),t),()=>"today"],[()=>_a(Gr(1),t),()=>"yesterday"],[()=>_a(Gr(7),t),()=>"last7Days"],[()=>_a(Gr(30),t),()=>"last30Days"],[()=>_a(Gr(90),t),()=>"last90Days"],[()=>_a(Gr(180),t),()=>"last180Days"],[()=>_a(Gr(365),t),()=>"last365Days"],[pI,()=>ch]])()},Jhe=e=>iy(e)?E8(e):e,uh=wn("shlink/visitCreation/createNewVisits",e=>({payload:{createdVisits:e}})),vN=5e3,yN=4,_N=2,epe=({currentPage:e,pagesCount:t})=>e>=t,tpe=(e,t)=>t*100/e,fh=({typePrefix:e,createLoaders:t,getExtraFulfilledPayload:n,shouldCancel:r})=>{const i=wn(`${e}/progressChanged`),o=wn(`${e}/large`),s=wn(`${e}/fallbackToInterval`),a=or(e,async(l,{getState:c,dispatch:f})=>{var b;const[h,p]=t(l,c),m=async x=>Promise.all(x.map(async T=>h(T,vN).then(ct("data")))).then(eZ),g=async(x,T=0)=>{if(r(c))return[];const P=await m(x[T]);return f(i(tpe(x.length,T+_N))),T{const{pagination:T,data:P}=await h(x,vN);if(!T||epe(T))return P;const k=aC(_N,T.pagesCount+1),N=dd(yN,k);return T.pagesCount-1>yN&&f(o()),P.concat(await g(N))},[w,y]=await Promise.all([v(),p((b=l.query)==null?void 0:b.excludeBots)]);return!w.length&&y&&f(s(Qhe(y.date))),{...n(l),visits:w}});return Object.assign(a,{progressChanged:i,large:o,fallbackToInterval:s})},dh=(e,t)=>async n=>e?t({page:1,itemsPerPage:1,excludeBots:n}).then(({data:r})=>r[0]):Promise.resolve(void 0),hh=({name:e,asyncThunkCreator:t,initialState:n,filterCreatedVisits:r})=>{const{pending:i,rejected:o,fulfilled:s,large:a,progressChanged:l,fallbackToInterval:c}=t,{reducer:f,actions:h}=Gn({name:e,initialState:n,reducers:{cancelGetVisits:m=>({...m,cancelLoad:!0})},extraReducers:m=>{m.addCase(i,()=>({...n,loading:!0})),m.addCase(o,(g,{error:v})=>({...n,error:!0,errorData:ro(v)})),m.addCase(s,(g,{payload:v})=>({...g,...v,loading:!1,loadingLarge:!1,error:!1})),m.addCase(a,g=>({...g,loadingLarge:!0})),m.addCase(l,(g,{payload:v})=>({...g,progress:v})),m.addCase(c,(g,{payload:v})=>({...g,fallbackInterval:v})),m.addCase(uh,(g,{payload:v})=>{const{visits:w}=g,y=r(g,v.createdVisits).map(({visit:b})=>b);return y.length?{...g,visits:[...y,...w]}:g})}}),{cancelGetVisits:p}=h;return{reducer:f,cancelGetVisits:p}},T8="shlink/domainVisits",O8="DEFAULT",npe={visits:[],domain:"",loading:!1,loadingLarge:!1,error:!1,cancelLoad:!1,progress:0},rpe=e=>fh({typePrefix:`${T8}/getDomainVisits`,createLoaders:({domain:t,query:n={},doIntervalFallback:r=!1},i)=>{const{getDomainVisits:o}=e(i),s=async(l,c)=>o(t,{...n,page:l,itemsPerPage:c}),a=dh(r,async l=>o(t,l));return[s,a]},getExtraFulfilledPayload:({domain:t,query:n={}})=>({domain:t,query:n}),shouldCancel:t=>t().domainVisits.cancelLoad}),ipe=e=>hh({name:T8,initialState:npe,asyncThunkCreator:e,filterCreatedVisits:({domain:t,query:n={}},r)=>{const{startDate:i,endDate:o}=n;return r.filter(({shortUrl:s,visit:a})=>s&&Eae(s,t)&&lh(a.date,i,o))}}),au=({children:e,label:t,className:n="",labelClassName:r="",noMargin:i=!1,id:o})=>V("div",{className:`${n} ${i?"":"mb-3"}`,children:[C("label",{className:`form-label ${r}`,htmlFor:o,children:t}),e]}),og=({children:e,value:t,onChange:n,type:r,required:i,placeholder:o,className:s,labelClassName:a})=>{const l=C_();return C(au,{label:V(Ye,{children:[e,":"]}),className:s??"",labelClassName:a,id:l,children:C("input",{id:l,className:"form-control",type:r??"text",value:t,required:i??!0,placeholder:o,onChange:c=>n(c.target.value)})})},sg=({className:e="",placement:t,children:n})=>{const r=iu();return V(Ye,{children:[C("span",{className:e,ref:r,children:C(Fe,{icon:bC})}),C(Ur,{target:r,placement:t,children:n})]})},A1=({isLast:e,...t})=>C(og,{...t,required:!1,type:"url",placeholder:"No redirect",className:e?"mb-0":""}),ope=({isOpen:e,toggle:t,domain:n,editDomainRedirects:r})=>{var h,p,m;const[i,o]=H.useState(((h=n.redirects)==null?void 0:h.baseUrlRedirect)??""),[s,a]=H.useState(((p=n.redirects)==null?void 0:p.regular404Redirect)??""),[l,c]=H.useState(((m=n.redirects)==null?void 0:m.invalidShortUrlRedirect)??""),f=sh(async()=>r({domain:n.domain,redirects:{baseUrlRedirect:O1(i),regular404Redirect:O1(s),invalidShortUrlRedirect:O1(l)}}).then(t));return C(Ho,{isOpen:e,toggle:t,centered:!0,children:V("form",{name:"domainRedirectsModal",onSubmit:f,children:[V(io,{toggle:t,children:["Edit redirects for ",C("b",{children:n.domain})]}),V(Ri,{children:[V(A1,{value:i,onChange:o,children:[V(sg,{className:"me-2",placement:"bottom",children:["Visitors accessing the base url, as in ",V("b",{children:["https://",n.domain,"/"]}),", will be redirected to this URL."]}),"Base URL"]}),V(A1,{value:s,onChange:a,children:[V(sg,{className:"me-2",placement:"bottom",children:["Visitors accessing a url not matching a short URL pattern, as in ",V("b",{children:["https://",n.domain,"/???/[...]"]}),", will be redirected to this URL."]}),"Regular 404"]}),V(A1,{value:l,isLast:!0,onChange:c,children:[C(sg,{className:"me-2",placement:"bottom",children:"Visitors accessing a url matching a short URL pattern, but not matching an existing short code, will be redirected to this URL."}),"Invalid short URL"]})]}),V(na,{children:[C(mt,{color:"link",type:"button",onClick:t,children:"Cancel"}),C(mt,{color:"primary",children:"Save"})]})]})})},spe=({domain:e,editDomainRedirects:t,selectedServer:n})=>{const[r,i]=jt(),[o,s]=jt(),{isDefault:a}=e,l=!a||Mi("defaultDomainRedirectsEdition",n),c=Mi("domainVisits",n),f=Yd(n);return V(T_,{isOpen:r,toggle:i,children:[c&&V(Ve,{tag:At,to:`/server/${f}/domain/${e.domain}${e.isDefault?`_${O8}`:""}/visits`,children:[C(Fe,{icon:_C,fixedWidth:!0})," Visit stats"]}),V(Ve,{disabled:!l,onClick:l?s:void 0,children:[C(Fe,{fixedWidth:!0,icon:yC})," Edit redirects"]}),C(ope,{domain:e,isOpen:o,toggle:s,editDomainRedirects:t})]})},ape=({status:e,matchMedia:t=window.matchMedia})=>{const n=iu(),r=()=>t("(max-width: 991px)").matches,[i,o]=H.useState(r());return H.useEffect(()=>{const s=()=>o(r());return window.addEventListener("resize",s),()=>window.removeEventListener("resize",s)},[]),e==="validating"?C(Fe,{fixedWidth:!0,icon:qI,spin:!0}):V(Ye,{children:[C("span",{ref:n,children:e==="valid"?C(Fe,{fixedWidth:!0,icon:pd,className:"text-muted"}):C(Fe,{fixedWidth:!0,icon:xw,className:"text-danger"})}),C(Ur,{target:n,placement:i?"top-start":"left",autohide:e==="valid",children:e==="valid"?"Congratulations! This domain is properly configured.":V("span",{children:["Oops! There is some missing configuration, and short URLs shared with this domain will not work.",C("br",{}),"Check the ",C(Ei,{href:"https://slnk.to/multi-domain-docs",children:"documentation"})," in order to find out what is missing."]})})]})},I1=({fallback:e})=>V("span",{className:"text-muted",children:[!e&&C("small",{children:"No redirect"}),e&&V(Ye,{children:[e," ",C("small",{children:"(as fallback)"})]})]}),lpe=()=>V(Ye,{children:[C(Fe,{fixedWidth:!0,icon:KX,className:"text-primary",id:"defaultDomainIcon"}),C(Ur,{target:"defaultDomainIcon",placement:"right",children:"Default domain"})]}),cpe=({domain:e,editDomainRedirects:t,checkDomainHealth:n,defaultRedirects:r,selectedServer:i})=>{const{domain:o,isDefault:s,redirects:a,status:l}=e;return H.useEffect(()=>{n(e.domain)},[]),V("tr",{className:"responsive-table__row",children:[C("td",{className:"responsive-table__cell","data-th":"Is default domain",children:s&&C(lpe,{})}),C("th",{className:"responsive-table__cell","data-th":"Domain",children:o}),C("td",{className:"responsive-table__cell","data-th":"Base path redirect",children:(a==null?void 0:a.baseUrlRedirect)??C(I1,{fallback:r==null?void 0:r.baseUrlRedirect})}),C("td",{className:"responsive-table__cell","data-th":"Regular 404 redirect",children:(a==null?void 0:a.regular404Redirect)??C(I1,{fallback:r==null?void 0:r.regular404Redirect})}),C("td",{className:"responsive-table__cell","data-th":"Invalid short URL redirect",children:(a==null?void 0:a.invalidShortUrlRedirect)??C(I1,{fallback:r==null?void 0:r.invalidShortUrlRedirect})}),C("td",{className:"responsive-table__cell text-lg-center","data-th":"Status",children:C(ape,{status:l})}),C("td",{className:"responsive-table__cell text-end",children:C(spe,{domain:e,editDomainRedirects:t,selectedServer:i})})]})},bN=["","Domain","Base path redirect","Regular 404 redirect","Invalid short URL redirect","",""],upe=({listDomains:e,domainsList:t,filterDomains:n,editDomainRedirects:r,checkDomainHealth:i,selectedServer:o})=>{var m;const{filteredDomains:s,defaultRedirects:a,loading:l,error:c,errorData:f}=t,h=a??((m=s.find(({isDefault:g})=>g))==null?void 0:m.redirects);return H.useEffect(()=>{e()},[]),l?C(Eo,{loading:!0}):V(Ye,{children:[C(ah,{className:"mb-3",onChange:n}),(()=>c?C(Lr,{type:"error",children:C(Ao,{errorData:f,fallbackMessage:"Error loading domains :("})}):C(dn,{children:V("table",{className:"table table-hover responsive-table mb-0",children:[C("thead",{className:"responsive-table__header",children:C("tr",{children:bN.map((g,v)=>C("th",{children:g},v))})}),V("tbody",{children:[s.length<1&&C("tr",{children:C("td",{colSpan:bN.length,className:"text-center",children:"No results found"})}),s.map(g=>C(cpe,{domain:g,editDomainRedirects:r,checkDomainHealth:i,defaultRedirects:h,selectedServer:o},g.domain))]})]})}))()]})},fpe="shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS",dpe=e=>or(fpe,async({domain:t,redirects:n},{getState:r})=>{const{editDomainRedirects:i}=e(r),o=await i({domain:t,...n});return{domain:t,redirects:o}}),hpe=(e,t)=>{const[n,r]=e.split("://"),[,...i]=r.split("/"),o=i.length?`/${i.join("/")}`:"";return`${n}://${t}${o}`},Lp="shlink/domainsList",Dp={domains:[],filteredDomains:[],loading:!1,error:!1},wN=({domain:e,redirects:t})=>n=>n.domain!==e?n:{...n,redirects:t},xN=(e,t)=>n=>n.domain!==e?n:{...n,status:t},ppe=(e,t)=>{const n=or(`${Lp}/listDomains`,async(s,{getState:a})=>{const{listDomains:l}=e(a),{data:c,defaultRedirects:f}=await l();return{domains:c.map(h=>({...h,status:"validating"})),defaultRedirects:f}}),r=or(`${Lp}/checkDomainHealth`,async(s,{getState:a})=>{const{selectedServer:l}=a();if(!lC(l))return{domain:s,status:"invalid"};try{const{url:c,...f}=l,{health:h}=e({...f,url:hpe(c,s)}),{status:p}=await h();return{domain:s,status:p==="pass"?"valid":"invalid"}}catch{return{domain:s,status:"invalid"}}}),i=wn(`${Lp}/filterDomains`),{reducer:o}=Gn({name:Lp,initialState:Dp,reducers:{},extraReducers:s=>{s.addCase(n.pending,()=>({...Dp,loading:!0})),s.addCase(n.rejected,(a,{error:l})=>({...Dp,error:!0,errorData:ro(l)})),s.addCase(n.fulfilled,(a,{payload:l})=>({...Dp,...l,filteredDomains:l.domains})),s.addCase(r.fulfilled,({domains:a,filteredDomains:l,...c},{payload:f})=>({...c,domains:a.map(xN(f.domain,f.status)),filteredDomains:l.map(xN(f.domain,f.status))})),s.addCase(i,(a,{payload:l})=>({...a,filteredDomains:a.domains.filter(({domain:c})=>c.toLowerCase().match(l.toLowerCase()))})),s.addCase(t.fulfilled,(a,{payload:l})=>({...a,domains:a.domains.map(wN(l)),filteredDomains:a.filteredDomains.map(wN(l))}))}});return{reducer:o,listDomains:n,checkDomainHealth:r,filterDomains:i}},mpe=(e,t)=>{e.serviceFactory("DomainSelector",()=>Sae),e.decorator("DomainSelector",t(["domainsList"],["listDomains"])),e.serviceFactory("ManageDomains",()=>upe),e.decorator("ManageDomains",t(["domainsList","selectedServer"],["listDomains","filterDomains","editDomainRedirects","checkDomainHealth"])),e.serviceFactory("domainsListReducerCreator",ppe,"buildShlinkApiClient","editDomainRedirects"),e.serviceFactory("domainsListReducer",ct("reducer"),"domainsListReducerCreator"),e.serviceFactory("listDomains",ct("listDomains"),"domainsListReducerCreator"),e.serviceFactory("filterDomains",ct("filterDomains"),"domainsListReducerCreator"),e.serviceFactory("editDomainRedirects",dpe,"buildShlinkApiClient"),e.serviceFactory("checkDomainHealth",ct("checkDomainHealth"),"domainsListReducerCreator")},SN="shlink/mercure",gpe={loading:!0,error:!1},vpe=e=>{const t=or(`${SN}/loadMercureInfo`,(r,{getState:i})=>{const{settings:o}=i();if(!o.realTimeUpdates.enabled)throw new Error("Real time updates not enabled");return e(i).mercureInfo()}),{reducer:n}=Gn({name:SN,initialState:gpe,reducers:{},extraReducers:r=>{r.addCase(t.pending,i=>({...i,loading:!0,error:!1})),r.addCase(t.rejected,i=>({...i,loading:!1,error:!0})),r.addCase(t.fulfilled,(i,{payload:o})=>({...o,loading:!1,error:!1}))}});return{loadMercureInfo:t,reducer:n}},ype=e=>{e.serviceFactory("mercureInfoReducerCreator",vpe,"buildShlinkApiClient"),e.serviceFactory("mercureInfoReducer",ct("reducer"),"mercureInfoReducerCreator"),e.serviceFactory("loadMercureInfo",ct("loadMercureInfo"),"mercureInfoReducerCreator")},P8=({isOpen:e,duplicatedServers:t,onDiscard:n,onSave:r})=>{const i=t.length>1;return V(Ho,{centered:!0,isOpen:e,children:[V(io,{children:["Duplicated server",i&&"s"]}),V(Ri,{children:[C("p",{children:i?"The next servers already exist:":"There is already a server with:"}),C("ul",{children:t.map(({url:o,apiKey:s},a)=>i?V("li",{children:[C("b",{children:o})," - ",C("b",{children:s})]},a):V(H.Fragment,{children:[V("li",{children:["URL: ",C("b",{children:o})]}),V("li",{children:["API key: ",C("b",{children:s})]})]},a))}),V("span",{children:[i?"Do you want to ignore duplicated servers":"Do you want to save this server anyway","?"]})]}),V(na,{children:[C(mt,{color:"link",onClick:n,children:i?"Ignore duplicated":"Discard"}),C(mt,{color:"primary",onClick:r,children:"Save anyway"})]})]})},k8=({onSubmit:e,initialValues:t,children:n,title:r})=>{const[i,o]=H.useState(""),[s,a]=H.useState(""),[l,c]=H.useState(""),f=sh(()=>e({name:i,url:s,apiKey:l}));return H.useEffect(()=>{t&&o(t.name),t&&a(t.url),t&&c(t.apiKey)},[t]),V("form",{className:"server-form",name:"serverForm",onSubmit:f,children:[V(dn,{className:"mb-3",title:r,children:[C(og,{value:i,onChange:o,children:"Name"}),C(og,{type:"url",value:s,onChange:a,children:"URL"}),C(og,{value:l,onChange:c,children:"API key"})]}),C("div",{className:"text-end",children:n})]})},CN=4e3,EN=({type:e})=>C("div",{className:"mt-3",children:V(Lr,{type:e,children:[e==="success"&&"Servers properly imported. You can now select one from the list :)",e==="error"&&"The servers could not be imported. Make sure the format is correct."]})}),_pe=(e,t)=>({servers:n,createServers:r})=>{const i=jo(),o=ra(),s=!!Object.keys(n).length,[a,l]=t(!1,CN),[c,f]=t(!1,CN),[h,p]=jt(),[m,g]=H.useState(),v=()=>{if(!m)return;const w=dE();r([{...m,id:w}]),i(`/server/${w}`)};return H.useEffect(()=>{Object.values(n).some(({url:y,apiKey:b})=>(m==null?void 0:m.url)===y&&(m==null?void 0:m.apiKey)===b)?p():v()},[m]),V(su,{children:[V(k8,{title:C("h5",{className:"mb-0",children:"Add new server"}),onSubmit:g,children:[!s&&C(e,{tooltipPlacement:"top",onImport:l,onImportError:f}),s&&C(mt,{outline:!0,onClick:o,children:"Cancel"}),C(mt,{outline:!0,color:"primary",className:"ms-2",children:"Create server"})]}),a&&C(EN,{type:"success"}),c&&C(EN,{type:"error"}),C(P8,{isOpen:h,duplicatedServers:m?[m]:[],onDiscard:o,onSave:v})]})},bpe=e=>({server:t,className:n,children:r,textClassName:i})=>{const[o,,s,a]=jt();return V(Ye,{children:[V("span",{className:n,onClick:s,children:[!r&&C(Fe,{fixedWidth:!0,icon:vC}),C("span",{className:i,children:r??"Remove this server"})]}),C(e,{server:t,isOpen:o,toggle:a})]})},wpe=({server:e,toggle:t,isOpen:n,deleteServer:r,redirectHome:i=!0})=>{const o=jo(),s=H.useRef(!1),a=()=>{s.current=!0,t()};return V(Ho,{isOpen:n,toggle:t,centered:!0,onClosed:()=>{s.current&&(r(e),i&&o("/"))},children:[C(io,{toggle:t,className:"text-danger",children:"Remove server"}),V(Ri,{children:[V("p",{children:["Are you sure you want to remove ",C("b",{children:e?e.name:""}),"?"]}),C("p",{children:C("i",{children:"No data will be deleted, only the access to this server will be removed from this device. You can create it again at any moment."})})]}),V(na,{children:[C(mt,{color:"link",onClick:t,children:"Cancel"}),C(mt,{color:"danger",onClick:a,children:"Delete"})]})]})},xpe=e=>H5(({editServer:t,selectedServer:n,selectServer:r})=>{const i=ra(),{reconnect:o}=Toe();if(!Ms(n))return null;const s=a=>{t(n.id,a),o==="true"&&r(n.id),i()};return C(su,{children:V(k8,{title:V("h5",{className:"mb-0",children:['Edit "',n.name,'"']}),initialValues:n,onSubmit:s,children:[C(mt,{outline:!0,className:"me-2",onClick:i,children:"Cancel"}),C(mt,{outline:!0,color:"primary",children:"Save"})]})})},e);const TN=e=>({url:t,apiKey:n})=>e.some(r=>r.url===t&&r.apiKey===n),Spe=({importServersFromFile:e})=>({createServers:t,servers:n,children:r,onImport:i=()=>{},onImportError:o=()=>{},tooltipPlacement:s="bottom",className:a=""})=>{const l=iu(),[c,f]=H.useState(),[h,p]=H.useState([]),[m,,g,v]=jt(),w=It(t,i),y=It(()=>w(c??[]),v),b=It(()=>w((c??[]).filter(vG(TN(h)))),v),x=async({target:T})=>{var P;return e((P=T.files)==null?void 0:P[0]).then(f).then(()=>{T.value=null}).catch(o)};return H.useEffect(()=>{if(!c)return;const T=Object.values(n),P=c.filter(TN(T)),k=!!P.length;k?p(P):w(c),k&&g()},[c]),V(Ye,{children:[V(mt,{outline:!0,id:"importBtn",className:a,onClick:()=>{var T;return(T=l.current)==null?void 0:T.click()},children:[C(Fe,{icon:nQ,fixedWidth:!0})," ",r??"Import from file"]}),V(Ur,{placement:s,target:"importBtn",children:["You can create servers by importing a CSV file with columns ",C("b",{children:"name"}),", ",C("b",{children:"apiKey"})," and ",C("b",{children:"url"}),"."]}),C("input",{type:"file",accept:"text/csv",className:"import-servers-btn__csv-select",ref:l,onChange:x}),C(P8,{isOpen:m,duplicatedServers:h,onDiscard:b,onSave:y})]})};const Cpe=e=>({servers:t,selectedServer:n})=>C(su,{children:V("div",{className:"server-error__container flex-column",children:[V(Eo,{className:"w-100 mb-3 mb-md-5",type:"error",fullWidth:!0,children:[!Ms(n)&&"Could not find this Shlink server.",Ms(n)&&V(Ye,{children:[C("p",{children:"Oops! Could not connect to this Shlink server."}),"Make sure you have internet connection, and the server is properly configured and on-line."]})]}),V(z5,{servers:Object.values(t),children:["These are the Shlink servers currently configured. Choose one of them or ",C(At,{to:"/server/create",children:"add a new one"}),"."]}),Ms(n)&&C("div",{className:"container mt-3 mt-md-5",children:V("h5",{children:["Alternatively, if you think you may have miss-configured this server, you can ",C(e,{server:n,className:"server-error__delete-btn",children:"remove it"})," or ",C(At,{to:`/server/${n.id}/edit?reconnect=true`,children:"edit it"}),"."]})})]})}),Epe=4e3,Tpe=(e,t,n,r)=>({servers:i})=>{const o=Object.values(i),[s,a]=H.useState(o),l=p=>a(o.filter(({name:m,url:g})=>`${m} ${g}`.toLowerCase().match(p.toLowerCase()))),c=s.some(({autoConnect:p})=>!!p),[f,h]=n(!1,Epe);return H.useEffect(()=>{a(Object.values(i))},[i]),V(su,{children:[C(ah,{className:"mb-3",onChange:l}),V(er,{className:"mb-3",children:[V("div",{className:"col-md-6 d-flex d-md-block mb-2 mb-md-0",children:[C(t,{className:"flex-fill",onImportError:h,children:"Import servers"}),o.length>0&&V(mt,{outline:!0,className:"ms-2 flex-fill",onClick:async()=>e.exportServers(),children:[C(Fe,{icon:QI,fixedWidth:!0})," Export servers"]})]}),C("div",{className:"col-md-6 text-md-end d-flex d-md-block",children:V(mt,{outline:!0,color:"primary",className:"flex-fill",tag:At,to:"/server/create",children:[C(Fe,{icon:wC,fixedWidth:!0})," Add a server"]})})]}),C(dn,{children:V("table",{className:"table table-hover responsive-table mb-0",children:[C("thead",{className:"responsive-table__header",children:V("tr",{children:[c&&C("th",{"aria-label":"Auto-connect",style:{width:"50px"}}),C("th",{children:"Name"}),C("th",{children:"Base URL"}),C("th",{"aria-label":"Options"})]})}),V("tbody",{children:[!s.length&&C("tr",{className:"text-center",children:C("td",{colSpan:4,children:"No servers found."})}),s.map(p=>C(r,{server:p,hasAutoConnect:c},p.id))]})]})}),f&&C("div",{className:"mt-3",children:C(Lr,{type:"error",children:"The servers could not be imported. Make sure the format is correct."})})]})},Ope=e=>({server:t,hasAutoConnect:n})=>V("tr",{className:"responsive-table__row",children:[n&&C("td",{className:"responsive-table__cell","data-th":"Auto-connect",children:t.autoConnect&&V(Ye,{children:[C(Fe,{icon:pd,className:"text-primary",id:"autoConnectIcon"}),C(Ur,{target:"autoConnectIcon",placement:"right",children:"Auto-connect to this server"})]})}),C("th",{className:"responsive-table__cell","data-th":"Name",children:C(At,{to:`/server/${t.id}`,children:t.name})}),C("td",{className:"responsive-table__cell","data-th":"Base URL",children:t.url}),C("td",{className:"responsive-table__cell text-end",children:C(e,{server:t})})]});var Ppe={prefix:"far",iconName:"calendar-days",icon:[448,512,["calendar-alt"],"f073","M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192h80v56H48V192zm0 104h80v64H48V296zm128 0h96v64H176V296zm144 0h80v64H320V296zm80-48H320V192h80v56zm0 160v40c0 8.8-7.2 16-16 16H320V408h80zm-128 0v56H176V408h96zm-144 0v56H64c-8.8 0-16-7.2-16-16V408h80zM272 248H176V192h96v56z"]},kpe=Ppe,Mpe={prefix:"far",iconName:"circle-right",icon:[512,512,[61838,"arrow-alt-circle-right"],"f35a","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 135.1c-4.2-4.5-10.1-7.1-16.3-7.1C266 128 256 138 256 150.3V208H160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h96v57.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.3-7.1l99.9-107.1c3.5-3.8 5.5-8.7 5.5-13.8s-2-10.1-5.5-13.8L294.6 135.1z"]},Rpe=Mpe,Npe={prefix:"far",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],"f111","M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"]},M8={prefix:"far",iconName:"copy",icon:[512,512,[],"f0c5","M224 0c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224zM64 160c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H304v64c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h64V160H64z"]};const Lpe=e=>({server:t,setAutoConnect:n})=>{const[r,i]=jt(),[o,,s,a]=jt(),l=`/server/${t.id}`,{autoConnect:c}=t,f=c?eQ:Npe;return V(T_,{isOpen:r,toggle:i,children:[V(Ve,{tag:At,to:l,children:[C(Fe,{icon:QX,fixedWidth:!0})," Connect"]}),V(Ve,{tag:At,to:`${l}/edit`,children:[C(Fe,{icon:yC,fixedWidth:!0})," Edit server"]}),V(Ve,{onClick:()=>n(t,!c),children:[C(Fe,{icon:f,fixedWidth:!0})," ",c?"Do not a":"A","uto-connect"]}),C(Ve,{divider:!0}),V(Ve,{className:"dropdown-item--danger",onClick:s,children:[C(Fe,{icon:vC,fixedWidth:!0})," Remove server"]}),C(e,{redirectHome:!1,server:t,isOpen:o,toggle:a})]})};var oy={},Dpe={get exports(){return oy},set exports(e){oy=e}};/** @license +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){n=e[Symbol.iterator]()},n:function(){var c=n.next();return o=c.done,c},e:function(c){s=!0,a=c},f:function(){try{!o&&n.return!=null&&n.return()}finally{if(s)throw a}}}}function xhe(e,t){if(e){if(typeof e=="string")return mN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mN(e,t)}}function mN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=1&&A<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var Y=et((g=(v=(w=(y=r==null?void 0:r.weekStartsOn)!==null&&y!==void 0?y:r==null||(b=r.locale)===null||b===void 0||(x=b.options)===null||x===void 0?void 0:x.weekStartsOn)!==null&&w!==void 0?w:D.weekStartsOn)!==null&&v!==void 0?v:(T=D.locale)===null||T===void 0||(P=T.options)===null||P===void 0?void 0:P.weekStartsOn)!==null&&g!==void 0?g:0);if(!(Y>=0&&Y<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(N==="")return k===""?Re(n):new Date(NaN);var q={firstWeekContainsDate:A,weekStartsOn:Y,locale:U},ee=[new dce],K=N.match(Che).map(function(O){var R=O[0];if(R in n2){var F=n2[R];return F(O,U.formatLong)}return O}).join("").match(She),te=[],oe=pN(K),se;try{var Z=function(){var R=se.value;!(r!=null&&r.useAdditionalWeekYearTokens)&&u8(R)&&wv(R,N,e),!(r!=null&&r.useAdditionalDayOfYearTokens)&&c8(R)&&wv(R,N,e);var F=R[0],Q=whe[F];if(Q){var X=Q.incompatibleTokens;if(Array.isArray(X)){var le=te.find(function(De){return X.includes(De.token)||De.token===F});if(le)throw new RangeError("The format string mustn't contain `".concat(le.fullToken,"` and `").concat(R,"` at the same time"))}else if(Q.incompatibleTokens==="*"&&te.length>0)throw new RangeError("The format string mustn't contain `".concat(R,"` and any other token at the same time"));te.push({token:F,fullToken:R});var ve=Q.run(k,R,U.match,q);if(!ve)return{v:new Date(NaN)};ee.push(ve.setter),k=ve.rest}else{if(F.match(Phe))throw new RangeError("Format string contains an unescaped latin alphabet character `"+F+"`");if(R==="''"?R="'":F==="'"&&(R=khe(R)),k.indexOf(R)===0)k=k.slice(R.length);else return{v:new Date(NaN)}}};for(oe.s();!(se=oe.n()).done;){var $=Z();if(ig($)==="object")return $.v}}catch(O){oe.e(O)}finally{oe.f()}if(k.length>0&&Ohe.test(k))return new Date(NaN);var I=ee.map(function(O){return O.priority}).sort(function(O,R){return R-O}).filter(function(O,R,F){return F.indexOf(O)===R}).map(function(O){return ee.filter(function(R){return R.priority===O}).sort(function(R,F){return F.subPriority-R.subPriority})}).map(function(O){return O[0]}),B=Re(n);if(isNaN(B.getTime()))return new Date(NaN);var re=i8(B,Uc(B)),W={},G=pN(I),ne;try{for(G.s();!(ne=G.n()).done;){var ae=ne.value;if(!ae.validate(re,q))return new Date(NaN);var me=ae.set(re,W,q);Array.isArray(me)?(re=me[0],DE(W,me[1])):re=me}}catch(O){G.e(O)}finally{G.f()}return re}function khe(e){return e.match(Ehe)[1].replace(The,"'")}function Mhe(e,t){Pe(2,arguments);var n=Re(e),r=Re(t);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()}function Rhe(e,t){Pe(2,arguments);var n=t2(e),r=t2(t);return n.getTime()===r.getTime()}function Nhe(e,t){Pe(2,arguments);var n=Re(e),r=Re(t);return n.getFullYear()===r.getFullYear()}function Hc(e,t){Pe(2,arguments);var n=Re(e).getTime(),r=Re(t.start).getTime(),i=Re(t.end).getTime();if(!(r<=i))throw new RangeError("Invalid interval");return n>=r&&n<=i}function jE(e,t){Pe(2,arguments);var n=et(t);return gl(e,-n)}function Io(e,t){var n;Pe(1,arguments);var r=et((n=t==null?void 0:t.additionalDigits)!==null&&n!==void 0?n:2);if(r!==2&&r!==1&&r!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(!(typeof e=="string"||Object.prototype.toString.call(e)==="[object String]"))return new Date(NaN);var i=Ihe(e),o;if(i.date){var s=Fhe(i.date,r);o=$he(s.restDateString,s.year)}if(!o||isNaN(o.getTime()))return new Date(NaN);var a=o.getTime(),l=0,c;if(i.time&&(l=jhe(i.time),isNaN(l)))return new Date(NaN);if(i.timezone){if(c=Bhe(i.timezone),isNaN(c))return new Date(NaN)}else{var f=new Date(a+l),h=new Date(0);return h.setFullYear(f.getUTCFullYear(),f.getUTCMonth(),f.getUTCDate()),h.setHours(f.getUTCHours(),f.getUTCMinutes(),f.getUTCSeconds(),f.getUTCMilliseconds()),h}return new Date(a+l+c)}var Rp={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},Lhe=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,Dhe=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,Ahe=/^([+-])(\d{2})(?::?(\d{2}))?$/;function Ihe(e){var t={},n=e.split(Rp.dateTimeDelimiter),r;if(n.length>2)return t;if(/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],Rp.timeZoneDelimiter.test(t.date)&&(t.date=e.split(Rp.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length))),r){var i=Rp.timezone.exec(r);i?(t.time=r.replace(i[1],""),t.timezone=i[1]):t.time=r}return t}function Fhe(e,t){var n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),r=e.match(n);if(!r)return{year:NaN,restDateString:""};var i=r[1]?parseInt(r[1]):null,o=r[2]?parseInt(r[2]):null;return{year:o===null?i:o*100,restDateString:e.slice((r[1]||r[2]).length)}}function $he(e,t){if(t===null)return new Date(NaN);var n=e.match(Lhe);if(!n)return new Date(NaN);var r=!!n[4],i=zu(n[1]),o=zu(n[2])-1,s=zu(n[3]),a=zu(n[4]),l=zu(n[5])-1;if(r)return Whe(t,a,l)?Uhe(t,a,l):new Date(NaN);var c=new Date(0);return!Vhe(t,o,s)||!Hhe(t,i)?new Date(NaN):(c.setUTCFullYear(t,o,Math.max(i,s)),c)}function zu(e){return e?parseInt(e):1}function jhe(e){var t=e.match(Dhe);if(!t)return NaN;var n=D1(t[1]),r=D1(t[2]),i=D1(t[3]);return Yhe(n,r,i)?n*O_+r*PE+i*1e3:NaN}function D1(e){return e&&parseFloat(e.replace(",","."))||0}function Bhe(e){if(e==="Z")return 0;var t=e.match(Ahe);if(!t)return 0;var n=t[1]==="+"?-1:1,r=parseInt(t[2]),i=t[3]&&parseInt(t[3])||0;return qhe(r,i)?n*(r*O_+i*PE):NaN}function Uhe(e,t,n){var r=new Date(0);r.setUTCFullYear(e,0,4);var i=r.getUTCDay()||7,o=(t-1)*7+n+1-i;return r.setUTCDate(r.getUTCDate()+o),r}var zhe=[31,null,31,30,31,30,31,31,30,31,30,31];function y8(e){return e%400===0||e%4===0&&e%100!==0}function Vhe(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(zhe[t]||(y8(e)?29:28))}function Hhe(e,t){return t>=1&&t<=(y8(e)?366:365)}function Whe(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}function Yhe(e,t,n){return e===24?t===0&&n===0:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}function qhe(e,t){return t>=0&&t<=59}function Yi(e,t){Pe(2,arguments);var n=Re(e),r=et(t),i=n.getFullYear(),o=n.getDate(),s=new Date(0);s.setFullYear(i,r,15),s.setHours(0,0,0,0);var a=rce(s);return n.setMonth(r,Math.min(o,a)),n}function Mf(e,t){Pe(2,arguments);var n=Re(e),r=et(t);return n.setHours(r),n}function Rf(e,t){Pe(2,arguments);var n=Re(e),r=et(t);return n.setMinutes(r),n}function nf(e,t){Pe(2,arguments);var n=Re(e),r=et(t),i=Math.floor(n.getMonth()/3)+1,o=r-i;return Yi(n,n.getMonth()+o*3)}function Ghe(e,t){Pe(2,arguments);var n=Re(e),r=et(t);return n.setSeconds(r),n}function ny(e,t){Pe(2,arguments);var n=Re(e),r=et(t);return isNaN(n.getTime())?new Date(NaN):(n.setFullYear(r),n)}function kd(e,t){Pe(2,arguments);var n=et(t);return no(e,-n)}function Zhe(e,t){Pe(2,arguments);var n=et(t);return OE(e,-n)}function Md(e,t){Pe(2,arguments);var n=et(t);return zc(e,-n)}const Nf="yyyy-MM-dd",BE="yyyy-MM-dd HH:mm",Ws=()=>new Date,UE=e=>typeof e!="string",_8=(e,t)=>!e||!UE(e)?e:t?_o(e,t):tce(e),b8=(e=Nf)=>t=>_8(t,e),Ys=e=>_8(e,void 0),Np=b8(),ry=b8(BE),wi=e=>UE(e)?e:Io(e),gN=e=>e?wi(e):null,lh=(e,t,n)=>{try{return Hc(wi(e),{start:wi(t??e),end:wi(n??e)})}catch{return!1}},_a=(e,t)=>f8(e,t)||Kr(e,t),ch="all",w8={today:"Today",yesterday:"Yesterday",last7Days:"Last 7 days",last30Days:"Last 30 days",last90Days:"Last 90 days",last180Days:"Last 180 days",last365Days:"Last 365 days",[ch]:void 0},x8=Object.keys(w8),S8=e=>e===void 0||qn(wI(Boolean,e)),iy=e=>typeof e=="string"&&x8.includes(e),Khe=x8.filter(e=>e!==ch),C8=(e,t)=>({startDate:gN(e),endDate:gN(t)}),Xhe=e=>{if(!(!e||S8(e)))return e.startDate&&!e.endDate?`Since ${Np(e.startDate)}`:!e.startDate&&e.endDate?`Until ${Np(e.endDate)}`:`${Np(e.startDate)} - ${Np(e.endDate)}`},zE=e=>{if(!(!e||e===ch))return iy(e)?w8[e]:Xhe(e)},Gr=e=>Dr(jE(Ws(),e)),Fl=e=>({startDate:e,endDate:al(Ws())}),E8=sC([[ya("today"),()=>Fl(Dr(Ws()))],[ya("yesterday"),()=>({startDate:Gr(1),endDate:al(jE(Ws(),1))})],[ya("last7Days"),()=>Fl(Gr(7))],[ya("last30Days"),()=>Fl(Gr(30))],[ya("last90Days"),()=>Fl(Gr(90))],[ya("last180Days"),()=>Fl(Gr(180))],[ya("last365Days"),()=>Fl(Gr(365))],[pI,()=>({})]]),Qhe=e=>{const t=wi(e);return sC([[()=>_a(Dr(Ws()),t),()=>"today"],[()=>_a(Gr(1),t),()=>"yesterday"],[()=>_a(Gr(7),t),()=>"last7Days"],[()=>_a(Gr(30),t),()=>"last30Days"],[()=>_a(Gr(90),t),()=>"last90Days"],[()=>_a(Gr(180),t),()=>"last180Days"],[()=>_a(Gr(365),t),()=>"last365Days"],[pI,()=>ch]])()},Jhe=e=>iy(e)?E8(e):e,uh=wn("shlink/visitCreation/createNewVisits",e=>({payload:{createdVisits:e}})),vN=5e3,yN=4,_N=2,epe=({currentPage:e,pagesCount:t})=>e>=t,tpe=(e,t)=>t*100/e,fh=({typePrefix:e,createLoaders:t,getExtraFulfilledPayload:n,shouldCancel:r})=>{const i=wn(`${e}/progressChanged`),o=wn(`${e}/large`),s=wn(`${e}/fallbackToInterval`),a=or(e,async(l,{getState:c,dispatch:f})=>{var b;const[h,p]=t(l,c),m=async x=>Promise.all(x.map(async T=>h(T,vN).then(ct("data")))).then(eZ),g=async(x,T=0)=>{if(r(c))return[];const P=await m(x[T]);return f(i(tpe(x.length,T+_N))),T{const{pagination:T,data:P}=await h(x,vN);if(!T||epe(T))return P;const k=aC(_N,T.pagesCount+1),N=dd(yN,k);return T.pagesCount-1>yN&&f(o()),P.concat(await g(N))},[w,y]=await Promise.all([v(),p((b=l.query)==null?void 0:b.excludeBots)]);return!w.length&&y&&f(s(Qhe(y.date))),{...n(l),visits:w}});return Object.assign(a,{progressChanged:i,large:o,fallbackToInterval:s})},dh=(e,t)=>async n=>e?t({page:1,itemsPerPage:1,excludeBots:n}).then(({data:r})=>r[0]):Promise.resolve(void 0),hh=({name:e,asyncThunkCreator:t,initialState:n,filterCreatedVisits:r})=>{const{pending:i,rejected:o,fulfilled:s,large:a,progressChanged:l,fallbackToInterval:c}=t,{reducer:f,actions:h}=Gn({name:e,initialState:n,reducers:{cancelGetVisits:m=>({...m,cancelLoad:!0})},extraReducers:m=>{m.addCase(i,()=>({...n,loading:!0})),m.addCase(o,(g,{error:v})=>({...n,error:!0,errorData:ro(v)})),m.addCase(s,(g,{payload:v})=>({...g,...v,loading:!1,loadingLarge:!1,error:!1})),m.addCase(a,g=>({...g,loadingLarge:!0})),m.addCase(l,(g,{payload:v})=>({...g,progress:v})),m.addCase(c,(g,{payload:v})=>({...g,fallbackInterval:v})),m.addCase(uh,(g,{payload:v})=>{const{visits:w}=g,y=r(g,v.createdVisits).map(({visit:b})=>b);return y.length?{...g,visits:[...y,...w]}:g})}}),{cancelGetVisits:p}=h;return{reducer:f,cancelGetVisits:p}},T8="shlink/domainVisits",O8="DEFAULT",npe={visits:[],domain:"",loading:!1,loadingLarge:!1,error:!1,cancelLoad:!1,progress:0},rpe=e=>fh({typePrefix:`${T8}/getDomainVisits`,createLoaders:({domain:t,query:n={},doIntervalFallback:r=!1},i)=>{const{getDomainVisits:o}=e(i),s=async(l,c)=>o(t,{...n,page:l,itemsPerPage:c}),a=dh(r,async l=>o(t,l));return[s,a]},getExtraFulfilledPayload:({domain:t,query:n={}})=>({domain:t,query:n}),shouldCancel:t=>t().domainVisits.cancelLoad}),ipe=e=>hh({name:T8,initialState:npe,asyncThunkCreator:e,filterCreatedVisits:({domain:t,query:n={}},r)=>{const{startDate:i,endDate:o}=n;return r.filter(({shortUrl:s,visit:a})=>s&&Eae(s,t)&&lh(a.date,i,o))}}),au=({children:e,label:t,className:n="",labelClassName:r="",noMargin:i=!1,id:o})=>V("div",{className:`${n} ${i?"":"mb-3"}`,children:[C("label",{className:`form-label ${r}`,htmlFor:o,children:t}),e]}),og=({children:e,value:t,onChange:n,type:r,required:i,placeholder:o,className:s,labelClassName:a})=>{const l=C_();return C(au,{label:V(Ye,{children:[e,":"]}),className:s??"",labelClassName:a,id:l,children:C("input",{id:l,className:"form-control",type:r??"text",value:t,required:i??!0,placeholder:o,onChange:c=>n(c.target.value)})})},sg=({className:e="",placement:t,children:n})=>{const r=iu();return V(Ye,{children:[C("span",{className:e,ref:r,children:C(Fe,{icon:bC})}),C(Ur,{target:r,placement:t,children:n})]})},A1=({isLast:e,...t})=>C(og,{...t,required:!1,type:"url",placeholder:"No redirect",className:e?"mb-0":""}),ope=({isOpen:e,toggle:t,domain:n,editDomainRedirects:r})=>{var h,p,m;const[i,o]=H.useState(((h=n.redirects)==null?void 0:h.baseUrlRedirect)??""),[s,a]=H.useState(((p=n.redirects)==null?void 0:p.regular404Redirect)??""),[l,c]=H.useState(((m=n.redirects)==null?void 0:m.invalidShortUrlRedirect)??""),f=sh(async()=>r({domain:n.domain,redirects:{baseUrlRedirect:O1(i),regular404Redirect:O1(s),invalidShortUrlRedirect:O1(l)}}).then(t));return C(Ho,{isOpen:e,toggle:t,centered:!0,children:V("form",{name:"domainRedirectsModal",onSubmit:f,children:[V(io,{toggle:t,children:["Edit redirects for ",C("b",{children:n.domain})]}),V(Ri,{children:[V(A1,{value:i,onChange:o,children:[V(sg,{className:"me-2",placement:"bottom",children:["Visitors accessing the base url, as in ",V("b",{children:["https://",n.domain,"/"]}),", will be redirected to this URL."]}),"Base URL"]}),V(A1,{value:s,onChange:a,children:[V(sg,{className:"me-2",placement:"bottom",children:["Visitors accessing a url not matching a short URL pattern, as in ",V("b",{children:["https://",n.domain,"/???/[...]"]}),", will be redirected to this URL."]}),"Regular 404"]}),V(A1,{value:l,isLast:!0,onChange:c,children:[C(sg,{className:"me-2",placement:"bottom",children:"Visitors accessing a url matching a short URL pattern, but not matching an existing short code, will be redirected to this URL."}),"Invalid short URL"]})]}),V(na,{children:[C(mt,{color:"link",type:"button",onClick:t,children:"Cancel"}),C(mt,{color:"primary",children:"Save"})]})]})})},spe=({domain:e,editDomainRedirects:t,selectedServer:n})=>{const[r,i]=jt(),[o,s]=jt(),{isDefault:a}=e,l=!a||Mi("defaultDomainRedirectsEdition",n),c=Mi("domainVisits",n),f=Yd(n);return V(T_,{isOpen:r,toggle:i,children:[c&&V(Ve,{tag:At,to:`/server/${f}/domain/${e.domain}${e.isDefault?`_${O8}`:""}/visits`,children:[C(Fe,{icon:_C,fixedWidth:!0})," Visit stats"]}),V(Ve,{disabled:!l,onClick:l?s:void 0,children:[C(Fe,{fixedWidth:!0,icon:yC})," Edit redirects"]}),C(ope,{domain:e,isOpen:o,toggle:s,editDomainRedirects:t})]})},ape=({status:e,matchMedia:t=window.matchMedia})=>{const n=iu(),r=()=>t("(max-width: 991px)").matches,[i,o]=H.useState(r());return H.useEffect(()=>{const s=()=>o(r());return window.addEventListener("resize",s),()=>window.removeEventListener("resize",s)},[]),e==="validating"?C(Fe,{fixedWidth:!0,icon:qI,spin:!0}):V(Ye,{children:[C("span",{ref:n,children:e==="valid"?C(Fe,{fixedWidth:!0,icon:pd,className:"text-muted"}):C(Fe,{fixedWidth:!0,icon:xw,className:"text-danger"})}),C(Ur,{target:n,placement:i?"top-start":"left",autohide:e==="valid",children:e==="valid"?"Congratulations! This domain is properly configured.":V("span",{children:["Oops! There is some missing configuration, and short URLs shared with this domain will not work.",C("br",{}),"Check the ",C(Ei,{href:"https://slnk.to/multi-domain-docs",children:"documentation"})," in order to find out what is missing."]})})]})},I1=({fallback:e})=>V("span",{className:"text-muted",children:[!e&&C("small",{children:"No redirect"}),e&&V(Ye,{children:[e," ",C("small",{children:"(as fallback)"})]})]}),lpe=()=>V(Ye,{children:[C(Fe,{fixedWidth:!0,icon:KX,className:"text-primary",id:"defaultDomainIcon"}),C(Ur,{target:"defaultDomainIcon",placement:"right",children:"Default domain"})]}),cpe=({domain:e,editDomainRedirects:t,checkDomainHealth:n,defaultRedirects:r,selectedServer:i})=>{const{domain:o,isDefault:s,redirects:a,status:l}=e;return H.useEffect(()=>{n(e.domain)},[]),V("tr",{className:"responsive-table__row",children:[C("td",{className:"responsive-table__cell","data-th":"Is default domain",children:s&&C(lpe,{})}),C("th",{className:"responsive-table__cell","data-th":"Domain",children:o}),C("td",{className:"responsive-table__cell","data-th":"Base path redirect",children:(a==null?void 0:a.baseUrlRedirect)??C(I1,{fallback:r==null?void 0:r.baseUrlRedirect})}),C("td",{className:"responsive-table__cell","data-th":"Regular 404 redirect",children:(a==null?void 0:a.regular404Redirect)??C(I1,{fallback:r==null?void 0:r.regular404Redirect})}),C("td",{className:"responsive-table__cell","data-th":"Invalid short URL redirect",children:(a==null?void 0:a.invalidShortUrlRedirect)??C(I1,{fallback:r==null?void 0:r.invalidShortUrlRedirect})}),C("td",{className:"responsive-table__cell text-lg-center","data-th":"Status",children:C(ape,{status:l})}),C("td",{className:"responsive-table__cell text-end",children:C(spe,{domain:e,editDomainRedirects:t,selectedServer:i})})]})},bN=["","Domain","Base path redirect","Regular 404 redirect","Invalid short URL redirect","",""],upe=({listDomains:e,domainsList:t,filterDomains:n,editDomainRedirects:r,checkDomainHealth:i,selectedServer:o})=>{var m;const{filteredDomains:s,defaultRedirects:a,loading:l,error:c,errorData:f}=t,h=a??((m=s.find(({isDefault:g})=>g))==null?void 0:m.redirects);return H.useEffect(()=>{e()},[]),l?C(Eo,{loading:!0}):V(Ye,{children:[C(ah,{className:"mb-3",onChange:n}),(()=>c?C(Lr,{type:"error",children:C(Ao,{errorData:f,fallbackMessage:"Error loading domains :("})}):C(dn,{children:V("table",{className:"table table-hover responsive-table mb-0",children:[C("thead",{className:"responsive-table__header",children:C("tr",{children:bN.map((g,v)=>C("th",{children:g},v))})}),V("tbody",{children:[s.length<1&&C("tr",{children:C("td",{colSpan:bN.length,className:"text-center",children:"No results found"})}),s.map(g=>C(cpe,{domain:g,editDomainRedirects:r,checkDomainHealth:i,defaultRedirects:h,selectedServer:o},g.domain))]})]})}))()]})},fpe="shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS",dpe=e=>or(fpe,async({domain:t,redirects:n},{getState:r})=>{const{editDomainRedirects:i}=e(r),o=await i({domain:t,...n});return{domain:t,redirects:o}}),hpe=(e,t)=>{const[n,r]=e.split("://"),[,...i]=r.split("/"),o=i.length?`/${i.join("/")}`:"";return`${n}://${t}${o}`},Lp="shlink/domainsList",Dp={domains:[],filteredDomains:[],loading:!1,error:!1},wN=({domain:e,redirects:t})=>n=>n.domain!==e?n:{...n,redirects:t},xN=(e,t)=>n=>n.domain!==e?n:{...n,status:t},ppe=(e,t)=>{const n=or(`${Lp}/listDomains`,async(s,{getState:a})=>{const{listDomains:l}=e(a),{data:c,defaultRedirects:f}=await l();return{domains:c.map(h=>({...h,status:"validating"})),defaultRedirects:f}}),r=or(`${Lp}/checkDomainHealth`,async(s,{getState:a})=>{const{selectedServer:l}=a();if(!lC(l))return{domain:s,status:"invalid"};try{const{url:c,...f}=l,{health:h}=e({...f,url:hpe(c,s)}),{status:p}=await h();return{domain:s,status:p==="pass"?"valid":"invalid"}}catch{return{domain:s,status:"invalid"}}}),i=wn(`${Lp}/filterDomains`),{reducer:o}=Gn({name:Lp,initialState:Dp,reducers:{},extraReducers:s=>{s.addCase(n.pending,()=>({...Dp,loading:!0})),s.addCase(n.rejected,(a,{error:l})=>({...Dp,error:!0,errorData:ro(l)})),s.addCase(n.fulfilled,(a,{payload:l})=>({...Dp,...l,filteredDomains:l.domains})),s.addCase(r.fulfilled,({domains:a,filteredDomains:l,...c},{payload:f})=>({...c,domains:a.map(xN(f.domain,f.status)),filteredDomains:l.map(xN(f.domain,f.status))})),s.addCase(i,(a,{payload:l})=>({...a,filteredDomains:a.domains.filter(({domain:c})=>c.toLowerCase().match(l.toLowerCase()))})),s.addCase(t.fulfilled,(a,{payload:l})=>({...a,domains:a.domains.map(wN(l)),filteredDomains:a.filteredDomains.map(wN(l))}))}});return{reducer:o,listDomains:n,checkDomainHealth:r,filterDomains:i}},mpe=(e,t)=>{e.serviceFactory("DomainSelector",()=>Sae),e.decorator("DomainSelector",t(["domainsList"],["listDomains"])),e.serviceFactory("ManageDomains",()=>upe),e.decorator("ManageDomains",t(["domainsList","selectedServer"],["listDomains","filterDomains","editDomainRedirects","checkDomainHealth"])),e.serviceFactory("domainsListReducerCreator",ppe,"buildShlinkApiClient","editDomainRedirects"),e.serviceFactory("domainsListReducer",ct("reducer"),"domainsListReducerCreator"),e.serviceFactory("listDomains",ct("listDomains"),"domainsListReducerCreator"),e.serviceFactory("filterDomains",ct("filterDomains"),"domainsListReducerCreator"),e.serviceFactory("editDomainRedirects",dpe,"buildShlinkApiClient"),e.serviceFactory("checkDomainHealth",ct("checkDomainHealth"),"domainsListReducerCreator")},SN="shlink/mercure",gpe={loading:!0,error:!1},vpe=e=>{const t=or(`${SN}/loadMercureInfo`,(r,{getState:i})=>{const{settings:o}=i();if(!o.realTimeUpdates.enabled)throw new Error("Real time updates not enabled");return e(i).mercureInfo()}),{reducer:n}=Gn({name:SN,initialState:gpe,reducers:{},extraReducers:r=>{r.addCase(t.pending,i=>({...i,loading:!0,error:!1})),r.addCase(t.rejected,i=>({...i,loading:!1,error:!0})),r.addCase(t.fulfilled,(i,{payload:o})=>({...o,loading:!1,error:!1}))}});return{loadMercureInfo:t,reducer:n}},ype=e=>{e.serviceFactory("mercureInfoReducerCreator",vpe,"buildShlinkApiClient"),e.serviceFactory("mercureInfoReducer",ct("reducer"),"mercureInfoReducerCreator"),e.serviceFactory("loadMercureInfo",ct("loadMercureInfo"),"mercureInfoReducerCreator")},P8=({isOpen:e,duplicatedServers:t,onDiscard:n,onSave:r})=>{const i=t.length>1;return V(Ho,{centered:!0,isOpen:e,children:[V(io,{children:["Duplicated server",i&&"s"]}),V(Ri,{children:[C("p",{children:i?"The next servers already exist:":"There is already a server with:"}),C("ul",{children:t.map(({url:o,apiKey:s},a)=>i?V("li",{children:[C("b",{children:o})," - ",C("b",{children:s})]},a):V(H.Fragment,{children:[V("li",{children:["URL: ",C("b",{children:o})]}),V("li",{children:["API key: ",C("b",{children:s})]})]},a))}),V("span",{children:[i?"Do you want to ignore duplicated servers":"Do you want to save this server anyway","?"]})]}),V(na,{children:[C(mt,{color:"link",onClick:n,children:i?"Ignore duplicated":"Discard"}),C(mt,{color:"primary",onClick:r,children:"Save anyway"})]})]})},k8=({onSubmit:e,initialValues:t,children:n,title:r})=>{const[i,o]=H.useState(""),[s,a]=H.useState(""),[l,c]=H.useState(""),f=sh(()=>e({name:i,url:s,apiKey:l}));return H.useEffect(()=>{t&&o(t.name),t&&a(t.url),t&&c(t.apiKey)},[t]),V("form",{className:"server-form",name:"serverForm",onSubmit:f,children:[V(dn,{className:"mb-3",title:r,children:[C(og,{value:i,onChange:o,children:"Name"}),C(og,{type:"url",value:s,onChange:a,children:"URL"}),C(og,{value:l,onChange:c,children:"API key"})]}),C("div",{className:"text-end",children:n})]})},CN=4e3,EN=({type:e})=>C("div",{className:"mt-3",children:V(Lr,{type:e,children:[e==="success"&&"Servers properly imported. You can now select one from the list :)",e==="error"&&"The servers could not be imported. Make sure the format is correct."]})}),_pe=(e,t)=>({servers:n,createServers:r})=>{const i=jo(),o=ra(),s=!!Object.keys(n).length,[a,l]=t(!1,CN),[c,f]=t(!1,CN),[h,p]=jt(),[m,g]=H.useState(),v=()=>{if(!m)return;const w=dE();r([{...m,id:w}]),i(`/server/${w}`)};return H.useEffect(()=>{Object.values(n).some(({url:y,apiKey:b})=>(m==null?void 0:m.url)===y&&(m==null?void 0:m.apiKey)===b)?p():v()},[m]),V(su,{children:[V(k8,{title:C("h5",{className:"mb-0",children:"Add new server"}),onSubmit:g,children:[!s&&C(e,{tooltipPlacement:"top",onImport:l,onImportError:f}),s&&C(mt,{outline:!0,onClick:o,children:"Cancel"}),C(mt,{outline:!0,color:"primary",className:"ms-2",children:"Create server"})]}),a&&C(EN,{type:"success"}),c&&C(EN,{type:"error"}),C(P8,{isOpen:h,duplicatedServers:m?[m]:[],onDiscard:o,onSave:v})]})},bpe=e=>({server:t,className:n,children:r,textClassName:i})=>{const[o,,s,a]=jt();return V(Ye,{children:[V("span",{className:n,onClick:s,children:[!r&&C(Fe,{fixedWidth:!0,icon:vC}),C("span",{className:i,children:r??"Remove this server"})]}),C(e,{server:t,isOpen:o,toggle:a})]})},wpe=({server:e,toggle:t,isOpen:n,deleteServer:r,redirectHome:i=!0})=>{const o=jo(),s=H.useRef(!1),a=()=>{s.current=!0,t()};return V(Ho,{isOpen:n,toggle:t,centered:!0,onClosed:()=>{s.current&&(r(e),i&&o("/"))},children:[C(io,{toggle:t,className:"text-danger",children:"Remove server"}),V(Ri,{children:[V("p",{children:["Are you sure you want to remove ",C("b",{children:e?e.name:""}),"?"]}),C("p",{children:C("i",{children:"No data will be deleted, only the access to this server will be removed from this device. You can create it again at any moment."})})]}),V(na,{children:[C(mt,{color:"link",onClick:t,children:"Cancel"}),C(mt,{color:"danger",onClick:a,children:"Delete"})]})]})},xpe=e=>H5(({editServer:t,selectedServer:n,selectServer:r})=>{const i=ra(),{reconnect:o}=Toe();if(!Ms(n))return null;const s=a=>{t(n.id,a),o==="true"&&r(n.id),i()};return C(su,{children:V(k8,{title:V("h5",{className:"mb-0",children:['Edit "',n.name,'"']}),initialValues:n,onSubmit:s,children:[C(mt,{outline:!0,className:"me-2",onClick:i,children:"Cancel"}),C(mt,{outline:!0,color:"primary",children:"Save"})]})})},e);const TN=e=>({url:t,apiKey:n})=>e.some(r=>r.url===t&&r.apiKey===n),Spe=({importServersFromFile:e})=>({createServers:t,servers:n,children:r,onImport:i=()=>{},onImportError:o=()=>{},tooltipPlacement:s="bottom",className:a=""})=>{const l=iu(),[c,f]=H.useState(),[h,p]=H.useState([]),[m,,g,v]=jt(),w=It(t,i),y=It(()=>w(c??[]),v),b=It(()=>w((c??[]).filter(vG(TN(h)))),v),x=async({target:T})=>{var P;return e((P=T.files)==null?void 0:P[0]).then(f).then(()=>{T.value=null}).catch(o)};return H.useEffect(()=>{if(!c)return;const T=Object.values(n),P=c.filter(TN(T)),k=!!P.length;k?p(P):w(c),k&&g()},[c]),V(Ye,{children:[V(mt,{outline:!0,id:"importBtn",className:a,onClick:()=>{var T;return(T=l.current)==null?void 0:T.click()},children:[C(Fe,{icon:nQ,fixedWidth:!0})," ",r??"Import from file"]}),V(Ur,{placement:s,target:"importBtn",children:["You can create servers by importing a CSV file with columns ",C("b",{children:"name"}),", ",C("b",{children:"apiKey"})," and ",C("b",{children:"url"}),"."]}),C("input",{type:"file",accept:"text/csv",className:"import-servers-btn__csv-select",ref:l,onChange:x}),C(P8,{isOpen:m,duplicatedServers:h,onDiscard:b,onSave:y})]})};const Cpe=e=>({servers:t,selectedServer:n})=>C(su,{children:V("div",{className:"server-error__container flex-column",children:[V(Eo,{className:"w-100 mb-3 mb-md-5",type:"error",fullWidth:!0,children:[!Ms(n)&&"Could not find this Shlink server.",Ms(n)&&V(Ye,{children:[C("p",{children:"Oops! Could not connect to this Shlink server."}),"Make sure you have internet connection, and the server is properly configured and on-line."]})]}),V(z5,{servers:Object.values(t),children:["These are the Shlink servers currently configured. Choose one of them or ",C(At,{to:"/server/create",children:"add a new one"}),"."]}),Ms(n)&&C("div",{className:"container mt-3 mt-md-5",children:V("h5",{children:["Alternatively, if you think you may have miss-configured this server, you can ",C(e,{server:n,className:"server-error__delete-btn",children:"remove it"})," or ",C(At,{to:`/server/${n.id}/edit?reconnect=true`,children:"edit it"}),"."]})})]})}),Epe=4e3,Tpe=(e,t,n,r)=>({servers:i})=>{const o=Object.values(i),[s,a]=H.useState(o),l=p=>a(o.filter(({name:m,url:g})=>`${m} ${g}`.toLowerCase().match(p.toLowerCase()))),c=s.some(({autoConnect:p})=>!!p),[f,h]=n(!1,Epe);return H.useEffect(()=>{a(Object.values(i))},[i]),V(su,{children:[C(ah,{className:"mb-3",onChange:l}),V(er,{className:"mb-3",children:[V("div",{className:"col-md-6 d-flex d-md-block mb-2 mb-md-0",children:[C(t,{className:"flex-fill",onImportError:h,children:"Import servers"}),o.length>0&&V(mt,{outline:!0,className:"ms-2 flex-fill",onClick:async()=>e.exportServers(),children:[C(Fe,{icon:QI,fixedWidth:!0})," Export servers"]})]}),C("div",{className:"col-md-6 text-md-end d-flex d-md-block",children:V(mt,{outline:!0,color:"primary",className:"flex-fill",tag:At,to:"/server/create",children:[C(Fe,{icon:wC,fixedWidth:!0})," Add a server"]})})]}),C(dn,{children:V("table",{className:"table table-hover responsive-table mb-0",children:[C("thead",{className:"responsive-table__header",children:V("tr",{children:[c&&C("th",{"aria-label":"Auto-connect",style:{width:"50px"}}),C("th",{children:"Name"}),C("th",{children:"Base URL"}),C("th",{"aria-label":"Options"})]})}),V("tbody",{children:[!s.length&&C("tr",{className:"text-center",children:C("td",{colSpan:4,children:"No servers found."})}),s.map(p=>C(r,{server:p,hasAutoConnect:c},p.id))]})]})}),f&&C("div",{className:"mt-3",children:C(Lr,{type:"error",children:"The servers could not be imported. Make sure the format is correct."})})]})},Ope=e=>({server:t,hasAutoConnect:n})=>V("tr",{className:"responsive-table__row",children:[n&&C("td",{className:"responsive-table__cell","data-th":"Auto-connect",children:t.autoConnect&&V(Ye,{children:[C(Fe,{icon:pd,className:"text-primary",id:"autoConnectIcon"}),C(Ur,{target:"autoConnectIcon",placement:"right",children:"Auto-connect to this server"})]})}),C("th",{className:"responsive-table__cell","data-th":"Name",children:C(At,{to:`/server/${t.id}`,children:t.name})}),C("td",{className:"responsive-table__cell","data-th":"Base URL",children:t.url}),C("td",{className:"responsive-table__cell text-end",children:C(e,{server:t})})]});var Ppe={prefix:"far",iconName:"calendar-days",icon:[448,512,["calendar-alt"],"f073","M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192h80v56H48V192zm0 104h80v64H48V296zm128 0h96v64H176V296zm144 0h80v64H320V296zm80-48H320V192h80v56zm0 160v40c0 8.8-7.2 16-16 16H320V408h80zm-128 0v56H176V408h96zm-144 0v56H64c-8.8 0-16-7.2-16-16V408h80zM272 248H176V192h96v56z"]},kpe=Ppe,Mpe={prefix:"far",iconName:"circle-right",icon:[512,512,[61838,"arrow-alt-circle-right"],"f35a","M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 135.1c-4.2-4.5-10.1-7.1-16.3-7.1C266 128 256 138 256 150.3V208H160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h96v57.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.3-7.1l99.9-107.1c3.5-3.8 5.5-8.7 5.5-13.8s-2-10.1-5.5-13.8L294.6 135.1z"]},Rpe=Mpe,Npe={prefix:"far",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],"f111","M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"]},M8={prefix:"far",iconName:"clone",icon:[512,512,[],"f24d","M64 464H288c8.8 0 16-7.2 16-16V384h48v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h64v48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM224 304H448c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16V288c0 8.8 7.2 16 16 16zm-64-16V64c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H224c-35.3 0-64-28.7-64-64z"]};const Lpe=e=>({server:t,setAutoConnect:n})=>{const[r,i]=jt(),[o,,s,a]=jt(),l=`/server/${t.id}`,{autoConnect:c}=t,f=c?eQ:Npe;return V(T_,{isOpen:r,toggle:i,children:[V(Ve,{tag:At,to:l,children:[C(Fe,{icon:QX,fixedWidth:!0})," Connect"]}),V(Ve,{tag:At,to:`${l}/edit`,children:[C(Fe,{icon:yC,fixedWidth:!0})," Edit server"]}),V(Ve,{onClick:()=>n(t,!c),children:[C(Fe,{icon:f,fixedWidth:!0})," ",c?"Do not a":"A","uto-connect"]}),C(Ve,{divider:!0}),V(Ve,{className:"dropdown-item--danger",onClick:s,children:[C(Fe,{icon:vC,fixedWidth:!0})," Remove server"]}),C(e,{redirectHome:!1,server:t,isOpen:o,toggle:a})]})};var oy={},Dpe={get exports(){return oy},set exports(e){oy=e}};/** @license * eventsource.js * Available under MIT License (MIT) * https://github.com/Yaffle/EventSource/ diff --git a/feature/device-long-urls/index.html b/feature/device-long-urls/index.html index d2ab7fb6..39f31ae6 100644 --- a/feature/device-long-urls/index.html +++ b/feature/device-long-urls/index.html @@ -79,7 +79,7 @@ Shlink — The URL shortener - + diff --git a/feature/device-long-urls/service-worker.js b/feature/device-long-urls/service-worker.js index 4035b11b..df9d43b5 100644 --- a/feature/device-long-urls/service-worker.js +++ b/feature/device-long-urls/service-worker.js @@ -1,2 +1,2 @@ try{self["workbox:core:6.5.3"]&&_()}catch{}const z=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},G=z;class h extends Error{constructor(e,t){const n=G(e,t);super(n),this.name=e,this.details=t}}const B=new Set;function Q(s){B.add(s)}const d={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},E=s=>[d.prefix,s,d.suffix].filter(e=>e&&e.length>0).join("-"),J=s=>{for(const e of Object.keys(d))s(e)},x={updateDetails:s=>{J(e=>{typeof s[e]=="string"&&(d[e]=s[e])})},getGoogleAnalyticsName:s=>s||E(d.googleAnalytics),getPrecacheName:s=>s||E(d.precache),getPrefix:()=>d.prefix,getRuntimeName:s=>s||E(d.runtime),getSuffix:()=>d.suffix};function N(s,e){const t=new URL(s);for(const n of e)t.searchParams.delete(n);return t.href}async function X(s,e,t,n){const r=N(e.url,t);if(e.url===r)return s.match(e,n);const a=Object.assign(Object.assign({},n),{ignoreSearch:!0}),i=await s.keys(e,a);for(const c of i){const o=N(c.url,t);if(r===o)return s.match(c,n)}}let m;function Y(){if(m===void 0){const s=new Response("");if("body"in s)try{new Response(s.body),m=!0}catch{m=!1}m=!1}return m}function q(s){s.then(()=>{})}class Z{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}async function ee(){for(const s of B)await s()}const te=s=>new URL(String(s),location.href).href.replace(new RegExp(`^${location.origin}`),"");function se(s){return new Promise(e=>setTimeout(e,s))}function K(s,e){const t=e();return s.waitUntil(t),t}async function ne(s,e){let t=null;if(s.url&&(t=new URL(s.url).origin),t!==self.location.origin)throw new h("cross-origin-copy-response",{origin:t});const n=s.clone(),r={headers:new Headers(n.headers),status:n.status,statusText:n.statusText},a=e?e(r):r,i=Y()?n.body:await n.blob();return new Response(i,a)}function re(){self.addEventListener("activate",()=>self.clients.claim())}const ae=(s,e)=>e.some(t=>s instanceof t);let A,O;function ie(){return A||(A=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function ce(){return O||(O=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const F=new WeakMap,U=new WeakMap,H=new WeakMap,k=new WeakMap,P=new WeakMap;function oe(s){const e=new Promise((t,n)=>{const r=()=>{s.removeEventListener("success",a),s.removeEventListener("error",i)},a=()=>{t(f(s.result)),r()},i=()=>{n(s.error),r()};s.addEventListener("success",a),s.addEventListener("error",i)});return e.then(t=>{t instanceof IDBCursor&&F.set(t,s)}).catch(()=>{}),P.set(e,s),e}function le(s){if(U.has(s))return;const e=new Promise((t,n)=>{const r=()=>{s.removeEventListener("complete",a),s.removeEventListener("error",i),s.removeEventListener("abort",i)},a=()=>{t(),r()},i=()=>{n(s.error||new DOMException("AbortError","AbortError")),r()};s.addEventListener("complete",a),s.addEventListener("error",i),s.addEventListener("abort",i)});U.set(s,e)}let T={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return U.get(s);if(e==="objectStoreNames")return s.objectStoreNames||H.get(s);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return f(s[e])},set(s,e,t){return s[e]=t,!0},has(s,e){return s instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in s}};function he(s){T=s(T)}function ue(s){return s===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){const n=s.call(v(this),e,...t);return H.set(n,e.sort?e.sort():[e]),f(n)}:ce().includes(s)?function(...e){return s.apply(v(this),e),f(F.get(this))}:function(...e){return f(s.apply(v(this),e))}}function de(s){return typeof s=="function"?ue(s):(s instanceof IDBTransaction&&le(s),ae(s,ie())?new Proxy(s,T):s)}function f(s){if(s instanceof IDBRequest)return oe(s);if(k.has(s))return k.get(s);const e=de(s);return e!==s&&(k.set(s,e),P.set(e,s)),e}const v=s=>P.get(s);function fe(s,e,{blocked:t,upgrade:n,blocking:r,terminated:a}={}){const i=indexedDB.open(s,e),c=f(i);return n&&i.addEventListener("upgradeneeded",o=>{n(f(i.result),o.oldVersion,o.newVersion,f(i.transaction),o)}),t&&i.addEventListener("blocked",o=>t(o.oldVersion,o.newVersion,o)),c.then(o=>{a&&o.addEventListener("close",()=>a()),r&&o.addEventListener("versionchange",l=>r(l.oldVersion,l.newVersion,l))}).catch(()=>{}),c}function pe(s,{blocked:e}={}){const t=indexedDB.deleteDatabase(s);return e&&t.addEventListener("blocked",n=>e(n.oldVersion,n)),f(t).then(()=>{})}const ge=["get","getKey","getAll","getAllKeys","count"],me=["put","add","delete","clear"],D=new Map;function S(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(D.get(e))return D.get(e);const t=e.replace(/FromIndex$/,""),n=e!==t,r=me.includes(t);if(!(t in(n?IDBIndex:IDBObjectStore).prototype)||!(r||ge.includes(t)))return;const a=async function(i,...c){const o=this.transaction(i,r?"readwrite":"readonly");let l=o.store;return n&&(l=l.index(c.shift())),(await Promise.all([l[t](...c),r&&o.done]))[0]};return D.set(e,a),a}he(s=>({...s,get:(e,t,n)=>S(e,t)||s.get(e,t,n),has:(e,t)=>!!S(e,t)||s.has(e,t)}));try{self["workbox:expiration:6.5.3"]&&_()}catch{}const ye="workbox-expiration",y="cache-entries",W=s=>{const e=new URL(s,location.href);return e.hash="",e.href};class we{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(y,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&pe(this._cacheName)}async setTimestamp(e,t){e=W(e);const n={url:e,timestamp:t,cacheName:this._cacheName,id:this._getId(e)},a=(await this.getDb()).transaction(y,"readwrite",{durability:"relaxed"});await a.store.put(n),await a.done}async getTimestamp(e){const n=await(await this.getDb()).get(y,this._getId(e));return n==null?void 0:n.timestamp}async expireEntries(e,t){const n=await this.getDb();let r=await n.transaction(y).store.index("timestamp").openCursor(null,"prev");const a=[];let i=0;for(;r;){const o=r.value;o.cacheName===this._cacheName&&(e&&o.timestamp=t?a.push(r.value):i++),r=await r.continue()}const c=[];for(const o of a)await n.delete(y,o.id),c.push(o.url);return c}_getId(e){return this._cacheName+"|"+W(e)}async getDb(){return this._db||(this._db=await fe(ye,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class be{constructor(e,t={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=t.maxEntries,this._maxAgeSeconds=t.maxAgeSeconds,this._matchOptions=t.matchOptions,this._cacheName=e,this._timestampModel=new we(e)}async expireEntries(){if(this._isRunning){this._rerunRequested=!0;return}this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-this._maxAgeSeconds*1e3:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),n=await self.caches.open(this._cacheName);for(const r of t)await n.delete(r,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,q(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),n=Date.now()-this._maxAgeSeconds*1e3;return t!==void 0?t{if(!a)return null;const i=this._isResponseDateFresh(a),c=this._getCacheExpiration(r);q(c.expireEntries());const o=c.updateTimestamp(n.url);if(t)try{t.waitUntil(o)}catch{}return i?a:null},this.cacheDidUpdate=async({cacheName:t,request:n})=>{const r=this._getCacheExpiration(t);await r.updateTimestamp(n.url),await r.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&Q(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===x.getRuntimeName())throw new h("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new be(e,this._config),this._cacheExpirations.set(e,t)),t}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(t===null)return!0;const n=Date.now();return t>=n-this._maxAgeSeconds*1e3}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),r=new Date(t).getTime();return isNaN(r)?null:r}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}}try{self["workbox:precaching:6.5.3"]&&_()}catch{}const Re="__WB_REVISION__";function Ce(s){if(!s)throw new h("add-to-cache-list-unexpected-type",{entry:s});if(typeof s=="string"){const a=new URL(s,location.href);return{cacheKey:a.href,url:a.href}}const{revision:e,url:t}=s;if(!t)throw new h("add-to-cache-list-unexpected-type",{entry:s});if(!e){const a=new URL(t,location.href);return{cacheKey:a.href,url:a.href}}const n=new URL(t,location.href),r=new URL(t,location.href);return n.searchParams.set(Re,e),{cacheKey:n.href,url:r.href}}class xe{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:n})=>{if(e.type==="install"&&t&&t.originalRequest&&t.originalRequest instanceof Request){const r=t.originalRequest.url;n?this.notUpdatedURLs.push(r):this.updatedURLs.push(r)}return n}}}class Ee{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:t,params:n})=>{const r=(n==null?void 0:n.cacheKey)||this._precacheController.getCacheKeyForURL(t.url);return r?new Request(r,{headers:t.headers}):t},this._precacheController=e}}try{self["workbox:strategies:6.5.3"]&&_()}catch{}function R(s){return typeof s=="string"?new Request(s):s}class ke{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new Z,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const n of this._plugins)this._pluginStateMap.set(n,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let n=R(e);if(n.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const i=await t.preloadResponse;if(i)return i}const r=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const i of this.iterateCallbacks("requestWillFetch"))n=await i({request:n.clone(),event:t})}catch(i){if(i instanceof Error)throw new h("plugin-error-request-will-fetch",{thrownErrorMessage:i.message})}const a=n.clone();try{let i;i=await fetch(n,n.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))i=await c({event:t,request:a,response:i});return i}catch(i){throw r&&await this.runCallbacks("fetchDidFail",{error:i,event:t,originalRequest:r.clone(),request:a.clone()}),i}}async fetchAndCachePut(e){const t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){const t=R(e);let n;const{cacheName:r,matchOptions:a}=this._strategy,i=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},a),{cacheName:r});n=await caches.match(i,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))n=await o({cacheName:r,matchOptions:a,cachedResponse:n,request:i,event:this.event})||void 0;return n}async cachePut(e,t){const n=R(e);await se(0);const r=await this.getCacheKey(n,"write");if(!t)throw new h("cache-put-with-no-response",{url:te(r.url)});const a=await this._ensureResponseSafeToCache(t);if(!a)return!1;const{cacheName:i,matchOptions:c}=this._strategy,o=await self.caches.open(i),l=this.hasCallback("cacheDidUpdate"),g=l?await X(o,r.clone(),["__WB_REVISION__"],c):null;try{await o.put(r,l?a.clone():a)}catch(u){if(u instanceof Error)throw u.name==="QuotaExceededError"&&await ee(),u}for(const u of this.iterateCallbacks("cacheDidUpdate"))await u({cacheName:i,oldResponse:g,newResponse:a.clone(),request:r,event:this.event});return!0}async getCacheKey(e,t){const n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let r=e;for(const a of this.iterateCallbacks("cacheKeyWillBeUsed"))r=R(await a({mode:t,request:r,event:this.event,params:this.params}));this._cacheKeys[n]=r}return this._cacheKeys[n]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const n=this._pluginStateMap.get(t);yield a=>{const i=Object.assign(Object.assign({},a),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(const r of this.iterateCallbacks("cacheWillUpdate"))if(t=await r({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}}class V{constructor(e={}){this.cacheName=x.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,n=typeof e.request=="string"?new Request(e.request):e.request,r="params"in e?e.params:void 0,a=new ke(this,{event:t,request:n,params:r}),i=this._getResponse(a,n,t),c=this._awaitComplete(i,a,n,t);return[i,c]}async _getResponse(e,t,n){await e.runCallbacks("handlerWillStart",{event:n,request:t});let r;try{if(r=await this._handle(t,e),!r||r.type==="error")throw new h("no-response",{url:t.url})}catch(a){if(a instanceof Error){for(const i of e.iterateCallbacks("handlerDidError"))if(r=await i({error:a,event:n,request:t}),r)break}if(!r)throw a}for(const a of e.iterateCallbacks("handlerWillRespond"))r=await a({event:n,request:t,response:r});return r}async _awaitComplete(e,t,n,r){let a,i;try{a=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:r,request:n,response:a}),await t.doneWaiting()}catch(c){c instanceof Error&&(i=c)}if(await t.runCallbacks("handlerDidComplete",{event:r,request:n,response:a,error:i}),t.destroy(),i)throw i}}class p extends V{constructor(e={}){e.cacheName=x.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(p.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const n=await t.cacheMatch(e);return n||(t.event&&t.event.type==="install"?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let n;const r=t.params||{};if(this._fallbackToNetwork){const a=r.integrity,i=e.integrity,c=!i||i===a;n=await t.fetch(new Request(e,{integrity:e.mode!=="no-cors"?i||a:void 0})),a&&c&&e.mode!=="no-cors"&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,n.clone()))}else throw new h("missing-precache-entry",{cacheName:this.cacheName,url:e.url});return n}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();const n=await t.fetch(e);if(!await t.cachePut(e,n.clone()))throw new h("bad-precaching-response",{url:e.url,status:n.status});return n}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[n,r]of this.plugins.entries())r!==p.copyRedirectedCacheableResponsesPlugin&&(r===p.defaultPrecacheCacheabilityPlugin&&(e=n),r.cacheWillUpdate&&t++);t===0?this.plugins.push(p.defaultPrecacheCacheabilityPlugin):t>1&&e!==null&&this.plugins.splice(e,1)}}p.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:s}){return!s||s.status>=400?null:s}};p.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:s}){return s.redirected?await ne(s):s}};class ve{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new p({cacheName:x.getPrecacheName(e),plugins:[...t,new Ee({precacheController:this})],fallbackToNetwork:n}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const t=[];for(const n of e){typeof n=="string"?t.push(n):n&&n.revision===void 0&&t.push(n.url);const{cacheKey:r,url:a}=Ce(n),i=typeof n!="string"&&n.revision?"reload":"default";if(this._urlsToCacheKeys.has(a)&&this._urlsToCacheKeys.get(a)!==r)throw new h("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(a),secondEntry:r});if(typeof n!="string"&&n.integrity){if(this._cacheKeysToIntegrities.has(r)&&this._cacheKeysToIntegrities.get(r)!==n.integrity)throw new h("add-to-cache-list-conflicting-integrities",{url:a});this._cacheKeysToIntegrities.set(r,n.integrity)}if(this._urlsToCacheKeys.set(a,r),this._urlsToCacheModes.set(a,i),t.length>0){const c=`Workbox is precaching URLs without revision info: ${t.join(", ")} -This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(c)}}}install(e){return K(e,async()=>{const t=new xe;this.strategy.plugins.push(t);for(const[a,i]of this._urlsToCacheKeys){const c=this._cacheKeysToIntegrities.get(i),o=this._urlsToCacheModes.get(a),l=new Request(a,{integrity:c,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:i},request:l,event:e}))}const{updatedURLs:n,notUpdatedURLs:r}=t;return{updatedURLs:n,notUpdatedURLs:r}})}activate(e){return K(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),n=await t.keys(),r=new Set(this._urlsToCacheKeys.values()),a=[];for(const i of n)r.has(i.url)||(await t.delete(i),a.push(i.url));return{deletedURLs:a}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new h("non-precached-url",{url:e});return n=>(n.request=new Request(e),n.params=Object.assign({cacheKey:t},n.params),this.strategy.handle(n))}}let L;const I=()=>(L||(L=new ve),L);try{self["workbox:routing:6.5.3"]&&_()}catch{}const $="GET",C=s=>s&&typeof s=="object"?s:{handle:s};class b{constructor(e,t,n=$){this.handler=C(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=C(e)}}class De extends b{constructor(e,t,n){const r=({url:a})=>{const i=e.exec(a.href);if(i&&!(a.origin!==location.origin&&i.index!==0))return i.slice(1)};super(r,t,n)}}class Le{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(r=>{typeof r=="string"&&(r=[r]);const a=new Request(...r);return this.handleRequest({request:a,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const n=new URL(e.url,location.href);if(!n.protocol.startsWith("http"))return;const r=n.origin===location.origin,{params:a,route:i}=this.findMatchingRoute({event:t,request:e,sameOrigin:r,url:n});let c=i&&i.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:n,request:e,event:t,params:a})}catch(u){l=Promise.reject(u)}const g=i&&i.catchHandler;return l instanceof Promise&&(this._catchHandler||g)&&(l=l.catch(async u=>{if(g)try{return await g.handle({url:n,request:e,event:t,params:a})}catch(j){j instanceof Error&&(u=j)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw u})),l}findMatchingRoute({url:e,sameOrigin:t,request:n,event:r}){const a=this._routes.get(n.method)||[];for(const i of a){let c;const o=i.match({url:e,sameOrigin:t,request:n,event:r});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:i,params:c}}return{}}setDefaultHandler(e,t=$){this._defaultHandlerMap.set(t,C(e))}setCatchHandler(e){this._catchHandler=C(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new h("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new h("unregister-route-route-not-registered")}}let w;const Ue=()=>(w||(w=new Le,w.addFetchListener(),w.addCacheListener()),w);function M(s,e,t){let n;if(typeof s=="string"){const a=new URL(s,location.href),i=({url:c})=>c.href===a.href;n=new b(i,e,t)}else if(s instanceof RegExp)n=new De(s,e,t);else if(typeof s=="function")n=new b(s,e,t);else if(s instanceof b)n=s;else throw new h("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return Ue().registerRoute(n),n}function Te(s,e=[]){for(const t of[...s.searchParams.keys()])e.some(n=>n.test(t))&&s.searchParams.delete(t);return s}function*Pe(s,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:n=!0,urlManipulation:r}={}){const a=new URL(s,location.href);a.hash="",yield a.href;const i=Te(a,e);if(yield i.href,t&&i.pathname.endsWith("/")){const c=new URL(i.href);c.pathname+=t,yield c.href}if(n){const c=new URL(i.href);c.pathname+=".html",yield c.href}if(r){const c=r({url:a});for(const o of c)yield o.href}}class Ie extends b{constructor(e,t){const n=({request:r})=>{const a=e.getURLsToCacheKeys();for(const i of Pe(r.url,t)){const c=a.get(i);if(c){const o=e.getIntegrityForCacheKey(c);return{cacheKey:c,integrity:o}}}};super(n,e.strategy)}}function Me(s){const e=I(),t=new Ie(e,s);M(t)}function je(s){return I().createHandlerBoundToURL(s)}function Ne(s){I().precache(s)}function Ke(s,e){Ne(s),Me(e)}const Ae={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class Oe extends V{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(Ae)}async _handle(e,t){const n=t.fetchAndCachePut(e).catch(()=>{});t.waitUntil(n);let r=await t.cacheMatch(e),a;if(!r)try{r=await n}catch(i){i instanceof Error&&(a=i)}if(!r)throw new h("no-response",{url:e.url,error:a});return r}}const Se="shlink-web-client",We="A React-based progressive web application for shlink",Be="/shlink-web-client/feature/device-long-urls",qe="https://github.com/shlinkio/shlink-web-client",Fe="MIT",He={lint:"npm run lint:css && npm run lint:js","lint:css":"stylelint src/*.scss src/**/*.scss","lint:js":"eslint --ext .js,.ts,.tsx src test","lint:fix":"npm run lint:css:fix && npm run lint:js:fix","lint:css:fix":"npm run lint:css -- --fix","lint:js:fix":"npm run lint:js -- --fix",start:"vite serve --host=0.0.0.0",preview:"vite preview --host=0.0.0.0",build:"tsc --noEmit && vite build && node scripts/replace-version.mjs","build:dist":"npm run build && node scripts/create-dist-file.mjs",test:"jest --env=jsdom --colors","test:coverage":"npm run test -- --coverage --coverageReporters=text --coverageReporters=text-summary","test:ci":"npm run test:coverage -- --coverageReporters=clover --ci","test:pretty":"npm run test:coverage -- --coverageReporters=html","test:verbose":"npm run test -- --verbose"},Ve={"@babel/preset-env":"^7.20.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.18.6","@fortawesome/fontawesome-free":"^6.3.0","@fortawesome/fontawesome-svg-core":"^6.3.0","@fortawesome/free-brands-svg-icons":"^6.3.0","@fortawesome/free-regular-svg-icons":"^6.3.0","@fortawesome/free-solid-svg-icons":"^6.3.0","@fortawesome/react-fontawesome":"^0.2.0","@json2csv/plainjs":"^6.1.2","@reduxjs/toolkit":"^1.9.1",bootstrap:"^5.2.3",bottlejs:"^2.0.1",bowser:"^2.11.0","chart.js":"^4.1.1",classnames:"^2.3.2","compare-versions":"^5.0.3",csvtojson:"^2.0.10","date-fns":"^2.29.3","event-source-polyfill":"^1.0.31",history:"^5.3.0",leaflet:"^1.9.3",qs:"^6.11.0",ramda:"^0.27.2",react:"^18.2.0","react-chartjs-2":"^5.1.0","react-colorful":"^5.6.1","react-copy-to-clipboard":"^5.1.0","react-datepicker":"^4.8.0","react-dom":"^18.2.0","react-external-link":"^2.0.0","react-leaflet":"^4.2.0","react-redux":"^8.0.5","react-router-dom":"^6.6.1","react-swipeable":"^7.0.0","react-tag-autocomplete":"^6.3.0",reactstrap:"^9.1.5",redux:"^4.2.0","redux-localstorage-simple":"^2.5.1","redux-thunk":"^2.4.2",uuid:"^8.3.2","workbox-core":"^6.5.4","workbox-expiration":"^6.5.4","workbox-precaching":"^6.5.4","workbox-routing":"^6.5.4","workbox-strategies":"^6.5.4"},$e={"@shlinkio/eslint-config-js-coding-standard":"~2.1.0","@shlinkio/stylelint-config-css-coding-standard":"~1.0.1","@testing-library/jest-dom":"^5.16.5","@testing-library/react":"^13.4.0","@testing-library/user-event":"^14.4.3","@types/jest":"^29.2.4","@types/json2csv":"^5.0.3","@types/leaflet":"^1.9.0","@types/qs":"^6.9.7","@types/ramda":"^0.28.15","@types/react":"^18.0.26","@types/react-color":"^3.0.6","@types/react-copy-to-clipboard":"^5.0.4","@types/react-datepicker":"^4.8.0","@types/react-dom":"^18.0.10","@types/react-tag-autocomplete":"^6.3.0","@types/uuid":"^8.3.4","@vitejs/plugin-react":"^3.1.0","adm-zip":"^0.5.10","babel-jest":"^29.3.1",chalk:"^5.2.0",eslint:"^8.30.0","identity-obj-proxy":"^3.0.0",jest:"^29.3.1","jest-canvas-mock":"^2.4.0","jest-environment-jsdom":"^29.3.1","resize-observer-polyfill":"^1.5.1",sass:"^1.57.1",stylelint:"^14.16.0","ts-mockery":"^1.2.0",typescript:"^4.9.4",vite:"^4.1.1","vite-plugin-pwa":"^0.14.1"},ze=[">0.2%","not dead","not ie <= 11","not op_mini all"];var Ge={name:Se,description:We,private:!1,homepage:Be,repository:qe,license:Fe,scripts:He,dependencies:Ve,devDependencies:$e,browserslist:ze};re();Ke([{"revision":null,"url":"assets/index-1f7f66ab.css"},{"revision":null,"url":"assets/index-78cbd312.js"},{"revision":"81e36c80f55853fd1d9eb80575d53429","url":"index.html"},{"revision":"3e8169a112865ef0d76bba4e2dfd3a89","url":"./icons/icon-16x16.png"},{"revision":"20f0b51945ae3c973420e31d6b4d43c1","url":"./icons/icon-24x24.png"},{"revision":"4c9695cfb4cea403c1b66bbb7b4f7420","url":"./icons/icon-32x32.png"},{"revision":"f74edb9cc54ac938c1589876f8da9f21","url":"./icons/icon-40x40.png"},{"revision":"52933970fac8498311687de13549b014","url":"./icons/icon-48x48.png"},{"revision":"40209a194f29b21882571c77bd2bd906","url":"./icons/icon-60x60.png"},{"revision":"c8ba5a8c1da76d74c7bb21827fcf975c","url":"./icons/icon-64x64.png"},{"revision":"ae3435baceb494f9c966e2c2c736ea35","url":"./icons/icon-72x72.png"},{"revision":"850aa5b026fd1452af6c1ddd9d71850f","url":"./icons/icon-76x76.png"},{"revision":"8c62535e6b7a498ece1f6c6ae62ede59","url":"./icons/icon-96x96.png"},{"revision":"2dff586aaefa4c8d17f4c0bcbdef8b53","url":"./icons/icon-114x114.png"},{"revision":"8e28257a68ef1c55bc68bfff80e1a310","url":"./icons/icon-120x120.png"},{"revision":"0059b6f0c97fa871a5c29643b2857585","url":"./icons/icon-128x128.png"},{"revision":"41478c2456281f61e54d714718743ecc","url":"./icons/icon-144x144.png"},{"revision":"625251910295f33a578ae6d8117711c9","url":"./icons/icon-150x150.png"},{"revision":"19b71508b1d05defe32cf16a7d453001","url":"./icons/icon-152x152.png"},{"revision":"9d029a32a54ba3084c67acd5d74f8ac4","url":"./icons/icon-160x160.png"},{"revision":"6ec104aeaf745f003ecdaef2edddce97","url":"./icons/icon-167x167.png"},{"revision":"871d67907434ed0ddf5d2a6c220e09af","url":"./icons/icon-180x180.png"},{"revision":"cee2529402074d73b2135e2ddee25f6b","url":"./icons/icon-192x192.png"},{"revision":"85055b452284c0193142936dee7d2cd1","url":"./icons/icon-196x196.png"},{"revision":"f471155dd70b99924422dd9dd87ea94d","url":"./icons/icon-228x228.png"},{"revision":"4d896c5c7025582605de31fb74f0316b","url":"./icons/icon-256x256.png"},{"revision":"d99b49e5bcad41968313c3e132e7c661","url":"./icons/icon-310x310.png"},{"revision":"f9597636bef677327c3abc0fd1a743c4","url":"./icons/icon-384x384.png"},{"revision":"de22c0eb9e08d3576df5cedb568ca56b","url":"./icons/icon-512x512.png"},{"revision":"583b223ad8e20f05aaa64923d7db2e46","url":"./icons/icon-1024x1024.png"},{"revision":"70f64023aea9f0f8a319f3e6405b7be9","url":"manifest.json"}]);const Qe=new RegExp("/[^/?]+\\.[^/]+$");M(({request:s,url:e})=>!(s.mode!=="navigate"||e.pathname.startsWith("/_")||e.pathname.match(Qe)),je(`${Ge.homepage}/index.html`));M(({url:s})=>s.origin===self.location.origin&&s.pathname.endsWith(".png"),new Oe({cacheName:"images",plugins:[new _e({maxEntries:50})]}));self.addEventListener("message",s=>{s.data&&s.data.type==="SKIP_WAITING"&&self.skipWaiting()}); +This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(c)}}}install(e){return K(e,async()=>{const t=new xe;this.strategy.plugins.push(t);for(const[a,i]of this._urlsToCacheKeys){const c=this._cacheKeysToIntegrities.get(i),o=this._urlsToCacheModes.get(a),l=new Request(a,{integrity:c,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:i},request:l,event:e}))}const{updatedURLs:n,notUpdatedURLs:r}=t;return{updatedURLs:n,notUpdatedURLs:r}})}activate(e){return K(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),n=await t.keys(),r=new Set(this._urlsToCacheKeys.values()),a=[];for(const i of n)r.has(i.url)||(await t.delete(i),a.push(i.url));return{deletedURLs:a}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new h("non-precached-url",{url:e});return n=>(n.request=new Request(e),n.params=Object.assign({cacheKey:t},n.params),this.strategy.handle(n))}}let L;const I=()=>(L||(L=new ve),L);try{self["workbox:routing:6.5.3"]&&_()}catch{}const $="GET",C=s=>s&&typeof s=="object"?s:{handle:s};class b{constructor(e,t,n=$){this.handler=C(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=C(e)}}class De extends b{constructor(e,t,n){const r=({url:a})=>{const i=e.exec(a.href);if(i&&!(a.origin!==location.origin&&i.index!==0))return i.slice(1)};super(r,t,n)}}class Le{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(r=>{typeof r=="string"&&(r=[r]);const a=new Request(...r);return this.handleRequest({request:a,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const n=new URL(e.url,location.href);if(!n.protocol.startsWith("http"))return;const r=n.origin===location.origin,{params:a,route:i}=this.findMatchingRoute({event:t,request:e,sameOrigin:r,url:n});let c=i&&i.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let l;try{l=c.handle({url:n,request:e,event:t,params:a})}catch(u){l=Promise.reject(u)}const g=i&&i.catchHandler;return l instanceof Promise&&(this._catchHandler||g)&&(l=l.catch(async u=>{if(g)try{return await g.handle({url:n,request:e,event:t,params:a})}catch(j){j instanceof Error&&(u=j)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw u})),l}findMatchingRoute({url:e,sameOrigin:t,request:n,event:r}){const a=this._routes.get(n.method)||[];for(const i of a){let c;const o=i.match({url:e,sameOrigin:t,request:n,event:r});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:i,params:c}}return{}}setDefaultHandler(e,t=$){this._defaultHandlerMap.set(t,C(e))}setCatchHandler(e){this._catchHandler=C(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new h("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new h("unregister-route-route-not-registered")}}let w;const Ue=()=>(w||(w=new Le,w.addFetchListener(),w.addCacheListener()),w);function M(s,e,t){let n;if(typeof s=="string"){const a=new URL(s,location.href),i=({url:c})=>c.href===a.href;n=new b(i,e,t)}else if(s instanceof RegExp)n=new De(s,e,t);else if(typeof s=="function")n=new b(s,e,t);else if(s instanceof b)n=s;else throw new h("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return Ue().registerRoute(n),n}function Te(s,e=[]){for(const t of[...s.searchParams.keys()])e.some(n=>n.test(t))&&s.searchParams.delete(t);return s}function*Pe(s,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:n=!0,urlManipulation:r}={}){const a=new URL(s,location.href);a.hash="",yield a.href;const i=Te(a,e);if(yield i.href,t&&i.pathname.endsWith("/")){const c=new URL(i.href);c.pathname+=t,yield c.href}if(n){const c=new URL(i.href);c.pathname+=".html",yield c.href}if(r){const c=r({url:a});for(const o of c)yield o.href}}class Ie extends b{constructor(e,t){const n=({request:r})=>{const a=e.getURLsToCacheKeys();for(const i of Pe(r.url,t)){const c=a.get(i);if(c){const o=e.getIntegrityForCacheKey(c);return{cacheKey:c,integrity:o}}}};super(n,e.strategy)}}function Me(s){const e=I(),t=new Ie(e,s);M(t)}function je(s){return I().createHandlerBoundToURL(s)}function Ne(s){I().precache(s)}function Ke(s,e){Ne(s),Me(e)}const Ae={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class Oe extends V{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(Ae)}async _handle(e,t){const n=t.fetchAndCachePut(e).catch(()=>{});t.waitUntil(n);let r=await t.cacheMatch(e),a;if(!r)try{r=await n}catch(i){i instanceof Error&&(a=i)}if(!r)throw new h("no-response",{url:e.url,error:a});return r}}const Se="shlink-web-client",We="A React-based progressive web application for shlink",Be="/shlink-web-client/feature/device-long-urls",qe="https://github.com/shlinkio/shlink-web-client",Fe="MIT",He={lint:"npm run lint:css && npm run lint:js","lint:css":"stylelint src/*.scss src/**/*.scss","lint:js":"eslint --ext .js,.ts,.tsx src test","lint:fix":"npm run lint:css:fix && npm run lint:js:fix","lint:css:fix":"npm run lint:css -- --fix","lint:js:fix":"npm run lint:js -- --fix",start:"vite serve --host=0.0.0.0",preview:"vite preview --host=0.0.0.0",build:"tsc --noEmit && vite build && node scripts/replace-version.mjs","build:dist":"npm run build && node scripts/create-dist-file.mjs",test:"jest --env=jsdom --colors","test:coverage":"npm run test -- --coverage --coverageReporters=text --coverageReporters=text-summary","test:ci":"npm run test:coverage -- --coverageReporters=clover --ci","test:pretty":"npm run test:coverage -- --coverageReporters=html","test:verbose":"npm run test -- --verbose"},Ve={"@babel/preset-env":"^7.20.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.18.6","@fortawesome/fontawesome-free":"^6.3.0","@fortawesome/fontawesome-svg-core":"^6.3.0","@fortawesome/free-brands-svg-icons":"^6.3.0","@fortawesome/free-regular-svg-icons":"^6.3.0","@fortawesome/free-solid-svg-icons":"^6.3.0","@fortawesome/react-fontawesome":"^0.2.0","@json2csv/plainjs":"^6.1.2","@reduxjs/toolkit":"^1.9.1",bootstrap:"^5.2.3",bottlejs:"^2.0.1",bowser:"^2.11.0","chart.js":"^4.1.1",classnames:"^2.3.2","compare-versions":"^5.0.3",csvtojson:"^2.0.10","date-fns":"^2.29.3","event-source-polyfill":"^1.0.31",history:"^5.3.0",leaflet:"^1.9.3",qs:"^6.11.0",ramda:"^0.27.2",react:"^18.2.0","react-chartjs-2":"^5.1.0","react-colorful":"^5.6.1","react-copy-to-clipboard":"^5.1.0","react-datepicker":"^4.8.0","react-dom":"^18.2.0","react-external-link":"^2.0.0","react-leaflet":"^4.2.0","react-redux":"^8.0.5","react-router-dom":"^6.6.1","react-swipeable":"^7.0.0","react-tag-autocomplete":"^6.3.0",reactstrap:"^9.1.5",redux:"^4.2.0","redux-localstorage-simple":"^2.5.1","redux-thunk":"^2.4.2",uuid:"^8.3.2","workbox-core":"^6.5.4","workbox-expiration":"^6.5.4","workbox-precaching":"^6.5.4","workbox-routing":"^6.5.4","workbox-strategies":"^6.5.4"},$e={"@shlinkio/eslint-config-js-coding-standard":"~2.1.0","@shlinkio/stylelint-config-css-coding-standard":"~1.0.1","@testing-library/jest-dom":"^5.16.5","@testing-library/react":"^13.4.0","@testing-library/user-event":"^14.4.3","@types/jest":"^29.2.4","@types/json2csv":"^5.0.3","@types/leaflet":"^1.9.0","@types/qs":"^6.9.7","@types/ramda":"^0.28.15","@types/react":"^18.0.26","@types/react-color":"^3.0.6","@types/react-copy-to-clipboard":"^5.0.4","@types/react-datepicker":"^4.8.0","@types/react-dom":"^18.0.10","@types/react-tag-autocomplete":"^6.3.0","@types/uuid":"^8.3.4","@vitejs/plugin-react":"^3.1.0","adm-zip":"^0.5.10","babel-jest":"^29.3.1",chalk:"^5.2.0",eslint:"^8.30.0","identity-obj-proxy":"^3.0.0",jest:"^29.3.1","jest-canvas-mock":"^2.4.0","jest-environment-jsdom":"^29.3.1","resize-observer-polyfill":"^1.5.1",sass:"^1.57.1",stylelint:"^14.16.0","ts-mockery":"^1.2.0",typescript:"^4.9.4",vite:"^4.1.1","vite-plugin-pwa":"^0.14.1"},ze=[">0.2%","not dead","not ie <= 11","not op_mini all"];var Ge={name:Se,description:We,private:!1,homepage:Be,repository:qe,license:Fe,scripts:He,dependencies:Ve,devDependencies:$e,browserslist:ze};re();Ke([{"revision":null,"url":"assets/index-1f7f66ab.css"},{"revision":null,"url":"assets/index-835be51d.js"},{"revision":"fc02483a695163cfc8c68372b1d47590","url":"index.html"},{"revision":"3e8169a112865ef0d76bba4e2dfd3a89","url":"./icons/icon-16x16.png"},{"revision":"20f0b51945ae3c973420e31d6b4d43c1","url":"./icons/icon-24x24.png"},{"revision":"4c9695cfb4cea403c1b66bbb7b4f7420","url":"./icons/icon-32x32.png"},{"revision":"f74edb9cc54ac938c1589876f8da9f21","url":"./icons/icon-40x40.png"},{"revision":"52933970fac8498311687de13549b014","url":"./icons/icon-48x48.png"},{"revision":"40209a194f29b21882571c77bd2bd906","url":"./icons/icon-60x60.png"},{"revision":"c8ba5a8c1da76d74c7bb21827fcf975c","url":"./icons/icon-64x64.png"},{"revision":"ae3435baceb494f9c966e2c2c736ea35","url":"./icons/icon-72x72.png"},{"revision":"850aa5b026fd1452af6c1ddd9d71850f","url":"./icons/icon-76x76.png"},{"revision":"8c62535e6b7a498ece1f6c6ae62ede59","url":"./icons/icon-96x96.png"},{"revision":"2dff586aaefa4c8d17f4c0bcbdef8b53","url":"./icons/icon-114x114.png"},{"revision":"8e28257a68ef1c55bc68bfff80e1a310","url":"./icons/icon-120x120.png"},{"revision":"0059b6f0c97fa871a5c29643b2857585","url":"./icons/icon-128x128.png"},{"revision":"41478c2456281f61e54d714718743ecc","url":"./icons/icon-144x144.png"},{"revision":"625251910295f33a578ae6d8117711c9","url":"./icons/icon-150x150.png"},{"revision":"19b71508b1d05defe32cf16a7d453001","url":"./icons/icon-152x152.png"},{"revision":"9d029a32a54ba3084c67acd5d74f8ac4","url":"./icons/icon-160x160.png"},{"revision":"6ec104aeaf745f003ecdaef2edddce97","url":"./icons/icon-167x167.png"},{"revision":"871d67907434ed0ddf5d2a6c220e09af","url":"./icons/icon-180x180.png"},{"revision":"cee2529402074d73b2135e2ddee25f6b","url":"./icons/icon-192x192.png"},{"revision":"85055b452284c0193142936dee7d2cd1","url":"./icons/icon-196x196.png"},{"revision":"f471155dd70b99924422dd9dd87ea94d","url":"./icons/icon-228x228.png"},{"revision":"4d896c5c7025582605de31fb74f0316b","url":"./icons/icon-256x256.png"},{"revision":"d99b49e5bcad41968313c3e132e7c661","url":"./icons/icon-310x310.png"},{"revision":"f9597636bef677327c3abc0fd1a743c4","url":"./icons/icon-384x384.png"},{"revision":"de22c0eb9e08d3576df5cedb568ca56b","url":"./icons/icon-512x512.png"},{"revision":"583b223ad8e20f05aaa64923d7db2e46","url":"./icons/icon-1024x1024.png"},{"revision":"70f64023aea9f0f8a319f3e6405b7be9","url":"manifest.json"}]);const Qe=new RegExp("/[^/?]+\\.[^/]+$");M(({request:s,url:e})=>!(s.mode!=="navigate"||e.pathname.startsWith("/_")||e.pathname.match(Qe)),je(`${Ge.homepage}/index.html`));M(({url:s})=>s.origin===self.location.origin&&s.pathname.endsWith(".png"),new Oe({cacheName:"images",plugins:[new _e({maxEntries:50})]}));self.addEventListener("message",s=>{s.data&&s.data.type==="SKIP_WAITING"&&self.skipWaiting()});