@tinkerlandai/indiana-sdk 0.4.0 → 0.5.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 +8 -0
- package/README.md +6 -6
- package/README.zh-CN.md +4 -4
- package/THIRD_PARTY_NOTICES.md +0 -1
- package/dist/ai-usage-BzydP8eN.d.ts +11085 -0
- package/dist/chunk-3OSMEG44.js +17 -0
- package/dist/chunk-GA6X57BO.js +1 -0
- package/dist/chunk-GTBD4BJ4.js +11 -0
- package/dist/{chunk-2UFPTDCV.js → chunk-QUW4UOKZ.js} +1 -1
- package/dist/chunk-RMFH5TWV.js +1 -0
- package/dist/chunk-YNUVRZRQ.js +1 -0
- package/dist/funnel-runtime-host-RZRB2CY6.js +1 -0
- package/dist/{funnel-runtime-start-B93fV5gJ.d.ts → funnel-runtime-start-JHA9ES24.d.ts} +63 -29
- package/dist/index.d.ts +108 -53
- package/dist/index.js +1 -1
- package/dist/native-shell.js +1 -1
- package/dist/openrouter.d.ts +3 -2
- package/dist/openrouter.js +1 -1
- package/dist/page.d.ts +12 -12
- package/dist/page.js +1 -1
- package/dist/{paywall-M5CIDUIT.js → paywall-MYBEOVTQ.js} +1 -1
- package/dist/popup.d.ts +254 -1
- package/dist/popup.js +6 -6
- package/dist/{screen-Keau_Qa2.d.ts → screen-16d-xADb.d.ts} +354 -463
- package/dist/server.d.ts +4 -3
- package/dist/server.js +1 -1
- package/dist/src-E2GXK6WA.js +1 -0
- package/dist/visual-editor-agent-FDCV3BXP.js +1 -0
- package/dist/visual.js +1 -1
- package/package.json +3 -2
- package/dist/ai-usage-D9xVKhvu.d.ts +0 -9953
- package/dist/chunk-LFNFVYC2.js +0 -1
- package/dist/chunk-PVJKOUNE.js +0 -11
- package/dist/chunk-TZ6REIUE.js +0 -17
- package/dist/chunk-VTSEZ4GI.js +0 -1
- package/dist/funnel-runtime-host-4PQY2MFC.js +0 -1
- package/dist/src-XEDJAKEB.js +0 -1
- package/dist/visual-editor-agent-PYMKMPY3.js +0 -1
package/dist/popup.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Z}from"./chunk-6X42DWOM.js";import{a as Et}from"./chunk-LFNFVYC2.js";import{Af as We,Ai as xt,Bg as xe,Cg as wt,Dg as Ve,Ef as Re,kj as vt,lj as kt,ng as bt,oj as St,qg as ze,sf as ht,xf as Be,yf as yt,yg as qe,zg as Je}from"./chunk-PVJKOUNE.js";import"./chunk-TZ6REIUE.js";function At(c){let p=new Intl.Locale(c);if(p.language==="zh")return p.maximize().script==="Hant"?"\u95DC\u9589\u5F48\u7A97":"\u5173\u95ED\u5F39\u7A97";let I={en:"Close popup",ja:"\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u3092\u9589\u3058\u308B",ko:"\uD31D\uC5C5 \uB2EB\uAE30",es:"Cerrar ventana emergente",fr:"Fermer la fen\xEAtre contextuelle",de:"Popup schlie\xDFen",pt:"Fechar janela pop-up",it:"Chiudi popup",ru:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0435\u0435 \u043E\u043A\u043D\u043E",vi:"\u0110\xF3ng c\u1EEDa s\u1ED5 b\u1EADt l\xEAn",th:"\u0E1B\u0E34\u0E14\u0E2B\u0E19\u0E49\u0E32\u0E15\u0E48\u0E32\u0E07\u0E1B\u0E4A\u0E2D\u0E1B\u0E2D\u0E31\u0E1B",id:"Tutup pop-up",ar:"\u0625\u063A\u0644\u0627\u0642 \u0627\u0644\u0646\u0627\u0641\u0630\u0629 \u0627\u0644\u0645\u0646\u0628\u062B\u0642\u0629",he:"\u05E1\u05D2\u05D9\u05E8\u05EA \u05D4\u05D7\u05DC\u05D5\u05DF \u05D4\u05E7\u05D5\u05E4\u05E5",fa:"\u0628\u0633\u062A\u0646 \u067E\u0646\u062C\u0631\u0647\u0654 \u0628\u0627\u0632\u0634\u0648",ur:"\u067E\u0627\u067E \u0627\u067E \u0628\u0646\u062F \u06A9\u0631\u06CC\u06BA"};return I[p.language]??I.en}import Vt from"dompurify";import{parse as Wt,generate as qt,walk as Jt}from"css-tree";function It(c){if(!c.trim())return"";if(/[\\<]/.test(c))throw new Error("CSS \u6682\u4E0D\u652F\u6301\u53CD\u659C\u6760\u8F6C\u4E49\u6216 HTML \u6807\u7B7E\u3002");let p=Wt(c,{onParseError:L=>{throw Object.assign(new Error("CSS \u683C\u5F0F\u4E0D\u6B63\u786E\u3002"),{offset:L.offset})}}),I=0;return Jt(p,L=>{if(++I>5e3)throw new Error("CSS \u8FC7\u4E8E\u590D\u6742\u3002");if(L.type==="Raw"||L.type==="Url"||L.type==="Atrule"&&!["media","supports","keyframes"].includes(L.name.toLowerCase())||L.type==="Function"&&["image-set","-webkit-image-set","image","src","paint"].includes(L.name.toLowerCase()))throw new Error("CSS \u4E0D\u652F\u6301\u5916\u90E8\u8D44\u6E90\u3001\u5BFC\u5165\u6216\u672A\u77E5\u8BED\u6CD5\uFF1B\u56FE\u7247\u8BF7\u4F7F\u7528 HTML img \u6807\u7B7E\u3002")}),qt(p)}import{parse as Kt,walk as Zt}from"css-tree";function Gt(c,p,I,L){return{html:He(c,I,L),css:Ke(p)}}function Ke(c){return It(c)}function He(c,p,I,L){if(!c.trim())return"";let m=We(c);if(m.length)throw new Error(m[0]);let $=Vt(I),M=$.sanitize(c,{ALLOWED_TAGS:["main","section","article","header","footer","div","span","p","h1","h2","h3","h4","strong","em","b","i","small","br","hr","ul","ol","li","button","img"],ALLOWED_ATTR:["class","alt","src","width","height","title","type","disabled","data-grow-action","aria-label"],ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!1,ADD_URI_SAFE_ATTR:["data-grow-action"],ALLOWED_URI_REGEXP:/^https:\/\//i,RETURN_DOM:!0});if(!(M instanceof I.Element))throw new Error("\u65E0\u6CD5\u89E3\u6790 HTML\u3002");if(L){let S=new Set;for(let f of $.removed){let P="element"in f?f.element.nodeName.toLowerCase():void 0,R="attribute"in f?f.attribute?.name:void 0;if(!P&&!R)continue;let H=R?/<[^>]+>/g:new RegExp(`<\\s*${P}\\b[^>]*>`,"gi"),F=[...c.matchAll(H)].find(U=>!S.has(`${R??P}:${U.index}`)&&(!R||new RegExp(`\\b${R}\\s*=`,"i").test(U[0])));if(!F)continue;let b=F.index;S.add(`${R??P}:${b}`);let E=R==="style"?"\u5185\u8054\u6837\u5F0F\u4E0D\u4FDD\u7559\uFF0C\u8BF7\u5199\u5728 CSS \u4E2D\u3002":R?.startsWith("on")?"\u811A\u672C\u4E8B\u4EF6\u4E0D\u5141\u8BB8\uFF0C\u8BF7\u4F7F\u7528\u52A8\u4F5C\u6309\u94AE\u3002":R==="src"?"\u56FE\u7247\u53EA\u652F\u6301 https \u5730\u5740\u3002":"\u8FD9\u4E2A\u5C5E\u6027\u4E0D\u5728\u5141\u8BB8\u7684\u5E03\u5C40\u3001\u56FE\u7247\u4E0E\u52A8\u4F5C\u5C5E\u6027\u4E2D\u3002";L.push({language:"html",from:b,to:b+F[0].length,severity:"warning",message:R?`\u5DF2\u79FB\u9664\u5C5E\u6027 ${R}\uFF1A${E}`:`\u5DF2\u79FB\u9664 <${P}>\uFF1A\u8FD9\u4E2A\u6807\u7B7E\u4E0D\u5728\u5141\u8BB8\u7684\u6392\u7248\u6807\u7B7E\u4E2D\u3002`})}}let N=We(M.innerHTML);if(N.length)throw new Error(N[0]);if(M.querySelectorAll("*").length>500)throw new Error("HTML \u6700\u591A\u652F\u6301 500 \u4E2A\u5143\u7D20\u3002");for(let S of M.querySelectorAll("[data-grow-action]")){let f=S.getAttribute("data-grow-action");if(S.tagName!=="BUTTON"||!p.includes(f))throw new Error(`\u81EA\u5B9A\u4E49 HTML \u91CC\u7684\u6309\u94AE ${f.slice(0,64)} \u6CA1\u6709\u5BF9\u5E94\u7684\u52A8\u4F5C\uFF0C\u8BF7\u5148\u5728\u300C\u70B9\u51FB\u52A8\u4F5C\u300D\u91CC\u6DFB\u52A0\uFF0C\u5E76\u4F7F\u7528 button \u5143\u7D20\u3002`)}if(!M.textContent?.trim()&&!M.querySelector("img"))throw new Error("\u81EA\u5B9A\u4E49 HTML \u6E05\u6D17\u540E\u6CA1\u6709\u53EF\u663E\u793A\u7684\u5185\u5BB9\u3002");return M.innerHTML}var Lt=2e3,Dt=1e4,Rt=new WeakMap;function Nt(c,p,I){let L=I.document;if(!L)throw new Error("A content document is required");let m=Rt.get(I)??new Map;Rt.set(I,m);let $=(S,f)=>{let P=m.get(S);if(P!==void 0)return P;let R=f();m.set(S,R);let H=[...m.keys()].reduce((F,b)=>F+b.length,0);for(;m.size>64||H>256e3;){let F=m.keys().next().value;m.delete(F),H-=F.length}return R},M=S=>$(`html:${S}`,()=>{let f=L.createElement("div");return f.innerHTML=S,f.querySelectorAll("*").length}),N=S=>$(`css:${S}`,()=>{let f=0;return S.trim()&&Zt(Kt(S),()=>{f++}),f});for(let S of c.pages){let f=0,P=0,R=H=>{if(H.hidden||(H.type==="stack"&&H.children.forEach(R),H.type!=="custom_html"))return;let F=p?.nodes[H.id],b=[...Object.values(H.html),F?.base.html??"",...Object.values(F?.byPlan??{}).map(E=>E.html??"")];if(f+=Math.max(0,...b.map(M)),P+=N(H.css),f>Lt)throw new Error(`Page custom HTML exceeds ${Lt} elements`);if(P>Dt)throw new Error(`Page custom CSS exceeds ${Dt} syntax nodes`)};R(S.root)}}function Yt(c,p,I,L){let m=[],$="",M="";for(let N of["html","css"])try{N==="html"?$=He(c,I,L,m):M=Ke(p)}catch(S){let f=N==="html"?c:p,P=N==="html"?/\{\{|data-grow-action/:/@import\b|url\s*\(|image-set\s*\(|[\\<]/i,R=S instanceof Error?S.message:"\u5185\u5BB9\u65E0\u6CD5\u89E3\u6790",H=N==="html"?R.match(/未知变量:(.+)/)?.[1]:void 0,F=H?f.indexOf(H):-1,b=typeof S=="object"&&S!==null&&"offset"in S&&typeof S.offset=="number"?S.offset:F>=0?f.lastIndexOf("{{",F):f.search(P);m.push({language:N,from:Math.max(0,b),to:Math.min(f.length,Math.max(0,b)+2),severity:"error",message:R})}return{html:$,css:M,diagnostics:m,valid:!m.some(N=>N.severity==="error")}}function _e(c,p,I){if(!c)return;let L={},m=p.actions.map(M=>M.id);for(let[M,N]of Object.entries(c.nodes)){let S=f=>{if(f.html===void 0)return f;if(xe(p,M)?.type!=="custom_html")throw new Error("HTML \u5546\u54C1\u6570\u636E\u53EA\u80FD\u7528\u4E8E\u81EA\u5B9A\u4E49 HTML \u7EC4\u4EF6");return{...f,html:He(f.html,m,I)}};L[M]={...N,base:S(N.base),...N.byPlan?{byPlan:Object.fromEntries(Object.entries(N.byPlan).map(([f,P])=>[f,S(P)]))}:{}}}let $={...c,nodes:L};return Nt(p,$,I),$}var _t=new WeakMap;function Ne(c,p){let I=ze.parse(c),L=JSON.stringify(I),m=_t.get(p);m||(m=new Map,_t.set(p,m));let $=Date.now();for(let[b,E]of m)E.expires<=$&&m.delete(b);let M=m.get(L);if(M)return m.delete(L),m.set(L,M),JSON.parse(M.json);let N=I.actions.map(b=>b.id),S=b=>{if(b.type==="stack")return{...b,children:b.children.map(S)};if(b.type!=="custom_html")return b;let E={};for(let[U,G]of Object.entries(b.html))E[U]=He(G,N,p);return{...b,html:E,css:Ke(b.css)}},f={...I,pages:I.pages.map(b=>({...b,root:S(b.root)}))};Nt(f,void 0,p);let P=JSON.stringify(f),R=new TextEncoder,H=R.encode(P).length;if(H>Re.documentBytes)throw new Error(`\u754C\u9762\u5185\u5BB9\u8FC7\u5927\uFF08\u4E0A\u9650 ${Re.documentBytes/1e3} KB\uFF09\u3002`);let F=R.encode(L).length;if(F<=Re.documentBytes){m.set(L,{json:P,bytes:F+H,expires:$+6e4});let b=[...m.values()].reduce((E,U)=>E+U.bytes,0);for(;m.size>16||b>2*1024*1024;){let[E,U]=m.entries().next().value;m.delete(E),b-=U.bytes}}return f}function Ze(c){function p(e){return e.type==="stack"&&e.interaction?.type==="select"&&e.interaction.purpose==="product"&&!!e.interaction.pickerId}function I(e){let a={};function t(r){if(p(r)){let i=a[r.interaction.pickerId]??={ids:[],defaultId:null};for(let n of r.children){let l=n.type==="stack"?n.bind?.plan:void 0;l&&!i.ids.includes(l)&&i.ids.push(l)}let s=r.children[r.interaction.defaultIndex];!i.defaultId&&s?.type==="stack"&&(i.defaultId=s.bind?.plan??null)}r.type==="stack"&&r.children.forEach(t)}return e.pages.forEach(r=>t(r.root)),a}function L(e,a,t){let r={};function i(d){if(d.hidden||d.type!=="stack")return;let u=d.children.filter(o=>!o.hidden),w=d.interaction;if(p(d)){let o=r[d.interaction.pickerId]??={ids:[],defaults:[],remembered:[]},h=t.pickers[d.interaction.pickerId]?.options??[];for(let x of u){let T=x.type==="stack"?x.bind?.plan:void 0;T&&h.includes(T)&&!o.ids.includes(T)&&o.ids.push(T),T&&x.id===a[d.id]&&o.remembered.push(T)}let y=d.children[d.interaction.defaultIndex];y?.type==="stack"&&!y.hidden&&y.bind?.plan&&o.defaults.push(y.bind.plan)}if(w?.type==="tabs"){let o=u.find(h=>h.id===a[d.id])??d.children[w.defaultIndex];o&&i(o)}else if(w?.type==="toggle"){let o=typeof a[d.id]=="boolean"?a[d.id]:w.defaultEnabled,h=d.children[o?0:1];h&&i(h)}else u.forEach(i)}let s=typeof a.__page=="string"?a.__page:e.initialPageId??e.pages[0]?.id,n=e.pages.find(d=>d.id===s);n&&i(n.root);let l={};for(let[d,u]of Object.entries(r)){let w=a[d],o=u.remembered[0]??(u.ids.includes(t.pickers[d]?.selected??"")?t.pickers[d]?.selected:u.defaults[0]);l[d]=typeof w=="string"?u.ids.includes(w)?w:"":o&&u.ids.includes(o)?o:""}for(let d of Object.keys(I(e)))l[d]??="";return l}let m=window;for(let e=0;e<c.hostDepth;e++)m=m.parent;let $=window,M={none:0,xs:4,sm:8,md:12,lg:20,xl:32},N={none:0,sm:4,md:8,lg:14,full:9999},S={system:'system-ui,-apple-system,"Segoe UI",Roboto,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif',serif:'Georgia,"Times New Roman","Songti SC","Noto Serif CJK SC",serif',rounded:'ui-rounded,"SF Pro Rounded","Hiragino Maru Gothic ProN",system-ui,sans-serif',mono:"ui-monospace,SFMono-Regular,Menlo,Consolas,monospace"},f={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"},P={start:"flex-start",center:"center",end:"flex-end",between:"space-between"},R={start:"start",center:"center",end:"end",between:"stretch"},H={start:"start",center:"center",end:"end",stretch:"stretch"},F={"1:1":"1 / 1","4:3":"4 / 3","16:9":"16 / 9","3:1":"3 / 1"},b=`
|
|
1
|
+
import{a as K}from"./chunk-6X42DWOM.js";import{a as At}from"./chunk-YNUVRZRQ.js";import{Hi as vt,Zf as wt,ag as _e,cf as yt,hf as We,if as bt,ig as Je,jg as Ve,kf as qe,lg as ve,mg as xt,ng as Ke,of as Re,rj as kt,sj as St,vj as Et}from"./chunk-GTBD4BJ4.js";import"./chunk-3OSMEG44.js";function It(c){let p=new Intl.Locale(c);if(p.language==="zh")return p.maximize().script==="Hant"?"\u95DC\u9589\u5F48\u7A97":"\u5173\u95ED\u5F39\u7A97";let A={en:"Close popup",ja:"\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u3092\u9589\u3058\u308B",ko:"\uD31D\uC5C5 \uB2EB\uAE30",es:"Cerrar ventana emergente",fr:"Fermer la fen\xEAtre contextuelle",de:"Popup schlie\xDFen",pt:"Fechar janela pop-up",it:"Chiudi popup",ru:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0435\u0435 \u043E\u043A\u043D\u043E",vi:"\u0110\xF3ng c\u1EEDa s\u1ED5 b\u1EADt l\xEAn",th:"\u0E1B\u0E34\u0E14\u0E2B\u0E19\u0E49\u0E32\u0E15\u0E48\u0E32\u0E07\u0E1B\u0E4A\u0E2D\u0E1B\u0E2D\u0E31\u0E1B",id:"Tutup pop-up",ar:"\u0625\u063A\u0644\u0627\u0642 \u0627\u0644\u0646\u0627\u0641\u0630\u0629 \u0627\u0644\u0645\u0646\u0628\u062B\u0642\u0629",he:"\u05E1\u05D2\u05D9\u05E8\u05EA \u05D4\u05D7\u05DC\u05D5\u05DF \u05D4\u05E7\u05D5\u05E4\u05E5",fa:"\u0628\u0633\u062A\u0646 \u067E\u0646\u062C\u0631\u0647\u0654 \u0628\u0627\u0632\u0634\u0648",ur:"\u067E\u0627\u067E \u0627\u067E \u0628\u0646\u062F \u06A9\u0631\u06CC\u06BA"};return A[p.language]??A.en}import Kt from"dompurify";import{parse as qt,generate as Jt,walk as Vt}from"css-tree";function Lt(c){if(!c.trim())return"";if(/[\\<]/.test(c))throw new Error("CSS \u6682\u4E0D\u652F\u6301\u53CD\u659C\u6760\u8F6C\u4E49\u6216 HTML \u6807\u7B7E\u3002");let p=qt(c,{onParseError:I=>{throw Object.assign(new Error("CSS \u683C\u5F0F\u4E0D\u6B63\u786E\u3002"),{offset:I.offset})}}),A=0;return Vt(p,I=>{if(++A>5e3)throw new Error("CSS \u8FC7\u4E8E\u590D\u6742\u3002");if(I.type==="Raw"||I.type==="Url"||I.type==="Atrule"&&!["media","supports","keyframes"].includes(I.name.toLowerCase())||I.type==="Function"&&["image-set","-webkit-image-set","image","src","paint"].includes(I.name.toLowerCase()))throw new Error("CSS \u4E0D\u652F\u6301\u5916\u90E8\u8D44\u6E90\u3001\u5BFC\u5165\u6216\u672A\u77E5\u8BED\u6CD5\uFF1B\u56FE\u7247\u8BF7\u4F7F\u7528 HTML img \u6807\u7B7E\u3002")}),Jt(p)}import{parse as Zt,walk as Gt}from"css-tree";function Yt(c,p,A,I){return{html:He(c,A,I),css:Ze(p)}}function Ze(c){return Lt(c)}function He(c,p,A,I){if(!c.trim())return"";let h=qe(c);if(h.length)throw new Error(h[0]);let z=Kt(A),T=z.sanitize(c,{ALLOWED_TAGS:["main","section","article","header","footer","div","span","p","h1","h2","h3","h4","strong","em","b","i","small","br","hr","ul","ol","li","button","img"],ALLOWED_ATTR:["class","alt","src","width","height","title","type","disabled","data-grow-action","aria-label"],ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!1,ADD_URI_SAFE_ATTR:["data-grow-action"],ALLOWED_URI_REGEXP:/^https:\/\//i,RETURN_DOM:!0});if(!(T instanceof A.Element))throw new Error("\u65E0\u6CD5\u89E3\u6790 HTML\u3002");if(I){let S=new Set;for(let f of z.removed){let M="element"in f?f.element.nodeName.toLowerCase():void 0,R="attribute"in f?f.attribute?.name:void 0;if(!M&&!R)continue;let F=R?/<[^>]+>/g:new RegExp(`<\\s*${M}\\b[^>]*>`,"gi"),B=[...c.matchAll(F)].find(D=>!S.has(`${R??M}:${D.index}`)&&(!R||new RegExp(`\\b${R}\\s*=`,"i").test(D[0])));if(!B)continue;let m=B.index;S.add(`${R??M}:${m}`);let C=R==="style"?"\u5185\u8054\u6837\u5F0F\u4E0D\u4FDD\u7559\uFF0C\u8BF7\u5199\u5728 CSS \u4E2D\u3002":R?.startsWith("on")?"\u811A\u672C\u4E8B\u4EF6\u4E0D\u5141\u8BB8\uFF0C\u8BF7\u4F7F\u7528\u52A8\u4F5C\u6309\u94AE\u3002":R==="src"?"\u56FE\u7247\u53EA\u652F\u6301 https \u5730\u5740\u3002":"\u8FD9\u4E2A\u5C5E\u6027\u4E0D\u5728\u5141\u8BB8\u7684\u5E03\u5C40\u3001\u56FE\u7247\u4E0E\u52A8\u4F5C\u5C5E\u6027\u4E2D\u3002";I.push({language:"html",from:m,to:m+B[0].length,severity:"warning",message:R?`\u5DF2\u79FB\u9664\u5C5E\u6027 ${R}\uFF1A${C}`:`\u5DF2\u79FB\u9664 <${M}>\uFF1A\u8FD9\u4E2A\u6807\u7B7E\u4E0D\u5728\u5141\u8BB8\u7684\u6392\u7248\u6807\u7B7E\u4E2D\u3002`})}}let P=qe(T.innerHTML);if(P.length)throw new Error(P[0]);if(T.querySelectorAll("*").length>500)throw new Error("HTML \u6700\u591A\u652F\u6301 500 \u4E2A\u5143\u7D20\u3002");for(let S of T.querySelectorAll("[data-grow-action]")){let f=S.getAttribute("data-grow-action");if(S.tagName!=="BUTTON"||!p.includes(f))throw new Error(`\u81EA\u5B9A\u4E49 HTML \u91CC\u7684\u6309\u94AE ${f.slice(0,64)} \u6CA1\u6709\u5BF9\u5E94\u7684\u52A8\u4F5C\uFF0C\u8BF7\u5148\u5728\u300C\u70B9\u51FB\u52A8\u4F5C\u300D\u91CC\u6DFB\u52A0\uFF0C\u5E76\u4F7F\u7528 button \u5143\u7D20\u3002`)}if(!T.textContent?.trim()&&!T.querySelector("img"))throw new Error("\u81EA\u5B9A\u4E49 HTML \u6E05\u6D17\u540E\u6CA1\u6709\u53EF\u663E\u793A\u7684\u5185\u5BB9\u3002");return T.innerHTML}var Dt=2e3,Rt=1e4,_t=new WeakMap;function Pt(c,p,A){let I=A.document;if(!I)throw new Error("A content document is required");let h=_t.get(A)??new Map;_t.set(A,h);let z=(S,f)=>{let M=h.get(S);if(M!==void 0)return M;let R=f();h.set(S,R);let F=[...h.keys()].reduce((B,m)=>B+m.length,0);for(;h.size>64||F>256e3;){let B=h.keys().next().value;h.delete(B),F-=B.length}return R},T=S=>z(`html:${S}`,()=>{let f=I.createElement("div");return f.innerHTML=S,f.querySelectorAll("*").length}),P=S=>z(`css:${S}`,()=>{let f=0;return S.trim()&&Gt(Zt(S),()=>{f++}),f});for(let S of c.pages){let f=0,M=0,R=F=>{if(F.hidden||(F.type==="stack"&&F.children.forEach(R),F.type!=="custom_html"))return;let B=p?.nodes[F.id],m=[...Object.values(F.html),B?.base.html??"",...Object.values(B?.byPlan??{}).map(C=>C.html??"")];if(f+=Math.max(0,...m.map(T)),M+=P(F.css),f>Dt)throw new Error(`Page custom HTML exceeds ${Dt} elements`);if(M>Rt)throw new Error(`Page custom CSS exceeds ${Rt} syntax nodes`)};R(S.root)}}function Xt(c,p,A,I){let h=[],z="",T="";for(let P of["html","css"])try{P==="html"?z=He(c,A,I,h):T=Ze(p)}catch(S){let f=P==="html"?c:p,M=P==="html"?/\{\{|data-grow-action/:/@import\b|url\s*\(|image-set\s*\(|[\\<]/i,R=S instanceof Error?S.message:"\u5185\u5BB9\u65E0\u6CD5\u89E3\u6790",F=P==="html"?R.match(/未知变量:(.+)/)?.[1]:void 0,B=F?f.indexOf(F):-1,m=typeof S=="object"&&S!==null&&"offset"in S&&typeof S.offset=="number"?S.offset:B>=0?f.lastIndexOf("{{",B):f.search(M);h.push({language:P,from:Math.max(0,m),to:Math.min(f.length,Math.max(0,m)+2),severity:"error",message:R})}return{html:z,css:T,diagnostics:h,valid:!h.some(P=>P.severity==="error")}}function Ne(c,p,A){if(!c)return;let I={},h=p.actions.map(T=>T.id);for(let[T,P]of Object.entries(c.nodes)){let S=f=>{if(f.html===void 0)return f;if(ve(p,T)?.type!=="custom_html")throw new Error("HTML \u5546\u54C1\u6570\u636E\u53EA\u80FD\u7528\u4E8E\u81EA\u5B9A\u4E49 HTML \u7EC4\u4EF6");return{...f,html:He(f.html,h,A)}};I[T]={...P,base:S(P.base),...P.byPlan?{byPlan:Object.fromEntries(Object.entries(P.byPlan).map(([f,M])=>[f,S(M)]))}:{}}}let z={...c,nodes:I};return Pt(p,z,A),z}var Nt=new WeakMap;function Pe(c,p){let A=_e.parse(c),I=JSON.stringify(A),h=Nt.get(p);h||(h=new Map,Nt.set(p,h));let z=Date.now();for(let[m,C]of h)C.expires<=z&&h.delete(m);let T=h.get(I);if(T)return h.delete(I),h.set(I,T),_e.parse(JSON.parse(T.json));let P=A.actions.map(m=>m.id),S=m=>{if(m.type==="stack")return{...m,children:m.children.map(S)};if(m.type!=="custom_html")return m;let C={};for(let[D,U]of Object.entries(m.html))C[D]=He(U,P,p);return{...m,html:C,css:Ze(m.css)}},f={...A,pages:A.pages.map(m=>({...m,root:S(m.root)}))};Pt(f,void 0,p);let M=JSON.stringify(f),R=new TextEncoder,F=R.encode(M).length;if(F>Re.documentBytes)throw new Error(`\u754C\u9762\u5185\u5BB9\u8FC7\u5927\uFF08\u4E0A\u9650 ${Re.documentBytes/1e3} KB\uFF09\u3002`);let B=R.encode(I).length;if(B<=Re.documentBytes){h.set(I,{json:M,bytes:B+F,expires:z+6e4});let m=[...h.values()].reduce((C,D)=>C+D.bytes,0);for(;h.size>16||m>2*1024*1024;){let[C,D]=h.entries().next().value;h.delete(C),m-=D.bytes}}return f}function Ge(c){function p(e){return e.type==="stack"&&e.interaction?.type==="select"&&e.interaction.purpose==="product"&&!!e.interaction.pickerId}function A(e){let a={};function t(r){if(p(r)){let i=a[r.interaction.pickerId]??={ids:[],defaultId:null};for(let n of r.children){let l=n.type==="stack"?n.bind?.plan:void 0;l&&!i.ids.includes(l)&&i.ids.push(l)}let s=r.children[r.interaction.defaultIndex];!i.defaultId&&s?.type==="stack"&&(i.defaultId=s.bind?.plan??null)}r.type==="stack"&&r.children.forEach(t)}return e.pages.forEach(r=>t(r.root)),a}function I(e,a,t){let r={};function i(d){if(d.hidden||d.type!=="stack")return;let u=d.children.filter(o=>!o.hidden),w=d.interaction;if(p(d)){let o=r[d.interaction.pickerId]??={ids:[],defaults:[],remembered:[]},y=t.pickers[d.interaction.pickerId]?.options??[];for(let x of u){let $=x.type==="stack"?x.bind?.plan:void 0;$&&y.includes($)&&!o.ids.includes($)&&o.ids.push($),$&&x.id===a[d.id]&&o.remembered.push($)}let b=d.children[d.interaction.defaultIndex];b?.type==="stack"&&!b.hidden&&b.bind?.plan&&o.defaults.push(b.bind.plan)}if(w?.type==="tabs"){let o=u.find(y=>y.id===a[d.id])??d.children[w.defaultIndex];o&&i(o)}else if(w?.type==="toggle"){let o=typeof a[d.id]=="boolean"?a[d.id]:w.defaultEnabled,y=d.children[o?0:1];y&&i(y)}else u.forEach(i)}let s=typeof a.__page=="string"?a.__page:e.initialPageId??e.pages[0]?.id,n=e.pages.find(d=>d.id===s);n&&i(n.root);let l={};for(let[d,u]of Object.entries(r)){let w=a[d],o=u.remembered[0]??(u.ids.includes(t.pickers[d]?.selected??"")?t.pickers[d]?.selected:u.defaults[0]);l[d]=typeof w=="string"?u.ids.includes(w)?w:"":o&&u.ids.includes(o)?o:""}for(let d of Object.keys(A(e)))l[d]??="";return l}let h=window;for(let e=0;e<c.hostDepth;e++)h=h.parent;let z=window,T={none:0,xs:4,sm:8,md:12,lg:20,xl:32},P={none:0,sm:4,md:8,lg:14,full:9999},S={system:'system-ui,-apple-system,"Segoe UI",Roboto,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif',serif:'Georgia,"Times New Roman","Songti SC","Noto Serif CJK SC",serif',rounded:'ui-rounded,"SF Pro Rounded","Hiragino Maru Gothic ProN",system-ui,sans-serif',mono:"ui-monospace,SFMono-Regular,Menlo,Consolas,monospace"},f={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"},M={start:"flex-start",center:"center",end:"flex-end",between:"space-between"},R={start:"start",center:"center",end:"end",between:"stretch"},F={start:"start",center:"center",end:"end",stretch:"stretch"},B={"1:1":"1 / 1","4:3":"4 / 3","16:9":"16 / 9","3:1":"3 / 1"},m=`
|
|
2
2
|
*,*::before,*::after{box-sizing:border-box}
|
|
3
3
|
html,body{margin:0;padding:0;background:transparent}
|
|
4
4
|
body{font-family:var(--g-font);color:var(--g-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
|
|
@@ -168,7 +168,7 @@ body{font-family:var(--g-font);color:var(--g-text);-webkit-font-smoothing:antial
|
|
|
168
168
|
@media(max-width:560px){.g-data[data-source=credit_transactions][data-layout=compact] .g-data-row{grid-template-columns:minmax(0,1fr) minmax(95px,.45fr);gap:12px}.g-data[data-source=credit_transactions][data-layout=compact] .g-data-row-status{grid-column:1;grid-row:2;margin-inline-start:46px;justify-self:start}.g-data[data-source=credit_transactions][data-layout=compact] .g-data-row-extra{grid-column:2;grid-row:1/3}}
|
|
169
169
|
@media(max-width:560px){.g-data[data-source=membership] .g-data-row-no-value .g-data-row-status{grid-column:2;grid-row:1;align-self:start;justify-self:end}}
|
|
170
170
|
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
|
|
171
|
-
`,E=null,U,G=new Set,O,te,ne=new Map,ce=new Map,ue,J={},C=null,A=Object.create(null),ie=Object.create(null),ge=Object.create(null),ae="",j=!1,v=-1,k=!1,se="",fe=null,Y=null,ve=null,V=document.createElement("div");V.id="g-card";let ke=document.createElement("div"),pe=document.createElement("div");ke.className=pe.className="g-box",pe.dataset.kind="select",ke.append(document.createElement("span")),pe.append(document.createElement("span"));function B(e){let a={...e,channel:c.channel};try{m.postMessage(a,c.parentOrigin)}catch{}}function Se(e){let a=parseInt(e.slice(1),16);return[a>>16&255,a>>8&255,a&255]}function Pe(e,a,t){let r=Se(e),i=Se(a),s=r.map((n,l)=>Math.round(n*t+i[l]*(1-t)));return`rgb(${s[0]},${s[1]},${s[2]})`}function Ct(e){let[a,t,r]=Se(e).map(i=>{let s=i/255;return s<=.03928?s/12.92:((s+.055)/1.055)**2.4});return .2126*a+.7152*t+.0722*r}function Ie(e){return typeof e!="string"?"":e.startsWith("#")?e:`var(--g-${e==="background"?"bg":e})`}function Tt(e){let a=e.theme,t=document.documentElement.style,r=Ct(a.primary),i=(r+.05)/.05>1.05/(r+.05)?"#111318":"#FFFFFF";t.setProperty("--g-primary",a.primary),t.setProperty("--g-on-primary",i),t.setProperty("--g-bg",a.background),t.setProperty("--g-text",a.text),t.setProperty("--g-muted",Pe(a.text,a.background,.62)),t.setProperty("--g-surface",Pe(a.text,a.background,.05)),t.setProperty("--g-border",Pe(a.text,a.background,.16)),t.setProperty("--g-focus",Pe(a.primary,a.background,.45)),t.setProperty("--g-radius",`${N[a.radius]??8}px`),t.setProperty("--g-font",S[a.font]??S.system),t.setProperty("--g-edit","#2C3C96")}function K(e){let a=E?.strings.locales[ae]?.[e];return a&&a.trim()?{value:a,missing:!1}:{value:E?.strings.locales[E.strings.defaultLocale]?.[e]??"",missing:!0}}function he(e){let a=O?.nodes[e];if(!a)return;let t=a.picker?A[a.picker]??O?.pickers[a.picker]?.selected:void 0;if(!(a.picker&&t===""))return typeof t=="string"?a.byPlan?.[t]??a.base:a.base}function Qe(){return{...E?.surface==="paywall"&&C?{__page:C}:{},...Object.fromEntries(Object.entries(A).filter(e=>!Array.isArray(e[1])))}}function Le(e,a,t){let r=he(e.id),i=r?.[a],s=i!==void 0?{value:i,missing:!!r?.missing?.length}:K(t);if(c.mode==="live"&&U){let n=!1,l=s.value.replace(/\{\{\s*(input|params)\.([a-zA-Z][a-zA-Z0-9_.-]{0,63})\s*\}\}/g,(d,u,w)=>{let o=u==="params"?J[w]:U?.answers[w];return o==null||o===""||Array.isArray(o)&&!o.length?(n=!0,""):Array.isArray(o)?o.join(", "):String(o)});if(n)return{value:e.fallback?K(e.fallback).value:"",missing:!0};if(!l.includes("{{"))return{value:l,missing:s.missing}}return i!==void 0?s:s.value.includes("{{")&&c.mode==="live"?{value:e.fallback?K(e.fallback).value:"",missing:!0}:{value:s.value,missing:s.missing||s.value.includes("{{")}}function $t(e){if(e.name)return e.name;let a=c.editorMessages?.nodeTypes?.[e.type];return c.mode==="editor"&&typeof a=="string"?a:{stack:"\u5BB9\u5668",text:"\u6587\u672C",image:"\u56FE\u7247",button:"\u6309\u94AE",divider:"\u5206\u9694\u7EBF",spacer:"\u7559\u767D",custom_html:"\u81EA\u5B9A\u4E49 HTML",price:"\u4EF7\u683C",coupon_code:"\u4F18\u60E0\u7801",countdown:"\u5012\u8BA1\u65F6",plan_picker:"\u771F\u5B9E\u5957\u9910\u9009\u62E9"}[e.type]??e.type}function zt(e,a){if(a.type==="color")e.background="none",e.backgroundColor=Ie(a.color);else if(a.type==="linear"){let t=a.stops.map(r=>`${Ie(r.color)} ${Number(r.at)}%`).join(",");e.backgroundColor="transparent",e.backgroundImage=`linear-gradient(${Number(a.angle)}deg,${t})`}else if(a.type==="image"&&typeof a.src=="string"){let t=/^data:image\/(?:svg\+xml|jpeg|png);base64,[A-Za-z0-9+/]+={0,2}$/.test(a.src)?a.src:a.src.replace(/[^A-Za-z0-9\-._~:/?#[\]@!$&*+;=%]/gu,i=>i.length===1&&i.charCodeAt(0)<128?`%${i.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`:encodeURIComponent(i));e.backgroundImage=`url("${t}")`;let r=a.position;e.backgroundPosition=r?`${r.x}% ${r.y}%`:"center",e.backgroundSize=a.fit==="contain"?"contain":"cover",e.backgroundRepeat="no-repeat"}}function et(e){return`${Number(e.top)}px ${Number(e.right)}px ${Number(e.bottom)}px ${Number(e.left)}px`}function tt(e,a,t,r,i){if(a===void 0)return;let s=r?.direction??"vertical",n=s!=="overlay"&&t==="width"==(s==="horizontal"),l=t==="width"?"minWidth":"minHeight";a==="fill"?s==="overlay"?(e.style[t]="100%",e.style[t==="width"?"justifySelf":"alignSelf"]="stretch"):n?(e.style.flex="1 1 0",e.style[l]="0"):(e.style.alignSelf="stretch",e.style[t]="auto"):a==="fit"?(e.style[t]="fit-content",t==="width"&&(e.style.maxWidth="100%"),!n&&s!=="overlay"&&(!r||r.align==="stretch")&&(e.style.alignSelf=i==="center"?"center":i==="end"?"flex-end":"flex-start")):typeof a=="number"&&(e.style[t]=`${a}px`,t==="width"&&(e.style.maxWidth="100%"),n&&(e.style.flex="0 0 auto"))}function De(e,a,t){let r=a.style,i=r.text??{},s=e.style;if(a.type==="customer_data"&&(i.font&&s.setProperty("--g-data-display-font",S[String(i.font)]??S.system),a.data.source==="membership"&&(typeof i.size=="number"&&s.setProperty("--g-data-display-size",`clamp(${Math.min(i.size,28)}px, ${i.size/12}vw, ${i.size}px)`),typeof i.weight=="number"&&s.setProperty("--g-data-display-weight",String(i.weight)))),a.type==="customer_data"&&a.data.source==="credit_balance"&&(typeof i.size=="number"&&s.setProperty("--g-data-number-size",`clamp(${Math.min(i.size,48)}px, ${i.size/10}vw, ${i.size}px)`),i.font&&s.setProperty("--g-data-number-font",S[String(i.font)]??S.system),typeof i.weight=="number"&&s.setProperty("--g-data-number-weight",String(i.weight))),a.type==="customer_data"&&i.color){let u=Ie(i.color);s.setProperty("--g-data-ink",u),s.setProperty("--g-data-muted",`color-mix(in srgb, ${u} 72%, transparent)`),s.setProperty("--g-data-line",`color-mix(in srgb, ${u} 20%, transparent)`),s.setProperty("--g-data-surface",`color-mix(in srgb, ${u} 8%, transparent)`)}r.padding&&(s.padding=et(r.padding)),r.margin&&(s.margin=et(r.margin)),typeof r.gap=="number"&&a.type==="stack"&&(s.gap=`${r.gap}px`),r.background&&zt(s,r.background),typeof r.opacity=="number"&&(s.opacity=String(r.opacity));let n=r.shape;if(n?.type==="pill")s.borderRadius="9999px";else if(n?.type==="rect"){let u=n.radius;s.borderRadius=typeof u=="number"?`${u}px`:`${Number(u.topLeft)}px ${Number(u.topRight)}px ${Number(u.bottomRight)}px ${Number(u.bottomLeft)}px`}(r.clipContent===!0||r.clipContent!==!1&&n&&(r.background||a.type==="image"))&&(s.overflow="hidden");let l=r.border;l&&(s.border=Number(l.width)>0?`${Number(l.width)}px ${l.style==="dashed"?"dashed":"solid"} ${Ie(l.color)}`:"0");let d=r.shadow;d&&(s.boxShadow=`${Number(d.x)}px ${Number(d.y)}px ${Number(d.blur)}px ${Number(d.spread)}px ${Ie(d.color)}`),["text","button","price","coupon_code","countdown","plan_picker"].includes(a.type)&&(i.font&&(s.fontFamily=S[String(i.font)]??""),typeof i.size=="number"&&(s.fontSize=`${i.size}px`),typeof i.weight=="number"&&(s.fontWeight=String(i.weight)),typeof i.lineHeight=="number"&&(s.lineHeight=String(i.lineHeight)),typeof i.letterSpacing=="number"&&(s.letterSpacing=`${i.letterSpacing}px`),i.color&&(s.color=Ie(i.color)),i.align&&(s.textAlign=String(i.align)),i.italic&&(s.fontStyle="italic"),i.decoration&&(s.textDecoration=String(i.decoration)),i.transform&&(s.textTransform=String(i.transform))),tt(e,r.width,"width",t,i.align),tt(e,r.height,"height",t,i.align),t?.direction==="horizontal"&&r.grow!==void 0&&(s.flexGrow=String(r.grow===!0?1:r.grow===!1?0:r.grow))}function Me(e,a){if(U){let t=U.bindings.find(r=>r.componentId===e);if(!t)return;U.answers[t.key]=a,G.add(e),B({type:"answers",answers:at()});return}}function at(){let e={};for(let a of U?.bindings??[]){let t=A[a.componentId];t!==void 0&&(e[a.key]=t)}return e}function Ht(e){let a=document.createElement("section");a.className="g-data",a.dataset.layout=e.data.layout,a.dataset.source=e.data.source;let t=te?.nodes[e.id];a.dataset.status=t?.status??"idle",a.dataset.preview=String(!!t?.preview);let r=t?.status==="loading",i=ae.startsWith("zh"),s=(g,D)=>i?g:D;a.setAttribute("aria-busy",String(!!r));let n=(g,D,X)=>{let _=document.createElement(g);return _.className=D,X!==void 0&&(_.textContent=X),_},l=g=>{let D=document.createElementNS("http://www.w3.org/2000/svg","svg");D.setAttribute("viewBox","0 0 24 24"),D.setAttribute("fill","none"),D.setAttribute("stroke","currentColor"),D.setAttribute("stroke-width","1.7"),D.setAttribute("stroke-linecap","round"),D.setAttribute("stroke-linejoin","round"),D.setAttribute("aria-hidden","true"),D.classList.add("g-data-icon");let X={refresh:["M20 7v5h-5","M4 17v-5h5","M6.1 7a7 7 0 0 1 11.5-1.5L20 8M4 16l2.4 2.5A7 7 0 0 0 18 17"],down:["M7 7l10 10M7 17h10V7"],up:["M7 17L17 7M7 7h10v10"],chevron:["M6 9l6 6 6-6"],empty:["M4 8l8-4 8 4v10l-8 4-8-4V8Z","M4 8l8 4 8-4M12 12v10"],credit:["M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18Z","M12 7v10M8 12h8"]};for(let _ of X[g]){let q=document.createElementNS("http://www.w3.org/2000/svg","path");q.setAttribute("d",_),D.append(q)}return D},d=(g,D,X,_=!1,q=D)=>{let re=n("button","g-data-button",g);return re.type="button",re.disabled=_||!!r&&D!=="refresh"||!!t?.preview||c.mode!=="live",r&&D==="refresh"&&re.setAttribute("aria-disabled","true"),re.dataset.gDataFocus=`${e.id}:${q}:${X??""}`,re.addEventListener("click",le=>{!le.isTrusted||re.disabled||r||B({type:"customer-data-intent",intent:{nodeId:e.id,action:D,...X?{value:X}:{}}})}),re},u=n("div","g-data-header"),w=n("h2","g-data-heading",K(e.title).value);w.id=`g-data-title-${e.id}`,a.setAttribute("aria-labelledby",w.id);let o=n("div","g-data-controls"),h=[],y=g=>{g.hidden||(g.type==="customer_data"&&h.push(g),g.type==="stack"&&g.children.forEach(y))},x=E?.pages[0];x&&y(x.root);let T=h.every(g=>te?.nodes[g.id]?.preview),W=h.find(g=>g.data.source==="credit_balance")??h[0];t?.preview&&(!T||W?.id===e.id)&&o.append(n("span","g-data-preview",s("\u793A\u4F8B\u6570\u636E","Sample data")));let z=r?s("\u66F4\u65B0\u4E2D\u2026","Updating\u2026"):s("\u5237\u65B0","Refresh"),ee=d(z,"refresh");if(ee.replaceChildren(l("refresh")),ee.setAttribute("aria-label",z),ee.title=z,ee.classList.add("g-data-refresh"),r&&ee.classList.add("g-data-refreshing"),o.append(ee),e.data.source==="billing"&&e.data.outputs?.billing_portal&&o.append(d(t?.billingBusy?s("\u6B63\u5728\u51C6\u5907\u2026","Preparing\u2026"):s("\u7BA1\u7406\u652F\u4ED8\u65B9\u5F0F","Manage payment method"),"billing_portal",void 0,!!t?.billingBusy||t?.status!=="ready")),e.data.source==="credit_balance"&&(w.prepend(l("credit")),t?.resources.length===1&&w.append(n("span","g-data-resource-label",t.resources[0].name)),t?.updatedAt)){let g=n("time","g-data-updated",`${s("\u66F4\u65B0\u4E8E","Updated")} ${new Intl.DateTimeFormat(ae,{timeStyle:"short"}).format(new Date(t.updatedAt))}`);g.dateTime=t.updatedAt,g.title=new Intl.DateTimeFormat(ae,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t.updatedAt)),o.prepend(g)}if(u.append(w,o),a.append(u),!t||t.source!==e.data.source)return a.append(n("p","g-data-empty",s("\u8FDE\u63A5\u5BA2\u6237\u6570\u636E\u540E\u663E\u793A\u6B64\u5185\u5BB9\u3002","Connect customer data to display this content."))),a;if(t.errorMessage){let g=n("div","g-data-error",t.errorMessage);g.setAttribute("role","alert"),a.append(g);let D=n("div","g-data-recovery");D.append(d(s("\u91CD\u8BD5","Retry"),"refresh")),a.append(D)}if(t.membershipResult){let g=n("p","g-data-note",t.membershipResult);g.setAttribute("role","status"),a.append(g)}if(t.membershipReview){let g=t.membershipReview,D=n("section","g-data-resource");D.dataset.gDataReview="",D.setAttribute("aria-label",g.title),D.setAttribute("aria-busy",String(!!t.membershipBusy));let X=n("h3","g-data-row-label",g.title);X.tabIndex=-1,D.append(X);let _=n("dl","g-data-facts");for(let re of g.facts){let le=n("div","");le.append(n("dt","",re.label),n("dd","",re.value)),_.append(le)}D.append(_,n("p","g-data-note",g.note));let q=n("div","g-data-controls");q.append(d(s("\u8FD4\u56DE","Back"),"membership_dismiss",void 0,!!t.membershipBusy),d(t.membershipBusy?s("\u6B63\u5728\u5904\u7406\u2026","Processing\u2026"):s("\u786E\u8BA4","Confirm"),"membership_confirm",void 0,!!t.membershipBusy)),D.append(q),a.append(D)}if(t.stale&&(t.resources.length||t.rows.length)&&a.append(n("p",r?"g-data-live-status":"g-data-note",r?s("\u6B63\u5728\u66F4\u65B0\u8D26\u6237\u6570\u636E\u3002","Updating account data."):s("\u663E\u793A\u4E0A\u6B21\u8BFB\u53D6\u7684\u7ED3\u679C\uFF0C\u6B63\u5728\u7B49\u5F85\u66F4\u65B0\u3002","Showing the last result while awaiting an update."))),r&&!t.resources.length&&!t.rows.length){let g=n("div","g-data-skeleton");if(g.setAttribute("aria-hidden","true"),e.data.source==="credit_balance")g.append(n("span","g-data-skeleton-line g-data-skeleton-value"),n("span","g-data-skeleton-line g-data-skeleton-meta"));else{let X=Math.min(e.data.pageSize,e.data.layout==="compact"?2:4);for(let _=0;_<X;_++){let q=n("div","g-data-skeleton-row");q.append(n("span","g-data-skeleton-line"),n("span","g-data-skeleton-line")),g.append(q)}}let D=n("p","g-data-live-status",s("\u6B63\u5728\u8BFB\u53D6\u8D26\u6237\u6570\u636E\u2026","Loading account data\u2026"));return D.setAttribute("role","status"),a.append(g,D),a}let oe={credit_transactions:[["all","\u5168\u90E8\u8BB0\u5F55","All activity"],["consume","\u6D88\u8D39","Usage"],["reserve","\u9884\u6263","Reserved"],["confirm","\u786E\u8BA4\u6263\u8D39","Confirmed"],["release","\u91CA\u653E","Released"],["refund","\u9000\u56DE","Refund"]],credit_pack_orders:[["all","\u5168\u90E8\u8BA2\u5355","All orders"],["pending","\u7B49\u5F85\u4ED8\u6B3E","Pending"],["paid","\u5DF2\u4ED8\u6B3E","Paid"],["expired","\u5DF2\u8FC7\u671F","Expired"],["refunded","\u5DF2\u9000\u6B3E","Refunded"],["disputed","\u4E89\u8BAE\u4E2D","Disputed"]],offer_history:[["all","\u5168\u90E8\u8BB0\u5F55","All offers"],["issued","\u53EF\u7528","Available"],["redeemed","\u5DF2\u4F7F\u7528","Redeemed"],["expired","\u5DF2\u5230\u671F","Expired"],["revoked","\u5DF2\u64A4\u9500","Revoked"]]};if(oe[e.data.source]){let g=n("select","g-data-select");g.setAttribute("aria-label",s("\u7B5B\u9009\u8BB0\u5F55","Filter records")),g.dataset.gDataFocus=`${e.id}:filter`,g.disabled=!!r||t.preview||c.mode!=="live";for(let[D,X,_]of oe[e.data.source]){let q=document.createElement("option");q.value=D,q.textContent=s(X,_),g.append(q)}g.value=t.filter,g.addEventListener("change",()=>{!g.disabled&&c.mode==="live"&&B({type:"customer-data-intent",intent:{nodeId:e.id,action:"filter",value:g.value}})}),o.prepend(g)}let gt=(g,D=!1)=>{let X=n("ul","g-data-list");if(e.data.source==="credit_transactions"&&g.length&&!D){let _=n("div","g-data-table-head");_.setAttribute("aria-hidden","true"),_.append(n("span","",s("\u8BB0\u5F55","Record")),n("span","",s("\u7C7B\u578B","Type")),n("span","",s("\u79EF\u5206","Credits"))),a.append(_)}for(let _ of g){let q=n("li","g-data-row"),re=n("div","g-data-row-main"),le=n("div","g-data-row-copy");le.append(n("p","g-data-row-label",_.label));for(let Q of _.detail)Q!==_.status&&le.append(n("div","g-data-row-detail",Q));if(e.data.source==="credit_transactions"&&!D){let Q=n("span","g-data-row-mark");Q.append(l(["Refund","\u9000\u56DE"].includes(_.status??"")?"up":"down")),re.append(Q)}if(re.append(le),q.append(re),_.status?q.append(n("div","g-data-row-status",_.status)):q.classList.add("g-data-row-no-status"),_.value?q.append(n("div","g-data-row-value",_.value)):q.classList.add("g-data-row-no-value"),_.facts.length||_.purchaseId||_.membershipActions?.length||_.billingActions?.length){let Q=n("div","g-data-row-extra"),me=n("div","g-data-facts"),we=(de,$e)=>{for(let ft of de){let mt=n("span","",ft.label);mt.append(n("strong","",ft.value)),$e.append(mt)}};if(we(_.facts.slice(0,3),me),_.facts.length>3){let de=n("details","g-data-sources");de.dataset.gDataSources=`facts:${_.id}`,de.append(n("summary","",`${e.data.source==="billing"?s("\u8D26\u5355\u8BE6\u60C5","Invoice details"):s("\u5168\u90E8\u6263\u8D39\u660E\u7EC6","All allocations")} \xB7 ${_.facts.length}`));let $e=n("div","g-data-facts");we(_.facts.slice(3),$e),de.append($e),me.append(de)}if(Q.append(me),!D)for(let de of _.billingActions??[])Q.append(d(de.label,de.action,_.id,!!t.billingBusy));if(_.purchaseId&&e.data.allowPurchase&&!D){let de=d(t.buyingId===_.purchaseId?s("\u6B63\u5728\u51C6\u5907\u2026","Preparing\u2026"):s("\u8D2D\u4E70\u79EF\u5206","Buy credits"),"buy_pack",_.purchaseId,!!t.preview||!!t.buyingId);de.classList.add("g-data-buy"),Q.append(de)}if(e.data.allowPurchase&&!D)for(let de of _.membershipActions??[])Q.append(d(de.label,"membership_preview",de.value,!!t.preview||!!t.membershipBusy||!!t.membershipReview));q.append(Q)}X.append(q)}return X};for(let g of t.resources){let D=n("article","g-data-resource");D.setAttribute("aria-label",g.name),t.resources.length>1&&D.append(n("p","g-data-name",g.name));let X=n("div","g-data-balance"),_=new Intl.NumberFormat(ae).formatToParts(1.1).find(Q=>Q.type==="decimal")?.value??".",q=g.spendable.lastIndexOf(_),re=n("strong","g-data-number",q<0?g.spendable:g.spendable.slice(0,q));q>=0&&re.append(n("span","g-data-fraction",g.spendable.slice(q))),X.append(re,n("span","g-data-unit",s("\u53EF\u7528\u79EF\u5206","Spendable credits"))),D.append(X);let le=n("div","g-data-facts");for(let[Q,me]of[[s("\u4F59\u989D","Balance"),g.available],[s("\u51BB\u7ED3","Reserved"),g.reserved]]){let we=n("span","",Q);we.append(n("strong","",me)),le.append(we)}if(g.expiry&&le.append(n("span","g-data-expiry",`${s("\u6700\u8FD1\u5230\u671F","Next expiry")} \xB7 ${g.expiry}`)),D.append(le),e.data.showSources&&g.sourceCount){let Q=n("details","g-data-sources");if(Q.dataset.gDataSources=g.key,Q.append(n("summary","",`${s("\u79EF\u5206\u6765\u6E90","Credit sources")} \xB7 ${g.sourceCount}`),gt(g.sources,!0)),Q.querySelector("summary")?.append(l("chevron")),g.hasNextSources||g.hasPreviousSources){let me=n("div","g-data-footer");me.append(n("span","",`${s("\u7B2C","Page")} ${g.sourcePage}`));let we=n("div","g-data-controls");we.append(d(s("\u4E0A\u4E00\u9875","Previous"),"sources_previous",g.key,!g.hasPreviousSources),d(s("\u4E0B\u4E00\u9875","Next"),"sources_next",g.key,!g.hasNextSources)),me.append(we),Q.append(me)}D.append(Q)}a.append(D)}if(t.rows.length&&a.append(gt(t.rows)),e.data.source==="billing_controls"&&(e.data.outputs?.billing_authorization||e.data.outputs?.billing_adjustment)){let g=n("div","g-data-controls");e.data.outputs?.billing_authorization&&g.append(d(s("\u8BBE\u7F6E\u81EA\u52A8\u4ED8\u6B3E\u6388\u6743","Set up payment authorization"),"billing_authorization")),e.data.outputs?.billing_adjustment&&g.append(d(s("\u67E5\u770B\u5F85\u786E\u8BA4\u8865\u6B3E","Review pending adjustment"),"billing_adjustment")),a.append(g)}if(!t.rows.length&&!t.resources.length&&t.status!=="error"){let g=n("p","g-data-empty",r?s("\u6B63\u5728\u8BFB\u53D6\u8D26\u6237\u6570\u636E\u2026","Loading account data\u2026"):t.status==="idle"?s("\u767B\u5F55\u540E\u67E5\u770B\u4F60\u7684\u8D26\u6237\u6570\u636E\u3002","Sign in to view your account data."):t.filter!=="all"?s("\u6CA1\u6709\u7B26\u5408\u7B5B\u9009\u6761\u4EF6\u7684\u8BB0\u5F55\u3002","No records match this filter."):e.data.source==="credit_pack_orders"?s("\u6682\u65E0\u8D2D\u4E70\u8BB0\u5F55","No purchases yet"):e.data.source==="credit_balance"?s("\u6682\u65E0\u79EF\u5206\u6765\u6E90","No credit balances yet"):e.data.source==="membership"?s("\u6682\u65E0\u4F1A\u5458\u65B9\u6848","No memberships yet"):e.data.source==="customer_plans"?s("\u6682\u65E0\u53EF\u9009\u5957\u9910","No plans available"):e.data.source==="credit_packs"?s("\u6682\u65E0\u53EF\u8D2D\u4E70\u7684\u79EF\u5206\u5305","No credit packs available"):e.data.source==="billing_controls"?s("\u5C1A\u672A\u8BBE\u7F6E\u7528\u91CF\u9650\u5236\u6216\u81EA\u52A8\u4ED8\u6B3E\u6388\u6743","No usage limits or payment authorizations configured"):e.data.source==="offer_history"?s("\u6682\u65E0\u4F18\u60E0\u8BB0\u5F55","No offers yet"):e.data.source==="billing"?s("\u6682\u65E0\u8D26\u5355","No invoices yet"):s("\u8FD9\u91CC\u8FD8\u6CA1\u6709\u8BB0\u5F55\u3002","There are no records yet."));g.prepend(l("empty")),g.setAttribute("role","status"),a.append(g)}if(t.hasNext||t.hasPrevious){let g=n("div","g-data-footer");g.append(n("span","",`${s("\u7B2C","Page")} ${t.page}`));let D=n("div","g-data-controls");D.append(d(s("\u4E0A\u4E00\u9875","Previous"),"previous",void 0,!t.hasPrevious),d(s("\u4E0B\u4E00\u9875","Next"),"next",void 0,!t.hasNext)),g.append(D),a.append(g)}return t.updatedAt&&e.data.source!=="credit_balance"&&a.append(n("p","g-data-note g-data-updated",`${s("\u6570\u636E\u66F4\u65B0\u4E8E","Updated")} ${new Intl.DateTimeFormat(ae,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t.updatedAt))}`)),a}let Ee=new Map,Oe=new Map,rt=e=>{let a=e.target;for(let t of Ee.keys())a&&!Ae(t)?.contains(a)&&Ee.delete(t)};document.addEventListener("focusin",rt),document.addEventListener("pointerdown",rt);function Ot(e){let a=te;if(te=e,!E)return;let t=(i,s)=>{if(i.type==="stack"){i.children.forEach(x=>t(x,i));return}if(i.type!=="customer_data"||JSON.stringify(a?.nodes[i.id])===JSON.stringify(e.nodes[i.id]))return;let n=Ae(i.id);if(!n)return;let l=document.activeElement;l&&n.contains(l)&&l.dataset.gDataFocus&&Ee.set(i.id,l.dataset.gDataFocus);let d=new Set([...n.querySelectorAll("details[data-g-data-sources]")].filter(x=>x.open).map(x=>x.dataset.gDataSources)),u=Ce(i,s);if(!u)return;for(let x of u.querySelectorAll("details[data-g-data-sources]"))x.open=d.has(x.dataset.gDataSources);let w=n.scrollTop;n.replaceWith(u),u.scrollTop=w;let o=!!e.nodes[i.id]?.membershipReview&&!a?.nodes[i.id]?.membershipReview,h=!e.nodes[i.id]?.membershipReview&&!!a?.nodes[i.id]?.membershipReview;o&&Ee.get(i.id)&&Oe.set(i.id,Ee.get(i.id));let y=h?Oe.get(i.id):Ee.get(i.id);y&&[...u.querySelectorAll("[data-g-data-focus]")].find(x=>x.dataset.gDataFocus===y)?.focus({preventScroll:!0}),o&&u.querySelector("[data-g-data-review] h3")?.focus({preventScroll:!0}),h&&Oe.delete(i.id),u.animate&&e.nodes[i.id]?.status==="ready"&&!window.matchMedia("(prefers-reduced-motion:reduce)").matches&&u.animate([{opacity:.7},{opacity:1}],{duration:140,easing:"ease-out"})},r=E.pages.find(i=>i.id===C)??E.pages[0];t(r.root,null),be()}function Ce(e,a){if(e.hidden)return null;let t;if(e.type==="customer_data")t=Ht(e);else if(e.type==="stack"){t=document.createElement(e.purchaseAction?"button":"div"),e.purchaseAction&&(t.type="button",t.dataset.gAction=e.purchaseAction),t.className=`${e.purchaseAction?`g-btn g-btn-${e.buttonVariant??"primary"} `:""}g-stack ${e.direction==="horizontal"?"g-h":e.direction==="overlay"?"g-o":"g-v"}`,e.direction==="overlay"?(t.style.alignItems=H[e.align]??"stretch",t.style.justifyItems=R[e.justify]??"stretch"):(t.style.alignItems=f[e.align]??"stretch",t.style.justifyContent=P[e.justify]??"flex-start");for(let r of e.children){let i=Ce(r,e);i&&t.append(i)}if(e.interaction&&jt(t,e),e.purchaseAction&&c.mode==="live"){let r=O?.nodes[e.id],i=r?.picker;i&&(t.disabled=!O?.pickers[i]?.options.includes(String(A[i]??""))),he(e.id)?.unavailable&&(t.disabled=!0)}c.mode==="editor"&&!t.childElementCount&&(t.classList.add("g-empty"),t.dataset.gEditorPlaceholder=c.editorMessages?.emptyContainer??"\u62D6\u5165\u7EC4\u4EF6")}else if(e.type==="text"){let r=e.variant==="title"?"h1":e.variant==="heading"?"h2":"p";t=document.createElement(r),t.className=`g-text g-${e.variant}`;let i=Le(e,"text",e.text);t.textContent=i.value,i.missing&&c.mode==="editor"&&t.classList.add("g-missing")}else if(e.type==="button"){t=document.createElement("button"),t.type="button",t.className=`g-btn g-btn-${e.variant}`;let r=Le(e,"label",e.label);t.textContent=r.value,r.missing&&c.mode==="editor"&&t.classList.add("g-missing"),t.dataset.gAction=e.action;let i=O?.nodes[e.id]?.picker;if(i&&c.mode==="live"){let s=i,n=O?.pickers[s],l=A[s]??n?.selected;t.disabled=!n?.options.includes(String(l)),t.disabled&&t.setAttribute("aria-disabled","true")}c.mode==="live"&&he(e.id)?.unavailable&&(t.disabled=!0,t.setAttribute("aria-disabled","true")),c.mode==="editor"&&(t.tabIndex=-1)}else if(e.type==="image"){t=document.createElement("div"),t.className="g-img",F[e.aspect]&&(t.dataset.aspect=e.aspect,t.style.aspectRatio=F[e.aspect]);let r=document.createElement("img");r.src=e.localizedSrc?.[ae]??e.localizedSrc?.[E.strings.defaultLocale]??e.src,r.alt=Le(e,"alt",e.alt).value,r.referrerPolicy="no-referrer",r.decoding="async",r.style.objectFit=e.fit,e.position&&(r.style.objectPosition=`${e.position.x}% ${e.position.y}%`),r.addEventListener("load",be),t.append(r)}else if(e.type==="price"){t=document.createElement("div"),t.className="g-price",t.style.cssText="display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-variant-numeric:tabular-nums";let r=he(e.id);if(!r?.price)t.textContent=r?.text??K(e.fallback).value,c.mode==="editor"&&t.classList.add("g-missing");else for(let i of["current","original","period"]){let s=r.price[i];if(!s)continue;let n=document.createElement(i==="original"?"s":"span");n.textContent=s,i==="original"&&(n.style.opacity=".6"),e.parts?.[i]&&De(n,{type:"text",id:e.id,text:e.fallback,variant:"body",style:e.parts[i]},null),t.append(n)}}else if(e.type==="coupon_code"){t=document.createElement("div"),t.style.cssText="display:flex;align-items:center;gap:12px;flex-wrap:wrap";let r=he(e.id);if(r?.code){let i=document.createElement("code");i.textContent=r.code;let s=document.createElement("button");s.type="button",s.className="g-btn g-btn-secondary",s.textContent=K(e.label).value,s.addEventListener("click",n=>{c.mode!=="editor"&&(n.stopPropagation(),B({type:"copy",nodeId:e.id}))}),t.append(i,s)}else t.textContent=r?.text??K(e.fallback).value,c.mode==="editor"&&t.classList.add("g-missing")}else if(e.type==="countdown"){t=document.createElement("span"),t.setAttribute("role","timer"),t.style.fontVariantNumeric="tabular-nums";let r=he(e.id),i=r?.countdownAt?Date.parse(r.countdownAt):NaN;!Number.isFinite(i)&&c.mode==="editor"&&t.classList.add("g-missing");let s=()=>{if(!Number.isFinite(i)){t.textContent=r?.text??K(e.fallback).value;return}let n=Math.max(0,Math.ceil((i-Date.now())/1e3));if(!n){t.textContent=K(e.expired).value;let u=ne.get(e.id);u!==void 0&&clearInterval(u),ne.delete(e.id);return}let l=e.granularity,d=l==="day"?86400:l==="hour"?3600:l==="minute"?60:1;l!=="second"?t.textContent=new Intl.NumberFormat(ae,{style:"unit",unit:l,unitDisplay:"short"}).format(Math.ceil(n/d)):t.textContent=[Math.floor(n/86400),Math.floor(n/3600)%24,Math.floor(n/60)%60,n%60].map(u=>String(u).padStart(2,"0")).join(":")};s(),Number.isFinite(i)&&i>Date.now()&&ne.set(e.id,setInterval(s,1e3))}else if(e.type==="plan_picker"){t=document.createElement("div"),t.setAttribute("role",e.grouping?"group":"radiogroup"),t.setAttribute("aria-label",K(e.label).value),t.style.cssText="display:flex;flex-direction:column;gap:8px";let r=O?.pickers[e.id],i=e.grouping;if(!r?.options.length)A[e.id]="",t.textContent=K(e.fallback).value,c.mode==="editor"&&t.classList.add("g-missing");else{let s=typeof A[e.id]=="string"?String(A[e.id]):r.selected,n=ge[e.id];if(i){if(!n){let W=i.assignments.find(z=>z.productVersionId===s);n={period:W?.period??"month",tierId:W?.tierId??i.tiers[0].id},ge[e.id]=n}let o=i.assignments.find(W=>W.tierId===n.tierId&&W.period===n.period);s=o&&r.options.includes(o.productVersionId)?o.productVersionId:"";let h=document.createElement("div");h.setAttribute("role","radiogroup"),h.setAttribute("aria-label",`${K(i.monthLabel).value} / ${K(i.yearLabel).value}`),h.style.cssText="display:flex;gap:4px;padding:4px;border:1px solid var(--g-border);border-radius:10px";let y=["month","year"],x=y.filter(W=>i.assignments.some(z=>z.period===W&&r.options.includes(z.productVersionId))),T=W=>{n.period=W;let z=i.assignments.find(ee=>ee.tierId===n.tierId&&ee.period===W);A[e.id]=z&&r.options.includes(z.productVersionId)?z.productVersionId:"",ye(),Ae(e.id)?.querySelector(`[data-product-period="${W}"]`)?.focus()};for(let W of y){let z=document.createElement("button");z.type="button",z.className=`g-btn g-btn-${W===n.period?"primary":"secondary"}`,z.style.cssText="flex:1;min-width:0;min-height:40px",z.dataset.productPeriod=W,z.setAttribute("role","radio"),z.setAttribute("aria-checked",String(W===n.period)),z.textContent=K(W==="month"?i.monthLabel:i.yearLabel).value,z.disabled=!x.includes(W),z.tabIndex=c.mode==="editor"||z.disabled?-1:W===n.period||!x.includes(n.period)&&W===x[0]?0:-1,z.addEventListener("click",ee=>{c.mode!=="editor"&&(ee.stopPropagation(),T(W))}),z.addEventListener("keydown",ee=>{if(c.mode==="editor"||!x.length)return;let oe;["ArrowRight","ArrowDown"].includes(ee.key)?oe=(x.indexOf(W)+1)%x.length:["ArrowLeft","ArrowUp"].includes(ee.key)?oe=(x.indexOf(W)-1+x.length)%x.length:ee.key==="Home"?oe=0:ee.key==="End"&&(oe=x.length-1),oe!==void 0&&(ee.preventDefault(),T(x[oe]))}),h.append(z)}t.append(h)}A[e.id]=s??"";let l=i?i.tiers.map(o=>({tier:o,id:i.assignments.find(h=>h.tierId===o.id&&h.period===n.period)?.productVersionId})):r.options.map(o=>({id:o,tier:void 0})),d=l.filter(o=>o.id&&r.options.includes(o.id)),u=i?document.createElement("div"):t;i&&(u.setAttribute("role","radiogroup"),u.setAttribute("aria-label",K(e.label).value),u.style.cssText="display:flex;flex-direction:column;gap:8px",t.append(u));let w=o=>{!o.id||!r.options.includes(o.id)||(i&&o.tier&&(n.tierId=o.tier.id),A[e.id]=o.id,ye(),Ae(e.id)?.querySelector(`[data-plan-id="${o.id}"]`)?.focus())};for(let o of l){let h=o.id?O.plans[o.id]:void 0,y=!!h&&r.options.includes(o.id),x=document.createElement("button");x.type="button",x.className="g-btn g-btn-secondary",x.style.cssText="width:100%;text-align:start;min-height:44px",x.setAttribute("role","radio");let T=i?o.tier?.id===n.tierId:o.id===s;x.setAttribute("aria-checked",String(T)),x.disabled=!y,x.tabIndex=c.mode==="editor"||!y?-1:T||!s&&o===d[0]?0:-1,o.id&&(x.dataset.planId=o.id),o.tier&&(x.dataset.productTier=o.tier.id);let W=o.id?O.nodes[e.id]?.byPlan?.[o.id]?.price:void 0;x.textContent=y?`${o.tier?.name??h.name} \xB7 ${W?.current??h.price}${W?.period??h.period}`:`${o.tier?.name??""} \xB7 ${K(i?.unavailableLabel??e.fallback).value}`,T&&(x.style.borderColor="var(--g-primary)",x.style.boxShadow="inset 0 0 0 1px var(--g-primary)",e.states?.selected&&De(x,{type:"text",id:e.id,text:e.label,variant:"body",style:e.states.selected},null)),x.addEventListener("click",z=>{c.mode==="editor"||!y||(z.stopPropagation(),w(o))}),x.addEventListener("keydown",z=>{if(c.mode==="editor"||!d.length)return;let ee=d.indexOf(o),oe;["ArrowRight","ArrowDown"].includes(z.key)?oe=(ee+1)%d.length:["ArrowLeft","ArrowUp"].includes(z.key)?oe=(ee-1+d.length)%d.length:z.key==="Home"?oe=0:z.key==="End"&&(oe=d.length-1),oe!==void 0&&(z.preventDefault(),w(d[oe]))}),u.append(x)}if(i&&!s){let o=document.createElement("p");o.setAttribute("role","status"),o.textContent=K(i.unavailableLabel).value,t.append(o)}}}else if(e.type==="divider")t=document.createElement("hr"),t.className="g-divider";else if(e.type==="spacer")t=document.createElement("div"),t.setAttribute("aria-hidden","true"),t.style.flex="0 0 auto",t.style.width=t.style.height=`${M[e.size]??0}px`;else if(e.type==="custom_html"){t=document.createElement("div"),t.className="g-custom";let r=t.attachShadow({mode:"open"}),i=e.html[ae],s=i&&i.trim()?i:e.html[E?.strings.defaultLocale??""]??"",n=he(e.id);n?.html!==void 0?s=n.html:s.includes("{{")&&c.mode==="live"&&(s=K(e.fallback??"").value.replace(/[&<>"']/g,o=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[o])),(n?.missing?.length||!n&&s.includes("{{"))&&c.mode==="editor"&&t.classList.add("g-missing"),!(i&&i.trim())&&c.mode==="editor"&&t.classList.add("g-missing");let l=document.createElement("style"),d="@media(prefers-reduced-motion:reduce){:host,:host::before,:host::after,*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}";l.textContent=`:host{display:block}${d}@layer indiana-accessibility{${d}}${e.css}`;let u=document.createElement("div");u.innerHTML=s,r.append(l,u);for(let w of u.querySelectorAll("img"))w.addEventListener("load",be)}else return null;return e.style&&De(t,e,a),t.dataset.gNode=e.id,t.dataset.gLabel=$t(e),t}function jt(e,a){let t=a.interaction,r=[...e.children];e.setAttribute("aria-label",K(t.label).value);let i=U?.bindings.find(n=>n.componentId===a.id),s=i?{id:i.key,source:i.componentId,required:i.required}:void 0;if(s){let n=document.createElement("p");n.className="g-text g-body",n.textContent=K(t.label).value+(s.required?" *":""),e.prepend(n),s.required&&e.setAttribute("aria-required","true")}if(t.type==="input"){let n=document.createElement("input");n.type=t.keyboard,n.maxLength=t.maxLength,n.autocomplete="off",n.setAttribute("aria-label",K(t.label).value),n.setAttribute("aria-required",String(!!s?.required)),n.value=typeof A[a.id]=="string"?String(A[a.id]):"",n.style.cssText="box-sizing:border-box;width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--g-border);border-radius:8px;background:var(--g-surface);color:var(--g-text);font:inherit",n.disabled=c.mode!=="live",n.addEventListener("input",()=>{A[a.id]=n.value,Me(a.id,n.value)}),e.append(n);return}if(!(c.mode!=="live"||!r.length&&t.type!=="toggle")){if(t.type==="multiselect"){e.setAttribute("role","group"),e.dataset.gMin=String(t.min);let n=a.children.filter(u=>!u.hidden),l=new Set(Array.isArray(A[a.id])?A[a.id]:[]),d=()=>r.forEach((u,w)=>{let o=l.has(n[w].id);u.setAttribute("aria-checked",String(o)),u.setAttribute("aria-disabled",String(!o&&l.size>=t.max)),u.style.outline=o?"2px solid var(--g-primary)":"",u.style.outlineOffset="-2px"});r.forEach((u,w)=>{u.setAttribute("role","checkbox"),u.tabIndex=0,u.setAttribute("aria-label",u.textContent?.trim()||String(w+1)),u.style.cursor="pointer";let o=()=>{let h=n[w].id;if(l.has(h))l.delete(h);else if(l.size<t.max)l.add(h);else return;let y=n.filter(x=>l.has(x.id)).map(x=>x.id);A[a.id]=y,d(),Me(a.id,y)};u.addEventListener("click",h=>{h.stopPropagation(),o()}),u.addEventListener("keydown",h=>{[" ","Enter"].includes(h.key)&&(h.preventDefault(),h.stopPropagation(),o())})}),d();return}if(t.type==="select"){e.setAttribute("role","radiogroup");let n=a.children.filter(w=>!w.hidden),l=p(a)?a.interaction.pickerId:void 0,d=n.findIndex(w=>l?w.type==="stack"&&w.bind?.plan===A[l]:w.id===A[a.id]);!l&&d<0&&!s?.required&&(d=Math.min(t.defaultIndex,r.length-1));let u=(w,o=!1,h=!0)=>{if(l&&h&&w>=0){let y=n[w],x=y.type==="stack"?y.bind?.plan:void 0;if(!x||!O?.pickers[l]?.options.includes(x))return;A[a.id]=y.id,A[l]=x,ye(),o&&V.querySelector(`[data-g-node="${y.id}"]`)?.focus({preventScroll:!0});return}d=w,w>=0&&(A[a.id]=n[w].id),h&&w>=0&&Me(a.id,n[w].id),r.forEach((y,x)=>{y.setAttribute("aria-checked",String(x===w)),y.tabIndex=x===(w<0?0:w)?0:-1,y.style.cssText="";let T=n[x];T.type==="stack"&&(y.style.alignItems=f[T.align]??"stretch",y.style.justifyContent=P[T.justify]??"flex-start"),T.style&&De(y,T,a),x===w&&(t.selectedStyle&&De(y,{...T,style:t.selectedStyle},a),T.type==="stack"&&T.states?.selected&&De(y,{...T,style:T.states.selected},a),!t.selectedStyle?.border&&!(T.type==="stack"&&T.states?.selected?.border)&&(y.style.outline="2px solid var(--g-primary)",y.style.outlineOffset="-2px")),y.style.cursor="pointer"}),o&&w>=0&&r[w].focus()};r.forEach((w,o)=>{if(w.setAttribute("role","radio"),l){let h=n[o],y=h.type==="stack"?h.bind?.plan:void 0;w.setAttribute("aria-disabled",String(!y||!O?.pickers[l]?.options.includes(y)))}w.setAttribute("aria-label",w.textContent?.trim()||String(o+1)),w.addEventListener("click",h=>{h.stopPropagation(),u(o)}),w.addEventListener("keydown",h=>{let y=h.key;if(!["ArrowRight","ArrowLeft","ArrowDown","ArrowUp","Home","End"," ","Enter"].includes(y))return;h.preventDefault(),h.stopPropagation();let x=d<0?o:d;u(y==="Home"?0:y==="End"?r.length-1:y==="ArrowRight"||y==="ArrowDown"?(x+1)%r.length:y==="ArrowLeft"||y==="ArrowUp"?(x+r.length-1)%r.length:o,!0)})}),u(d,!1,!1)}else if(t.type==="tabs"){let n=a.children.filter(o=>!o.hidden),l=document.createElement("div");l.setAttribute("role","tablist"),l.setAttribute("aria-label",K(t.label).value),l.style.cssText="display:flex;gap:4px;padding:4px;border:1px solid var(--g-border);border-radius:12px";let d=r.map((o,h)=>{let y=document.createElement("button");return y.type="button",y.setAttribute("role","tab"),y.textContent=je(n[h])||String(h+1),y.style.cssText="flex:1;min-width:0;min-height:44px;padding:8px 16px;border:0;border-radius:8px;font:inherit;cursor:pointer",o.id=`g-${a.id}-${n[h].id}`,o.setAttribute("role","tabpanel"),y.setAttribute("aria-controls",o.id),l.append(y),y}),u=(o,h=!1,y=!1)=>{if(A[a.id]=n[o].id,y&&E&&Object.keys(I(E)).length){for(let x of Object.keys(I(E)))delete A[x];ye(),h&&V.querySelector(`[data-g-node="${a.id}"] [role="tab"][aria-selected="true"]`)?.focus({preventScroll:!0});return}r.forEach((x,T)=>{x.hidden=T!==o,d[T].setAttribute("aria-selected",String(T===o)),d[T].tabIndex=T===o?0:-1,d[T].style.background=T===o?"var(--g-primary)":"transparent",d[T].style.color=T===o?"var(--g-on-primary)":"var(--g-text)"}),h&&d[o].focus(),be()};d.forEach((o,h)=>{o.addEventListener("click",y=>{y.stopPropagation(),u(h,!1,!0)}),o.addEventListener("keydown",y=>{["ArrowLeft","ArrowRight","Home","End"].includes(y.key)&&(y.preventDefault(),y.stopPropagation(),u(y.key==="Home"?0:y.key==="End"?r.length-1:(h+(y.key==="ArrowRight"?1:r.length-1))%r.length,!0,!0))})}),e.prepend(l);let w=n.findIndex(o=>o.id===A[a.id]);u(w>=0?w:Math.min(t.defaultIndex,r.length-1))}else if(t.type==="toggle"){let n=document.createElement("button");n.type="button",n.setAttribute("role","switch"),n.className="g-btn g-btn-secondary",n.style.cssText="display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--g-text)";let l=document.createElement("span");l.textContent=K(t.label).value;let d=document.createElement("span");d.setAttribute("aria-hidden","true"),d.style.cssText="position:relative;display:block;flex:none;width:44px;height:24px;border-radius:12px;background:var(--g-border)";let u=document.createElement("span");u.style.cssText="position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003",d.append(u),n.append(l,d);let w=(o,h=!1)=>{if(A[a.id]=o,h&&E&&Object.keys(I(E)).length){for(let y of Object.keys(I(E)))delete A[y];ye(),V.querySelector(`[data-g-node="${a.id}"] [role="switch"]`)?.focus({preventScroll:!0});return}n.setAttribute("aria-checked",String(o)),d.style.background=o?"var(--g-primary)":"var(--g-border)",u.style.left=o?"23px":"3px",u.style.background=o?"var(--g-on-primary)":"#FFFFFF",r.forEach((y,x)=>y.hidden=x!==(o?0:1)),be()};n.addEventListener("click",o=>{o.stopPropagation(),w(!A[a.id],!0),Me(a.id,!!A[a.id])}),e.prepend(n),w(typeof A[a.id]=="boolean"?A[a.id]:t.defaultEnabled)}else{e.setAttribute("role","region"),e.setAttribute("aria-roledescription","carousel");let n=document.createElement("div");n.style.cssText="display:flex;align-items:center;justify-content:center;gap:10px";let l=document.createElement("button"),d=document.createElement("button"),u=document.createElement("span"),w=ae.startsWith("zh");l.textContent="\u2190",d.textContent="\u2192",l.setAttribute("aria-label",w?"\u4E0A\u4E00\u6761\u8BC4\u4EF7":"Previous review"),d.setAttribute("aria-label",w?"\u4E0B\u4E00\u6761\u8BC4\u4EF7":"Next review");for(let h of[l,d])h.type="button",h.className="g-btn g-btn-secondary",h.style.color="var(--g-text)";u.setAttribute("aria-live","polite");let o=h=>{ie[a.id]=h,r.forEach((y,x)=>y.hidden=x!==h),u.textContent=`${h+1} / ${r.length}`,be()};l.addEventListener("click",h=>{h.stopPropagation(),o((ie[a.id]+r.length-1)%r.length)}),d.addEventListener("click",h=>{h.stopPropagation(),o((ie[a.id]+1)%r.length)}),n.append(l,u,d),e.append(n),o(ie[a.id]??0)}}}function je(e){if(e.hidden)return"";if(e.type==="text"&&(e.variant==="title"||e.variant==="heading"))return K(e.text).value;if(e.type==="stack")for(let a of e.children){let t=je(a);if(t)return t}return""}function nt(e){return e.type==="stack"&&!e.interaction&&!e.purchaseAction}function it(e){let a=[],t=r=>{let i=O?.nodes[r.id];if(a.push(r.id,he(r.id)),i?.picker&&a.push(A[i.picker],O?.pickers[i.picker]),r.type==="text")a.push(Le(r,"text",r.text));else if(r.type==="button")a.push(Le(r,"label",r.label));else if(r.type==="image")a.push(Le(r,"alt",r.alt));else if(r.type==="custom_html")a.push(J,U?.answers);else if(r.type==="customer_data")a.push(te?.nodes[r.id]);else if(r.type==="plan_picker"){let s=O?.pickers[r.id];a.push(A[r.id],ge[r.id],s,i,s?.options.map(n=>O?.plans[n]))}else r.type==="stack"&&(r.interaction?.type!=="input"&&a.push(A[r.id],ie[r.id]),p(r)&&a.push(A[r.interaction.pickerId],O?.pickers[r.interaction.pickerId]),r.children.forEach(t))};return t(e),JSON.stringify(a)}function st(e){e.hidden||(nt(e)?e.children.forEach(st):ce.set(e.id,it(e)))}function ot(e){let a=ne.get(e.id);a!==void 0&&clearInterval(a),ne.delete(e.id),e.type==="stack"&&e.children.forEach(ot)}function dt(e,a){if(e.hidden)return;if(nt(e)){e.children.forEach(i=>dt(i,e));return}if(ce.get(e.id)===it(e))return;let t=Ae(e.id);if(!t)return;ot(e);let r=Ce(e,a);r&&t.replaceWith(r)}function Ft(){let e=document.activeElement;if(!(e instanceof HTMLElement)||!V.contains(e))return;let a=e.closest("[data-g-node]");if(!a)return;let t=[];for(let r=e;r!==a;){let i=r.parentElement;if(!i)return;t.unshift(Array.prototype.indexOf.call(i.children,r)),r=i}return{active:e,nodeId:a.dataset.gNode,path:t,identity:["productPeriod","planId","productTier","gDataFocus"].map(r=>[r,e.dataset[r]]).find(([,r])=>r!==void 0),selection:e instanceof HTMLInputElement&&e.selectionStart!==null?{start:e.selectionStart,end:e.selectionEnd,direction:e.selectionDirection}:void 0}}function Ut(e){if(!e||e.active.isConnected)return;let a=Ae(e.nodeId);if(!a)return;let t=a;if(e.identity){let[r,i]=e.identity;t=[...a.querySelectorAll("*")].find(s=>s.dataset[r]===i)}else for(let r of e.path)t=t?.children[r];!t||t.hasAttribute("disabled")||(t.focus({preventScroll:!0}),e.selection&&t instanceof HTMLInputElement&&["text","search","tel","url","password"].includes(t.type)&&t.setSelectionRange(e.selection.start,e.selection.end,e.selection.direction??void 0))}function ye(e=!1){if(!E)return;let a=e?void 0:Ft(),t=E.pages.find(s=>s.id===(C??E.initialPageId))??E.pages[0];C=t.id,O&&Object.assign(A,L({...E,pages:[t]},Qe(),O));let r=s=>{if(s.type==="stack"&&s.children.forEach(r),s.type!=="plan_picker"||!s.grouping)return;let n=s.grouping,l=O?.pickers[s.id],d=ge[s.id];if(!d){let w=n.assignments.find(o=>o.productVersionId===(A[s.id]??l?.selected));d={period:w?.period??"month",tierId:w?.tierId??n.tiers[0].id},ge[s.id]=d}let u=n.assignments.find(w=>w.tierId===d.tierId&&w.period===d.period);A[s.id]=u&&l?.options.includes(u.productVersionId)?u.productVersionId:""};if(r(t.root),e||ue!==t){ne.forEach(l=>clearInterval(l)),ne.clear(),ce.clear(),V.style.cssText="",Tt(t.theme?{...E,theme:t.theme}:E);let s=ae.split("-")[0];document.documentElement.lang=ae,document.documentElement.dir=["ar","he","fa","ur"].includes(s)?"rtl":"ltr",V.dataset.gPresentation=E.presentation.type;let n=Ce(t.root,null);V.replaceChildren(...n?[n]:[]),ue=t}else dt(t.root,null);st(t.root),Ut(a),V.dataset.gPage=t.id,c.mode==="live"&&B({type:"page",pageId:t.id}),Ue(),Fe();let i=Math.ceil(V.getBoundingClientRect().height);j?be():(j=!0,v=i,B({type:"rendered",height:i,label:je(t.root)||E.name}))}function be(){let e=Math.ceil(V.getBoundingClientRect().height);e!==v&&(v=e,B({type:"resize",height:e})),Ue(),Fe()}function ct(){k||(k=!0,window.requestAnimationFrame(()=>{k=!1,be()}))}function Fe(){if(c.mode!=="editor")return;let e=[];for(let t of V.querySelectorAll("[data-g-node]")){let r=t.getBoundingClientRect();!r.width||!r.height||e.push({id:t.dataset.gNode,x:r.x,y:r.y,width:r.width,height:r.height})}let a=JSON.stringify(e);a!==se&&(se=a,B({type:"layout",nodes:e}))}function Ae(e){return!e||!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(e)?null:V.querySelector(`[data-g-node="${e}"]`)}function lt(e,a){let t=Ae(a);if(!t){e.style.display="none";return}let r=t.getBoundingClientRect();e.style.display="block",e.style.left=`${r.left+window.scrollX}px`,e.style.top=`${r.top+window.scrollY}px`,e.style.width=`${r.width}px`,e.style.height=`${r.height}px`,e.toggleAttribute("data-below",r.top<20),e.firstChild.textContent=t.dataset.gLabel??""}function Ue(){c.mode==="editor"&&(lt(pe,Y),lt(ke,fe&&fe!==Y?fe:null))}function Te(e){for(let a of e.composedPath()){if(a instanceof HTMLElement&&a.dataset.gNode)return a.dataset.gNode;if(a===V)break}return null}function Bt(e){if(e.isTrusted){if(c.mode==="editor"){e.preventDefault(),e.stopPropagation(),B({type:"select",id:Te(e)});return}for(let a of e.composedPath()){if(!(a instanceof HTMLElement))continue;let t=a.dataset.gAction??(a.tagName==="BUTTON"?a.getAttribute("data-grow-action"):null);if(t&&!a.disabled){e.preventDefault();let r=E?.actions.find(i=>i.id===t);if(r?.type==="navigate"){if(C=r.pageId,E)for(let i of Object.keys(I(E)))delete A[i];ye(),V.querySelector("h1,h2")?.focus({preventScroll:!0});return}B({type:"action",actionId:t,nodeId:Te(e)??void 0,...Object.keys(A).length?{selection:Qe()}:{},...U?{answers:at()}:{}});return}if(a===V)return}}}function pt(e){let a=e;if(!(!a||a.channel!==c.channel))try{if(a.type==="render"){let t=c.document??a.doc;if(!t||t.kind!=="screen"||t.schemaVersion!==4||Object.hasOwn(t,"funnel")||!t.pages?.length||t.pages.length>(t.surface==="paywall"?10:1)||t.pages.some(r=>Object.hasOwn(r,"source"))||t.actions?.some(r=>!["event","close","open_url","claim_offer",...t.surface==="paywall"?["navigate"]:[]].includes(r.type)))throw new Error("Unsupported screen document; use the current Funnel runtime for flows");E=t,C=null,ae=String(a.locale),G=new Set,J=a.parameters??{},U=a.serverInput,A=Object.create(null),ge=Object.create(null),O=a.capabilities,te=a.customerData,Ee.clear();for(let[r,i]of Object.entries(O?.pickers??{}))i.selected&&(A[r]=i.selected);if(a.selection&&typeof a.selection=="object"&&!Array.isArray(a.selection)){let r=a.selection,i=n=>{let l=r[n.id];if(n.type==="plan_picker"&&typeof l=="string"&&n.planIds?.includes(l)&&(A[n.id]=l),n.type==="stack"){if(n.interaction?.type==="toggle"&&typeof l=="boolean"&&(A[n.id]=l),n.interaction&&["select","tabs"].includes(n.interaction.type)&&typeof l=="string"&&n.children.some(d=>d.id===l)&&(A[n.id]=l),p(n)){let d=r[n.interaction.pickerId];typeof d=="string"&&n.children.some(u=>u.type==="stack"&&u.bind?.plan===d)&&(A[n.interaction.pickerId]=d)}n.children.forEach(i)}};E.pages.forEach(n=>i(n.root));let s=r.__page;typeof s=="string"&&E.pages.some(n=>n.id===s)&&(C=s)}for(let r of U?.bindings??[])Object.hasOwn(U.answers,r.key)&&(A[r.componentId]=U.answers[r.key],G.add(r.componentId));ie=Object.create(null),ae=String(a.locale),ye(!0)}else if(a.type==="capabilities"){O=a.capabilities;for(let[t,r]of Object.entries(O.pickers))!ge[t]&&A[t]===void 0&&(A[t]=r.selected??"");ye()}else a.type==="customer-data"?Ot(a.data):a.type==="restore-action-focus"&&c.mode==="live"?[...V.querySelectorAll("button[data-g-node]")].find(t=>t.dataset.gNode===a.nodeId&&!t.disabled)?.focus({preventScroll:!0}):a.type==="highlight"&&c.mode==="editor"&&(fe=a.hoverId??null,Y=a.selectedId??null,Ue())}catch(t){B({type:"error",message:t instanceof Error?t.message:"render failed"})}}let ut=document.createElement("style");if(ut.textContent=b,document.head.append(ut),document.body.append(V),c.mode==="editor"){document.body.dataset.gEditor="",document.body.append(ke,pe),document.addEventListener("mouseover",a=>{let t=Te(a);t!==ve&&(ve=t,B({type:"hover",id:t}))}),document.documentElement.addEventListener("mouseleave",()=>{ve!==null&&(ve=null,B({type:"hover",id:null}))}),document.addEventListener("dblclick",a=>{let t=Te(a);t&&a.isTrusted&&B({type:"edit",id:t})}),document.addEventListener("click",a=>{V.contains(a.target)||B({type:"select",id:null})});let e=(a,t)=>{if(!a.isTrusted)return;let r=a.metaKey||a.ctrlKey,i=a.key;(i===" "||t==="down"&&(["Delete","Backspace","Escape"].includes(i)||r&&/^[zysdcvg0=+-]$/i.test(i)))&&((r||i===" ")&&a.preventDefault(),B({type:"key",key:{key:i,phase:t,meta:a.metaKey,ctrl:a.ctrlKey,shift:a.shiftKey,alt:a.altKey}}))};document.addEventListener("keydown",a=>e(a,"down")),document.addEventListener("keyup",a=>e(a,"up")),document.addEventListener("wheel",a=>{!a.isTrusted||!(a.ctrlKey||a.metaKey)||(a.preventDefault(),B({type:"zoom",delta:a.deltaY}))},{passive:!1})}V.addEventListener("click",Bt),document.addEventListener("keydown",e=>{e.key==="Escape"&&e.isTrusted&&B({type:"escape"})}),typeof ResizeObserver=="function"&&new ResizeObserver(ct).observe(V),window.addEventListener("resize",ct),c.mode==="editor"&&window.addEventListener("scroll",Fe),window.addEventListener("message",e=>{e.source===m&&pt(e.data)}),$.__indianaReceive=pt,B(c.document?{type:"ready",document:c.document}:{type:"ready"})}var Xt=`(${Ze.toString()})(JSON.parse(document.getElementById("grow-renderer-boot").textContent))`;function Pt(c,p){let I=JSON.stringify(c).replace(/</g,"\\u003c");return`<!doctype html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'nonce-${p}'; style-src 'unsafe-inline'; img-src https: data:; connect-src 'none'; font-src 'none'; media-src 'none'; frame-src 'none'; base-uri 'none'; form-action 'none'"></head><body><script type="application/json" id="grow-renderer-boot">${I}<\/script><script nonce="${p}">${Xt}<\/script></body></html>`}function Qt(){return`(() => {
|
|
171
|
+
`;function C(){return Object.create(null)}let D=null,U,de=new Set,H,se,ne=new Map,pe=new Map,Z,O={},G=null,E=C(),fe=C(),ue=C(),_="",v=!1,k=-1,ae=!1,he="",X=null,Ae=null,ke=null,J=document.createElement("div");J.id="g-card";let ge=document.createElement("div"),ce=document.createElement("div");ge.className=ce.className="g-box",ce.dataset.kind="select",ge.append(document.createElement("span")),ce.append(document.createElement("span"));function Y(e){let a={...e,channel:c.channel};try{h.postMessage(a,c.parentOrigin)}catch{}}function Oe(e){let a=parseInt(e.slice(1),16);return[a>>16&255,a>>8&255,a&255]}function Me(e,a,t){let r=Oe(e),i=Oe(a),s=r.map((n,l)=>Math.round(n*t+i[l]*(1-t)));return`rgb(${s[0]},${s[1]},${s[2]})`}function Ct(e){let[a,t,r]=Oe(e).map(i=>{let s=i/255;return s<=.03928?s/12.92:((s+.055)/1.055)**2.4});return .2126*a+.7152*t+.0722*r}function Ie(e){return typeof e!="string"?"":e.startsWith("#")?e:`var(--g-${e==="background"?"bg":e})`}function $t(e){let a=e.theme,t=document.documentElement.style,r=Ct(a.primary),i=(r+.05)/.05>1.05/(r+.05)?"#111318":"#FFFFFF";t.setProperty("--g-primary",a.primary),t.setProperty("--g-on-primary",i),t.setProperty("--g-bg",a.background),t.setProperty("--g-text",a.text),t.setProperty("--g-muted",Me(a.text,a.background,.62)),t.setProperty("--g-surface",Me(a.text,a.background,.05)),t.setProperty("--g-border",Me(a.text,a.background,.16)),t.setProperty("--g-focus",Me(a.primary,a.background,.45)),t.setProperty("--g-radius",`${P[a.radius]??8}px`),t.setProperty("--g-font",S[a.font]??S.system),t.setProperty("--g-edit","#2C3C96")}function V(e){let a=D?.strings.locales[_]?.[e];return a&&a.trim()?{value:a,missing:!1}:{value:D?.strings.locales[D.strings.defaultLocale]?.[e]??"",missing:!0}}function ye(e){let a=H?.nodes[e];if(!a)return;let t=a.picker?E[a.picker]??H?.pickers[a.picker]?.selected:void 0;if(!(a.picker&&t===""))return typeof t=="string"?a.byPlan?.[t]??a.base:a.base}function et(){return{...D?.surface==="paywall"&&G?{__page:G}:{},...Object.fromEntries(Object.entries(E).filter(e=>!Array.isArray(e[1])))}}function Le(e,a,t){let r=ye(e.id),i=r?.[a],s=i!==void 0?{value:i,missing:!!r?.missing?.length}:V(t);if(c.mode==="live"&&U){let n=!1,l=s.value.replace(/\{\{\s*(input|params)\.([a-zA-Z][a-zA-Z0-9_.-]{0,63})\s*\}\}/g,(d,u,w)=>{let o=u==="params"?O[w]:U?.answers[w];return o==null||o===""||Array.isArray(o)&&!o.length?(n=!0,""):Array.isArray(o)?o.join(", "):String(o)});if(n)return{value:e.fallback?V(e.fallback).value:"",missing:!0};if(!l.includes("{{"))return{value:l,missing:s.missing}}return i!==void 0?s:s.value.includes("{{")&&c.mode==="live"?{value:e.fallback?V(e.fallback).value:"",missing:!0}:{value:s.value,missing:s.missing||s.value.includes("{{")}}function zt(e){if(e.name)return e.name;let a=c.editorMessages?.nodeTypes?.[e.type];return c.mode==="editor"&&typeof a=="string"?a:{stack:"\u5BB9\u5668",text:"\u6587\u672C",image:"\u56FE\u7247",button:"\u6309\u94AE",divider:"\u5206\u9694\u7EBF",spacer:"\u7559\u767D",custom_html:"\u81EA\u5B9A\u4E49 HTML",price:"\u4EF7\u683C",coupon_code:"\u4F18\u60E0\u7801",countdown:"\u5012\u8BA1\u65F6",plan_picker:"\u771F\u5B9E\u5957\u9910\u9009\u62E9"}[e.type]??e.type}function Ht(e,a){if(a.type==="color")e.background="none",e.backgroundColor=Ie(a.color);else if(a.type==="linear"){let t=a.stops.map(r=>`${Ie(r.color)} ${Number(r.at)}%`).join(",");e.backgroundColor="transparent",e.backgroundImage=`linear-gradient(${Number(a.angle)}deg,${t})`}else if(a.type==="image"&&typeof a.src=="string"){let t=/^data:image\/(?:svg\+xml|jpeg|png);base64,[A-Za-z0-9+/]+={0,2}$/.test(a.src)?a.src:a.src.replace(/[^A-Za-z0-9\-._~:/?#[\]@!$&*+;=%]/gu,i=>i.length===1&&i.charCodeAt(0)<128?`%${i.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`:encodeURIComponent(i));e.backgroundImage=`url("${t}")`;let r=a.position;e.backgroundPosition=r?`${r.x}% ${r.y}%`:"center",e.backgroundSize=a.fit==="contain"?"contain":"cover",e.backgroundRepeat="no-repeat"}}function tt(e){return`${Number(e.top)}px ${Number(e.right)}px ${Number(e.bottom)}px ${Number(e.left)}px`}function at(e,a,t,r,i){if(a===void 0)return;let s=r?.direction??"vertical",n=s!=="overlay"&&t==="width"==(s==="horizontal"),l=t==="width"?"minWidth":"minHeight";a==="fill"?s==="overlay"?(e.style[t]="100%",e.style[t==="width"?"justifySelf":"alignSelf"]="stretch"):n?(e.style.flex="1 1 0",e.style[l]="0"):(e.style.alignSelf="stretch",e.style[t]="auto"):a==="fit"?(e.style[t]="fit-content",t==="width"&&(e.style.maxWidth="100%"),!n&&s!=="overlay"&&(!r||r.align==="stretch")&&(e.style.alignSelf=i==="center"?"center":i==="end"?"flex-end":"flex-start")):typeof a=="number"&&(e.style[t]=`${a}px`,t==="width"&&(e.style.maxWidth="100%"),n&&(e.style.flex="0 0 auto"))}function De(e,a,t){let r=a.style,i=r.text??{},s=e.style;if(a.type==="customer_data"&&(i.font&&s.setProperty("--g-data-display-font",S[String(i.font)]??S.system),a.data.source==="membership"&&(typeof i.size=="number"&&s.setProperty("--g-data-display-size",`clamp(${Math.min(i.size,28)}px, ${i.size/12}vw, ${i.size}px)`),typeof i.weight=="number"&&s.setProperty("--g-data-display-weight",String(i.weight)))),a.type==="customer_data"&&a.data.source==="credit_balance"&&(typeof i.size=="number"&&s.setProperty("--g-data-number-size",`clamp(${Math.min(i.size,48)}px, ${i.size/10}vw, ${i.size}px)`),i.font&&s.setProperty("--g-data-number-font",S[String(i.font)]??S.system),typeof i.weight=="number"&&s.setProperty("--g-data-number-weight",String(i.weight))),a.type==="customer_data"&&i.color){let u=Ie(i.color);s.setProperty("--g-data-ink",u),s.setProperty("--g-data-muted",`color-mix(in srgb, ${u} 72%, transparent)`),s.setProperty("--g-data-line",`color-mix(in srgb, ${u} 20%, transparent)`),s.setProperty("--g-data-surface",`color-mix(in srgb, ${u} 8%, transparent)`)}r.padding&&(s.padding=tt(r.padding)),r.margin&&(s.margin=tt(r.margin)),typeof r.gap=="number"&&a.type==="stack"&&(s.gap=`${r.gap}px`),r.background&&Ht(s,r.background),typeof r.opacity=="number"&&(s.opacity=String(r.opacity));let n=r.shape;if(n?.type==="pill")s.borderRadius="9999px";else if(n?.type==="rect"){let u=n.radius;s.borderRadius=typeof u=="number"?`${u}px`:`${Number(u.topLeft)}px ${Number(u.topRight)}px ${Number(u.bottomRight)}px ${Number(u.bottomLeft)}px`}(r.clipContent===!0||r.clipContent!==!1&&n&&(r.background||a.type==="image"))&&(s.overflow="hidden");let l=r.border;l&&(s.border=Number(l.width)>0?`${Number(l.width)}px ${l.style==="dashed"?"dashed":"solid"} ${Ie(l.color)}`:"0");let d=r.shadow;d&&(s.boxShadow=`${Number(d.x)}px ${Number(d.y)}px ${Number(d.blur)}px ${Number(d.spread)}px ${Ie(d.color)}`),["text","button","price","coupon_code","countdown","plan_picker"].includes(a.type)&&(i.font&&(s.fontFamily=S[String(i.font)]??""),typeof i.size=="number"&&(s.fontSize=`${i.size}px`),typeof i.weight=="number"&&(s.fontWeight=String(i.weight)),typeof i.lineHeight=="number"&&(s.lineHeight=String(i.lineHeight)),typeof i.letterSpacing=="number"&&(s.letterSpacing=`${i.letterSpacing}px`),i.color&&(s.color=Ie(i.color)),i.align&&(s.textAlign=String(i.align)),i.italic&&(s.fontStyle="italic"),i.decoration&&(s.textDecoration=String(i.decoration)),i.transform&&(s.textTransform=String(i.transform))),at(e,r.width,"width",t,i.align),at(e,r.height,"height",t,i.align),t?.direction==="horizontal"&&r.grow!==void 0&&(s.flexGrow=String(r.grow===!0?1:r.grow===!1?0:r.grow))}function Te(e,a){if(U){let t=U.bindings.find(r=>r.componentId===e);if(!t)return;U.answers[t.key]=a,de.add(e),Y({type:"answers",answers:rt()});return}}function rt(){let e={};for(let a of U?.bindings??[]){let t=E[a.componentId];t!==void 0&&(e[a.key]=t)}return e}function Ot(e){let a=document.createElement("section");a.className="g-data",a.dataset.layout=e.data.layout,a.dataset.source=e.data.source;let t=se?.nodes[e.id];a.dataset.status=t?.status??"idle",a.dataset.preview=String(!!t?.preview);let r=t?.status==="loading",i=_.startsWith("zh"),s=(g,L)=>i?g:L;a.setAttribute("aria-busy",String(!!r));let n=(g,L,Q)=>{let N=document.createElement(g);return N.className=L,Q!==void 0&&(N.textContent=Q),N},l=g=>{let L=document.createElementNS("http://www.w3.org/2000/svg","svg");L.setAttribute("viewBox","0 0 24 24"),L.setAttribute("fill","none"),L.setAttribute("stroke","currentColor"),L.setAttribute("stroke-width","1.7"),L.setAttribute("stroke-linecap","round"),L.setAttribute("stroke-linejoin","round"),L.setAttribute("aria-hidden","true"),L.classList.add("g-data-icon");let Q={refresh:["M20 7v5h-5","M4 17v-5h5","M6.1 7a7 7 0 0 1 11.5-1.5L20 8M4 16l2.4 2.5A7 7 0 0 0 18 17"],down:["M7 7l10 10M7 17h10V7"],up:["M7 17L17 7M7 7h10v10"],chevron:["M6 9l6 6 6-6"],empty:["M4 8l8-4 8 4v10l-8 4-8-4V8Z","M4 8l8 4 8-4M12 12v10"],credit:["M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18Z","M12 7v10M8 12h8"]};for(let N of Q[g]){let q=document.createElementNS("http://www.w3.org/2000/svg","path");q.setAttribute("d",N),L.append(q)}return L},d=(g,L,Q,N=!1,q=L)=>{let re=n("button","g-data-button",g);return re.type="button",re.disabled=N||!!r&&L!=="refresh"||!!t?.preview||c.mode!=="live",r&&L==="refresh"&&re.setAttribute("aria-disabled","true"),re.dataset.gDataFocus=`${e.id}:${q}:${Q??""}`,re.addEventListener("click",le=>{!le.isTrusted||re.disabled||r||Y({type:"customer-data-intent",intent:{nodeId:e.id,action:L,...Q?{value:Q}:{}}})}),re},u=n("div","g-data-header"),w=n("h2","g-data-heading",V(e.title).value);w.id=`g-data-title-${e.id}`,a.setAttribute("aria-labelledby",w.id);let o=n("div","g-data-controls"),y=[],b=g=>{g.hidden||(g.type==="customer_data"&&y.push(g),g.type==="stack"&&g.children.forEach(b))},x=D?.pages[0];x&&b(x.root);let $=y.every(g=>se?.nodes[g.id]?.preview),W=y.find(g=>g.data.source==="credit_balance")??y[0];t?.preview&&(!$||W?.id===e.id)&&o.append(n("span","g-data-preview",s("\u793A\u4F8B\u6570\u636E","Sample data")));let j=r?s("\u66F4\u65B0\u4E2D\u2026","Updating\u2026"):s("\u5237\u65B0","Refresh"),te=d(j,"refresh");if(te.replaceChildren(l("refresh")),te.setAttribute("aria-label",j),te.title=j,te.classList.add("g-data-refresh"),r&&te.classList.add("g-data-refreshing"),o.append(te),e.data.source==="billing"&&e.data.outputs?.billing_portal&&o.append(d(t?.billingBusy?s("\u6B63\u5728\u51C6\u5907\u2026","Preparing\u2026"):s("\u7BA1\u7406\u652F\u4ED8\u65B9\u5F0F","Manage payment method"),"billing_portal",void 0,!!t?.billingBusy||t?.status!=="ready")),e.data.source==="credit_balance"&&(w.prepend(l("credit")),t?.resources.length===1&&w.append(n("span","g-data-resource-label",t.resources[0].name)),t?.updatedAt)){let g=n("time","g-data-updated",`${s("\u66F4\u65B0\u4E8E","Updated")} ${new Intl.DateTimeFormat(_,{timeStyle:"short"}).format(new Date(t.updatedAt))}`);g.dateTime=t.updatedAt,g.title=new Intl.DateTimeFormat(_,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t.updatedAt)),o.prepend(g)}if(u.append(w,o),a.append(u),!t||t.source!==e.data.source)return a.append(n("p","g-data-empty",s("\u8FDE\u63A5\u5BA2\u6237\u6570\u636E\u540E\u663E\u793A\u6B64\u5185\u5BB9\u3002","Connect customer data to display this content."))),a;if(t.errorMessage){let g=n("div","g-data-error",t.errorMessage);g.setAttribute("role","alert"),a.append(g);let L=n("div","g-data-recovery");L.append(d(s("\u91CD\u8BD5","Retry"),"refresh")),a.append(L)}if(t.membershipResult){let g=n("p","g-data-note",t.membershipResult);g.setAttribute("role","status"),a.append(g)}if(t.membershipReview){let g=t.membershipReview,L=n("section","g-data-resource");L.dataset.gDataReview="",L.setAttribute("aria-label",g.title),L.setAttribute("aria-busy",String(!!t.membershipBusy));let Q=n("h3","g-data-row-label",g.title);Q.tabIndex=-1,L.append(Q);let N=n("dl","g-data-facts");for(let re of g.facts){let le=n("div","");le.append(n("dt","",re.label),n("dd","",re.value)),N.append(le)}L.append(N,n("p","g-data-note",g.note));let q=n("div","g-data-controls");q.append(d(s("\u8FD4\u56DE","Back"),"membership_dismiss",void 0,!!t.membershipBusy),d(t.membershipBusy?s("\u6B63\u5728\u5904\u7406\u2026","Processing\u2026"):s("\u786E\u8BA4","Confirm"),"membership_confirm",void 0,!!t.membershipBusy)),L.append(q),a.append(L)}if(t.stale&&(t.resources.length||t.rows.length)&&a.append(n("p",r?"g-data-live-status":"g-data-note",r?s("\u6B63\u5728\u66F4\u65B0\u8D26\u6237\u6570\u636E\u3002","Updating account data."):s("\u663E\u793A\u4E0A\u6B21\u8BFB\u53D6\u7684\u7ED3\u679C\uFF0C\u6B63\u5728\u7B49\u5F85\u66F4\u65B0\u3002","Showing the last result while awaiting an update."))),r&&!t.resources.length&&!t.rows.length){let g=n("div","g-data-skeleton");if(g.setAttribute("aria-hidden","true"),e.data.source==="credit_balance")g.append(n("span","g-data-skeleton-line g-data-skeleton-value"),n("span","g-data-skeleton-line g-data-skeleton-meta"));else{let Q=Math.min(e.data.pageSize,e.data.layout==="compact"?2:4);for(let N=0;N<Q;N++){let q=n("div","g-data-skeleton-row");q.append(n("span","g-data-skeleton-line"),n("span","g-data-skeleton-line")),g.append(q)}}let L=n("p","g-data-live-status",s("\u6B63\u5728\u8BFB\u53D6\u8D26\u6237\u6570\u636E\u2026","Loading account data\u2026"));return L.setAttribute("role","status"),a.append(g,L),a}let ie={credit_transactions:[["all","\u5168\u90E8\u8BB0\u5F55","All activity"],["consume","\u6D88\u8D39","Usage"],["reserve","\u9884\u6263","Reserved"],["confirm","\u786E\u8BA4\u6263\u8D39","Confirmed"],["release","\u91CA\u653E","Released"],["refund","\u9000\u56DE","Refund"]],credit_pack_orders:[["all","\u5168\u90E8\u8BA2\u5355","All orders"],["pending","\u7B49\u5F85\u4ED8\u6B3E","Pending"],["paid","\u5DF2\u4ED8\u6B3E","Paid"],["expired","\u5DF2\u8FC7\u671F","Expired"],["refunded","\u5DF2\u9000\u6B3E","Refunded"],["disputed","\u4E89\u8BAE\u4E2D","Disputed"]],offer_history:[["all","\u5168\u90E8\u8BB0\u5F55","All offers"],["issued","\u672A\u4F7F\u7528","Unused"],["reserved","\u4ED8\u6B3E\u5904\u7406\u4E2D","Payment pending"],["redeemed","\u5DF2\u4F7F\u7528","Redeemed"],["expired","\u5DF2\u5230\u671F","Expired"],["revoked","\u5DF2\u4F5C\u5E9F","Revoked"]]};if(ie[e.data.source]){let g=n("select","g-data-select");g.setAttribute("aria-label",s("\u7B5B\u9009\u8BB0\u5F55","Filter records")),g.dataset.gDataFocus=`${e.id}:filter`,g.disabled=!!r||t.preview||c.mode!=="live";for(let[L,Q,N]of ie[e.data.source]){let q=document.createElement("option");q.value=L,q.textContent=s(Q,N),g.append(q)}g.value=t.filter,g.addEventListener("change",()=>{!g.disabled&&c.mode==="live"&&Y({type:"customer-data-intent",intent:{nodeId:e.id,action:"filter",value:g.value}})}),o.prepend(g)}let ft=(g,L=!1)=>{let Q=n("ul","g-data-list");if(e.data.source==="credit_transactions"&&g.length&&!L){let N=n("div","g-data-table-head");N.setAttribute("aria-hidden","true"),N.append(n("span","",s("\u8BB0\u5F55","Record")),n("span","",s("\u7C7B\u578B","Type")),n("span","",s("\u79EF\u5206","Credits"))),a.append(N)}for(let N of g){let q=n("li","g-data-row"),re=n("div","g-data-row-main"),le=n("div","g-data-row-copy");le.append(n("p","g-data-row-label",N.label));for(let ee of N.detail)ee!==N.status&&le.append(n("div","g-data-row-detail",ee));if(e.data.source==="credit_transactions"&&!L){let ee=n("span","g-data-row-mark");ee.append(l(["Refund","\u9000\u56DE"].includes(N.status??"")?"up":"down")),re.append(ee)}if(re.append(le),q.append(re),N.status?q.append(n("div","g-data-row-status",N.status)):q.classList.add("g-data-row-no-status"),N.value?q.append(n("div","g-data-row-value",N.value)):q.classList.add("g-data-row-no-value"),N.facts.length||N.purchaseId||N.membershipActions?.length||N.billingActions?.length){let ee=n("div","g-data-row-extra"),me=n("div","g-data-facts"),xe=(oe,ze)=>{for(let mt of oe){let ht=n("span","",mt.label);ht.append(n("strong","",mt.value)),ze.append(ht)}};if(xe(N.facts.slice(0,3),me),N.facts.length>3){let oe=n("details","g-data-sources");oe.dataset.gDataSources=`facts:${N.id}`,oe.append(n("summary","",`${e.data.source==="billing"?s("\u8D26\u5355\u8BE6\u60C5","Invoice details"):e.data.source==="offer_history"?s("\u4F18\u60E0\u5238\u660E\u7EC6","Coupon details"):s("\u5168\u90E8\u6263\u8D39\u660E\u7EC6","All allocations")} \xB7 ${N.facts.length}`));let ze=n("div","g-data-facts");xe(N.facts.slice(3),ze),oe.append(ze),me.append(oe)}if(ee.append(me),!L)for(let oe of N.billingActions??[])ee.append(d(oe.label,oe.action,N.id,!!t.billingBusy));if(N.purchaseId&&e.data.allowPurchase&&!L){let oe=d(t.buyingId===N.purchaseId?s("\u6B63\u5728\u51C6\u5907\u2026","Preparing\u2026"):s("\u8D2D\u4E70\u79EF\u5206","Buy credits"),"buy_pack",N.purchaseId,!!t.preview||!!t.buyingId);oe.classList.add("g-data-buy"),ee.append(oe)}if(e.data.allowPurchase&&!L)for(let oe of N.membershipActions??[])ee.append(d(oe.label,"membership_preview",oe.value,!!t.preview||!!t.membershipBusy||!!t.membershipReview));q.append(ee)}Q.append(q)}return Q};for(let g of t.resources){let L=n("article","g-data-resource");L.setAttribute("aria-label",g.name),t.resources.length>1&&L.append(n("p","g-data-name",g.name));let Q=n("div","g-data-balance"),N=new Intl.NumberFormat(_).formatToParts(1.1).find(ee=>ee.type==="decimal")?.value??".",q=g.spendable.lastIndexOf(N),re=n("strong","g-data-number",q<0?g.spendable:g.spendable.slice(0,q));q>=0&&re.append(n("span","g-data-fraction",g.spendable.slice(q))),Q.append(re,n("span","g-data-unit",s("\u53EF\u7528\u79EF\u5206","Spendable credits"))),L.append(Q);let le=n("div","g-data-facts");for(let[ee,me]of[[s("\u4F59\u989D","Balance"),g.available],[s("\u51BB\u7ED3","Reserved"),g.reserved]]){let xe=n("span","",ee);xe.append(n("strong","",me)),le.append(xe)}if(g.expiry&&le.append(n("span","g-data-expiry",`${s("\u6700\u8FD1\u5230\u671F","Next expiry")} \xB7 ${g.expiry}`)),L.append(le),e.data.showSources&&g.sourceCount){let ee=n("details","g-data-sources");if(ee.dataset.gDataSources=g.key,ee.append(n("summary","",`${s("\u79EF\u5206\u6765\u6E90","Credit sources")} \xB7 ${g.sourceCount}`),ft(g.sources,!0)),ee.querySelector("summary")?.append(l("chevron")),g.hasNextSources||g.hasPreviousSources){let me=n("div","g-data-footer");me.append(n("span","",`${s("\u7B2C","Page")} ${g.sourcePage}`));let xe=n("div","g-data-controls");xe.append(d(s("\u4E0A\u4E00\u9875","Previous"),"sources_previous",g.key,!g.hasPreviousSources),d(s("\u4E0B\u4E00\u9875","Next"),"sources_next",g.key,!g.hasNextSources)),me.append(xe),ee.append(me)}L.append(ee)}a.append(L)}if(t.rows.length&&a.append(ft(t.rows)),e.data.source==="billing_controls"&&(e.data.outputs?.billing_authorization||e.data.outputs?.billing_adjustment)){let g=n("div","g-data-controls");e.data.outputs?.billing_authorization&&g.append(d(s("\u8BBE\u7F6E\u81EA\u52A8\u4ED8\u6B3E\u6388\u6743","Set up payment authorization"),"billing_authorization")),e.data.outputs?.billing_adjustment&&g.append(d(s("\u67E5\u770B\u5F85\u786E\u8BA4\u8865\u6B3E","Review pending adjustment"),"billing_adjustment")),a.append(g)}if(!t.rows.length&&!t.resources.length&&t.status!=="error"){let g=n("p","g-data-empty",r?s("\u6B63\u5728\u8BFB\u53D6\u8D26\u6237\u6570\u636E\u2026","Loading account data\u2026"):t.status==="idle"?s("\u767B\u5F55\u540E\u67E5\u770B\u4F60\u7684\u8D26\u6237\u6570\u636E\u3002","Sign in to view your account data."):t.filter!=="all"?s("\u6CA1\u6709\u7B26\u5408\u7B5B\u9009\u6761\u4EF6\u7684\u8BB0\u5F55\u3002","No records match this filter."):e.data.source==="credit_pack_orders"?s("\u6682\u65E0\u8D2D\u4E70\u8BB0\u5F55","No purchases yet"):e.data.source==="credit_balance"?s("\u6682\u65E0\u79EF\u5206\u6765\u6E90","No credit balances yet"):e.data.source==="membership"?s("\u6682\u65E0\u4F1A\u5458\u65B9\u6848","No memberships yet"):e.data.source==="customer_plans"?s("\u6682\u65E0\u53EF\u9009\u5957\u9910","No plans available"):e.data.source==="credit_packs"?s("\u6682\u65E0\u53EF\u8D2D\u4E70\u7684\u79EF\u5206\u5305","No credit packs available"):e.data.source==="billing_controls"?s("\u5C1A\u672A\u8BBE\u7F6E\u7528\u91CF\u9650\u5236\u6216\u81EA\u52A8\u4ED8\u6B3E\u6388\u6743","No usage limits or payment authorizations configured"):e.data.source==="offer_history"?s("\u6682\u65E0\u4F18\u60E0\u8BB0\u5F55","No offers yet"):e.data.source==="billing"?s("\u6682\u65E0\u8D26\u5355","No invoices yet"):s("\u8FD9\u91CC\u8FD8\u6CA1\u6709\u8BB0\u5F55\u3002","There are no records yet."));g.prepend(l("empty")),g.setAttribute("role","status"),a.append(g)}if(t.hasNext||t.hasPrevious){let g=n("div","g-data-footer");g.append(n("span","",`${s("\u7B2C","Page")} ${t.page}`));let L=n("div","g-data-controls");L.append(d(s("\u4E0A\u4E00\u9875","Previous"),"previous",void 0,!t.hasPrevious),d(s("\u4E0B\u4E00\u9875","Next"),"next",void 0,!t.hasNext)),g.append(L),a.append(g)}return t.updatedAt&&e.data.source!=="credit_balance"&&a.append(n("p","g-data-note g-data-updated",`${s("\u6570\u636E\u66F4\u65B0\u4E8E","Updated")} ${new Intl.DateTimeFormat(_,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t.updatedAt))}`)),a}let Se=new Map,je=new Map,nt=e=>{let a=e.target;for(let t of Se.keys())a&&!Ee(t)?.contains(a)&&Se.delete(t)};document.addEventListener("focusin",nt),document.addEventListener("pointerdown",nt);function jt(e){let a=se;if(se=e,!D)return;let t=(i,s)=>{if(i.type==="stack"){i.children.forEach(x=>t(x,i));return}if(i.type!=="customer_data"||JSON.stringify(a?.nodes[i.id])===JSON.stringify(e.nodes[i.id]))return;let n=Ee(i.id);if(!n)return;let l=document.activeElement;l&&n.contains(l)&&l.dataset.gDataFocus&&Se.set(i.id,l.dataset.gDataFocus);let d=new Set([...n.querySelectorAll("details[data-g-data-sources]")].filter(x=>x.open).map(x=>x.dataset.gDataSources)),u=Ce(i,s);if(!u)return;for(let x of u.querySelectorAll("details[data-g-data-sources]"))x.open=d.has(x.dataset.gDataSources);let w=n.scrollTop;n.replaceWith(u),u.scrollTop=w;let o=!!e.nodes[i.id]?.membershipReview&&!a?.nodes[i.id]?.membershipReview,y=!e.nodes[i.id]?.membershipReview&&!!a?.nodes[i.id]?.membershipReview;o&&Se.get(i.id)&&je.set(i.id,Se.get(i.id));let b=y?je.get(i.id):Se.get(i.id);b&&[...u.querySelectorAll("[data-g-data-focus]")].find(x=>x.dataset.gDataFocus===b)?.focus({preventScroll:!0}),o&&u.querySelector("[data-g-data-review] h3")?.focus({preventScroll:!0}),y&&je.delete(i.id),u.animate&&e.nodes[i.id]?.status==="ready"&&!window.matchMedia("(prefers-reduced-motion:reduce)").matches&&u.animate([{opacity:.7},{opacity:1}],{duration:140,easing:"ease-out"})},r=D.pages.find(i=>i.id===G)??D.pages[0];t(r.root,null),we()}function Ce(e,a){if(e.hidden)return null;let t;if(e.type==="customer_data")t=Ot(e);else if(e.type==="stack"){t=document.createElement(e.purchaseAction?"button":"div"),e.purchaseAction&&(t.type="button",t.dataset.gAction=e.purchaseAction),t.className=`${e.purchaseAction?`g-btn g-btn-${e.buttonVariant??"primary"} `:""}g-stack ${e.direction==="horizontal"?"g-h":e.direction==="overlay"?"g-o":"g-v"}`,e.direction==="overlay"?(t.style.alignItems=F[e.align]??"stretch",t.style.justifyItems=R[e.justify]??"stretch"):(t.style.alignItems=f[e.align]??"stretch",t.style.justifyContent=M[e.justify]??"flex-start");for(let r of e.children){let i=Ce(r,e);i&&t.append(i)}if(e.interaction&&Ft(t,e),e.purchaseAction&&c.mode==="live"){let r=H?.nodes[e.id],i=r?.picker;i&&(t.disabled=!H?.pickers[i]?.options.includes(String(E[i]??""))),ye(e.id)?.unavailable&&(t.disabled=!0)}c.mode==="editor"&&!t.childElementCount&&(t.classList.add("g-empty"),t.dataset.gEditorPlaceholder=c.editorMessages?.emptyContainer??"\u62D6\u5165\u7EC4\u4EF6")}else if(e.type==="text"){let r=e.variant==="title"?"h1":e.variant==="heading"?"h2":"p";t=document.createElement(r),t.className=`g-text g-${e.variant}`;let i=Le(e,"text",e.text);t.textContent=i.value,i.missing&&c.mode==="editor"&&t.classList.add("g-missing")}else if(e.type==="button"){t=document.createElement("button"),t.type="button",t.className=`g-btn g-btn-${e.variant}`;let r=Le(e,"label",e.label);t.textContent=r.value,r.missing&&c.mode==="editor"&&t.classList.add("g-missing"),t.dataset.gAction=e.action;let i=H?.nodes[e.id]?.picker;if(i&&c.mode==="live"){let s=i,n=H?.pickers[s],l=E[s]??n?.selected;t.disabled=!n?.options.includes(String(l)),t.disabled&&t.setAttribute("aria-disabled","true")}c.mode==="live"&&ye(e.id)?.unavailable&&(t.disabled=!0,t.setAttribute("aria-disabled","true")),c.mode==="editor"&&(t.tabIndex=-1)}else if(e.type==="image"){t=document.createElement("div"),t.className="g-img",B[e.aspect]&&(t.dataset.aspect=e.aspect,t.style.aspectRatio=B[e.aspect]);let r=document.createElement("img");r.src=e.localizedSrc?.[_]??e.localizedSrc?.[D.strings.defaultLocale]??e.src,r.alt=Le(e,"alt",e.alt).value,r.referrerPolicy="no-referrer",r.decoding="async",r.style.objectFit=e.fit,e.position&&(r.style.objectPosition=`${e.position.x}% ${e.position.y}%`),r.addEventListener("load",we),t.append(r)}else if(e.type==="price"){t=document.createElement("div"),t.className="g-price",t.style.cssText="display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-variant-numeric:tabular-nums";let r=ye(e.id);if(!r?.price)t.textContent=r?.text??V(e.fallback).value,c.mode==="editor"&&t.classList.add("g-missing");else for(let i of["current","original","period"]){let s=r.price[i];if(!s)continue;let n=document.createElement(i==="original"?"s":"span");n.textContent=s,i==="original"&&(n.style.opacity=".6"),e.parts?.[i]&&De(n,{type:"text",id:e.id,text:e.fallback,variant:"body",style:e.parts[i]},null),t.append(n)}}else if(e.type==="coupon_code"){t=document.createElement("div"),t.style.cssText="display:flex;align-items:center;gap:12px;flex-wrap:wrap";let r=ye(e.id);if(r?.code){let i=document.createElement("code");i.textContent=r.code;let s=document.createElement("button");s.type="button",s.className="g-btn g-btn-secondary",s.textContent=V(e.label).value,s.addEventListener("click",n=>{c.mode!=="editor"&&(n.stopPropagation(),Y({type:"copy",nodeId:e.id}))}),t.append(i,s)}else t.textContent=r?.text??V(e.fallback).value,c.mode==="editor"&&t.classList.add("g-missing")}else if(e.type==="countdown"){t=document.createElement("span"),t.setAttribute("role","timer"),t.style.fontVariantNumeric="tabular-nums";let r=ye(e.id),i=r?.countdownAt?Date.parse(r.countdownAt):NaN;!Number.isFinite(i)&&c.mode==="editor"&&t.classList.add("g-missing");let s=()=>{if(!Number.isFinite(i)){t.textContent=r?.text??V(e.fallback).value;return}let n=Math.max(0,Math.ceil((i-Date.now())/1e3));if(!n){t.textContent=V(e.expired).value;let u=ne.get(e.id);u!==void 0&&clearInterval(u),ne.delete(e.id);return}let l=e.granularity,d=l==="day"?86400:l==="hour"?3600:l==="minute"?60:1;l!=="second"?t.textContent=new Intl.NumberFormat(_,{style:"unit",unit:l,unitDisplay:"short"}).format(Math.ceil(n/d)):t.textContent=[Math.floor(n/86400),Math.floor(n/3600)%24,Math.floor(n/60)%60,n%60].map(u=>String(u).padStart(2,"0")).join(":")};s(),Number.isFinite(i)&&i>Date.now()&&ne.set(e.id,setInterval(s,1e3))}else if(e.type==="plan_picker"){t=document.createElement("div"),t.setAttribute("role",e.grouping?"group":"radiogroup"),t.setAttribute("aria-label",V(e.label).value),t.style.cssText="display:flex;flex-direction:column;gap:8px";let r=H?.pickers[e.id],i=e.grouping;if(!r?.options.length)E[e.id]="",t.textContent=V(e.fallback).value,c.mode==="editor"&&t.classList.add("g-missing");else{let s=typeof E[e.id]=="string"?String(E[e.id]):r.selected,n=ue[e.id];if(i){if(!n){let W=i.assignments.find(j=>j.productVersionId===s);n={period:W?.period??"month",tierId:W?.tierId??i.tiers[0].id},ue[e.id]=n}let o=i.assignments.find(W=>W.tierId===n.tierId&&W.period===n.period);s=o&&r.options.includes(o.productVersionId)?o.productVersionId:"";let y=document.createElement("div");y.setAttribute("role","radiogroup"),y.setAttribute("aria-label",`${V(i.monthLabel).value} / ${V(i.yearLabel).value}`),y.style.cssText="display:flex;gap:4px;padding:4px;border:1px solid var(--g-border);border-radius:10px";let b=["month","year"],x=b.filter(W=>i.assignments.some(j=>j.period===W&&r.options.includes(j.productVersionId))),$=W=>{n.period=W;let j=i.assignments.find(te=>te.tierId===n.tierId&&te.period===W);E[e.id]=j&&r.options.includes(j.productVersionId)?j.productVersionId:"",be(),Ee(e.id)?.querySelector(`[data-product-period="${W}"]`)?.focus()};for(let W of b){let j=document.createElement("button");j.type="button",j.className=`g-btn g-btn-${W===n.period?"primary":"secondary"}`,j.style.cssText="flex:1;min-width:0;min-height:40px",j.dataset.productPeriod=W,j.setAttribute("role","radio"),j.setAttribute("aria-checked",String(W===n.period)),j.textContent=V(W==="month"?i.monthLabel:i.yearLabel).value,j.disabled=!x.includes(W),j.tabIndex=c.mode==="editor"||j.disabled?-1:W===n.period||!x.includes(n.period)&&W===x[0]?0:-1,j.addEventListener("click",te=>{c.mode!=="editor"&&(te.stopPropagation(),$(W))}),j.addEventListener("keydown",te=>{if(c.mode==="editor"||!x.length)return;let ie;["ArrowRight","ArrowDown"].includes(te.key)?ie=(x.indexOf(W)+1)%x.length:["ArrowLeft","ArrowUp"].includes(te.key)?ie=(x.indexOf(W)-1+x.length)%x.length:te.key==="Home"?ie=0:te.key==="End"&&(ie=x.length-1),ie!==void 0&&(te.preventDefault(),$(x[ie]))}),y.append(j)}t.append(y)}E[e.id]=s??"";let l=i?i.tiers.map(o=>({tier:o,id:i.assignments.find(y=>y.tierId===o.id&&y.period===n.period)?.productVersionId})):r.options.map(o=>({id:o,tier:void 0})),d=l.filter(o=>o.id&&r.options.includes(o.id)),u=i?document.createElement("div"):t;i&&(u.setAttribute("role","radiogroup"),u.setAttribute("aria-label",V(e.label).value),u.style.cssText="display:flex;flex-direction:column;gap:8px",t.append(u));let w=o=>{!o.id||!r.options.includes(o.id)||(i&&o.tier&&(n.tierId=o.tier.id),E[e.id]=o.id,be(),Ee(e.id)?.querySelector(`[data-plan-id="${o.id}"]`)?.focus())};for(let o of l){let y=o.id?H.plans[o.id]:void 0,b=!!y&&r.options.includes(o.id),x=document.createElement("button");x.type="button",x.className="g-btn g-btn-secondary",x.style.cssText="width:100%;text-align:start;min-height:44px",x.setAttribute("role","radio");let $=i?o.tier?.id===n.tierId:o.id===s;x.setAttribute("aria-checked",String($)),x.disabled=!b,x.tabIndex=c.mode==="editor"||!b?-1:$||!s&&o===d[0]?0:-1,o.id&&(x.dataset.planId=o.id),o.tier&&(x.dataset.productTier=o.tier.id);let W=o.id?H.nodes[e.id]?.byPlan?.[o.id]?.price:void 0;x.textContent=b?`${o.tier?.name??y.name} \xB7 ${W?.current??y.price}${W?.period??y.period}`:`${o.tier?.name??""} \xB7 ${V(i?.unavailableLabel??e.fallback).value}`,$&&(x.style.borderColor="var(--g-primary)",x.style.boxShadow="inset 0 0 0 1px var(--g-primary)",e.states?.selected&&De(x,{type:"text",id:e.id,text:e.label,variant:"body",style:e.states.selected},null)),x.addEventListener("click",j=>{c.mode==="editor"||!b||(j.stopPropagation(),w(o))}),x.addEventListener("keydown",j=>{if(c.mode==="editor"||!d.length)return;let te=d.indexOf(o),ie;["ArrowRight","ArrowDown"].includes(j.key)?ie=(te+1)%d.length:["ArrowLeft","ArrowUp"].includes(j.key)?ie=(te-1+d.length)%d.length:j.key==="Home"?ie=0:j.key==="End"&&(ie=d.length-1),ie!==void 0&&(j.preventDefault(),w(d[ie]))}),u.append(x)}if(i&&!s){let o=document.createElement("p");o.setAttribute("role","status"),o.textContent=V(i.unavailableLabel).value,t.append(o)}}}else if(e.type==="divider")t=document.createElement("hr"),t.className="g-divider";else if(e.type==="spacer")t=document.createElement("div"),t.setAttribute("aria-hidden","true"),t.style.flex="0 0 auto",t.style.width=t.style.height=`${T[e.size]??0}px`;else if(e.type==="custom_html"){t=document.createElement("div"),t.className="g-custom";let r=t.attachShadow({mode:"open"}),i=e.html[_],s=i&&i.trim()?i:e.html[D?.strings.defaultLocale??""]??"",n=ye(e.id);n?.html!==void 0?s=n.html:s.includes("{{")&&c.mode==="live"&&(s=V(e.fallback??"").value.replace(/[&<>"']/g,o=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[o])),(n?.missing?.length||!n&&s.includes("{{"))&&c.mode==="editor"&&t.classList.add("g-missing"),!(i&&i.trim())&&c.mode==="editor"&&t.classList.add("g-missing");let l=document.createElement("style"),d="@media(prefers-reduced-motion:reduce){:host,:host::before,:host::after,*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}";l.textContent=`:host{display:block}${d}@layer indiana-accessibility{${d}}${e.css}`;let u=document.createElement("div");u.innerHTML=s,r.append(l,u);for(let w of u.querySelectorAll("img"))w.addEventListener("load",we)}else return null;return e.style&&De(t,e,a),t.dataset.gNode=e.id,t.dataset.gLabel=zt(e),t}function Ft(e,a){let t=a.interaction,r=[...e.children];e.setAttribute("aria-label",V(t.label).value);let i=U?.bindings.find(n=>n.componentId===a.id),s=i?{id:i.key,source:i.componentId,required:i.required}:void 0;if(s){let n=document.createElement("p");n.className="g-text g-body",n.textContent=V(t.label).value+(s.required?" *":""),e.prepend(n),s.required&&e.setAttribute("aria-required","true")}if(t.type==="input"){let n=document.createElement("input");n.type=t.keyboard,n.maxLength=t.maxLength,n.autocomplete="off",n.setAttribute("aria-label",V(t.label).value),n.setAttribute("aria-required",String(!!s?.required)),n.value=typeof E[a.id]=="string"?String(E[a.id]):"",n.style.cssText="box-sizing:border-box;width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--g-border);border-radius:8px;background:var(--g-surface);color:var(--g-text);font:inherit",n.disabled=c.mode!=="live",n.addEventListener("input",()=>{E[a.id]=n.value,Te(a.id,n.value)}),e.append(n);return}if(!(c.mode!=="live"||!r.length&&t.type!=="toggle")){if(t.type==="multiselect"){e.setAttribute("role","group"),e.dataset.gMin=String(t.min);let n=a.children.filter(u=>!u.hidden),l=new Set(Array.isArray(E[a.id])?E[a.id]:[]),d=()=>r.forEach((u,w)=>{let o=l.has(n[w].id);u.setAttribute("aria-checked",String(o)),u.setAttribute("aria-disabled",String(!o&&l.size>=t.max)),u.style.outline=o?"2px solid var(--g-primary)":"",u.style.outlineOffset="-2px"});r.forEach((u,w)=>{u.setAttribute("role","checkbox"),u.tabIndex=0,u.setAttribute("aria-label",u.textContent?.trim()||String(w+1)),u.style.cursor="pointer";let o=()=>{let y=n[w].id;if(l.has(y))l.delete(y);else if(l.size<t.max)l.add(y);else return;let b=n.filter(x=>l.has(x.id)).map(x=>x.id);E[a.id]=b,d(),Te(a.id,b)};u.addEventListener("click",y=>{y.stopPropagation(),o()}),u.addEventListener("keydown",y=>{[" ","Enter"].includes(y.key)&&(y.preventDefault(),y.stopPropagation(),o())})}),d();return}if(t.type==="select"){e.setAttribute("role","radiogroup");let n=a.children.filter(w=>!w.hidden),l=p(a)?a.interaction.pickerId:void 0,d=n.findIndex(w=>l?w.type==="stack"&&w.bind?.plan===E[l]:w.id===E[a.id]);!l&&d<0&&!s?.required&&(d=Math.min(t.defaultIndex,r.length-1));let u=(w,o=!1,y=!0)=>{if(l&&y&&w>=0){let b=n[w],x=b.type==="stack"?b.bind?.plan:void 0;if(!x||!H?.pickers[l]?.options.includes(x))return;E[a.id]=b.id,E[l]=x,be(),o&&J.querySelector(`[data-g-node="${b.id}"]`)?.focus({preventScroll:!0});return}d=w,w>=0&&(E[a.id]=n[w].id),y&&w>=0&&Te(a.id,n[w].id),r.forEach((b,x)=>{b.setAttribute("aria-checked",String(x===w)),b.tabIndex=x===(w<0?0:w)?0:-1,b.style.cssText="";let $=n[x];$.type==="stack"&&(b.style.alignItems=f[$.align]??"stretch",b.style.justifyContent=M[$.justify]??"flex-start"),$.style&&De(b,$,a),x===w&&(t.selectedStyle&&De(b,{...$,style:t.selectedStyle},a),$.type==="stack"&&$.states?.selected&&De(b,{...$,style:$.states.selected},a),!t.selectedStyle?.border&&!($.type==="stack"&&$.states?.selected?.border)&&(b.style.outline="2px solid var(--g-primary)",b.style.outlineOffset="-2px")),b.style.cursor="pointer"}),o&&w>=0&&r[w].focus()};r.forEach((w,o)=>{if(w.setAttribute("role","radio"),l){let y=n[o],b=y.type==="stack"?y.bind?.plan:void 0;w.setAttribute("aria-disabled",String(!b||!H?.pickers[l]?.options.includes(b)))}w.setAttribute("aria-label",w.textContent?.trim()||String(o+1)),w.addEventListener("click",y=>{y.stopPropagation(),u(o)}),w.addEventListener("keydown",y=>{let b=y.key;if(!["ArrowRight","ArrowLeft","ArrowDown","ArrowUp","Home","End"," ","Enter"].includes(b))return;y.preventDefault(),y.stopPropagation();let x=d<0?o:d;u(b==="Home"?0:b==="End"?r.length-1:b==="ArrowRight"||b==="ArrowDown"?(x+1)%r.length:b==="ArrowLeft"||b==="ArrowUp"?(x+r.length-1)%r.length:o,!0)})}),u(d,!1,!1)}else if(t.type==="tabs"){let n=a.children.filter(o=>!o.hidden),l=document.createElement("div");l.setAttribute("role","tablist"),l.setAttribute("aria-label",V(t.label).value),l.style.cssText="display:flex;gap:4px;padding:4px;border:1px solid var(--g-border);border-radius:12px";let d=r.map((o,y)=>{let b=document.createElement("button");return b.type="button",b.setAttribute("role","tab"),b.textContent=Fe(n[y])||String(y+1),b.style.cssText="flex:1;min-width:0;min-height:44px;padding:8px 16px;border:0;border-radius:8px;font:inherit;cursor:pointer",o.id=`g-${a.id}-${n[y].id}`,o.setAttribute("role","tabpanel"),b.setAttribute("aria-controls",o.id),l.append(b),b}),u=(o,y=!1,b=!1)=>{if(E[a.id]=n[o].id,b&&D&&Object.keys(A(D)).length){for(let x of Object.keys(A(D)))delete E[x];be(),y&&J.querySelector(`[data-g-node="${a.id}"] [role="tab"][aria-selected="true"]`)?.focus({preventScroll:!0});return}r.forEach((x,$)=>{x.hidden=$!==o,d[$].setAttribute("aria-selected",String($===o)),d[$].tabIndex=$===o?0:-1,d[$].style.background=$===o?"var(--g-primary)":"transparent",d[$].style.color=$===o?"var(--g-on-primary)":"var(--g-text)"}),y&&d[o].focus(),we()};d.forEach((o,y)=>{o.addEventListener("click",b=>{b.stopPropagation(),u(y,!1,!0)}),o.addEventListener("keydown",b=>{["ArrowLeft","ArrowRight","Home","End"].includes(b.key)&&(b.preventDefault(),b.stopPropagation(),u(b.key==="Home"?0:b.key==="End"?r.length-1:(y+(b.key==="ArrowRight"?1:r.length-1))%r.length,!0,!0))})}),e.prepend(l);let w=n.findIndex(o=>o.id===E[a.id]);u(w>=0?w:Math.min(t.defaultIndex,r.length-1))}else if(t.type==="toggle"){let n=document.createElement("button");n.type="button",n.setAttribute("role","switch"),n.className="g-btn g-btn-secondary",n.style.cssText="display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--g-text)";let l=document.createElement("span");l.textContent=V(t.label).value;let d=document.createElement("span");d.setAttribute("aria-hidden","true"),d.style.cssText="position:relative;display:block;flex:none;width:44px;height:24px;border-radius:12px;background:var(--g-border)";let u=document.createElement("span");u.style.cssText="position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003",d.append(u),n.append(l,d);let w=(o,y=!1)=>{if(E[a.id]=o,y&&D&&Object.keys(A(D)).length){for(let b of Object.keys(A(D)))delete E[b];be(),J.querySelector(`[data-g-node="${a.id}"] [role="switch"]`)?.focus({preventScroll:!0});return}n.setAttribute("aria-checked",String(o)),d.style.background=o?"var(--g-primary)":"var(--g-border)",u.style.left=o?"23px":"3px",u.style.background=o?"var(--g-on-primary)":"#FFFFFF",r.forEach((b,x)=>b.hidden=x!==(o?0:1)),we()};n.addEventListener("click",o=>{o.stopPropagation(),w(!E[a.id],!0),Te(a.id,!!E[a.id])}),e.prepend(n),w(typeof E[a.id]=="boolean"?E[a.id]:t.defaultEnabled)}else{e.setAttribute("role","region"),e.setAttribute("aria-roledescription","carousel");let n=document.createElement("div");n.style.cssText="display:flex;align-items:center;justify-content:center;gap:10px";let l=document.createElement("button"),d=document.createElement("button"),u=document.createElement("span"),w=_.startsWith("zh");l.textContent="\u2190",d.textContent="\u2192",l.setAttribute("aria-label",w?"\u4E0A\u4E00\u6761\u8BC4\u4EF7":"Previous review"),d.setAttribute("aria-label",w?"\u4E0B\u4E00\u6761\u8BC4\u4EF7":"Next review");for(let y of[l,d])y.type="button",y.className="g-btn g-btn-secondary",y.style.color="var(--g-text)";u.setAttribute("aria-live","polite");let o=y=>{fe[a.id]=y,r.forEach((b,x)=>b.hidden=x!==y),u.textContent=`${y+1} / ${r.length}`,we()};l.addEventListener("click",y=>{y.stopPropagation(),o((fe[a.id]+r.length-1)%r.length)}),d.addEventListener("click",y=>{y.stopPropagation(),o((fe[a.id]+1)%r.length)}),n.append(l,u,d),e.append(n),o(fe[a.id]??0)}}}function Fe(e){if(e.hidden)return"";if(e.type==="text"&&(e.variant==="title"||e.variant==="heading"))return V(e.text).value;if(e.type==="stack")for(let a of e.children){let t=Fe(a);if(t)return t}return""}function it(e){return e.type==="stack"&&!e.interaction&&!e.purchaseAction}function st(e){let a=[],t=r=>{let i=H?.nodes[r.id];if(a.push(r.id,ye(r.id)),i?.picker&&a.push(E[i.picker],H?.pickers[i.picker]),r.type==="text")a.push(Le(r,"text",r.text));else if(r.type==="button")a.push(Le(r,"label",r.label));else if(r.type==="image")a.push(Le(r,"alt",r.alt));else if(r.type==="custom_html")a.push(O,U?.answers);else if(r.type==="customer_data")a.push(se?.nodes[r.id]);else if(r.type==="plan_picker"){let s=H?.pickers[r.id];a.push(E[r.id],ue[r.id],s,i,s?.options.map(n=>H?.plans[n]))}else r.type==="stack"&&(r.interaction?.type!=="input"&&a.push(E[r.id],fe[r.id]),p(r)&&a.push(E[r.interaction.pickerId],H?.pickers[r.interaction.pickerId]),r.children.forEach(t))};return t(e),JSON.stringify(a)}function ot(e){e.hidden||(it(e)?e.children.forEach(ot):pe.set(e.id,st(e)))}function dt(e){let a=ne.get(e.id);a!==void 0&&clearInterval(a),ne.delete(e.id),e.type==="stack"&&e.children.forEach(dt)}function ct(e,a){if(e.hidden)return;if(it(e)){e.children.forEach(i=>ct(i,e));return}if(pe.get(e.id)===st(e))return;let t=Ee(e.id);if(!t)return;dt(e);let r=Ce(e,a);r&&t.replaceWith(r)}function Ut(){let e=document.activeElement;if(!(e instanceof HTMLElement)||!J.contains(e))return;let a=e.closest("[data-g-node]");if(!a)return;let t=[];for(let r=e;r!==a;){let i=r.parentElement;if(!i)return;t.unshift(Array.prototype.indexOf.call(i.children,r)),r=i}return{active:e,nodeId:a.dataset.gNode,path:t,identity:["productPeriod","planId","productTier","gDataFocus"].map(r=>[r,e.dataset[r]]).find(([,r])=>r!==void 0),selection:e instanceof HTMLInputElement&&e.selectionStart!==null?{start:e.selectionStart,end:e.selectionEnd,direction:e.selectionDirection}:void 0}}function Bt(e){if(!e||e.active.isConnected)return;let a=Ee(e.nodeId);if(!a)return;let t=a;if(e.identity){let[r,i]=e.identity;t=[...a.querySelectorAll("*")].find(s=>s.dataset[r]===i)}else for(let r of e.path)t=t?.children[r];!t||t.hasAttribute("disabled")||(t.focus({preventScroll:!0}),e.selection&&t instanceof HTMLInputElement&&["text","search","tel","url","password"].includes(t.type)&&t.setSelectionRange(e.selection.start,e.selection.end,e.selection.direction??void 0))}function be(e=!1){if(!D)return;let a=e?void 0:Ut(),t=D.pages.find(s=>s.id===(G??D.initialPageId))??D.pages[0];G=t.id,H&&Object.assign(E,I({...D,pages:[t]},et(),H));let r=s=>{if(s.type==="stack"&&s.children.forEach(r),s.type!=="plan_picker"||!s.grouping)return;let n=s.grouping,l=H?.pickers[s.id],d=ue[s.id];if(!d){let w=n.assignments.find(o=>o.productVersionId===(E[s.id]??l?.selected));d={period:w?.period??"month",tierId:w?.tierId??n.tiers[0].id},ue[s.id]=d}let u=n.assignments.find(w=>w.tierId===d.tierId&&w.period===d.period);E[s.id]=u&&l?.options.includes(u.productVersionId)?u.productVersionId:""};if(r(t.root),e||Z!==t){ne.forEach(l=>clearInterval(l)),ne.clear(),pe.clear(),J.style.cssText="",$t(t.theme?{...D,theme:t.theme}:D);let s=_.split("-")[0];document.documentElement.lang=_,document.documentElement.dir=["ar","he","fa","ur"].includes(s)?"rtl":"ltr",J.dataset.gPresentation=D.presentation.type;let n=Ce(t.root,null);J.replaceChildren(...n?[n]:[]),Z=t}else ct(t.root,null);ot(t.root),Bt(a),J.dataset.gPage=t.id,c.mode==="live"&&Y({type:"page",pageId:t.id}),Be(),Ue();let i=Math.ceil(J.getBoundingClientRect().height);v?we():(v=!0,k=i,Y({type:"rendered",height:i,label:Fe(t.root)||D.name}))}function we(){let e=Math.ceil(J.getBoundingClientRect().height);e!==k&&(k=e,Y({type:"resize",height:e})),Be(),Ue()}function lt(){ae||(ae=!0,window.requestAnimationFrame(()=>{ae=!1,we()}))}function Ue(){if(c.mode!=="editor")return;let e=[];for(let t of J.querySelectorAll("[data-g-node]")){let r=t.getBoundingClientRect();!r.width||!r.height||e.push({id:t.dataset.gNode,x:r.x,y:r.y,width:r.width,height:r.height})}let a=JSON.stringify(e);a!==he&&(he=a,Y({type:"layout",nodes:e}))}function Ee(e){return!e||!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(e)?null:J.querySelector(`[data-g-node="${e}"]`)}function pt(e,a){let t=Ee(a);if(!t){e.style.display="none";return}let r=t.getBoundingClientRect();e.style.display="block",e.style.left=`${r.left+window.scrollX}px`,e.style.top=`${r.top+window.scrollY}px`,e.style.width=`${r.width}px`,e.style.height=`${r.height}px`,e.toggleAttribute("data-below",r.top<20),e.firstChild.textContent=t.dataset.gLabel??""}function Be(){c.mode==="editor"&&(pt(ce,Ae),pt(ge,X&&X!==Ae?X:null))}function $e(e){for(let a of e.composedPath()){if(a instanceof HTMLElement&&a.dataset.gNode)return a.dataset.gNode;if(a===J)break}return null}function Wt(e){if(e.isTrusted){if(c.mode==="editor"){e.preventDefault(),e.stopPropagation(),Y({type:"select",id:$e(e)});return}for(let a of e.composedPath()){if(!(a instanceof HTMLElement))continue;let t=a.dataset.gAction??(a.tagName==="BUTTON"?a.getAttribute("data-grow-action"):null);if(t&&!a.disabled){e.preventDefault();let r=D?.actions.find(i=>i.id===t);if(r?.type==="navigate"){if(G=r.pageId,D)for(let i of Object.keys(A(D)))delete E[i];be(),J.querySelector("h1,h2")?.focus({preventScroll:!0});return}Y({type:"action",actionId:t,nodeId:$e(e)??void 0,...Object.keys(E).length?{selection:et()}:{},...U?{answers:rt()}:{}});return}if(a===J)return}}}function ut(e){let a=e;if(!(!a||a.channel!==c.channel))try{if(a.type==="render"){let t=c.document??a.doc;if(!t||t.kind!=="screen"||t.schemaVersion!==4||Object.hasOwn(t,"funnel")||!t.pages?.length||t.pages.length>(t.surface==="paywall"?10:1)||t.pages.some(r=>Object.hasOwn(r,"source"))||t.actions?.some(r=>!["event","close","open_url","claim_offer",...t.surface==="paywall"?["navigate"]:[]].includes(r.type)))throw new Error("Unsupported screen document; use the current Funnel runtime for flows");D=t,G=null,_=String(a.locale),de=new Set,O=a.parameters??{},U=a.serverInput,E=C(),ue=C(),H=a.capabilities,se=a.customerData,Se.clear();for(let[r,i]of Object.entries(H?.pickers??{}))i.selected&&(E[r]=i.selected);if(a.selection&&typeof a.selection=="object"&&!Array.isArray(a.selection)){let r=a.selection,i=n=>{let l=r[n.id];if(n.type==="plan_picker"&&typeof l=="string"&&n.planIds?.includes(l)&&(E[n.id]=l),n.type==="stack"){if(n.interaction?.type==="toggle"&&typeof l=="boolean"&&(E[n.id]=l),n.interaction&&["select","tabs"].includes(n.interaction.type)&&typeof l=="string"&&n.children.some(d=>d.id===l)&&(E[n.id]=l),p(n)){let d=r[n.interaction.pickerId];typeof d=="string"&&n.children.some(u=>u.type==="stack"&&u.bind?.plan===d)&&(E[n.interaction.pickerId]=d)}n.children.forEach(i)}};D.pages.forEach(n=>i(n.root));let s=r.__page;typeof s=="string"&&D.pages.some(n=>n.id===s)&&(G=s)}for(let r of U?.bindings??[])Object.hasOwn(U.answers,r.key)&&(E[r.componentId]=U.answers[r.key],de.add(r.componentId));fe=C(),_=String(a.locale),be(!0)}else if(a.type==="capabilities"){H=a.capabilities;for(let[t,r]of Object.entries(H.pickers))!ue[t]&&E[t]===void 0&&(E[t]=r.selected??"");be()}else a.type==="customer-data"?jt(a.data):a.type==="restore-action-focus"&&c.mode==="live"?[...J.querySelectorAll("button[data-g-node]")].find(t=>t.dataset.gNode===a.nodeId&&!t.disabled)?.focus({preventScroll:!0}):a.type==="highlight"&&c.mode==="editor"&&(X=a.hoverId??null,Ae=a.selectedId??null,Be())}catch(t){Y({type:"error",message:t instanceof Error?t.message:"render failed"})}}let gt=document.createElement("style");if(gt.textContent=m,document.head.append(gt),document.body.append(J),c.mode==="editor"){document.body.dataset.gEditor="",document.body.append(ge,ce),document.addEventListener("mouseover",a=>{let t=$e(a);t!==ke&&(ke=t,Y({type:"hover",id:t}))}),document.documentElement.addEventListener("mouseleave",()=>{ke!==null&&(ke=null,Y({type:"hover",id:null}))}),document.addEventListener("dblclick",a=>{let t=$e(a);t&&a.isTrusted&&Y({type:"edit",id:t})}),document.addEventListener("click",a=>{J.contains(a.target)||Y({type:"select",id:null})});let e=(a,t)=>{if(!a.isTrusted)return;let r=a.metaKey||a.ctrlKey,i=a.key;(i===" "||t==="down"&&(["Delete","Backspace","Escape"].includes(i)||r&&/^[zysdcvg0=+-]$/i.test(i)))&&((r||i===" ")&&a.preventDefault(),Y({type:"key",key:{key:i,phase:t,meta:a.metaKey,ctrl:a.ctrlKey,shift:a.shiftKey,alt:a.altKey}}))};document.addEventListener("keydown",a=>e(a,"down")),document.addEventListener("keyup",a=>e(a,"up")),document.addEventListener("wheel",a=>{!a.isTrusted||!(a.ctrlKey||a.metaKey)||(a.preventDefault(),Y({type:"zoom",delta:a.deltaY}))},{passive:!1})}J.addEventListener("click",Wt),document.addEventListener("keydown",e=>{e.key==="Escape"&&e.isTrusted&&Y({type:"escape"})}),typeof ResizeObserver=="function"&&new ResizeObserver(lt).observe(J),window.addEventListener("resize",lt),c.mode==="editor"&&window.addEventListener("scroll",Ue),window.addEventListener("message",e=>{e.source===h&&ut(e.data)}),z.__indianaReceive=ut,Y(c.document?{type:"ready",document:c.document}:{type:"ready"})}var Qt=`(${Ge.toString()})(JSON.parse(document.getElementById("grow-renderer-boot").textContent))`;function Mt(c,p){let A=JSON.stringify(c).replace(/</g,"\\u003c");return`<!doctype html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'nonce-${p}'; style-src 'unsafe-inline'; img-src https: data:; connect-src 'none'; font-src 'none'; media-src 'none'; frame-src 'none'; base-uri 'none'; form-action 'none'"></head><body><script type="application/json" id="grow-renderer-boot">${A}<\/script><script nonce="${p}">${Qt}<\/script></body></html>`}function ea(){return`(() => {
|
|
172
172
|
try {
|
|
173
173
|
const input = JSON.parse(decodeURIComponent(location.hash.slice(1)));
|
|
174
174
|
if (!input || !/^[a-f0-9-]{36}$/.test(input.channel) || input.mode !== "live" || !Number.isInteger(input.hostDepth) || input.hostDepth < 1 || input.hostDepth > 16) return;
|
|
@@ -177,15 +177,15 @@ body{font-family:var(--g-font);color:var(--g-text);-webkit-font-smoothing:antial
|
|
|
177
177
|
const data = JSON.parse(document.getElementById("indiana-screen").textContent);
|
|
178
178
|
if (!data || typeof data.document !== "object") return;
|
|
179
179
|
const boot = { channel: input.channel, parentOrigin: origin.origin, hostDepth: input.hostDepth, mode: "live", document: data.document };
|
|
180
|
-
(${
|
|
180
|
+
(${Ge.toString()})(boot);
|
|
181
181
|
} catch { /* No valid host bridge: leave the published screen inert. */ }
|
|
182
|
-
})();`}function
|
|
182
|
+
})();`}function ta(){return`(() => {
|
|
183
183
|
try {
|
|
184
184
|
const input = JSON.parse(decodeURIComponent(location.hash.slice(1)));
|
|
185
185
|
if (!input || !/^[a-f0-9-]{36}$/.test(input.channel) || input.mode !== "live" || !Number.isInteger(input.hostDepth) || input.hostDepth < 1 || input.hostDepth > 16) return;
|
|
186
186
|
const origin = new URL(input.parentOrigin);
|
|
187
187
|
if (!["https:", "http:"].includes(origin.protocol) || origin.origin !== input.parentOrigin) return;
|
|
188
188
|
const boot = { channel: input.channel, parentOrigin: origin.origin, hostDepth: input.hostDepth, mode: "live" };
|
|
189
|
-
(${
|
|
189
|
+
(${Ge.toString()})(boot);
|
|
190
190
|
} catch { /* No valid host bridge: leave the public shell empty. */ }
|
|
191
|
-
})();`}function Ge(c){return Object.assign(new Error(`Web View renderer did not start (${c.phase} timeout)`),{name:"RendererStartupError",code:"RENDERER_STARTUP_TIMEOUT",details:c})}function Ye(c,p,I){let L=(()=>{let E=c.defaultView;if(!E)throw new Error("Renderer host has no browser window");return E})(),m=I?.hasAttribute("src")?"navigation":"handshake",$=m==="navigation"?1e4:5e3,M=0,N=0,S,f=!1;function P(){if(S===void 0)return;L.clearTimeout(S),S=void 0;let E=Math.max(0,performance.now()-N);M+=E,$=Math.max(0,$-E)}function R(){f||(f=!0,P(),c.removeEventListener("visibilitychange",H),I?.removeEventListener("load",b))}function H(){if(!f){if(c.visibilityState==="hidden"){P();return}S===void 0&&(N=performance.now(),S=L.setTimeout(()=>{M+=Math.max(0,performance.now()-N),S=void 0,R(),p({phase:m,visibleMs:Math.round(M)})},$))}}function F(E){f||m===E||m==="render"||(P(),m=E,$=5e3,H())}function b(){m==="navigation"&&F("handshake")}return I?.addEventListener("load",b,{once:!0}),c.addEventListener("visibilitychange",H),H(),Object.assign(R,{ready:()=>F("render")})}function ta(c,p){if(!/^(0|[1-9]\d*)(\.\d{1,12})?$/.test(c))throw new Et("INVALID_RESPONSE","Invalid credit amount");let[I,L]=c.split("."),m=new Intl.NumberFormat(p),$=m.formatToParts(1.1).find(N=>N.type==="decimal")?.value??".",M=Array.from({length:10},(N,S)=>new Intl.NumberFormat(p,{useGrouping:!1}).format(S));return m.format(BigInt(I))+(L?$+L.replace(/\d/g,N=>M[Number(N)]):"")}var Xe=new WeakMap,aa=new WeakMap;function ra(c){let p=window.open("about:blank","_blank");if(!p)throw new Error("External URL window was blocked");try{p.opener=null;let I=p.document.createElement("a");I.href=c,I.target="_self",I.rel="noopener noreferrer",I.referrerPolicy="no-referrer",p.document.body.append(I),I.click()}catch(I){throw p.close(),I}}function na(){return typeof navigator>"u"?[]:[...navigator.languages??[],navigator.language].filter(Boolean)}function Mt(c,p,I,L,m=document,$){let M=crypto.randomUUID(),N=crypto.randomUUID().replaceAll("-",""),S=m.createElement("iframe");S.title=p,S.setAttribute("sandbox","allow-scripts"),S.referrerPolicy="no-referrer";let f=m.defaultView,P=1;for(;f!==window&&P<16;)f=f.parent,P++;if(f!==window)throw new Error("Renderer container must belong to this host or a descendant window");let R={channel:M,parentOrigin:window.origin,hostDepth:P,mode:c,...c==="editor"?{editorMessages:I}:{}};if($){if(c!=="live")throw new Error("Published screen renders only support live rendering");let b=new URL($);if(b.username||b.password||b.search||b.hash||!xt(b.pathname)||b.protocol!=="https:"&&!(b.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(b.hostname)))throw new Error("Invalid published screen render URL");b.hash=encodeURIComponent(JSON.stringify(R)),S.src=b.href}else if(L){if(c!=="live")throw new Error("Hosted Web Views only support live rendering");let b=new URL(L);if(b.username||b.password||b.search||b.hash||!/^\/web-view\/renderer\/[a-f0-9]{64}$/.test(b.pathname)||b.protocol!=="https:"&&!(b.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(b.hostname)))throw new Error("Invalid hosted renderer URL");b.hash=encodeURIComponent(JSON.stringify(R)),S.src=b.href}else S.srcdoc=Pt(R,N);return{frame:S,post:b=>S.contentWindow?.postMessage({...b,channel:M},"*"),accept:b=>b.source===S.contentWindow&&b.origin==="null"&&b.data&&b.data.channel===M?b.data:null}}function Sa(c,p={}){let I=Ne(c,window);p.capabilities=_e(p.capabilities,I,window);let L=qe(I,[p.locale,...na()]),m=Je(I,L);if(Xe.has(document))throw new Error("\u5DF2\u6709\u5F39\u7A97\u6B63\u5728\u5C55\u793A\uFF0C\u8BF7\u5148\u5173\u95ED\u3002");if(!document.body||!["https:","http:"].includes(location.protocol))throw new Error("\u5F39\u7A97\u9700\u8981 HTTP(S) \u9875\u9762\u3002");let $=document.activeElement,M=document.createElement("div");M.dataset.indianaPopup="";let N=M.attachShadow({mode:"open"}),S=document.createElement("style");S.textContent=":host{all:initial;position:fixed!important;inset:0!important;z-index:2147483647!important;font-family:system-ui,sans-serif;pointer-events:none} dialog{pointer-events:auto;box-sizing:border-box;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:14px;background:white;box-shadow:0 24px 80px #0003;overflow:hidden}dialog::backdrop{background:#16142577}button{position:absolute;z-index:1;inset-inline-end:8px;top:8px;width:30px;height:30px;border:1px solid #e5e5eb;border-radius:50%;background:#fff;color:#383344;font-size:20px;line-height:1;cursor:pointer}button:focus-visible{outline:3px solid #635bdf}iframe{display:block;border:0;width:100%;height:100%}";let f=document.createElement("dialog");f.lang=L,f.dir=wt(L)?"rtl":"ltr",f.setAttribute("aria-label",m.name),f.dataset.presentation=m.presentation.type,f.style.width=m.presentation.type==="fullscreen"?"100vw":`${bt[m.presentation.size]}px`,m.presentation.type==="fullscreen"?f.style.cssText+=";max-width:100vw;max-height:100dvh;height:100dvh;margin:0;border-radius:0":m.presentation.type==="sheet"&&(f.style.cssText+=";margin:auto auto 0;max-width:100vw;max-height:100dvh;border-radius:14px 14px 0 0"),f.style.background=m.theme.background;let P=document.createElement("button");P.type="button",P.textContent="\xD7",P.setAttribute("aria-label",At(L));let{frame:R,post:H,accept:F}=Mt("live",m.name,void 0,p.rendererUrl),b=!1,E=!1,U=J=>{m.presentation.type!=="fullscreen"&&(f.style.height=`min(${Math.max(J,40)}px, calc(100dvh - ${m.presentation.type==="sheet"?0:32}px))`)};function G(J){try{Promise.resolve(p.onEvent?.(J)).catch(C=>Z(p.onError,C))}catch(C){Z(p.onError,C)}}function O(){return b?!1:(b=!0,ce(),window.removeEventListener("message",ne),f.close(),M.remove(),Xe.delete(document),$ instanceof HTMLElement&&$.isConnected&&$.focus({preventScroll:!0}),!0)}function te(J){O()&&G({type:"closed",reason:J})}function ne(J){let C=b?null:F(J);if(C){if(C.type==="ready")ce.ready(),H({type:"render",doc:m,locale:L,capabilities:p.capabilities});else if(C.type==="rendered"&&!E)E=!0,ce(),U(C.height),C.label&&f.setAttribute("aria-label",C.label),f.showModal(),P.focus(),G({type:"shown"});else if(C.type==="resize"&&E)U(C.height);else if(C.type==="copy"&&E){let A=xe(m,C.nodeId),ie=ht(p.capabilities,C.nodeId);A?.type==="coupon_code"&&ie?.code&&navigator.clipboard?.writeText(ie.code).catch(()=>{})}else if(C.type==="escape"&&E)te("escape");else if(C.type==="action"&&E&&typeof C.actionId=="string"){let A=m.actions.find(ie=>ie.id===C.actionId);if(!A)return;if(A.close&&O(),G({type:"action",actionId:A.id,...typeof C.nodeId=="string"&&xe(m,C.nodeId)?{nodeId:C.nodeId}:{},name:A.event,properties:{...A.properties},...C.selection?{selection:Ve(m,C.selection,p.capabilities)}:{}}),A.type==="open_url")try{ra(A.url)}catch(ie){Z(p.onError,ie)}A.close&&G({type:"closed",reason:"action"})}}}let ce=Ye(document,J=>{Z(p.onError,Ge(J)),te("timeout")},R),ue={destroy:()=>te("destroy"),updateCapabilities:J=>{let C=_e(J,m,window);p.capabilities=C,H({type:"capabilities",capabilities:C})}};return aa.set(ue,J=>{b||H({type:"restore-action-focus",nodeId:J})}),P.addEventListener("click",()=>te("close_button")),f.addEventListener("cancel",J=>{J.preventDefault(),te("escape")}),f.append(P,R),N.append(S,f),window.addEventListener("message",ne),Xe.set(document,ue),document.body.append(M),ue}function Ea(c,p={}){let I=(()=>{let j=c.ownerDocument.defaultView;if(!j)throw new Error("Preview container has no browser window");return j})(),L=p.mode??"editor",{frame:m,post:$,accept:M}=Mt(L,p.title??"\u5F39\u7A97\u9884\u89C8",p.editorMessages,p.rendererUrl,c.ownerDocument,p.screenUrl);m.style.cssText="display:block;border:0;width:100%;height:0";let N=!1,S=!1,f=null,P=null,R=!1,H,F,b=new Promise((j,v)=>{H=j,F=v});b.catch(()=>{});let E=Ye(c.ownerDocument,j=>{if(R||S)return;let v=Ge(j);F(v),Z(p.onError,v.message),U()},m);function U(){R||(R=!0,E(),N||F(new Error("Web View mount cancelled")),window.removeEventListener("message",ge),N=!1,f=null,P=null,G=null,te=null,ne=null,O=void 0,ue.clear(),m.remove(),m.removeAttribute("srcdoc"),m.removeAttribute("src"))}let G=null,O,te=null,ne=null,ce="modal",ue=new Set,J=p.viewportHeight,C=0,A=j=>{C=j;let v=J,k=v?ce==="fullscreen"?v:Math.max(1,Math.min(j,v-(ce==="sheet"?0:32))):j;m.style.height=`${k}px`,Z(p.onResize,k)};function ie(j){if(!O)return;let v=vt.safeParse(j);if(!v.success||Object.keys(v.data).some(k=>!O.bindings.some(se=>se.key===k))){Z(p.onError,"Invalid current-screen answers");return}return v.data}function ge(j){let v=R?null:M(j);if(v)if(v.type==="ready"){if(p.screenUrl){let k=ze.safeParse(v.document);if(!k.success){Z(p.onError,"Invalid published screen render"),U();return}te=Ne(k.data,I),m.title=te.name}if(N=!0,E.ready(),H(),ne){let[,k,se]=ne;ne=null,ae.update(null,k,se)}f&&$(f),P&&$(P)}else if(v.type==="rendered"||v.type==="resize")A(v.height),v.type==="rendered"&&(S=!0,E(),Z(p.onRendered));else if(v.type==="layout"&&L==="editor")Array.isArray(v.nodes)&&v.nodes.length<=(G?Re.nodes:0)&&v.nodes.every(k=>k&&typeof k.id=="string"&&/^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/.test(k.id)&&[k.x,k.y,k.width,k.height].every(se=>typeof se=="number"&&Number.isFinite(se))&&k.width>0&&k.height>0)&&Z(p.onLayout,v.nodes);else if(v.type==="page"&&L==="live"&&ue.has(v.pageId))Z(p.onPageChange,v.pageId);else if(v.type==="escape"&&L==="live")Z(p.onEscape);else if(v.type==="hover")Z(p.onHover,v.id);else if(v.type==="select")Z(p.onSelect,v.id);else if(v.type==="edit")Z(p.onEdit,v.id);else if(v.type==="key"&&L==="editor"){let k=v.key;k&&typeof k.key=="string"&&k.key.length<=16&&(k.phase==="down"||k.phase==="up")&&[k.meta,k.ctrl,k.shift,k.alt].every(se=>typeof se=="boolean")&&Z(p.onKey,{key:k.key,phase:k.phase,meta:k.meta,ctrl:k.ctrl,shift:k.shift,alt:k.alt})}else if(v.type==="zoom"&&L==="editor"&&typeof v.delta=="number"&&Number.isFinite(v.delta))Z(p.onZoom,v.delta);else if(v.type==="customer-data-intent"&&L==="live"&&G){let k=yt.safeParse(v.intent);k.success&&xe(G,k.data.nodeId)?.type==="customer_data"&&Z(p.onCustomerDataIntent,k.data)}else if(v.type==="answers"&&L==="live"&&O){let k=ie(v.answers);k&&Z(p.onAnswers,k)}else if(v.type==="action"&&G?.actions.some(k=>k.id===v.actionId)){let k=ie(v.answers);if(O&&!k)return;Z(p.onAction,v.actionId,Ve(G,v.selection,f?.type==="render"?f.capabilities:void 0),k)}else v.type==="error"&&Z(p.onError,v.message)}window.addEventListener("message",ge),c.append(m);let ae={ready:b,get document(){return G},updateCustomerData(j){if(R||!G)return;let v=Be.parse(j),k={nodes:Object.fromEntries(Object.entries(v.nodes).filter(([se,fe])=>{let Y=xe(G,se);return Y?.type==="customer_data"&&Y.data.source===fe.source}))};f?.type==="render"&&(f.customerData=k),N&&$({type:"customer-data",data:k})},updateCapabilities(j){if(R||!G)return;let v=_e(j,G,I);v&&(f?.type==="render"&&JSON.stringify(f.capabilities)===JSON.stringify(v)||(f?.type==="render"&&(f.capabilities=v),N&&$({type:"capabilities",capabilities:v})))},update(j,v,k){if(R)return;if(p.screenUrl?j!==null:j===null){Z(p.onError,"A published screen render takes its document from the frame");return}if(j===null&&!te){ne=[null,v,k];return}let se=j??te,fe;try{let Y=j?Ne(se,I):se,ve=L==="live"&&!!k?.serverInput,V=ve?qe(Y,[v]):v,ke=ve?Je(Y,V):Y,pe=k?.serverInput?St.parse(k.serverInput):void 0;if(pe&&(Y.surface!=="paywall"&&Y.pages.length!==1||Y.actions.some(B=>B.type!=="event"&&!(Y.surface==="paywall"&&B.type==="navigate")||B.close)||pe.bindings.some(B=>{let Se=xe(Y,B.componentId);return Se?.type!=="stack"||!Se.interaction||!["input","multiselect","select","tabs","toggle"].includes(Se.interaction.type)})))throw new Error("Current Funnel input requires one screen with bound interactive controls and output actions");G=ke,O=pe,ce=Y.presentation.type,ue=new Set(Y.pages.map(B=>B.id)),fe={type:"render",...p.screenUrl?{}:{doc:ke},...pe?{serverInput:pe}:{},locale:V,parameters:kt.parse(k?.parameters??{}),capabilities:_e(k?.capabilities,Y,I),...k?.selection?{selection:k.selection}:{},customerData:k?.customerData?Be.parse(k.customerData):void 0},ce==="fullscreen"&&J&&A(J)}catch(Y){Z(p.onError,Y instanceof Error?Y.message:"\u5185\u5BB9\u4E0D\u6B63\u786E");return}f=fe,N&&$(fe)},resizeViewport(j){R||!Number.isFinite(j)||j<=0||(J=j,A(C))},highlight(j,v){R||(P={type:"highlight",hoverId:j,selectedId:v},N&&$(P))},destroy:U};return ae}export{ta as formatCustomerDecimal,ea as hostedRendererScript,Qt as hostedScreenScript,Yt as inspectCustomHtml,Ea as mountScreenPreview,Ne as prepareScreen,Gt as sanitizeCustomHtml,Sa as showPopup};
|
|
191
|
+
})();`}function Ye(c){return Object.assign(new Error(`Web View renderer did not start (${c.phase} timeout)`),{name:"RendererStartupError",code:"RENDERER_STARTUP_TIMEOUT",details:c})}function Xe(c,p,A){let I=(()=>{let C=c.defaultView;if(!C)throw new Error("Renderer host has no browser window");return C})(),h=A?.hasAttribute("src")?"navigation":"handshake",z=h==="navigation"?1e4:5e3,T=0,P=0,S,f=!1;function M(){if(S===void 0)return;I.clearTimeout(S),S=void 0;let C=Math.max(0,performance.now()-P);T+=C,z=Math.max(0,z-C)}function R(){f||(f=!0,M(),c.removeEventListener("visibilitychange",F),A?.removeEventListener("load",m))}function F(){if(!f){if(c.visibilityState==="hidden"){M();return}S===void 0&&(P=performance.now(),S=I.setTimeout(()=>{T+=Math.max(0,performance.now()-P),S=void 0,R(),p({phase:h,visibleMs:Math.round(T)})},z))}}function B(C){f||h===C||h==="render"||(M(),h=C,z=5e3,F())}function m(){h==="navigation"&&B("handshake")}return A?.addEventListener("load",m,{once:!0}),c.addEventListener("visibilitychange",F),F(),Object.assign(R,{ready:()=>B("render")})}function aa(c,p){if(!/^(0|[1-9]\d*)(\.\d{1,12})?$/.test(c))throw new At("INVALID_RESPONSE","Invalid credit amount");let[A,I]=c.split("."),h=new Intl.NumberFormat(p),z=h.formatToParts(1.1).find(P=>P.type==="decimal")?.value??".",T=Array.from({length:10},(P,S)=>new Intl.NumberFormat(p,{useGrouping:!1}).format(S));return h.format(BigInt(A))+(I?z+I.replace(/\d/g,P=>T[Number(P)]):"")}var Qe=new WeakMap,ra=new WeakMap;function na(c){let p=window.open("about:blank","_blank");if(!p)throw new Error("External URL window was blocked");try{p.opener=null;let A=p.document.createElement("a");A.href=c,A.target="_self",A.rel="noopener noreferrer",A.referrerPolicy="no-referrer",p.document.body.append(A),A.click()}catch(A){throw p.close(),A}}function ia(){return typeof navigator>"u"?[]:[...navigator.languages??[],navigator.language].filter(Boolean)}function Tt(c,p,A,I,h=document,z){let T=crypto.randomUUID(),P=crypto.randomUUID().replaceAll("-",""),S=h.createElement("iframe");S.title=p,S.setAttribute("sandbox","allow-scripts"),S.referrerPolicy="no-referrer";let f=h.defaultView,M=1;for(;f!==window&&M<16;)f=f.parent,M++;if(f!==window)throw new Error("Renderer container must belong to this host or a descendant window");let R={channel:T,parentOrigin:window.origin,hostDepth:M,mode:c,...c==="editor"?{editorMessages:A}:{}};if(z){if(c!=="live")throw new Error("Published screen renders only support live rendering");let m=new URL(z);if(m.username||m.password||m.search||m.hash||!vt(m.pathname)||m.protocol!=="https:"&&!(m.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(m.hostname)))throw new Error("Invalid published screen render URL");m.hash=encodeURIComponent(JSON.stringify(R)),S.src=m.href}else if(I){if(c!=="live")throw new Error("Hosted Web Views only support live rendering");let m=new URL(I);if(m.username||m.password||m.search||m.hash||!/^\/web-view\/renderer\/[a-f0-9]{64}$/.test(m.pathname)||m.protocol!=="https:"&&!(m.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(m.hostname)))throw new Error("Invalid hosted renderer URL");m.hash=encodeURIComponent(JSON.stringify(R)),S.src=m.href}else S.srcdoc=Mt(R,P);return{frame:S,post:m=>S.contentWindow?.postMessage({...m,channel:T},"*"),accept:m=>m.source===S.contentWindow&&m.origin==="null"&&m.data&&typeof m.data=="object"&&"channel"in m.data&&"type"in m.data&&typeof m.data.type=="string"&&m.data.channel===T?m.data:null}}function Ea(c,p={}){let A=Pe(c,window);p.capabilities=Ne(p.capabilities,A,window);let I=Je(A,[p.locale,...ia()]),h=Ve(A,I);if(Qe.has(document))throw new Error("\u5DF2\u6709\u5F39\u7A97\u6B63\u5728\u5C55\u793A\uFF0C\u8BF7\u5148\u5173\u95ED\u3002");if(!document.body||!["https:","http:"].includes(location.protocol))throw new Error("\u5F39\u7A97\u9700\u8981 HTTP(S) \u9875\u9762\u3002");let z=document.activeElement,T=document.createElement("div");T.dataset.indianaPopup="";let P=T.attachShadow({mode:"open"}),S=document.createElement("style");S.textContent=":host{all:initial;position:fixed!important;inset:0!important;z-index:2147483647!important;font-family:system-ui,sans-serif;pointer-events:none} dialog{pointer-events:auto;box-sizing:border-box;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:14px;background:white;box-shadow:0 24px 80px #0003;overflow:hidden}dialog::backdrop{background:#16142577}button{position:absolute;z-index:1;inset-inline-end:8px;top:8px;width:30px;height:30px;border:1px solid #e5e5eb;border-radius:50%;background:#fff;color:#383344;font-size:20px;line-height:1;cursor:pointer}button:focus-visible{outline:3px solid #635bdf}iframe{display:block;border:0;width:100%;height:100%}";let f=document.createElement("dialog");f.lang=I,f.dir=xt(I)?"rtl":"ltr",f.setAttribute("aria-label",h.name),f.dataset.presentation=h.presentation.type,f.style.width=h.presentation.type==="fullscreen"?"100vw":`${wt[h.presentation.size]}px`,h.presentation.type==="fullscreen"?f.style.cssText+=";max-width:100vw;max-height:100dvh;height:100dvh;margin:0;border-radius:0":h.presentation.type==="sheet"&&(f.style.cssText+=";margin:auto auto 0;max-width:100vw;max-height:100dvh;border-radius:14px 14px 0 0"),f.style.background=h.theme.background;let M=document.createElement("button");M.type="button",M.textContent="\xD7",M.setAttribute("aria-label",It(I));let{frame:R,post:F,accept:B}=Tt("live",h.name,void 0,p.rendererUrl),m=!1,C=!1,D=Z=>{h.presentation.type!=="fullscreen"&&(f.style.height=`min(${Math.max(Z,40)}px, calc(100dvh - ${h.presentation.type==="sheet"?0:32}px))`)};function U(Z){try{Promise.resolve(p.onEvent?.(Z)).catch(O=>K(p.onError,O))}catch(O){K(p.onError,O)}}function de(){return m?!1:(m=!0,ne(),window.removeEventListener("message",se),f.close(),T.remove(),Qe.delete(document),z instanceof HTMLElement&&z.isConnected&&z.focus({preventScroll:!0}),!0)}function H(Z){de()&&U({type:"closed",reason:Z})}function se(Z){let O=m?null:B(Z);if(O){if(O.type==="ready")ne.ready(),F({type:"render",doc:h,locale:I,capabilities:p.capabilities});else if(O.type==="rendered"&&!C)C=!0,ne(),D(O.height),O.label&&f.setAttribute("aria-label",O.label),f.showModal(),M.focus(),U({type:"shown"});else if(O.type==="resize"&&C)D(O.height);else if(O.type==="copy"&&C){let G=ve(h,O.nodeId),E=yt(p.capabilities,O.nodeId);G?.type==="coupon_code"&&E?.code&&navigator.clipboard?.writeText(E.code).catch(()=>{})}else if(O.type==="escape"&&C)H("escape");else if(O.type==="action"&&C&&typeof O.actionId=="string"){let G=h.actions.find(E=>E.id===O.actionId);if(!G)return;if(G.close&&de(),U({type:"action",actionId:G.id,...typeof O.nodeId=="string"&&ve(h,O.nodeId)?{nodeId:O.nodeId}:{},name:G.event,properties:{...G.properties},...O.selection?{selection:Ke(h,O.selection,p.capabilities)}:{}}),G.type==="open_url")try{na(G.url)}catch(E){K(p.onError,E)}G.close&&U({type:"closed",reason:"action"})}}}let ne=Xe(document,Z=>{K(p.onError,Ye(Z)),H("timeout")},R),pe={destroy:()=>H("destroy"),updateCapabilities:Z=>{let O=Ne(Z,h,window);p.capabilities=O,F({type:"capabilities",capabilities:O})}};return ra.set(pe,Z=>{m||F({type:"restore-action-focus",nodeId:Z})}),M.addEventListener("click",()=>H("close_button")),f.addEventListener("cancel",Z=>{Z.preventDefault(),H("escape")}),f.append(M,R),P.append(S,f),window.addEventListener("message",se),Qe.set(document,pe),document.body.append(T),pe}function Aa(c,p={}){let A=(()=>{let _=c.ownerDocument.defaultView;if(!_)throw new Error("Preview container has no browser window");return _})(),I=p.mode??"editor",{frame:h,post:z,accept:T}=Tt(I,p.title??"\u5F39\u7A97\u9884\u89C8",p.editorMessages,p.rendererUrl,c.ownerDocument,p.screenUrl);h.style.cssText="display:block;border:0;width:100%;height:0";let P=!1,S=!1,f=null,M=null,R=!1,F,B,m=new Promise((_,v)=>{F=_,B=v});m.catch(()=>{});let C=Xe(c.ownerDocument,_=>{if(R||S)return;let v=Ye(_);B(v),K(p.onError,v.message),D()},h);function D(){R||(R=!0,C(),P||B(new Error("Web View mount cancelled")),window.removeEventListener("message",fe),P=!1,f=null,M=null,U=null,H=null,se=null,de=void 0,pe.clear(),h.remove(),h.removeAttribute("srcdoc"),h.removeAttribute("src"))}let U=null,de,H=null,se=null,ne="modal",pe=new Set,Z=p.viewportHeight,O=0,G=_=>{O=_;let v=Z,k=v?ne==="fullscreen"?v:Math.max(1,Math.min(_,v-(ne==="sheet"?0:32))):_;h.style.height=`${k}px`,K(p.onResize,k)};function E(_){if(!de)return;let v=kt.safeParse(_);if(!v.success||Object.keys(v.data).some(k=>!de.bindings.some(ae=>ae.key===k))){K(p.onError,"Invalid current-screen answers");return}return v.data}function fe(_){let v=R?null:T(_);if(v)if(v.type==="ready"){if(p.screenUrl){let k=_e.safeParse(v.document);if(!k.success){K(p.onError,"Invalid published screen render"),D();return}H=Pe(k.data,A),h.title=H.name}if(P=!0,C.ready(),F(),se){let[,k,ae]=se;se=null,ue.update(null,k,ae)}f&&z(f),M&&z(M)}else if(v.type==="rendered"||v.type==="resize")G(v.height),v.type==="rendered"&&(S=!0,C(),K(p.onRendered));else if(v.type==="layout"&&I==="editor")Array.isArray(v.nodes)&&v.nodes.length<=(U?Re.nodes:0)&&v.nodes.every(k=>k&&typeof k.id=="string"&&/^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/.test(k.id)&&[k.x,k.y,k.width,k.height].every(ae=>typeof ae=="number"&&Number.isFinite(ae))&&k.width>0&&k.height>0)&&K(p.onLayout,v.nodes);else if(v.type==="page"&&I==="live"&&pe.has(v.pageId))K(p.onPageChange,v.pageId);else if(v.type==="escape"&&I==="live")K(p.onEscape);else if(v.type==="hover")K(p.onHover,v.id);else if(v.type==="select")K(p.onSelect,v.id);else if(v.type==="edit")K(p.onEdit,v.id);else if(v.type==="key"&&I==="editor"){let k=v.key;k&&typeof k.key=="string"&&k.key.length<=16&&(k.phase==="down"||k.phase==="up")&&[k.meta,k.ctrl,k.shift,k.alt].every(ae=>typeof ae=="boolean")&&K(p.onKey,{key:k.key,phase:k.phase,meta:k.meta,ctrl:k.ctrl,shift:k.shift,alt:k.alt})}else if(v.type==="zoom"&&I==="editor"&&typeof v.delta=="number"&&Number.isFinite(v.delta))K(p.onZoom,v.delta);else if(v.type==="customer-data-intent"&&I==="live"&&U){let k=bt.safeParse(v.intent);k.success&&ve(U,k.data.nodeId)?.type==="customer_data"&&K(p.onCustomerDataIntent,k.data)}else if(v.type==="answers"&&I==="live"&&de){let k=E(v.answers);k&&K(p.onAnswers,k)}else if(v.type==="action"&&U?.actions.some(k=>k.id===v.actionId)){let k=E(v.answers);if(de&&!k)return;K(p.onAction,v.actionId,Ke(U,v.selection,f?.type==="render"?f.capabilities:void 0),k)}else v.type==="error"&&K(p.onError,v.message)}window.addEventListener("message",fe),c.append(h);let ue={ready:m,get document(){return U},updateCustomerData(_){if(R||!U)return;let v=We.parse(_),k={nodes:Object.fromEntries(Object.entries(v.nodes).filter(([ae,he])=>{let X=ve(U,ae);return X?.type==="customer_data"&&X.data.source===he.source}))};f?.type==="render"&&(f.customerData=k),P&&z({type:"customer-data",data:k})},updateCapabilities(_){if(R||!U)return;let v=Ne(_,U,A);v&&(f?.type==="render"&&JSON.stringify(f.capabilities)===JSON.stringify(v)||(f?.type==="render"&&(f.capabilities=v),P&&z({type:"capabilities",capabilities:v})))},update(_,v,k){if(R)return;if(p.screenUrl?_!==null:_===null){K(p.onError,"A published screen render takes its document from the frame");return}if(_===null&&!H){se=[null,v,k];return}let ae=_??H,he;try{let X=_?Pe(ae,A):ae,Ae=I==="live"&&!!k?.serverInput,ke=Ae?Je(X,[v]):v,J=Ae?Ve(X,ke):X,ge=k?.serverInput?Et.parse(k.serverInput):void 0;if(ge&&(X.surface!=="paywall"&&X.pages.length!==1||X.actions.some(ce=>ce.type!=="event"&&!(X.surface==="paywall"&&ce.type==="navigate")||ce.close)||ge.bindings.some(ce=>{let Y=ve(X,ce.componentId);return Y?.type!=="stack"||!Y.interaction||!["input","multiselect","select","tabs","toggle"].includes(Y.interaction.type)})))throw new Error("Current Funnel input requires one screen with bound interactive controls and output actions");U=J,de=ge,ne=X.presentation.type,pe=new Set(X.pages.map(ce=>ce.id)),he={type:"render",...p.screenUrl?{}:{doc:J},...ge?{serverInput:ge}:{},locale:ke,parameters:St.parse(k?.parameters??{}),capabilities:Ne(k?.capabilities,X,A),...k?.selection?{selection:k.selection}:{},customerData:k?.customerData?We.parse(k.customerData):void 0},ne==="fullscreen"&&Z&&G(Z)}catch(X){K(p.onError,X instanceof Error?X.message:"\u5185\u5BB9\u4E0D\u6B63\u786E");return}f=he,P&&z(he)},resizeViewport(_){R||!Number.isFinite(_)||_<=0||(Z=_,G(O))},highlight(_,v){R||(M={type:"highlight",hoverId:_,selectedId:v},P&&z(M))},destroy:D};return ue}export{aa as formatCustomerDecimal,ta as hostedRendererScript,ea as hostedScreenScript,Xt as inspectCustomHtml,Aa as mountScreenPreview,Pe as prepareScreen,Yt as sanitizeCustomHtml,Ea as showPopup};
|