@tryghost/portal 2.37.8 → 2.37.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -26
- package/package.json +3 -3
- package/umd/portal.min.js +3 -3
- package/umd/portal.min.js.map +1 -1
package/umd/portal.min.js
CHANGED
|
@@ -45,7 +45,7 @@ Type: ${e}
|
|
|
45
45
|
Name: ${qt(a)}
|
|
46
46
|
Error:`,r)}}function Ik(e){const t="console";hn(t,e),fn(t,Dk)}function Dk(){"console"in U&&uc.forEach(function(e){e in U.console&&ue(U.console,e,function(t){return Ji[e]=t,function(...n){Qe("console",{args:n,level:e});const r=Ji[e];r&&r.apply(U.console,n)}})})}function Be(){const e=U,t=e.crypto||e.msCrypto;let n=()=>Math.random()*16;try{if(t&&t.randomUUID)return t.randomUUID().replace(/-/g,"");t&&t.getRandomValues&&(n=()=>{const a=new Uint8Array(1);return t.getRandomValues(a),a[0]})}catch{}return([1e7]+1e3+4e3+8e3+1e11).replace(/[018]/g,a=>(a^(n()&15)>>a/4).toString(16))}function Wp(e){return e.exception&&e.exception.values?e.exception.values[0]:void 0}function Gt(e){const{message:t,event_id:n}=e;if(t)return t;const a=Wp(e);return a?a.type&&a.value?`${a.type}: ${a.value}`:a.type||a.value||n||"<unknown>":n||"<unknown>"}function hc(e,t,n){const a=e.exception=e.exception||{},r=a.values=a.values||[],i=r[0]=r[0]||{};i.value||(i.value=t||""),i.type||(i.type=n||"Error")}function vr(e,t){const n=Wp(e);if(!n)return;const a={type:"generic",handled:!0},r=n.mechanism;if(n.mechanism={...a,...r,...t},t&&"data"in t){const i={...r&&r.data,...t.data};n.mechanism.data=i}}function qp(e){if(e&&e.__sentry_captured__)return!0;try{kr(e,"__sentry_captured__",!0)}catch{}return!1}function Gp(e){return Array.isArray(e)?e:[e]}const oa=U,zk=1e3;let Kp,fc,gc;function Ak(e){const t="dom";hn(t,e),fn(t,_k)}function _k(){if(!oa.document)return;const e=Qe.bind(null,"dom"),t=Jp(e,!0);oa.document.addEventListener("click",t,!1),oa.document.addEventListener("keypress",t,!1),["EventTarget","Node"].forEach(n=>{const a=oa[n]&&oa[n].prototype;!a||!a.hasOwnProperty||!a.hasOwnProperty("addEventListener")||(ue(a,"addEventListener",function(r){return function(i,o,s){if(i==="click"||i=="keypress")try{const l=this,u=l.__sentry_instrumentation_handlers__=l.__sentry_instrumentation_handlers__||{},d=u[i]=u[i]||{refCount:0};if(!d.handler){const p=Jp(e);d.handler=p,r.call(this,i,p,s)}d.refCount++}catch{}return r.call(this,i,o,s)}}),ue(a,"removeEventListener",function(r){return function(i,o,s){if(i==="click"||i=="keypress")try{const l=this,u=l.__sentry_instrumentation_handlers__||{},d=u[i];d&&(d.refCount--,d.refCount<=0&&(r.call(this,i,d.handler,s),d.handler=void 0,delete u[i]),Object.keys(u).length===0&&delete l.__sentry_instrumentation_handlers__)}catch{}return r.call(this,i,o,s)}}))})}function Mk(e){if(e.type!==fc)return!1;try{if(!e.target||e.target._sentryId!==gc)return!1}catch{}return!0}function Rk(e,t){return e!=="keypress"?!1:!t||!t.tagName?!0:!(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable)}function Jp(e,t=!1){return n=>{if(!n||n._sentryCaptured)return;const a=Fk(n);if(Rk(n.type,a))return;kr(n,"_sentryCaptured",!0),a&&!a._sentryId&&kr(a,"_sentryId",Be());const r=n.type==="keypress"?"input":n.type;Mk(n)||(e({event:n,name:r,global:t}),fc=n.type,gc=a?a._sentryId:void 0),clearTimeout(Kp),Kp=oa.setTimeout(()=>{gc=void 0,fc=void 0},zk)}}function Fk(e){try{return e.target}catch{return null}}const bc=lc();function Qp(){if(!("fetch"in bc))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch{return!1}}function yc(e){return e&&/^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}function Lk(){if(typeof EdgeRuntime=="string")return!0;if(!Qp())return!1;if(yc(bc.fetch))return!0;let e=!1;const t=bc.document;if(t&&typeof t.createElement=="function")try{const n=t.createElement("iframe");n.hidden=!0,t.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(e=yc(n.contentWindow.fetch)),t.head.removeChild(n)}catch(n){yr&&D.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",n)}return e}function Uk(e){const t="fetch";hn(t,e),fn(t,Yk)}function Yk(){Lk()&&ue(U,"fetch",function(e){return function(...t){const{method:n,url:a}=Ok(t),r={args:t,fetchData:{method:n,url:a},startTimestamp:Date.now()};return Qe("fetch",{...r}),e.apply(U,t).then(i=>{const o={...r,endTimestamp:Date.now(),response:i};return Qe("fetch",o),i},i=>{const o={...r,endTimestamp:Date.now(),error:i};throw Qe("fetch",o),i})}})}function kc(e,t){return!!e&&typeof e=="object"&&!!e[t]}function Zp(e){return typeof e=="string"?e:e?kc(e,"url")?e.url:e.toString?e.toString():"":""}function Ok(e){if(e.length===0)return{method:"GET",url:""};if(e.length===2){const[n,a]=e;return{url:Zp(n),method:kc(a,"method")?String(a.method).toUpperCase():"GET"}}const t=e[0];return{url:Zp(t),method:kc(t,"method")?String(t.method).toUpperCase():"GET"}}let Xi=null;function Bk(e){const t="error";hn(t,e),fn(t,Hk)}function Hk(){Xi=U.onerror,U.onerror=function(e,t,n,a,r){return Qe("error",{column:a,error:r,line:n,msg:e,url:t}),Xi&&!Xi.__SENTRY_LOADER__?Xi.apply(this,arguments):!1},U.onerror.__SENTRY_INSTRUMENTED__=!0}let eo=null;function Vk(e){const t="unhandledrejection";hn(t,e),fn(t,Wk)}function Wk(){eo=U.onunhandledrejection,U.onunhandledrejection=function(e){return Qe("unhandledrejection",e),eo&&!eo.__SENTRY_LOADER__?eo.apply(this,arguments):!0},U.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}const to=lc();function qk(){const e=to.chrome,t=e&&e.app&&e.app.runtime,n="history"in to&&!!to.history.pushState&&!!to.history.replaceState;return!t&&n}const wr=U;let no;function Xp(e){const t="history";hn(t,e),fn(t,Gk)}function Gk(){if(!qk())return;const e=wr.onpopstate;wr.onpopstate=function(...n){const a=wr.location.href,r=no;if(no=a,Qe("history",{from:r,to:a}),e)try{return e.apply(this,n)}catch{}};function t(n){return function(...a){const r=a.length>2?a[2]:void 0;if(r){const i=no,o=String(r);no=o,Qe("history",{from:i,to:o})}return n.apply(this,a)}}ue(wr.history,"pushState",t),ue(wr.history,"replaceState",t)}const Kk=U,xr="__sentry_xhr_v3__";function Jk(e){const t="xhr";hn(t,e),fn(t,Qk)}function Qk(){if(!Kk.XMLHttpRequest)return;const e=XMLHttpRequest.prototype;ue(e,"open",function(t){return function(...n){const a=Date.now(),r=wt(n[0])?n[0].toUpperCase():void 0,i=Zk(n[1]);if(!r||!i)return t.apply(this,n);this[xr]={method:r,url:i,request_headers:{}},r==="POST"&&i.match(/sentry_key/)&&(this.__sentry_own_request__=!0);const o=()=>{const s=this[xr];if(s&&this.readyState===4){try{s.status_code=this.status}catch{}const l={args:[r,i],endTimestamp:Date.now(),startTimestamp:a,xhr:this};Qe("xhr",l)}};return"onreadystatechange"in this&&typeof this.onreadystatechange=="function"?ue(this,"onreadystatechange",function(s){return function(...l){return o(),s.apply(this,l)}}):this.addEventListener("readystatechange",o),ue(this,"setRequestHeader",function(s){return function(...l){const[u,d]=l,p=this[xr];return p&&wt(u)&&wt(d)&&(p.request_headers[u.toLowerCase()]=d),s.apply(this,l)}}),t.apply(this,n)}}),ue(e,"send",function(t){return function(...n){const a=this[xr];if(!a)return t.apply(this,n);n[0]!==void 0&&(a.body=n[0]);const r={args:[a.method,a.url],startTimestamp:Date.now(),xhr:this};return Qe("xhr",r),t.apply(this,n)}})}function Zk(e){if(wt(e))return e;try{return e.toString()}catch{}}function Xk(){return"npm"}function ev(){const e=typeof WeakSet=="function",t=e?new WeakSet:[];function n(r){if(e)return t.has(r)?!0:(t.add(r),!1);for(let i=0;i<t.length;i++)if(t[i]===r)return!0;return t.push(r),!1}function a(r){if(e)t.delete(r);else for(let i=0;i<t.length;i++)if(t[i]===r){t.splice(i,1);break}}return[n,a]}function Kt(e,t=100,n=1/0){try{return vc("",e,t,n)}catch(a){return{ERROR:`**non-serializable** (${a})`}}}function eh(e,t=3,n=100*1024){const a=Kt(e,t);return rv(a)>n?eh(e,t-1,n):a}function vc(e,t,n=1/0,a=1/0,r=ev()){const[i,o]=r;if(t==null||["number","boolean","string"].includes(typeof t)&&!mk(t))return t;const s=tv(e,t);if(!s.startsWith("[object "))return s;if(t.__sentry_skip_normalization__)return t;const l=typeof t.__sentry_override_normalization_depth__=="number"?t.__sentry_override_normalization_depth__:n;if(l===0)return s.replace("object ","");if(i(t))return"[Circular ~]";const u=t;if(u&&typeof u.toJSON=="function")try{const f=u.toJSON();return vc("",f,l-1,a,r)}catch{}const d=Array.isArray(t)?[]:{};let p=0;const m=Fp(t);for(const f in m){if(!Object.prototype.hasOwnProperty.call(m,f))continue;if(p>=a){d[f]="[MaxProperties ~]";break}const y=m[f];d[f]=vc(f,y,l-1,a,r),p++}return o(t),d}function tv(e,t){try{if(e==="domain"&&t&&typeof t=="object"&&t._events)return"[Domain]";if(e==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&t===global)return"[Global]";if(typeof window<"u"&&t===window)return"[Window]";if(typeof document<"u"&&t===document)return"[Document]";if(Np(t))return"[VueViewModel]";if(dk(t))return"[SyntheticEvent]";if(typeof t=="number"&&t!==t)return"[NaN]";if(typeof t=="function")return`[Function: ${qt(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;const n=nv(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function nv(e){const t=Object.getPrototypeOf(e);return t?t.constructor.name:"null prototype"}function av(e){return~-encodeURI(e).split(/%..|./).length}function rv(e){return av(JSON.stringify(e))}var St;(function(e){e[e.PENDING=0]="PENDING";const n=1;e[e.RESOLVED=n]="RESOLVED";const a=2;e[e.REJECTED=a]="REJECTED"})(St||(St={}));function sa(e){return new De(t=>{t(e)})}function wc(e){return new De((t,n)=>{n(e)})}class De{constructor(t){De.prototype.__init.call(this),De.prototype.__init2.call(this),De.prototype.__init3.call(this),De.prototype.__init4.call(this),this._state=St.PENDING,this._handlers=[];try{t(this._resolve,this._reject)}catch(n){this._reject(n)}}then(t,n){return new De((a,r)=>{this._handlers.push([!1,i=>{if(!t)a(i);else try{a(t(i))}catch(o){r(o)}},i=>{if(!n)r(i);else try{a(n(i))}catch(o){r(o)}}]),this._executeHandlers()})}catch(t){return this.then(n=>n,t)}finally(t){return new De((n,a)=>{let r,i;return this.then(o=>{i=!1,r=o,t&&t()},o=>{i=!0,r=o,t&&t()}).then(()=>{if(i){a(r);return}n(r)})})}__init(){this._resolve=t=>{this._setResult(St.RESOLVED,t)}}__init2(){this._reject=t=>{this._setResult(St.REJECTED,t)}}__init3(){this._setResult=(t,n)=>{if(this._state===St.PENDING){if(qi(n)){n.then(this._resolve,this._reject);return}this._state=t,this._value=n,this._executeHandlers()}}}__init4(){this._executeHandlers=()=>{if(this._state===St.PENDING)return;const t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===St.RESOLVED&&n[1](this._value),this._state===St.REJECTED&&n[2](this._value),n[0]=!0)})}}}function iv(e){const t=[];function n(){return e===void 0||t.length<e}function a(o){return t.splice(t.indexOf(o),1)[0]}function r(o){if(!n())return wc(new st("Not adding Promise because buffer limit was reached."));const s=o();return t.indexOf(s)===-1&&t.push(s),s.then(()=>a(s)).then(null,()=>a(s).then(null,()=>{})),s}function i(o){return new De((s,l)=>{let u=t.length;if(!u)return s(!0);const d=setTimeout(()=>{o&&o>0&&s(!1)},o);t.forEach(p=>{sa(p).then(()=>{--u||(clearTimeout(d),s(!0))},l)})})}return{$:t,add:r,drain:i}}function xc(e){if(!e)return{};const t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};const n=t[6]||"",a=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:a,relative:t[5]+n+a}}const ov=["fatal","error","warning","log","info","debug"];function sv(e){return e==="warn"?"warning":ov.includes(e)?e:"log"}const th=1e3;function Sr(){return Date.now()/th}function lv(){const{performance:e}=U;if(!e||!e.now)return Sr;const t=Date.now()-e.now(),n=e.timeOrigin==null?t:e.timeOrigin;return()=>(n+e.now())/th}const nh=lv();(()=>{const{performance:e}=U;if(!e||!e.now)return;const t=3600*1e3,n=e.now(),a=Date.now(),r=e.timeOrigin?Math.abs(e.timeOrigin+n-a):t,i=r<t,o=e.timing&&e.timing.navigationStart,l=typeof o=="number"?Math.abs(o+n-a):t,u=l<t;return i||u?r<=l?e.timeOrigin:o:a})();function la(e,t=[]){return[e,t]}function cv(e,t){const[n,a]=e;return[n,[...a,t]]}function ah(e,t){const n=e[1];for(const a of n){const r=a[0].type;if(t(a,r))return!0}return!1}function Sc(e,t){return(t||new TextEncoder).encode(e)}function uv(e,t){const[n,a]=e;let r=JSON.stringify(n);function i(o){typeof r=="string"?r=typeof o=="string"?r+o:[Sc(r,t),o]:r.push(typeof o=="string"?Sc(o,t):o)}for(const o of a){const[s,l]=o;if(i(`
|
|
47
47
|
${JSON.stringify(s)}
|
|
48
|
-
`),typeof l=="string"||l instanceof Uint8Array)i(l);else{let u;try{u=JSON.stringify(l)}catch{u=JSON.stringify(Kt(l))}i(u)}}return typeof r=="string"?r:dv(r)}function dv(e){const t=e.reduce((r,i)=>r+i.length,0),n=new Uint8Array(t);let a=0;for(const r of e)n.set(r,a),a+=r.length;return n}function mv(e,t){const n=typeof e.data=="string"?Sc(e.data,t):e.data;return[xt({type:"attachment",length:n.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType}),n]}const pv={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",statsd:"metric_bucket"};function rh(e){return pv[e]}function ih(e){if(!e||!e.sdk)return;const{name:t,version:n}=e.sdk;return{name:t,version:n}}function hv(e,t,n,a){const r=e.sdkProcessingMetadata&&e.sdkProcessingMetadata.dynamicSamplingContext;return{event_id:e.event_id,sent_at:new Date().toISOString(),...t&&{sdk:t},...!!n&&a&&{dsn:ia(a)},...r&&{trace:xt({...r})}}}function fv(e,t,n){const a=[{type:"client_report"},{timestamp:n||Sr(),discarded_events:e}];return la(t?{dsn:t}:{},[a])}const gv=60*1e3;function bv(e,t=Date.now()){const n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;const a=Date.parse(`${e}`);return isNaN(a)?gv:a-t}function yv(e,t){return e[t]||e.all||0}function kv(e,t,n=Date.now()){return yv(e,t)>n}function vv(e,{statusCode:t,headers:n},a=Date.now()){const r={...e},i=n&&n["x-sentry-rate-limits"],o=n&&n["retry-after"];if(i)for(const s of i.trim().split(",")){const[l,u,,,d]=s.split(":",5),p=parseInt(l,10),m=(isNaN(p)?60:p)*1e3;if(!u)r.all=a+m;else for(const f of u.split(";"))f==="metric_bucket"?(!d||d.split(";").includes("custom"))&&(r[f]=a+m):r[f]=a+m}else o?r.all=a+bv(o,a):t===429&&(r.all=a+60*1e3);return r}const B=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,ao="production";function Ec(){return zp("globalEventProcessors",()=>[])}function wv(e){Ec().push(e)}function ro(e,t,n,a=0){return new De((r,i)=>{const o=e[a];if(t===null||typeof o!="function")r(t);else{const s=o({...t},n);B&&o.id&&s===null&&D.log(`Event processor "${o.id}" dropped event`),qi(s)?s.then(l=>ro(e,l,n,a+1).then(r)).then(null,i):ro(e,s,n,a+1).then(r).then(null,i)}})}function oh(e){const t=nh(),n={sid:Be(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>xv(n)};return e&&gn(n,e),n}function gn(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),!e.did&&!t.did&&(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||nh(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=t.sid.length===32?t.sid:Be()),t.init!==void 0&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),typeof t.started=="number"&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(typeof t.duration=="number")e.duration=t.duration;else{const n=e.timestamp-e.started;e.duration=n>=0?n:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),typeof t.errors=="number"&&(e.errors=t.errors),t.status&&(e.status=t.status)}function sh(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),gn(e,n)}function xv(e){return xt({sid:`${e.sid}`,init:e.init,started:new Date(e.started*1e3).toISOString(),timestamp:new Date(e.timestamp*1e3).toISOString(),status:e.status,errors:e.errors,did:typeof e.did=="number"||typeof e.did=="string"?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}})}const Sv=1;function Ev(e){const{spanId:t,traceId:n}=e.spanContext(),{data:a,op:r,parent_span_id:i,status:o,tags:s,origin:l}=Er(e);return xt({data:a,op:r,parent_span_id:i,span_id:t,status:o,tags:s,trace_id:n,origin:l})}function Er(e){return Cv(e)?e.getSpanJSON():typeof e.toJSON=="function"?e.toJSON():{}}function Cv(e){return typeof e.getSpanJSON=="function"}function jv(e){const{traceFlags:t}=e.spanContext();return!!(t&Sv)}function $v(e,t,n,a,r,i){const{normalizeDepth:o=3,normalizeMaxBreadth:s=1e3}=e,l={...t,event_id:t.event_id||n.event_id||Be(),timestamp:t.timestamp||Sr()},u=n.integrations||e.integrations.map(h=>h.name);Pv(l,e),Iv(l,u),t.type===void 0&&Nv(l,e.stackParser);const d=zv(a,n.captureContext);n.mechanism&&vr(l,n.mechanism);const p=r&&r.getEventProcessors?r.getEventProcessors():[],m=Vv().getScopeData();if(i){const h=i.getScopeData();kh(m,h)}if(d){const h=d.getScopeData();kh(m,h)}const f=[...n.attachments||[],...m.attachments];f.length&&(n.attachments=f),yh(l,m);const y=[...p,...Ec(),...m.eventProcessors];return ro(y,l,n).then(h=>(h&&Tv(h),typeof o=="number"&&o>0?Dv(h,o,s):h))}function Pv(e,t){const{environment:n,release:a,dist:r,maxValueLength:i=250}=t;"environment"in e||(e.environment="environment"in t?n:ao),e.release===void 0&&a!==void 0&&(e.release=a),e.dist===void 0&&r!==void 0&&(e.dist=r),e.message&&(e.message=ra(e.message,i));const o=e.exception&&e.exception.values&&e.exception.values[0];o&&o.value&&(o.value=ra(o.value,i));const s=e.request;s&&s.url&&(s.url=ra(s.url,i))}const lh=new WeakMap;function Nv(e,t){const n=U._sentryDebugIds;if(!n)return;let a;const r=lh.get(t);r?a=r:(a=new Map,lh.set(t,a));const i=Object.keys(n).reduce((o,s)=>{let l;const u=a.get(s);u?l=u:(l=t(s),a.set(s,l));for(let d=l.length-1;d>=0;d--){const p=l[d];if(p.filename){o[p.filename]=n[s];break}}return o},{});try{e.exception.values.forEach(o=>{o.stacktrace.frames.forEach(s=>{s.filename&&(s.debug_id=i[s.filename])})})}catch{}}function Tv(e){const t={};try{e.exception.values.forEach(a=>{a.stacktrace.frames.forEach(r=>{r.debug_id&&(r.abs_path?t[r.abs_path]=r.debug_id:r.filename&&(t[r.filename]=r.debug_id),delete r.debug_id)})})}catch{}if(Object.keys(t).length===0)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];const n=e.debug_meta.images;Object.keys(t).forEach(a=>{n.push({type:"sourcemap",code_file:a,debug_id:t[a]})})}function Iv(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function Dv(e,t,n){if(!e)return null;const a={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(r=>({...r,...r.data&&{data:Kt(r.data,t,n)}}))},...e.user&&{user:Kt(e.user,t,n)},...e.contexts&&{contexts:Kt(e.contexts,t,n)},...e.extra&&{extra:Kt(e.extra,t,n)}};return e.contexts&&e.contexts.trace&&a.contexts&&(a.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(a.contexts.trace.data=Kt(e.contexts.trace.data,t,n))),e.spans&&(a.spans=e.spans.map(r=>{const i=Er(r).data;return i&&(r.data=Kt(i,t,n)),r})),a}function zv(e,t){if(!t)return e;const n=e?e.clone():new Et;return n.update(t),n}function Av(e){if(e)return _v(e)?{captureContext:e}:Rv(e)?{captureContext:e}:e}function _v(e){return e instanceof Et||typeof e=="function"}const Mv=["user","level","extra","contexts","tags","fingerprint","requestSession","propagationContext"];function Rv(e){return Object.keys(e).some(t=>Mv.includes(t))}function ch(e,t){return lt().captureException(e,Av(t))}function uh(e,t){return lt().captureEvent(e,t)}function bn(e,t){lt().addBreadcrumb(e,t)}function dh(...e){const t=lt();if(e.length===2){const[n,a]=e;return n?t.withScope(()=>(t.getStackTop().scope=n,a(n))):t.withScope(a)}return t.withScope(e[0])}function xe(){return lt().getClient()}function Cr(){return lt().getScope()}function mh(e){const t=xe(),n=oo(),a=Cr(),{release:r,environment:i=ao}=t&&t.getOptions()||{},{userAgent:o}=U.navigator||{},s=oh({release:r,environment:i,user:a.getUser()||n.getUser(),...o&&{userAgent:o},...e}),l=n.getSession();return l&&l.status==="ok"&&gn(l,{status:"exited"}),ph(),n.setSession(s),a.setSession(s),s}function ph(){const e=oo(),t=Cr(),n=t.getSession()||e.getSession();n&&sh(n),hh(),e.setSession(),t.setSession()}function hh(){const e=oo(),t=Cr(),n=xe(),a=t.getSession()||e.getSession();a&&n&&n.captureSession&&n.captureSession(a)}function fh(e=!1){if(e){ph();return}hh()}function gh(e){return e.transaction}function bh(e,t,n){const a=t.getOptions(),{publicKey:r}=t.getDsn()||{},{segment:i}=n&&n.getUser()||{},o=xt({environment:a.environment||ao,release:a.release,user_segment:i,public_key:r,trace_id:e});return t.emit&&t.emit("createDsc",o),o}function Fv(e){const t=xe();if(!t)return{};const n=bh(Er(e).trace_id||"",t,Cr()),a=gh(e);if(!a)return n;const r=a&&a._frozenDynamicSamplingContext;if(r)return r;const{sampleRate:i,source:o}=a.metadata;i!=null&&(n.sample_rate=`${i}`);const s=Er(a);return o&&o!=="url"&&(n.transaction=s.description),n.sampled=String(jv(a)),t.emit&&t.emit("createDsc",n),n}function yh(e,t){const{fingerprint:n,span:a,breadcrumbs:r,sdkProcessingMetadata:i}=t;Lv(e,t),a&&Ov(e,a),Bv(e,n),Uv(e,r),Yv(e,i)}function kh(e,t){const{extra:n,tags:a,user:r,contexts:i,level:o,sdkProcessingMetadata:s,breadcrumbs:l,fingerprint:u,eventProcessors:d,attachments:p,propagationContext:m,transactionName:f,span:y}=t;jr(e,"extra",n),jr(e,"tags",a),jr(e,"user",r),jr(e,"contexts",i),jr(e,"sdkProcessingMetadata",s),o&&(e.level=o),f&&(e.transactionName=f),y&&(e.span=y),l.length&&(e.breadcrumbs=[...e.breadcrumbs,...l]),u.length&&(e.fingerprint=[...e.fingerprint,...u]),d.length&&(e.eventProcessors=[...e.eventProcessors,...d]),p.length&&(e.attachments=[...e.attachments,...p]),e.propagationContext={...e.propagationContext,...m}}function jr(e,t,n){if(n&&Object.keys(n).length){e[t]={...e[t]};for(const a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[t][a]=n[a])}}function Lv(e,t){const{extra:n,tags:a,user:r,contexts:i,level:o,transactionName:s}=t,l=xt(n);l&&Object.keys(l).length&&(e.extra={...l,...e.extra});const u=xt(a);u&&Object.keys(u).length&&(e.tags={...u,...e.tags});const d=xt(r);d&&Object.keys(d).length&&(e.user={...d,...e.user});const p=xt(i);p&&Object.keys(p).length&&(e.contexts={...p,...e.contexts}),o&&(e.level=o),s&&(e.transaction=s)}function Uv(e,t){const n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function Yv(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function Ov(e,t){e.contexts={trace:Ev(t),...e.contexts};const n=gh(t);if(n){e.sdkProcessingMetadata={dynamicSamplingContext:Fv(t),...e.sdkProcessingMetadata};const a=Er(n).description;a&&(e.tags={transaction:a,...e.tags})}}function Bv(e,t){e.fingerprint=e.fingerprint?Gp(e.fingerprint):[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint&&!e.fingerprint.length&&delete e.fingerprint}const Hv=100;let Cc;class Et{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext=vh()}static clone(t){return t?t.clone():new Et}clone(){const t=new Et;return t._breadcrumbs=[...this._breadcrumbs],t._tags={...this._tags},t._extra={...this._extra},t._contexts={...this._contexts},t._user=this._user,t._level=this._level,t._span=this._span,t._session=this._session,t._transactionName=this._transactionName,t._fingerprint=this._fingerprint,t._eventProcessors=[...this._eventProcessors],t._requestSession=this._requestSession,t._attachments=[...this._attachments],t._sdkProcessingMetadata={...this._sdkProcessingMetadata},t._propagationContext={...this._propagationContext},t._client=this._client,t}setClient(t){this._client=t}getClient(){return this._client}addScopeListener(t){this._scopeListeners.push(t)}addEventProcessor(t){return this._eventProcessors.push(t),this}setUser(t){return this._user=t||{email:void 0,id:void 0,ip_address:void 0,segment:void 0,username:void 0},this._session&&gn(this._session,{user:t}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(t){return this._requestSession=t,this}setTags(t){return this._tags={...this._tags,...t},this._notifyScopeListeners(),this}setTag(t,n){return this._tags={...this._tags,[t]:n},this._notifyScopeListeners(),this}setExtras(t){return this._extra={...this._extra,...t},this._notifyScopeListeners(),this}setExtra(t,n){return this._extra={...this._extra,[t]:n},this._notifyScopeListeners(),this}setFingerprint(t){return this._fingerprint=t,this._notifyScopeListeners(),this}setLevel(t){return this._level=t,this._notifyScopeListeners(),this}setTransactionName(t){return this._transactionName=t,this._notifyScopeListeners(),this}setContext(t,n){return n===null?delete this._contexts[t]:this._contexts[t]=n,this._notifyScopeListeners(),this}setSpan(t){return this._span=t,this._notifyScopeListeners(),this}getSpan(){return this._span}getTransaction(){const t=this._span;return t&&t.transaction}setSession(t){return t?this._session=t:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(t){if(!t)return this;const n=typeof t=="function"?t(this):t;if(n instanceof Et){const a=n.getScopeData();this._tags={...this._tags,...a.tags},this._extra={...this._extra,...a.extra},this._contexts={...this._contexts,...a.contexts},a.user&&Object.keys(a.user).length&&(this._user=a.user),a.level&&(this._level=a.level),a.fingerprint.length&&(this._fingerprint=a.fingerprint),n.getRequestSession()&&(this._requestSession=n.getRequestSession()),a.propagationContext&&(this._propagationContext=a.propagationContext)}else if(aa(n)){const a=t;this._tags={...this._tags,...a.tags},this._extra={...this._extra,...a.extra},this._contexts={...this._contexts,...a.contexts},a.user&&(this._user=a.user),a.level&&(this._level=a.level),a.fingerprint&&(this._fingerprint=a.fingerprint),a.requestSession&&(this._requestSession=a.requestSession),a.propagationContext&&(this._propagationContext=a.propagationContext)}return this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._span=void 0,this._session=void 0,this._notifyScopeListeners(),this._attachments=[],this._propagationContext=vh(),this}addBreadcrumb(t,n){const a=typeof n=="number"?n:Hv;if(a<=0)return this;const r={timestamp:Sr(),...t},i=this._breadcrumbs;return i.push(r),this._breadcrumbs=i.length>a?i.slice(-a):i,this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(t){return this._attachments.push(t),this}getAttachments(){return this.getScopeData().attachments}clearAttachments(){return this._attachments=[],this}getScopeData(){const{_breadcrumbs:t,_attachments:n,_contexts:a,_tags:r,_extra:i,_user:o,_level:s,_fingerprint:l,_eventProcessors:u,_propagationContext:d,_sdkProcessingMetadata:p,_transactionName:m,_span:f}=this;return{breadcrumbs:t,attachments:n,contexts:a,tags:r,extra:i,user:o,level:s,fingerprint:l||[],eventProcessors:u,propagationContext:d,sdkProcessingMetadata:p,transactionName:m,span:f}}applyToEvent(t,n={},a=[]){yh(t,this.getScopeData());const r=[...a,...Ec(),...this._eventProcessors];return ro(r,t,n)}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata={...this._sdkProcessingMetadata,...t},this}setPropagationContext(t){return this._propagationContext=t,this}getPropagationContext(){return this._propagationContext}captureException(t,n){const a=n&&n.event_id?n.event_id:Be();if(!this._client)return D.warn("No client configured on scope - will not capture exception!"),a;const r=new Error("Sentry syntheticException");return this._client.captureException(t,{originalException:t,syntheticException:r,...n,event_id:a},this),a}captureMessage(t,n,a){const r=a&&a.event_id?a.event_id:Be();if(!this._client)return D.warn("No client configured on scope - will not capture message!"),r;const i=new Error(t);return this._client.captureMessage(t,n,{originalException:t,syntheticException:i,...a,event_id:r},this),r}captureEvent(t,n){const a=n&&n.event_id?n.event_id:Be();return this._client?(this._client.captureEvent(t,{...n,event_id:a},this),a):(D.warn("No client configured on scope - will not capture event!"),a)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(t=>{t(this)}),this._notifyingListeners=!1)}}function Vv(){return Cc||(Cc=new Et),Cc}function vh(){return{traceId:Be(),spanId:Be().substring(16)}}const jc="7.116.0",wh=parseFloat(jc),Wv=100;class xh{constructor(t,n,a,r=wh){this._version=r;let i;n?i=n:(i=new Et,i.setClient(t));let o;a?o=a:(o=new Et,o.setClient(t)),this._stack=[{scope:i}],t&&this.bindClient(t),this._isolationScope=o}isOlderThan(t){return this._version<t}bindClient(t){const n=this.getStackTop();n.client=t,n.scope.setClient(t),t&&t.setupIntegrations&&t.setupIntegrations()}pushScope(){const t=this.getScope().clone();return this.getStack().push({client:this.getClient(),scope:t}),t}popScope(){return this.getStack().length<=1?!1:!!this.getStack().pop()}withScope(t){const n=this.pushScope();let a;try{a=t(n)}catch(r){throw this.popScope(),r}return qi(a)?a.then(r=>(this.popScope(),r),r=>{throw this.popScope(),r}):(this.popScope(),a)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStack(){return this._stack}getStackTop(){return this._stack[this._stack.length-1]}captureException(t,n){const a=this._lastEventId=n&&n.event_id?n.event_id:Be(),r=new Error("Sentry syntheticException");return this.getScope().captureException(t,{originalException:t,syntheticException:r,...n,event_id:a}),a}captureMessage(t,n,a){const r=this._lastEventId=a&&a.event_id?a.event_id:Be(),i=new Error(t);return this.getScope().captureMessage(t,n,{originalException:t,syntheticException:i,...a,event_id:r}),r}captureEvent(t,n){const a=n&&n.event_id?n.event_id:Be();return t.type||(this._lastEventId=a),this.getScope().captureEvent(t,{...n,event_id:a}),a}lastEventId(){return this._lastEventId}addBreadcrumb(t,n){const{scope:a,client:r}=this.getStackTop();if(!r)return;const{beforeBreadcrumb:i=null,maxBreadcrumbs:o=Wv}=r.getOptions&&r.getOptions()||{};if(o<=0)return;const l={timestamp:Sr(),...t},u=i?Qi(()=>i(l,n)):l;u!==null&&(r.emit&&r.emit("beforeAddBreadcrumb",u,n),a.addBreadcrumb(u,o))}setUser(t){this.getScope().setUser(t),this.getIsolationScope().setUser(t)}setTags(t){this.getScope().setTags(t),this.getIsolationScope().setTags(t)}setExtras(t){this.getScope().setExtras(t),this.getIsolationScope().setExtras(t)}setTag(t,n){this.getScope().setTag(t,n),this.getIsolationScope().setTag(t,n)}setExtra(t,n){this.getScope().setExtra(t,n),this.getIsolationScope().setExtra(t,n)}setContext(t,n){this.getScope().setContext(t,n),this.getIsolationScope().setContext(t,n)}configureScope(t){const{scope:n,client:a}=this.getStackTop();a&&t(n)}run(t){const n=Sh(this);try{t(this)}finally{Sh(n)}}getIntegration(t){const n=this.getClient();if(!n)return null;try{return n.getIntegration(t)}catch{return B&&D.warn(`Cannot retrieve integration ${t.id} from the current Hub`),null}}startTransaction(t,n){const a=this._callExtensionMethod("startTransaction",t,n);return B&&!a&&(this.getClient()?D.warn(`Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':
|
|
48
|
+
`),typeof l=="string"||l instanceof Uint8Array)i(l);else{let u;try{u=JSON.stringify(l)}catch{u=JSON.stringify(Kt(l))}i(u)}}return typeof r=="string"?r:dv(r)}function dv(e){const t=e.reduce((r,i)=>r+i.length,0),n=new Uint8Array(t);let a=0;for(const r of e)n.set(r,a),a+=r.length;return n}function mv(e,t){const n=typeof e.data=="string"?Sc(e.data,t):e.data;return[xt({type:"attachment",length:n.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType}),n]}const pv={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",statsd:"metric_bucket"};function rh(e){return pv[e]}function ih(e){if(!e||!e.sdk)return;const{name:t,version:n}=e.sdk;return{name:t,version:n}}function hv(e,t,n,a){const r=e.sdkProcessingMetadata&&e.sdkProcessingMetadata.dynamicSamplingContext;return{event_id:e.event_id,sent_at:new Date().toISOString(),...t&&{sdk:t},...!!n&&a&&{dsn:ia(a)},...r&&{trace:xt({...r})}}}function fv(e,t,n){const a=[{type:"client_report"},{timestamp:n||Sr(),discarded_events:e}];return la(t?{dsn:t}:{},[a])}const gv=60*1e3;function bv(e,t=Date.now()){const n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;const a=Date.parse(`${e}`);return isNaN(a)?gv:a-t}function yv(e,t){return e[t]||e.all||0}function kv(e,t,n=Date.now()){return yv(e,t)>n}function vv(e,{statusCode:t,headers:n},a=Date.now()){const r={...e},i=n&&n["x-sentry-rate-limits"],o=n&&n["retry-after"];if(i)for(const s of i.trim().split(",")){const[l,u,,,d]=s.split(":",5),p=parseInt(l,10),m=(isNaN(p)?60:p)*1e3;if(!u)r.all=a+m;else for(const f of u.split(";"))f==="metric_bucket"?(!d||d.split(";").includes("custom"))&&(r[f]=a+m):r[f]=a+m}else o?r.all=a+bv(o,a):t===429&&(r.all=a+60*1e3);return r}const B=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,ao="production";function Ec(){return zp("globalEventProcessors",()=>[])}function wv(e){Ec().push(e)}function ro(e,t,n,a=0){return new De((r,i)=>{const o=e[a];if(t===null||typeof o!="function")r(t);else{const s=o({...t},n);B&&o.id&&s===null&&D.log(`Event processor "${o.id}" dropped event`),qi(s)?s.then(l=>ro(e,l,n,a+1).then(r)).then(null,i):ro(e,s,n,a+1).then(r).then(null,i)}})}function oh(e){const t=nh(),n={sid:Be(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>xv(n)};return e&&gn(n,e),n}function gn(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),!e.did&&!t.did&&(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||nh(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=t.sid.length===32?t.sid:Be()),t.init!==void 0&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),typeof t.started=="number"&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(typeof t.duration=="number")e.duration=t.duration;else{const n=e.timestamp-e.started;e.duration=n>=0?n:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),typeof t.errors=="number"&&(e.errors=t.errors),t.status&&(e.status=t.status)}function sh(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),gn(e,n)}function xv(e){return xt({sid:`${e.sid}`,init:e.init,started:new Date(e.started*1e3).toISOString(),timestamp:new Date(e.timestamp*1e3).toISOString(),status:e.status,errors:e.errors,did:typeof e.did=="number"||typeof e.did=="string"?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}})}const Sv=1;function Ev(e){const{spanId:t,traceId:n}=e.spanContext(),{data:a,op:r,parent_span_id:i,status:o,tags:s,origin:l}=Er(e);return xt({data:a,op:r,parent_span_id:i,span_id:t,status:o,tags:s,trace_id:n,origin:l})}function Er(e){return Cv(e)?e.getSpanJSON():typeof e.toJSON=="function"?e.toJSON():{}}function Cv(e){return typeof e.getSpanJSON=="function"}function jv(e){const{traceFlags:t}=e.spanContext();return!!(t&Sv)}function $v(e,t,n,a,r,i){const{normalizeDepth:o=3,normalizeMaxBreadth:s=1e3}=e,l={...t,event_id:t.event_id||n.event_id||Be(),timestamp:t.timestamp||Sr()},u=n.integrations||e.integrations.map(h=>h.name);Pv(l,e),Iv(l,u),t.type===void 0&&Nv(l,e.stackParser);const d=zv(a,n.captureContext);n.mechanism&&vr(l,n.mechanism);const p=r&&r.getEventProcessors?r.getEventProcessors():[],m=Vv().getScopeData();if(i){const h=i.getScopeData();kh(m,h)}if(d){const h=d.getScopeData();kh(m,h)}const f=[...n.attachments||[],...m.attachments];f.length&&(n.attachments=f),yh(l,m);const y=[...p,...Ec(),...m.eventProcessors];return ro(y,l,n).then(h=>(h&&Tv(h),typeof o=="number"&&o>0?Dv(h,o,s):h))}function Pv(e,t){const{environment:n,release:a,dist:r,maxValueLength:i=250}=t;"environment"in e||(e.environment="environment"in t?n:ao),e.release===void 0&&a!==void 0&&(e.release=a),e.dist===void 0&&r!==void 0&&(e.dist=r),e.message&&(e.message=ra(e.message,i));const o=e.exception&&e.exception.values&&e.exception.values[0];o&&o.value&&(o.value=ra(o.value,i));const s=e.request;s&&s.url&&(s.url=ra(s.url,i))}const lh=new WeakMap;function Nv(e,t){const n=U._sentryDebugIds;if(!n)return;let a;const r=lh.get(t);r?a=r:(a=new Map,lh.set(t,a));const i=Object.keys(n).reduce((o,s)=>{let l;const u=a.get(s);u?l=u:(l=t(s),a.set(s,l));for(let d=l.length-1;d>=0;d--){const p=l[d];if(p.filename){o[p.filename]=n[s];break}}return o},{});try{e.exception.values.forEach(o=>{o.stacktrace.frames.forEach(s=>{s.filename&&(s.debug_id=i[s.filename])})})}catch{}}function Tv(e){const t={};try{e.exception.values.forEach(a=>{a.stacktrace.frames.forEach(r=>{r.debug_id&&(r.abs_path?t[r.abs_path]=r.debug_id:r.filename&&(t[r.filename]=r.debug_id),delete r.debug_id)})})}catch{}if(Object.keys(t).length===0)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];const n=e.debug_meta.images;Object.keys(t).forEach(a=>{n.push({type:"sourcemap",code_file:a,debug_id:t[a]})})}function Iv(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function Dv(e,t,n){if(!e)return null;const a={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(r=>({...r,...r.data&&{data:Kt(r.data,t,n)}}))},...e.user&&{user:Kt(e.user,t,n)},...e.contexts&&{contexts:Kt(e.contexts,t,n)},...e.extra&&{extra:Kt(e.extra,t,n)}};return e.contexts&&e.contexts.trace&&a.contexts&&(a.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(a.contexts.trace.data=Kt(e.contexts.trace.data,t,n))),e.spans&&(a.spans=e.spans.map(r=>{const i=Er(r).data;return i&&(r.data=Kt(i,t,n)),r})),a}function zv(e,t){if(!t)return e;const n=e?e.clone():new Et;return n.update(t),n}function Av(e){if(e)return _v(e)?{captureContext:e}:Rv(e)?{captureContext:e}:e}function _v(e){return e instanceof Et||typeof e=="function"}const Mv=["user","level","extra","contexts","tags","fingerprint","requestSession","propagationContext"];function Rv(e){return Object.keys(e).some(t=>Mv.includes(t))}function ch(e,t){return lt().captureException(e,Av(t))}function uh(e,t){return lt().captureEvent(e,t)}function bn(e,t){lt().addBreadcrumb(e,t)}function dh(...e){const t=lt();if(e.length===2){const[n,a]=e;return n?t.withScope(()=>(t.getStackTop().scope=n,a(n))):t.withScope(a)}return t.withScope(e[0])}function xe(){return lt().getClient()}function Cr(){return lt().getScope()}function mh(e){const t=xe(),n=oo(),a=Cr(),{release:r,environment:i=ao}=t&&t.getOptions()||{},{userAgent:o}=U.navigator||{},s=oh({release:r,environment:i,user:a.getUser()||n.getUser(),...o&&{userAgent:o},...e}),l=n.getSession();return l&&l.status==="ok"&&gn(l,{status:"exited"}),ph(),n.setSession(s),a.setSession(s),s}function ph(){const e=oo(),t=Cr(),n=t.getSession()||e.getSession();n&&sh(n),hh(),e.setSession(),t.setSession()}function hh(){const e=oo(),t=Cr(),n=xe(),a=t.getSession()||e.getSession();a&&n&&n.captureSession&&n.captureSession(a)}function fh(e=!1){if(e){ph();return}hh()}function gh(e){return e.transaction}function bh(e,t,n){const a=t.getOptions(),{publicKey:r}=t.getDsn()||{},{segment:i}=n&&n.getUser()||{},o=xt({environment:a.environment||ao,release:a.release,user_segment:i,public_key:r,trace_id:e});return t.emit&&t.emit("createDsc",o),o}function Fv(e){const t=xe();if(!t)return{};const n=bh(Er(e).trace_id||"",t,Cr()),a=gh(e);if(!a)return n;const r=a&&a._frozenDynamicSamplingContext;if(r)return r;const{sampleRate:i,source:o}=a.metadata;i!=null&&(n.sample_rate=`${i}`);const s=Er(a);return o&&o!=="url"&&(n.transaction=s.description),n.sampled=String(jv(a)),t.emit&&t.emit("createDsc",n),n}function yh(e,t){const{fingerprint:n,span:a,breadcrumbs:r,sdkProcessingMetadata:i}=t;Lv(e,t),a&&Ov(e,a),Bv(e,n),Uv(e,r),Yv(e,i)}function kh(e,t){const{extra:n,tags:a,user:r,contexts:i,level:o,sdkProcessingMetadata:s,breadcrumbs:l,fingerprint:u,eventProcessors:d,attachments:p,propagationContext:m,transactionName:f,span:y}=t;jr(e,"extra",n),jr(e,"tags",a),jr(e,"user",r),jr(e,"contexts",i),jr(e,"sdkProcessingMetadata",s),o&&(e.level=o),f&&(e.transactionName=f),y&&(e.span=y),l.length&&(e.breadcrumbs=[...e.breadcrumbs,...l]),u.length&&(e.fingerprint=[...e.fingerprint,...u]),d.length&&(e.eventProcessors=[...e.eventProcessors,...d]),p.length&&(e.attachments=[...e.attachments,...p]),e.propagationContext={...e.propagationContext,...m}}function jr(e,t,n){if(n&&Object.keys(n).length){e[t]={...e[t]};for(const a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[t][a]=n[a])}}function Lv(e,t){const{extra:n,tags:a,user:r,contexts:i,level:o,transactionName:s}=t,l=xt(n);l&&Object.keys(l).length&&(e.extra={...l,...e.extra});const u=xt(a);u&&Object.keys(u).length&&(e.tags={...u,...e.tags});const d=xt(r);d&&Object.keys(d).length&&(e.user={...d,...e.user});const p=xt(i);p&&Object.keys(p).length&&(e.contexts={...p,...e.contexts}),o&&(e.level=o),s&&(e.transaction=s)}function Uv(e,t){const n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function Yv(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function Ov(e,t){e.contexts={trace:Ev(t),...e.contexts};const n=gh(t);if(n){e.sdkProcessingMetadata={dynamicSamplingContext:Fv(t),...e.sdkProcessingMetadata};const a=Er(n).description;a&&(e.tags={transaction:a,...e.tags})}}function Bv(e,t){e.fingerprint=e.fingerprint?Gp(e.fingerprint):[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint&&!e.fingerprint.length&&delete e.fingerprint}const Hv=100;let Cc;class Et{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext=vh()}static clone(t){return t?t.clone():new Et}clone(){const t=new Et;return t._breadcrumbs=[...this._breadcrumbs],t._tags={...this._tags},t._extra={...this._extra},t._contexts={...this._contexts},t._user=this._user,t._level=this._level,t._span=this._span,t._session=this._session,t._transactionName=this._transactionName,t._fingerprint=this._fingerprint,t._eventProcessors=[...this._eventProcessors],t._requestSession=this._requestSession,t._attachments=[...this._attachments],t._sdkProcessingMetadata={...this._sdkProcessingMetadata},t._propagationContext={...this._propagationContext},t._client=this._client,t}setClient(t){this._client=t}getClient(){return this._client}addScopeListener(t){this._scopeListeners.push(t)}addEventProcessor(t){return this._eventProcessors.push(t),this}setUser(t){return this._user=t||{email:void 0,id:void 0,ip_address:void 0,segment:void 0,username:void 0},this._session&&gn(this._session,{user:t}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(t){return this._requestSession=t,this}setTags(t){return this._tags={...this._tags,...t},this._notifyScopeListeners(),this}setTag(t,n){return this._tags={...this._tags,[t]:n},this._notifyScopeListeners(),this}setExtras(t){return this._extra={...this._extra,...t},this._notifyScopeListeners(),this}setExtra(t,n){return this._extra={...this._extra,[t]:n},this._notifyScopeListeners(),this}setFingerprint(t){return this._fingerprint=t,this._notifyScopeListeners(),this}setLevel(t){return this._level=t,this._notifyScopeListeners(),this}setTransactionName(t){return this._transactionName=t,this._notifyScopeListeners(),this}setContext(t,n){return n===null?delete this._contexts[t]:this._contexts[t]=n,this._notifyScopeListeners(),this}setSpan(t){return this._span=t,this._notifyScopeListeners(),this}getSpan(){return this._span}getTransaction(){const t=this._span;return t&&t.transaction}setSession(t){return t?this._session=t:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(t){if(!t)return this;const n=typeof t=="function"?t(this):t;if(n instanceof Et){const a=n.getScopeData();this._tags={...this._tags,...a.tags},this._extra={...this._extra,...a.extra},this._contexts={...this._contexts,...a.contexts},a.user&&Object.keys(a.user).length&&(this._user=a.user),a.level&&(this._level=a.level),a.fingerprint.length&&(this._fingerprint=a.fingerprint),n.getRequestSession()&&(this._requestSession=n.getRequestSession()),a.propagationContext&&(this._propagationContext=a.propagationContext)}else if(aa(n)){const a=t;this._tags={...this._tags,...a.tags},this._extra={...this._extra,...a.extra},this._contexts={...this._contexts,...a.contexts},a.user&&(this._user=a.user),a.level&&(this._level=a.level),a.fingerprint&&(this._fingerprint=a.fingerprint),a.requestSession&&(this._requestSession=a.requestSession),a.propagationContext&&(this._propagationContext=a.propagationContext)}return this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._span=void 0,this._session=void 0,this._notifyScopeListeners(),this._attachments=[],this._propagationContext=vh(),this}addBreadcrumb(t,n){const a=typeof n=="number"?n:Hv;if(a<=0)return this;const r={timestamp:Sr(),...t},i=this._breadcrumbs;return i.push(r),this._breadcrumbs=i.length>a?i.slice(-a):i,this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(t){return this._attachments.push(t),this}getAttachments(){return this.getScopeData().attachments}clearAttachments(){return this._attachments=[],this}getScopeData(){const{_breadcrumbs:t,_attachments:n,_contexts:a,_tags:r,_extra:i,_user:o,_level:s,_fingerprint:l,_eventProcessors:u,_propagationContext:d,_sdkProcessingMetadata:p,_transactionName:m,_span:f}=this;return{breadcrumbs:t,attachments:n,contexts:a,tags:r,extra:i,user:o,level:s,fingerprint:l||[],eventProcessors:u,propagationContext:d,sdkProcessingMetadata:p,transactionName:m,span:f}}applyToEvent(t,n={},a=[]){yh(t,this.getScopeData());const r=[...a,...Ec(),...this._eventProcessors];return ro(r,t,n)}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata={...this._sdkProcessingMetadata,...t},this}setPropagationContext(t){return this._propagationContext=t,this}getPropagationContext(){return this._propagationContext}captureException(t,n){const a=n&&n.event_id?n.event_id:Be();if(!this._client)return D.warn("No client configured on scope - will not capture exception!"),a;const r=new Error("Sentry syntheticException");return this._client.captureException(t,{originalException:t,syntheticException:r,...n,event_id:a},this),a}captureMessage(t,n,a){const r=a&&a.event_id?a.event_id:Be();if(!this._client)return D.warn("No client configured on scope - will not capture message!"),r;const i=new Error(t);return this._client.captureMessage(t,n,{originalException:t,syntheticException:i,...a,event_id:r},this),r}captureEvent(t,n){const a=n&&n.event_id?n.event_id:Be();return this._client?(this._client.captureEvent(t,{...n,event_id:a},this),a):(D.warn("No client configured on scope - will not capture event!"),a)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(t=>{t(this)}),this._notifyingListeners=!1)}}function Vv(){return Cc||(Cc=new Et),Cc}function vh(){return{traceId:Be(),spanId:Be().substring(16)}}const jc="7.118.0",wh=parseFloat(jc),Wv=100;class xh{constructor(t,n,a,r=wh){this._version=r;let i;n?i=n:(i=new Et,i.setClient(t));let o;a?o=a:(o=new Et,o.setClient(t)),this._stack=[{scope:i}],t&&this.bindClient(t),this._isolationScope=o}isOlderThan(t){return this._version<t}bindClient(t){const n=this.getStackTop();n.client=t,n.scope.setClient(t),t&&t.setupIntegrations&&t.setupIntegrations()}pushScope(){const t=this.getScope().clone();return this.getStack().push({client:this.getClient(),scope:t}),t}popScope(){return this.getStack().length<=1?!1:!!this.getStack().pop()}withScope(t){const n=this.pushScope();let a;try{a=t(n)}catch(r){throw this.popScope(),r}return qi(a)?a.then(r=>(this.popScope(),r),r=>{throw this.popScope(),r}):(this.popScope(),a)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStack(){return this._stack}getStackTop(){return this._stack[this._stack.length-1]}captureException(t,n){const a=this._lastEventId=n&&n.event_id?n.event_id:Be(),r=new Error("Sentry syntheticException");return this.getScope().captureException(t,{originalException:t,syntheticException:r,...n,event_id:a}),a}captureMessage(t,n,a){const r=this._lastEventId=a&&a.event_id?a.event_id:Be(),i=new Error(t);return this.getScope().captureMessage(t,n,{originalException:t,syntheticException:i,...a,event_id:r}),r}captureEvent(t,n){const a=n&&n.event_id?n.event_id:Be();return t.type||(this._lastEventId=a),this.getScope().captureEvent(t,{...n,event_id:a}),a}lastEventId(){return this._lastEventId}addBreadcrumb(t,n){const{scope:a,client:r}=this.getStackTop();if(!r)return;const{beforeBreadcrumb:i=null,maxBreadcrumbs:o=Wv}=r.getOptions&&r.getOptions()||{};if(o<=0)return;const l={timestamp:Sr(),...t},u=i?Qi(()=>i(l,n)):l;u!==null&&(r.emit&&r.emit("beforeAddBreadcrumb",u,n),a.addBreadcrumb(u,o))}setUser(t){this.getScope().setUser(t),this.getIsolationScope().setUser(t)}setTags(t){this.getScope().setTags(t),this.getIsolationScope().setTags(t)}setExtras(t){this.getScope().setExtras(t),this.getIsolationScope().setExtras(t)}setTag(t,n){this.getScope().setTag(t,n),this.getIsolationScope().setTag(t,n)}setExtra(t,n){this.getScope().setExtra(t,n),this.getIsolationScope().setExtra(t,n)}setContext(t,n){this.getScope().setContext(t,n),this.getIsolationScope().setContext(t,n)}configureScope(t){const{scope:n,client:a}=this.getStackTop();a&&t(n)}run(t){const n=Sh(this);try{t(this)}finally{Sh(n)}}getIntegration(t){const n=this.getClient();if(!n)return null;try{return n.getIntegration(t)}catch{return B&&D.warn(`Cannot retrieve integration ${t.id} from the current Hub`),null}}startTransaction(t,n){const a=this._callExtensionMethod("startTransaction",t,n);return B&&!a&&(this.getClient()?D.warn(`Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':
|
|
49
49
|
Sentry.addTracingExtensions();
|
|
50
50
|
Sentry.init({...});
|
|
51
51
|
`):D.warn("Tracing extension 'startTransaction' is missing. You should 'init' the SDK before calling 'startTransaction'")),a}traceHeaders(){return this._callExtensionMethod("traceHeaders")}captureSession(t=!1){if(t)return this.endSession();this._sendSessionUpdate()}endSession(){const n=this.getStackTop().scope,a=n.getSession();a&&sh(a),this._sendSessionUpdate(),n.setSession()}startSession(t){const{scope:n,client:a}=this.getStackTop(),{release:r,environment:i=ao}=a&&a.getOptions()||{},{userAgent:o}=U.navigator||{},s=oh({release:r,environment:i,user:n.getUser(),...o&&{userAgent:o},...t}),l=n.getSession&&n.getSession();return l&&l.status==="ok"&&gn(l,{status:"exited"}),this.endSession(),n.setSession(s),s}shouldSendDefaultPii(){const t=this.getClient(),n=t&&t.getOptions();return!!(n&&n.sendDefaultPii)}_sendSessionUpdate(){const{scope:t,client:n}=this.getStackTop(),a=t.getSession();a&&n&&n.captureSession&&n.captureSession(a)}_callExtensionMethod(t,...n){const r=io().__SENTRY__;if(r&&r.extensions&&typeof r.extensions[t]=="function")return r.extensions[t].apply(this,n);B&&D.warn(`Extension method ${t} couldn't be found, doing nothing.`)}}function io(){return U.__SENTRY__=U.__SENTRY__||{extensions:{},hub:void 0},U}function Sh(e){const t=io(),n=$c(t);return Eh(t,e),n}function lt(){const e=io();if(e.__SENTRY__&&e.__SENTRY__.acs){const t=e.__SENTRY__.acs.getCurrentHub();if(t)return t}return qv(e)}function oo(){return lt().getIsolationScope()}function qv(e=io()){return(!Gv(e)||$c(e).isOlderThan(wh))&&Eh(e,new xh),$c(e)}function Gv(e){return!!(e&&e.__SENTRY__&&e.__SENTRY__.hub)}function $c(e){return zp("hub",()=>new xh,e)}function Eh(e,t){if(!e)return!1;const n=e.__SENTRY__=e.__SENTRY__||{};return n.hub=t,!0}function Kv(e,t){return t&&(e.sdk=e.sdk||{},e.sdk.name=e.sdk.name||t.name,e.sdk.version=e.sdk.version||t.version,e.sdk.integrations=[...e.sdk.integrations||[],...t.integrations||[]],e.sdk.packages=[...e.sdk.packages||[],...t.packages||[]]),e}function Jv(e,t,n,a){const r=ih(n),i={sent_at:new Date().toISOString(),...r&&{sdk:r},...!!a&&t&&{dsn:ia(t)}},o="aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()];return la(i,[o])}function Qv(e,t,n,a){const r=ih(n),i=e.type&&e.type!=="replay_event"?e.type:"event";Kv(e,n&&n.sdk);const o=hv(e,r,a,t);return delete e.sdkProcessingMetadata,la(o,[[{type:i},e]])}const Zv="7";function Ch(e){const t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function Xv(e){return`${Ch(e)}${e.projectId}/envelope/`}function ew(e,t){return jk({sentry_key:e.publicKey,sentry_version:Zv,...t&&{sentry_client:`${t.name}/${t.version}`}})}function tw(e,t={}){const n=typeof t=="string"?t:t.tunnel,a=typeof t=="string"||!t._metadata?void 0:t._metadata.sdk;return n||`${Xv(e)}?${ew(e,a)}`}function nw(e,t){const n=Mp(e);if(!n)return"";const a=`${Ch(n)}embed/error-page/`;let r=`dsn=${ia(n)}`;for(const i in t)if(i!=="dsn"&&i!=="onClose")if(i==="user"){const o=t.user;if(!o)continue;o.name&&(r+=`&name=${encodeURIComponent(o.name)}`),o.email&&(r+=`&email=${encodeURIComponent(o.email)}`)}else r+=`&${encodeURIComponent(i)}=${encodeURIComponent(t[i])}`;return`${a}?${r}`}const jh=[];function aw(e){const t={};return e.forEach(n=>{const{name:a}=n,r=t[a];r&&!r.isDefaultInstance&&n.isDefaultInstance||(t[a]=n)}),Object.keys(t).map(n=>t[n])}function rw(e){const t=e.defaultIntegrations||[],n=e.integrations;t.forEach(o=>{o.isDefaultInstance=!0});let a;Array.isArray(n)?a=[...t,...n]:typeof n=="function"?a=Gp(n(t)):a=t;const r=aw(a),i=ow(r,o=>o.name==="Debug");if(i!==-1){const[o]=r.splice(i,1);r.push(o)}return r}function iw(e,t){const n={};return t.forEach(a=>{a&&Ph(e,a,n)}),n}function $h(e,t){for(const n of t)n&&n.afterAllSetup&&n.afterAllSetup(e)}function Ph(e,t,n){if(n[t.name]){B&&D.log(`Integration skipped because it was already installed: ${t.name}`);return}if(n[t.name]=t,jh.indexOf(t.name)===-1&&(t.setupOnce(wv,lt),jh.push(t.name)),t.setup&&typeof t.setup=="function"&&t.setup(e),e.on&&typeof t.preprocessEvent=="function"){const a=t.preprocessEvent.bind(t);e.on("preprocessEvent",(r,i)=>a(r,i,e))}if(e.addEventProcessor&&typeof t.processEvent=="function"){const a=t.processEvent.bind(t),r=Object.assign((i,o)=>a(i,o,e),{id:t.name});e.addEventProcessor(r)}B&&D.log(`Integration installed: ${t.name}`)}function ow(e,t){for(let n=0;n<e.length;n++)if(t(e[n])===!0)return n;return-1}function Jt(e,t){return Object.assign(function(...a){return t(...a)},{id:e})}function O1(e){return e}function sw(e){let t="";for(const n of e){const a=Object.entries(n.tags),r=a.length>0?`|#${a.map(([i,o])=>`${i}:${o}`).join(",")}`:"";t+=`${n.name}@${n.unit}:${n.metric}|${n.metricType}${r}|T${n.timestamp}
|
|
@@ -3368,9 +3368,9 @@ footer.gh-portal-signup-footer.invite-only .gh-portal-signup-message {
|
|
|
3368
3368
|
.gh-portal-hide {
|
|
3369
3369
|
display: none;
|
|
3370
3370
|
}
|
|
3371
|
-
`;function qE({site:e}){return Yc+HE+x0+X0+sE+U0()+w0+b0+v0+vf+yE+gE+xE()+kE+VE+WE+EE+IE+DE+zE+_E+FE+UE}class wg extends L.Component{constructor(t){super(t),this.state={email:""}}componentDidMount(){const{member:t}=this.context;t&&this.context.onAction("switchPage",{page:"accountHome"})}handleSignin(t){t.preventDefault(),this.setState(n=>({errors:Fo({fields:this.getInputFields({state:n})})}),async()=>{const{email:n,errors:a}=this.state,{redirect:r}=this.context.pageData??{};a&&Object.values(a).filter(o=>!!o).length>0||this.context.onAction("signin",{email:n,redirect:r})})}handleInputChange(t,n){const a=n.name;this.setState({[a]:t.target.value})}onKeyDown(t){t.keyCode===13&&this.handleSignin(t)}getInputFields({state:t}){const{t:n}=this.context,a=t.errors||{};return[{type:"email",value:t.email,placeholder:"jamie@example.com",label:n("Email"),name:"email",required:!0,errorMessage:a.email||"",autoFocus:!0}]}renderSubmitButton(){const{action:t,t:n}=this.context;let a=!1;const r=t==="signin:running";let i=n(r?"Sending login link...":"Continue");const o=!!r;return t==="signin:failed"&&(i=n("Retry"),a=!0),c.jsx(ne,{dataTestId:"signin",retry:a,style:{width:"100%"},onClick:s=>this.handleSignin(s),disabled:o,brandColor:this.context.brandColor,label:i,isRunning:r})}renderSignupMessage(){const{brandColor:t,t:n}=this.context;return c.jsxs("div",{className:"gh-portal-signup-message",children:[c.jsx("div",{children:n("Don't have an account?")}),c.jsx("button",{"data-test-button":"signup-switch",className:"gh-portal-btn gh-portal-btn-link",style:{color:t},onClick:()=>this.context.onAction("switchPage",{page:"signup"}),children:c.jsx("span",{children:n("Sign up")})})]})}renderForm(){const{site:t,t:n}=this.context;return kn({site:t})?c.jsxs("section",{children:[c.jsx("div",{className:"gh-portal-section",children:c.jsx(Ro,{fields:this.getInputFields({state:this.state}),onChange:(a,r)=>this.handleInputChange(a,r),onKeyDown:(a,r)=>this.onKeyDown(a,r)})}),c.jsxs("footer",{className:"gh-portal-signin-footer",children:[this.renderSubmitButton(),this.renderSignupMessage()]})]}):c.jsx("section",{children:c.jsx("div",{className:"gh-portal-section",children:c.jsx("p",{className:"gh-portal-members-disabled-notification","data-testid":"members-disabled-notification-text",children:n("Memberships unavailable, contact the owner for access.")})})})}renderSiteIcon(){const{site:t}=this.context,n=t.icon;return n?c.jsx("img",{className:"gh-portal-signup-logo",src:n,alt:this.context.site.title}):kn({site:t})?null:c.jsx(iu,{className:"gh-portal-icon gh-portal-icon-invitation"})}renderSiteTitle(){const{site:t,t:n}=this.context,a=t.title;return kn({site:t})?c.jsx("h1",{className:"gh-portal-main-title",children:n("Sign in")}):c.jsx("h1",{className:"gh-portal-main-title",children:a})}renderFormHeader(){return c.jsxs("header",{className:"gh-portal-signin-header",children:[this.renderSiteIcon(),this.renderSiteTitle()]})}render(){return c.jsxs(c.Fragment,{children:[c.jsx(ae,{}),c.jsx("div",{className:"gh-portal-logged-out-form-container",children:c.jsxs("div",{className:"gh-portal-content signin",children:[this.renderFormHeader(),this.renderForm()]})})]})}}Q(wg,"contextType",T);const GE=({handleSignout:e,supportAddress:t="",t:n})=>{const a=`mailto:${t}`;return c.jsxs("footer",{className:"gh-portal-account-footer",children:[c.jsx("ul",{className:"gh-portal-account-footermenu",children:c.jsx("li",{children:c.jsx("button",{"data-test-button":"footer-signout",className:"gh-portal-btn",name:"logout","aria-label":"logout",onClick:r=>e(r),children:n("Sign out")})})}),c.jsx("div",{className:"gh-portal-account-footerright",children:c.jsx("ul",{className:"gh-portal-account-footermenu",children:c.jsx("li",{children:c.jsx("a",{"data-test-link":"footer-support",className:"gh-portal-btn gh-portal-btn-branded",href:a,onClick:()=>{a&&window.open(a)},children:n("Contact support")})})})})]})},KE=()=>{const{member:e,brandColor:t,t:n}=k.useContext(T),a=e.avatar_image;return c.jsxs("header",{className:"gh-portal-account-header",children:[c.jsx(Uc,{gravatar:a,style:{userIcon:{color:t,width:"56px",height:"56px",padding:"2px"}}}),c.jsx("h2",{className:"gh-portal-main-title",children:n("Your account")})]})},JE=()=>{const{site:e,action:t,brandColor:n,onAction:a,t:r}=k.useContext(T);if(!Vc({site:e}))return null;const i=["checkoutPlan:running"].includes(t),o=()=>{a("switchPage",{page:"accountPlan",lastPage:"accountHome"})};return c.jsx(ne,{dataTestId:"view-plans",isRunning:i,label:r("View plans"),onClick:()=>o(),brandColor:n,style:{width:"100%"}})},QE=()=>{const{member:e,site:t,t:n}=k.useContext(T),{is_stripe_configured:a}=t;if(!a||Nr({site:t}))return null;const r=Ae({member:e}),i=Qt({member:e});if(i&&!r)return null;if(r){const o=r==null?void 0:r.current_period_end;if(i&&Bc({member:e})){const s=Bc({member:e}),l=Ct(s);return c.jsx("div",{className:"gh-portal-section",children:c.jsx("p",{className:"gh-portal-text-center gh-portal-free-ctatext",children:n("Your subscription will expire on {{expiryDate}}",{expiryDate:l})})})}if(r!=null&&r.cancel_at_period_end)return null;if(qc({sub:r})){const s=Ct(r.trial_end_at);return c.jsx("div",{className:"gh-portal-section",children:c.jsx("p",{className:"gh-portal-text-center gh-portal-free-ctatext",children:n("Your subscription will start on {{subscriptionStart}}",{subscriptionStart:s})})})}return c.jsx("div",{className:"gh-portal-section",children:c.jsx("p",{className:"gh-portal-text-center gh-portal-free-ctatext",children:n("Your subscription will renew on {{renewalDate}}",{renewalDate:Ct(o)})})})}return c.jsxs("div",{className:"gh-portal-section",children:[c.jsx("p",{className:"gh-portal-text-center gh-portal-free-ctatext",children:n("You currently have a free membership, upgrade to a paid subscription for full access.")}),c.jsx(JE,{})]})},ZE=()=>{const{member:e,onAction:t,action:n,brandColor:a,t:r}=k.useContext(T),i=Ae({member:e});if(!i||!i.cancel_at_period_end)return null;const o=i.cancel_at_period_end?r("Continue subscription"):r("Cancel subscription"),s=["cancelSubscription:running"].includes(n),l=!!s,u=!!i.cancel_at_period_end,d=()=>{if(!i.cancel_at_period_end)return null;const p=i.current_period_end;return c.jsx("p",{className:"gh-portal-text-center gh-portal-free-ctatext",children:r("Your subscription will expire on {{expiryDate}}",{expiryDate:Ct(p)})})};return c.jsxs("div",{className:"gh-portal-cancelcontinue-container",children:[c.jsx(d,{}),c.jsx(ne,{onClick:()=>{t("continueSubscription",{subscriptionId:i.id})},isRunning:s,disabled:l,isPrimary:u,brandColor:a,label:o,style:{width:"100%"}})]})},XE=e=>k.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},k.createElement("defs",null,k.createElement("style",null,".a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;}")),k.createElement("path",{d:"M22.939 2.56V8.817C22.9391 9.61244 22.6232 10.3754 22.061 10.938L10.5 22.5C10.2187 22.7812 9.83721 22.9392 9.43946 22.9392C9.04172 22.9392 8.66026 22.7812 8.37896 22.5L1.49997 15.62C1.21876 15.3387 1.06079 14.9572 1.06079 14.5595C1.06079 14.1618 1.21876 13.7803 1.49997 13.499L13.061 1.938C13.6236 1.37572 14.3865 1.0599 15.182 1.06H21.439C21.8368 1.06 22.2183 1.21803 22.4996 1.49934C22.7809 1.78064 22.939 2.16217 22.939 2.56V2.56Z",className:"a"}),k.createElement("path",{d:"M17.689 7.81C16.8605 7.81 16.189 7.13842 16.189 6.31C16.189 5.48157 16.8605 4.81 17.689 4.81C18.5174 4.81 19.189 5.48157 19.189 6.31C19.189 7.13842 18.5174 7.81 17.689 7.81Z",className:"a"})),eC=()=>{const{member:e,site:t,onAction:n,t:a}=k.useContext(T),r=()=>{const y=Ae({member:e});n("editBilling",{subscriptionId:y.id})},i=()=>{const{is_stripe_configured:y}=t;y&&n("switchPage",{page:"accountPlan",lastPage:"accountHome"})},o=({price:y,isComplimentary:v,subscription:h})=>{const{offer:g,start_date:b}=h||{};let x="";if(y){const{amount:P=0,currency:M,interval:me}=y;x=`${Intl.NumberFormat("en",{currency:M,style:"currency"}).format(P/100)}/${me}`}let w=nC({price:y,offer:g,subscriptionStartDate:b,t:a});const C=Bc({member:e});v&&(C?x=`${a("Complimentary")} - ${a("Expires {{expiryDate}}",{expiryDate:C})}`:x=x?`${a("Complimentary")} (${x})`:a("Complimentary"));let S="";w&&(S="gh-portal-account-old-price");const E=()=>w?c.jsxs("p",{className:"gh-portal-account-discountcontainer",children:[c.jsx(XE,{className:"gh-portal-account-tagicon"}),c.jsx("span",{children:w})]}):null,j=qc({sub:h});return j&&(S="gh-portal-account-old-price"),j?c.jsxs(c.Fragment,{children:[c.jsx("p",{className:S,children:x}),c.jsx(tC,{subscription:h,t:a})]}):c.jsxs(c.Fragment,{children:[c.jsx("p",{className:S,children:x}),c.jsx(E,{})]})},s=({isComplimentary:y,isPaid:v})=>(Pr({member:e})?!1:y)||Nr({site:t})&&!v?null:c.jsx("button",{className:"gh-portal-btn gh-portal-btn-list",onClick:g=>i(),"data-test-button":"change-plan",children:a("Change")}),l=({defaultCardLast4:y})=>{if(y){const v=`**** **** **** ${y}`;return c.jsx("p",{children:v})}return null},u=({defaultCardLast4:y,isComplimentary:v})=>{const{action:h}=k.useContext(T),g=h==="editBilling:running"?c.jsx(ha,{className:"gh-portal-billing-button-loader"}):a("Update");return v?null:c.jsxs("section",{children:[c.jsxs("div",{className:"gh-portal-list-detail",children:[c.jsx("h3",{children:a("Billing info")}),c.jsx(l,{defaultCardLast4:y})]}),c.jsx("button",{className:"gh-portal-btn gh-portal-btn-list",onClick:b=>r(),"data-test-button":"update-billing",children:g})]})},d=Ae({member:e}),p=Qt({member:e}),m=ct({member:e}),f=d==null?void 0:d.cancel_at_period_end;if(d||p){const{price:y,default_payment_card_last4:v}=d||{};let h=a("Plan");return xo({site:t})&&xf({member:e})&&(h=xf({member:e})),c.jsxs(c.Fragment,{children:[c.jsxs("section",{children:[c.jsxs("div",{className:"gh-portal-list-detail",children:[c.jsx("h3",{children:h}),c.jsx(o,{price:y,isComplimentary:p,subscription:d})]}),c.jsx(s,{isComplimentary:p,isPaid:m,isCancelled:f})]}),c.jsx(u,{isComplimentary:p,defaultCardLast4:v})]})}return null};function tC({subscription:e,t}){if(qc({sub:e})){const n=Ct(e.trial_end_at);return c.jsx("p",{className:"gh-portal-account-discountcontainer",children:c.jsx("div",{children:c.jsx("span",{children:t("Free Trial – Ends {{trialEnd}}",{trialEnd:n})})})})}return null}function nC({offer:e,price:t,subscriptionStartDate:n,t:a}){let r="";if((e==null?void 0:e.type)==="trial"||(e==null?void 0:e.duration)==="once")return"";if(e){const i=e.duration;let o="";if(i==="forever")o=a("Forever");else if(i==="repeating"){const s=e.duration_in_months||0;let l=new Date(n),u=new Date(l.setMonth(l.getMonth()+s));if(Tf(u))return"";o=a("Ends {{offerEndDate}}",{offerEndDate:Ct(u)})}r=`${n0({offer:e,price:t,useFormatted:!0})}/${t.interval}${o?` — ${o}`:""}`}return r}function aC(){const{member:e,site:t,onAction:n,t:a}=k.useContext(T);let{newsletters:r}=e;const i=!!(r!=null&&r.length);let o=a(i?"Subscribed":"Unsubscribed");const s=l=>{var p;l.preventDefault();const u=ma({site:t}),d=(p=e==null?void 0:e.newsletters)!=null&&p.length?[]:u;n("updateNewsletterPreference",{newsletters:d})};return c.jsxs("section",{children:[c.jsxs("div",{className:"gh-portal-list-detail email-newsletter",children:[c.jsx("h3",{children:a("Email newsletter")}),c.jsxs("p",{children:[o," ",Gc({member:e})&&i&&c.jsx("button",{className:"gh-portal-btn-text gh-email-faq-page-button",onClick:()=>n("switchPage",{page:"emailReceivingFAQ",lastPage:"accountHome"}),children:a("Not receiving emails?")})]})]}),c.jsx("div",{children:c.jsx(Do,{dataTestId:"default-newsletter-toggle",id:"default-newsletter-toggle",onToggle:l=>{s(l)},checked:i})})]})}const xg=e=>k.createElement("svg",{fill:"none",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",...e},k.createElement("path",{d:"m12.79 12.376 4.08 4.079m-4.08 0 4.08-4.08",stroke:"red",strokeWidth:1.35,strokeLinecap:"round",strokeLinejoin:"round"}),k.createElement("path",{d:"m10.439 17.994-2.664-2.652-2.86 1.478.111-4.239m0 0L1.677 9.232a1.344 1.344 0 0 1-.366-1.222 1.369 1.369 0 0 1 .904-1.05l13.111-4.374a1.369 1.369 0 0 1 1.76 1.758L15 10m-9.974 2.581 11.67-9.727",stroke:"#A3A3A3",strokeWidth:1.35,strokeLinecap:"round",strokeLinejoin:"round"}));function rC(){const{onAction:e,member:t,t:n}=k.useContext(T),a=Nf({member:t}),r=a?"emailSuppressed":"accountEmail";return c.jsxs("section",{children:[c.jsxs("div",{className:"gh-portal-list-detail",children:[c.jsx("h3",{children:n("Emails")}),a?c.jsxs("p",{className:"gh-portal-email-notice",children:[c.jsx(xg,{className:"gh-portal-email-notice-icon"}),c.jsx("span",{className:"gh-mobile-only",children:n("You're not receiving emails")}),c.jsx("span",{className:"gh-desktop-only",children:n("You're currently not receiving emails")})]}):c.jsx("p",{children:n("Update your preferences")})]}),c.jsx("button",{className:"gh-portal-btn gh-portal-btn-list",onClick:()=>{e("switchPage",{page:r,lastPage:"accountHome"})},"data-test-button":"manage-newsletters",children:n("Manage")})]})}const iC=()=>{const{member:e,onAction:t,site:n,t:a}=k.useContext(T),{name:r,email:i}=e,o=()=>{t("switchPage",{page:"accountProfile",lastPage:"accountHome"})},s=Po({site:n})||Cf({site:n})||Nf({member:e});return c.jsx("div",{children:c.jsxs("div",{className:"gh-portal-list",children:[c.jsxs("section",{children:[c.jsxs("div",{className:"gh-portal-list-detail",children:[c.jsx("h3",{children:r||"Account"}),c.jsx("p",{children:i})]}),c.jsx("button",{"data-test-button":"edit-profile",className:"gh-portal-btn gh-portal-btn-list",onClick:l=>o(),children:a("Edit")})]}),c.jsx(eC,{}),s?c.jsx(rC,{}):c.jsx(aC,{})]})})},oC=()=>c.jsxs("div",{className:"gh-portal-content gh-portal-account-main",children:[c.jsx(ae,{}),c.jsx(KE,{}),c.jsxs("section",{className:"gh-portal-account-data",children:[c.jsx(QE,{}),c.jsx(ZE,{}),c.jsx(iC,{})]})]});class Sg extends L.Component{componentDidMount(){const{member:t,site:n}=this.context;kn({site:n})||this.context.onAction("signout"),t||this.context.onAction("switchPage",{page:"signin",pageData:{redirect:window.location.href}})}handleSignout(t){t.preventDefault(),this.context.onAction("signout")}render(){const{member:t,site:n,t:a}=this.context,r=Tr({site:n});return!t||!kn({site:n})?null:c.jsxs("div",{className:"gh-portal-account-wrapper",children:[c.jsx(oC,{}),c.jsx(GE,{onClose:()=>this.context.onAction("closePopup"),handleSignout:i=>this.handleSignout(i),supportAddress:r,t:a})]})}}Q(Sg,"contextType",T);class Eg extends L.Component{constructor(t,n){super(t,n);const{name:a="",email:r=""}=n.member||{};this.state={name:a,email:r}}componentDidMount(){const{member:t}=this.context;t||this.context.onAction("switchPage",{page:"signin"})}handleSignout(t){t.preventDefault(),this.context.onAction("signout")}onBack(){this.context.onAction("back")}onProfileSave(t){t.preventDefault(),this.setState(n=>({errors:Fo({fields:this.getInputFields({state:n})})}),()=>{const{email:n,name:a,errors:r}=this.state;r&&Object.values(r).filter(o=>!!o).length>0||(this.context.onAction("clearPopupNotification"),this.context.onAction("updateProfile",{email:n,name:a}))})}renderSaveButton(){const{t}=this.context,n=this.context.action==="updateProfile:running";let a=t("Save");this.context.action==="updateProfile:failed"&&(a=t("Retry"));const r=!!n;return c.jsx(ne,{dataTestId:"save-button",isRunning:n,onClick:i=>this.onProfileSave(i),disabled:r,brandColor:this.context.brandColor,label:a,style:{width:"100%"}})}renderDeleteAccountButton(){const{t}=this.context;return c.jsx("div",{style:{cursor:"pointer",color:"red"},role:"button",children:t("Delete account")})}renderAccountFooter(){return c.jsx("footer",{className:"gh-portal-action-footer",children:this.renderSaveButton()})}renderHeader(){const{t}=this.context;return c.jsxs("header",{className:"gh-portal-detail-header",children:[c.jsx(fa,{brandColor:this.context.brandColor,hidden:!this.context.lastPage,onClick:n=>this.onBack(n)}),c.jsx("h3",{className:"gh-portal-main-title",children:t("Account settings")})]})}renderUserAvatar(){const t=this.context.member&&this.context.member.avatar_image,n={position:"relative",display:"flex",width:"64px",height:"64px",marginBottom:"6px",borderRadius:"100%",boxShadow:"0 0 0 3px #fff",border:"1px solid gray",overflow:"hidden",justifyContent:"center",alignItems:"center"};return c.jsx("div",{style:n,children:c.jsx(Uc,{gravatar:t,style:{userIcon:{color:"black",width:"56px",height:"56px"}}})})}handleInputChange(t,n){const a=n.name;this.setState({[a]:t.target.value})}getInputFields({state:t,fieldNames:n}){const{t:a}=this.context,r=t.errors||{},i=[{type:"text",value:t.name,placeholder:"Jamie Larson",label:a("Name"),name:"name",required:!0,errorMessage:r.name||""},{type:"email",value:t.email,placeholder:"jamie@example.com",label:a("Email"),name:"email",required:!0,errorMessage:r.email||""}];return n&&n.length>0?i.filter(o=>n.includes(o.name)):i}onKeyDown(t){t.keyCode===13&&this.onProfileSave(t)}renderProfileData(){return c.jsx("div",{className:"gh-portal-section",children:c.jsx(Ro,{fields:this.getInputFields({state:this.state}),onChange:(t,n)=>this.handleInputChange(t,n),onKeyDown:(t,n)=>this.onKeyDown(t,n)})})}render(){const{member:t}=this.context;return t?c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"gh-portal-content with-footer",children:[c.jsx(ae,{}),this.renderHeader(),c.jsx("div",{className:"gh-portal-section",children:this.renderProfileData()})]}),this.renderAccountFooter()]}):null}}Q(Eg,"contextType",T);function sC(){const{brandColor:e,lastPage:t,onAction:n,t:a}=k.useContext(T);return c.jsxs("header",{className:"gh-portal-detail-header",children:[c.jsx(fa,{brandColor:e,hidden:!t,onClick:()=>{n("back")}}),c.jsx("h3",{className:"gh-portal-main-title",children:a("Email preferences")})]})}function Cg({show:e,checked:t}){let n=[];return e&&n.push("gh-portal-checkmark-show"),t&&n.push("gh-portal-toggle-checked"),n.push("gh-portal-checkmark-container"),c.jsx("div",{className:n.join(" "),"data-testid":"checkmark-container",children:c.jsx(yg,{className:"gh-portal-checkmark-icon",alt:""})})}function lC({newsletter:e,subscribedNewsletters:t,setSubscribedNewsletters:n}){const a=t.some(l=>l.id===(e==null?void 0:e.id)),[r,i]=k.useState(!1),[o,s]=k.useState(null);return c.jsxs("section",{className:"gh-portal-list-toggle-wrapper","data-test-toggle-wrapper":!0,children:[c.jsxs("div",{className:"gh-portal-list-detail",children:[c.jsx("h3",{children:e.name}),c.jsx("p",{children:e==null?void 0:e.description})]}),c.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[c.jsx(Cg,{show:r,checked:a}),c.jsx(Do,{id:e.id,onToggle:(l,u)=>{let d=[];if(u){d=t.filter(m=>m.id!==e.id).concat(e),i(!0),clearTimeout(o);let p=setTimeout(()=>{i(!1)},2e3);s(p)}else{d=t.filter(m=>m.id!==e.id),i(!0),clearTimeout(o);let p=setTimeout(()=>{i(!1)},2e3);s(p)}n(d)},checked:a})]})]})}function cC({updateCommentNotifications:e,isCommentsEnabled:t,enableCommentNotifications:n}){const{t:a}=k.useContext(T),r=!!n,[i,o]=k.useState(!1),[s,l]=k.useState(null);return t?c.jsxs("section",{className:"gh-portal-list-toggle-wrapper","data-test-toggle-wrapper":!0,children:[c.jsxs("div",{className:"gh-portal-list-detail",children:[c.jsx("h3",{children:a("Comments")}),c.jsx("p",{children:a("Get notified when someone replies to your comment")})]}),c.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[c.jsx(Cg,{show:i,checked:r}),c.jsx(Do,{id:"comments",onToggle:(u,d)=>{o(!0),clearTimeout(s);let p=setTimeout(()=>{o(!1)},2e3);l(p),e(d)},checked:r})]})]}):null}function uC({subscribedNewsletters:e,setSubscribedNewsletters:t}){const{site:n}=k.useContext(T);return ma({site:n}).map(r=>c.jsx(lC,{newsletter:r,subscribedNewsletters:e,setSubscribedNewsletters:t},r==null?void 0:r.id))}function dC({site:e,isPaid:t}){const{t:n}=k.useContext(T);return t?c.jsx("p",{style:{textAlign:"center",marginTop:"12px",marginBottom:"0",color:"var(--grey6)"},children:n("Unsubscribing from emails will not cancel your paid subscription to {{title}}",{title:e==null?void 0:e.title})}):null}function jg({notification:e,subscribedNewsletters:t,updateSubscribedNewsletters:n,updateCommentNotifications:a,unsubscribeAll:r,isPaidMember:i,isCommentsEnabled:o,enableCommentNotifications:s}){const{brandColor:l,onAction:u,member:d,site:p,t:m}=k.useContext(T),f=!(t!=null&&t.length)&&(o&&!s||!o),v=e||(()=>null);return c.jsxs("div",{className:"gh-portal-content with-footer",children:[c.jsx(ae,{}),c.jsx(sC,{}),c.jsx(v,{}),c.jsx("div",{className:"gh-portal-section flex",children:c.jsxs("div",{className:"gh-portal-list",children:[c.jsx(uC,{subscribedNewsletters:t,setSubscribedNewsletters:h=>{let g=h.map(b=>({id:b.id}));n(g)}}),c.jsx(cC,{isCommentsEnabled:o,enableCommentNotifications:s,updateCommentNotifications:a})]})}),c.jsxs("footer",{className:"gh-portal-action-footer"+(Gc({member:d})?" gh-feature-suppressions":""),children:[c.jsxs("div",{style:{width:"100%"},children:[c.jsx(ne,{isRunning:!1,onClick:()=>{r()},disabled:f,brandColor:l,isPrimary:!1,label:m("Unsubscribe from all emails"),isDestructive:!0,style:{width:"100%"},dataTestId:"unsubscribe-from-all-emails"}),c.jsx(dC,{isPaid:i,site:p})]}),Gc({member:d})&&!f&&c.jsxs("div",{className:"gh-portal-footer-secondary",children:[c.jsx("span",{className:"gh-portal-footer-secondary-light",children:m("Not receiving emails?")}),c.jsxs("button",{className:"gh-portal-btn-text gh-email-faq-page-button",onClick:()=>u("switchPage",{page:"emailReceivingFAQ"}),children:[m("Get help")," →"]})]})]})]})}function mC(){const{member:e,onAction:t,site:n,t:a}=k.useContext(T);k.useEffect(()=>{e||t("switchPage",{page:"signin"})},[e,t]);const r=[...(e==null?void 0:e.newsletters)||[]],[i,o]=k.useState(r),{comments_enabled:s}=n,{enable_comment_notifications:l}=e||{};return k.useEffect(()=>{o((e==null?void 0:e.newsletters)||[])},[e==null?void 0:e.newsletters]),c.jsx(jg,{notification:null,subscribedNewsletters:i,updateSubscribedNewsletters:u=>{o(u),t("updateNewsletterPreference",{newsletters:u})},updateCommentNotifications:async u=>{t("updateNewsletterPreference",{enableCommentNotifications:u})},unsubscribeAll:()=>{o([]),t("showPopupNotification",{action:"updated:success",message:a("Unsubscribed from all emails.")});const u={newsletters:[]};s&&(u.enableCommentNotifications=!1),t("updateNewsletterPreference",u)},isPaidMember:ct({member:e}),isCommentsEnabled:s!=="off",enableCommentNotifications:l})}function pC(){const{site:e}=k.useContext(T),t=e.icon;return t?c.jsx("img",{className:"gh-portal-unsubscribe-logo",src:t,alt:e.title}):null}function hC(){const{site:e}=k.useContext(T),t=e.title||"";return c.jsxs("header",{className:"gh-portal-header",children:[c.jsx(pC,{}),c.jsx("h2",{className:"gh-portal-publication-title",children:t})]})}async function $g({api:e,memberUuid:t,newsletters:n,enableCommentNotifications:a}){try{return await e.member.updateNewsletters({uuid:t,newsletters:n,enableCommentNotifications:a})}catch{}}function fC(){const{site:e,api:t,pageData:n,member:a,onAction:r,t:i}=k.useContext(T),[o,s]=k.useState(),[l,u]=k.useState(!0),d=ma({site:e}),p=d.filter(j=>j.subscribe_on_signup),[m,f]=k.useState(!1),[y,v]=k.useState(p),[h,g]=k.useState(!1),{comments_enabled:b}=e,{enable_comment_notifications:x=!1}=o||{},w=async j=>{a?r("updateNewsletterPreference",{newsletters:j}):await $g({api:t,memberUuid:n.uuid,newsletters:j}),v(j)},C=async j=>{let P;a?(await r("updateNewsletterPreference",{enableCommentNotifications:j}),P={...a,enable_comment_notifications:j}):P=await $g({api:t,memberUuid:n.uuid,enableCommentNotifications:j}),s(P)},S=async()=>{let j;a?(await r("updateNewsletterPreference",{newsletters:[],enableCommentNotifications:!1}),j={...a},j.newsletters=[],j.enable_comment_notifications=!1):j=await t.member.updateNewsletters({uuid:n.uuid,newsletters:[],enableCommentNotifications:!1}),v([]),s(j),r("showPopupNotification",{action:"updated:success",message:i("Unsubscribed from all emails.")})};if(k.useEffect(()=>{(async()=>{let j;try{j=await t.member.newsletters({uuid:n.uuid}),s(j??null),u(!1)}catch(M){console.error("[PORTAL] Error fetching member newsletters",M),s(null),u(!1);return}if(j===null)return;const P=(j==null?void 0:j.newsletters)||[];v(P),(d==null?void 0:d.length)===1&&!b&&!n.newsletterUuid?await w([]):n.newsletterUuid?await w(P==null?void 0:P.filter(M=>M.uuid!==n.newsletterUuid)):n.comments&&b&&await C(!1)})()},[b,n.uuid,n.newsletterUuid,n.comments,e.url,d==null?void 0:d.length]),l)return c.jsx(_r,{});if(!o)return c.jsxs("div",{className:"gh-portal-content gh-portal-feedback with-footer",children:[c.jsx(ae,{}),c.jsx("div",{className:"gh-feedback-icon gh-feedback-icon-error",children:c.jsx(Zc,{})}),c.jsx("h1",{className:"gh-portal-main-title",children:i("That didn't go to plan")}),c.jsx("div",{children:c.jsx("p",{className:"gh-portal-text-center",children:i("We couldn't unsubscribe you as the email address was not found. Please contact the site owner.")})}),c.jsx(ne,{style:{width:"100%"},retry:!1,onClick:()=>r("closePopup"),disabled:!1,brandColor:"#000000",label:i("Close"),isRunning:!1,tabindex:"3",classes:"sticky bottom"})]});if((d==null?void 0:d.length)===1&&!b&&!h)return c.jsxs("div",{className:"gh-portal-content gh-portal-unsubscribe with-footer",children:[c.jsx(ae,{}),c.jsx(hC,{}),c.jsx("h1",{className:"gh-portal-main-title",children:i("Successfully unsubscribed")}),c.jsxs("div",{children:[c.jsx("p",{className:"gh-portal-text-center",children:c.jsx(_e,{syntax:Ve,string:i("{{memberEmail}} will no longer receive this newsletter."),mapping:{memberEmail:c.jsx("strong",{children:o==null?void 0:o.email})}})}),c.jsx("p",{className:"gh-portal-text-center",children:c.jsx(_e,{syntax:Ve,string:i("Didn't mean to do this? Manage your preferences <button>here</button>."),mapping:{button:c.jsx("button",{className:"gh-portal-btn-link gh-portal-btn-branded gh-portal-btn-inline",onClick:()=>{g(!0)}})}})})]})]});const E=()=>{if(n.comments&&b){const M=m?"gh-portal-hide":"";return c.jsx(c.Fragment,{children:c.jsx("p",{className:`gh-portal-text-center gh-portal-header-message ${M}`,children:c.jsx(_e,{syntax:Ve,string:i("{{memberEmail}} will no longer receive emails when someone replies to your comments."),mapping:{memberEmail:c.jsx("strong",{children:o==null?void 0:o.email})}})})})}const j=d==null?void 0:d.find(M=>M.uuid===n.newsletterUuid);if(!j)return null;const P=m?"gh-portal-hide":"";return c.jsx(c.Fragment,{children:c.jsx("p",{className:`gh-portal-text-center gh-portal-header-message ${P}`,children:c.jsx(_e,{syntax:Ve,string:i("{{memberEmail}} will no longer receive {{newsletterName}} newsletter."),mapping:{memberEmail:c.jsx("strong",{children:o==null?void 0:o.email}),newsletterName:c.jsx("strong",{children:j==null?void 0:j.name})}})})})};return c.jsx(jg,{notification:E,subscribedNewsletters:y,updateSubscribedNewsletters:async j=>{await w(j),f(!0)},updateCommentNotifications:C,unsubscribeAll:async()=>{await S(),f(!0)},isPaidMember:(o==null?void 0:o.status)!=="free",isCommentsEnabled:b!=="off",enableCommentNotifications:x})}function gC(){const{brandColor:e,lastPage:t,onAction:n,action:a,site:r,t:i}=k.useContext(T);k.useEffect(()=>{["removeEmailFromSuppressionList:success"].includes(a)&&n("refreshMemberData"),["removeEmailFromSuppressionList:failed","refreshMemberData:failed"].includes(a)&&n("back"),["refreshMemberData:success"].includes(a)&&(Po({site:r})||Cf({site:r})?(n("switchPage",{page:"accountEmail",lastPage:"accountHome"}),n("showPopupNotification",{message:i("You have been successfully resubscribed")})):n("back"))},[a,n,r,i]);const o=["removeEmailFromSuppressionList:running","refreshMemberData:running"].includes(a),s=()=>{n("removeEmailFromSuppressionList")};return c.jsxs("div",{className:"gh-email-suppressed-page",children:[c.jsxs("header",{className:"gh-portal-detail-header",children:[c.jsx(fa,{brandColor:e,hidden:!t,onClick:()=>{n("back")}}),c.jsx(ae,{})]}),c.jsx(xg,{className:"gh-email-suppressed-page-icon"}),c.jsxs("div",{className:"gh-email-suppressed-page-text",children:[c.jsx("h3",{className:"gh-portal-main-title gh-email-suppressed-page-title",children:i("Emails disabled")}),c.jsx("p",{children:i("You're not receiving emails because you either marked a recent message as spam, or because messages could not be delivered to your provided email address.")})]}),c.jsx(ne,{dataTestId:"resubscribe-email",classes:"gh-portal-confirm-button",onClick:s,disabled:o,brandColor:e,label:i("Re-enable emails"),isRunning:o})]})}function bC(){const{brandColor:e,onAction:t,site:n,t:a}=k.useContext(T),r=`mailto:${Tr({site:n})}`;return c.jsxs("div",{className:"gh-email-suppression-faq",children:[c.jsxs("header",{className:"gh-portal-detail-header",children:[c.jsx(fa,{brandColor:e,onClick:()=>{t("switchPage",{page:"emailSuppressed",lastPage:"accountHome"})}}),c.jsx(ae,{})]}),c.jsxs("div",{className:"gh-longform",children:[c.jsx("h3",{children:a("Why has my email been disabled?")}),c.jsx("p",{children:a("Newsletters can be disabled on your account for two reasons: A previous email was marked as spam, or attempting to send an email resulted in a permanent failure (bounce).")}),c.jsx("h4",{children:a("Spam complaints")}),c.jsx("p",{children:a("If a newsletter is flagged as spam, emails are automatically disabled for that address to make sure you no longer receive any unwanted messages.")}),c.jsx("p",{children:a("If the spam complaint was accidental, or you would like to begin receiving emails again, you can resubscribe to emails by clicking the button on the previous screen.")}),c.jsx("p",{children:a("Once resubscribed, if you still don't see emails in your inbox, check your spam folder. Some inbox providers keep a record of previous spam complaints and will continue to flag emails. If this happens, mark the latest newsletter as 'Not spam' to move it back to your primary inbox.")}),c.jsx("h4",{children:a("Permanent failure (bounce)")}),c.jsx("p",{children:a("When an inbox fails to accept an email it is commonly called a bounce. In many cases, this can be temporary. However, in some cases, a bounced email can be returned as a permanent failure when an email address is invalid or non-existent.")}),c.jsx("p",{children:a("In the event a permanent failure is received when attempting to send a newsletter, emails will be disabled on the account.")}),c.jsx("p",{children:a("If you would like to start receiving emails again, the best next steps are to check your email address on file for any issues and then click resubscribe on the previous screen.")}),c.jsx("p",{children:c.jsx("a",{className:"gh-portal-btn gh-portal-btn-branded",href:r,onClick:()=>{r&&window.open(r)},children:a("Need more help? Contact support")})})]})]})}function yC(){const{brandColor:e,onAction:t,site:n,lastPage:a,member:r,t:i}=k.useContext(T),o=Tr({site:n}),s=`mailto:${o}`,l=e0({site:n});return c.jsxs("div",{className:"gh-email-receiving-faq",children:[c.jsxs("header",{className:"gh-portal-detail-header",children:[c.jsx(fa,{brandColor:e,onClick:()=>{a?t("switchPage",{page:"accountHome"}):t("switchPage",{page:"accountEmail",lastPage:"accountHome"})}}),c.jsx(ae,{})]}),c.jsxs("div",{className:"gh-longform",children:[c.jsx("h3",{children:i("Help! I'm not receiving emails")}),c.jsx("p",{children:i("If you're not receiving the email newsletter you've subscribed to, here are a few things to check.")}),c.jsx("h4",{children:i("Verify your email address is correct")}),c.jsx("p",{children:c.jsx(_e,{syntax:Ve,string:i("The email address we have for you is {{memberEmail}} — if that's not correct, you can update it in your <button>account settings area</button>."),mapping:{memberEmail:c.jsx("strong",{children:r.email}),button:c.jsx("button",{className:"gh-portal-btn-text",onClick:()=>t("switchPage",{lastPage:"emailReceivingFAQ",page:"accountProfile"})})}})}),c.jsx("h4",{children:i("Check spam & promotions folders")}),c.jsx("p",{children:i(`Make sure emails aren't accidentally ending up in the Spam or Promotions folders of your inbox. If they are, click on "Mark as not spam" and/or "Move to inbox".`)}),c.jsx("h4",{children:i("Create a new contact")}),c.jsx("p",{children:c.jsx(_e,{syntax:Ve,string:i("In your email client add {{senderEmail}} to your contacts list. This signals to your mail provider that emails sent from this address should be trusted."),mapping:{senderEmail:c.jsx("strong",{children:l})}})}),c.jsx("h4",{children:i("Send an email and say hi!")}),c.jsx("p",{children:c.jsx(_e,{syntax:Ve,string:i("Send an email to {{senderEmail}} and say hello. This can also help signal to your mail provider that emails to and from this address should be trusted."),mapping:{senderEmail:c.jsx("strong",{children:l})}})}),c.jsx("h4",{children:i("Check with your mail provider")}),c.jsx("p",{children:c.jsx(_e,{syntax:Ve,string:i("If you have a corporate or government email account, reach out to your IT department and ask them to allow emails to be received from {{senderEmail}}"),mapping:{senderEmail:c.jsx("strong",{children:l})}})}),c.jsx("h4",{children:i("Get in touch for help")}),c.jsx("p",{children:c.jsx(_e,{syntax:Ve,string:i("If you've completed all these checks and you're still not receiving emails, you can reach out to get support by contacting {{supportAddress}}."),mapping:{supportAddress:c.jsx("a",{href:s,onClick:()=>{s&&window.open(s)},children:o})}})})]})]})}const su={signin:wg,signup:mg,accountHome:Sg,accountPlan:cg,accountProfile:Eg,accountEmail:mC,signupNewsletter:ru,unsubscribe:fC,magiclink:pg,loading:_r,offer:fg,feedback:TE,emailSuppressed:gC,emailSuppressionFAQ:bC,emailReceivingFAQ:yC,support:()=>{const[e,t]=k.useState(!0),[n,a]=k.useState(null),[r,i]=k.useState(null);return k.useEffect(()=>{async function o(){const s=window.location.origin,l=s+window.location.pathname,u=`${l}#/portal/support/success`,d=l,p=Lo({siteUrl:s});try{const m=await p.member.checkoutDonation({successUrl:u,cancelUrl:d});m.url&&window.location.replace(m.url)}catch(m){m.type&&m.type==="DisabledFeatureError"?i("This site is not accepting payments at the moment."):a("Something went wrong, please try again later."),t(!1)}}o()},[]),e?c.jsx("div",{children:c.jsx(_r,{})}):n?c.jsx(ou,{error:n}):r?c.jsx(ou,{error:r}):null},supportSuccess:ME,supportError:ou,recommendations:BE},lu=function({page:e}){return Object.keys(su).includes(e)?e:"signup"},kC=function({page:e}){return e.includes("account")},vC=function({page:e}){return e.includes("offer")},wC=e=>k.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},k.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12ZM11.8326 2.33879C6.37785 2.95189 3.95901 5.20797 3.41126 9.74699C3.34896 10.2632 3.22642 10.7805 3.10443 11.2954C2.93277 12.02 2.76221 12.74 2.76221 13.4458C2.76221 17.9885 6.5856 21.556 11.1283 21.556C12.8959 21.556 14.4433 20.8144 15.8756 20.048C19.0536 18.3478 22.0328 16.2597 22.0328 12.5411C22.0328 9.91512 20.1051 7.56932 18.466 5.5747C18.3834 5.47416 18.3015 5.37451 18.2206 5.27577C17.3866 4.25742 14.4333 2.04643 11.8326 2.33879Z",fill:"#15171A"}));class cu extends L.Component{render(){return c.jsxs("a",{href:"https://ghost.org",target:"_blank",rel:"noopener noreferrer",onClick:()=>{window.open("https://ghost.org","_blank")},children:[c.jsx(wC,{}),"Powered by Ghost"]})}}Q(cu,"contextType",T);const Pg=()=>({modalContainer:{zIndex:"3999999",position:"fixed",left:"0",top:"0",width:"100%",height:"100%",overflow:"hidden"},frame:{common:{margin:"auto",position:"relative",padding:"0",outline:"0",width:"100%",opacity:"1",overflow:"hidden",height:"100%"}},page:{links:{width:"600px"}}});function xC({message:e}){return ua()?c.jsx("div",{className:"gh-portal-cookiebanner",children:e}):null}class Ng extends L.Component{componentDidMount(){this.node&&!q(["preview"])&&!this.props.isMobile&&(this.node.focus(),this.keyUphandler=t=>{t.key==="Escape"&&this.dismissPopup(t)},this.node.ownerDocument.removeEventListener("keyup",this.keyUphandler),this.node.ownerDocument.addEventListener("keyup",this.keyUphandler)),this.sendContainerHeightChangeEvent()}dismissPopup(t){var r;const n=t.target&&t.target.tagName;(n!=="INPUT"||n==="INPUT"&&!((r=t==null?void 0:t.target)!=null&&r.value))&&this.context.onAction("closePopup")}sendContainerHeightChangeEvent(){var t,n;this.node&&q(["preview"])&&((t=this.node)==null?void 0:t.clientHeight)!==this.lastContainerHeight&&(this.lastContainerHeight=(n=this.node)==null?void 0:n.clientHeight,window.document.body.style.overflow="hidden",window.document.body.style["scrollbar-width"]="none",window.parent.postMessage({type:"portal-preview-updated",payload:{height:this.lastContainerHeight}},"*"))}componentDidUpdate(){this.sendContainerHeightChangeEvent()}componentWillUnmount(){this.node&&this.node.ownerDocument.removeEventListener("keyup",this.keyUphandler)}handlePopupClose(t){q(["preview"])||t.target===t.currentTarget&&this.context.onAction("closePopup")}renderActivePage(){const{page:t}=this.context;lu({page:t});const n=su[t];return c.jsx(n,{})}renderPopupNotification(){const{popupNotification:t}=this.context;return!t||!t.type?null:c.jsx(hg,{})}sendPortalPreviewReadyEvent(){window.self!==window.parent&&window.parent.postMessage({type:"portal-preview-ready",payload:{}},"*")}render(){const{page:t,pageQuery:n,site:a,customSiteUrl:r}=this.context,o=Co({site:a}).length;lu({page:t});const l={...Pg().page[t]};let u="",d="regular",p="",m=t;switch(t){case"signup":p="Cookies must be enabled in your browser to sign up.";break;case"signin":p="Cookies must be enabled in your browser to sign in.";break;case"accountHome":m="account-home";break;case"accountProfile":m="account-profile";break;case"accountPlan":m="account-plan";break;default:p="Cookies must be enabled in your browser.",m=t;break}o>1&&!ut({site:a,pageQuery:n})&&t==="signup"&&(m+=" full-size",d="full");const f=$o({site:a});(f&&o>2||!f&&o>1)&&t==="accountPlan"&&(m+=" full-size",d="full"),(t==="emailSuppressionFAQ"||t==="emailReceivingFAQ")&&(m+=" large-size");let y="gh-portal-popup-container";q(["preview"])&&(m+=" preview"),q(["preview"],{customSiteUrl:r})&&!a.disableBackground&&(y+=" preview"),q(["dev"])&&(y+=" dev");const v=`${y} ${u} ${m}`;return this.sendPortalPreviewReadyEvent(),c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"gh-portal-popup-wrapper "+m,onClick:h=>this.handlePopupClose(h),children:c.jsxs("div",{className:v,style:l,ref:h=>this.node=h,tabIndex:-1,children:[c.jsx(xC,{message:p}),this.renderPopupNotification(),this.renderActivePage(),d==="full"?c.jsx("div",{className:"gh-portal-powered inside "+(q(["preview"])?"hidden ":"")+m,children:c.jsx(cu,{})}):""]})}),c.jsx("div",{className:"gh-portal-powered outside "+(q(["preview"])?"hidden ":"")+m,children:c.jsx(cu,{})})]})}}Q(Ng,"contextType",T);class Tg extends L.Component{constructor(t){super(t),this.state={height:null}}renderCurrentPage(t){const n=su[t];return c.jsx(n,{})}onHeightChange(t){this.setState({height:t})}handlePopupClose(t){t.preventDefault(),t.target===t.currentTarget&&this.context.onAction("closePopup")}renderFrameStyles(){const{site:t}=this.context,n=qE({site:t}),a=`
|
|
3371
|
+
`;function qE({site:e}){return Yc+HE+x0+X0+sE+U0()+w0+b0+v0+vf+yE+gE+xE()+kE+VE+WE+EE+IE+DE+zE+_E+FE+UE}class wg extends L.Component{constructor(t){super(t),this.state={email:""}}componentDidMount(){const{member:t}=this.context;t&&this.context.onAction("switchPage",{page:"accountHome"})}handleSignin(t){t.preventDefault(),this.setState(n=>({errors:Fo({fields:this.getInputFields({state:n})})}),async()=>{const{email:n,errors:a}=this.state,{redirect:r}=this.context.pageData??{};a&&Object.values(a).filter(o=>!!o).length>0||this.context.onAction("signin",{email:n,redirect:r})})}handleInputChange(t,n){const a=n.name;this.setState({[a]:t.target.value})}onKeyDown(t){t.keyCode===13&&this.handleSignin(t)}getInputFields({state:t}){const{t:n}=this.context,a=t.errors||{};return[{type:"email",value:t.email,placeholder:"jamie@example.com",label:n("Email"),name:"email",required:!0,errorMessage:a.email||"",autoFocus:!0}]}renderSubmitButton(){const{action:t,t:n}=this.context;let a=!1;const r=t==="signin:running";let i=n(r?"Sending login link...":"Continue");const o=!!r;return t==="signin:failed"&&(i=n("Retry"),a=!0),c.jsx(ne,{dataTestId:"signin",retry:a,style:{width:"100%"},onClick:s=>this.handleSignin(s),disabled:o,brandColor:this.context.brandColor,label:i,isRunning:r})}renderSignupMessage(){const{brandColor:t,t:n}=this.context;return c.jsxs("div",{className:"gh-portal-signup-message",children:[c.jsx("div",{children:n("Don't have an account?")}),c.jsx("button",{"data-test-button":"signup-switch",className:"gh-portal-btn gh-portal-btn-link",style:{color:t},onClick:()=>this.context.onAction("switchPage",{page:"signup"}),children:c.jsx("span",{children:n("Sign up")})})]})}renderForm(){const{site:t,t:n}=this.context;return kn({site:t})?c.jsxs("section",{children:[c.jsx("div",{className:"gh-portal-section",children:c.jsx(Ro,{fields:this.getInputFields({state:this.state}),onChange:(a,r)=>this.handleInputChange(a,r),onKeyDown:(a,r)=>this.onKeyDown(a,r)})}),c.jsxs("footer",{className:"gh-portal-signin-footer",children:[this.renderSubmitButton(),this.renderSignupMessage()]})]}):c.jsx("section",{children:c.jsx("div",{className:"gh-portal-section",children:c.jsx("p",{className:"gh-portal-members-disabled-notification","data-testid":"members-disabled-notification-text",children:n("Memberships unavailable, contact the owner for access.")})})})}renderSiteIcon(){const{site:t}=this.context,n=t.icon;return n?c.jsx("img",{className:"gh-portal-signup-logo",src:n,alt:this.context.site.title}):kn({site:t})?null:c.jsx(iu,{className:"gh-portal-icon gh-portal-icon-invitation"})}renderSiteTitle(){const{site:t,t:n}=this.context,a=t.title;return kn({site:t})?c.jsx("h1",{className:"gh-portal-main-title",children:n("Sign in")}):c.jsx("h1",{className:"gh-portal-main-title",children:a})}renderFormHeader(){return c.jsxs("header",{className:"gh-portal-signin-header",children:[this.renderSiteIcon(),this.renderSiteTitle()]})}render(){return c.jsxs(c.Fragment,{children:[c.jsx(ae,{}),c.jsx("div",{className:"gh-portal-logged-out-form-container",children:c.jsxs("div",{className:"gh-portal-content signin",children:[this.renderFormHeader(),this.renderForm()]})})]})}}Q(wg,"contextType",T);const GE=({handleSignout:e,supportAddress:t="",t:n})=>{const a=`mailto:${t}`;return c.jsxs("footer",{className:"gh-portal-account-footer",children:[c.jsx("ul",{className:"gh-portal-account-footermenu",children:c.jsx("li",{children:c.jsx("button",{"data-test-button":"footer-signout",className:"gh-portal-btn",name:"logout","aria-label":"logout",onClick:r=>e(r),children:n("Sign out")})})}),c.jsx("div",{className:"gh-portal-account-footerright",children:c.jsx("ul",{className:"gh-portal-account-footermenu",children:c.jsx("li",{children:c.jsx("a",{"data-test-link":"footer-support",className:"gh-portal-btn gh-portal-btn-branded",href:a,onClick:()=>{a&&window.open(a)},children:n("Contact support")})})})})]})},KE=()=>{const{member:e,brandColor:t,t:n}=k.useContext(T),a=e.avatar_image;return c.jsxs("header",{className:"gh-portal-account-header",children:[c.jsx(Uc,{gravatar:a,style:{userIcon:{color:t,width:"56px",height:"56px",padding:"2px"}}}),c.jsx("h2",{className:"gh-portal-main-title",children:n("Your account")})]})},JE=()=>{const{site:e,action:t,brandColor:n,onAction:a,t:r}=k.useContext(T);if(!Vc({site:e}))return null;const i=["checkoutPlan:running"].includes(t),o=()=>{a("switchPage",{page:"accountPlan",lastPage:"accountHome"})};return c.jsx(ne,{dataTestId:"view-plans",isRunning:i,label:r("View plans"),onClick:()=>o(),brandColor:n,style:{width:"100%"}})},QE=()=>{const{member:e,site:t,t:n}=k.useContext(T),{is_stripe_configured:a}=t;if(!a||Nr({site:t}))return null;const r=Ae({member:e}),i=Qt({member:e});if(i&&!r)return null;if(r){const o=r==null?void 0:r.current_period_end;if(i&&Bc({member:e})){const s=Bc({member:e}),l=Ct(s);return c.jsx("div",{className:"gh-portal-section",children:c.jsx("p",{className:"gh-portal-text-center gh-portal-free-ctatext",children:n("Your subscription will expire on {{expiryDate}}",{expiryDate:l})})})}if(r!=null&&r.cancel_at_period_end||i)return null;if(qc({sub:r})){const s=Ct(r.trial_end_at);return c.jsx("div",{className:"gh-portal-section",children:c.jsx("p",{className:"gh-portal-text-center gh-portal-free-ctatext",children:n("Your subscription will start on {{subscriptionStart}}",{subscriptionStart:s})})})}return c.jsx("div",{className:"gh-portal-section",children:c.jsx("p",{className:"gh-portal-text-center gh-portal-free-ctatext",children:n("Your subscription will renew on {{renewalDate}}",{renewalDate:Ct(o)})})})}return c.jsxs("div",{className:"gh-portal-section",children:[c.jsx("p",{className:"gh-portal-text-center gh-portal-free-ctatext",children:n("You currently have a free membership, upgrade to a paid subscription for full access.")}),c.jsx(JE,{})]})},ZE=()=>{const{member:e,onAction:t,action:n,brandColor:a,t:r}=k.useContext(T),i=Ae({member:e});if(!i||!i.cancel_at_period_end)return null;const o=i.cancel_at_period_end?r("Continue subscription"):r("Cancel subscription"),s=["cancelSubscription:running"].includes(n),l=!!s,u=!!i.cancel_at_period_end,d=()=>{if(!i.cancel_at_period_end)return null;const p=i.current_period_end;return c.jsx("p",{className:"gh-portal-text-center gh-portal-free-ctatext",children:r("Your subscription will expire on {{expiryDate}}",{expiryDate:Ct(p)})})};return c.jsxs("div",{className:"gh-portal-cancelcontinue-container",children:[c.jsx(d,{}),c.jsx(ne,{onClick:()=>{t("continueSubscription",{subscriptionId:i.id})},isRunning:s,disabled:l,isPrimary:u,brandColor:a,label:o,style:{width:"100%"}})]})},XE=e=>k.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},k.createElement("defs",null,k.createElement("style",null,".a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;}")),k.createElement("path",{d:"M22.939 2.56V8.817C22.9391 9.61244 22.6232 10.3754 22.061 10.938L10.5 22.5C10.2187 22.7812 9.83721 22.9392 9.43946 22.9392C9.04172 22.9392 8.66026 22.7812 8.37896 22.5L1.49997 15.62C1.21876 15.3387 1.06079 14.9572 1.06079 14.5595C1.06079 14.1618 1.21876 13.7803 1.49997 13.499L13.061 1.938C13.6236 1.37572 14.3865 1.0599 15.182 1.06H21.439C21.8368 1.06 22.2183 1.21803 22.4996 1.49934C22.7809 1.78064 22.939 2.16217 22.939 2.56V2.56Z",className:"a"}),k.createElement("path",{d:"M17.689 7.81C16.8605 7.81 16.189 7.13842 16.189 6.31C16.189 5.48157 16.8605 4.81 17.689 4.81C18.5174 4.81 19.189 5.48157 19.189 6.31C19.189 7.13842 18.5174 7.81 17.689 7.81Z",className:"a"})),eC=()=>{const{member:e,site:t,onAction:n,t:a}=k.useContext(T),r=()=>{const y=Ae({member:e});n("editBilling",{subscriptionId:y.id})},i=()=>{const{is_stripe_configured:y}=t;y&&n("switchPage",{page:"accountPlan",lastPage:"accountHome"})},o=({price:y,isComplimentary:v,subscription:h})=>{const{offer:g,start_date:b}=h||{};let x="";if(y){const{amount:P=0,currency:M,interval:me}=y;x=`${Intl.NumberFormat("en",{currency:M,style:"currency"}).format(P/100)}/${me}`}let w=nC({price:y,offer:g,subscriptionStartDate:b,t:a});const C=Bc({member:e});v&&(C?x=`${a("Complimentary")} - ${a("Expires {{expiryDate}}",{expiryDate:C})}`:x=x?`${a("Complimentary")} (${x})`:a("Complimentary"));let S="";w&&(S="gh-portal-account-old-price");const E=()=>w?c.jsxs("p",{className:"gh-portal-account-discountcontainer",children:[c.jsx(XE,{className:"gh-portal-account-tagicon"}),c.jsx("span",{children:w})]}):null,j=qc({sub:h});return j&&(S="gh-portal-account-old-price"),j?c.jsxs(c.Fragment,{children:[c.jsx("p",{className:S,children:x}),c.jsx(tC,{subscription:h,t:a})]}):c.jsxs(c.Fragment,{children:[c.jsx("p",{className:S,children:x}),c.jsx(E,{})]})},s=({isComplimentary:y,isPaid:v})=>(Pr({member:e})?!1:y)||Nr({site:t})&&!v?null:c.jsx("button",{className:"gh-portal-btn gh-portal-btn-list",onClick:g=>i(),"data-test-button":"change-plan",children:a("Change")}),l=({defaultCardLast4:y})=>{if(y){const v=`**** **** **** ${y}`;return c.jsx("p",{children:v})}return null},u=({defaultCardLast4:y,isComplimentary:v})=>{const{action:h}=k.useContext(T),g=h==="editBilling:running"?c.jsx(ha,{className:"gh-portal-billing-button-loader"}):a("Update");return v?null:c.jsxs("section",{children:[c.jsxs("div",{className:"gh-portal-list-detail",children:[c.jsx("h3",{children:a("Billing info")}),c.jsx(l,{defaultCardLast4:y})]}),c.jsx("button",{className:"gh-portal-btn gh-portal-btn-list",onClick:b=>r(),"data-test-button":"update-billing",children:g})]})},d=Ae({member:e}),p=Qt({member:e}),m=ct({member:e}),f=d==null?void 0:d.cancel_at_period_end;if(d||p){const{price:y,default_payment_card_last4:v}=d||{};let h=a("Plan");return xo({site:t})&&xf({member:e})&&(h=xf({member:e})),c.jsxs(c.Fragment,{children:[c.jsxs("section",{children:[c.jsxs("div",{className:"gh-portal-list-detail",children:[c.jsx("h3",{children:h}),c.jsx(o,{price:y,isComplimentary:p,subscription:d})]}),c.jsx(s,{isComplimentary:p,isPaid:m,isCancelled:f})]}),c.jsx(u,{isComplimentary:p,defaultCardLast4:v})]})}return null};function tC({subscription:e,t}){if(qc({sub:e})){const n=Ct(e.trial_end_at);return c.jsx("p",{className:"gh-portal-account-discountcontainer",children:c.jsx("div",{children:c.jsx("span",{children:t("Free Trial – Ends {{trialEnd}}",{trialEnd:n})})})})}return null}function nC({offer:e,price:t,subscriptionStartDate:n,t:a}){let r="";if((e==null?void 0:e.type)==="trial"||(e==null?void 0:e.duration)==="once")return"";if(e){const i=e.duration;let o="";if(i==="forever")o=a("Forever");else if(i==="repeating"){const s=e.duration_in_months||0;let l=new Date(n),u=new Date(l.setMonth(l.getMonth()+s));if(Tf(u))return"";o=a("Ends {{offerEndDate}}",{offerEndDate:Ct(u)})}r=`${n0({offer:e,price:t,useFormatted:!0})}/${t.interval}${o?` — ${o}`:""}`}return r}function aC(){const{member:e,site:t,onAction:n,t:a}=k.useContext(T);let{newsletters:r}=e;const i=!!(r!=null&&r.length);let o=a(i?"Subscribed":"Unsubscribed");const s=l=>{var p;l.preventDefault();const u=ma({site:t}),d=(p=e==null?void 0:e.newsletters)!=null&&p.length?[]:u;n("updateNewsletterPreference",{newsletters:d})};return c.jsxs("section",{children:[c.jsxs("div",{className:"gh-portal-list-detail email-newsletter",children:[c.jsx("h3",{children:a("Email newsletter")}),c.jsxs("p",{children:[o," ",Gc({member:e})&&i&&c.jsx("button",{className:"gh-portal-btn-text gh-email-faq-page-button",onClick:()=>n("switchPage",{page:"emailReceivingFAQ",lastPage:"accountHome"}),children:a("Not receiving emails?")})]})]}),c.jsx("div",{children:c.jsx(Do,{dataTestId:"default-newsletter-toggle",id:"default-newsletter-toggle",onToggle:l=>{s(l)},checked:i})})]})}const xg=e=>k.createElement("svg",{fill:"none",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",...e},k.createElement("path",{d:"m12.79 12.376 4.08 4.079m-4.08 0 4.08-4.08",stroke:"red",strokeWidth:1.35,strokeLinecap:"round",strokeLinejoin:"round"}),k.createElement("path",{d:"m10.439 17.994-2.664-2.652-2.86 1.478.111-4.239m0 0L1.677 9.232a1.344 1.344 0 0 1-.366-1.222 1.369 1.369 0 0 1 .904-1.05l13.111-4.374a1.369 1.369 0 0 1 1.76 1.758L15 10m-9.974 2.581 11.67-9.727",stroke:"#A3A3A3",strokeWidth:1.35,strokeLinecap:"round",strokeLinejoin:"round"}));function rC(){const{onAction:e,member:t,t:n}=k.useContext(T),a=Nf({member:t}),r=a?"emailSuppressed":"accountEmail";return c.jsxs("section",{children:[c.jsxs("div",{className:"gh-portal-list-detail",children:[c.jsx("h3",{children:n("Emails")}),a?c.jsxs("p",{className:"gh-portal-email-notice",children:[c.jsx(xg,{className:"gh-portal-email-notice-icon"}),c.jsx("span",{className:"gh-mobile-only",children:n("You're not receiving emails")}),c.jsx("span",{className:"gh-desktop-only",children:n("You're currently not receiving emails")})]}):c.jsx("p",{children:n("Update your preferences")})]}),c.jsx("button",{className:"gh-portal-btn gh-portal-btn-list",onClick:()=>{e("switchPage",{page:r,lastPage:"accountHome"})},"data-test-button":"manage-newsletters",children:n("Manage")})]})}const iC=()=>{const{member:e,onAction:t,site:n,t:a}=k.useContext(T),{name:r,email:i}=e,o=()=>{t("switchPage",{page:"accountProfile",lastPage:"accountHome"})},s=Po({site:n})||Cf({site:n})||Nf({member:e});return c.jsx("div",{children:c.jsxs("div",{className:"gh-portal-list",children:[c.jsxs("section",{children:[c.jsxs("div",{className:"gh-portal-list-detail",children:[c.jsx("h3",{children:r||"Account"}),c.jsx("p",{children:i})]}),c.jsx("button",{"data-test-button":"edit-profile",className:"gh-portal-btn gh-portal-btn-list",onClick:l=>o(),children:a("Edit")})]}),c.jsx(eC,{}),s?c.jsx(rC,{}):c.jsx(aC,{})]})})},oC=()=>c.jsxs("div",{className:"gh-portal-content gh-portal-account-main",children:[c.jsx(ae,{}),c.jsx(KE,{}),c.jsxs("section",{className:"gh-portal-account-data",children:[c.jsx(QE,{}),c.jsx(ZE,{}),c.jsx(iC,{})]})]});class Sg extends L.Component{componentDidMount(){const{member:t,site:n}=this.context;kn({site:n})||this.context.onAction("signout"),t||this.context.onAction("switchPage",{page:"signin",pageData:{redirect:window.location.href}})}handleSignout(t){t.preventDefault(),this.context.onAction("signout")}render(){const{member:t,site:n,t:a}=this.context,r=Tr({site:n});return!t||!kn({site:n})?null:c.jsxs("div",{className:"gh-portal-account-wrapper",children:[c.jsx(oC,{}),c.jsx(GE,{onClose:()=>this.context.onAction("closePopup"),handleSignout:i=>this.handleSignout(i),supportAddress:r,t:a})]})}}Q(Sg,"contextType",T);class Eg extends L.Component{constructor(t,n){super(t,n);const{name:a="",email:r=""}=n.member||{};this.state={name:a,email:r}}componentDidMount(){const{member:t}=this.context;t||this.context.onAction("switchPage",{page:"signin"})}handleSignout(t){t.preventDefault(),this.context.onAction("signout")}onBack(){this.context.onAction("back")}onProfileSave(t){t.preventDefault(),this.setState(n=>({errors:Fo({fields:this.getInputFields({state:n})})}),()=>{const{email:n,name:a,errors:r}=this.state;r&&Object.values(r).filter(o=>!!o).length>0||(this.context.onAction("clearPopupNotification"),this.context.onAction("updateProfile",{email:n,name:a}))})}renderSaveButton(){const{t}=this.context,n=this.context.action==="updateProfile:running";let a=t("Save");this.context.action==="updateProfile:failed"&&(a=t("Retry"));const r=!!n;return c.jsx(ne,{dataTestId:"save-button",isRunning:n,onClick:i=>this.onProfileSave(i),disabled:r,brandColor:this.context.brandColor,label:a,style:{width:"100%"}})}renderDeleteAccountButton(){const{t}=this.context;return c.jsx("div",{style:{cursor:"pointer",color:"red"},role:"button",children:t("Delete account")})}renderAccountFooter(){return c.jsx("footer",{className:"gh-portal-action-footer",children:this.renderSaveButton()})}renderHeader(){const{t}=this.context;return c.jsxs("header",{className:"gh-portal-detail-header",children:[c.jsx(fa,{brandColor:this.context.brandColor,hidden:!this.context.lastPage,onClick:n=>this.onBack(n)}),c.jsx("h3",{className:"gh-portal-main-title",children:t("Account settings")})]})}renderUserAvatar(){const t=this.context.member&&this.context.member.avatar_image,n={position:"relative",display:"flex",width:"64px",height:"64px",marginBottom:"6px",borderRadius:"100%",boxShadow:"0 0 0 3px #fff",border:"1px solid gray",overflow:"hidden",justifyContent:"center",alignItems:"center"};return c.jsx("div",{style:n,children:c.jsx(Uc,{gravatar:t,style:{userIcon:{color:"black",width:"56px",height:"56px"}}})})}handleInputChange(t,n){const a=n.name;this.setState({[a]:t.target.value})}getInputFields({state:t,fieldNames:n}){const{t:a}=this.context,r=t.errors||{},i=[{type:"text",value:t.name,placeholder:"Jamie Larson",label:a("Name"),name:"name",required:!0,errorMessage:r.name||""},{type:"email",value:t.email,placeholder:"jamie@example.com",label:a("Email"),name:"email",required:!0,errorMessage:r.email||""}];return n&&n.length>0?i.filter(o=>n.includes(o.name)):i}onKeyDown(t){t.keyCode===13&&this.onProfileSave(t)}renderProfileData(){return c.jsx("div",{className:"gh-portal-section",children:c.jsx(Ro,{fields:this.getInputFields({state:this.state}),onChange:(t,n)=>this.handleInputChange(t,n),onKeyDown:(t,n)=>this.onKeyDown(t,n)})})}render(){const{member:t}=this.context;return t?c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"gh-portal-content with-footer",children:[c.jsx(ae,{}),this.renderHeader(),c.jsx("div",{className:"gh-portal-section",children:this.renderProfileData()})]}),this.renderAccountFooter()]}):null}}Q(Eg,"contextType",T);function sC(){const{brandColor:e,lastPage:t,onAction:n,t:a}=k.useContext(T);return c.jsxs("header",{className:"gh-portal-detail-header",children:[c.jsx(fa,{brandColor:e,hidden:!t,onClick:()=>{n("back")}}),c.jsx("h3",{className:"gh-portal-main-title",children:a("Email preferences")})]})}function Cg({show:e,checked:t}){let n=[];return e&&n.push("gh-portal-checkmark-show"),t&&n.push("gh-portal-toggle-checked"),n.push("gh-portal-checkmark-container"),c.jsx("div",{className:n.join(" "),"data-testid":"checkmark-container",children:c.jsx(yg,{className:"gh-portal-checkmark-icon",alt:""})})}function lC({newsletter:e,subscribedNewsletters:t,setSubscribedNewsletters:n}){const a=t.some(l=>l.id===(e==null?void 0:e.id)),[r,i]=k.useState(!1),[o,s]=k.useState(null);return c.jsxs("section",{className:"gh-portal-list-toggle-wrapper","data-test-toggle-wrapper":!0,children:[c.jsxs("div",{className:"gh-portal-list-detail",children:[c.jsx("h3",{children:e.name}),c.jsx("p",{children:e==null?void 0:e.description})]}),c.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[c.jsx(Cg,{show:r,checked:a}),c.jsx(Do,{id:e.id,onToggle:(l,u)=>{let d=[];if(u){d=t.filter(m=>m.id!==e.id).concat(e),i(!0),clearTimeout(o);let p=setTimeout(()=>{i(!1)},2e3);s(p)}else{d=t.filter(m=>m.id!==e.id),i(!0),clearTimeout(o);let p=setTimeout(()=>{i(!1)},2e3);s(p)}n(d)},checked:a})]})]})}function cC({updateCommentNotifications:e,isCommentsEnabled:t,enableCommentNotifications:n}){const{t:a}=k.useContext(T),r=!!n,[i,o]=k.useState(!1),[s,l]=k.useState(null);return t?c.jsxs("section",{className:"gh-portal-list-toggle-wrapper","data-test-toggle-wrapper":!0,children:[c.jsxs("div",{className:"gh-portal-list-detail",children:[c.jsx("h3",{children:a("Comments")}),c.jsx("p",{children:a("Get notified when someone replies to your comment")})]}),c.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[c.jsx(Cg,{show:i,checked:r}),c.jsx(Do,{id:"comments",onToggle:(u,d)=>{o(!0),clearTimeout(s);let p=setTimeout(()=>{o(!1)},2e3);l(p),e(d)},checked:r})]})]}):null}function uC({subscribedNewsletters:e,setSubscribedNewsletters:t}){const{site:n}=k.useContext(T);return ma({site:n}).map(r=>c.jsx(lC,{newsletter:r,subscribedNewsletters:e,setSubscribedNewsletters:t},r==null?void 0:r.id))}function dC({site:e,isPaid:t}){const{t:n}=k.useContext(T);return t?c.jsx("p",{style:{textAlign:"center",marginTop:"12px",marginBottom:"0",color:"var(--grey6)"},children:n("Unsubscribing from emails will not cancel your paid subscription to {{title}}",{title:e==null?void 0:e.title})}):null}function jg({notification:e,subscribedNewsletters:t,updateSubscribedNewsletters:n,updateCommentNotifications:a,unsubscribeAll:r,isPaidMember:i,isCommentsEnabled:o,enableCommentNotifications:s}){const{brandColor:l,onAction:u,member:d,site:p,t:m}=k.useContext(T),f=!(t!=null&&t.length)&&(o&&!s||!o),v=e||(()=>null);return c.jsxs("div",{className:"gh-portal-content with-footer",children:[c.jsx(ae,{}),c.jsx(sC,{}),c.jsx(v,{}),c.jsx("div",{className:"gh-portal-section flex",children:c.jsxs("div",{className:"gh-portal-list",children:[c.jsx(uC,{subscribedNewsletters:t,setSubscribedNewsletters:h=>{let g=h.map(b=>({id:b.id}));n(g)}}),c.jsx(cC,{isCommentsEnabled:o,enableCommentNotifications:s,updateCommentNotifications:a})]})}),c.jsxs("footer",{className:"gh-portal-action-footer"+(Gc({member:d})?" gh-feature-suppressions":""),children:[c.jsxs("div",{style:{width:"100%"},children:[c.jsx(ne,{isRunning:!1,onClick:()=>{r()},disabled:f,brandColor:l,isPrimary:!1,label:m("Unsubscribe from all emails"),isDestructive:!0,style:{width:"100%"},dataTestId:"unsubscribe-from-all-emails"}),c.jsx(dC,{isPaid:i,site:p})]}),Gc({member:d})&&!f&&c.jsxs("div",{className:"gh-portal-footer-secondary",children:[c.jsx("span",{className:"gh-portal-footer-secondary-light",children:m("Not receiving emails?")}),c.jsxs("button",{className:"gh-portal-btn-text gh-email-faq-page-button",onClick:()=>u("switchPage",{page:"emailReceivingFAQ"}),children:[m("Get help")," →"]})]})]})]})}function mC(){const{member:e,onAction:t,site:n,t:a}=k.useContext(T);k.useEffect(()=>{e||t("switchPage",{page:"signin"})},[e,t]);const r=[...(e==null?void 0:e.newsletters)||[]],[i,o]=k.useState(r),{comments_enabled:s}=n,{enable_comment_notifications:l}=e||{};return k.useEffect(()=>{o((e==null?void 0:e.newsletters)||[])},[e==null?void 0:e.newsletters]),c.jsx(jg,{notification:null,subscribedNewsletters:i,updateSubscribedNewsletters:u=>{o(u),t("updateNewsletterPreference",{newsletters:u})},updateCommentNotifications:async u=>{t("updateNewsletterPreference",{enableCommentNotifications:u})},unsubscribeAll:()=>{o([]),t("showPopupNotification",{action:"updated:success",message:a("Unsubscribed from all emails.")});const u={newsletters:[]};s&&(u.enableCommentNotifications=!1),t("updateNewsletterPreference",u)},isPaidMember:ct({member:e}),isCommentsEnabled:s!=="off",enableCommentNotifications:l})}function pC(){const{site:e}=k.useContext(T),t=e.icon;return t?c.jsx("img",{className:"gh-portal-unsubscribe-logo",src:t,alt:e.title}):null}function hC(){const{site:e}=k.useContext(T),t=e.title||"";return c.jsxs("header",{className:"gh-portal-header",children:[c.jsx(pC,{}),c.jsx("h2",{className:"gh-portal-publication-title",children:t})]})}async function $g({api:e,memberUuid:t,newsletters:n,enableCommentNotifications:a}){try{return await e.member.updateNewsletters({uuid:t,newsletters:n,enableCommentNotifications:a})}catch{}}function fC(){const{site:e,api:t,pageData:n,member:a,onAction:r,t:i}=k.useContext(T),[o,s]=k.useState(),[l,u]=k.useState(!0),d=ma({site:e}),p=d.filter(j=>j.subscribe_on_signup),[m,f]=k.useState(!1),[y,v]=k.useState(p),[h,g]=k.useState(!1),{comments_enabled:b}=e,{enable_comment_notifications:x=!1}=o||{},w=async j=>{a?r("updateNewsletterPreference",{newsletters:j}):await $g({api:t,memberUuid:n.uuid,newsletters:j}),v(j)},C=async j=>{let P;a?(await r("updateNewsletterPreference",{enableCommentNotifications:j}),P={...a,enable_comment_notifications:j}):P=await $g({api:t,memberUuid:n.uuid,enableCommentNotifications:j}),s(P)},S=async()=>{let j;a?(await r("updateNewsletterPreference",{newsletters:[],enableCommentNotifications:!1}),j={...a},j.newsletters=[],j.enable_comment_notifications=!1):j=await t.member.updateNewsletters({uuid:n.uuid,newsletters:[],enableCommentNotifications:!1}),v([]),s(j),r("showPopupNotification",{action:"updated:success",message:i("Unsubscribed from all emails.")})};if(k.useEffect(()=>{(async()=>{let j;try{j=await t.member.newsletters({uuid:n.uuid}),s(j??null),u(!1)}catch(M){console.error("[PORTAL] Error fetching member newsletters",M),s(null),u(!1);return}if(j===null)return;const P=(j==null?void 0:j.newsletters)||[];v(P),(d==null?void 0:d.length)===1&&!b&&!n.newsletterUuid?await w([]):n.newsletterUuid?await w(P==null?void 0:P.filter(M=>M.uuid!==n.newsletterUuid)):n.comments&&b&&await C(!1)})()},[b,n.uuid,n.newsletterUuid,n.comments,e.url,d==null?void 0:d.length]),l)return c.jsx(_r,{});if(!o)return c.jsxs("div",{className:"gh-portal-content gh-portal-feedback with-footer",children:[c.jsx(ae,{}),c.jsx("div",{className:"gh-feedback-icon gh-feedback-icon-error",children:c.jsx(Zc,{})}),c.jsx("h1",{className:"gh-portal-main-title",children:i("That didn't go to plan")}),c.jsx("div",{children:c.jsx("p",{className:"gh-portal-text-center",children:i("We couldn't unsubscribe you as the email address was not found. Please contact the site owner.")})}),c.jsx(ne,{style:{width:"100%"},retry:!1,onClick:()=>r("closePopup"),disabled:!1,brandColor:"#000000",label:i("Close"),isRunning:!1,tabindex:"3",classes:"sticky bottom"})]});if((d==null?void 0:d.length)===1&&!b&&!h)return c.jsxs("div",{className:"gh-portal-content gh-portal-unsubscribe with-footer",children:[c.jsx(ae,{}),c.jsx(hC,{}),c.jsx("h1",{className:"gh-portal-main-title",children:i("Successfully unsubscribed")}),c.jsxs("div",{children:[c.jsx("p",{className:"gh-portal-text-center",children:c.jsx(_e,{syntax:Ve,string:i("{{memberEmail}} will no longer receive this newsletter."),mapping:{memberEmail:c.jsx("strong",{children:o==null?void 0:o.email})}})}),c.jsx("p",{className:"gh-portal-text-center",children:c.jsx(_e,{syntax:Ve,string:i("Didn't mean to do this? Manage your preferences <button>here</button>."),mapping:{button:c.jsx("button",{className:"gh-portal-btn-link gh-portal-btn-branded gh-portal-btn-inline",onClick:()=>{g(!0)}})}})})]})]});const E=()=>{if(n.comments&&b){const M=m?"gh-portal-hide":"";return c.jsx(c.Fragment,{children:c.jsx("p",{className:`gh-portal-text-center gh-portal-header-message ${M}`,children:c.jsx(_e,{syntax:Ve,string:i("{{memberEmail}} will no longer receive emails when someone replies to your comments."),mapping:{memberEmail:c.jsx("strong",{children:o==null?void 0:o.email})}})})})}const j=d==null?void 0:d.find(M=>M.uuid===n.newsletterUuid);if(!j)return null;const P=m?"gh-portal-hide":"";return c.jsx(c.Fragment,{children:c.jsx("p",{className:`gh-portal-text-center gh-portal-header-message ${P}`,children:c.jsx(_e,{syntax:Ve,string:i("{{memberEmail}} will no longer receive {{newsletterName}} newsletter."),mapping:{memberEmail:c.jsx("strong",{children:o==null?void 0:o.email}),newsletterName:c.jsx("strong",{children:j==null?void 0:j.name})}})})})};return c.jsx(jg,{notification:E,subscribedNewsletters:y,updateSubscribedNewsletters:async j=>{await w(j),f(!0)},updateCommentNotifications:C,unsubscribeAll:async()=>{await S(),f(!0)},isPaidMember:(o==null?void 0:o.status)!=="free",isCommentsEnabled:b!=="off",enableCommentNotifications:x})}function gC(){const{brandColor:e,lastPage:t,onAction:n,action:a,site:r,t:i}=k.useContext(T);k.useEffect(()=>{["removeEmailFromSuppressionList:success"].includes(a)&&n("refreshMemberData"),["removeEmailFromSuppressionList:failed","refreshMemberData:failed"].includes(a)&&n("back"),["refreshMemberData:success"].includes(a)&&(Po({site:r})||Cf({site:r})?(n("switchPage",{page:"accountEmail",lastPage:"accountHome"}),n("showPopupNotification",{message:i("You have been successfully resubscribed")})):n("back"))},[a,n,r,i]);const o=["removeEmailFromSuppressionList:running","refreshMemberData:running"].includes(a),s=()=>{n("removeEmailFromSuppressionList")};return c.jsxs("div",{className:"gh-email-suppressed-page",children:[c.jsxs("header",{className:"gh-portal-detail-header",children:[c.jsx(fa,{brandColor:e,hidden:!t,onClick:()=>{n("back")}}),c.jsx(ae,{})]}),c.jsx(xg,{className:"gh-email-suppressed-page-icon"}),c.jsxs("div",{className:"gh-email-suppressed-page-text",children:[c.jsx("h3",{className:"gh-portal-main-title gh-email-suppressed-page-title",children:i("Emails disabled")}),c.jsx("p",{children:i("You're not receiving emails because you either marked a recent message as spam, or because messages could not be delivered to your provided email address.")})]}),c.jsx(ne,{dataTestId:"resubscribe-email",classes:"gh-portal-confirm-button",onClick:s,disabled:o,brandColor:e,label:i("Re-enable emails"),isRunning:o})]})}function bC(){const{brandColor:e,onAction:t,site:n,t:a}=k.useContext(T),r=`mailto:${Tr({site:n})}`;return c.jsxs("div",{className:"gh-email-suppression-faq",children:[c.jsxs("header",{className:"gh-portal-detail-header",children:[c.jsx(fa,{brandColor:e,onClick:()=>{t("switchPage",{page:"emailSuppressed",lastPage:"accountHome"})}}),c.jsx(ae,{})]}),c.jsxs("div",{className:"gh-longform",children:[c.jsx("h3",{children:a("Why has my email been disabled?")}),c.jsx("p",{children:a("Newsletters can be disabled on your account for two reasons: A previous email was marked as spam, or attempting to send an email resulted in a permanent failure (bounce).")}),c.jsx("h4",{children:a("Spam complaints")}),c.jsx("p",{children:a("If a newsletter is flagged as spam, emails are automatically disabled for that address to make sure you no longer receive any unwanted messages.")}),c.jsx("p",{children:a("If the spam complaint was accidental, or you would like to begin receiving emails again, you can resubscribe to emails by clicking the button on the previous screen.")}),c.jsx("p",{children:a("Once resubscribed, if you still don't see emails in your inbox, check your spam folder. Some inbox providers keep a record of previous spam complaints and will continue to flag emails. If this happens, mark the latest newsletter as 'Not spam' to move it back to your primary inbox.")}),c.jsx("h4",{children:a("Permanent failure (bounce)")}),c.jsx("p",{children:a("When an inbox fails to accept an email it is commonly called a bounce. In many cases, this can be temporary. However, in some cases, a bounced email can be returned as a permanent failure when an email address is invalid or non-existent.")}),c.jsx("p",{children:a("In the event a permanent failure is received when attempting to send a newsletter, emails will be disabled on the account.")}),c.jsx("p",{children:a("If you would like to start receiving emails again, the best next steps are to check your email address on file for any issues and then click resubscribe on the previous screen.")}),c.jsx("p",{children:c.jsx("a",{className:"gh-portal-btn gh-portal-btn-branded",href:r,onClick:()=>{r&&window.open(r)},children:a("Need more help? Contact support")})})]})]})}function yC(){const{brandColor:e,onAction:t,site:n,lastPage:a,member:r,t:i}=k.useContext(T),o=Tr({site:n}),s=`mailto:${o}`,l=e0({site:n});return c.jsxs("div",{className:"gh-email-receiving-faq",children:[c.jsxs("header",{className:"gh-portal-detail-header",children:[c.jsx(fa,{brandColor:e,onClick:()=>{a?t("switchPage",{page:"accountHome"}):t("switchPage",{page:"accountEmail",lastPage:"accountHome"})}}),c.jsx(ae,{})]}),c.jsxs("div",{className:"gh-longform",children:[c.jsx("h3",{children:i("Help! I'm not receiving emails")}),c.jsx("p",{children:i("If you're not receiving the email newsletter you've subscribed to, here are a few things to check.")}),c.jsx("h4",{children:i("Verify your email address is correct")}),c.jsx("p",{children:c.jsx(_e,{syntax:Ve,string:i("The email address we have for you is {{memberEmail}} — if that's not correct, you can update it in your <button>account settings area</button>."),mapping:{memberEmail:c.jsx("strong",{children:r.email}),button:c.jsx("button",{className:"gh-portal-btn-text",onClick:()=>t("switchPage",{lastPage:"emailReceivingFAQ",page:"accountProfile"})})}})}),c.jsx("h4",{children:i("Check spam & promotions folders")}),c.jsx("p",{children:i(`Make sure emails aren't accidentally ending up in the Spam or Promotions folders of your inbox. If they are, click on "Mark as not spam" and/or "Move to inbox".`)}),c.jsx("h4",{children:i("Create a new contact")}),c.jsx("p",{children:c.jsx(_e,{syntax:Ve,string:i("In your email client add {{senderEmail}} to your contacts list. This signals to your mail provider that emails sent from this address should be trusted."),mapping:{senderEmail:c.jsx("strong",{children:l})}})}),c.jsx("h4",{children:i("Send an email and say hi!")}),c.jsx("p",{children:c.jsx(_e,{syntax:Ve,string:i("Send an email to {{senderEmail}} and say hello. This can also help signal to your mail provider that emails to and from this address should be trusted."),mapping:{senderEmail:c.jsx("strong",{children:l})}})}),c.jsx("h4",{children:i("Check with your mail provider")}),c.jsx("p",{children:c.jsx(_e,{syntax:Ve,string:i("If you have a corporate or government email account, reach out to your IT department and ask them to allow emails to be received from {{senderEmail}}"),mapping:{senderEmail:c.jsx("strong",{children:l})}})}),c.jsx("h4",{children:i("Get in touch for help")}),c.jsx("p",{children:c.jsx(_e,{syntax:Ve,string:i("If you've completed all these checks and you're still not receiving emails, you can reach out to get support by contacting {{supportAddress}}."),mapping:{supportAddress:c.jsx("a",{href:s,onClick:()=>{s&&window.open(s)},children:o})}})})]})]})}const su={signin:wg,signup:mg,accountHome:Sg,accountPlan:cg,accountProfile:Eg,accountEmail:mC,signupNewsletter:ru,unsubscribe:fC,magiclink:pg,loading:_r,offer:fg,feedback:TE,emailSuppressed:gC,emailSuppressionFAQ:bC,emailReceivingFAQ:yC,support:()=>{const[e,t]=k.useState(!0),[n,a]=k.useState(null),[r,i]=k.useState(null);return k.useEffect(()=>{async function o(){const s=window.location.origin,l=s+window.location.pathname,u=`${l}#/portal/support/success`,d=l,p=Lo({siteUrl:s});try{const m=await p.member.checkoutDonation({successUrl:u,cancelUrl:d});m.url&&window.location.replace(m.url)}catch(m){m.type&&m.type==="DisabledFeatureError"?i("This site is not accepting payments at the moment."):a("Something went wrong, please try again later."),t(!1)}}o()},[]),e?c.jsx("div",{children:c.jsx(_r,{})}):n?c.jsx(ou,{error:n}):r?c.jsx(ou,{error:r}):null},supportSuccess:ME,supportError:ou,recommendations:BE},lu=function({page:e}){return Object.keys(su).includes(e)?e:"signup"},kC=function({page:e}){return e.includes("account")},vC=function({page:e}){return e.includes("offer")},wC=e=>k.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},k.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12ZM11.8326 2.33879C6.37785 2.95189 3.95901 5.20797 3.41126 9.74699C3.34896 10.2632 3.22642 10.7805 3.10443 11.2954C2.93277 12.02 2.76221 12.74 2.76221 13.4458C2.76221 17.9885 6.5856 21.556 11.1283 21.556C12.8959 21.556 14.4433 20.8144 15.8756 20.048C19.0536 18.3478 22.0328 16.2597 22.0328 12.5411C22.0328 9.91512 20.1051 7.56932 18.466 5.5747C18.3834 5.47416 18.3015 5.37451 18.2206 5.27577C17.3866 4.25742 14.4333 2.04643 11.8326 2.33879Z",fill:"#15171A"}));class cu extends L.Component{render(){return c.jsxs("a",{href:"https://ghost.org",target:"_blank",rel:"noopener noreferrer",onClick:()=>{window.open("https://ghost.org","_blank")},children:[c.jsx(wC,{}),"Powered by Ghost"]})}}Q(cu,"contextType",T);const Pg=()=>({modalContainer:{zIndex:"3999999",position:"fixed",left:"0",top:"0",width:"100%",height:"100%",overflow:"hidden"},frame:{common:{margin:"auto",position:"relative",padding:"0",outline:"0",width:"100%",opacity:"1",overflow:"hidden",height:"100%"}},page:{links:{width:"600px"}}});function xC({message:e}){return ua()?c.jsx("div",{className:"gh-portal-cookiebanner",children:e}):null}class Ng extends L.Component{componentDidMount(){this.node&&!q(["preview"])&&!this.props.isMobile&&(this.node.focus(),this.keyUphandler=t=>{t.key==="Escape"&&this.dismissPopup(t)},this.node.ownerDocument.removeEventListener("keyup",this.keyUphandler),this.node.ownerDocument.addEventListener("keyup",this.keyUphandler)),this.sendContainerHeightChangeEvent()}dismissPopup(t){var r;const n=t.target&&t.target.tagName;(n!=="INPUT"||n==="INPUT"&&!((r=t==null?void 0:t.target)!=null&&r.value))&&this.context.onAction("closePopup")}sendContainerHeightChangeEvent(){var t,n;this.node&&q(["preview"])&&((t=this.node)==null?void 0:t.clientHeight)!==this.lastContainerHeight&&(this.lastContainerHeight=(n=this.node)==null?void 0:n.clientHeight,window.document.body.style.overflow="hidden",window.document.body.style["scrollbar-width"]="none",window.parent.postMessage({type:"portal-preview-updated",payload:{height:this.lastContainerHeight}},"*"))}componentDidUpdate(){this.sendContainerHeightChangeEvent()}componentWillUnmount(){this.node&&this.node.ownerDocument.removeEventListener("keyup",this.keyUphandler)}handlePopupClose(t){q(["preview"])||t.target===t.currentTarget&&this.context.onAction("closePopup")}renderActivePage(){const{page:t}=this.context;lu({page:t});const n=su[t];return c.jsx(n,{})}renderPopupNotification(){const{popupNotification:t}=this.context;return!t||!t.type?null:c.jsx(hg,{})}sendPortalPreviewReadyEvent(){window.self!==window.parent&&window.parent.postMessage({type:"portal-preview-ready",payload:{}},"*")}render(){const{page:t,pageQuery:n,site:a,customSiteUrl:r}=this.context,o=Co({site:a}).length;lu({page:t});const l={...Pg().page[t]};let u="",d="regular",p="",m=t;switch(t){case"signup":p="Cookies must be enabled in your browser to sign up.";break;case"signin":p="Cookies must be enabled in your browser to sign in.";break;case"accountHome":m="account-home";break;case"accountProfile":m="account-profile";break;case"accountPlan":m="account-plan";break;default:p="Cookies must be enabled in your browser.",m=t;break}o>1&&!ut({site:a,pageQuery:n})&&t==="signup"&&(m+=" full-size",d="full");const f=$o({site:a});(f&&o>2||!f&&o>1)&&t==="accountPlan"&&(m+=" full-size",d="full"),(t==="emailSuppressionFAQ"||t==="emailReceivingFAQ")&&(m+=" large-size");let y="gh-portal-popup-container";q(["preview"])&&(m+=" preview"),q(["preview"],{customSiteUrl:r})&&!a.disableBackground&&(y+=" preview"),q(["dev"])&&(y+=" dev");const v=`${y} ${u} ${m}`;return this.sendPortalPreviewReadyEvent(),c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"gh-portal-popup-wrapper "+m,onClick:h=>this.handlePopupClose(h),children:c.jsxs("div",{className:v,style:l,ref:h=>this.node=h,tabIndex:-1,children:[c.jsx(xC,{message:p}),this.renderPopupNotification(),this.renderActivePage(),d==="full"?c.jsx("div",{className:"gh-portal-powered inside "+(q(["preview"])?"hidden ":"")+m,children:c.jsx(cu,{})}):""]})}),c.jsx("div",{className:"gh-portal-powered outside "+(q(["preview"])?"hidden ":"")+m,children:c.jsx(cu,{})})]})}}Q(Ng,"contextType",T);class Tg extends L.Component{constructor(t){super(t),this.state={height:null}}renderCurrentPage(t){const n=su[t];return c.jsx(n,{})}onHeightChange(t){this.setState({height:t})}handlePopupClose(t){t.preventDefault(),t.target===t.currentTarget&&this.context.onAction("closePopup")}renderFrameStyles(){const{site:t}=this.context,n=qE({site:t}),a=`
|
|
3372
3372
|
:root {
|
|
3373
3373
|
--brandcolor: ${this.context.brandColor}
|
|
3374
3374
|
}
|
|
3375
|
-
`+n;return c.jsxs(c.Fragment,{children:[c.jsx("style",{dangerouslySetInnerHTML:{__html:a}}),c.jsx("meta",{name:"viewport",content:"width=device-width, initial-scale=1, maximum-scale=1"})]})}renderFrameContainer(){const{member:t,site:n,customSiteUrl:a}=this.context,r=Pg(),i=window.innerWidth<480,o={...r.frame.common};let s="gh-portal-popup-background";return q(["preview"])&&(r.modalContainer.zIndex="3999997"),q(["preview"],{customSiteUrl:a})&&!n.disableBackground&&(s+=" preview"),q(["dev"])&&(s+=" dev"),c.jsx("div",{style:r.modalContainer,children:c.jsxs(Fc,{style:o,title:"portal-popup",head:this.renderFrameStyles(),dataTestId:"portal-popup-frame",children:[c.jsx("div",{className:s,onClick:l=>this.handlePopupClose(l)}),c.jsx(Ng,{isMobile:i})]})})}render(){const{showPopup:t}=this.context;return t?this.renderFrameContainer():null}}Q(Tg,"contextType",T),Uo({products:uu({numOfProducts:1})});function Ee(){return(new Date().getTime()/1e3|0).toString(16)+"xxxxxxxxxxxxxxxx".replace(/[x]/g,function(){return(Math.random()*16|0).toString(16)}).toLowerCase()}function Uo({title:e="The Blueprint",description:t="Thoughts, stories and ideas.",logo:n="https://static.ghost.org/v4.0.0/images/ghost-orb-1.png",icon:a="https://static.ghost.org/v4.0.0/images/ghost-orb-1.png",url:r="https://portal.localhost",plans:i={monthly:5e3,yearly:15e4,currency:"USD"},products:o=uu({numOfProducts:1}),portalProducts:s=o.map(P=>P.id),accentColor:l="#45C32E",portalPlans:u=["free","monthly","yearly"],allowSelfSignup:d=!0,membersSignupAccess:p="all",freePriceName:m="Free",freePriceDescription:f="Free preview",isStripeConfigured:y=!0,portalButton:v=!0,portalName:h=!0,portalButtonIcon:g="icon-1",portalButtonSignupText:b="Subscribe now",portalButtonStyle:x="icon-and-text",membersSupportAddress:w="support@example.com",newsletters:C=[],commentsEnabled:S,recommendations:E=[],recommendationsEnabled:j}={}){return{title:e,description:t,logo:n,icon:a,accent_color:l,url:r,plans:i,products:o,portal_products:s,allow_self_signup:d,members_signup_access:p,free_price_name:m,free_price_description:f,is_stripe_configured:y,portal_button:v,portal_name:h,portal_plans:u,portal_button_icon:g,portal_button_signup_text:b,portal_button_style:x,members_support_address:w,comments_enabled:!!S,newsletters:C,recommendations:E,recommendations_enabled:!!j}}function Ig({name:e="Black Friday",code:t="black-friday",displayTitle:n="Black Friday Sale!",displayDescription:a="Special deal for Black Friday. Subscribe now for only $15 per month and get additional benefits like accessing our podcast.",type:r="percent",cadence:i="month",amount:o=50,duration:s="repeating",durationInMonths:l=null,currencyRestriction:u=!1,currency:d=null,status:p="active",tierId:m="",tierName:f="Basic"}={}){return{id:`offer_${Ee()}`,name:e,code:t,display_title:n,display_description:a,type:r,cadence:i,amount:o,duration:s,duration_in_months:l,currency_restriction:u,currency:d,status:p,tier:{id:`${m}`,name:f}}}function Ze({name:e="Jamie Larson",email:t="jamie@example.com",firstname:n="Jamie",subscriptions:a=[],paid:r=!1,avatarImage:i="",subscribed:o=!0,email_suppression:s={suppressed:!1,info:null},newsletters:l=[]}={}){return{uuid:`member_${Ee()}`,email:t,name:e,firstname:n,paid:r,subscribed:o,avatar_image:i,subscriptions:a,email_suppression:s,newsletters:l}}function uu({numOfProducts:e=3}={}){const n=[ba({name:"Bronze",description:"Access to all members articles",monthlyPrice:We({interval:"month",amount:700}),yearlyPrice:We({interval:"year",amount:7e3}),numOfBenefits:2}),ba({name:"Silver",description:"Access to all members articles and weekly podcast",monthlyPrice:We({interval:"month",amount:1200}),yearlyPrice:We({interval:"year",amount:12e3}),numOfBenefits:3}),ba({name:"Friends of the Blueprint",description:"Get access to everything and lock in early adopter pricing for life + listen to my podcast",monthlyPrice:We({interval:"month",amount:18e3}),yearlyPrice:We({interval:"year",amount:17e3}),numOfBenefits:4})].slice(0,e),a=Dg({});return[...n,a]}function ba({type:e="paid",name:t="Basic",description:n="",id:a=`product_${Ee()}`,monthlyPrice:r=We(),yearlyPrice:i=We({interval:"year"}),numOfBenefits:o=2,trialDays:s=null}){return{id:a,name:t,description:n,monthlyPrice:e==="free"?null:r,yearlyPrice:e==="free"?null:i,type:e,benefits:zg({numOfBenefits:o}),trial_days:s}}function Dg({name:e="Free tier",description:t="Free tier description",id:n=`product_${Ee()}`,numOfBenefits:a=2}){return{id:n,name:e,type:"free",description:t,benefits:zg({numOfBenefits:a})}}function zg({numOfBenefits:e}){const t=Date.now(),n=Math.floor(Math.random()*100);return[Yo({name:`Limited early adopter pricing #${n}-${t}`}),Yo({name:`Latest gear reviews #${n}-${t}`}),Yo({name:`Weekly email newsletter #${n}-${t}`}),Yo({name:`Listen to my podcast #$${n}-${t}`})].slice(0,e)}function Yo({id:e=`benefit_${Ee()}`,name:t="Benefit"}){return{id:e,name:t}}function We({interval:e="month",amount:t=e==="month"?500:5e3,nickname:n=e==="month"?"Monthly":"Yearly",description:a=null,currency:r="usd",active:i=!0,id:o=`price_${Ee()}`}={}){return{id:o,active:i,nickname:n,currency:r,amount:t,interval:e,description:a,stripe_price_id:`price_${Ee()}`,stripe_product_id:`prod_${Ee()}`,type:"recurring"}}function xn({id:e=`sub_${Ee()}`,status:t="active",currency:n="USD",interval:a="year",amount:r=a==="month"?500:5e3,nickname:i=a==="month"?"Monthly":"Yearly",cardLast4:o="4242",offer:s=EC,priceId:l=`price_${Ee()}`,startDate:u="2021-10-05T03:18:30.000Z",currentPeriodEnd:d="2022-10-05T03:18:30.000Z",cancelAtPeriodEnd:p=!1}={}){return{id:e,customer:{id:`cus_${Ee()}`,name:"Jamie",email:"jamie@example.com"},plan:{id:`price_${Ee()}`,nickname:i,amount:r,interval:a,currency:n},offer:s,status:t,start_date:u,default_payment_card_last4:o,cancel_at_period_end:p,cancellation_reason:null,current_period_end:d,price:{id:`stripe_price_${Ee()}`,price_id:l,nickname:i,amount:r,interval:a,type:"recurring",currency:n,product:{id:`stripe_prod_${Ee()}`,product_id:`prod_${Ee()}`}}}}function Ag(){const e=uu({numOfProducts:1}),t=e.map(a=>a.id);return Uo({products:e,portalPlans:["free","monthly","yearly"],portalProducts:t})}Ag();const SC=Uo({products:[ba({numOfBenefits:2,type:"free"})]}),EC=Ig({tierId:(Qg=SC.products[0])==null?void 0:Qg.id});Ze(),Ze({paid:!0,subscriptions:[xn()]}),Ze({paid:!0,subscriptions:[]}),Ze({paid:!0,subscriptions:[xn({amount:0})]}),Ze({paid:!0,subscriptions:[xn({amount:1500,startDate:"2019-05-01T11:42:40.000Z",currentPeriodEnd:"2021-06-05T11:42:40.000Z"})]}),Ag();const Oo=[Dg({name:"Free",description:"Free tier description which is actually a pretty long description",numOfBenefits:2}),ba({name:"The Blueprint",description:"",monthlyPrice:We({interval:"month",amount:500}),yearlyPrice:We({interval:"year",amount:5e3}),numOfBenefits:3}),ba({name:"Friends of the Blueprint Silver",description:"Access to all members articles and weekly podcast",monthlyPrice:We({interval:"month",amount:1200}),yearlyPrice:We({interval:"year",amount:11e3}),numOfBenefits:4})],ya=Uo({title:"The Blueprint",description:"Thoughts, stories and ideas.",logo:"https://static.ghost.org/v4.0.0/images/ghost-orb-1.png",icon:"https://static.ghost.org/v4.0.0/images/ghost-orb-1.png",accentColor:"#45C32E",url:"https://portal.localhost",plans:{monthly:5e3,yearly:15e4,currency:"USD"},products:Oo,portalProducts:Oo.map(e=>e.id),allowSelfSignup:!0,membersSignupAccess:"all",freePriceName:"Free",freePriceDescription:"Free preview",isStripeConfigured:!0,portalButton:!0,portalName:!0,portalPlans:["free","monthly","yearly"],portalButtonIcon:"icon-1",portalButtonSignupText:"Subscribe now",portalButtonStyle:"icon-and-text",membersSupportAddress:"support@example.com",commentsEnabled:!0,newsletters:[{id:"weekly",name:"Weekly Rundown",description:"Best of last week",subscribe_on_signup:!0,paid:!0},{id:"daily",name:"Daily Brief",description:"One email every day",subscribe_on_signup:!1,paid:!1}]}),_g=Ig({tierId:(Zg=ya.products[1])==null?void 0:Zg.id}),Bo={free:Ze({name:"Jamie Larson",email:"jamie@example.com",firstname:"Jamie",subscriptions:[],paid:!1,avatarImage:"",subscribed:!0}),paid:Ze({paid:!0,subscriptions:[xn({status:"active",currency:"USD",interval:"year",amount:5e3,cardLast4:"4242",startDate:"2021-10-05T03:18:30.000Z",currentPeriodEnd:"2022-10-05T03:18:30.000Z",cancelAtPeriodEnd:!1})]}),complimentary:Ze({paid:!0,subscriptions:[]}),complimentaryWithSubscription:Ze({paid:!0,subscriptions:[xn({amount:0})]}),preview:Ze({paid:!0,subscriptions:[xn({amount:1500,startDate:"2019-05-01T11:42:40.000Z",currentPeriodEnd:"2021-06-05T11:42:40.000Z"})]})};function CC(){var n;if(!Oo||!Oo[1])return null;let e=(n=ya==null?void 0:ya.products)==null?void 0:n[1].monthlyPrice,t=Ze({paid:!0,subscriptions:[xn({offer:null,priceId:e==null?void 0:e.id,status:"active",currency:e==null?void 0:e.currency,interval:e==null?void 0:e.interval,amount:e==null?void 0:e.amount,cardLast4:"4242",startDate:"2021-10-05T03:18:30.000Z",currentPeriodEnd:"2022-10-05T03:18:30.000Z",cancelAtPeriodEnd:!1})]});return{site:ya,member:t}}function jC({data:e,state:t}){return{page:e.page,popupNotification:null,lastPage:e.lastPage||null,pageData:e.pageData||t.pageData}}function $C({state:e}){return{showPopup:!e.showPopup}}function PC({data:e}){return{showPopup:!0,page:e.page,...e.pageQuery?{pageQuery:e.pageQuery}:{},...e.pageData?{pageData:e.pageData}:{}}}function NC({state:e}){return e.lastPage?{page:e.lastPage}:Mg({state:e})}function Mg({state:e}){return Oc(),{showPopup:!1,lastPage:null,pageQuery:"",popupNotification:null,page:e.page==="magiclink"?"":e.page}}function TC({data:e}){return{showNotification:!0,...e}}function IC(){return{showNotification:!1}}async function DC({api:e,state:t}){try{return await e.member.signout(),{action:"signout:success"}}catch{return{action:"signout:failed",popupNotification:J({type:"signout:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:"Failed to log out, please try again"})}}}async function zC({data:e,api:t,state:n}){try{return await t.member.sendMagicLink({...e,emailType:"signin"}),{page:"magiclink",lastPage:"signin"}}catch(a){return{action:"signin:failed",popupNotification:J({type:"signin:failed",autoHide:!1,closeable:!0,state:n,status:"error",message:jt.getMessageFromError(a,"Failed to log in, please try again")})}}}async function AC({data:e,state:t,api:n}){try{let{plan:a,tierId:r,cadence:i,email:o,name:s,newsletters:l,offerId:u}=e;if(a.toLowerCase()==="free")await n.member.sendMagicLink({emailType:"signup",...e});else return r&&i?await n.member.checkoutPlan({plan:a,tierId:r,cadence:i,email:o,name:s,newsletters:l,offerId:u}):({tierId:r,cadence:i}=wn({site:t==null?void 0:t.site,priceId:a}),await n.member.checkoutPlan({plan:a,tierId:r,cadence:i,email:o,name:s,newsletters:l,offerId:u})),{page:"loading"};return{page:"magiclink",lastPage:"signup"}}catch(a){const r=(a==null?void 0:a.message)||"Failed to sign up, please try again";return{action:"signup:failed",popupNotification:J({type:"signup:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:r})}}}async function _C({data:e,state:t,api:n}){try{let{plan:a,offerId:r,tierId:i,cadence:o}=e;(!i||!o)&&({tierId:i,cadence:o}=wn({site:t==null?void 0:t.site,priceId:a})),await n.member.checkoutPlan({plan:a,tierId:i,cadence:o,offerId:r,metadata:{checkoutType:"upgrade"}})}catch{return{action:"checkoutPlan:failed",popupNotification:J({type:"checkoutPlan:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:"Failed to process checkout, please try again"})}}}async function MC({data:e,state:t,api:n}){try{const{plan:a,planId:r,subscriptionId:i,cancelAtPeriodEnd:o}=e,{tierId:s,cadence:l}=wn({site:t==null?void 0:t.site,priceId:r});await n.member.updateSubscription({planName:a,tierId:s,cadence:l,subscriptionId:i,cancelAtPeriodEnd:o,planId:r});const u=await n.member.sessionData(),d="updateSubscription:success";return{action:d,popupNotification:J({type:d,autoHide:!0,closeable:!0,state:t,status:"success",message:"Subscription plan updated successfully"}),page:"accountHome",member:u}}catch{return{action:"updateSubscription:failed",popupNotification:J({type:"updateSubscription:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:"Failed to update subscription, please try again"})}}}async function RC({data:e,state:t,api:n}){try{const{subscriptionId:a,cancellationReason:r}=e;return await n.member.updateSubscription({subscriptionId:a,smartCancel:!0,cancellationReason:r}),{action:"cancelSubscription:success",page:"accountHome",member:await n.member.sessionData()}}catch{return{action:"cancelSubscription:failed",popupNotification:J({type:"cancelSubscription:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:"Failed to cancel subscription, please try again"})}}}async function FC({data:e,state:t,api:n}){try{const{subscriptionId:a}=e;return await n.member.updateSubscription({subscriptionId:a,cancelAtPeriodEnd:!1}),{action:"continueSubscription:success",page:"accountHome",member:await n.member.sessionData()}}catch{return{action:"continueSubscription:failed",popupNotification:J({type:"continueSubscription:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:"Failed to cancel subscription, please try again"})}}}async function LC({data:e,state:t,api:n}){try{await n.member.editBilling(e)}catch{return{action:"editBilling:failed",popupNotification:J({type:"editBilling:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:"Failed to update billing information, please try again"})}}}async function UC(){return{popupNotification:null}}async function YC({data:e,state:t}){let{action:n,message:a=""}=e;return n=n||"showPopupNotification:success",{popupNotification:J({type:n,autoHide:!0,closeable:!0,state:t,status:"success",message:a})}}async function OC({data:e,state:t,api:n}){try{const{newsletters:a,enableCommentNotifications:r}=e;if(!a&&r===void 0)return{};const i={};return a&&(i.newsletters=a),r!==void 0&&(i.enableCommentNotifications=r),{action:"updateNewsletterPref:success",member:await n.member.update(i)}}catch{return{action:"updateNewsletterPref:failed",popupNotification:J({type:"updateNewsletter:failed",autoHide:!0,closeable:!0,state:t,status:"error",message:"Failed to update newsletter settings"})}}}async function BC({state:e,api:t}){try{return await t.member.deleteSuppression(),{action:"removeEmailFromSuppressionList:success",popupNotification:J({type:"removeEmailFromSuppressionList:success",autoHide:!0,closeable:!0,state:e,status:"success",message:"You have been successfully resubscribed"})}}catch{return{action:"removeEmailFromSuppressionList:failed",popupNotification:J({type:"removeEmailFromSuppressionList:failed",autoHide:!0,closeable:!0,state:e,status:"error",message:"Your email has failed to resubscribe, please try again"})}}}async function HC({data:e,state:t,api:n}){try{const{subscribed:a}=e,r=await n.member.update({subscribed:a});if(!r)throw new Error("Failed to update newsletter");const i="updateNewsletter:success";return{action:i,member:r,popupNotification:J({type:i,autoHide:!0,closeable:!0,state:t,status:"success",message:"Email newsletter settings updated"})}}catch{return{action:"updateNewsletter:failed",popupNotification:J({type:"updateNewsletter:failed",autoHide:!0,closeable:!0,state:t,status:"error",message:"Failed to update newsletter settings"})}}}async function VC({data:e,state:t,api:n}){const{email:a}=e,r=QS({member:t.member});if(a!==r)try{return await n.member.updateEmailAddress({email:a}),{success:!0}}catch(i){return{success:!1,error:i}}return null}async function WC({data:e,state:t,api:n}){const{name:a}=e;if(XS({member:t.member})!==a)try{const i=await n.member.update({name:a});if(!i)throw new Error("Failed to update member");return{member:i,success:!0}}catch(i){return{success:!1,error:i}}return null}async function qC({state:e,api:t}){if(e.member)try{const n=await t.member.sessionData();return n?{member:n,success:!0,action:"refreshMemberData:success"}:null}catch(n){return{success:!1,error:n,action:"refreshMemberData:failed"}}return null}async function GC({data:e,state:t,api:n}){const[a,r]=await Promise.all([WC({data:e,state:t,api:n}),VC({data:e,state:t,api:n})]);if(a&&r){if(r.success)return{action:"updateProfile:success",...a.success?{member:a.member}:{},page:"accountHome",popupNotification:J({type:"updateProfile:success",autoHide:!0,closeable:!0,status:"success",state:t,message:"Check your inbox to verify email update"})};const i=a.success?"Failed to send verification email":"Failed to update account data";return{action:"updateProfile:failed",...a.success?{member:a.member}:{},popupNotification:J({type:"updateProfile:failed",autoHide:!0,closeable:!0,status:"error",message:i,state:t})}}else if(a){const i=a.success?"updateProfile:success":"updateProfile:failed",o=a.success?"success":"error",s=a.success?"Account details updated successfully":"Failed to update account details";return{action:i,...a.success?{member:a.member}:{},...a.success?{page:"accountHome"}:{},popupNotification:J({type:i,autoHide:a.success,closeable:!0,status:o,state:t,message:s})}}else if(r){const i=r.success?"updateProfile:success":"updateProfile:failed",o=r.success?"success":"error",s=r.success?"Check your inbox to verify email update":"Failed to send verification email";return{action:i,...r.success?{page:"accountHome"}:{},popupNotification:J({type:i,autoHide:r.success,closeable:!0,status:o,state:t,message:s})}}return{action:"updateProfile:success",page:"accountHome",popupNotification:J({type:"updateProfile:success",autoHide:!0,closeable:!0,status:"success",state:t,message:"Account details updated successfully"})}}async function KC({data:{siteUrl:e},state:t}){const n=Lo({siteUrl:e,apiUrl:"not-defined",contentApiKey:"not-defined"}),{member:a}=t,r=window.location.href,i=Ef();return await n.member.sendMagicLink({emailType:"signup",name:a.name,email:a.email,autoRedirect:!1,customUrlHistory:t.site.outbound_link_tagging?[{time:Date.now(),referrerSource:i,referrerMedium:"Ghost Recommendations",referrerUrl:r}]:[]}),{}}function JC({data:{recommendationId:e},api:t}){try{const n=localStorage.getItem("ghost-recommendations-clicked"),a=n?JSON.parse(n):[];if(a.includes(e))return;a.push(e),localStorage.setItem("ghost-recommendations-clicked",JSON.stringify(a))}catch{}return t.recommendations.trackClicked({recommendationId:e}),{}}async function QC({data:{recommendationId:e},api:t}){return t.recommendations.trackSubscribed({recommendationId:e}),{}}const ZC={togglePopup:$C,openPopup:PC,closePopup:Mg,switchPage:jC,openNotification:TC,closeNotification:IC,back:NC,signout:DC,signin:zC,signup:AC,updateSubscription:MC,cancelSubscription:RC,continueSubscription:FC,updateNewsletter:HC,updateProfile:GC,refreshMemberData:qC,clearPopupNotification:UC,editBilling:LC,checkoutPlan:_C,updateNewsletterPreference:OC,showPopupNotification:YC,removeEmailFromSuppressionList:BC,oneClickSubscribe:KC,trackRecommendationClicked:JC,trackRecommendationSubscribed:QC};async function XC({action:e,data:t,state:n,api:a}){const r=ZC[e];return r?await r({data:t,state:n,api:a})||{}:{}}const AY="";function e1({event:e,form:t,errorEl:n,siteUrl:a,submitHandler:r}){var g;t.removeEventListener("submit",r),e.preventDefault(),n&&(n.innerText=""),t.classList.remove("success","invalid","error");let i=e.target.querySelector("input[data-members-email]"),o=e.target.querySelector("input[data-members-name]"),s=((g=t==null?void 0:t.dataset)==null?void 0:g.membersAutoredirect)||"true",l=i==null?void 0:i.value,u=o&&o.value||void 0,d,p=[],m=[],f=e.target.querySelectorAll("input[data-members-label]")||[];for(let b=0;b<f.length;++b)p.push(f[b].value);let y=e.target.querySelectorAll("input[type=hidden][data-members-newsletter], input[type=checkbox][data-members-newsletter]:checked, input[type=radio][data-members-newsletter]:checked")||[];for(let b=0;b<y.length;++b)m.push({name:y[b].value});t.dataset.membersForm&&(d=t.dataset.membersForm),t.classList.add("loading");const v=Ir(),h={email:l,emailType:d,labels:p,name:u,autoRedirect:s==="true"};v&&(h.urlHistory=v),y.length>0?h.newsletters=m:(e.target.querySelectorAll("input[type=checkbox][data-members-newsletter]")||[]).length>0&&(h.newsletters=[]),fetch(`${a}/members/api/send-magic-link/`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)}).then(function(b){if(t.addEventListener("submit",r),t.classList.remove("loading"),b.ok)t.classList.add("success");else return jt.fromApiResponse(b).then(x=>{throw x})}).catch(b=>{n&&(n.innerText=jt.getMessageFromError(b,"There was an error sending the email, please try again")),t.classList.add("error")})}function t1({event:e,el:t,errorEl:n,siteUrl:a,site:r,member:i,clickHandler:o}){t.removeEventListener("click",o),e.preventDefault();let s=t.dataset.membersPlan,l=VS(r,s.toLowerCase()),u=t.dataset.membersSuccess,d=t.dataset.membersCancel,p,m;u&&(p=new URL(u,window.location.href).href),d&&(m=new URL(d,window.location.href).href),n&&(n.innerText=""),t.classList.add("loading");const f=i?{checkoutType:"upgrade"}:{},y=Ir();return y&&(f.urlHistory=y),fetch(`${a}/members/api/session`,{credentials:"same-origin"}).then(function(v){return v.ok?v.text():null}).then(function(v){return fetch(`${a}/members/api/create-stripe-checkout-session/`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...l,identity:v,successUrl:p,cancelUrl:m,metadata:f})}).then(function(h){if(!h.ok)throw new Error("Could not create stripe checkout session");return h.json()})}).then(function(v){return v.url?window.location.assign(v.url):window.Stripe(v.publicKey).redirectToCheckout({sessionId:v.sessionId}).then(function(g){if(g.error)throw new Error(g.error.message)})}).catch(function(v){console.error(v),t.addEventListener("click",o),t.classList.remove("loading"),n&&(n.innerText=v.message),t.classList.add("error")})}function n1({siteUrl:e,site:t,member:n}){e&&(e=e.replace(/\/$/,""),Array.prototype.forEach.call(document.querySelectorAll("form[data-members-form]"),function(a){let r=a.querySelector("[data-members-error]");function i(o){e1({event:o,errorEl:r,form:a,siteUrl:e,submitHandler:i})}a.addEventListener("submit",i)}),Array.prototype.forEach.call(document.querySelectorAll("[data-members-plan]"),function(a){let r=a.querySelector("[data-members-error]");function i(o){t1({el:a,event:o,errorEl:r,member:n,site:t,siteUrl:e,clickHandler:i})}a.addEventListener("click",i)}),Array.prototype.forEach.call(document.querySelectorAll("[data-members-edit-billing]"),function(a){let r=a.querySelector("[data-members-error]"),i=a.dataset.membersSuccess,o=a.dataset.membersCancel,s,l;i&&(s=new URL(i,window.location.href).href),o&&(l=new URL(o,window.location.href).href);function u(d){a.removeEventListener("click",u),d.preventDefault(),r&&(r.innerText=""),a.classList.add("loading"),fetch(`${e}/members/api/session`,{credentials:"same-origin"}).then(function(p){return p.ok?p.text():null}).then(function(p){return fetch(`${e}/members/api/create-stripe-update-session/`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({identity:p,successUrl:s,cancelUrl:l})}).then(function(m){if(!m.ok)throw new Error("Could not create stripe checkout session");return m.json()})}).then(function(p){return window.Stripe(p.publicKey).redirectToCheckout({sessionId:p.sessionId})}).then(function(p){if(p.error)throw new Error(p.error.message)}).catch(function(p){console.error(p),a.addEventListener("click",u),a.classList.remove("loading"),r&&(r.innerText=p.message),a.classList.add("error")})}a.addEventListener("click",u)}),Array.prototype.forEach.call(document.querySelectorAll("[data-members-signout]"),function(a){function r(i){a.removeEventListener("click",r),i.preventDefault(),a.classList.remove("error"),a.classList.add("loading"),fetch(`${e}/members/api/session`,{method:"DELETE"}).then(function(o){o.ok?window.location.replace(e):(a.addEventListener("click",r),a.classList.remove("loading"),a.classList.add("error"))})}a.addEventListener("click",r)}),Array.prototype.forEach.call(document.querySelectorAll("[data-members-cancel-subscription]"),function(a){let r=a.parentElement.querySelector("[data-members-error]");function i(o){a.removeEventListener("click",i),o.preventDefault(),a.classList.remove("error"),a.classList.add("loading");let s=a.dataset.membersCancelSubscription;return r&&(r.innerText=""),fetch(`${e}/members/api/session`,{credentials:"same-origin"}).then(function(l){return l.ok?l.text():null}).then(function(l){return fetch(`${e}/members/api/subscriptions/${s}/`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({identity:l,smart_cancel:!0})})}).then(function(l){l.ok?window.location.reload():(a.addEventListener("click",i),a.classList.remove("loading"),a.classList.add("error"),r&&(r.innerText="There was an error cancelling your subscription, please try again."))})}a.addEventListener("click",i)}),Array.prototype.forEach.call(document.querySelectorAll("[data-members-continue-subscription]"),function(a){let r=a.parentElement.querySelector("[data-members-error]");function i(o){a.removeEventListener("click",i),o.preventDefault(),a.classList.remove("error"),a.classList.add("loading");let s=a.dataset.membersContinueSubscription;return r&&(r.innerText=""),fetch(`${e}/members/api/session`,{credentials:"same-origin"}).then(function(l){return l.ok?l.text():null}).then(function(l){return fetch(`${e}/members/api/subscriptions/${s}/`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({identity:l,cancel_at_period_end:!1})})}).then(function(l){l.ok?window.location.reload():(a.addEventListener("click",i),a.classList.remove("loading"),a.classList.add("error"),r&&(r.innerText="There was an error continuing your subscription, please try again."))})}a.addEventListener("click",i)}))}var du={exports:{}};const a1={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console&&console[e]&&console[e].apply(console,t)}};class Ho{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,n)}init(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||a1,this.options=n,this.debug=n.debug}log(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return this.forward(n,"log","",!0)}warn(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return this.forward(n,"warn","",!0)}error(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return this.forward(n,"error","")}deprecate(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return this.forward(n,"warn","WARNING DEPRECATED: ",!0)}forward(t,n,a,r){return r&&!this.debug?null:(typeof t[0]=="string"&&(t[0]=`${a}${this.prefix} ${t[0]}`),this.logger[n](t))}create(t){return new Ho(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new Ho(this.logger,t)}}var dt=new Ho;class Vo{constructor(){this.observers={}}on(t,n){return t.split(" ").forEach(a=>{this.observers[a]||(this.observers[a]=new Map);const r=this.observers[a].get(n)||0;this.observers[a].set(n,r+1)}),this}off(t,n){if(this.observers[t]){if(!n){delete this.observers[t];return}this.observers[t].delete(n)}}emit(t){for(var n=arguments.length,a=new Array(n>1?n-1:0),r=1;r<n;r++)a[r-1]=arguments[r];this.observers[t]&&Array.from(this.observers[t].entries()).forEach(o=>{let[s,l]=o;for(let u=0;u<l;u++)s(...a)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(o=>{let[s,l]=o;for(let u=0;u<l;u++)s.apply(s,[t,...a])})}}function Mr(){let e,t;const n=new Promise((a,r)=>{e=a,t=r});return n.resolve=e,n.reject=t,n}function Rg(e){return e==null?"":""+e}function r1(e,t,n){e.forEach(a=>{t[a]&&(n[a]=t[a])})}const i1=/###/g;function Rr(e,t,n){function a(s){return s&&s.indexOf("###")>-1?s.replace(i1,"."):s}function r(){return!e||typeof e=="string"}const i=typeof t!="string"?t:t.split(".");let o=0;for(;o<i.length-1;){if(r())return{};const s=a(i[o]);!e[s]&&n&&(e[s]=new n),Object.prototype.hasOwnProperty.call(e,s)?e=e[s]:e={},++o}return r()?{}:{obj:e,k:a(i[o])}}function Fg(e,t,n){const{obj:a,k:r}=Rr(e,t,Object);if(a!==void 0||t.length===1){a[r]=n;return}let i=t[t.length-1],o=t.slice(0,t.length-1),s=Rr(e,o,Object);for(;s.obj===void 0&&o.length;)i=`${o[o.length-1]}.${i}`,o=o.slice(0,o.length-1),s=Rr(e,o,Object),s&&s.obj&&typeof s.obj[`${s.k}.${i}`]<"u"&&(s.obj=void 0);s.obj[`${s.k}.${i}`]=n}function o1(e,t,n,a){const{obj:r,k:i}=Rr(e,t,Object);r[i]=r[i]||[],a&&(r[i]=r[i].concat(n)),a||r[i].push(n)}function Wo(e,t){const{obj:n,k:a}=Rr(e,t);if(n)return n[a]}function s1(e,t,n){const a=Wo(e,n);return a!==void 0?a:Wo(t,n)}function Lg(e,t,n){for(const a in t)a!=="__proto__"&&a!=="constructor"&&(a in e?typeof e[a]=="string"||e[a]instanceof String||typeof t[a]=="string"||t[a]instanceof String?n&&(e[a]=t[a]):Lg(e[a],t[a],n):e[a]=t[a]);return e}function ka(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var l1={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function c1(e){return typeof e=="string"?e.replace(/[&<>"'\/]/g,t=>l1[t]):e}class u1{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const n=this.regExpMap.get(t);if(n!==void 0)return n;const a=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,a),this.regExpQueue.push(t),a}}const d1=[" ",",","?","!",";"],m1=new u1(20);function p1(e,t,n){t=t||"",n=n||"";const a=d1.filter(o=>t.indexOf(o)<0&&n.indexOf(o)<0);if(a.length===0)return!0;const r=m1.getRegExp(`(${a.map(o=>o==="?"?"\\?":o).join("|")})`);let i=!r.test(e);if(!i){const o=e.indexOf(n);o>0&&!r.test(e.substring(0,o))&&(i=!0)}return i}function mu(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!e)return;if(e[t])return e[t];const a=t.split(n);let r=e;for(let i=0;i<a.length;){if(!r||typeof r!="object")return;let o,s="";for(let l=i;l<a.length;++l)if(l!==i&&(s+=n),s+=a[l],o=r[s],o!==void 0){if(["string","number","boolean"].indexOf(typeof o)>-1&&l<a.length-1)continue;i+=l-i+1;break}r=o}return r}function qo(e){return e&&e.indexOf("_")>0?e.replace("_","-"):e}class Ug extends Vo{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}getResource(t,n,a){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const i=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,o=r.ignoreJSONStructure!==void 0?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let s;t.indexOf(".")>-1?s=t.split("."):(s=[t,n],a&&(Array.isArray(a)?s.push(...a):typeof a=="string"&&i?s.push(...a.split(i)):s.push(a)));const l=Wo(this.data,s);return!l&&!n&&!a&&t.indexOf(".")>-1&&(t=s[0],n=s[1],a=s.slice(2).join(".")),l||!o||typeof a!="string"?l:mu(this.data&&this.data[t]&&this.data[t][n],a,i)}addResource(t,n,a,r){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const o=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator;let s=[t,n];a&&(s=s.concat(o?a.split(o):a)),t.indexOf(".")>-1&&(s=t.split("."),r=n,n=s[1]),this.addNamespaces(n),Fg(this.data,s,r),i.silent||this.emit("added",t,n,a,r)}addResources(t,n,a){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const i in a)(typeof a[i]=="string"||Array.isArray(a[i]))&&this.addResource(t,n,i,a[i],{silent:!0});r.silent||this.emit("added",t,n,a)}addResourceBundle(t,n,a,r,i){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},s=[t,n];t.indexOf(".")>-1&&(s=t.split("."),r=a,a=n,n=s[1]),this.addNamespaces(n);let l=Wo(this.data,s)||{};o.skipCopy||(a=JSON.parse(JSON.stringify(a))),r?Lg(l,a,i):l={...l,...a},Fg(this.data,s,l),o.silent||this.emit("added",t,n,a)}removeResourceBundle(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}hasResourceBundle(t,n){return this.getResource(t,n)!==void 0}getResourceBundle(t,n){return n||(n=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(t,n)}:this.getResource(t,n)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const n=this.getDataByLanguage(t);return!!(n&&Object.keys(n)||[]).find(r=>n[r]&&Object.keys(n[r]).length>0)}toJSON(){return this.data}}var Yg={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,a,r){return e.forEach(i=>{this.processors[i]&&(t=this.processors[i].process(t,n,a,r))}),t}};const Og={};class Go extends Vo{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),r1(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=dt.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(t==null)return!1;const a=this.resolve(t,n);return a&&a.res!==void 0}extractFromKey(t,n){let a=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;a===void 0&&(a=":");const r=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let i=n.ns||this.options.defaultNS||[];const o=a&&t.indexOf(a)>-1,s=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!p1(t,a,r);if(o&&!s){const l=t.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:t,namespaces:i};const u=t.split(a);(a!==r||a===r&&this.options.ns.indexOf(u[0])>-1)&&(i=u.shift()),t=u.join(r)}return typeof i=="string"&&(i=[i]),{key:t,namespaces:i}}translate(t,n,a){if(typeof n!="object"&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),typeof n=="object"&&(n={...n}),n||(n={}),t==null)return"";Array.isArray(t)||(t=[String(t)]);const r=n.returnDetails!==void 0?n.returnDetails:this.options.returnDetails,i=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,{key:o,namespaces:s}=this.extractFromKey(t[t.length-1],n),l=s[s.length-1],u=n.lng||this.language,d=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&u.toLowerCase()==="cimode"){if(d){const w=n.nsSeparator||this.options.nsSeparator;return r?{res:`${l}${w}${o}`,usedKey:o,exactUsedKey:o,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:`${l}${w}${o}`}return r?{res:o,usedKey:o,exactUsedKey:o,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:o}const p=this.resolve(t,n);let m=p&&p.res;const f=p&&p.usedKey||o,y=p&&p.exactUsedKey||o,v=Object.prototype.toString.apply(m),h=["[object Number]","[object Function]","[object RegExp]"],g=n.joinArrays!==void 0?n.joinArrays:this.options.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject;if(b&&m&&(typeof m!="string"&&typeof m!="boolean"&&typeof m!="number")&&h.indexOf(v)<0&&!(typeof g=="string"&&Array.isArray(m))){if(!n.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const w=this.options.returnedObjectHandler?this.options.returnedObjectHandler(f,m,{...n,ns:s}):`key '${o} (${this.language})' returned an object instead of string.`;return r?(p.res=w,p.usedParams=this.getUsedParamsDetails(n),p):w}if(i){const w=Array.isArray(m),C=w?[]:{},S=w?y:f;for(const E in m)if(Object.prototype.hasOwnProperty.call(m,E)){const j=`${S}${i}${E}`;C[E]=this.translate(j,{...n,joinArrays:!1,ns:s}),C[E]===j&&(C[E]=m[E])}m=C}}else if(b&&typeof g=="string"&&Array.isArray(m))m=m.join(g),m&&(m=this.extendTranslation(m,t,n,a));else{let w=!1,C=!1;const S=n.count!==void 0&&typeof n.count!="string",E=Go.hasDefaultValue(n),j=S?this.pluralResolver.getSuffix(u,n.count,n):"",P=n.ordinal&&S?this.pluralResolver.getSuffix(u,n.count,{ordinal:!1}):"",M=S&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),me=M&&n[`defaultValue${this.options.pluralSeparator}zero`]||n[`defaultValue${j}`]||n[`defaultValue${P}`]||n.defaultValue;!this.isValidLookup(m)&&E&&(w=!0,m=me),this.isValidLookup(m)||(C=!0,m=o);const ee=(n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&C?void 0:m,mt=E&&me!==m&&this.options.updateMissing;if(C||w||mt){if(this.logger.log(mt?"updateKey":"missingKey",u,l,o,mt?me:m),i){const he=this.resolve(o,{...n,keySeparator:!1});he&&he.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let Me=[];const pt=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if(this.options.saveMissingTo==="fallback"&&pt&&pt[0])for(let he=0;he<pt.length;he++)Me.push(pt[he]);else this.options.saveMissingTo==="all"?Me=this.languageUtils.toResolveHierarchy(n.lng||this.language):Me.push(n.lng||this.language);const wa=(he,Xe,Sn)=>{const N=E&&Sn!==m?Sn:ee;this.options.missingKeyHandler?this.options.missingKeyHandler(he,l,Xe,N,mt,n):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(he,l,Xe,N,mt,n),this.emit("missingKey",he,l,Xe,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&S?Me.forEach(he=>{const Xe=this.pluralResolver.getSuffixes(he,n);M&&n[`defaultValue${this.options.pluralSeparator}zero`]&&Xe.indexOf(`${this.options.pluralSeparator}zero`)<0&&Xe.push(`${this.options.pluralSeparator}zero`),Xe.forEach(Sn=>{wa([he],o+Sn,n[`defaultValue${Sn}`]||me)})}):wa(Me,o,me))}m=this.extendTranslation(m,t,n,p,a),C&&m===o&&this.options.appendNamespaceToMissingKey&&(m=`${l}:${o}`),(C||w)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${o}`:o,w?m:void 0):m=this.options.parseMissingKeyHandler(m))}return r?(p.res=m,p.usedParams=this.getUsedParamsDetails(n),p):m}extendTranslation(t,n,a,r,i){var o=this;if(this.i18nFormat&&this.i18nFormat.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...a},a.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!a.skipInterpolation){a.interpolation&&this.interpolator.init({...a,interpolation:{...this.options.interpolation,...a.interpolation}});const u=typeof t=="string"&&(a&&a.interpolation&&a.interpolation.skipOnVariables!==void 0?a.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let d;if(u){const m=t.match(this.interpolator.nestingRegexp);d=m&&m.length}let p=a.replace&&typeof a.replace!="string"?a.replace:a;if(this.options.interpolation.defaultVariables&&(p={...this.options.interpolation.defaultVariables,...p}),t=this.interpolator.interpolate(t,p,a.lng||this.language,a),u){const m=t.match(this.interpolator.nestingRegexp),f=m&&m.length;d<f&&(a.nest=!1)}!a.lng&&this.options.compatibilityAPI!=="v1"&&r&&r.res&&(a.lng=r.usedLng),a.nest!==!1&&(t=this.interpolator.nest(t,function(){for(var m=arguments.length,f=new Array(m),y=0;y<m;y++)f[y]=arguments[y];return i&&i[0]===f[0]&&!a.context?(o.logger.warn(`It seems you are nesting recursively key: ${f[0]} in key: ${n[0]}`),null):o.translate(...f,n)},a)),a.interpolation&&this.interpolator.reset()}const s=a.postProcess||this.options.postProcess,l=typeof s=="string"?[s]:s;return t!=null&&l&&l.length&&a.applyPostProcessor!==!1&&(t=Yg.handle(l,t,n,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(a)},...a}:a,this)),t}resolve(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a,r,i,o,s;return typeof t=="string"&&(t=[t]),t.forEach(l=>{if(this.isValidLookup(a))return;const u=this.extractFromKey(l,n),d=u.key;r=d;let p=u.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const m=n.count!==void 0&&typeof n.count!="string",f=m&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),y=n.context!==void 0&&(typeof n.context=="string"||typeof n.context=="number")&&n.context!=="",v=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);p.forEach(h=>{this.isValidLookup(a)||(s=h,!Og[`${v[0]}-${h}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(s)&&(Og[`${v[0]}-${h}`]=!0,this.logger.warn(`key "${r}" for languages "${v.join(", ")}" won't get resolved as namespace "${s}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),v.forEach(g=>{if(this.isValidLookup(a))return;o=g;const b=[d];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(b,d,g,h,n);else{let w;m&&(w=this.pluralResolver.getSuffix(g,n.count,n));const C=`${this.options.pluralSeparator}zero`,S=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(m&&(b.push(d+w),n.ordinal&&w.indexOf(S)===0&&b.push(d+w.replace(S,this.options.pluralSeparator)),f&&b.push(d+C)),y){const E=`${d}${this.options.contextSeparator}${n.context}`;b.push(E),m&&(b.push(E+w),n.ordinal&&w.indexOf(S)===0&&b.push(E+w.replace(S,this.options.pluralSeparator)),f&&b.push(E+C))}}let x;for(;x=b.pop();)this.isValidLookup(a)||(i=x,a=this.getResource(g,h,x,n))}))})}),{res:a,usedKey:r,exactUsedKey:i,usedLng:o,usedNS:s}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,n,a){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,a,r):this.resourceStore.getResource(t,n,a,r)}getUsedParamsDetails(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],a=t.replace&&typeof t.replace!="string";let r=a?t.replace:t;if(a&&typeof t.count<"u"&&(r.count=t.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!a){r={...r};for(const i of n)delete r[i]}return r}static hasDefaultValue(t){const n="defaultValue";for(const a in t)if(Object.prototype.hasOwnProperty.call(t,a)&&n===a.substring(0,n.length)&&t[a]!==void 0)return!0;return!1}}function pu(e){return e.charAt(0).toUpperCase()+e.slice(1)}class Bg{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=dt.create("languageUtils")}getScriptPartFromCode(t){if(t=qo(t),!t||t.indexOf("-")<0)return null;const n=t.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(t){if(t=qo(t),!t||t.indexOf("-")<0)return t;const n=t.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(t){if(typeof t=="string"&&t.indexOf("-")>-1){const n=["hans","hant","latn","cyrl","cans","mong","arab"];let a=t.split("-");return this.options.lowerCaseLng?a=a.map(r=>r.toLowerCase()):a.length===2?(a[0]=a[0].toLowerCase(),a[1]=a[1].toUpperCase(),n.indexOf(a[1].toLowerCase())>-1&&(a[1]=pu(a[1].toLowerCase()))):a.length===3&&(a[0]=a[0].toLowerCase(),a[1].length===2&&(a[1]=a[1].toUpperCase()),a[0]!=="sgn"&&a[2].length===2&&(a[2]=a[2].toUpperCase()),n.indexOf(a[1].toLowerCase())>-1&&(a[1]=pu(a[1].toLowerCase())),n.indexOf(a[2].toLowerCase())>-1&&(a[2]=pu(a[2].toLowerCase()))),a.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let n;return t.forEach(a=>{if(n)return;const r=this.formatLanguageCode(a);(!this.options.supportedLngs||this.isSupportedCode(r))&&(n=r)}),!n&&this.options.supportedLngs&&t.forEach(a=>{if(n)return;const r=this.getLanguagePartFromCode(a);if(this.isSupportedCode(r))return n=r;n=this.options.supportedLngs.find(i=>{if(i===r)return i;if(!(i.indexOf("-")<0&&r.indexOf("-")<0)&&(i.indexOf("-")>0&&r.indexOf("-")<0&&i.substring(0,i.indexOf("-"))===r||i.indexOf(r)===0&&r.length>1))return i})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(t,n){if(!t)return[];if(typeof t=="function"&&(t=t(n)),typeof t=="string"&&(t=[t]),Array.isArray(t))return t;if(!n)return t.default||[];let a=t[n];return a||(a=t[this.getScriptPartFromCode(n)]),a||(a=t[this.formatLanguageCode(n)]),a||(a=t[this.getLanguagePartFromCode(n)]),a||(a=t.default),a||[]}toResolveHierarchy(t,n){const a=this.getFallbackCodes(n||this.options.fallbackLng||[],t),r=[],i=o=>{o&&(this.isSupportedCode(o)?r.push(o):this.logger.warn(`rejecting language code not found in supportedLngs: ${o}`))};return typeof t=="string"&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&i(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&i(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&i(this.getLanguagePartFromCode(t))):typeof t=="string"&&i(this.formatLanguageCode(t)),a.forEach(o=>{r.indexOf(o)<0&&i(this.formatLanguageCode(o))}),r}}let h1=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],f1={1:function(e){return+(e>1)},2:function(e){return+(e!=1)},3:function(e){return 0},4:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2},5:function(e){return e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},6:function(e){return e==1?0:e>=2&&e<=4?1:2},7:function(e){return e==1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2},8:function(e){return e==1?0:e==2?1:e!=8&&e!=11?2:3},9:function(e){return+(e>=2)},10:function(e){return e==1?0:e==2?1:e<7?2:e<11?3:4},11:function(e){return e==1||e==11?0:e==2||e==12?1:e>2&&e<20?2:3},12:function(e){return+(e%10!=1||e%100==11)},13:function(e){return+(e!==0)},14:function(e){return e==1?0:e==2?1:e==3?2:3},15:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2},16:function(e){return e%10==1&&e%100!=11?0:e!==0?1:2},17:function(e){return e==1||e%10==1&&e%100!=11?0:1},18:function(e){return e==0?0:e==1?1:2},19:function(e){return e==1?0:e==0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3},20:function(e){return e==1?0:e==0||e%100>0&&e%100<20?1:2},21:function(e){return e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0},22:function(e){return e==1?0:e==2?1:(e<0||e>10)&&e%10==0?2:3}};const g1=["v1","v2","v3"],b1=["v4"],Hg={zero:0,one:1,two:2,few:3,many:4,other:5};function y1(){const e={};return h1.forEach(t=>{t.lngs.forEach(n=>{e[n]={numbers:t.nr,plurals:f1[t.fc]}})}),e}class k1{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=n,this.logger=dt.create("pluralResolver"),(!this.options.compatibilityJSON||b1.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=y1()}addRule(t,n){this.rules[t]=n}getRule(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(qo(t==="dev"?"en":t),{type:n.ordinal?"ordinal":"cardinal"})}catch{return}return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}needsPlural(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const a=this.getRule(t,n);return this.shouldUseIntlApi()?a&&a.resolvedOptions().pluralCategories.length>1:a&&a.numbers.length>1}getPluralFormsOfKey(t,n){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,a).map(r=>`${n}${r}`)}getSuffixes(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const a=this.getRule(t,n);return a?this.shouldUseIntlApi()?a.resolvedOptions().pluralCategories.sort((r,i)=>Hg[r]-Hg[i]).map(r=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r}`):a.numbers.map(r=>this.getSuffix(t,r,n)):[]}getSuffix(t,n){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=this.getRule(t,a);return r?this.shouldUseIntlApi()?`${this.options.prepend}${a.ordinal?`ordinal${this.options.prepend}`:""}${r.select(n)}`:this.getSuffixRetroCompatible(r,n):(this.logger.warn(`no plural rule found for: ${t}`),"")}getSuffixRetroCompatible(t,n){const a=t.noAbs?t.plurals(n):t.plurals(Math.abs(n));let r=t.numbers[a];this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1&&(r===2?r="plural":r===1&&(r=""));const i=()=>this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString();return this.options.compatibilityJSON==="v1"?r===1?"":typeof r=="number"?`_plural_${r.toString()}`:i():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1?i():this.options.prepend&&a.toString()?this.options.prepend+a.toString():a.toString()}shouldUseIntlApi(){return!g1.includes(this.options.compatibilityJSON)}}function Vg(e,t,n){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=s1(e,t,n);return!i&&r&&typeof n=="string"&&(i=mu(e,n,a),i===void 0&&(i=mu(t,n,a))),i}class v1{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=dt.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||(n=>n),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});const{escape:n,escapeValue:a,useRawValueToEscape:r,prefix:i,prefixEscaped:o,suffix:s,suffixEscaped:l,formatSeparator:u,unescapeSuffix:d,unescapePrefix:p,nestingPrefix:m,nestingPrefixEscaped:f,nestingSuffix:y,nestingSuffixEscaped:v,nestingOptionsSeparator:h,maxReplaces:g,alwaysFormat:b}=t.interpolation;this.escape=n!==void 0?n:c1,this.escapeValue=a!==void 0?a:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=i?ka(i):o||"{{",this.suffix=s?ka(s):l||"}}",this.formatSeparator=u||",",this.unescapePrefix=d?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":d||"",this.nestingPrefix=m?ka(m):f||ka("$t("),this.nestingSuffix=y?ka(y):v||ka(")"),this.nestingOptionsSeparator=h||",",this.maxReplaces=g||1e3,this.alwaysFormat=b!==void 0?b:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(n,a)=>n&&n.source===a?(n.lastIndex=0,n):new RegExp(a,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,n,a,r){let i,o,s;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function u(y){return y.replace(/\$/g,"$$$$")}const d=y=>{if(y.indexOf(this.formatSeparator)<0){const b=Vg(n,l,y,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(b,void 0,a,{...r,...n,interpolationkey:y}):b}const v=y.split(this.formatSeparator),h=v.shift().trim(),g=v.join(this.formatSeparator).trim();return this.format(Vg(n,l,h,this.options.keySeparator,this.options.ignoreJSONStructure),g,a,{...r,...n,interpolationkey:h})};this.resetRegExp();const p=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,m=r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:y=>u(y)},{regex:this.regexp,safeValue:y=>this.escapeValue?u(this.escape(y)):u(y)}].forEach(y=>{for(s=0;i=y.regex.exec(t);){const v=i[1].trim();if(o=d(v),o===void 0)if(typeof p=="function"){const g=p(t,i,r);o=typeof g=="string"?g:""}else if(r&&Object.prototype.hasOwnProperty.call(r,v))o="";else if(m){o=i[0];continue}else this.logger.warn(`missed to pass in variable ${v} for interpolating ${t}`),o="";else typeof o!="string"&&!this.useRawValueToEscape&&(o=Rg(o));const h=y.safeValue(o);if(t=t.replace(i[0],h),m?(y.regex.lastIndex+=o.length,y.regex.lastIndex-=i[0].length):y.regex.lastIndex=0,s++,s>=this.maxReplaces)break}}),t}nest(t,n){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r,i,o;function s(l,u){const d=this.nestingOptionsSeparator;if(l.indexOf(d)<0)return l;const p=l.split(new RegExp(`${d}[ ]*{`));let m=`{${p[1]}`;l=p[0],m=this.interpolate(m,o);const f=m.match(/'/g),y=m.match(/"/g);(f&&f.length%2===0&&!y||y.length%2!==0)&&(m=m.replace(/'/g,'"'));try{o=JSON.parse(m),u&&(o={...u,...o})}catch(v){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,v),`${l}${d}${m}`}return o.defaultValue&&o.defaultValue.indexOf(this.prefix)>-1&&delete o.defaultValue,l}for(;r=this.nestingRegexp.exec(t);){let l=[];o={...a},o=o.replace&&typeof o.replace!="string"?o.replace:o,o.applyPostProcessor=!1,delete o.defaultValue;let u=!1;if(r[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(r[1])){const d=r[1].split(this.formatSeparator).map(p=>p.trim());r[1]=d.shift(),l=d,u=!0}if(i=n(s.call(this,r[1].trim(),o),o),i&&r[0]===t&&typeof i!="string")return i;typeof i!="string"&&(i=Rg(i)),i||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${t}`),i=""),u&&(i=l.reduce((d,p)=>this.format(d,p,a.lng,{...a,interpolationkey:r[1].trim()}),i.trim())),t=t.replace(r[0],i),this.regexp.lastIndex=0}return t}}function w1(e){let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const a=e.split("(");t=a[0].toLowerCase().trim();const r=a[1].substring(0,a[1].length-1);t==="currency"&&r.indexOf(":")<0?n.currency||(n.currency=r.trim()):t==="relativetime"&&r.indexOf(":")<0?n.range||(n.range=r.trim()):r.split(";").forEach(o=>{if(o){const[s,...l]=o.split(":"),u=l.join(":").trim().replace(/^'+|'+$/g,""),d=s.trim();n[d]||(n[d]=u),u==="false"&&(n[d]=!1),u==="true"&&(n[d]=!0),isNaN(u)||(n[d]=parseInt(u,10))}})}return{formatName:t,formatOptions:n}}function va(e){const t={};return function(a,r,i){const o=r+JSON.stringify(i);let s=t[o];return s||(s=e(qo(r),i),t[o]=s),s(a)}}class x1{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=dt.create("formatter"),this.options=t,this.formats={number:va((n,a)=>{const r=new Intl.NumberFormat(n,{...a});return i=>r.format(i)}),currency:va((n,a)=>{const r=new Intl.NumberFormat(n,{...a,style:"currency"});return i=>r.format(i)}),datetime:va((n,a)=>{const r=new Intl.DateTimeFormat(n,{...a});return i=>r.format(i)}),relativetime:va((n,a)=>{const r=new Intl.RelativeTimeFormat(n,{...a});return i=>r.format(i,a.range||"day")}),list:va((n,a)=>{const r=new Intl.ListFormat(n,{...a});return i=>r.format(i)})},this.init(t)}init(t){const a=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=a.formatSeparator?a.formatSeparator:a.formatSeparator||","}add(t,n){this.formats[t.toLowerCase().trim()]=n}addCached(t,n){this.formats[t.toLowerCase().trim()]=va(n)}format(t,n,a){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return n.split(this.formatSeparator).reduce((s,l)=>{const{formatName:u,formatOptions:d}=w1(l);if(this.formats[u]){let p=s;try{const m=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},f=m.locale||m.lng||r.locale||r.lng||a;p=this.formats[u](s,f,{...d,...r,...m})}catch(m){this.logger.warn(m)}return p}else this.logger.warn(`there was no format function for ${u}`);return s},t)}}function S1(e,t){e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)}class E1 extends Vo{constructor(t,n,a){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=n,this.services=a,this.languageUtils=a.languageUtils,this.options=r,this.logger=dt.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(a,r.backend,r)}queueLoad(t,n,a,r){const i={},o={},s={},l={};return t.forEach(u=>{let d=!0;n.forEach(p=>{const m=`${u}|${p}`;!a.reload&&this.store.hasResourceBundle(u,p)?this.state[m]=2:this.state[m]<0||(this.state[m]===1?o[m]===void 0&&(o[m]=!0):(this.state[m]=1,d=!1,o[m]===void 0&&(o[m]=!0),i[m]===void 0&&(i[m]=!0),l[p]===void 0&&(l[p]=!0)))}),d||(s[u]=!0)}),(Object.keys(i).length||Object.keys(o).length)&&this.queue.push({pending:o,pendingCount:Object.keys(o).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(i),pending:Object.keys(o),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}loaded(t,n,a){const r=t.split("|"),i=r[0],o=r[1];n&&this.emit("failedLoading",i,o,n),a&&this.store.addResourceBundle(i,o,a,void 0,void 0,{skipCopy:!0}),this.state[t]=n?-1:2;const s={};this.queue.forEach(l=>{o1(l.loaded,[i],o),S1(l,t),n&&l.errors.push(n),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(u=>{s[u]||(s[u]={});const d=l.loaded[u];d.length&&d.forEach(p=>{s[u][p]===void 0&&(s[u][p]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(l=>!l.done)}read(t,n,a){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,o=arguments.length>5?arguments[5]:void 0;if(!t.length)return o(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:n,fcName:a,tried:r,wait:i,callback:o});return}this.readingCalls++;const s=(u,d)=>{if(this.readingCalls--,this.waitingReads.length>0){const p=this.waitingReads.shift();this.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(u&&d&&r<this.maxRetries){setTimeout(()=>{this.read.call(this,t,n,a,r+1,i*2,o)},i);return}o(u,d)},l=this.backend[a].bind(this.backend);if(l.length===2){try{const u=l(t,n);u&&typeof u.then=="function"?u.then(d=>s(null,d)).catch(s):s(null,u)}catch(u){s(u)}return}return l(t,n,s)}prepareLoading(t,n){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();typeof t=="string"&&(t=this.languageUtils.toResolveHierarchy(t)),typeof n=="string"&&(n=[n]);const i=this.queueLoad(t,n,a,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach(o=>{this.loadOne(o)})}load(t,n,a){this.prepareLoading(t,n,{},a)}reload(t,n,a){this.prepareLoading(t,n,{reload:!0},a)}loadOne(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const a=t.split("|"),r=a[0],i=a[1];this.read(r,i,"read",void 0,void 0,(o,s)=>{o&&this.logger.warn(`${n}loading namespace ${i} for language ${r} failed`,o),!o&&s&&this.logger.log(`${n}loaded namespace ${i} for language ${r}`,s),this.loaded(t,o,s)})}saveMissing(t,n,a,r,i){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},s=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(n)){this.logger.warn(`did not save key "${a}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(a==null||a==="")){if(this.backend&&this.backend.create){const l={...o,isUpdate:i},u=this.backend.create.bind(this.backend);if(u.length<6)try{let d;u.length===5?d=u(t,n,a,r,l):d=u(t,n,a,r),d&&typeof d.then=="function"?d.then(p=>s(null,p)).catch(s):s(null,d)}catch(d){s(d)}else u(t,n,a,r,s,l)}!t||!t[0]||this.store.addResource(t[0],n,a,r)}}}function Wg(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){let n={};if(typeof t[1]=="object"&&(n=t[1]),typeof t[1]=="string"&&(n.defaultValue=t[1]),typeof t[2]=="string"&&(n.tDescription=t[2]),typeof t[2]=="object"||typeof t[3]=="object"){const a=t[3]||t[2];Object.keys(a).forEach(r=>{n[r]=a[r]})}return n},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function qg(e){return typeof e.ns=="string"&&(e.ns=[e.ns]),typeof e.fallbackLng=="string"&&(e.fallbackLng=[e.fallbackLng]),typeof e.fallbackNS=="string"&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function Ko(){}function C1(e){Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(n=>{typeof e[n]=="function"&&(e[n]=e[n].bind(e))})}class Fr extends Vo{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(super(),this.options=qg(t),this.services={},this.logger=dt,this.modules={external:[]},C1(this),n&&!this.isInitialized&&!t.isClone){if(!this.options.initImmediate)return this.init(t,n),this;setTimeout(()=>{this.init(t,n)},0)}}init(){var t=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof n=="function"&&(a=n,n={}),!n.defaultNS&&n.defaultNS!==!1&&n.ns&&(typeof n.ns=="string"?n.defaultNS=n.ns:n.ns.indexOf("translation")<0&&(n.defaultNS=n.ns[0]));const r=Wg();this.options={...r,...this.options,...qg(n)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...r.interpolation,...this.options.interpolation}),n.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=n.keySeparator),n.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=n.nsSeparator);function i(d){return d?typeof d=="function"?new d:d:null}if(!this.options.isClone){this.modules.logger?dt.init(i(this.modules.logger),this.options):dt.init(null,this.options);let d;this.modules.formatter?d=this.modules.formatter:typeof Intl<"u"&&(d=x1);const p=new Bg(this.options);this.store=new Ug(this.options.resources,this.options);const m=this.services;m.logger=dt,m.resourceStore=this.store,m.languageUtils=p,m.pluralResolver=new k1(p,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),d&&(!this.options.interpolation.format||this.options.interpolation.format===r.interpolation.format)&&(m.formatter=i(d),m.formatter.init(m,this.options),this.options.interpolation.format=m.formatter.format.bind(m.formatter)),m.interpolator=new v1(this.options),m.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},m.backendConnector=new E1(i(this.modules.backend),m.resourceStore,m,this.options),m.backendConnector.on("*",function(f){for(var y=arguments.length,v=new Array(y>1?y-1:0),h=1;h<y;h++)v[h-1]=arguments[h];t.emit(f,...v)}),this.modules.languageDetector&&(m.languageDetector=i(this.modules.languageDetector),m.languageDetector.init&&m.languageDetector.init(m,this.options.detection,this.options)),this.modules.i18nFormat&&(m.i18nFormat=i(this.modules.i18nFormat),m.i18nFormat.init&&m.i18nFormat.init(this)),this.translator=new Go(this.services,this.options),this.translator.on("*",function(f){for(var y=arguments.length,v=new Array(y>1?y-1:0),h=1;h<y;h++)v[h-1]=arguments[h];t.emit(f,...v)}),this.modules.external.forEach(f=>{f.init&&f.init(this)})}if(this.format=this.options.interpolation.format,a||(a=Ko),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const d=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);d.length>0&&d[0]!=="dev"&&(this.options.lng=d[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(d=>{this[d]=function(){return t.store[d](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(d=>{this[d]=function(){return t.store[d](...arguments),t}});const l=Mr(),u=()=>{const d=(p,m)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(m),a(p,m)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return d(null,this.t.bind(this));this.changeLanguage(this.options.lng,d)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),l}loadResources(t){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ko;const r=typeof t=="string"?t:this.language;if(typeof t=="function"&&(a=t),!this.options.resources||this.options.partialBundledLanguages){if(r&&r.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return a();const i=[],o=s=>{if(!s||s==="cimode")return;this.services.languageUtils.toResolveHierarchy(s).forEach(u=>{u!=="cimode"&&i.indexOf(u)<0&&i.push(u)})};r?o(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>o(l)),this.options.preload&&this.options.preload.forEach(s=>o(s)),this.services.backendConnector.load(i,this.options.ns,s=>{!s&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),a(s)})}else a(null)}reloadResources(t,n,a){const r=Mr();return t||(t=this.languages),n||(n=this.options.ns),a||(a=Ko),this.services.backendConnector.reload(t,n,i=>{r.resolve(),a(i)}),r}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&Yg.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1))for(let n=0;n<this.languages.length;n++){const a=this.languages[n];if(!(["cimode","dev"].indexOf(a)>-1)&&this.store.hasLanguageSomeTranslations(a)){this.resolvedLanguage=a;break}}}changeLanguage(t,n){var a=this;this.isLanguageChangingTo=t;const r=Mr();this.emit("languageChanging",t);const i=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},o=(l,u)=>{u?(i(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit("languageChanged",u),this.logger.log("languageChanged",u)):this.isLanguageChangingTo=void 0,r.resolve(function(){return a.t(...arguments)}),n&&n(l,function(){return a.t(...arguments)})},s=l=>{!t&&!l&&this.services.languageDetector&&(l=[]);const u=typeof l=="string"?l:this.services.languageUtils.getBestMatchFromCodes(l);u&&(this.language||i(u),this.translator.language||this.translator.changeLanguage(u),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(u)),this.loadResources(u,d=>{o(d,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?s(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(s):this.services.languageDetector.detect(s):s(t),r}getFixedT(t,n,a){var r=this;const i=function(o,s){let l;if(typeof s!="object"){for(var u=arguments.length,d=new Array(u>2?u-2:0),p=2;p<u;p++)d[p-2]=arguments[p];l=r.options.overloadTranslationOptionHandler([o,s].concat(d))}else l={...s};l.lng=l.lng||i.lng,l.lngs=l.lngs||i.lngs,l.ns=l.ns||i.ns,l.keyPrefix=l.keyPrefix||a||i.keyPrefix;const m=r.options.keySeparator||".";let f;return l.keyPrefix&&Array.isArray(o)?f=o.map(y=>`${l.keyPrefix}${m}${y}`):f=l.keyPrefix?`${l.keyPrefix}${m}${o}`:o,r.t(f,l)};return typeof t=="string"?i.lng=t:i.lngs=t,i.ns=n,i.keyPrefix=a,i}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const a=n.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(a.toLowerCase()==="cimode")return!0;const o=(s,l)=>{const u=this.services.backendConnector.state[`${s}|${l}`];return u===-1||u===2};if(n.precheck){const s=n.precheck(this,o);if(s!==void 0)return s}return!!(this.hasResourceBundle(a,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||o(a,t)&&(!r||o(i,t)))}loadNamespaces(t,n){const a=Mr();return this.options.ns?(typeof t=="string"&&(t=[t]),t.forEach(r=>{this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}),this.loadResources(r=>{a.resolve(),n&&n(r)}),a):(n&&n(),Promise.resolve())}loadLanguages(t,n){const a=Mr();typeof t=="string"&&(t=[t]);const r=this.options.preload||[],i=t.filter(o=>r.indexOf(o)<0&&this.services.languageUtils.isSupportedCode(o));return i.length?(this.options.preload=r.concat(i),this.loadResources(o=>{a.resolve(),n&&n(o)}),a):(n&&n(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!t)return"rtl";const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],a=this.services&&this.services.languageUtils||new Bg(Wg());return n.indexOf(a.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new Fr(t,n)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ko;const a=t.forkResourceStore;a&&delete t.forkResourceStore;const r={...this.options,...t,isClone:!0},i=new Fr(r);return(t.debug!==void 0||t.prefix!==void 0)&&(i.logger=i.logger.clone(t)),["store","services","language"].forEach(s=>{i[s]=this[s]}),i.services={...this.services},i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},a&&(i.store=new Ug(this.store.data,r),i.services.resourceStore=i.store),i.translator=new Go(i.services,r),i.translator.on("*",function(s){for(var l=arguments.length,u=new Array(l>1?l-1:0),d=1;d<l;d++)u[d-1]=arguments[d];i.emit(s,...u)}),i.init(r,n),i.translator.options=r,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Gg=Fr.createInstance();Gg.createInstance=Fr.createInstance;var j1=Gg;const $1=j1,Kg=["af","bg","ca","cs","da","de","en","eo","es","fa","fi","fr","gd","hr","hu","id","is","it","ja","ko","lt","mn","ms","nl","nn","no","pl","pt","pt-BR","ro","ru","si","sk","sl","sq","sr","sv","tr","uk","uz","vi","zh","zh-Hant"];du.exports=(e="en",t="portal")=>{const n=$1.createInstance();return n.init({lng:e,nsSeparator:!1,keySeparator:!1,returnEmptyString:!1,fallbackLng:!1,ns:t,defaultNS:t,resources:Kg.reduce((a,r)=>{const i=gS("/ghost/i18n/lib")(`../locales/${r}/${t}.json`);return a[r]={[t]:{...i,...i.default&&typeof i.default=="object"?i.default:{}}},a},{})}),n},du.exports.SUPPORTED_LOCALES=Kg;var P1=du.exports,N1=P1;const T1=Ne(N1),I1={showPopup:!0,site:ya,member:Bo.free,page:"accountEmail",...CC(),pageData:_g};function D1({site:e,children:t}){const{portal_sentry:n}=e||{};return n&&n.dsn?c.jsx(Rc,{children:t}):c.jsx(c.Fragment,{children:t})}class z1 extends L.Component{constructor(t){super(t),this.setupCustomTriggerButton(t),this.state={site:null,member:null,page:"loading",showPopup:!1,action:"init:running",initStatus:"running",lastPage:null,customSiteUrl:t.customSiteUrl}}componentDidMount(){this.initSetup()}componentDidUpdate(t,n){var a,r,i;if(n.showPopup!==this.state.showPopup){this.handleCustomTriggerClassUpdate();try{this.state.showPopup?(this.bodyScroll=(i=(r=(a=window.document)==null?void 0:a.body)==null?void 0:r.style)==null?void 0:i.overflow,window.document.body.style.overflow="hidden"):window.document.body.style.overflow=this.bodyScroll||""}catch{}}if(this.state.initStatus==="success"&&n.initStatus!==this.state.initStatus){const{siteUrl:o}=this.props,s=this.getContextFromState();this.sendPortalReadyEvent(),n1({siteUrl:o,site:s.site,member:s.member})}}componentWillUnmount(){clearTimeout(this.timeoutId),this.customTriggerButtons&&this.customTriggerButtons.forEach(t=>{t.removeEventListener("click",this.clickHandler)}),window.removeEventListener("hashchange",this.hashHandler,!1)}sendPortalReadyEvent(){window.self!==window.parent&&window.parent.postMessage({type:"portal-ready",payload:{}},"*")}setupCustomTriggerButton(){this.clickHandler=a=>{a.preventDefault();const r=a.currentTarget,i=r&&r.dataset.portal,{page:o,pageQuery:s,pageData:l}=this.getPageFromLinkPath(i)||{};this.state.initStatus==="success"&&(s&&s!=="free"?this.handleSignupQuery({site:this.state.site,pageQuery:s}):this.dispatchAction("openPopup",{page:o,pageQuery:s,pageData:l}))};const t="[data-portal]",n="gh-portal-close";this.customTriggerButtons=document.querySelectorAll(t)||[],this.customTriggerButtons.forEach(a=>{a.classList.add(n),a.removeEventListener("click",this.clickHandler),a.addEventListener("click",this.clickHandler)})}handleCustomTriggerClassUpdate(){var a;const t="gh-portal-open",n="gh-portal-close";(a=this.customTriggerButtons)==null||a.forEach(r=>{const i=this.state.showPopup?t:n,o=this.state.showPopup?n:t;r.classList.add(i),r.classList.remove(o)})}async initSetup(){try{const{site:t,member:n,page:a,showPopup:r,popupNotification:i,lastPage:o,pageQuery:s,pageData:l}=await this.fetchData(),u=this.props.siteI18nEnabled?t.locale:"en",d=T1(u,"portal"),p={site:t,member:n,page:a,lastPage:o,pageQuery:s,showPopup:r,pageData:l,popupNotification:i,t:d.t,action:"init:success",initStatus:"success"};if(this.handleSignupQuery({site:t,pageQuery:s,member:n}),this.setState(p),this.hashHandler=()=>{this.updateStateForPreviewLinks()},window.addEventListener("hashchange",this.hashHandler,!1),!n){const m=document.querySelectorAll("[data-lexical-signup-form]");m.length>0&&m.forEach(f=>{f.style.display=""})}this.setupRecommendationButtons()}catch(t){console.error("[Portal] Failed to initialize:",t),this.setState({action:"init:failed",initStatus:"failed"})}}async fetchData(){const{site:t,member:n}=await this.fetchApiData(),{site:a,...r}=this.fetchDevData(),{site:i,...o}=this.fetchLinkData(t),{site:s,...l}=this.fetchPreviewData(),{site:u,...d}=this.fetchNotificationData();return{member:n,page:"",site:{...t,...i,...s,...u,...a,plans:{...(a||{}).plans,...(t||{}).plans,...(s||{}).plans}},...r,...o,...d,...l}}fetchDevData(){return q(["dev"])&&!this.state.customSiteUrl?I1:q(["test"])?{showPopup:this.props.showPopup!==void 0?this.props.showPopup:!0}:{}}fetchOfferQueryStrData(t=""){const n=new URLSearchParams(t),a={};for(let r of n.entries()){const i=r[0],o=decodeURIComponent(r[1]);i==="name"?a.name=o||"":i==="code"?a.code=o||"":i==="display_title"?a.display_title=o||"":i==="display_description"?a.display_description=o||"":i==="type"?a.type=o||"":i==="cadence"?a.cadence=o||"":i==="duration"?a.duration=o||"":i==="duration_in_months"&&!isNaN(Number(o))?a.duration_in_months=Number(o):i==="amount"&&!isNaN(Number(o))?a.amount=Number(o):i==="currency"?a.currency=o||"":i==="status"?a.status=o||"":i==="tier_id"&&(a.tier={id:o||_g.tier.id})}return{page:"offer",pageData:a}}fetchQueryStrData(t=""){const n=new URLSearchParams(t),a={site:{plans:{}}},r=[];let i,o=null,s,l,u;for(let d of n.entries()){const p=d[0],m=decodeURIComponent(d[1]);if(p==="button")a.site.portal_button=JSON.parse(m);else if(p==="name")a.site.portal_name=JSON.parse(m);else if(p==="isFree"&&JSON.parse(m))r.push("free");else if(p==="isMonthly"&&JSON.parse(m))r.push("monthly");else if(p==="isYearly"&&JSON.parse(m))r.push("yearly");else if(p==="portalPrices")i=m?m.split(","):[];else if(p==="portalProducts")o=m?m.split(","):[];else if(p==="page"&&m)a.page=m;else if(p==="accentColor"&&(m===""||m))a.site.accent_color=m;else if(p==="buttonIcon"&&m)a.site.portal_button_icon=m;else if(p==="signupButtonText")a.site.portal_button_signup_text=m||"";else if(p==="signupTermsHtml")a.site.portal_signup_terms_html=m||"";else if(p==="signupCheckboxRequired")a.site.portal_signup_checkbox_required=JSON.parse(m);else if(p==="buttonStyle"&&m)a.site.portal_button_style=m;else if(p==="monthlyPrice"&&!isNaN(Number(m)))a.site.plans.monthly=Number(m),s=Number(m);else if(p==="yearlyPrice"&&!isNaN(Number(m)))a.site.plans.yearly=Number(m),l=Number(m);else if(p==="currency"&&m){const f=m.toUpperCase();a.site.plans.currency=f,a.site.plans.currency_symbol=de(f),u=f}else p==="disableBackground"?a.site.disableBackground=JSON.parse(m):p==="allowSelfSignup"?a.site.allow_self_signup=JSON.parse(m):p==="membersSignupAccess"&&m?a.site.members_signup_access=m:p==="portalDefaultPlan"&&m&&(a.site.portal_default_plan=m)}return a.site.portal_plans=r,a.site.portal_products=o,i?a.site.portal_plans=i:s&&l&&u&&(a.site.prices=[{id:"monthly",stripe_price_id:"dummy_stripe_monthly",stripe_product_id:"dummy_stripe_product",active:1,nickname:"Monthly",currency:u,amount:s,type:"recurring",interval:"month"},{id:"yearly",stripe_price_id:"dummy_stripe_yearly",stripe_product_id:"dummy_stripe_product",active:1,nickname:"Yearly",currency:u,amount:l,type:"recurring",interval:"year"}]),a}fetchNotificationData(){const{type:t,status:n,duration:a,autoHide:r,closeable:i}=Lf({billingOnly:!0})||{};return["stripe:billing-update"].includes(t)?n==="success"?{showPopup:!0,popupNotification:J({type:t,status:n,duration:a,closeable:i,autoHide:r,state:this.state,message:n==="success"?"Billing info updated successfully":""})}:{showPopup:!0}:{}}fetchLinkData(t){const n=new URLSearchParams(window.location.search);if(n.get("uuid")&&n.get("action")==="unsubscribe")return{showPopup:!0,page:"unsubscribe",pageData:{uuid:n.get("uuid"),newsletterUuid:n.get("newsletter"),comments:n.get("comments")}};if(Sf({site:t})&&n.get("action")==="signup"&&n.get("success")==="true")return{showPopup:!0,page:"recommendations",pageData:{signup:!0}};const[a,r]=window.location.hash.substr(1).split("?"),i=new URLSearchParams(r??""),o=/^(?:(\w+?))?\/monthly$/,s=/^(?:(\w+?))?\/yearly$/,l=/^offers\/(\w+?)\/?$/,u=/^\/portal\/?(?:\/(\w+(?:\/\w+)*))?\/?$/,d=/^\/feedback\/(\w+?)\/(\w+?)\/?$/;if(a&&d.test(a)&&i.get("uuid")){const[,p,m]=a.match(d),f=parseInt(m);if(f===1||f===0)return{showPopup:!0,page:"feedback",pageData:{uuid:i.get("uuid"),postId:p,score:f}}}if(a&&u.test(a)){const[,p]=a.match(u),{page:m,pageQuery:f,pageData:y}=this.getPageFromLinkPath(p,t)||{},v=["accountPlan","accountProfile"].includes(m)?"accountHome":null;return{showPopup:!(["monthly","yearly"].includes(f)||o.test(f)||s.test(f)||l.test(f)),...m?{page:m}:{},...f?{pageQuery:f}:{},...y?{pageData:y}:{},...v?{lastPage:v}:{}}}return{}}fetchPreviewData(){const[,t]=window.location.hash.substr(1).split("?");if(q(["preview"])){let n={};return q(["offerPreview"])?n=this.fetchOfferQueryStrData(t):n=this.fetchQueryStrData(t),{...n,showPopup:!0}}return{}}getColorOverride(){const t=document.querySelector("script[data-ghost]");return t&&t.dataset.accentColor?t.dataset.accentColor:!1}async fetchApiData(){const{siteUrl:t,customSiteUrl:n,apiUrl:a,apiKey:r}=this.props;try{this.GhostApi=this.props.api||Lo({siteUrl:t,apiUrl:a,apiKey:r});const{site:i,member:o}=await this.GhostApi.init(),s=this.getColorOverride();return s&&(i.accent_color=s),this.setupFirstPromoter({site:i,member:o}),this.setupSentry({site:i}),{site:i,member:o}}catch(i){if(q(["dev","test"],{customSiteUrl:n}))return{};throw i}}setupSentry({site:t}){if(q(["test"]))return null;const{portal_sentry:n,portal_version:a,version:r}=t,o=`portal@2.37.8|ghost@${r}`;n&&n.dsn&&yS({dsn:n.dsn,environment:n.env||"development",release:o,beforeSend:s=>FS({event:s})?s:null,allowUrls:[/https?:\/\/((www)\.)?unpkg\.com\/@tryghost\/portal/]})}setupFirstPromoter({site:t,member:n}){if(q(["test"]))return null;const a=ZS({site:t});let r=Kc({site:t});if(r=r==null?void 0:r.replace(/^(\S*\.)?(\S*\.\S*)$/i,".$2"),a&&r){const i=document.createElement("script");i.type="text/javascript",i.async=!0,i.src="https://cdn.firstpromoter.com/fprom.js",i.onload=i.onreadystatechange=function(){let s=this.readyState;if(!s||s==="complete"||s==="loaded")try{if(window.$FPROM.init(a,r),l0({member:n})){const l=n.email,u=n.uuid;if(window.$FPROM)window.$FPROM.trackSignup({email:l,uid:u});else{const d=window._fprom||[];window._fprom=d,d.push(["event","signup"]),d.push(["email",l]),d.push(["uid",u])}}}catch{}};const o=document.getElementsByTagName("script")[0];o.parentNode.insertBefore(i,o)}}async dispatchAction(t,n){clearTimeout(this.timeoutId),this.setState({action:`${t}:running`});try{const a=await XC({action:t,data:n,state:this.state,api:this.GhostApi});this.setState(a),a&&a.action&&!a.action.includes(":failed")&&(this.timeoutId=setTimeout(()=>{this.setState({action:""})},2e3))}catch(a){if(console.error(`[Portal] Failed to dispatch action: ${t}`,a),n&&n.throwErrors)throw a;const r=J({type:`${t}:failed`,autoHide:!0,closeable:!0,status:"error",state:this.state,meta:{error:a}});this.setState({action:`${t}:failed`,popupNotification:r})}}updateStateForPreviewLinks(){const{site:t,...n}=this.fetchPreviewData(),{site:a,...r}=this.fetchLinkData(),i={site:{...this.state.site,...a||{},...t||{},plans:{...this.state.site&&this.state.site.plans,...(a||{}).plans,...(t||{}).plans}},...r,...n};this.handleSignupQuery({site:i.site,pageQuery:i.pageQuery}),this.setState(i)}async handleOfferQuery({site:t,offerId:n,member:a=this.state.member}){const{portal_button:r}=t;if(Oc(),!ct({member:a}))try{const i=await this.GhostApi.site.offer({offerId:n}),o=i==null?void 0:i.offers[0];if(a0({site:t,offer:o}))if(r)this.dispatchAction("openPopup",{page:"offer",pageData:i==null?void 0:i.offers[0]});else{const s=da({site:t,productId:o.tier.id}),l=o.cadence==="month"?s.monthlyPrice:s.yearlyPrice;if(this.dispatchAction("openPopup",{page:"loading"}),a){const{tierId:u,cadence:d}=wn({site:t,priceId:l.id});this.dispatchAction("checkoutPlan",{plan:l.id,offerId:n,tierId:u,cadence:d})}else{const{tierId:u,cadence:d}=wn({site:t,priceId:l.id});this.dispatchAction("signup",{plan:l.id,offerId:n,tierId:u,cadence:d})}}}catch{}}handleSignupQuery({site:t,pageQuery:n,member:a}){const r=/^offers\/(\w+?)\/?$/;let i=n;if(r.test(n||"")){const[,s]=n.match(r);this.handleOfferQuery({site:t,offerId:s,member:a});return}Df({site:t,pageQuery:n})&&(i=Df({site:t,pageQuery:n}));const o=WS({site:t,priceId:i});if(n&&n!=="free"){Oc();const s=(o==null?void 0:o.id)||i;s!=="free"&&this.dispatchAction("openPopup",{page:"loading"});const{tierId:l,cadence:u}=wn({site:t,priceId:s});this.dispatchAction("signup",{plan:s,tierId:l,cadence:u})}}getPageFromLinkPath(t,n){const a=/^signup\/?(?:\/(\w+?))?\/?$/,r=/^signup\/?(?:\/(\w+?))\/monthly\/?$/,i=/^signup\/?(?:\/(\w+?))\/yearly\/?$/,o=/^offers\/(\w+?)\/?$/,s=n??this.state.site??{};if(t===void 0||t==="")return{page:"default"};if(o.test(t))return{pageQuery:t};if(t==="signup")return{page:"signup"};if(r.test(t)){const[,l]=t.match(r);return{page:"signup",pageQuery:`${l}/monthly`}}else if(i.test(t)){const[,l]=t.match(i);return{page:"signup",pageQuery:`${l}/yearly`}}else if(a.test(t)){const[,l]=t.match(a);return{page:"signup",pageQuery:l}}else{if(t==="signup/free")return{page:"signup",pageQuery:"free"};if(t==="signup/monthly")return{page:"signup",pageQuery:"monthly"};if(t==="signup/yearly")return{page:"signup",pageQuery:"yearly"};if(t==="signin")return{page:"signin"};if(t==="account")return{page:"accountHome"};if(t==="account/plans")return{page:"accountPlan"};if(t==="account/profile")return{page:"accountProfile"};if(t==="account/newsletters")return{page:"accountEmail"};if(t==="support")return{page:"support"};if(t==="support/success")return{page:"supportSuccess"};if(t==="support/error")return{page:"supportError"};if(t==="recommendations"&&Sf({site:s}))return{page:"recommendations",pageData:{signup:!1}}}return{page:"default"}}getAccentColor(){const{accent_color:t}=this.state.site||{};return t}getContextPage({site:t,page:n,member:a}){if(!n||n==="default"){const r=ut({site:t})?"signin":"signup";n=a?"accountHome":r}return n==="accountPlan"&&Qt({member:a})&&!Pr({member:a})&&(n="accountHome"),lu({page:n})}getContextMember({page:t,member:n,customSiteUrl:a}){return q(["dev","preview"],{customSiteUrl:a})?kC({page:t})||vC({page:t})?q(["dev"],{customSiteUrl:a})?n||Bo.free:q(["preview"])?Bo.preview:Bo.paid:null:n}getContextFromState(){const{site:t,member:n,action:a,page:r,lastPage:i,showPopup:o,pageQuery:s,pageData:l,popupNotification:u,customSiteUrl:d,t:p}=this.state,m=this.getContextPage({site:t,page:r,member:n}),f=this.getContextMember({page:m,member:n,customSiteUrl:d});return{api:this.GhostApi,site:t,action:a,brandColor:this.getAccentColor(),page:m,pageQuery:s,pageData:l,member:f,lastPage:i,showPopup:o,popupNotification:u,customSiteUrl:d,t:p,onAction:(y,v)=>this.dispatchAction(y,v)}}getRecommendationButtons(){const t="[data-recommendation]";return document.querySelectorAll(t)||[]}setupRecommendationButtons(){const t=a=>{const r=a.currentTarget.dataset.recommendation;r?this.dispatchAction("trackRecommendationClicked",{recommendationId:r}).catch(console.error):console.warn("[Portal] Invalid usage of data-recommendation attribute")},n=this.getRecommendationButtons();for(const a of n)a.addEventListener("click",t,{passive:!0})}render(){return this.state.initStatus==="success"?c.jsx(D1,{site:this.state.site,children:c.jsxs(T.Provider,{value:this.getContextFromState(),children:[c.jsx(Tg,{}),c.jsx(Rf,{}),c.jsx(Yf,{})]})}):null}}const Jg="ghost-portal-root";function A1(){const e=document.createElement("div");e.id=Jg,document.body.appendChild(e)}function _1(){const e=document.querySelector("script[data-ghost]");if(e){const t=e.dataset.i18n==="true",n=e.dataset.ghost,a=e.dataset.key,r=e.dataset.api;return{siteUrl:n,apiKey:a,apiUrl:r,siteI18nEnabled:t}}return{}}function M1(){const e=new URL(window.location.href);e.searchParams.get("token")&&(e.searchParams.delete("token"),window.history.replaceState({},document.title,e.href))}function R1(){A1(),M1()}function F1(){const{siteUrl:e,apiKey:t,apiUrl:n,siteI18nEnabled:a}=_1(),r=e||window.location.origin;R1(),sk.render(c.jsx(L.StrictMode,{children:c.jsx(z1,{siteUrl:r,customSiteUrl:e,apiKey:t,apiUrl:n,siteI18nEnabled:a})}),document.getElementById(Jg))}F1()});
|
|
3375
|
+
`+n;return c.jsxs(c.Fragment,{children:[c.jsx("style",{dangerouslySetInnerHTML:{__html:a}}),c.jsx("meta",{name:"viewport",content:"width=device-width, initial-scale=1, maximum-scale=1"})]})}renderFrameContainer(){const{member:t,site:n,customSiteUrl:a}=this.context,r=Pg(),i=window.innerWidth<480,o={...r.frame.common};let s="gh-portal-popup-background";return q(["preview"])&&(r.modalContainer.zIndex="3999997"),q(["preview"],{customSiteUrl:a})&&!n.disableBackground&&(s+=" preview"),q(["dev"])&&(s+=" dev"),c.jsx("div",{style:r.modalContainer,children:c.jsxs(Fc,{style:o,title:"portal-popup",head:this.renderFrameStyles(),dataTestId:"portal-popup-frame",children:[c.jsx("div",{className:s,onClick:l=>this.handlePopupClose(l)}),c.jsx(Ng,{isMobile:i})]})})}render(){const{showPopup:t}=this.context;return t?this.renderFrameContainer():null}}Q(Tg,"contextType",T),Uo({products:uu({numOfProducts:1})});function Ee(){return(new Date().getTime()/1e3|0).toString(16)+"xxxxxxxxxxxxxxxx".replace(/[x]/g,function(){return(Math.random()*16|0).toString(16)}).toLowerCase()}function Uo({title:e="The Blueprint",description:t="Thoughts, stories and ideas.",logo:n="https://static.ghost.org/v4.0.0/images/ghost-orb-1.png",icon:a="https://static.ghost.org/v4.0.0/images/ghost-orb-1.png",url:r="https://portal.localhost",plans:i={monthly:5e3,yearly:15e4,currency:"USD"},products:o=uu({numOfProducts:1}),portalProducts:s=o.map(P=>P.id),accentColor:l="#45C32E",portalPlans:u=["free","monthly","yearly"],allowSelfSignup:d=!0,membersSignupAccess:p="all",freePriceName:m="Free",freePriceDescription:f="Free preview",isStripeConfigured:y=!0,portalButton:v=!0,portalName:h=!0,portalButtonIcon:g="icon-1",portalButtonSignupText:b="Subscribe now",portalButtonStyle:x="icon-and-text",membersSupportAddress:w="support@example.com",newsletters:C=[],commentsEnabled:S,recommendations:E=[],recommendationsEnabled:j}={}){return{title:e,description:t,logo:n,icon:a,accent_color:l,url:r,plans:i,products:o,portal_products:s,allow_self_signup:d,members_signup_access:p,free_price_name:m,free_price_description:f,is_stripe_configured:y,portal_button:v,portal_name:h,portal_plans:u,portal_button_icon:g,portal_button_signup_text:b,portal_button_style:x,members_support_address:w,comments_enabled:!!S,newsletters:C,recommendations:E,recommendations_enabled:!!j}}function Ig({name:e="Black Friday",code:t="black-friday",displayTitle:n="Black Friday Sale!",displayDescription:a="Special deal for Black Friday. Subscribe now for only $15 per month and get additional benefits like accessing our podcast.",type:r="percent",cadence:i="month",amount:o=50,duration:s="repeating",durationInMonths:l=null,currencyRestriction:u=!1,currency:d=null,status:p="active",tierId:m="",tierName:f="Basic"}={}){return{id:`offer_${Ee()}`,name:e,code:t,display_title:n,display_description:a,type:r,cadence:i,amount:o,duration:s,duration_in_months:l,currency_restriction:u,currency:d,status:p,tier:{id:`${m}`,name:f}}}function Ze({name:e="Jamie Larson",email:t="jamie@example.com",firstname:n="Jamie",subscriptions:a=[],paid:r=!1,avatarImage:i="",subscribed:o=!0,email_suppression:s={suppressed:!1,info:null},newsletters:l=[]}={}){return{uuid:`member_${Ee()}`,email:t,name:e,firstname:n,paid:r,subscribed:o,avatar_image:i,subscriptions:a,email_suppression:s,newsletters:l}}function uu({numOfProducts:e=3}={}){const n=[ba({name:"Bronze",description:"Access to all members articles",monthlyPrice:We({interval:"month",amount:700}),yearlyPrice:We({interval:"year",amount:7e3}),numOfBenefits:2}),ba({name:"Silver",description:"Access to all members articles and weekly podcast",monthlyPrice:We({interval:"month",amount:1200}),yearlyPrice:We({interval:"year",amount:12e3}),numOfBenefits:3}),ba({name:"Friends of the Blueprint",description:"Get access to everything and lock in early adopter pricing for life + listen to my podcast",monthlyPrice:We({interval:"month",amount:18e3}),yearlyPrice:We({interval:"year",amount:17e3}),numOfBenefits:4})].slice(0,e),a=Dg({});return[...n,a]}function ba({type:e="paid",name:t="Basic",description:n="",id:a=`product_${Ee()}`,monthlyPrice:r=We(),yearlyPrice:i=We({interval:"year"}),numOfBenefits:o=2,trialDays:s=null}){return{id:a,name:t,description:n,monthlyPrice:e==="free"?null:r,yearlyPrice:e==="free"?null:i,type:e,benefits:zg({numOfBenefits:o}),trial_days:s}}function Dg({name:e="Free tier",description:t="Free tier description",id:n=`product_${Ee()}`,numOfBenefits:a=2}){return{id:n,name:e,type:"free",description:t,benefits:zg({numOfBenefits:a})}}function zg({numOfBenefits:e}){const t=Date.now(),n=Math.floor(Math.random()*100);return[Yo({name:`Limited early adopter pricing #${n}-${t}`}),Yo({name:`Latest gear reviews #${n}-${t}`}),Yo({name:`Weekly email newsletter #${n}-${t}`}),Yo({name:`Listen to my podcast #$${n}-${t}`})].slice(0,e)}function Yo({id:e=`benefit_${Ee()}`,name:t="Benefit"}){return{id:e,name:t}}function We({interval:e="month",amount:t=e==="month"?500:5e3,nickname:n=e==="month"?"Monthly":"Yearly",description:a=null,currency:r="usd",active:i=!0,id:o=`price_${Ee()}`}={}){return{id:o,active:i,nickname:n,currency:r,amount:t,interval:e,description:a,stripe_price_id:`price_${Ee()}`,stripe_product_id:`prod_${Ee()}`,type:"recurring"}}function xn({id:e=`sub_${Ee()}`,status:t="active",currency:n="USD",interval:a="year",amount:r=a==="month"?500:5e3,nickname:i=a==="month"?"Monthly":"Yearly",cardLast4:o="4242",offer:s=EC,priceId:l=`price_${Ee()}`,startDate:u="2021-10-05T03:18:30.000Z",currentPeriodEnd:d="2022-10-05T03:18:30.000Z",cancelAtPeriodEnd:p=!1}={}){return{id:e,customer:{id:`cus_${Ee()}`,name:"Jamie",email:"jamie@example.com"},plan:{id:`price_${Ee()}`,nickname:i,amount:r,interval:a,currency:n},offer:s,status:t,start_date:u,default_payment_card_last4:o,cancel_at_period_end:p,cancellation_reason:null,current_period_end:d,price:{id:`stripe_price_${Ee()}`,price_id:l,nickname:i,amount:r,interval:a,type:"recurring",currency:n,product:{id:`stripe_prod_${Ee()}`,product_id:`prod_${Ee()}`}}}}function Ag(){const e=uu({numOfProducts:1}),t=e.map(a=>a.id);return Uo({products:e,portalPlans:["free","monthly","yearly"],portalProducts:t})}Ag();const SC=Uo({products:[ba({numOfBenefits:2,type:"free"})]}),EC=Ig({tierId:(Qg=SC.products[0])==null?void 0:Qg.id});Ze(),Ze({paid:!0,subscriptions:[xn()]}),Ze({paid:!0,subscriptions:[]}),Ze({paid:!0,subscriptions:[xn({amount:0})]}),Ze({paid:!0,subscriptions:[xn({amount:1500,startDate:"2019-05-01T11:42:40.000Z",currentPeriodEnd:"2021-06-05T11:42:40.000Z"})]}),Ag();const Oo=[Dg({name:"Free",description:"Free tier description which is actually a pretty long description",numOfBenefits:2}),ba({name:"The Blueprint",description:"",monthlyPrice:We({interval:"month",amount:500}),yearlyPrice:We({interval:"year",amount:5e3}),numOfBenefits:3}),ba({name:"Friends of the Blueprint Silver",description:"Access to all members articles and weekly podcast",monthlyPrice:We({interval:"month",amount:1200}),yearlyPrice:We({interval:"year",amount:11e3}),numOfBenefits:4})],ya=Uo({title:"The Blueprint",description:"Thoughts, stories and ideas.",logo:"https://static.ghost.org/v4.0.0/images/ghost-orb-1.png",icon:"https://static.ghost.org/v4.0.0/images/ghost-orb-1.png",accentColor:"#45C32E",url:"https://portal.localhost",plans:{monthly:5e3,yearly:15e4,currency:"USD"},products:Oo,portalProducts:Oo.map(e=>e.id),allowSelfSignup:!0,membersSignupAccess:"all",freePriceName:"Free",freePriceDescription:"Free preview",isStripeConfigured:!0,portalButton:!0,portalName:!0,portalPlans:["free","monthly","yearly"],portalButtonIcon:"icon-1",portalButtonSignupText:"Subscribe now",portalButtonStyle:"icon-and-text",membersSupportAddress:"support@example.com",commentsEnabled:!0,newsletters:[{id:"weekly",name:"Weekly Rundown",description:"Best of last week",subscribe_on_signup:!0,paid:!0},{id:"daily",name:"Daily Brief",description:"One email every day",subscribe_on_signup:!1,paid:!1}]}),_g=Ig({tierId:(Zg=ya.products[1])==null?void 0:Zg.id}),Bo={free:Ze({name:"Jamie Larson",email:"jamie@example.com",firstname:"Jamie",subscriptions:[],paid:!1,avatarImage:"",subscribed:!0}),paid:Ze({paid:!0,subscriptions:[xn({status:"active",currency:"USD",interval:"year",amount:5e3,cardLast4:"4242",startDate:"2021-10-05T03:18:30.000Z",currentPeriodEnd:"2022-10-05T03:18:30.000Z",cancelAtPeriodEnd:!1})]}),complimentary:Ze({paid:!0,subscriptions:[]}),complimentaryWithSubscription:Ze({paid:!0,subscriptions:[xn({amount:0})]}),preview:Ze({paid:!0,subscriptions:[xn({amount:1500,startDate:"2019-05-01T11:42:40.000Z",currentPeriodEnd:"2021-06-05T11:42:40.000Z"})]})};function CC(){var n;if(!Oo||!Oo[1])return null;let e=(n=ya==null?void 0:ya.products)==null?void 0:n[1].monthlyPrice,t=Ze({paid:!0,subscriptions:[xn({offer:null,priceId:e==null?void 0:e.id,status:"active",currency:e==null?void 0:e.currency,interval:e==null?void 0:e.interval,amount:e==null?void 0:e.amount,cardLast4:"4242",startDate:"2021-10-05T03:18:30.000Z",currentPeriodEnd:"2022-10-05T03:18:30.000Z",cancelAtPeriodEnd:!1})]});return{site:ya,member:t}}function jC({data:e,state:t}){return{page:e.page,popupNotification:null,lastPage:e.lastPage||null,pageData:e.pageData||t.pageData}}function $C({state:e}){return{showPopup:!e.showPopup}}function PC({data:e}){return{showPopup:!0,page:e.page,...e.pageQuery?{pageQuery:e.pageQuery}:{},...e.pageData?{pageData:e.pageData}:{}}}function NC({state:e}){return e.lastPage?{page:e.lastPage}:Mg({state:e})}function Mg({state:e}){return Oc(),{showPopup:!1,lastPage:null,pageQuery:"",popupNotification:null,page:e.page==="magiclink"?"":e.page}}function TC({data:e}){return{showNotification:!0,...e}}function IC(){return{showNotification:!1}}async function DC({api:e,state:t}){try{return await e.member.signout(),{action:"signout:success"}}catch{return{action:"signout:failed",popupNotification:J({type:"signout:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:"Failed to log out, please try again"})}}}async function zC({data:e,api:t,state:n}){try{return await t.member.sendMagicLink({...e,emailType:"signin"}),{page:"magiclink",lastPage:"signin"}}catch(a){return{action:"signin:failed",popupNotification:J({type:"signin:failed",autoHide:!1,closeable:!0,state:n,status:"error",message:jt.getMessageFromError(a,"Failed to log in, please try again")})}}}async function AC({data:e,state:t,api:n}){try{let{plan:a,tierId:r,cadence:i,email:o,name:s,newsletters:l,offerId:u}=e;if(a.toLowerCase()==="free")await n.member.sendMagicLink({emailType:"signup",...e});else return r&&i?await n.member.checkoutPlan({plan:a,tierId:r,cadence:i,email:o,name:s,newsletters:l,offerId:u}):({tierId:r,cadence:i}=wn({site:t==null?void 0:t.site,priceId:a}),await n.member.checkoutPlan({plan:a,tierId:r,cadence:i,email:o,name:s,newsletters:l,offerId:u})),{page:"loading"};return{page:"magiclink",lastPage:"signup"}}catch(a){const r=(a==null?void 0:a.message)||"Failed to sign up, please try again";return{action:"signup:failed",popupNotification:J({type:"signup:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:r})}}}async function _C({data:e,state:t,api:n}){try{let{plan:a,offerId:r,tierId:i,cadence:o}=e;(!i||!o)&&({tierId:i,cadence:o}=wn({site:t==null?void 0:t.site,priceId:a})),await n.member.checkoutPlan({plan:a,tierId:i,cadence:o,offerId:r,metadata:{checkoutType:"upgrade"}})}catch{return{action:"checkoutPlan:failed",popupNotification:J({type:"checkoutPlan:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:"Failed to process checkout, please try again"})}}}async function MC({data:e,state:t,api:n}){try{const{plan:a,planId:r,subscriptionId:i,cancelAtPeriodEnd:o}=e,{tierId:s,cadence:l}=wn({site:t==null?void 0:t.site,priceId:r});await n.member.updateSubscription({planName:a,tierId:s,cadence:l,subscriptionId:i,cancelAtPeriodEnd:o,planId:r});const u=await n.member.sessionData(),d="updateSubscription:success";return{action:d,popupNotification:J({type:d,autoHide:!0,closeable:!0,state:t,status:"success",message:"Subscription plan updated successfully"}),page:"accountHome",member:u}}catch{return{action:"updateSubscription:failed",popupNotification:J({type:"updateSubscription:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:"Failed to update subscription, please try again"})}}}async function RC({data:e,state:t,api:n}){try{const{subscriptionId:a,cancellationReason:r}=e;return await n.member.updateSubscription({subscriptionId:a,smartCancel:!0,cancellationReason:r}),{action:"cancelSubscription:success",page:"accountHome",member:await n.member.sessionData()}}catch{return{action:"cancelSubscription:failed",popupNotification:J({type:"cancelSubscription:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:"Failed to cancel subscription, please try again"})}}}async function FC({data:e,state:t,api:n}){try{const{subscriptionId:a}=e;return await n.member.updateSubscription({subscriptionId:a,cancelAtPeriodEnd:!1}),{action:"continueSubscription:success",page:"accountHome",member:await n.member.sessionData()}}catch{return{action:"continueSubscription:failed",popupNotification:J({type:"continueSubscription:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:"Failed to cancel subscription, please try again"})}}}async function LC({data:e,state:t,api:n}){try{await n.member.editBilling(e)}catch{return{action:"editBilling:failed",popupNotification:J({type:"editBilling:failed",autoHide:!1,closeable:!0,state:t,status:"error",message:"Failed to update billing information, please try again"})}}}async function UC(){return{popupNotification:null}}async function YC({data:e,state:t}){let{action:n,message:a=""}=e;return n=n||"showPopupNotification:success",{popupNotification:J({type:n,autoHide:!0,closeable:!0,state:t,status:"success",message:a})}}async function OC({data:e,state:t,api:n}){try{const{newsletters:a,enableCommentNotifications:r}=e;if(!a&&r===void 0)return{};const i={};return a&&(i.newsletters=a),r!==void 0&&(i.enableCommentNotifications=r),{action:"updateNewsletterPref:success",member:await n.member.update(i)}}catch{return{action:"updateNewsletterPref:failed",popupNotification:J({type:"updateNewsletter:failed",autoHide:!0,closeable:!0,state:t,status:"error",message:"Failed to update newsletter settings"})}}}async function BC({state:e,api:t}){try{return await t.member.deleteSuppression(),{action:"removeEmailFromSuppressionList:success",popupNotification:J({type:"removeEmailFromSuppressionList:success",autoHide:!0,closeable:!0,state:e,status:"success",message:"You have been successfully resubscribed"})}}catch{return{action:"removeEmailFromSuppressionList:failed",popupNotification:J({type:"removeEmailFromSuppressionList:failed",autoHide:!0,closeable:!0,state:e,status:"error",message:"Your email has failed to resubscribe, please try again"})}}}async function HC({data:e,state:t,api:n}){try{const{subscribed:a}=e,r=await n.member.update({subscribed:a});if(!r)throw new Error("Failed to update newsletter");const i="updateNewsletter:success";return{action:i,member:r,popupNotification:J({type:i,autoHide:!0,closeable:!0,state:t,status:"success",message:"Email newsletter settings updated"})}}catch{return{action:"updateNewsletter:failed",popupNotification:J({type:"updateNewsletter:failed",autoHide:!0,closeable:!0,state:t,status:"error",message:"Failed to update newsletter settings"})}}}async function VC({data:e,state:t,api:n}){const{email:a}=e,r=QS({member:t.member});if(a!==r)try{return await n.member.updateEmailAddress({email:a}),{success:!0}}catch(i){return{success:!1,error:i}}return null}async function WC({data:e,state:t,api:n}){const{name:a}=e;if(XS({member:t.member})!==a)try{const i=await n.member.update({name:a});if(!i)throw new Error("Failed to update member");return{member:i,success:!0}}catch(i){return{success:!1,error:i}}return null}async function qC({state:e,api:t}){if(e.member)try{const n=await t.member.sessionData();return n?{member:n,success:!0,action:"refreshMemberData:success"}:null}catch(n){return{success:!1,error:n,action:"refreshMemberData:failed"}}return null}async function GC({data:e,state:t,api:n}){const[a,r]=await Promise.all([WC({data:e,state:t,api:n}),VC({data:e,state:t,api:n})]);if(a&&r){if(r.success)return{action:"updateProfile:success",...a.success?{member:a.member}:{},page:"accountHome",popupNotification:J({type:"updateProfile:success",autoHide:!0,closeable:!0,status:"success",state:t,message:"Check your inbox to verify email update"})};const i=a.success?"Failed to send verification email":"Failed to update account data";return{action:"updateProfile:failed",...a.success?{member:a.member}:{},popupNotification:J({type:"updateProfile:failed",autoHide:!0,closeable:!0,status:"error",message:i,state:t})}}else if(a){const i=a.success?"updateProfile:success":"updateProfile:failed",o=a.success?"success":"error",s=a.success?"Account details updated successfully":"Failed to update account details";return{action:i,...a.success?{member:a.member}:{},...a.success?{page:"accountHome"}:{},popupNotification:J({type:i,autoHide:a.success,closeable:!0,status:o,state:t,message:s})}}else if(r){const i=r.success?"updateProfile:success":"updateProfile:failed",o=r.success?"success":"error",s=r.success?"Check your inbox to verify email update":"Failed to send verification email";return{action:i,...r.success?{page:"accountHome"}:{},popupNotification:J({type:i,autoHide:r.success,closeable:!0,status:o,state:t,message:s})}}return{action:"updateProfile:success",page:"accountHome",popupNotification:J({type:"updateProfile:success",autoHide:!0,closeable:!0,status:"success",state:t,message:"Account details updated successfully"})}}async function KC({data:{siteUrl:e},state:t}){const n=Lo({siteUrl:e,apiUrl:"not-defined",contentApiKey:"not-defined"}),{member:a}=t,r=window.location.href,i=Ef();return await n.member.sendMagicLink({emailType:"signup",name:a.name,email:a.email,autoRedirect:!1,customUrlHistory:t.site.outbound_link_tagging?[{time:Date.now(),referrerSource:i,referrerMedium:"Ghost Recommendations",referrerUrl:r}]:[]}),{}}function JC({data:{recommendationId:e},api:t}){try{const n=localStorage.getItem("ghost-recommendations-clicked"),a=n?JSON.parse(n):[];if(a.includes(e))return;a.push(e),localStorage.setItem("ghost-recommendations-clicked",JSON.stringify(a))}catch{}return t.recommendations.trackClicked({recommendationId:e}),{}}async function QC({data:{recommendationId:e},api:t}){return t.recommendations.trackSubscribed({recommendationId:e}),{}}const ZC={togglePopup:$C,openPopup:PC,closePopup:Mg,switchPage:jC,openNotification:TC,closeNotification:IC,back:NC,signout:DC,signin:zC,signup:AC,updateSubscription:MC,cancelSubscription:RC,continueSubscription:FC,updateNewsletter:HC,updateProfile:GC,refreshMemberData:qC,clearPopupNotification:UC,editBilling:LC,checkoutPlan:_C,updateNewsletterPreference:OC,showPopupNotification:YC,removeEmailFromSuppressionList:BC,oneClickSubscribe:KC,trackRecommendationClicked:JC,trackRecommendationSubscribed:QC};async function XC({action:e,data:t,state:n,api:a}){const r=ZC[e];return r?await r({data:t,state:n,api:a})||{}:{}}const AY="";function e1({event:e,form:t,errorEl:n,siteUrl:a,submitHandler:r}){var g;t.removeEventListener("submit",r),e.preventDefault(),n&&(n.innerText=""),t.classList.remove("success","invalid","error");let i=e.target.querySelector("input[data-members-email]"),o=e.target.querySelector("input[data-members-name]"),s=((g=t==null?void 0:t.dataset)==null?void 0:g.membersAutoredirect)||"true",l=i==null?void 0:i.value,u=o&&o.value||void 0,d,p=[],m=[],f=e.target.querySelectorAll("input[data-members-label]")||[];for(let b=0;b<f.length;++b)p.push(f[b].value);let y=e.target.querySelectorAll("input[type=hidden][data-members-newsletter], input[type=checkbox][data-members-newsletter]:checked, input[type=radio][data-members-newsletter]:checked")||[];for(let b=0;b<y.length;++b)m.push({name:y[b].value});t.dataset.membersForm&&(d=t.dataset.membersForm),t.classList.add("loading");const v=Ir(),h={email:l,emailType:d,labels:p,name:u,autoRedirect:s==="true"};v&&(h.urlHistory=v),y.length>0?h.newsletters=m:(e.target.querySelectorAll("input[type=checkbox][data-members-newsletter]")||[]).length>0&&(h.newsletters=[]),fetch(`${a}/members/api/send-magic-link/`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)}).then(function(b){if(t.addEventListener("submit",r),t.classList.remove("loading"),b.ok)t.classList.add("success");else return jt.fromApiResponse(b).then(x=>{throw x})}).catch(b=>{n&&(n.innerText=jt.getMessageFromError(b,"There was an error sending the email, please try again")),t.classList.add("error")})}function t1({event:e,el:t,errorEl:n,siteUrl:a,site:r,member:i,clickHandler:o}){t.removeEventListener("click",o),e.preventDefault();let s=t.dataset.membersPlan,l=VS(r,s.toLowerCase()),u=t.dataset.membersSuccess,d=t.dataset.membersCancel,p,m;u&&(p=new URL(u,window.location.href).href),d&&(m=new URL(d,window.location.href).href),n&&(n.innerText=""),t.classList.add("loading");const f=i?{checkoutType:"upgrade"}:{},y=Ir();return y&&(f.urlHistory=y),fetch(`${a}/members/api/session`,{credentials:"same-origin"}).then(function(v){return v.ok?v.text():null}).then(function(v){return fetch(`${a}/members/api/create-stripe-checkout-session/`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...l,identity:v,successUrl:p,cancelUrl:m,metadata:f})}).then(function(h){if(!h.ok)throw new Error("Could not create stripe checkout session");return h.json()})}).then(function(v){return v.url?window.location.assign(v.url):window.Stripe(v.publicKey).redirectToCheckout({sessionId:v.sessionId}).then(function(g){if(g.error)throw new Error(g.error.message)})}).catch(function(v){console.error(v),t.addEventListener("click",o),t.classList.remove("loading"),n&&(n.innerText=v.message),t.classList.add("error")})}function n1({siteUrl:e,site:t,member:n}){e&&(e=e.replace(/\/$/,""),Array.prototype.forEach.call(document.querySelectorAll("form[data-members-form]"),function(a){let r=a.querySelector("[data-members-error]");function i(o){e1({event:o,errorEl:r,form:a,siteUrl:e,submitHandler:i})}a.addEventListener("submit",i)}),Array.prototype.forEach.call(document.querySelectorAll("[data-members-plan]"),function(a){let r=a.querySelector("[data-members-error]");function i(o){t1({el:a,event:o,errorEl:r,member:n,site:t,siteUrl:e,clickHandler:i})}a.addEventListener("click",i)}),Array.prototype.forEach.call(document.querySelectorAll("[data-members-edit-billing]"),function(a){let r=a.querySelector("[data-members-error]"),i=a.dataset.membersSuccess,o=a.dataset.membersCancel,s,l;i&&(s=new URL(i,window.location.href).href),o&&(l=new URL(o,window.location.href).href);function u(d){a.removeEventListener("click",u),d.preventDefault(),r&&(r.innerText=""),a.classList.add("loading"),fetch(`${e}/members/api/session`,{credentials:"same-origin"}).then(function(p){return p.ok?p.text():null}).then(function(p){return fetch(`${e}/members/api/create-stripe-update-session/`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({identity:p,successUrl:s,cancelUrl:l})}).then(function(m){if(!m.ok)throw new Error("Could not create stripe checkout session");return m.json()})}).then(function(p){return window.Stripe(p.publicKey).redirectToCheckout({sessionId:p.sessionId})}).then(function(p){if(p.error)throw new Error(p.error.message)}).catch(function(p){console.error(p),a.addEventListener("click",u),a.classList.remove("loading"),r&&(r.innerText=p.message),a.classList.add("error")})}a.addEventListener("click",u)}),Array.prototype.forEach.call(document.querySelectorAll("[data-members-signout]"),function(a){function r(i){a.removeEventListener("click",r),i.preventDefault(),a.classList.remove("error"),a.classList.add("loading"),fetch(`${e}/members/api/session`,{method:"DELETE"}).then(function(o){o.ok?window.location.replace(e):(a.addEventListener("click",r),a.classList.remove("loading"),a.classList.add("error"))})}a.addEventListener("click",r)}),Array.prototype.forEach.call(document.querySelectorAll("[data-members-cancel-subscription]"),function(a){let r=a.parentElement.querySelector("[data-members-error]");function i(o){a.removeEventListener("click",i),o.preventDefault(),a.classList.remove("error"),a.classList.add("loading");let s=a.dataset.membersCancelSubscription;return r&&(r.innerText=""),fetch(`${e}/members/api/session`,{credentials:"same-origin"}).then(function(l){return l.ok?l.text():null}).then(function(l){return fetch(`${e}/members/api/subscriptions/${s}/`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({identity:l,smart_cancel:!0})})}).then(function(l){l.ok?window.location.reload():(a.addEventListener("click",i),a.classList.remove("loading"),a.classList.add("error"),r&&(r.innerText="There was an error cancelling your subscription, please try again."))})}a.addEventListener("click",i)}),Array.prototype.forEach.call(document.querySelectorAll("[data-members-continue-subscription]"),function(a){let r=a.parentElement.querySelector("[data-members-error]");function i(o){a.removeEventListener("click",i),o.preventDefault(),a.classList.remove("error"),a.classList.add("loading");let s=a.dataset.membersContinueSubscription;return r&&(r.innerText=""),fetch(`${e}/members/api/session`,{credentials:"same-origin"}).then(function(l){return l.ok?l.text():null}).then(function(l){return fetch(`${e}/members/api/subscriptions/${s}/`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({identity:l,cancel_at_period_end:!1})})}).then(function(l){l.ok?window.location.reload():(a.addEventListener("click",i),a.classList.remove("loading"),a.classList.add("error"),r&&(r.innerText="There was an error continuing your subscription, please try again."))})}a.addEventListener("click",i)}))}var du={exports:{}};const a1={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console&&console[e]&&console[e].apply(console,t)}};class Ho{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,n)}init(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||a1,this.options=n,this.debug=n.debug}log(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return this.forward(n,"log","",!0)}warn(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return this.forward(n,"warn","",!0)}error(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return this.forward(n,"error","")}deprecate(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return this.forward(n,"warn","WARNING DEPRECATED: ",!0)}forward(t,n,a,r){return r&&!this.debug?null:(typeof t[0]=="string"&&(t[0]=`${a}${this.prefix} ${t[0]}`),this.logger[n](t))}create(t){return new Ho(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new Ho(this.logger,t)}}var dt=new Ho;class Vo{constructor(){this.observers={}}on(t,n){return t.split(" ").forEach(a=>{this.observers[a]||(this.observers[a]=new Map);const r=this.observers[a].get(n)||0;this.observers[a].set(n,r+1)}),this}off(t,n){if(this.observers[t]){if(!n){delete this.observers[t];return}this.observers[t].delete(n)}}emit(t){for(var n=arguments.length,a=new Array(n>1?n-1:0),r=1;r<n;r++)a[r-1]=arguments[r];this.observers[t]&&Array.from(this.observers[t].entries()).forEach(o=>{let[s,l]=o;for(let u=0;u<l;u++)s(...a)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(o=>{let[s,l]=o;for(let u=0;u<l;u++)s.apply(s,[t,...a])})}}function Mr(){let e,t;const n=new Promise((a,r)=>{e=a,t=r});return n.resolve=e,n.reject=t,n}function Rg(e){return e==null?"":""+e}function r1(e,t,n){e.forEach(a=>{t[a]&&(n[a]=t[a])})}const i1=/###/g;function Rr(e,t,n){function a(s){return s&&s.indexOf("###")>-1?s.replace(i1,"."):s}function r(){return!e||typeof e=="string"}const i=typeof t!="string"?t:t.split(".");let o=0;for(;o<i.length-1;){if(r())return{};const s=a(i[o]);!e[s]&&n&&(e[s]=new n),Object.prototype.hasOwnProperty.call(e,s)?e=e[s]:e={},++o}return r()?{}:{obj:e,k:a(i[o])}}function Fg(e,t,n){const{obj:a,k:r}=Rr(e,t,Object);if(a!==void 0||t.length===1){a[r]=n;return}let i=t[t.length-1],o=t.slice(0,t.length-1),s=Rr(e,o,Object);for(;s.obj===void 0&&o.length;)i=`${o[o.length-1]}.${i}`,o=o.slice(0,o.length-1),s=Rr(e,o,Object),s&&s.obj&&typeof s.obj[`${s.k}.${i}`]<"u"&&(s.obj=void 0);s.obj[`${s.k}.${i}`]=n}function o1(e,t,n,a){const{obj:r,k:i}=Rr(e,t,Object);r[i]=r[i]||[],r[i].push(n)}function Wo(e,t){const{obj:n,k:a}=Rr(e,t);if(n)return n[a]}function s1(e,t,n){const a=Wo(e,n);return a!==void 0?a:Wo(t,n)}function Lg(e,t,n){for(const a in t)a!=="__proto__"&&a!=="constructor"&&(a in e?typeof e[a]=="string"||e[a]instanceof String||typeof t[a]=="string"||t[a]instanceof String?n&&(e[a]=t[a]):Lg(e[a],t[a],n):e[a]=t[a]);return e}function ka(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var l1={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function c1(e){return typeof e=="string"?e.replace(/[&<>"'\/]/g,t=>l1[t]):e}class u1{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const n=this.regExpMap.get(t);if(n!==void 0)return n;const a=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,a),this.regExpQueue.push(t),a}}const d1=[" ",",","?","!",";"],m1=new u1(20);function p1(e,t,n){t=t||"",n=n||"";const a=d1.filter(o=>t.indexOf(o)<0&&n.indexOf(o)<0);if(a.length===0)return!0;const r=m1.getRegExp(`(${a.map(o=>o==="?"?"\\?":o).join("|")})`);let i=!r.test(e);if(!i){const o=e.indexOf(n);o>0&&!r.test(e.substring(0,o))&&(i=!0)}return i}function mu(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!e)return;if(e[t])return e[t];const a=t.split(n);let r=e;for(let i=0;i<a.length;){if(!r||typeof r!="object")return;let o,s="";for(let l=i;l<a.length;++l)if(l!==i&&(s+=n),s+=a[l],o=r[s],o!==void 0){if(["string","number","boolean"].indexOf(typeof o)>-1&&l<a.length-1)continue;i+=l-i+1;break}r=o}return r}function qo(e){return e&&e.indexOf("_")>0?e.replace("_","-"):e}class Ug extends Vo{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}getResource(t,n,a){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const i=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,o=r.ignoreJSONStructure!==void 0?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let s;t.indexOf(".")>-1?s=t.split("."):(s=[t,n],a&&(Array.isArray(a)?s.push(...a):typeof a=="string"&&i?s.push(...a.split(i)):s.push(a)));const l=Wo(this.data,s);return!l&&!n&&!a&&t.indexOf(".")>-1&&(t=s[0],n=s[1],a=s.slice(2).join(".")),l||!o||typeof a!="string"?l:mu(this.data&&this.data[t]&&this.data[t][n],a,i)}addResource(t,n,a,r){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const o=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator;let s=[t,n];a&&(s=s.concat(o?a.split(o):a)),t.indexOf(".")>-1&&(s=t.split("."),r=n,n=s[1]),this.addNamespaces(n),Fg(this.data,s,r),i.silent||this.emit("added",t,n,a,r)}addResources(t,n,a){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const i in a)(typeof a[i]=="string"||Array.isArray(a[i]))&&this.addResource(t,n,i,a[i],{silent:!0});r.silent||this.emit("added",t,n,a)}addResourceBundle(t,n,a,r,i){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},s=[t,n];t.indexOf(".")>-1&&(s=t.split("."),r=a,a=n,n=s[1]),this.addNamespaces(n);let l=Wo(this.data,s)||{};o.skipCopy||(a=JSON.parse(JSON.stringify(a))),r?Lg(l,a,i):l={...l,...a},Fg(this.data,s,l),o.silent||this.emit("added",t,n,a)}removeResourceBundle(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}hasResourceBundle(t,n){return this.getResource(t,n)!==void 0}getResourceBundle(t,n){return n||(n=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(t,n)}:this.getResource(t,n)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const n=this.getDataByLanguage(t);return!!(n&&Object.keys(n)||[]).find(r=>n[r]&&Object.keys(n[r]).length>0)}toJSON(){return this.data}}var Yg={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,a,r){return e.forEach(i=>{this.processors[i]&&(t=this.processors[i].process(t,n,a,r))}),t}};const Og={};class Go extends Vo{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),r1(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=dt.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(t==null)return!1;const a=this.resolve(t,n);return a&&a.res!==void 0}extractFromKey(t,n){let a=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;a===void 0&&(a=":");const r=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let i=n.ns||this.options.defaultNS||[];const o=a&&t.indexOf(a)>-1,s=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!p1(t,a,r);if(o&&!s){const l=t.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:t,namespaces:i};const u=t.split(a);(a!==r||a===r&&this.options.ns.indexOf(u[0])>-1)&&(i=u.shift()),t=u.join(r)}return typeof i=="string"&&(i=[i]),{key:t,namespaces:i}}translate(t,n,a){if(typeof n!="object"&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),typeof n=="object"&&(n={...n}),n||(n={}),t==null)return"";Array.isArray(t)||(t=[String(t)]);const r=n.returnDetails!==void 0?n.returnDetails:this.options.returnDetails,i=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,{key:o,namespaces:s}=this.extractFromKey(t[t.length-1],n),l=s[s.length-1],u=n.lng||this.language,d=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&u.toLowerCase()==="cimode"){if(d){const w=n.nsSeparator||this.options.nsSeparator;return r?{res:`${l}${w}${o}`,usedKey:o,exactUsedKey:o,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:`${l}${w}${o}`}return r?{res:o,usedKey:o,exactUsedKey:o,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:o}const p=this.resolve(t,n);let m=p&&p.res;const f=p&&p.usedKey||o,y=p&&p.exactUsedKey||o,v=Object.prototype.toString.apply(m),h=["[object Number]","[object Function]","[object RegExp]"],g=n.joinArrays!==void 0?n.joinArrays:this.options.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject;if(b&&m&&(typeof m!="string"&&typeof m!="boolean"&&typeof m!="number")&&h.indexOf(v)<0&&!(typeof g=="string"&&Array.isArray(m))){if(!n.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const w=this.options.returnedObjectHandler?this.options.returnedObjectHandler(f,m,{...n,ns:s}):`key '${o} (${this.language})' returned an object instead of string.`;return r?(p.res=w,p.usedParams=this.getUsedParamsDetails(n),p):w}if(i){const w=Array.isArray(m),C=w?[]:{},S=w?y:f;for(const E in m)if(Object.prototype.hasOwnProperty.call(m,E)){const j=`${S}${i}${E}`;C[E]=this.translate(j,{...n,joinArrays:!1,ns:s}),C[E]===j&&(C[E]=m[E])}m=C}}else if(b&&typeof g=="string"&&Array.isArray(m))m=m.join(g),m&&(m=this.extendTranslation(m,t,n,a));else{let w=!1,C=!1;const S=n.count!==void 0&&typeof n.count!="string",E=Go.hasDefaultValue(n),j=S?this.pluralResolver.getSuffix(u,n.count,n):"",P=n.ordinal&&S?this.pluralResolver.getSuffix(u,n.count,{ordinal:!1}):"",M=S&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),me=M&&n[`defaultValue${this.options.pluralSeparator}zero`]||n[`defaultValue${j}`]||n[`defaultValue${P}`]||n.defaultValue;!this.isValidLookup(m)&&E&&(w=!0,m=me),this.isValidLookup(m)||(C=!0,m=o);const ee=(n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&C?void 0:m,mt=E&&me!==m&&this.options.updateMissing;if(C||w||mt){if(this.logger.log(mt?"updateKey":"missingKey",u,l,o,mt?me:m),i){const he=this.resolve(o,{...n,keySeparator:!1});he&&he.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let Me=[];const pt=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if(this.options.saveMissingTo==="fallback"&&pt&&pt[0])for(let he=0;he<pt.length;he++)Me.push(pt[he]);else this.options.saveMissingTo==="all"?Me=this.languageUtils.toResolveHierarchy(n.lng||this.language):Me.push(n.lng||this.language);const wa=(he,Xe,Sn)=>{const N=E&&Sn!==m?Sn:ee;this.options.missingKeyHandler?this.options.missingKeyHandler(he,l,Xe,N,mt,n):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(he,l,Xe,N,mt,n),this.emit("missingKey",he,l,Xe,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&S?Me.forEach(he=>{const Xe=this.pluralResolver.getSuffixes(he,n);M&&n[`defaultValue${this.options.pluralSeparator}zero`]&&Xe.indexOf(`${this.options.pluralSeparator}zero`)<0&&Xe.push(`${this.options.pluralSeparator}zero`),Xe.forEach(Sn=>{wa([he],o+Sn,n[`defaultValue${Sn}`]||me)})}):wa(Me,o,me))}m=this.extendTranslation(m,t,n,p,a),C&&m===o&&this.options.appendNamespaceToMissingKey&&(m=`${l}:${o}`),(C||w)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${o}`:o,w?m:void 0):m=this.options.parseMissingKeyHandler(m))}return r?(p.res=m,p.usedParams=this.getUsedParamsDetails(n),p):m}extendTranslation(t,n,a,r,i){var o=this;if(this.i18nFormat&&this.i18nFormat.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...a},a.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!a.skipInterpolation){a.interpolation&&this.interpolator.init({...a,interpolation:{...this.options.interpolation,...a.interpolation}});const u=typeof t=="string"&&(a&&a.interpolation&&a.interpolation.skipOnVariables!==void 0?a.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let d;if(u){const m=t.match(this.interpolator.nestingRegexp);d=m&&m.length}let p=a.replace&&typeof a.replace!="string"?a.replace:a;if(this.options.interpolation.defaultVariables&&(p={...this.options.interpolation.defaultVariables,...p}),t=this.interpolator.interpolate(t,p,a.lng||this.language,a),u){const m=t.match(this.interpolator.nestingRegexp),f=m&&m.length;d<f&&(a.nest=!1)}!a.lng&&this.options.compatibilityAPI!=="v1"&&r&&r.res&&(a.lng=r.usedLng),a.nest!==!1&&(t=this.interpolator.nest(t,function(){for(var m=arguments.length,f=new Array(m),y=0;y<m;y++)f[y]=arguments[y];return i&&i[0]===f[0]&&!a.context?(o.logger.warn(`It seems you are nesting recursively key: ${f[0]} in key: ${n[0]}`),null):o.translate(...f,n)},a)),a.interpolation&&this.interpolator.reset()}const s=a.postProcess||this.options.postProcess,l=typeof s=="string"?[s]:s;return t!=null&&l&&l.length&&a.applyPostProcessor!==!1&&(t=Yg.handle(l,t,n,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(a)},...a}:a,this)),t}resolve(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a,r,i,o,s;return typeof t=="string"&&(t=[t]),t.forEach(l=>{if(this.isValidLookup(a))return;const u=this.extractFromKey(l,n),d=u.key;r=d;let p=u.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const m=n.count!==void 0&&typeof n.count!="string",f=m&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),y=n.context!==void 0&&(typeof n.context=="string"||typeof n.context=="number")&&n.context!=="",v=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);p.forEach(h=>{this.isValidLookup(a)||(s=h,!Og[`${v[0]}-${h}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(s)&&(Og[`${v[0]}-${h}`]=!0,this.logger.warn(`key "${r}" for languages "${v.join(", ")}" won't get resolved as namespace "${s}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),v.forEach(g=>{if(this.isValidLookup(a))return;o=g;const b=[d];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(b,d,g,h,n);else{let w;m&&(w=this.pluralResolver.getSuffix(g,n.count,n));const C=`${this.options.pluralSeparator}zero`,S=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(m&&(b.push(d+w),n.ordinal&&w.indexOf(S)===0&&b.push(d+w.replace(S,this.options.pluralSeparator)),f&&b.push(d+C)),y){const E=`${d}${this.options.contextSeparator}${n.context}`;b.push(E),m&&(b.push(E+w),n.ordinal&&w.indexOf(S)===0&&b.push(E+w.replace(S,this.options.pluralSeparator)),f&&b.push(E+C))}}let x;for(;x=b.pop();)this.isValidLookup(a)||(i=x,a=this.getResource(g,h,x,n))}))})}),{res:a,usedKey:r,exactUsedKey:i,usedLng:o,usedNS:s}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,n,a){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,a,r):this.resourceStore.getResource(t,n,a,r)}getUsedParamsDetails(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],a=t.replace&&typeof t.replace!="string";let r=a?t.replace:t;if(a&&typeof t.count<"u"&&(r.count=t.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!a){r={...r};for(const i of n)delete r[i]}return r}static hasDefaultValue(t){const n="defaultValue";for(const a in t)if(Object.prototype.hasOwnProperty.call(t,a)&&n===a.substring(0,n.length)&&t[a]!==void 0)return!0;return!1}}function pu(e){return e.charAt(0).toUpperCase()+e.slice(1)}class Bg{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=dt.create("languageUtils")}getScriptPartFromCode(t){if(t=qo(t),!t||t.indexOf("-")<0)return null;const n=t.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(t){if(t=qo(t),!t||t.indexOf("-")<0)return t;const n=t.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(t){if(typeof t=="string"&&t.indexOf("-")>-1){const n=["hans","hant","latn","cyrl","cans","mong","arab"];let a=t.split("-");return this.options.lowerCaseLng?a=a.map(r=>r.toLowerCase()):a.length===2?(a[0]=a[0].toLowerCase(),a[1]=a[1].toUpperCase(),n.indexOf(a[1].toLowerCase())>-1&&(a[1]=pu(a[1].toLowerCase()))):a.length===3&&(a[0]=a[0].toLowerCase(),a[1].length===2&&(a[1]=a[1].toUpperCase()),a[0]!=="sgn"&&a[2].length===2&&(a[2]=a[2].toUpperCase()),n.indexOf(a[1].toLowerCase())>-1&&(a[1]=pu(a[1].toLowerCase())),n.indexOf(a[2].toLowerCase())>-1&&(a[2]=pu(a[2].toLowerCase()))),a.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let n;return t.forEach(a=>{if(n)return;const r=this.formatLanguageCode(a);(!this.options.supportedLngs||this.isSupportedCode(r))&&(n=r)}),!n&&this.options.supportedLngs&&t.forEach(a=>{if(n)return;const r=this.getLanguagePartFromCode(a);if(this.isSupportedCode(r))return n=r;n=this.options.supportedLngs.find(i=>{if(i===r)return i;if(!(i.indexOf("-")<0&&r.indexOf("-")<0)&&(i.indexOf("-")>0&&r.indexOf("-")<0&&i.substring(0,i.indexOf("-"))===r||i.indexOf(r)===0&&r.length>1))return i})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(t,n){if(!t)return[];if(typeof t=="function"&&(t=t(n)),typeof t=="string"&&(t=[t]),Array.isArray(t))return t;if(!n)return t.default||[];let a=t[n];return a||(a=t[this.getScriptPartFromCode(n)]),a||(a=t[this.formatLanguageCode(n)]),a||(a=t[this.getLanguagePartFromCode(n)]),a||(a=t.default),a||[]}toResolveHierarchy(t,n){const a=this.getFallbackCodes(n||this.options.fallbackLng||[],t),r=[],i=o=>{o&&(this.isSupportedCode(o)?r.push(o):this.logger.warn(`rejecting language code not found in supportedLngs: ${o}`))};return typeof t=="string"&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&i(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&i(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&i(this.getLanguagePartFromCode(t))):typeof t=="string"&&i(this.formatLanguageCode(t)),a.forEach(o=>{r.indexOf(o)<0&&i(this.formatLanguageCode(o))}),r}}let h1=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],f1={1:function(e){return+(e>1)},2:function(e){return+(e!=1)},3:function(e){return 0},4:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2},5:function(e){return e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},6:function(e){return e==1?0:e>=2&&e<=4?1:2},7:function(e){return e==1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2},8:function(e){return e==1?0:e==2?1:e!=8&&e!=11?2:3},9:function(e){return+(e>=2)},10:function(e){return e==1?0:e==2?1:e<7?2:e<11?3:4},11:function(e){return e==1||e==11?0:e==2||e==12?1:e>2&&e<20?2:3},12:function(e){return+(e%10!=1||e%100==11)},13:function(e){return+(e!==0)},14:function(e){return e==1?0:e==2?1:e==3?2:3},15:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2},16:function(e){return e%10==1&&e%100!=11?0:e!==0?1:2},17:function(e){return e==1||e%10==1&&e%100!=11?0:1},18:function(e){return e==0?0:e==1?1:2},19:function(e){return e==1?0:e==0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3},20:function(e){return e==1?0:e==0||e%100>0&&e%100<20?1:2},21:function(e){return e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0},22:function(e){return e==1?0:e==2?1:(e<0||e>10)&&e%10==0?2:3}};const g1=["v1","v2","v3"],b1=["v4"],Hg={zero:0,one:1,two:2,few:3,many:4,other:5};function y1(){const e={};return h1.forEach(t=>{t.lngs.forEach(n=>{e[n]={numbers:t.nr,plurals:f1[t.fc]}})}),e}class k1{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=n,this.logger=dt.create("pluralResolver"),(!this.options.compatibilityJSON||b1.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=y1()}addRule(t,n){this.rules[t]=n}getRule(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(qo(t==="dev"?"en":t),{type:n.ordinal?"ordinal":"cardinal"})}catch{return}return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}needsPlural(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const a=this.getRule(t,n);return this.shouldUseIntlApi()?a&&a.resolvedOptions().pluralCategories.length>1:a&&a.numbers.length>1}getPluralFormsOfKey(t,n){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,a).map(r=>`${n}${r}`)}getSuffixes(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const a=this.getRule(t,n);return a?this.shouldUseIntlApi()?a.resolvedOptions().pluralCategories.sort((r,i)=>Hg[r]-Hg[i]).map(r=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r}`):a.numbers.map(r=>this.getSuffix(t,r,n)):[]}getSuffix(t,n){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=this.getRule(t,a);return r?this.shouldUseIntlApi()?`${this.options.prepend}${a.ordinal?`ordinal${this.options.prepend}`:""}${r.select(n)}`:this.getSuffixRetroCompatible(r,n):(this.logger.warn(`no plural rule found for: ${t}`),"")}getSuffixRetroCompatible(t,n){const a=t.noAbs?t.plurals(n):t.plurals(Math.abs(n));let r=t.numbers[a];this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1&&(r===2?r="plural":r===1&&(r=""));const i=()=>this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString();return this.options.compatibilityJSON==="v1"?r===1?"":typeof r=="number"?`_plural_${r.toString()}`:i():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1?i():this.options.prepend&&a.toString()?this.options.prepend+a.toString():a.toString()}shouldUseIntlApi(){return!g1.includes(this.options.compatibilityJSON)}}function Vg(e,t,n){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=s1(e,t,n);return!i&&r&&typeof n=="string"&&(i=mu(e,n,a),i===void 0&&(i=mu(t,n,a))),i}class v1{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=dt.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||(n=>n),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});const{escape:n,escapeValue:a,useRawValueToEscape:r,prefix:i,prefixEscaped:o,suffix:s,suffixEscaped:l,formatSeparator:u,unescapeSuffix:d,unescapePrefix:p,nestingPrefix:m,nestingPrefixEscaped:f,nestingSuffix:y,nestingSuffixEscaped:v,nestingOptionsSeparator:h,maxReplaces:g,alwaysFormat:b}=t.interpolation;this.escape=n!==void 0?n:c1,this.escapeValue=a!==void 0?a:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=i?ka(i):o||"{{",this.suffix=s?ka(s):l||"}}",this.formatSeparator=u||",",this.unescapePrefix=d?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":d||"",this.nestingPrefix=m?ka(m):f||ka("$t("),this.nestingSuffix=y?ka(y):v||ka(")"),this.nestingOptionsSeparator=h||",",this.maxReplaces=g||1e3,this.alwaysFormat=b!==void 0?b:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(n,a)=>n&&n.source===a?(n.lastIndex=0,n):new RegExp(a,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,n,a,r){let i,o,s;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function u(y){return y.replace(/\$/g,"$$$$")}const d=y=>{if(y.indexOf(this.formatSeparator)<0){const b=Vg(n,l,y,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(b,void 0,a,{...r,...n,interpolationkey:y}):b}const v=y.split(this.formatSeparator),h=v.shift().trim(),g=v.join(this.formatSeparator).trim();return this.format(Vg(n,l,h,this.options.keySeparator,this.options.ignoreJSONStructure),g,a,{...r,...n,interpolationkey:h})};this.resetRegExp();const p=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,m=r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:y=>u(y)},{regex:this.regexp,safeValue:y=>this.escapeValue?u(this.escape(y)):u(y)}].forEach(y=>{for(s=0;i=y.regex.exec(t);){const v=i[1].trim();if(o=d(v),o===void 0)if(typeof p=="function"){const g=p(t,i,r);o=typeof g=="string"?g:""}else if(r&&Object.prototype.hasOwnProperty.call(r,v))o="";else if(m){o=i[0];continue}else this.logger.warn(`missed to pass in variable ${v} for interpolating ${t}`),o="";else typeof o!="string"&&!this.useRawValueToEscape&&(o=Rg(o));const h=y.safeValue(o);if(t=t.replace(i[0],h),m?(y.regex.lastIndex+=o.length,y.regex.lastIndex-=i[0].length):y.regex.lastIndex=0,s++,s>=this.maxReplaces)break}}),t}nest(t,n){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r,i,o;function s(l,u){const d=this.nestingOptionsSeparator;if(l.indexOf(d)<0)return l;const p=l.split(new RegExp(`${d}[ ]*{`));let m=`{${p[1]}`;l=p[0],m=this.interpolate(m,o);const f=m.match(/'/g),y=m.match(/"/g);(f&&f.length%2===0&&!y||y.length%2!==0)&&(m=m.replace(/'/g,'"'));try{o=JSON.parse(m),u&&(o={...u,...o})}catch(v){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,v),`${l}${d}${m}`}return o.defaultValue&&o.defaultValue.indexOf(this.prefix)>-1&&delete o.defaultValue,l}for(;r=this.nestingRegexp.exec(t);){let l=[];o={...a},o=o.replace&&typeof o.replace!="string"?o.replace:o,o.applyPostProcessor=!1,delete o.defaultValue;let u=!1;if(r[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(r[1])){const d=r[1].split(this.formatSeparator).map(p=>p.trim());r[1]=d.shift(),l=d,u=!0}if(i=n(s.call(this,r[1].trim(),o),o),i&&r[0]===t&&typeof i!="string")return i;typeof i!="string"&&(i=Rg(i)),i||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${t}`),i=""),u&&(i=l.reduce((d,p)=>this.format(d,p,a.lng,{...a,interpolationkey:r[1].trim()}),i.trim())),t=t.replace(r[0],i),this.regexp.lastIndex=0}return t}}function w1(e){let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const a=e.split("(");t=a[0].toLowerCase().trim();const r=a[1].substring(0,a[1].length-1);t==="currency"&&r.indexOf(":")<0?n.currency||(n.currency=r.trim()):t==="relativetime"&&r.indexOf(":")<0?n.range||(n.range=r.trim()):r.split(";").forEach(o=>{if(o){const[s,...l]=o.split(":"),u=l.join(":").trim().replace(/^'+|'+$/g,""),d=s.trim();n[d]||(n[d]=u),u==="false"&&(n[d]=!1),u==="true"&&(n[d]=!0),isNaN(u)||(n[d]=parseInt(u,10))}})}return{formatName:t,formatOptions:n}}function va(e){const t={};return function(a,r,i){const o=r+JSON.stringify(i);let s=t[o];return s||(s=e(qo(r),i),t[o]=s),s(a)}}class x1{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=dt.create("formatter"),this.options=t,this.formats={number:va((n,a)=>{const r=new Intl.NumberFormat(n,{...a});return i=>r.format(i)}),currency:va((n,a)=>{const r=new Intl.NumberFormat(n,{...a,style:"currency"});return i=>r.format(i)}),datetime:va((n,a)=>{const r=new Intl.DateTimeFormat(n,{...a});return i=>r.format(i)}),relativetime:va((n,a)=>{const r=new Intl.RelativeTimeFormat(n,{...a});return i=>r.format(i,a.range||"day")}),list:va((n,a)=>{const r=new Intl.ListFormat(n,{...a});return i=>r.format(i)})},this.init(t)}init(t){const a=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=a.formatSeparator?a.formatSeparator:a.formatSeparator||","}add(t,n){this.formats[t.toLowerCase().trim()]=n}addCached(t,n){this.formats[t.toLowerCase().trim()]=va(n)}format(t,n,a){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return n.split(this.formatSeparator).reduce((s,l)=>{const{formatName:u,formatOptions:d}=w1(l);if(this.formats[u]){let p=s;try{const m=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},f=m.locale||m.lng||r.locale||r.lng||a;p=this.formats[u](s,f,{...d,...r,...m})}catch(m){this.logger.warn(m)}return p}else this.logger.warn(`there was no format function for ${u}`);return s},t)}}function S1(e,t){e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)}class E1 extends Vo{constructor(t,n,a){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=n,this.services=a,this.languageUtils=a.languageUtils,this.options=r,this.logger=dt.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(a,r.backend,r)}queueLoad(t,n,a,r){const i={},o={},s={},l={};return t.forEach(u=>{let d=!0;n.forEach(p=>{const m=`${u}|${p}`;!a.reload&&this.store.hasResourceBundle(u,p)?this.state[m]=2:this.state[m]<0||(this.state[m]===1?o[m]===void 0&&(o[m]=!0):(this.state[m]=1,d=!1,o[m]===void 0&&(o[m]=!0),i[m]===void 0&&(i[m]=!0),l[p]===void 0&&(l[p]=!0)))}),d||(s[u]=!0)}),(Object.keys(i).length||Object.keys(o).length)&&this.queue.push({pending:o,pendingCount:Object.keys(o).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(i),pending:Object.keys(o),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}loaded(t,n,a){const r=t.split("|"),i=r[0],o=r[1];n&&this.emit("failedLoading",i,o,n),a&&this.store.addResourceBundle(i,o,a,void 0,void 0,{skipCopy:!0}),this.state[t]=n?-1:2;const s={};this.queue.forEach(l=>{o1(l.loaded,[i],o),S1(l,t),n&&l.errors.push(n),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(u=>{s[u]||(s[u]={});const d=l.loaded[u];d.length&&d.forEach(p=>{s[u][p]===void 0&&(s[u][p]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(l=>!l.done)}read(t,n,a){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,o=arguments.length>5?arguments[5]:void 0;if(!t.length)return o(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:n,fcName:a,tried:r,wait:i,callback:o});return}this.readingCalls++;const s=(u,d)=>{if(this.readingCalls--,this.waitingReads.length>0){const p=this.waitingReads.shift();this.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(u&&d&&r<this.maxRetries){setTimeout(()=>{this.read.call(this,t,n,a,r+1,i*2,o)},i);return}o(u,d)},l=this.backend[a].bind(this.backend);if(l.length===2){try{const u=l(t,n);u&&typeof u.then=="function"?u.then(d=>s(null,d)).catch(s):s(null,u)}catch(u){s(u)}return}return l(t,n,s)}prepareLoading(t,n){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();typeof t=="string"&&(t=this.languageUtils.toResolveHierarchy(t)),typeof n=="string"&&(n=[n]);const i=this.queueLoad(t,n,a,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach(o=>{this.loadOne(o)})}load(t,n,a){this.prepareLoading(t,n,{},a)}reload(t,n,a){this.prepareLoading(t,n,{reload:!0},a)}loadOne(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const a=t.split("|"),r=a[0],i=a[1];this.read(r,i,"read",void 0,void 0,(o,s)=>{o&&this.logger.warn(`${n}loading namespace ${i} for language ${r} failed`,o),!o&&s&&this.logger.log(`${n}loaded namespace ${i} for language ${r}`,s),this.loaded(t,o,s)})}saveMissing(t,n,a,r,i){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},s=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(n)){this.logger.warn(`did not save key "${a}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(a==null||a==="")){if(this.backend&&this.backend.create){const l={...o,isUpdate:i},u=this.backend.create.bind(this.backend);if(u.length<6)try{let d;u.length===5?d=u(t,n,a,r,l):d=u(t,n,a,r),d&&typeof d.then=="function"?d.then(p=>s(null,p)).catch(s):s(null,d)}catch(d){s(d)}else u(t,n,a,r,s,l)}!t||!t[0]||this.store.addResource(t[0],n,a,r)}}}function Wg(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){let n={};if(typeof t[1]=="object"&&(n=t[1]),typeof t[1]=="string"&&(n.defaultValue=t[1]),typeof t[2]=="string"&&(n.tDescription=t[2]),typeof t[2]=="object"||typeof t[3]=="object"){const a=t[3]||t[2];Object.keys(a).forEach(r=>{n[r]=a[r]})}return n},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function qg(e){return typeof e.ns=="string"&&(e.ns=[e.ns]),typeof e.fallbackLng=="string"&&(e.fallbackLng=[e.fallbackLng]),typeof e.fallbackNS=="string"&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function Ko(){}function C1(e){Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(n=>{typeof e[n]=="function"&&(e[n]=e[n].bind(e))})}class Fr extends Vo{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(super(),this.options=qg(t),this.services={},this.logger=dt,this.modules={external:[]},C1(this),n&&!this.isInitialized&&!t.isClone){if(!this.options.initImmediate)return this.init(t,n),this;setTimeout(()=>{this.init(t,n)},0)}}init(){var t=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof n=="function"&&(a=n,n={}),!n.defaultNS&&n.defaultNS!==!1&&n.ns&&(typeof n.ns=="string"?n.defaultNS=n.ns:n.ns.indexOf("translation")<0&&(n.defaultNS=n.ns[0]));const r=Wg();this.options={...r,...this.options,...qg(n)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...r.interpolation,...this.options.interpolation}),n.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=n.keySeparator),n.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=n.nsSeparator);function i(d){return d?typeof d=="function"?new d:d:null}if(!this.options.isClone){this.modules.logger?dt.init(i(this.modules.logger),this.options):dt.init(null,this.options);let d;this.modules.formatter?d=this.modules.formatter:typeof Intl<"u"&&(d=x1);const p=new Bg(this.options);this.store=new Ug(this.options.resources,this.options);const m=this.services;m.logger=dt,m.resourceStore=this.store,m.languageUtils=p,m.pluralResolver=new k1(p,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),d&&(!this.options.interpolation.format||this.options.interpolation.format===r.interpolation.format)&&(m.formatter=i(d),m.formatter.init(m,this.options),this.options.interpolation.format=m.formatter.format.bind(m.formatter)),m.interpolator=new v1(this.options),m.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},m.backendConnector=new E1(i(this.modules.backend),m.resourceStore,m,this.options),m.backendConnector.on("*",function(f){for(var y=arguments.length,v=new Array(y>1?y-1:0),h=1;h<y;h++)v[h-1]=arguments[h];t.emit(f,...v)}),this.modules.languageDetector&&(m.languageDetector=i(this.modules.languageDetector),m.languageDetector.init&&m.languageDetector.init(m,this.options.detection,this.options)),this.modules.i18nFormat&&(m.i18nFormat=i(this.modules.i18nFormat),m.i18nFormat.init&&m.i18nFormat.init(this)),this.translator=new Go(this.services,this.options),this.translator.on("*",function(f){for(var y=arguments.length,v=new Array(y>1?y-1:0),h=1;h<y;h++)v[h-1]=arguments[h];t.emit(f,...v)}),this.modules.external.forEach(f=>{f.init&&f.init(this)})}if(this.format=this.options.interpolation.format,a||(a=Ko),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const d=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);d.length>0&&d[0]!=="dev"&&(this.options.lng=d[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(d=>{this[d]=function(){return t.store[d](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(d=>{this[d]=function(){return t.store[d](...arguments),t}});const l=Mr(),u=()=>{const d=(p,m)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(m),a(p,m)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return d(null,this.t.bind(this));this.changeLanguage(this.options.lng,d)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),l}loadResources(t){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ko;const r=typeof t=="string"?t:this.language;if(typeof t=="function"&&(a=t),!this.options.resources||this.options.partialBundledLanguages){if(r&&r.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return a();const i=[],o=s=>{if(!s||s==="cimode")return;this.services.languageUtils.toResolveHierarchy(s).forEach(u=>{u!=="cimode"&&i.indexOf(u)<0&&i.push(u)})};r?o(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>o(l)),this.options.preload&&this.options.preload.forEach(s=>o(s)),this.services.backendConnector.load(i,this.options.ns,s=>{!s&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),a(s)})}else a(null)}reloadResources(t,n,a){const r=Mr();return t||(t=this.languages),n||(n=this.options.ns),a||(a=Ko),this.services.backendConnector.reload(t,n,i=>{r.resolve(),a(i)}),r}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&Yg.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1))for(let n=0;n<this.languages.length;n++){const a=this.languages[n];if(!(["cimode","dev"].indexOf(a)>-1)&&this.store.hasLanguageSomeTranslations(a)){this.resolvedLanguage=a;break}}}changeLanguage(t,n){var a=this;this.isLanguageChangingTo=t;const r=Mr();this.emit("languageChanging",t);const i=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},o=(l,u)=>{u?(i(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit("languageChanged",u),this.logger.log("languageChanged",u)):this.isLanguageChangingTo=void 0,r.resolve(function(){return a.t(...arguments)}),n&&n(l,function(){return a.t(...arguments)})},s=l=>{!t&&!l&&this.services.languageDetector&&(l=[]);const u=typeof l=="string"?l:this.services.languageUtils.getBestMatchFromCodes(l);u&&(this.language||i(u),this.translator.language||this.translator.changeLanguage(u),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(u)),this.loadResources(u,d=>{o(d,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?s(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(s):this.services.languageDetector.detect(s):s(t),r}getFixedT(t,n,a){var r=this;const i=function(o,s){let l;if(typeof s!="object"){for(var u=arguments.length,d=new Array(u>2?u-2:0),p=2;p<u;p++)d[p-2]=arguments[p];l=r.options.overloadTranslationOptionHandler([o,s].concat(d))}else l={...s};l.lng=l.lng||i.lng,l.lngs=l.lngs||i.lngs,l.ns=l.ns||i.ns,l.keyPrefix!==""&&(l.keyPrefix=l.keyPrefix||a||i.keyPrefix);const m=r.options.keySeparator||".";let f;return l.keyPrefix&&Array.isArray(o)?f=o.map(y=>`${l.keyPrefix}${m}${y}`):f=l.keyPrefix?`${l.keyPrefix}${m}${o}`:o,r.t(f,l)};return typeof t=="string"?i.lng=t:i.lngs=t,i.ns=n,i.keyPrefix=a,i}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const a=n.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(a.toLowerCase()==="cimode")return!0;const o=(s,l)=>{const u=this.services.backendConnector.state[`${s}|${l}`];return u===-1||u===2};if(n.precheck){const s=n.precheck(this,o);if(s!==void 0)return s}return!!(this.hasResourceBundle(a,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||o(a,t)&&(!r||o(i,t)))}loadNamespaces(t,n){const a=Mr();return this.options.ns?(typeof t=="string"&&(t=[t]),t.forEach(r=>{this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}),this.loadResources(r=>{a.resolve(),n&&n(r)}),a):(n&&n(),Promise.resolve())}loadLanguages(t,n){const a=Mr();typeof t=="string"&&(t=[t]);const r=this.options.preload||[],i=t.filter(o=>r.indexOf(o)<0&&this.services.languageUtils.isSupportedCode(o));return i.length?(this.options.preload=r.concat(i),this.loadResources(o=>{a.resolve(),n&&n(o)}),a):(n&&n(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!t)return"rtl";const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],a=this.services&&this.services.languageUtils||new Bg(Wg());return n.indexOf(a.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new Fr(t,n)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ko;const a=t.forkResourceStore;a&&delete t.forkResourceStore;const r={...this.options,...t,isClone:!0},i=new Fr(r);return(t.debug!==void 0||t.prefix!==void 0)&&(i.logger=i.logger.clone(t)),["store","services","language"].forEach(s=>{i[s]=this[s]}),i.services={...this.services},i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},a&&(i.store=new Ug(this.store.data,r),i.services.resourceStore=i.store),i.translator=new Go(i.services,r),i.translator.on("*",function(s){for(var l=arguments.length,u=new Array(l>1?l-1:0),d=1;d<l;d++)u[d-1]=arguments[d];i.emit(s,...u)}),i.init(r,n),i.translator.options=r,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Gg=Fr.createInstance();Gg.createInstance=Fr.createInstance;var j1=Gg;const $1=j1,Kg=["af","bg","ca","cs","da","de","en","eo","es","fa","fi","fr","gd","hr","hu","id","is","it","ja","ko","lt","mn","ms","nl","nn","no","pl","pt","pt-BR","ro","ru","si","sk","sl","sq","sr","sv","tr","uk","uz","vi","zh","zh-Hant"];du.exports=(e="en",t="portal")=>{const n=$1.createInstance();return n.init({lng:e,nsSeparator:!1,keySeparator:!1,returnEmptyString:!1,fallbackLng:!1,ns:t,defaultNS:t,resources:Kg.reduce((a,r)=>{const i=gS("/ghost/i18n/lib")(`../locales/${r}/${t}.json`);return a[r]={[t]:{...i,...i.default&&typeof i.default=="object"?i.default:{}}},a},{})}),n},du.exports.SUPPORTED_LOCALES=Kg;var P1=du.exports,N1=P1;const T1=Ne(N1),I1={showPopup:!0,site:ya,member:Bo.free,page:"accountEmail",...CC(),pageData:_g};function D1({site:e,children:t}){const{portal_sentry:n}=e||{};return n&&n.dsn?c.jsx(Rc,{children:t}):c.jsx(c.Fragment,{children:t})}class z1 extends L.Component{constructor(t){super(t),this.setupCustomTriggerButton(t),this.state={site:null,member:null,page:"loading",showPopup:!1,action:"init:running",initStatus:"running",lastPage:null,customSiteUrl:t.customSiteUrl}}componentDidMount(){this.initSetup()}componentDidUpdate(t,n){var a,r,i;if(n.showPopup!==this.state.showPopup){this.handleCustomTriggerClassUpdate();try{this.state.showPopup?(this.bodyScroll=(i=(r=(a=window.document)==null?void 0:a.body)==null?void 0:r.style)==null?void 0:i.overflow,window.document.body.style.overflow="hidden"):window.document.body.style.overflow=this.bodyScroll||""}catch{}}if(this.state.initStatus==="success"&&n.initStatus!==this.state.initStatus){const{siteUrl:o}=this.props,s=this.getContextFromState();this.sendPortalReadyEvent(),n1({siteUrl:o,site:s.site,member:s.member})}}componentWillUnmount(){clearTimeout(this.timeoutId),this.customTriggerButtons&&this.customTriggerButtons.forEach(t=>{t.removeEventListener("click",this.clickHandler)}),window.removeEventListener("hashchange",this.hashHandler,!1)}sendPortalReadyEvent(){window.self!==window.parent&&window.parent.postMessage({type:"portal-ready",payload:{}},"*")}setupCustomTriggerButton(){this.clickHandler=a=>{a.preventDefault();const r=a.currentTarget,i=r&&r.dataset.portal,{page:o,pageQuery:s,pageData:l}=this.getPageFromLinkPath(i)||{};this.state.initStatus==="success"&&(s&&s!=="free"?this.handleSignupQuery({site:this.state.site,pageQuery:s}):this.dispatchAction("openPopup",{page:o,pageQuery:s,pageData:l}))};const t="[data-portal]",n="gh-portal-close";this.customTriggerButtons=document.querySelectorAll(t)||[],this.customTriggerButtons.forEach(a=>{a.classList.add(n),a.removeEventListener("click",this.clickHandler),a.addEventListener("click",this.clickHandler)})}handleCustomTriggerClassUpdate(){var a;const t="gh-portal-open",n="gh-portal-close";(a=this.customTriggerButtons)==null||a.forEach(r=>{const i=this.state.showPopup?t:n,o=this.state.showPopup?n:t;r.classList.add(i),r.classList.remove(o)})}async initSetup(){try{const{site:t,member:n,page:a,showPopup:r,popupNotification:i,lastPage:o,pageQuery:s,pageData:l}=await this.fetchData(),u=this.props.siteI18nEnabled?t.locale:"en",d=T1(u,"portal"),p={site:t,member:n,page:a,lastPage:o,pageQuery:s,showPopup:r,pageData:l,popupNotification:i,t:d.t,action:"init:success",initStatus:"success"};if(this.handleSignupQuery({site:t,pageQuery:s,member:n}),this.setState(p),this.hashHandler=()=>{this.updateStateForPreviewLinks()},window.addEventListener("hashchange",this.hashHandler,!1),!n){const m=document.querySelectorAll("[data-lexical-signup-form]");m.length>0&&m.forEach(f=>{f.style.display=""})}this.setupRecommendationButtons()}catch(t){console.error("[Portal] Failed to initialize:",t),this.setState({action:"init:failed",initStatus:"failed"})}}async fetchData(){const{site:t,member:n}=await this.fetchApiData(),{site:a,...r}=this.fetchDevData(),{site:i,...o}=this.fetchLinkData(t),{site:s,...l}=this.fetchPreviewData(),{site:u,...d}=this.fetchNotificationData();return{member:n,page:"",site:{...t,...i,...s,...u,...a,plans:{...(a||{}).plans,...(t||{}).plans,...(s||{}).plans}},...r,...o,...d,...l}}fetchDevData(){return q(["dev"])&&!this.state.customSiteUrl?I1:q(["test"])?{showPopup:this.props.showPopup!==void 0?this.props.showPopup:!0}:{}}fetchOfferQueryStrData(t=""){const n=new URLSearchParams(t),a={};for(let r of n.entries()){const i=r[0],o=decodeURIComponent(r[1]);i==="name"?a.name=o||"":i==="code"?a.code=o||"":i==="display_title"?a.display_title=o||"":i==="display_description"?a.display_description=o||"":i==="type"?a.type=o||"":i==="cadence"?a.cadence=o||"":i==="duration"?a.duration=o||"":i==="duration_in_months"&&!isNaN(Number(o))?a.duration_in_months=Number(o):i==="amount"&&!isNaN(Number(o))?a.amount=Number(o):i==="currency"?a.currency=o||"":i==="status"?a.status=o||"":i==="tier_id"&&(a.tier={id:o||_g.tier.id})}return{page:"offer",pageData:a}}fetchQueryStrData(t=""){const n=new URLSearchParams(t),a={site:{plans:{}}},r=[];let i,o=null,s,l,u;for(let d of n.entries()){const p=d[0],m=decodeURIComponent(d[1]);if(p==="button")a.site.portal_button=JSON.parse(m);else if(p==="name")a.site.portal_name=JSON.parse(m);else if(p==="isFree"&&JSON.parse(m))r.push("free");else if(p==="isMonthly"&&JSON.parse(m))r.push("monthly");else if(p==="isYearly"&&JSON.parse(m))r.push("yearly");else if(p==="portalPrices")i=m?m.split(","):[];else if(p==="portalProducts")o=m?m.split(","):[];else if(p==="page"&&m)a.page=m;else if(p==="accentColor"&&(m===""||m))a.site.accent_color=m;else if(p==="buttonIcon"&&m)a.site.portal_button_icon=m;else if(p==="signupButtonText")a.site.portal_button_signup_text=m||"";else if(p==="signupTermsHtml")a.site.portal_signup_terms_html=m||"";else if(p==="signupCheckboxRequired")a.site.portal_signup_checkbox_required=JSON.parse(m);else if(p==="buttonStyle"&&m)a.site.portal_button_style=m;else if(p==="monthlyPrice"&&!isNaN(Number(m)))a.site.plans.monthly=Number(m),s=Number(m);else if(p==="yearlyPrice"&&!isNaN(Number(m)))a.site.plans.yearly=Number(m),l=Number(m);else if(p==="currency"&&m){const f=m.toUpperCase();a.site.plans.currency=f,a.site.plans.currency_symbol=de(f),u=f}else p==="disableBackground"?a.site.disableBackground=JSON.parse(m):p==="allowSelfSignup"?a.site.allow_self_signup=JSON.parse(m):p==="membersSignupAccess"&&m?a.site.members_signup_access=m:p==="portalDefaultPlan"&&m&&(a.site.portal_default_plan=m)}return a.site.portal_plans=r,a.site.portal_products=o,i?a.site.portal_plans=i:s&&l&&u&&(a.site.prices=[{id:"monthly",stripe_price_id:"dummy_stripe_monthly",stripe_product_id:"dummy_stripe_product",active:1,nickname:"Monthly",currency:u,amount:s,type:"recurring",interval:"month"},{id:"yearly",stripe_price_id:"dummy_stripe_yearly",stripe_product_id:"dummy_stripe_product",active:1,nickname:"Yearly",currency:u,amount:l,type:"recurring",interval:"year"}]),a}fetchNotificationData(){const{type:t,status:n,duration:a,autoHide:r,closeable:i}=Lf({billingOnly:!0})||{};return["stripe:billing-update"].includes(t)?n==="success"?{showPopup:!0,popupNotification:J({type:t,status:n,duration:a,closeable:i,autoHide:r,state:this.state,message:n==="success"?"Billing info updated successfully":""})}:{showPopup:!0}:{}}fetchLinkData(t){const n=new URLSearchParams(window.location.search);if(n.get("uuid")&&n.get("action")==="unsubscribe")return{showPopup:!0,page:"unsubscribe",pageData:{uuid:n.get("uuid"),newsletterUuid:n.get("newsletter"),comments:n.get("comments")}};if(Sf({site:t})&&n.get("action")==="signup"&&n.get("success")==="true")return{showPopup:!0,page:"recommendations",pageData:{signup:!0}};const[a,r]=window.location.hash.substr(1).split("?"),i=new URLSearchParams(r??""),o=/^(?:(\w+?))?\/monthly$/,s=/^(?:(\w+?))?\/yearly$/,l=/^offers\/(\w+?)\/?$/,u=/^\/portal\/?(?:\/(\w+(?:\/\w+)*))?\/?$/,d=/^\/feedback\/(\w+?)\/(\w+?)\/?$/;if(a&&d.test(a)&&i.get("uuid")){const[,p,m]=a.match(d),f=parseInt(m);if(f===1||f===0)return{showPopup:!0,page:"feedback",pageData:{uuid:i.get("uuid"),postId:p,score:f}}}if(a&&u.test(a)){const[,p]=a.match(u),{page:m,pageQuery:f,pageData:y}=this.getPageFromLinkPath(p,t)||{},v=["accountPlan","accountProfile"].includes(m)?"accountHome":null;return{showPopup:!(["monthly","yearly"].includes(f)||o.test(f)||s.test(f)||l.test(f)),...m?{page:m}:{},...f?{pageQuery:f}:{},...y?{pageData:y}:{},...v?{lastPage:v}:{}}}return{}}fetchPreviewData(){const[,t]=window.location.hash.substr(1).split("?");if(q(["preview"])){let n={};return q(["offerPreview"])?n=this.fetchOfferQueryStrData(t):n=this.fetchQueryStrData(t),{...n,showPopup:!0}}return{}}getColorOverride(){const t=document.querySelector("script[data-ghost]");return t&&t.dataset.accentColor?t.dataset.accentColor:!1}async fetchApiData(){const{siteUrl:t,customSiteUrl:n,apiUrl:a,apiKey:r}=this.props;try{this.GhostApi=this.props.api||Lo({siteUrl:t,apiUrl:a,apiKey:r});const{site:i,member:o}=await this.GhostApi.init(),s=this.getColorOverride();return s&&(i.accent_color=s),this.setupFirstPromoter({site:i,member:o}),this.setupSentry({site:i}),{site:i,member:o}}catch(i){if(q(["dev","test"],{customSiteUrl:n}))return{};throw i}}setupSentry({site:t}){if(q(["test"]))return null;const{portal_sentry:n,portal_version:a,version:r}=t,o=`portal@2.37.9|ghost@${r}`;n&&n.dsn&&yS({dsn:n.dsn,environment:n.env||"development",release:o,beforeSend:s=>FS({event:s})?s:null,allowUrls:[/https?:\/\/((www)\.)?unpkg\.com\/@tryghost\/portal/]})}setupFirstPromoter({site:t,member:n}){if(q(["test"]))return null;const a=ZS({site:t});let r=Kc({site:t});if(r=r==null?void 0:r.replace(/^(\S*\.)?(\S*\.\S*)$/i,".$2"),a&&r){const i=document.createElement("script");i.type="text/javascript",i.async=!0,i.src="https://cdn.firstpromoter.com/fprom.js",i.onload=i.onreadystatechange=function(){let s=this.readyState;if(!s||s==="complete"||s==="loaded")try{if(window.$FPROM.init(a,r),l0({member:n})){const l=n.email,u=n.uuid;if(window.$FPROM)window.$FPROM.trackSignup({email:l,uid:u});else{const d=window._fprom||[];window._fprom=d,d.push(["event","signup"]),d.push(["email",l]),d.push(["uid",u])}}}catch{}};const o=document.getElementsByTagName("script")[0];o.parentNode.insertBefore(i,o)}}async dispatchAction(t,n){clearTimeout(this.timeoutId),this.setState({action:`${t}:running`});try{const a=await XC({action:t,data:n,state:this.state,api:this.GhostApi});this.setState(a),a&&a.action&&!a.action.includes(":failed")&&(this.timeoutId=setTimeout(()=>{this.setState({action:""})},2e3))}catch(a){if(console.error(`[Portal] Failed to dispatch action: ${t}`,a),n&&n.throwErrors)throw a;const r=J({type:`${t}:failed`,autoHide:!0,closeable:!0,status:"error",state:this.state,meta:{error:a}});this.setState({action:`${t}:failed`,popupNotification:r})}}updateStateForPreviewLinks(){const{site:t,...n}=this.fetchPreviewData(),{site:a,...r}=this.fetchLinkData(),i={site:{...this.state.site,...a||{},...t||{},plans:{...this.state.site&&this.state.site.plans,...(a||{}).plans,...(t||{}).plans}},...r,...n};this.handleSignupQuery({site:i.site,pageQuery:i.pageQuery}),this.setState(i)}async handleOfferQuery({site:t,offerId:n,member:a=this.state.member}){const{portal_button:r}=t;if(Oc(),!ct({member:a}))try{const i=await this.GhostApi.site.offer({offerId:n}),o=i==null?void 0:i.offers[0];if(a0({site:t,offer:o}))if(r)this.dispatchAction("openPopup",{page:"offer",pageData:i==null?void 0:i.offers[0]});else{const s=da({site:t,productId:o.tier.id}),l=o.cadence==="month"?s.monthlyPrice:s.yearlyPrice;if(this.dispatchAction("openPopup",{page:"loading"}),a){const{tierId:u,cadence:d}=wn({site:t,priceId:l.id});this.dispatchAction("checkoutPlan",{plan:l.id,offerId:n,tierId:u,cadence:d})}else{const{tierId:u,cadence:d}=wn({site:t,priceId:l.id});this.dispatchAction("signup",{plan:l.id,offerId:n,tierId:u,cadence:d})}}}catch{}}handleSignupQuery({site:t,pageQuery:n,member:a}){const r=/^offers\/(\w+?)\/?$/;let i=n;if(r.test(n||"")){const[,s]=n.match(r);this.handleOfferQuery({site:t,offerId:s,member:a});return}Df({site:t,pageQuery:n})&&(i=Df({site:t,pageQuery:n}));const o=WS({site:t,priceId:i});if(n&&n!=="free"){Oc();const s=(o==null?void 0:o.id)||i;s!=="free"&&this.dispatchAction("openPopup",{page:"loading"});const{tierId:l,cadence:u}=wn({site:t,priceId:s});this.dispatchAction("signup",{plan:s,tierId:l,cadence:u})}}getPageFromLinkPath(t,n){const a=/^signup\/?(?:\/(\w+?))?\/?$/,r=/^signup\/?(?:\/(\w+?))\/monthly\/?$/,i=/^signup\/?(?:\/(\w+?))\/yearly\/?$/,o=/^offers\/(\w+?)\/?$/,s=n??this.state.site??{};if(t===void 0||t==="")return{page:"default"};if(o.test(t))return{pageQuery:t};if(t==="signup")return{page:"signup"};if(r.test(t)){const[,l]=t.match(r);return{page:"signup",pageQuery:`${l}/monthly`}}else if(i.test(t)){const[,l]=t.match(i);return{page:"signup",pageQuery:`${l}/yearly`}}else if(a.test(t)){const[,l]=t.match(a);return{page:"signup",pageQuery:l}}else{if(t==="signup/free")return{page:"signup",pageQuery:"free"};if(t==="signup/monthly")return{page:"signup",pageQuery:"monthly"};if(t==="signup/yearly")return{page:"signup",pageQuery:"yearly"};if(t==="signin")return{page:"signin"};if(t==="account")return{page:"accountHome"};if(t==="account/plans")return{page:"accountPlan"};if(t==="account/profile")return{page:"accountProfile"};if(t==="account/newsletters")return{page:"accountEmail"};if(t==="support")return{page:"support"};if(t==="support/success")return{page:"supportSuccess"};if(t==="support/error")return{page:"supportError"};if(t==="recommendations"&&Sf({site:s}))return{page:"recommendations",pageData:{signup:!1}}}return{page:"default"}}getAccentColor(){const{accent_color:t}=this.state.site||{};return t}getContextPage({site:t,page:n,member:a}){if(!n||n==="default"){const r=ut({site:t})?"signin":"signup";n=a?"accountHome":r}return n==="accountPlan"&&Qt({member:a})&&!Pr({member:a})&&(n="accountHome"),lu({page:n})}getContextMember({page:t,member:n,customSiteUrl:a}){return q(["dev","preview"],{customSiteUrl:a})?kC({page:t})||vC({page:t})?q(["dev"],{customSiteUrl:a})?n||Bo.free:q(["preview"])?Bo.preview:Bo.paid:null:n}getContextFromState(){const{site:t,member:n,action:a,page:r,lastPage:i,showPopup:o,pageQuery:s,pageData:l,popupNotification:u,customSiteUrl:d,t:p}=this.state,m=this.getContextPage({site:t,page:r,member:n}),f=this.getContextMember({page:m,member:n,customSiteUrl:d});return{api:this.GhostApi,site:t,action:a,brandColor:this.getAccentColor(),page:m,pageQuery:s,pageData:l,member:f,lastPage:i,showPopup:o,popupNotification:u,customSiteUrl:d,t:p,onAction:(y,v)=>this.dispatchAction(y,v)}}getRecommendationButtons(){const t="[data-recommendation]";return document.querySelectorAll(t)||[]}setupRecommendationButtons(){const t=a=>{const r=a.currentTarget.dataset.recommendation;r?this.dispatchAction("trackRecommendationClicked",{recommendationId:r}).catch(console.error):console.warn("[Portal] Invalid usage of data-recommendation attribute")},n=this.getRecommendationButtons();for(const a of n)a.addEventListener("click",t,{passive:!0})}render(){return this.state.initStatus==="success"?c.jsx(D1,{site:this.state.site,children:c.jsxs(T.Provider,{value:this.getContextFromState(),children:[c.jsx(Tg,{}),c.jsx(Rf,{}),c.jsx(Yf,{})]})}):null}}const Jg="ghost-portal-root";function A1(){const e=document.createElement("div");e.id=Jg,document.body.appendChild(e)}function _1(){const e=document.querySelector("script[data-ghost]");if(e){const t=e.dataset.i18n==="true",n=e.dataset.ghost,a=e.dataset.key,r=e.dataset.api;return{siteUrl:n,apiKey:a,apiUrl:r,siteI18nEnabled:t}}return{}}function M1(){const e=new URL(window.location.href);e.searchParams.get("token")&&(e.searchParams.delete("token"),window.history.replaceState({},document.title,e.href))}function R1(){A1(),M1()}function F1(){const{siteUrl:e,apiKey:t,apiUrl:n,siteI18nEnabled:a}=_1(),r=e||window.location.origin;R1(),sk.render(c.jsx(L.StrictMode,{children:c.jsx(z1,{siteUrl:r,customSiteUrl:e,apiKey:t,apiUrl:n,siteI18nEnabled:a})}),document.getElementById(Jg))}F1()});
|
|
3376
3376
|
//# sourceMappingURL=portal.min.js.map
|