@mrrocket/sdk 0.14.0 → 0.16.0
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/CHANGELOG.md +10 -0
- package/README.md +45 -4
- package/dist/api-client.d.ts +67 -5
- package/dist/api-client.js +39 -8
- package/dist/api-client.js.map +1 -1
- package/dist/api.d.ts +4 -1
- package/dist/api.js +2 -1
- package/dist/api.js.map +1 -1
- package/dist/batch.d.ts +6 -4
- package/dist/batch.js +3 -3
- package/dist/batch.js.map +1 -1
- package/dist/browser/mrrocket-flows.js +2 -2
- package/dist/browser/mrrocket-forms.js +1 -1
- package/dist/browser/mrrocket-messenger.js +202 -46
- package/dist/browser/mrrocket-push.js +1 -1
- package/dist/browser/mrrocket-replay.js +3 -3
- package/dist/browser/mrrocket.js +1 -1
- package/dist/client.d.ts +10 -2
- package/dist/client.js +36 -15
- package/dist/client.js.map +1 -1
- package/dist/context.d.ts +5 -1
- package/dist/context.js.map +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/errors.d.ts +5 -1
- package/dist/errors.js +8 -2
- package/dist/errors.js.map +1 -1
- package/dist/flows-ui.js +48 -1
- package/dist/flows-ui.js.map +1 -1
- package/dist/flows-web.d.ts +2 -0
- package/dist/flows-web.js +4 -1
- package/dist/flows-web.js.map +1 -1
- package/dist/flows.d.ts +61 -1
- package/dist/flows.js +64 -21
- package/dist/flows.js.map +1 -1
- package/dist/forms.d.ts +4 -0
- package/dist/forms.js +4 -1
- package/dist/forms.js.map +1 -1
- package/dist/identity.d.ts +42 -0
- package/dist/identity.js +24 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js.map +1 -1
- package/dist/messenger-ui.d.ts +21 -6
- package/dist/messenger-ui.js +334 -80
- package/dist/messenger-ui.js.map +1 -1
- package/dist/messenger.d.ts +11 -3
- package/dist/messenger.js +9 -5
- package/dist/messenger.js.map +1 -1
- package/dist/push-web.d.ts +2 -13
- package/dist/push-web.js +4 -2
- package/dist/push-web.js.map +1 -1
- package/dist/react-native/index.d.cts +162 -14
- package/dist/react-native/index.d.ts +162 -14
- package/dist/react-native/index.js +552 -207
- package/dist/react-native/index.js.map +1 -1
- package/dist/replay.d.ts +4 -1
- package/dist/replay.js +8 -2
- package/dist/replay.js.map +1 -1
- package/dist/server.d.ts +2 -0
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/dist/styles-css.d.ts +1 -1
- package/dist/styles-css.js +200 -44
- package/dist/styles-css.js.map +1 -1
- package/dist/user-hash.d.ts +27 -0
- package/dist/user-hash.js +24 -0
- package/dist/user-hash.js.map +1 -0
- package/package.json +9 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(){'use strict';var
|
|
1
|
+
(function(){'use strict';var L=(n,e)=>Math.round(n*(1-e/100)*100)/100,_=(n,e)=>{try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e}).format(n)}catch(c){return `${n.toFixed(2)} ${e}`}},A=n=>n.kind==="contact"?"Send to the team":n.kind==="pause"?"Pause instead":n.kind==="downgrade"?"Switch plan":"Accept offer";var V="ckf-styles",D=`
|
|
2
2
|
.ckf-root{--ckf-accent:#3f76ff;--ckf-accent-ink:#fff;--ckf-bg:#fff;--ckf-fg:#1c1d20;--ckf-muted:#5d6068;--ckf-soft:#f4f5f7;--ckf-line:#e4e5e8;--ckf-danger:#d92d20;--ckf-radius:14px;--ckf-font:inherit;--ckf-shadow:0 16px 40px -12px rgba(16,18,24,.28),0 0 0 1px rgba(16,18,24,.07)}
|
|
3
3
|
.ckf-root[data-theme=dark]{--ckf-bg:#17181b;--ckf-fg:#f1f2f4;--ckf-muted:#a9acb3;--ckf-soft:#232428;--ckf-line:#2e2f35;--ckf-shadow:0 16px 40px -12px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08)}
|
|
4
4
|
@media (prefers-color-scheme:dark){.ckf-root[data-theme=auto]{--ckf-bg:#17181b;--ckf-fg:#f1f2f4;--ckf-muted:#a9acb3;--ckf-soft:#232428;--ckf-line:#2e2f35;--ckf-shadow:0 16px 40px -12px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08)}}
|
|
@@ -70,4 +70,4 @@
|
|
|
70
70
|
.ckf-banner{animation-name:ckf-fade}
|
|
71
71
|
@media (max-width:520px){.ckf-scrim{align-items:flex-end;padding:0}.ckf-scrim .ckf-card{max-width:none;border-radius:var(--ckf-radius) var(--ckf-radius) 0 0;max-height:92dvh}.ckf-float{right:12px;bottom:12px}}
|
|
72
72
|
@media (prefers-reduced-motion:reduce){.ckf-root *{animation:none!important;transition:none!important}}
|
|
73
|
-
`,t=(n,e={},...a)=>{let s=document.createElement(n);for(let[g,p]of Object.entries(e))p===void 0||p===false||(typeof p=="function"?s.addEventListener(g.slice(2).toLowerCase(),p):g==="className"?s.className=String(p):s.setAttribute(g,p===true?"":p));for(let g of a)(g||g==="")&&s.append(typeof g=="string"?document.createTextNode(g):g);return s},P=(n,e,a,s={})=>t("button",{type:"button",className:`ckf-btn${e==="secondary"?"":` ckf-${e}`}`,disabled:!!s.disabled,"data-ckf-id":s.id,onClick:()=>a()},n),R=(n,e)=>t("button",{type:"button",className:"ckf-x","aria-label":n,"data-ckf-id":"x",onClick:()=>e()},"\xD7"),A=(n,e)=>e>1?t("span",{className:"ckf-dots",role:"img","aria-label":`Step ${n} of ${e}`},...Array.from({length:e},(a,s)=>t("span",{className:"ckf-dot","data-on":s<n}))):t("span"),z=n=>n.type==="cancel"?`c:${n.screen}`:n.type==="step"?`s:${n.step.id}`:n.type==="checklist"?`l:${n.flow.id}`:`m:${n.message.id}`,V=n=>{var a;if(!document.getElementById(L)){let s=document.createElement("style");s.id=L,s.textContent=q,document.head.appendChild(s);}let e=t("div",{className:`ckf-root${n.className?` ${n.className}`:""}`,"data-theme":(a=n.theme)!=null?a:"auto"});return n.accent&&e.style.setProperty("--ckf-accent",n.accent),document.body.appendChild(e),e},H=(n,e={})=>{if(typeof document=="undefined")return ()=>{};let a=V(e),s="",g=null,p="",h=null,y=r=>{var m,x;let o="ckf-title",c=r.busy,f=[];if(r.screen==="survey")f.push(t("h2",{className:"ckf-h",id:o},r.flow.question||"Why are you leaving?"),t("div",{className:"ckf-opts",role:"radiogroup","aria-labelledby":o},...r.flow.reasons.map(l=>t("button",{type:"button",role:"radio",className:"ckf-opt","aria-checked":String(r.reason===l.id),"data-ckf-id":`r:${l.id}`,onClick:()=>n.cancel.pick(l.id)},t("span",{className:"ckf-radio"}),l.label))),t("div",{className:"ckf-btns"},P("Continue","primary",n.cancel.next,{disabled:!r.reason,id:"go"}),P("Never mind, keep my plan","quiet",n.cancel.close)));else if(r.screen==="offer"&&r.offer){let l=r.offer,C=(m=r.flow.reasons.find(S=>S.id===r.reason))==null?void 0:m.label,N=false;l.kind==="discount"&&l.percent&&(N=r.price?t("div",{className:"ckf-box"},t("span",{className:"ckf-big"},M(_(r.price.amount,l.percent),r.price.currency)),t("span",{className:"ckf-strike"},M(r.price.amount,r.price.currency)),t("span",{className:"ckf-small"},`/${(x=r.price.interval)!=null?x:"month"}${l.months?` for ${l.months} ${l.months===1?"month":"months"}`:""}`)):t("div",{className:"ckf-box"},t("span",{className:"ckf-big"},`${l.percent}% off`),l.months?t("span",{className:"ckf-small"},`for ${l.months} ${l.months===1?"month":"months"}`):false)),l.kind==="pause"&&l.months&&(N=t("div",{className:"ckf-box"},t("span",{},`Pause for up to ${l.months} ${l.months===1?"month":"months"}. Your data stays.`))),l.kind==="downgrade"&&l.planName&&(N=t("div",{className:"ckf-box"},t("b",{},l.planName)));let E=l.kind==="contact"?t("textarea",{className:"ckf-text",placeholder:"What would make you stay?","aria-label":"Your message",maxlength:"500","data-ckf-id":"comment",onInput:S=>p=S.target.value}):null;E&&(E.value=p),f.push(C?t("p",{className:"ckf-small"},`You said: ${C}`):false,t("h2",{className:"ckf-h",id:o},l.headline),N,E!=null?E:false,t("div",{className:"ckf-btns"},P(c?"One moment\u2026":T(l),"primary",()=>n.cancel.accept(p),{disabled:c,id:"go"}),P("No thanks, continue cancelling","quiet",n.cancel.decline,{disabled:c})));}else {let C=r.steps===1?null:t("textarea",{className:"ckf-text",placeholder:"Anything else we should know? (optional)","aria-label":"Anything else we should know? (optional)",maxlength:"500","data-ckf-id":"comment",onInput:N=>p=N.target.value});C&&(C.value=p),f.push(t("h2",{className:"ckf-h",id:o},r.flow.confirm.title),r.flow.confirm.body?t("p",{className:"ckf-p"},r.flow.confirm.body):false,C!=null?C:false,t("div",{className:"ckf-btns"},P(c?"One moment\u2026":r.flow.confirm.button,"danger",()=>n.cancel.confirm(p),{disabled:c,id:"go"}),P("Keep my plan","secondary",n.cancel.close,{disabled:c})));}return t("div",{className:"ckf-scrim",onClick:l=>l.target===l.currentTarget&&!c&&n.cancel.close()},t("div",{className:"ckf-card",role:"dialog","aria-modal":"true","aria-labelledby":o},t("div",{className:"ckf-top"},A(r.step,r.steps),R("Close",n.cancel.close)),...f,r.error?t("p",{className:"ckf-err",role:"alert"},r.error):false))},u=r=>{let o=r.step,c=t("div",{className:"ckf-card",role:"dialog","aria-modal":o.kind==="modal"?"true":void 0,"aria-labelledby":"ckf-title"},t("div",{className:"ckf-top"},r.total>1?t("p",{className:"ckf-small"},`Step ${r.index+1} of ${r.total}`):t("span"),R("Close the tour",n.onboarding.dismiss)),t("h2",{className:"ckf-h",id:"ckf-title"},o.title),o.body?t("p",{className:"ckf-p"},o.body):false,t("div",{className:"ckf-row"},P(o.button||(r.last?"Done":"Next"),"primary",n.onboarding.next,{id:"go"})));if(o.kind==="modal")return t("div",{className:"ckf-scrim"},c);let f=o.target?i(o.target):null,m=t("div",{className:"ckf-float"},c);if(f){let x=t("div",{className:"ckf-ring","aria-hidden":"true"});return h={float:m,ring:x,target:f},b(m,x,f),t("div",{},x,m)}return m},i=r=>{var c;let o=()=>document.querySelector(`[data-ck-target="${CSS.escape(r)}"]`);return /^[#.[]|[\s>:=]/.test(r)&&(c=d(r))!=null?c:o()},d=r=>{try{return document.querySelector(r)}catch(o){return null}},b=(r,o,c)=>{let f=c.getBoundingClientRect();Object.assign(o.style,{left:`${f.left-4}px`,top:`${f.top-4}px`,width:`${f.width+8}px`,height:`${f.height+8}px`});let m=Math.min(340,window.innerWidth-24),x=Math.max(12,Math.min(f.left,window.innerWidth-m-12)),l=f.bottom+12;Object.assign(r.style,{left:`${x}px`,right:"auto",width:`${m}px`}),l+200<window.innerHeight?Object.assign(r.style,{top:`${l}px`,bottom:"auto"}):Object.assign(r.style,{top:"auto",bottom:`${Math.max(12,window.innerHeight-f.top+12)}px`});},w=r=>{let o=r.items.filter(c=>c.done).length;return t("div",{className:"ckf-float"},t("div",{className:"ckf-card",role:"region","aria-labelledby":"ckf-title"},t("div",{className:"ckf-top"},t("h2",{className:"ckf-h",id:"ckf-title"},r.flow.name),R("Hide the checklist",n.onboarding.dismiss)),t("p",{className:"ckf-small"},`${o} of ${r.items.length} done`),t("div",{className:"ckf-bar",role:"progressbar","aria-valuemin":"0","aria-valuemax":String(r.items.length),"aria-valuenow":String(o)},t("i",{style:`width:${o/r.items.length*100}%`})),t("div",{className:"ckf-opts"},...r.items.map(({step:c,done:f})=>{let m=[t("span",{className:"ckf-tick","aria-hidden":"true"},f?"\u2713":""),t("span",{},t("b",{},c.title),c.body?t("span",{className:"ckf-small"},c.body):false)];return f||c.event?t("div",{className:"ckf-check","data-done":f,role:"listitem"},...m):t("button",{type:"button",className:"ckf-check","aria-label":`Mark \u201C${c.title}\u201D done`,"data-ckf-id":`i:${c.id}`,onClick:()=>n.onboarding.check(c.id)},...m)}))))},v=r=>{let o=r.message,c=o.button?P(o.button,"primary",n.message.click,{id:"go"}):false;return o.style==="banner"?t("div",{className:"ckf-banner",role:"status"},t("span",{},t("b",{},o.title),o.body?t("span",{className:"ckf-small"},o.body):false),c,R("Dismiss",n.message.dismiss)):t("div",{className:"ckf-scrim",onClick:f=>f.target===f.currentTarget&&n.message.dismiss()},t("div",{className:"ckf-card",role:"dialog","aria-modal":"true","aria-labelledby":"ckf-title"},t("div",{className:"ckf-top"},t("span"),R("Dismiss",n.message.dismiss)),t("h2",{className:"ckf-h",id:"ckf-title"},o.title),o.body?t("p",{className:"ckf-p"},o.body):false,c?t("div",{className:"ckf-row"},c):false))},F=()=>{var f,m,x,l,C;let r=n.view(),o=r?z(r):"",c=(m=(f=document.activeElement)==null?void 0:f.closest)!=null&&m.call(f,".ckf-root")?(x=document.activeElement)==null?void 0:x.getAttribute("data-ckf-id"):null;if(o&&!s&&document.activeElement instanceof HTMLElement&&!document.activeElement.closest(".ckf-root")&&(g=document.activeElement),o!==s&&!o.startsWith("c:")&&(p=""),o||(p=""),h=null,a.replaceChildren(...r?[r.type==="cancel"?y(r):r.type==="step"?u(r):r.type==="checklist"?w(r):v(r)]:[]),o!==s){let N=a.querySelector("[aria-modal=true]"),E=(l=N==null?void 0:N.querySelector("[role=radio], [data-ckf-id=go], textarea"))!=null?l:null;E==null||E.focus(),!o&&g&&(g.focus(),g=null);}else c&&((C=a.querySelector(`[data-ckf-id="${CSS.escape(c)}"]`))==null||C.focus());s=o;},k=r=>{if(r.key!=="Escape")return;let o=n.view();(o==null?void 0:o.type)==="cancel"?n.cancel.close():(o==null?void 0:o.type)==="message"?n.message.dismiss():(o==null?void 0:o.type)==="step"&&o.step.kind==="modal"&&n.onboarding.dismiss();},O=()=>{h&&b(h.float,h.ring,h.target);};document.addEventListener("keydown",k),window.addEventListener("resize",O),window.addEventListener("scroll",O,{passive:true,capture:true});let $=n.subscribe(F);return F(),()=>{$(),document.removeEventListener("keydown",k),window.removeEventListener("resize",O),window.removeEventListener("scroll",O,{capture:true}),a.remove();}},j=(n,e={})=>{if(typeof document=="undefined")return ()=>{};let a=V(e),s="",g=null,p=()=>{var w,v,F;let u=n.view(),i=u?`${u.paywall.id}:${u.index}`:"";if(i&&!s&&document.activeElement instanceof HTMLElement&&(g=document.activeElement),!u){a.replaceChildren(),a.removeAttribute("data-still"),s&&(g==null||g.focus()),s="";return}s&&a.setAttribute("data-still","");let d=u.page,b=d.kind==="plans"?t("div",{className:"ckf-opts",role:"radiogroup","aria-label":"Plans"},...u.plans.map(k=>t("button",{type:"button",role:"radio",className:"ckf-opt ckf-plan","aria-checked":String(u.plan===k.id),"data-ckf-id":`p:${k.id}`,onClick:()=>n.pick(k.id)},t("span",{className:"ckf-radio"}),t("span",{},k.name,k.note?t("span",{className:"ckf-small"},k.note):false),t("b",{},k.price)))):false;a.replaceChildren(t("div",{className:"ckf-scrim",onClick:k=>k.target===k.currentTarget&&n.close()},t("div",{className:"ckf-card ckf-pw",role:"dialog","aria-modal":"true","aria-labelledby":"ckf-title"},t("div",{className:"ckf-top"},A(u.index+1,u.total),R("Close",n.close)),t("h2",{className:"ckf-h",id:"ckf-title"},d.title),d.body?t("p",{className:"ckf-p"},d.body):false,d.kind==="benefits"&&((w=d.items)!=null&&w.length)?t("div",{className:"ckf-opts"},...d.items.map(k=>t("p",{className:"ckf-li"},k))):false,d.kind==="proof"&&((v=d.quotes)!=null&&v.length)?t("div",{className:"ckf-opts"},...d.quotes.map(k=>t("blockquote",{className:"ckf-quote"},k.text,k.by?t("cite",{},k.by):false))):false,b,u.error?t("p",{className:"ckf-err",role:"alert"},u.error):false,t("div",{className:"ckf-btns"},P(u.busy?"One moment\u2026":d.button||"Continue","primary",n.next,{disabled:u.busy||d.kind==="plans"&&!u.plan,id:"go"}),u.index?P("Back","quiet",n.back,{disabled:u.busy}):false)))),i!==s&&((F=a.querySelector("[data-ckf-id=go]"))==null||F.focus()),s=i;},h=u=>{n.view()&&u.key==="Escape"&&n.close();};document.addEventListener("keydown",h);let y=n.subscribe(p);return p(),()=>{y(),document.removeEventListener("keydown",h),a.remove();}};var D=n=>{let e=2166136261;for(let a=0;a<n.length;a++)e^=n.charCodeAt(a),e=Math.imul(e,16777619);return (e>>>0)/4294967296};var U=(n,e)=>{var p,h,y,u;let a=(h=(p=n.variants[0])==null?void 0:p.id)!=null?h:"control";if(n.winner)return n.winner;if(n.status!=="running")return a;let s=D(`${n.key}:${e}`),g=0;for(let i of n.variants)if(g+=i.weight,s<g)return i.id;return (u=(y=n.variants[n.variants.length-1])==null?void 0:y.id)!=null?u:a};var I="$paywall",W=(n,e,a)=>{var h,y;let s=e.experiment?n==null?void 0:n.experiments.find(u=>u.key===e.experiment):void 0,g=s?U(s,a):(h=e.variants[0])==null?void 0:h.id,p=(y=e.variants.find(u=>u.id===g))!=null?y:e.variants[0];return p?{variant:p.id,pages:p.pages,test:(s==null?void 0:s.status)==="running"&&!s.winner?s.key:void 0}:null},K=n=>{let e=null,a=new Set,s=()=>{for(let i of [...a])try{i();}catch(d){}},g=()=>e?{paywall:e.w.id,placement:e.w.placement,variant:e.variant}:{},p=()=>{e&&!e.seen.has(e.index)&&(e.seen.add(e.index),n.track(I,{...g(),page:e.pages[e.index].id,index:e.index,action:"page"})),s();},h=i=>{var b,w;let d=e;d&&(e=null,i.outcome==="closed"&&((w=(b=d.options).onClose)==null||w.call(b,i)),d.resolve(i),s());},y=i=>{var d;return {outcome:i,index:(d=e==null?void 0:e.index)!=null?d:0,...e?{paywall:e.w.id,variant:e.variant}:{},...i!=="closed"&&e?{plan:e.plans.find(b=>b.id===e.plan)}:{}}},u=()=>{let i=e,d=i==null?void 0:i.plans.find(b=>b.id===i.plan);if(!(!i||!d||i.busy)){if(!i.options.onPurchase)return h(y("chosen"));i.busy=true,i.error=void 0,s(),Promise.resolve().then(()=>{var b,w;return (w=(b=i.options).onPurchase)==null?void 0:w.call(b,d)}).then(b=>{if(i.busy=false,e===i){if(b===false)return s();n.track(I,{...g(),page:i.pages[i.index].id,index:i.index,plan:d.id,action:"purchased"}),h(y("purchased"));}},()=>{i.busy=false,i.error="The purchase did not go through. Please try again.",s();});}};return {open:(i,d={})=>{var o,c,f;if(e)return e.promise;let b=n.config(),w=(o=b==null?void 0:b.paywalls)==null?void 0:o.find(m=>m.placement===i),v=w?W(b,w,n.distinctId()):null;if(!w||!(v!=null&&v.pages.length))return Promise.resolve({outcome:"closed",index:0});let F=new Map(((c=d.plans)!=null?c:[]).map(m=>[m.id,m])),k=w.plans.map(m=>{var x;return (x=F.get(m.id))!=null?x:m}),O=()=>{},$=new Promise(m=>O=m),r=k.some(m=>m.id===w.highlight)?w.highlight:(f=k[0])==null?void 0:f.id;return e={w,variant:v.variant,pages:v.pages,plans:k,index:0,plan:r,busy:false,seen:new Set,options:d,resolve:O,promise:$},v.test&&n.track("$exposure",{experiment:v.test,variant:v.variant}),p(),$},view:()=>e?{paywall:e.w,variant:e.variant,page:e.pages[e.index],index:e.index,total:e.pages.length,last:e.index===e.pages.length-1,plans:e.plans,plan:e.plan,busy:e.busy,error:e.error}:null,subscribe:i=>(a.add(i),()=>a.delete(i)),next:()=>{if(!(!e||e.busy)){if(e.pages[e.index].kind==="plans"||e.index===e.pages.length-1)return u();e.index++,e.error=void 0,p();}},back:()=>{!e||e.busy||!e.index||(e.index--,e.error=void 0,s());},pick:i=>{!e||e.busy||!e.plans.some(d=>d.id===i)||(e.plan=i,e.error=void 0,s());},close:()=>{!e||e.busy||(n.track(I,{...g(),index:e.index,action:"closed"}),h(y("closed")));}}};var B=(n,e)=>{let a=K(n);return j(a,e),a};window.__mrrocketFlows={mountFlows:H,paywallHost:B};})();
|
|
73
|
+
`,t=(n,e={},...c)=>{let s=document.createElement(n);for(let[g,u]of Object.entries(e))u===void 0||u===false||(typeof u=="function"?s.addEventListener(g.slice(2).toLowerCase(),u):g==="className"?s.className=String(u):s.setAttribute(g,u===true?"":u));for(let g of c)(g||g==="")&&s.append(typeof g=="string"?document.createTextNode(g):g);return s},P=(n,e,c,s={})=>t("button",{type:"button",className:`ckf-btn${e==="secondary"?"":` ckf-${e}`}`,disabled:!!s.disabled,"data-ckf-id":s.id,onClick:()=>c()},n),$=(n,e)=>t("button",{type:"button",className:"ckf-x","aria-label":n,"data-ckf-id":"x",onClick:()=>e()},"\xD7"),U=(n,e)=>e>1?t("span",{className:"ckf-dots",role:"img","aria-label":`Step ${n} of ${e}`},...Array.from({length:e},(c,s)=>t("span",{className:"ckf-dot","data-on":s<n}))):t("span"),W=n=>{var e;return n.type==="cancel"?`c:${n.screen}:${(e=n.round)!=null?e:1}`:n.type==="step"?`s:${n.step.id}`:n.type==="checklist"?`l:${n.flow.id}`:`m:${n.message.id}`},H=n=>{var c;if(!document.getElementById(V)){let s=document.createElement("style");s.id=V,s.textContent=D,document.head.appendChild(s);}let e=t("div",{className:`ckf-root${n.className?` ${n.className}`:""}`,"data-theme":(c=n.theme)!=null?c:"auto"});return n.accent&&e.style.setProperty("--ckf-accent",n.accent),document.body.appendChild(e),e},j=(n,e={})=>{if(typeof document=="undefined")return ()=>{};let c=H(e),s="",g=null,u="",b=null,C=r=>{var m,y,O,M;let o="ckf-title",l=r.busy,d=[];if(r.screen==="survey")d.push(t("h2",{className:"ckf-h",id:o},r.flow.question||"Why are you leaving?"),t("div",{className:"ckf-opts",role:"radiogroup","aria-labelledby":o},...r.flow.reasons.map(a=>t("button",{type:"button",role:"radio",className:"ckf-opt","aria-checked":String(r.reason===a.id),"data-ckf-id":`r:${a.id}`,onClick:()=>n.cancel.pick(a.id)},t("span",{className:"ckf-radio"}),a.label))),t("div",{className:"ckf-btns"},P("Continue","primary",n.cancel.next,{disabled:!r.reason,id:"go"}),P("Never mind, keep my plan","quiet",n.cancel.close)));else if(r.screen==="followup"&&r.followUp){let a=r.followUp,x;if(a.answers.length)x=t("div",{className:"ckf-opts",role:"radiogroup","aria-labelledby":o},...a.answers.map((v,S)=>t("button",{type:"button",role:"radio",className:"ckf-opt","aria-checked":String(r.answer===v),"data-ckf-id":`a:${S}`,onClick:()=>n.cancel.answer(v)},t("span",{className:"ckf-radio"}),v)));else {let v=t("textarea",{className:"ckf-text",placeholder:"Your answer (optional)","aria-labelledby":o,maxlength:"500","data-ckf-id":"answer",onInput:S=>n.cancel.answer(S.target.value)});v.value=(m=r.answer)!=null?m:"",x=v;}let E=(y=r.flow.reasons.find(v=>v.id===r.reason))==null?void 0:y.label;d.push(E?t("p",{className:"ckf-small"},`You said: ${E}`):false,t("h2",{className:"ckf-h",id:o},a.question),x,t("div",{className:"ckf-btns"},P("Continue","primary",n.cancel.next,{id:"go"}),P("Never mind, keep my plan","quiet",n.cancel.close)));}else if(r.screen==="offer"&&r.offer){let a=r.offer,x=(O=r.flow.reasons.find(S=>S.id===r.reason))==null?void 0:O.label,E=false;a.kind==="discount"&&a.percent&&(E=r.price?t("div",{className:"ckf-box"},t("span",{className:"ckf-big"},_(L(r.price.amount,a.percent),r.price.currency)),t("span",{className:"ckf-strike"},_(r.price.amount,r.price.currency)),t("span",{className:"ckf-small"},`/${(M=r.price.interval)!=null?M:"month"}${a.months?` for ${a.months} ${a.months===1?"month":"months"}`:""}`)):t("div",{className:"ckf-box"},t("span",{className:"ckf-big"},`${a.percent}% off`),a.months?t("span",{className:"ckf-small"},`for ${a.months} ${a.months===1?"month":"months"}`):false)),a.kind==="pause"&&a.months&&(E=t("div",{className:"ckf-box"},t("span",{},`Pause for up to ${a.months} ${a.months===1?"month":"months"}. Your data stays.`))),a.kind==="downgrade"&&a.planName&&(E=t("div",{className:"ckf-box"},t("b",{},a.planName)));let v=a.kind==="contact"?t("textarea",{className:"ckf-text",placeholder:"What would make you stay?","aria-label":"Your message",maxlength:"500","data-ckf-id":"comment",onInput:S=>u=S.target.value}):null;v&&(v.value=u),d.push(x?t("p",{className:"ckf-small"},`You said: ${x}`):false,t("h2",{className:"ckf-h",id:o},a.headline),E,v!=null?v:false,t("div",{className:"ckf-btns"},P(l?"One moment\u2026":A(a),"primary",()=>n.cancel.accept(u),{disabled:l,id:"go"}),P("No thanks, continue cancelling","quiet",n.cancel.decline,{disabled:l})));}else {let x=r.steps===1?null:t("textarea",{className:"ckf-text",placeholder:"Anything else we should know? (optional)","aria-label":"Anything else we should know? (optional)",maxlength:"500","data-ckf-id":"comment",onInput:E=>u=E.target.value});x&&(x.value=u),d.push(t("h2",{className:"ckf-h",id:o},r.flow.confirm.title),r.flow.confirm.body?t("p",{className:"ckf-p"},r.flow.confirm.body):false,x!=null?x:false,t("div",{className:"ckf-btns"},P(l?"One moment\u2026":r.flow.confirm.button,"danger",()=>n.cancel.confirm(u),{disabled:l,id:"go"}),P("Keep my plan","secondary",n.cancel.close,{disabled:l})));}return t("div",{className:"ckf-scrim",onClick:a=>a.target===a.currentTarget&&!l&&n.cancel.close()},t("div",{className:"ckf-card",role:"dialog","aria-modal":"true","aria-labelledby":o},t("div",{className:"ckf-top"},U(r.step,r.steps),$("Close",n.cancel.close)),...d,r.error?t("p",{className:"ckf-err",role:"alert"},r.error):false))},p=r=>{let o=r.step,l=t("div",{className:"ckf-card",role:"dialog","aria-modal":o.kind==="modal"?"true":void 0,"aria-labelledby":"ckf-title"},t("div",{className:"ckf-top"},r.total>1?t("p",{className:"ckf-small"},`Step ${r.index+1} of ${r.total}`):t("span"),$("Close the tour",n.onboarding.dismiss)),t("h2",{className:"ckf-h",id:"ckf-title"},o.title),o.body?t("p",{className:"ckf-p"},o.body):false,t("div",{className:"ckf-row"},P(o.button||(r.last?"Done":"Next"),"primary",n.onboarding.next,{id:"go"})));if(o.kind==="modal")return t("div",{className:"ckf-scrim"},l);let d=o.target?i(o.target):null,m=t("div",{className:"ckf-float"},l);if(d){let y=t("div",{className:"ckf-ring","aria-hidden":"true"});return b={float:m,ring:y,target:d},w(m,y,d),t("div",{},y,m)}return m},i=r=>{var l;let o=()=>document.querySelector(`[data-ck-target="${CSS.escape(r)}"]`);return /^[#.[]|[\s>:=]/.test(r)&&(l=f(r))!=null?l:o()},f=r=>{try{return document.querySelector(r)}catch(o){return null}},w=(r,o,l)=>{let d=l.getBoundingClientRect();Object.assign(o.style,{left:`${d.left-4}px`,top:`${d.top-4}px`,width:`${d.width+8}px`,height:`${d.height+8}px`});let m=Math.min(340,window.innerWidth-24),y=Math.max(12,Math.min(d.left,window.innerWidth-m-12)),O=d.bottom+12;Object.assign(r.style,{left:`${y}px`,right:"auto",width:`${m}px`}),O+200<window.innerHeight?Object.assign(r.style,{top:`${O}px`,bottom:"auto"}):Object.assign(r.style,{top:"auto",bottom:`${Math.max(12,window.innerHeight-d.top+12)}px`});},h=r=>{let o=r.items.filter(l=>l.done).length;return t("div",{className:"ckf-float"},t("div",{className:"ckf-card",role:"region","aria-labelledby":"ckf-title"},t("div",{className:"ckf-top"},t("h2",{className:"ckf-h",id:"ckf-title"},r.flow.name),$("Hide the checklist",n.onboarding.dismiss)),t("p",{className:"ckf-small"},`${o} of ${r.items.length} done`),t("div",{className:"ckf-bar",role:"progressbar","aria-valuemin":"0","aria-valuemax":String(r.items.length),"aria-valuenow":String(o)},t("i",{style:`width:${o/r.items.length*100}%`})),t("div",{className:"ckf-opts"},...r.items.map(({step:l,done:d})=>{let m=[t("span",{className:"ckf-tick","aria-hidden":"true"},d?"\u2713":""),t("span",{},t("b",{},l.title),l.body?t("span",{className:"ckf-small"},l.body):false)];return d||l.event?t("div",{className:"ckf-check","data-done":d,role:"listitem"},...m):t("button",{type:"button",className:"ckf-check","aria-label":`Mark \u201C${l.title}\u201D done`,"data-ckf-id":`i:${l.id}`,onClick:()=>n.onboarding.check(l.id)},...m)}))))},N=r=>{let o=r.message,l=o.button?P(o.button,"primary",n.message.click,{id:"go"}):false;return o.style==="banner"?t("div",{className:"ckf-banner",role:"status"},t("span",{},t("b",{},o.title),o.body?t("span",{className:"ckf-small"},o.body):false),l,$("Dismiss",n.message.dismiss)):t("div",{className:"ckf-scrim",onClick:d=>d.target===d.currentTarget&&n.message.dismiss()},t("div",{className:"ckf-card",role:"dialog","aria-modal":"true","aria-labelledby":"ckf-title"},t("div",{className:"ckf-top"},t("span"),$("Dismiss",n.message.dismiss)),t("h2",{className:"ckf-h",id:"ckf-title"},o.title),o.body?t("p",{className:"ckf-p"},o.body):false,l?t("div",{className:"ckf-row"},l):false))},F=()=>{var d,m,y,O,M;let r=n.view(),o=r?W(r):"",l=(m=(d=document.activeElement)==null?void 0:d.closest)!=null&&m.call(d,".ckf-root")?(y=document.activeElement)==null?void 0:y.getAttribute("data-ckf-id"):null;if(o&&!s&&document.activeElement instanceof HTMLElement&&!document.activeElement.closest(".ckf-root")&&(g=document.activeElement),o!==s&&!o.startsWith("c:")&&(u=""),o||(u=""),b=null,c.replaceChildren(...r?[r.type==="cancel"?C(r):r.type==="step"?p(r):r.type==="checklist"?h(r):N(r)]:[]),o!==s){let a=c.querySelector("[aria-modal=true]"),x=(O=a==null?void 0:a.querySelector("[role=radio], [data-ckf-id=go], textarea"))!=null?O:null;x==null||x.focus(),!o&&g&&(g.focus(),g=null);}else l&&((M=c.querySelector(`[data-ckf-id="${CSS.escape(l)}"]`))==null||M.focus());s=o;},k=r=>{if(r.key!=="Escape")return;let o=n.view();(o==null?void 0:o.type)==="cancel"?n.cancel.close():(o==null?void 0:o.type)==="message"?n.message.dismiss():(o==null?void 0:o.type)==="step"&&o.step.kind==="modal"&&n.onboarding.dismiss();},R=()=>{b&&w(b.float,b.ring,b.target);};document.addEventListener("keydown",k),window.addEventListener("resize",R),window.addEventListener("scroll",R,{passive:true,capture:true});let I=n.subscribe(F);return F(),()=>{I(),document.removeEventListener("keydown",k),window.removeEventListener("resize",R),window.removeEventListener("scroll",R,{capture:true}),c.remove();}},K=(n,e={})=>{if(typeof document=="undefined")return ()=>{};let c=H(e),s="",g=null,u=()=>{var h,N,F;let p=n.view(),i=p?`${p.paywall.id}:${p.index}`:"";if(i&&!s&&document.activeElement instanceof HTMLElement&&(g=document.activeElement),!p){c.replaceChildren(),c.removeAttribute("data-still"),s&&(g==null||g.focus()),s="";return}s&&c.setAttribute("data-still","");let f=p.page,w=f.kind==="plans"?t("div",{className:"ckf-opts",role:"radiogroup","aria-label":"Plans"},...p.plans.map(k=>t("button",{type:"button",role:"radio",className:"ckf-opt ckf-plan","aria-checked":String(p.plan===k.id),"data-ckf-id":`p:${k.id}`,onClick:()=>n.pick(k.id)},t("span",{className:"ckf-radio"}),t("span",{},k.name,k.note?t("span",{className:"ckf-small"},k.note):false),t("b",{},k.price)))):false;c.replaceChildren(t("div",{className:"ckf-scrim",onClick:k=>k.target===k.currentTarget&&n.close()},t("div",{className:"ckf-card ckf-pw",role:"dialog","aria-modal":"true","aria-labelledby":"ckf-title"},t("div",{className:"ckf-top"},U(p.index+1,p.total),$("Close",n.close)),t("h2",{className:"ckf-h",id:"ckf-title"},f.title),f.body?t("p",{className:"ckf-p"},f.body):false,f.kind==="benefits"&&((h=f.items)!=null&&h.length)?t("div",{className:"ckf-opts"},...f.items.map(k=>t("p",{className:"ckf-li"},k))):false,f.kind==="proof"&&((N=f.quotes)!=null&&N.length)?t("div",{className:"ckf-opts"},...f.quotes.map(k=>t("blockquote",{className:"ckf-quote"},k.text,k.by?t("cite",{},k.by):false))):false,w,p.error?t("p",{className:"ckf-err",role:"alert"},p.error):false,t("div",{className:"ckf-btns"},P(p.busy?"One moment\u2026":f.button||"Continue","primary",n.next,{disabled:p.busy||f.kind==="plans"&&!p.plan,id:"go"}),p.index?P("Back","quiet",n.back,{disabled:p.busy}):false)))),i!==s&&((F=c.querySelector("[data-ckf-id=go]"))==null||F.focus()),s=i;},b=p=>{n.view()&&p.key==="Escape"&&n.close();};document.addEventListener("keydown",b);let C=n.subscribe(u);return u(),()=>{C(),document.removeEventListener("keydown",b),c.remove();}};var Y=n=>{let e=2166136261;for(let c=0;c<n.length;c++)e^=n.charCodeAt(c),e=Math.imul(e,16777619);return (e>>>0)/4294967296};var q=(n,e)=>{var u,b,C,p;let c=(b=(u=n.variants[0])==null?void 0:u.id)!=null?b:"control";if(n.winner)return n.winner;if(n.status!=="running")return c;let s=Y(`${n.key}:${e}`),g=0;for(let i of n.variants)if(g+=i.weight,s<g)return i.id;return (p=(C=n.variants[n.variants.length-1])==null?void 0:C.id)!=null?p:c};var T="$paywall",B=(n,e,c)=>{var b,C;let s=e.experiment?n==null?void 0:n.experiments.find(p=>p.key===e.experiment):void 0,g=s?q(s,c):(b=e.variants[0])==null?void 0:b.id,u=(C=e.variants.find(p=>p.id===g))!=null?C:e.variants[0];return u?{variant:u.id,pages:u.pages,test:(s==null?void 0:s.status)==="running"&&!s.winner?s.key:void 0}:null},z=n=>{let e=null,c=new Set,s=()=>{for(let i of [...c])try{i();}catch(f){}},g=()=>e?{paywall:e.w.id,placement:e.w.placement,variant:e.variant}:{},u=()=>{e&&!e.seen.has(e.index)&&(e.seen.add(e.index),n.track(T,{...g(),page:e.pages[e.index].id,index:e.index,action:"page"})),s();},b=i=>{var w,h;let f=e;f&&(e=null,i.outcome==="closed"&&((h=(w=f.options).onClose)==null||h.call(w,i)),f.resolve(i),s());},C=i=>{var f;return {outcome:i,index:(f=e==null?void 0:e.index)!=null?f:0,...e?{paywall:e.w.id,variant:e.variant}:{},...i!=="closed"&&e?{plan:e.plans.find(w=>w.id===e.plan)}:{}}},p=()=>{let i=e,f=i==null?void 0:i.plans.find(w=>w.id===i.plan);if(!(!i||!f||i.busy)){if(!i.options.onPurchase)return b(C("chosen"));i.busy=true,i.error=void 0,s(),Promise.resolve().then(()=>{var w,h;return (h=(w=i.options).onPurchase)==null?void 0:h.call(w,f)}).then(w=>{if(i.busy=false,e===i){if(w===false)return s();n.track(T,{...g(),page:i.pages[i.index].id,index:i.index,plan:f.id,action:"purchased"}),b(C("purchased"));}},()=>{i.busy=false,i.error="The purchase did not go through. Please try again.",s();});}};return {open:(i,f={})=>{var o,l,d;if(e)return e.promise;let w=n.config(),h=(o=w==null?void 0:w.paywalls)==null?void 0:o.find(m=>m.placement===i),N=h?B(w,h,n.distinctId()):null;if(!h||!(N!=null&&N.pages.length))return Promise.resolve({outcome:"closed",index:0});let F=new Map(((l=f.plans)!=null?l:[]).map(m=>[m.id,m])),k=h.plans.map(m=>{var y;return (y=F.get(m.id))!=null?y:m}),R=()=>{},I=new Promise(m=>R=m),r=k.some(m=>m.id===h.highlight)?h.highlight:(d=k[0])==null?void 0:d.id;return e={w:h,variant:N.variant,pages:N.pages,plans:k,index:0,plan:r,busy:false,seen:new Set,options:f,resolve:R,promise:I},N.test&&n.track("$exposure",{experiment:N.test,variant:N.variant}),u(),I},view:()=>e?{paywall:e.w,variant:e.variant,page:e.pages[e.index],index:e.index,total:e.pages.length,last:e.index===e.pages.length-1,plans:e.plans,plan:e.plan,busy:e.busy,error:e.error}:null,subscribe:i=>(c.add(i),()=>c.delete(i)),next:()=>{if(!(!e||e.busy)){if(e.pages[e.index].kind==="plans"||e.index===e.pages.length-1)return p();e.index++,e.error=void 0,u();}},back:()=>{!e||e.busy||!e.index||(e.index--,e.error=void 0,s());},pick:i=>{!e||e.busy||!e.plans.some(f=>f.id===i)||(e.plan=i,e.error=void 0,s());},close:()=>{!e||e.busy||(n.track(T,{...g(),index:e.index,action:"closed"}),b(C("closed")));}}};var J=(n,e)=>{let c=z(n);return K(c,e),c};window.__mrrocketFlows={mountFlows:j,paywallHost:J};})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(){'use strict';var
|
|
1
|
+
(function(){'use strict';var w=/pass(word|wd|code)?|pwd|secret|token|csrf|xsrf|nonce|captcha|honeypot|card|^cc([-_ ]|num|exp|$)|cvv|cvc|csc|expir|iban|(^|[^a-z])bic([^a-z]|$)|swift|routing|account[-_ ]?(no|num)|sort[-_ ]?code|(^|[^a-z])ssn([^a-z]|$)|social[-_ ]?sec|tax[-_ ]?id|vat[-_ ]?id|steuer|passport|(^|[^a-z])(pin|otp|pw)([^a-z]|$)|one[-_ ]?time|auth(?!or)|api[-_ ]?key|session|signature/i,_=new Set(["password","hidden","file","submit","button","reset","image"]),v=/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/,x=30,b=1e3,E=e=>e.toLowerCase().replace(/[\s_-]+/g,""),L=e=>{var n;if(e.ignored||_.has(e.type))return false;let t=((n=e.autocomplete)!=null?n:"").toLowerCase();return /^cc-|password|one-time-code/.test(t)?false:!w.test(e.name)},I=e=>e.type==="email"||/e-?mail/i.test(e.name)||e.autocomplete==="email",O=e=>{var u;let t=null,n=null,a=null,c=null,o,i={};for(let r of e){if(r.consent){o=(o!=null?o:false)||!r.unchecked;continue}if(!r.name||!L(r)||r.unchecked)continue;let s=r.value.trim().slice(0,b);if(!s)continue;let f=E(r.name),d=((u=r.autocomplete)!=null?u:"").toLowerCase();if(!t&&I(r)&&v.test(s)){t=s.toLowerCase();continue}if(!n&&(d==="name"||["name","fullname","yourname","contactname"].includes(f))){n=s.slice(0,100);continue}if(!a&&(d==="given-name"||["firstname","first","vorname","givenname","fname"].includes(f))){a=s.slice(0,60);continue}if(!c&&(d==="family-name"||["lastname","last","nachname","surname","familyname","lname"].includes(f))){c=s.slice(0,60);continue}let l=r.name.trim().slice(0,60);l in i?i[l]=`${i[l]}, ${s}`.slice(0,b):Object.keys(i).length<x&&(i[l]=s);}let m=n!=null?n:[a,c].filter(Boolean).join(" ")||null;return {email:t,name:m,fields:i,...o===void 0?{}:{consent:o}}},H=e=>(e.getAttribute("data-mrrocket-form")||e.getAttribute("name")||e.id||e.getAttribute("aria-label")||`Form on ${window.location.pathname}`).trim().slice(0,100),M=(e,t)=>e.closest("[data-mrrocket-ignore]")?false:e.hasAttribute("data-mrrocket-form")?true:t&&!!e.querySelector('input[type="email"], input[name*="email" i]')&&!e.querySelector('input[type="password"]'),T=e=>Array.from(e.elements).flatMap(t=>{var o;if(!(t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement))return [];if(t.disabled)return [];let n=t instanceof HTMLInputElement?t.type.toLowerCase():t instanceof HTMLSelectElement?"select":"textarea",a=n==="checkbox"||n==="radio",c=t instanceof HTMLSelectElement&&t.multiple?Array.from(t.selectedOptions,i=>i.value).join(", "):a&&t.value==="on"?"yes":t.value;return [{name:t.name||t.id||"",type:n,value:c,autocomplete:(o=t.getAttribute("autocomplete"))!=null?o:void 0,unchecked:a&&!t.checked,ignored:!!t.closest("[data-mrrocket-ignore]"),consent:t.hasAttribute("data-mrrocket-consent")}]}),k=e=>{var c;let t=window;(c=t.__mrrocketFormsOff)==null||c.call(t);let n=o=>{var p,g,h,y;let i=o.target;if(!(i instanceof HTMLFormElement)||!M(i,!!e.auto))return;let m=O(T(i));if(!m.email)return;let u=Object.fromEntries(Object.entries((g=(p=e.utm)==null?void 0:p.call(e))!=null?g:{}).filter(F=>typeof F[1]=="string"&&!!F[1])),r=e.distinctId(),s=r?(h=e.userHash)==null?void 0:h.call(e,r):void 0,f={key:e.apiKey,form:H(i),url:window.location.href.slice(0,500),title:document.title.slice(0,200)||void 0,referrer:((y=e.referrer)==null?void 0:y.call(e))||document.referrer||void 0,...Object.keys(u).length?{utm:u}:{},distinctId:r,...s?{userHash:s}:{},...m},d=JSON.stringify(f),l=`${e.host}/api/sdk/forms`;"sendBeacon"in navigator&&navigator.sendBeacon(l,new Blob([d],{type:"text/plain"}))||fetch(l,{method:"POST",headers:{"content-type":"text/plain"},body:d,keepalive:true}).catch(()=>{}),e.tracking()&&!e.identified()&&e.identify(m.email,{email:m.email,...m.name?{name:m.name}:{}});};document.addEventListener("submit",n,true);let a=()=>{document.removeEventListener("submit",n,true),t.__mrrocketFormsOff===a&&delete t.__mrrocketFormsOff;};return t.__mrrocketFormsOff=a,a};window.__mrrocketForms={watchForms:k};})();
|