@tinkerlandai/indiana-sdk 0.3.1 → 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 +19 -0
- package/README.md +18 -13
- package/README.zh-CN.md +7 -4
- package/THIRD_PARTY_NOTICES.md +27 -0
- 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-QUW4UOKZ.js +4 -0
- package/dist/chunk-RMFH5TWV.js +1 -0
- package/dist/chunk-YNUVRZRQ.js +1 -0
- package/dist/chunk-ZT523F45.js +1 -0
- package/dist/funnel-runtime-host-RZRB2CY6.js +1 -0
- package/dist/{funnel-runtime-start-CQhy2kx1.d.ts → funnel-runtime-start-JHA9ES24.d.ts} +68 -29
- package/dist/index.d.ts +109 -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 +13 -12
- package/dist/page.js +1 -4
- package/dist/{paywall-Y3FIG43H.js → paywall-MYBEOVTQ.js} +1 -1
- package/dist/popup.d.ts +254 -1
- package/dist/popup.js +8 -7
- 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.d.ts +38 -0
- package/dist/visual.js +1 -0
- package/package.json +8 -2
- package/dist/ai-usage-D_mBF5Gp.d.ts +0 -9942
- package/dist/chunk-CRJJ4EA2.js +0 -1
- package/dist/chunk-D37O6FAW.js +0 -11
- package/dist/chunk-G5ZGWOLJ.js +0 -1
- package/dist/chunk-MJG7X7LM.js +0 -17
- package/dist/funnel-runtime-host-X7AGEGHN.js +0 -1
- package/dist/src-RZJKF6LQ.js +0 -1
package/dist/popup.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as V}from"./chunk-6X42DWOM.js";import{a as St}from"./chunk-CRJJ4EA2.js";import{Af as We,Ag as xe,Bg as bt,Cg as Ve,Ef as De,gj as xt,hj as vt,kj as kt,ng as yt,qg as $e,sf as mt,wi as wt,xf as Be,xg as qe,yf as ht,yg as Je}from"./chunk-D37O6FAW.js";import"./chunk-MJG7X7LM.js";function Et(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 Jt from"dompurify";import{parse as Bt,generate as Wt,walk as qt}from"css-tree";function At(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=Bt(c,{onParseError:I=>{throw Object.assign(new Error("CSS \u683C\u5F0F\u4E0D\u6B63\u786E\u3002"),{offset:I.offset})}}),A=0;return qt(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")}),Wt(p)}import{parse as Vt,walk as Kt}from"css-tree";function Zt(c,p,A,I){return{html:ze(c,A,I),css:Ke(p)}}function Ke(c){return At(c)}function ze(c,p,A,I){if(!c.trim())return"";let y=We(c);if(y.length)throw new Error(y[0]);let T=Jt(A),C=T.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(!(C instanceof A.Element))throw new Error("\u65E0\u6CD5\u89E3\u6790 HTML\u3002");if(I){let b=new Set;for(let v of T.removed){let N="element"in v?v.element.nodeName.toLowerCase():void 0,H="attribute"in v?v.attribute?.name:void 0;if(!N&&!H)continue;let F=H?/<[^>]+>/g:new RegExp(`<\\s*${N}\\b[^>]*>`,"gi"),W=[...c.matchAll(F)].find($=>!b.has(`${H??N}:${$.index}`)&&(!H||new RegExp(`\\b${H}\\s*=`,"i").test($[0])));if(!W)continue;let x=W.index;b.add(`${H??N}:${x}`);let L=H==="style"?"\u5185\u8054\u6837\u5F0F\u4E0D\u4FDD\u7559\uFF0C\u8BF7\u5199\u5728 CSS \u4E2D\u3002":H?.startsWith("on")?"\u811A\u672C\u4E8B\u4EF6\u4E0D\u5141\u8BB8\uFF0C\u8BF7\u4F7F\u7528\u52A8\u4F5C\u6309\u94AE\u3002":H==="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:x,to:x+W[0].length,severity:"warning",message:H?`\u5DF2\u79FB\u9664\u5C5E\u6027 ${H}\uFF1A${L}`:`\u5DF2\u79FB\u9664 <${N}>\uFF1A\u8FD9\u4E2A\u6807\u7B7E\u4E0D\u5728\u5141\u8BB8\u7684\u6392\u7248\u6807\u7B7E\u4E2D\u3002`})}}let P=We(C.innerHTML);if(P.length)throw new Error(P[0]);if(C.querySelectorAll("*").length>500)throw new Error("HTML \u6700\u591A\u652F\u6301 500 \u4E2A\u5143\u7D20\u3002");for(let b of C.querySelectorAll("[data-grow-action]")){let v=b.getAttribute("data-grow-action");if(b.tagName!=="BUTTON"||!p.includes(v))throw new Error(`\u81EA\u5B9A\u4E49 HTML \u91CC\u7684\u6309\u94AE ${v.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(!C.textContent?.trim()&&!C.querySelector("img"))throw new Error("\u81EA\u5B9A\u4E49 HTML \u6E05\u6D17\u540E\u6CA1\u6709\u53EF\u663E\u793A\u7684\u5185\u5BB9\u3002");return C.innerHTML}var It=2e3,Lt=1e4,Dt=new WeakMap;function Nt(c,p,A){let I=A.document;if(!I)throw new Error("A content document is required");let y=Dt.get(A)??new Map;Dt.set(A,y);let T=(b,v)=>{let N=y.get(b);if(N!==void 0)return N;let H=v();y.set(b,H);let F=[...y.keys()].reduce((W,x)=>W+x.length,0);for(;y.size>64||F>256e3;){let W=y.keys().next().value;y.delete(W),F-=W.length}return H},C=b=>T(`html:${b}`,()=>{let v=I.createElement("div");return v.innerHTML=b,v.querySelectorAll("*").length}),P=b=>T(`css:${b}`,()=>{let v=0;return b.trim()&&Kt(Vt(b),()=>{v++}),v});for(let b of c.pages){let v=0,N=0,H=F=>{if(F.hidden||(F.type==="stack"&&F.children.forEach(H),F.type!=="custom_html"))return;let W=p?.nodes[F.id],x=[...Object.values(F.html),W?.base.html??"",...Object.values(W?.byPlan??{}).map(L=>L.html??"")];if(v+=Math.max(0,...x.map(C)),N+=P(F.css),v>It)throw new Error(`Page custom HTML exceeds ${It} elements`);if(N>Lt)throw new Error(`Page custom CSS exceeds ${Lt} syntax nodes`)};H(b.root)}}function Gt(c,p,A,I){let y=[],T="",C="";for(let P of["html","css"])try{P==="html"?T=ze(c,A,I,y):C=Ke(p)}catch(b){let v=P==="html"?c:p,N=P==="html"?/\{\{|data-grow-action/:/@import\b|url\s*\(|image-set\s*\(|[\\<]/i,H=b instanceof Error?b.message:"\u5185\u5BB9\u65E0\u6CD5\u89E3\u6790",F=P==="html"?H.match(/未知变量:(.+)/)?.[1]:void 0,W=F?v.indexOf(F):-1,x=typeof b=="object"&&b!==null&&"offset"in b&&typeof b.offset=="number"?b.offset:W>=0?v.lastIndexOf("{{",W):v.search(N);y.push({language:P,from:Math.max(0,x),to:Math.min(v.length,Math.max(0,x)+2),severity:"error",message:H})}return{html:T,css:C,diagnostics:y,valid:!y.some(P=>P.severity==="error")}}function Re(c,p,A){if(!c)return;let I={},y=p.actions.map(C=>C.id);for(let[C,P]of Object.entries(c.nodes)){let b=v=>{if(v.html===void 0)return v;if(xe(p,C)?.type!=="custom_html")throw new Error("HTML \u5546\u54C1\u6570\u636E\u53EA\u80FD\u7528\u4E8E\u81EA\u5B9A\u4E49 HTML \u7EC4\u4EF6");return{...v,html:ze(v.html,y,A)}};I[C]={...P,base:b(P.base),...P.byPlan?{byPlan:Object.fromEntries(Object.entries(P.byPlan).map(([v,N])=>[v,b(N)]))}:{}}}let T={...c,nodes:I};return Nt(p,T,A),T}var Rt=new WeakMap;function Ne(c,p){let A=$e.parse(c),I=JSON.stringify(A),y=Rt.get(p);y||(y=new Map,Rt.set(p,y));let T=Date.now();for(let[x,L]of y)L.expires<=T&&y.delete(x);let C=y.get(I);if(C)return y.delete(I),y.set(I,C),JSON.parse(C.json);let P=A.actions.map(x=>x.id),b=x=>{if(x.type==="stack")return{...x,children:x.children.map(b)};if(x.type!=="custom_html")return x;let L={};for(let[$,te]of Object.entries(x.html))L[$]=ze(te,P,p);return{...x,html:L,css:Ke(x.css)}},v={...A,pages:A.pages.map(x=>({...x,root:b(x.root)}))};Nt(v,void 0,p);let N=JSON.stringify(v),H=new TextEncoder,F=H.encode(N).length;if(F>De.documentBytes)throw new Error(`\u754C\u9762\u5185\u5BB9\u8FC7\u5927\uFF08\u4E0A\u9650 ${De.documentBytes/1e3} KB\uFF09\u3002`);let W=H.encode(I).length;if(W<=De.documentBytes){y.set(I,{json:N,bytes:W+F,expires:T+6e4});let x=[...y.values()].reduce((L,$)=>L+$.bytes,0);for(;y.size>16||x>2*1024*1024;){let[L,$]=y.entries().next().value;y.delete(L),x-=$.bytes}}return v}function Ze(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),h=d.interaction;if(p(d)){let o=r[d.interaction.pickerId]??={ids:[],defaults:[],remembered:[]},f=t.pickers[d.interaction.pickerId]?.options??[];for(let w of u){let z=w.type==="stack"?w.bind?.plan:void 0;z&&f.includes(z)&&!o.ids.includes(z)&&o.ids.push(z),z&&w.id===a[d.id]&&o.remembered.push(z)}let m=d.children[d.interaction.defaultIndex];m?.type==="stack"&&!m.hidden&&m.bind?.plan&&o.defaults.push(m.bind.plan)}if(h?.type==="tabs"){let o=u.find(f=>f.id===a[d.id])??d.children[h.defaultIndex];o&&i(o)}else if(h?.type==="toggle"){let o=typeof a[d.id]=="boolean"?a[d.id]:h.defaultEnabled,f=d.children[o?0:1];f&&i(f)}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 h=a[d],o=u.remembered[0]??(u.ids.includes(t.pickers[d]?.selected??"")?t.pickers[d]?.selected:u.defaults[0]);l[d]=typeof h=="string"?u.ids.includes(h)?h:"":o&&u.ids.includes(o)?o:""}for(let d of Object.keys(A(e)))l[d]??="";return l}let y=window;for(let e=0;e<c.hostDepth;e++)y=y.parent;let T=window,C={none:0,xs:4,sm:8,md:12,lg:20,xl:32},P={none:0,sm:4,md:8,lg:14,full:9999},b={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"},v={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"},N={start:"flex-start",center:"center",end:"flex-end",between:"space-between"},H={start:"start",center:"center",end:"end",between:"stretch"},F={start:"start",center:"center",end:"end",stretch:"stretch"},W={"1:1":"1 / 1","4:3":"4 / 3","16:9":"16 / 9","3:1":"3 / 1"},x=`
|
|
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}
|
|
@@ -12,7 +12,8 @@ body{font-family:var(--g-font);color:var(--g-text);-webkit-font-smoothing:antial
|
|
|
12
12
|
.g-v{flex-direction:column}
|
|
13
13
|
.g-h{flex-direction:row;flex-wrap:wrap}
|
|
14
14
|
.g-o{display:grid;grid-template-columns:minmax(0,1fr)}
|
|
15
|
-
.
|
|
15
|
+
/* Each authored overlay layer paints as a unit in document order. */
|
|
16
|
+
.g-o>*{grid-area:1/1;min-width:0;isolation:isolate}
|
|
16
17
|
.g-text{margin:0;white-space:pre-line;overflow-wrap:anywhere;min-width:0}
|
|
17
18
|
.g-title{font-size:26px;line-height:1.2;font-weight:700;letter-spacing:-.01em}
|
|
18
19
|
.g-heading{font-size:20px;line-height:1.3;font-weight:650}
|
|
@@ -167,7 +168,7 @@ body{font-family:var(--g-font);color:var(--g-text);-webkit-font-smoothing:antial
|
|
|
167
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}}
|
|
168
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}}
|
|
169
170
|
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
|
|
170
|
-
`,L=null,$,te=new Set,j,ee,se=new Map,pe=new Map,le,X={},M=null,E=Object.create(null),ne=Object.create(null),ue=Object.create(null),R="",k=!1,S=-1,ae=!1,me="",Z=null,Ee=null,ve=null,q=document.createElement("div");q.id="g-card";let ge=document.createElement("div"),de=document.createElement("div");ge.className=de.className="g-box",de.dataset.kind="select",ge.append(document.createElement("span")),de.append(document.createElement("span"));function K(e){let a={...e,channel:c.channel};try{y.postMessage(a,c.parentOrigin)}catch{}}function He(e){let a=parseInt(e.slice(1),16);return[a>>16&255,a>>8&255,a&255]}function _e(e,a,t){let r=He(e),i=He(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]=He(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 Ae(e){return typeof e!="string"?"":e.startsWith("#")?e:`var(--g-${e==="background"?"bg":e})`}function Mt(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",_e(a.text,a.background,.62)),t.setProperty("--g-surface",_e(a.text,a.background,.05)),t.setProperty("--g-border",_e(a.text,a.background,.16)),t.setProperty("--g-focus",_e(a.primary,a.background,.45)),t.setProperty("--g-radius",`${P[a.radius]??8}px`),t.setProperty("--g-font",b[a.font]??b.system),t.setProperty("--g-edit","#2C3C96")}function J(e){let a=L?.strings.locales[R]?.[e];return a&&a.trim()?{value:a,missing:!1}:{value:L?.strings.locales[L.strings.defaultLocale]?.[e]??"",missing:!0}}function he(e){let a=j?.nodes[e];if(!a)return;let t=a.picker?E[a.picker]??j?.pickers[a.picker]?.selected:void 0;if(!(a.picker&&t===""))return typeof t=="string"?a.byPlan?.[t]??a.base:a.base}function Xe(){return{...L?.surface==="paywall"&&M?{__page:M}:{},...Object.fromEntries(Object.entries(E).filter(e=>!Array.isArray(e[1])))}}function Ie(e,a,t){let r=he(e.id),i=r?.[a],s=i!==void 0?{value:i,missing:!!r?.missing?.length}:J(t);if(c.mode==="live"&&$){let n=!1,l=s.value.replace(/\{\{\s*(input|params)\.([a-zA-Z][a-zA-Z0-9_.-]{0,63})\s*\}\}/g,(d,u,h)=>{let o=u==="params"?X[h]:$?.answers[h];return o==null||o===""||Array.isArray(o)&&!o.length?(n=!0,""):Array.isArray(o)?o.join(", "):String(o)});if(n)return{value:e.fallback?J(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?J(e.fallback).value:"",missing:!0}:{value:s.value,missing:s.missing||s.value.includes("{{")}}function Tt(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 $t(e,a){if(a.type==="color")e.background="none",e.backgroundColor=Ae(a.color);else if(a.type==="linear"){let t=a.stops.map(r=>`${Ae(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 Qe(e){return`${Number(e.top)}px ${Number(e.right)}px ${Number(e.bottom)}px ${Number(e.left)}px`}function et(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 Le(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",b[String(i.font)]??b.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",b[String(i.font)]??b.system),typeof i.weight=="number"&&s.setProperty("--g-data-number-weight",String(i.weight))),a.type==="customer_data"&&i.color){let u=Ae(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=Qe(r.padding)),r.margin&&(s.margin=Qe(r.margin)),typeof r.gap=="number"&&a.type==="stack"&&(s.gap=`${r.gap}px`),r.background&&$t(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"} ${Ae(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 ${Ae(d.color)}`),["text","button","price","coupon_code","countdown","plan_picker"].includes(a.type)&&(i.font&&(s.fontFamily=b[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=Ae(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))),et(e,r.width,"width",t,i.align),et(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 Pe(e,a){if($){let t=$.bindings.find(r=>r.componentId===e);if(!t)return;$.answers[t.key]=a,te.add(e),K({type:"answers",answers:tt()});return}}function tt(){let e={};for(let a of $?.bindings??[]){let t=E[a.componentId];t!==void 0&&(e[a.key]=t)}return e}function zt(e){let a=document.createElement("section");a.className="g-data",a.dataset.layout=e.data.layout,a.dataset.source=e.data.source;let t=ee?.nodes[e.id];a.dataset.status=t?.status??"idle",a.dataset.preview=String(!!t?.preview);let r=t?.status==="loading",i=R.startsWith("zh"),s=(g,D)=>i?g:D;a.setAttribute("aria-busy",String(!!r));let n=(g,D,G)=>{let _=document.createElement(g);return _.className=D,G!==void 0&&(_.textContent=G),_},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 G={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 G[g]){let B=document.createElementNS("http://www.w3.org/2000/svg","path");B.setAttribute("d",_),D.append(B)}return D},d=(g,D,G,_=!1,B=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}:${B}:${G??""}`,re.addEventListener("click",ce=>{!ce.isTrusted||re.disabled||r||K({type:"customer-data-intent",intent:{nodeId:e.id,action:D,...G?{value:G}:{}}})}),re},u=n("div","g-data-header"),h=n("h2","g-data-heading",J(e.title).value);h.id=`g-data-title-${e.id}`,a.setAttribute("aria-labelledby",h.id);let o=n("div","g-data-controls"),f=[],m=g=>{g.hidden||(g.type==="customer_data"&&f.push(g),g.type==="stack"&&g.children.forEach(m))},w=L?.pages[0];w&&m(w.root);let z=f.every(g=>ee?.nodes[g.id]?.preview),U=f.find(g=>g.data.source==="credit_balance")??f[0];t?.preview&&(!z||U?.id===e.id)&&o.append(n("span","g-data-preview",s("\u793A\u4F8B\u6570\u636E","Sample data")));let O=r?s("\u66F4\u65B0\u4E2D\u2026","Updating\u2026"):s("\u5237\u65B0","Refresh"),Q=d(O,"refresh");if(Q.replaceChildren(l("refresh")),Q.setAttribute("aria-label",O),Q.title=O,Q.classList.add("g-data-refresh"),r&&Q.classList.add("g-data-refreshing"),o.append(Q),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"&&(h.prepend(l("credit")),t?.resources.length===1&&h.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(R,{timeStyle:"short"}).format(new Date(t.updatedAt))}`);g.dateTime=t.updatedAt,g.title=new Intl.DateTimeFormat(R,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t.updatedAt)),o.prepend(g)}if(u.append(h,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 G=n("h3","g-data-row-label",g.title);G.tabIndex=-1,D.append(G);let _=n("dl","g-data-facts");for(let re of g.facts){let ce=n("div","");ce.append(n("dt","",re.label),n("dd","",re.value)),_.append(ce)}D.append(_,n("p","g-data-note",g.note));let B=n("div","g-data-controls");B.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(B),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 G=Math.min(e.data.pageSize,e.data.layout==="compact"?2:4);for(let _=0;_<G;_++){let B=n("div","g-data-skeleton-row");B.append(n("span","g-data-skeleton-line"),n("span","g-data-skeleton-line")),g.append(B)}}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 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","\u53EF\u7528","Available"],["redeemed","\u5DF2\u4F7F\u7528","Redeemed"],["expired","\u5DF2\u5230\u671F","Expired"],["revoked","\u5DF2\u64A4\u9500","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[D,G,_]of ie[e.data.source]){let B=document.createElement("option");B.value=D,B.textContent=s(G,_),g.append(B)}g.value=t.filter,g.addEventListener("change",()=>{!g.disabled&&c.mode==="live"&&K({type:"customer-data-intent",intent:{nodeId:e.id,action:"filter",value:g.value}})}),o.prepend(g)}let ut=(g,D=!1)=>{let G=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 B=n("li","g-data-row"),re=n("div","g-data-row-main"),ce=n("div","g-data-row-copy");ce.append(n("p","g-data-row-label",_.label));for(let Y of _.detail)Y!==_.status&&ce.append(n("div","g-data-row-detail",Y));if(e.data.source==="credit_transactions"&&!D){let Y=n("span","g-data-row-mark");Y.append(l(["Refund","\u9000\u56DE"].includes(_.status??"")?"up":"down")),re.append(Y)}if(re.append(ce),B.append(re),_.status?B.append(n("div","g-data-row-status",_.status)):B.classList.add("g-data-row-no-status"),_.value?B.append(n("div","g-data-row-value",_.value)):B.classList.add("g-data-row-no-value"),_.facts.length||_.purchaseId||_.membershipActions?.length||_.billingActions?.length){let Y=n("div","g-data-row-extra"),fe=n("div","g-data-facts"),we=(oe,Te)=>{for(let gt of oe){let ft=n("span","",gt.label);ft.append(n("strong","",gt.value)),Te.append(ft)}};if(we(_.facts.slice(0,3),fe),_.facts.length>3){let oe=n("details","g-data-sources");oe.dataset.gDataSources=`facts:${_.id}`,oe.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 Te=n("div","g-data-facts");we(_.facts.slice(3),Te),oe.append(Te),fe.append(oe)}if(Y.append(fe),!D)for(let oe of _.billingActions??[])Y.append(d(oe.label,oe.action,_.id,!!t.billingBusy));if(_.purchaseId&&e.data.allowPurchase&&!D){let oe=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);oe.classList.add("g-data-buy"),Y.append(oe)}if(e.data.allowPurchase&&!D)for(let oe of _.membershipActions??[])Y.append(d(oe.label,"membership_preview",oe.value,!!t.preview||!!t.membershipBusy||!!t.membershipReview));B.append(Y)}G.append(B)}return G};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 G=n("div","g-data-balance"),_=new Intl.NumberFormat(R).formatToParts(1.1).find(Y=>Y.type==="decimal")?.value??".",B=g.spendable.lastIndexOf(_),re=n("strong","g-data-number",B<0?g.spendable:g.spendable.slice(0,B));B>=0&&re.append(n("span","g-data-fraction",g.spendable.slice(B))),G.append(re,n("span","g-data-unit",s("\u53EF\u7528\u79EF\u5206","Spendable credits"))),D.append(G);let ce=n("div","g-data-facts");for(let[Y,fe]of[[s("\u4F59\u989D","Balance"),g.available],[s("\u51BB\u7ED3","Reserved"),g.reserved]]){let we=n("span","",Y);we.append(n("strong","",fe)),ce.append(we)}if(g.expiry&&ce.append(n("span","g-data-expiry",`${s("\u6700\u8FD1\u5230\u671F","Next expiry")} \xB7 ${g.expiry}`)),D.append(ce),e.data.showSources&&g.sourceCount){let Y=n("details","g-data-sources");if(Y.dataset.gDataSources=g.key,Y.append(n("summary","",`${s("\u79EF\u5206\u6765\u6E90","Credit sources")} \xB7 ${g.sourceCount}`),ut(g.sources,!0)),Y.querySelector("summary")?.append(l("chevron")),g.hasNextSources||g.hasPreviousSources){let fe=n("div","g-data-footer");fe.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)),fe.append(we),Y.append(fe)}D.append(Y)}a.append(D)}if(t.rows.length&&a.append(ut(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(R,{dateStyle:"medium",timeStyle:"short"}).format(new Date(t.updatedAt))}`)),a}let ke=new Map,Oe=new Map,at=e=>{let a=e.target;for(let t of ke.keys())a&&!Se(t)?.contains(a)&&ke.delete(t)};document.addEventListener("focusin",at),document.addEventListener("pointerdown",at);function Ht(e){let a=ee;if(ee=e,!L)return;let t=(i,s)=>{if(i.type==="stack"){i.children.forEach(w=>t(w,i));return}if(i.type!=="customer_data"||JSON.stringify(a?.nodes[i.id])===JSON.stringify(e.nodes[i.id]))return;let n=Se(i.id);if(!n)return;let l=document.activeElement;l&&n.contains(l)&&l.dataset.gDataFocus&&ke.set(i.id,l.dataset.gDataFocus);let d=new Set([...n.querySelectorAll("details[data-g-data-sources]")].filter(w=>w.open).map(w=>w.dataset.gDataSources)),u=Ce(i,s);if(!u)return;for(let w of u.querySelectorAll("details[data-g-data-sources]"))w.open=d.has(w.dataset.gDataSources);let h=n.scrollTop;n.replaceWith(u),u.scrollTop=h;let o=!!e.nodes[i.id]?.membershipReview&&!a?.nodes[i.id]?.membershipReview,f=!e.nodes[i.id]?.membershipReview&&!!a?.nodes[i.id]?.membershipReview;o&&ke.get(i.id)&&Oe.set(i.id,ke.get(i.id));let m=f?Oe.get(i.id):ke.get(i.id);m&&[...u.querySelectorAll("[data-g-data-focus]")].find(w=>w.dataset.gDataFocus===m)?.focus({preventScroll:!0}),o&&u.querySelector("[data-g-data-review] h3")?.focus({preventScroll:!0}),f&&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=L.pages.find(i=>i.id===M)??L.pages[0];t(r.root,null),be()}function Ce(e,a){if(e.hidden)return null;let t;if(e.type==="customer_data")t=zt(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=H[e.justify]??"stretch"):(t.style.alignItems=v[e.align]??"stretch",t.style.justifyContent=N[e.justify]??"flex-start");for(let r of e.children){let i=Ce(r,e);i&&t.append(i)}if(e.interaction&&Ot(t,e),e.purchaseAction&&c.mode==="live"){let r=j?.nodes[e.id],i=r?.picker;i&&(t.disabled=!j?.pickers[i]?.options.includes(String(E[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=Ie(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=Ie(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=j?.nodes[e.id]?.picker;if(i&&c.mode==="live"){let s=i,n=j?.pickers[s],l=E[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",W[e.aspect]&&(t.dataset.aspect=e.aspect,t.style.aspectRatio=W[e.aspect]);let r=document.createElement("img");r.src=e.localizedSrc?.[R]??e.localizedSrc?.[L.strings.defaultLocale]??e.src,r.alt=Ie(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??J(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]&&Le(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=J(e.label).value,s.addEventListener("click",n=>{c.mode!=="editor"&&(n.stopPropagation(),K({type:"copy",nodeId:e.id}))}),t.append(i,s)}else t.textContent=r?.text??J(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??J(e.fallback).value;return}let n=Math.max(0,Math.ceil((i-Date.now())/1e3));if(!n){t.textContent=J(e.expired).value;let u=se.get(e.id);u!==void 0&&clearInterval(u),se.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(R,{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()&&se.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",J(e.label).value),t.style.cssText="display:flex;flex-direction:column;gap:8px";let r=j?.pickers[e.id],i=e.grouping;if(!r?.options.length)E[e.id]="",t.textContent=J(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 U=i.assignments.find(O=>O.productVersionId===s);n={period:U?.period??"month",tierId:U?.tierId??i.tiers[0].id},ue[e.id]=n}let o=i.assignments.find(U=>U.tierId===n.tierId&&U.period===n.period);s=o&&r.options.includes(o.productVersionId)?o.productVersionId:"";let f=document.createElement("div");f.setAttribute("role","radiogroup"),f.setAttribute("aria-label",`${J(i.monthLabel).value} / ${J(i.yearLabel).value}`),f.style.cssText="display:flex;gap:4px;padding:4px;border:1px solid var(--g-border);border-radius:10px";let m=["month","year"],w=m.filter(U=>i.assignments.some(O=>O.period===U&&r.options.includes(O.productVersionId))),z=U=>{n.period=U;let O=i.assignments.find(Q=>Q.tierId===n.tierId&&Q.period===U);E[e.id]=O&&r.options.includes(O.productVersionId)?O.productVersionId:"",ye(),Se(e.id)?.querySelector(`[data-product-period="${U}"]`)?.focus()};for(let U of m){let O=document.createElement("button");O.type="button",O.className=`g-btn g-btn-${U===n.period?"primary":"secondary"}`,O.style.cssText="flex:1;min-width:0;min-height:40px",O.dataset.productPeriod=U,O.setAttribute("role","radio"),O.setAttribute("aria-checked",String(U===n.period)),O.textContent=J(U==="month"?i.monthLabel:i.yearLabel).value,O.disabled=!w.includes(U),O.tabIndex=c.mode==="editor"||O.disabled?-1:U===n.period||!w.includes(n.period)&&U===w[0]?0:-1,O.addEventListener("click",Q=>{c.mode!=="editor"&&(Q.stopPropagation(),z(U))}),O.addEventListener("keydown",Q=>{if(c.mode==="editor"||!w.length)return;let ie;["ArrowRight","ArrowDown"].includes(Q.key)?ie=(w.indexOf(U)+1)%w.length:["ArrowLeft","ArrowUp"].includes(Q.key)?ie=(w.indexOf(U)-1+w.length)%w.length:Q.key==="Home"?ie=0:Q.key==="End"&&(ie=w.length-1),ie!==void 0&&(Q.preventDefault(),z(w[ie]))}),f.append(O)}t.append(f)}E[e.id]=s??"";let l=i?i.tiers.map(o=>({tier:o,id:i.assignments.find(f=>f.tierId===o.id&&f.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",J(e.label).value),u.style.cssText="display:flex;flex-direction:column;gap:8px",t.append(u));let h=o=>{!o.id||!r.options.includes(o.id)||(i&&o.tier&&(n.tierId=o.tier.id),E[e.id]=o.id,ye(),Se(e.id)?.querySelector(`[data-plan-id="${o.id}"]`)?.focus())};for(let o of l){let f=o.id?j.plans[o.id]:void 0,m=!!f&&r.options.includes(o.id),w=document.createElement("button");w.type="button",w.className="g-btn g-btn-secondary",w.style.cssText="width:100%;text-align:start;min-height:44px",w.setAttribute("role","radio");let z=i?o.tier?.id===n.tierId:o.id===s;w.setAttribute("aria-checked",String(z)),w.disabled=!m,w.tabIndex=c.mode==="editor"||!m?-1:z||!s&&o===d[0]?0:-1,o.id&&(w.dataset.planId=o.id),o.tier&&(w.dataset.productTier=o.tier.id);let U=o.id?j.nodes[e.id]?.byPlan?.[o.id]?.price:void 0;w.textContent=m?`${o.tier?.name??f.name} \xB7 ${U?.current??f.price}${U?.period??f.period}`:`${o.tier?.name??""} \xB7 ${J(i?.unavailableLabel??e.fallback).value}`,z&&(w.style.borderColor="var(--g-primary)",w.style.boxShadow="inset 0 0 0 1px var(--g-primary)",e.states?.selected&&Le(w,{type:"text",id:e.id,text:e.label,variant:"body",style:e.states.selected},null)),w.addEventListener("click",O=>{c.mode==="editor"||!m||(O.stopPropagation(),h(o))}),w.addEventListener("keydown",O=>{if(c.mode==="editor"||!d.length)return;let Q=d.indexOf(o),ie;["ArrowRight","ArrowDown"].includes(O.key)?ie=(Q+1)%d.length:["ArrowLeft","ArrowUp"].includes(O.key)?ie=(Q-1+d.length)%d.length:O.key==="Home"?ie=0:O.key==="End"&&(ie=d.length-1),ie!==void 0&&(O.preventDefault(),h(d[ie]))}),u.append(w)}if(i&&!s){let o=document.createElement("p");o.setAttribute("role","status"),o.textContent=J(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=`${C[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[R],s=i&&i.trim()?i:e.html[L?.strings.defaultLocale??""]??"",n=he(e.id);n?.html!==void 0?s=n.html:s.includes("{{")&&c.mode==="live"&&(s=J(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 h of u.querySelectorAll("img"))h.addEventListener("load",be)}else return null;return e.style&&Le(t,e,a),t.dataset.gNode=e.id,t.dataset.gLabel=Tt(e),t}function Ot(e,a){let t=a.interaction,r=[...e.children];e.setAttribute("aria-label",J(t.label).value);let i=$?.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=J(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",J(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,Pe(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,h)=>{let o=l.has(n[h].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,h)=>{u.setAttribute("role","checkbox"),u.tabIndex=0,u.setAttribute("aria-label",u.textContent?.trim()||String(h+1)),u.style.cursor="pointer";let o=()=>{let f=n[h].id;if(l.has(f))l.delete(f);else if(l.size<t.max)l.add(f);else return;let m=n.filter(w=>l.has(w.id)).map(w=>w.id);E[a.id]=m,d(),Pe(a.id,m)};u.addEventListener("click",f=>{f.stopPropagation(),o()}),u.addEventListener("keydown",f=>{[" ","Enter"].includes(f.key)&&(f.preventDefault(),f.stopPropagation(),o())})}),d();return}if(t.type==="select"){e.setAttribute("role","radiogroup");let n=a.children.filter(h=>!h.hidden),l=p(a)?a.interaction.pickerId:void 0,d=n.findIndex(h=>l?h.type==="stack"&&h.bind?.plan===E[l]:h.id===E[a.id]);!l&&d<0&&!s?.required&&(d=Math.min(t.defaultIndex,r.length-1));let u=(h,o=!1,f=!0)=>{if(l&&f&&h>=0){let m=n[h],w=m.type==="stack"?m.bind?.plan:void 0;if(!w||!j?.pickers[l]?.options.includes(w))return;E[a.id]=m.id,E[l]=w,ye(),o&&q.querySelector(`[data-g-node="${m.id}"]`)?.focus({preventScroll:!0});return}d=h,h>=0&&(E[a.id]=n[h].id),f&&h>=0&&Pe(a.id,n[h].id),r.forEach((m,w)=>{m.setAttribute("aria-checked",String(w===h)),m.tabIndex=w===(h<0?0:h)?0:-1,m.style.cssText="";let z=n[w];z.type==="stack"&&(m.style.alignItems=v[z.align]??"stretch",m.style.justifyContent=N[z.justify]??"flex-start"),z.style&&Le(m,z,a),w===h&&(t.selectedStyle&&Le(m,{...z,style:t.selectedStyle},a),z.type==="stack"&&z.states?.selected&&Le(m,{...z,style:z.states.selected},a),!t.selectedStyle?.border&&!(z.type==="stack"&&z.states?.selected?.border)&&(m.style.outline="2px solid var(--g-primary)",m.style.outlineOffset="-2px")),m.style.cursor="pointer"}),o&&h>=0&&r[h].focus()};r.forEach((h,o)=>{if(h.setAttribute("role","radio"),l){let f=n[o],m=f.type==="stack"?f.bind?.plan:void 0;h.setAttribute("aria-disabled",String(!m||!j?.pickers[l]?.options.includes(m)))}h.setAttribute("aria-label",h.textContent?.trim()||String(o+1)),h.addEventListener("click",f=>{f.stopPropagation(),u(o)}),h.addEventListener("keydown",f=>{let m=f.key;if(!["ArrowRight","ArrowLeft","ArrowDown","ArrowUp","Home","End"," ","Enter"].includes(m))return;f.preventDefault(),f.stopPropagation();let w=d<0?o:d;u(m==="Home"?0:m==="End"?r.length-1:m==="ArrowRight"||m==="ArrowDown"?(w+1)%r.length:m==="ArrowLeft"||m==="ArrowUp"?(w+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",J(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,f)=>{let m=document.createElement("button");return m.type="button",m.setAttribute("role","tab"),m.textContent=je(n[f])||String(f+1),m.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[f].id}`,o.setAttribute("role","tabpanel"),m.setAttribute("aria-controls",o.id),l.append(m),m}),u=(o,f=!1,m=!1)=>{if(E[a.id]=n[o].id,m&&L&&Object.keys(A(L)).length){for(let w of Object.keys(A(L)))delete E[w];ye(),f&&q.querySelector(`[data-g-node="${a.id}"] [role="tab"][aria-selected="true"]`)?.focus({preventScroll:!0});return}r.forEach((w,z)=>{w.hidden=z!==o,d[z].setAttribute("aria-selected",String(z===o)),d[z].tabIndex=z===o?0:-1,d[z].style.background=z===o?"var(--g-primary)":"transparent",d[z].style.color=z===o?"var(--g-on-primary)":"var(--g-text)"}),f&&d[o].focus(),be()};d.forEach((o,f)=>{o.addEventListener("click",m=>{m.stopPropagation(),u(f,!1,!0)}),o.addEventListener("keydown",m=>{["ArrowLeft","ArrowRight","Home","End"].includes(m.key)&&(m.preventDefault(),m.stopPropagation(),u(m.key==="Home"?0:m.key==="End"?r.length-1:(f+(m.key==="ArrowRight"?1:r.length-1))%r.length,!0,!0))})}),e.prepend(l);let h=n.findIndex(o=>o.id===E[a.id]);u(h>=0?h: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=J(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 h=(o,f=!1)=>{if(E[a.id]=o,f&&L&&Object.keys(A(L)).length){for(let m of Object.keys(A(L)))delete E[m];ye(),q.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((m,w)=>m.hidden=w!==(o?0:1)),be()};n.addEventListener("click",o=>{o.stopPropagation(),h(!E[a.id],!0),Pe(a.id,!!E[a.id])}),e.prepend(n),h(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"),h=R.startsWith("zh");l.textContent="\u2190",d.textContent="\u2192",l.setAttribute("aria-label",h?"\u4E0A\u4E00\u6761\u8BC4\u4EF7":"Previous review"),d.setAttribute("aria-label",h?"\u4E0B\u4E00\u6761\u8BC4\u4EF7":"Next review");for(let f of[l,d])f.type="button",f.className="g-btn g-btn-secondary",f.style.color="var(--g-text)";u.setAttribute("aria-live","polite");let o=f=>{ne[a.id]=f,r.forEach((m,w)=>m.hidden=w!==f),u.textContent=`${f+1} / ${r.length}`,be()};l.addEventListener("click",f=>{f.stopPropagation(),o((ne[a.id]+r.length-1)%r.length)}),d.addEventListener("click",f=>{f.stopPropagation(),o((ne[a.id]+1)%r.length)}),n.append(l,u,d),e.append(n),o(ne[a.id]??0)}}}function je(e){if(e.hidden)return"";if(e.type==="text"&&(e.variant==="title"||e.variant==="heading"))return J(e.text).value;if(e.type==="stack")for(let a of e.children){let t=je(a);if(t)return t}return""}function rt(e){return e.type==="stack"&&!e.interaction&&!e.purchaseAction}function nt(e){let a=[],t=r=>{let i=j?.nodes[r.id];if(a.push(r.id,he(r.id)),i?.picker&&a.push(E[i.picker],j?.pickers[i.picker]),r.type==="text")a.push(Ie(r,"text",r.text));else if(r.type==="button")a.push(Ie(r,"label",r.label));else if(r.type==="image")a.push(Ie(r,"alt",r.alt));else if(r.type==="custom_html")a.push(X,$?.answers);else if(r.type==="customer_data")a.push(ee?.nodes[r.id]);else if(r.type==="plan_picker"){let s=j?.pickers[r.id];a.push(E[r.id],ue[r.id],s,i,s?.options.map(n=>j?.plans[n]))}else r.type==="stack"&&(r.interaction?.type!=="input"&&a.push(E[r.id],ne[r.id]),p(r)&&a.push(E[r.interaction.pickerId],j?.pickers[r.interaction.pickerId]),r.children.forEach(t))};return t(e),JSON.stringify(a)}function it(e){e.hidden||(rt(e)?e.children.forEach(it):pe.set(e.id,nt(e)))}function st(e){let a=se.get(e.id);a!==void 0&&clearInterval(a),se.delete(e.id),e.type==="stack"&&e.children.forEach(st)}function ot(e,a){if(e.hidden)return;if(rt(e)){e.children.forEach(i=>ot(i,e));return}if(pe.get(e.id)===nt(e))return;let t=Se(e.id);if(!t)return;st(e);let r=Ce(e,a);r&&t.replaceWith(r)}function jt(){let e=document.activeElement;if(!(e instanceof HTMLElement)||!q.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 Ft(e){if(!e||e.active.isConnected)return;let a=Se(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(!L)return;let a=e?void 0:jt(),t=L.pages.find(s=>s.id===(M??L.initialPageId))??L.pages[0];M=t.id,j&&Object.assign(E,I({...L,pages:[t]},Xe(),j));let r=s=>{if(s.type==="stack"&&s.children.forEach(r),s.type!=="plan_picker"||!s.grouping)return;let n=s.grouping,l=j?.pickers[s.id],d=ue[s.id];if(!d){let h=n.assignments.find(o=>o.productVersionId===(E[s.id]??l?.selected));d={period:h?.period??"month",tierId:h?.tierId??n.tiers[0].id},ue[s.id]=d}let u=n.assignments.find(h=>h.tierId===d.tierId&&h.period===d.period);E[s.id]=u&&l?.options.includes(u.productVersionId)?u.productVersionId:""};if(r(t.root),e||le!==t){se.forEach(l=>clearInterval(l)),se.clear(),pe.clear(),q.style.cssText="",Mt(t.theme?{...L,theme:t.theme}:L);let s=R.split("-")[0];document.documentElement.lang=R,document.documentElement.dir=["ar","he","fa","ur"].includes(s)?"rtl":"ltr",q.dataset.gPresentation=L.presentation.type;let n=Ce(t.root,null);q.replaceChildren(...n?[n]:[]),le=t}else ot(t.root,null);it(t.root),Ft(a),q.dataset.gPage=t.id,c.mode==="live"&&K({type:"page",pageId:t.id}),Ue(),Fe();let i=Math.ceil(q.getBoundingClientRect().height);k?be():(k=!0,S=i,K({type:"rendered",height:i,label:je(t.root)||L.name}))}function be(){let e=Math.ceil(q.getBoundingClientRect().height);e!==S&&(S=e,K({type:"resize",height:e})),Ue(),Fe()}function dt(){ae||(ae=!0,window.requestAnimationFrame(()=>{ae=!1,be()}))}function Fe(){if(c.mode!=="editor")return;let e=[];for(let t of q.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!==me&&(me=a,K({type:"layout",nodes:e}))}function Se(e){return!e||!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(e)?null:q.querySelector(`[data-g-node="${e}"]`)}function ct(e,a){let t=Se(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"&&(ct(de,Ee),ct(ge,Z&&Z!==Ee?Z:null))}function Me(e){for(let a of e.composedPath()){if(a instanceof HTMLElement&&a.dataset.gNode)return a.dataset.gNode;if(a===q)break}return null}function Ut(e){if(e.isTrusted){if(c.mode==="editor"){e.preventDefault(),e.stopPropagation(),K({type:"select",id:Me(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=L?.actions.find(i=>i.id===t);if(r?.type==="navigate"){if(M=r.pageId,L)for(let i of Object.keys(A(L)))delete E[i];ye(),q.querySelector("h1,h2")?.focus({preventScroll:!0});return}K({type:"action",actionId:t,nodeId:Me(e)??void 0,...Object.keys(E).length?{selection:Xe()}:{},...$?{answers:tt()}:{}});return}if(a===q)return}}}function lt(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");L=t,M=null,R=String(a.locale),te=new Set,X=a.parameters??{},$=a.serverInput,E=Object.create(null),ue=Object.create(null),j=a.capabilities,ee=a.customerData,ke.clear();for(let[r,i]of Object.entries(j?.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)}};L.pages.forEach(n=>i(n.root));let s=r.__page;typeof s=="string"&&L.pages.some(n=>n.id===s)&&(M=s)}for(let r of $?.bindings??[])Object.hasOwn($.answers,r.key)&&(E[r.componentId]=$.answers[r.key],te.add(r.componentId));ne=Object.create(null),R=String(a.locale),ye(!0)}else if(a.type==="capabilities"){j=a.capabilities;for(let[t,r]of Object.entries(j.pickers))!ue[t]&&E[t]===void 0&&(E[t]=r.selected??"");ye()}else a.type==="customer-data"?Ht(a.data):a.type==="restore-action-focus"&&c.mode==="live"?[...q.querySelectorAll("button[data-g-node]")].find(t=>t.dataset.gNode===a.nodeId&&!t.disabled)?.focus({preventScroll:!0}):a.type==="highlight"&&c.mode==="editor"&&(Z=a.hoverId??null,Ee=a.selectedId??null,Ue())}catch(t){K({type:"error",message:t instanceof Error?t.message:"render failed"})}}let pt=document.createElement("style");if(pt.textContent=x,document.head.append(pt),document.body.append(q),c.mode==="editor"){document.body.dataset.gEditor="",document.body.append(ge,de),document.addEventListener("mouseover",a=>{let t=Me(a);t!==ve&&(ve=t,K({type:"hover",id:t}))}),document.documentElement.addEventListener("mouseleave",()=>{ve!==null&&(ve=null,K({type:"hover",id:null}))}),document.addEventListener("dblclick",a=>{let t=Me(a);t&&a.isTrusted&&K({type:"edit",id:t})}),document.addEventListener("click",a=>{q.contains(a.target)||K({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(),K({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(),K({type:"zoom",delta:a.deltaY}))},{passive:!1})}q.addEventListener("click",Ut),document.addEventListener("keydown",e=>{e.key==="Escape"&&e.isTrusted&&K({type:"escape"})}),typeof ResizeObserver=="function"&&new ResizeObserver(dt).observe(q),window.addEventListener("resize",dt),c.mode==="editor"&&window.addEventListener("scroll",Fe),window.addEventListener("message",e=>{e.source===y&<(e.data)}),T.__indianaReceive=lt,K(c.document?{type:"ready",document:c.document}:{type:"ready"})}var Yt=`(${Ze.toString()})(JSON.parse(document.getElementById("grow-renderer-boot").textContent))`;function _t(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}">${Yt}<\/script></body></html>`}function Xt(){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`(() => {
|
|
171
172
|
try {
|
|
172
173
|
const input = JSON.parse(decodeURIComponent(location.hash.slice(1)));
|
|
173
174
|
if (!input || !/^[a-f0-9-]{36}$/.test(input.channel) || input.mode !== "live" || !Number.isInteger(input.hostDepth) || input.hostDepth < 1 || input.hostDepth > 16) return;
|
|
@@ -176,15 +177,15 @@ body{font-family:var(--g-font);color:var(--g-text);-webkit-font-smoothing:antial
|
|
|
176
177
|
const data = JSON.parse(document.getElementById("indiana-screen").textContent);
|
|
177
178
|
if (!data || typeof data.document !== "object") return;
|
|
178
179
|
const boot = { channel: input.channel, parentOrigin: origin.origin, hostDepth: input.hostDepth, mode: "live", document: data.document };
|
|
179
|
-
(${
|
|
180
|
+
(${Ge.toString()})(boot);
|
|
180
181
|
} catch { /* No valid host bridge: leave the published screen inert. */ }
|
|
181
|
-
})();`}function
|
|
182
|
+
})();`}function ta(){return`(() => {
|
|
182
183
|
try {
|
|
183
184
|
const input = JSON.parse(decodeURIComponent(location.hash.slice(1)));
|
|
184
185
|
if (!input || !/^[a-f0-9-]{36}$/.test(input.channel) || input.mode !== "live" || !Number.isInteger(input.hostDepth) || input.hostDepth < 1 || input.hostDepth > 16) return;
|
|
185
186
|
const origin = new URL(input.parentOrigin);
|
|
186
187
|
if (!["https:", "http:"].includes(origin.protocol) || origin.origin !== input.parentOrigin) return;
|
|
187
188
|
const boot = { channel: input.channel, parentOrigin: origin.origin, hostDepth: input.hostDepth, mode: "live" };
|
|
188
|
-
(${
|
|
189
|
+
(${Ge.toString()})(boot);
|
|
189
190
|
} catch { /* No valid host bridge: leave the public shell empty. */ }
|
|
190
|
-
})();`}function Ge(c,p){let A=(()=>{let N=c.defaultView;if(!N)throw new Error("Renderer host has no browser window");return N})(),I=5e3,y=0,T,C=!1;function P(){T!==void 0&&(A.clearTimeout(T),T=void 0,I=Math.max(0,I-(performance.now()-y)))}function b(){C||(C=!0,P(),c.removeEventListener("visibilitychange",v))}function v(){if(!C){if(c.visibilityState==="hidden"){P();return}T===void 0&&(y=performance.now(),T=A.setTimeout(()=>{T=void 0,b(),p()},I))}}return c.addEventListener("visibilitychange",v),v(),b}function ea(c,p){if(!/^(0|[1-9]\d*)(\.\d{1,12})?$/.test(c))throw new St("INVALID_RESPONSE","Invalid credit amount");let[A,I]=c.split("."),y=new Intl.NumberFormat(p),T=y.formatToParts(1.1).find(P=>P.type==="decimal")?.value??".",C=Array.from({length:10},(P,b)=>new Intl.NumberFormat(p,{useGrouping:!1}).format(b));return y.format(BigInt(A))+(I?T+I.replace(/\d/g,P=>C[Number(P)]):"")}var Ye=new WeakMap,ta=new WeakMap;function aa(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 ra(){return typeof navigator>"u"?[]:[...navigator.languages??[],navigator.language].filter(Boolean)}function Pt(c,p,A,I,y=document,T){let C=crypto.randomUUID(),P=crypto.randomUUID().replaceAll("-",""),b=y.createElement("iframe");b.title=p,b.setAttribute("sandbox","allow-scripts"),b.referrerPolicy="no-referrer";let v=y.defaultView,N=1;for(;v!==window&&N<16;)v=v.parent,N++;if(v!==window)throw new Error("Renderer container must belong to this host or a descendant window");let H={channel:C,parentOrigin:window.origin,hostDepth:N,mode:c,...c==="editor"?{editorMessages:A}:{}};if(T){if(c!=="live")throw new Error("Published screen renders only support live rendering");let x=new URL(T);if(x.username||x.password||x.search||x.hash||!wt(x.pathname)||x.protocol!=="https:"&&!(x.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(x.hostname)))throw new Error("Invalid published screen render URL");x.hash=encodeURIComponent(JSON.stringify(H)),b.src=x.href}else if(I){if(c!=="live")throw new Error("Hosted Web Views only support live rendering");let x=new URL(I);if(x.username||x.password||x.search||x.hash||!/^\/web-view\/renderer\/[a-f0-9]{64}$/.test(x.pathname)||x.protocol!=="https:"&&!(x.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(x.hostname)))throw new Error("Invalid hosted renderer URL");x.hash=encodeURIComponent(JSON.stringify(H)),b.src=x.href}else b.srcdoc=_t(H,P);return{frame:b,post:x=>b.contentWindow?.postMessage({...x,channel:C},"*"),accept:x=>x.source===b.contentWindow&&x.origin==="null"&&x.data&&x.data.channel===C?x.data:null}}function ka(c,p={}){let A=Ne(c,window);p.capabilities=Re(p.capabilities,A,window);let I=qe(A,[p.locale,...ra()]),y=Je(A,I);if(Ye.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 T=document.activeElement,C=document.createElement("div");C.dataset.indianaPopup="";let P=C.attachShadow({mode:"open"}),b=document.createElement("style");b.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 v=document.createElement("dialog");v.lang=I,v.dir=bt(I)?"rtl":"ltr",v.setAttribute("aria-label",y.name),v.dataset.presentation=y.presentation.type,v.style.width=y.presentation.type==="fullscreen"?"100vw":`${yt[y.presentation.size]}px`,y.presentation.type==="fullscreen"?v.style.cssText+=";max-width:100vw;max-height:100dvh;height:100dvh;margin:0;border-radius:0":y.presentation.type==="sheet"&&(v.style.cssText+=";margin:auto auto 0;max-width:100vw;max-height:100dvh;border-radius:14px 14px 0 0"),v.style.background=y.theme.background;let N=document.createElement("button");N.type="button",N.textContent="\xD7",N.setAttribute("aria-label",Et(I));let{frame:H,post:F,accept:W}=Pt("live",y.name,void 0,p.rendererUrl),x=!1,L=!1,$=X=>{y.presentation.type!=="fullscreen"&&(v.style.height=`min(${Math.max(X,40)}px, calc(100dvh - ${y.presentation.type==="sheet"?0:32}px))`)};function te(X){try{Promise.resolve(p.onEvent?.(X)).catch(M=>V(p.onError,M))}catch(M){V(p.onError,M)}}function j(){return x?!1:(x=!0,pe(),window.removeEventListener("message",se),v.close(),C.remove(),Ye.delete(document),T instanceof HTMLElement&&T.isConnected&&T.focus({preventScroll:!0}),!0)}function ee(X){j()&&te({type:"closed",reason:X})}function se(X){let M=x?null:W(X);if(M){if(M.type==="ready")F({type:"render",doc:y,locale:I,capabilities:p.capabilities});else if(M.type==="rendered"&&!L)L=!0,pe(),$(M.height),M.label&&v.setAttribute("aria-label",M.label),v.showModal(),N.focus(),te({type:"shown"});else if(M.type==="resize"&&L)$(M.height);else if(M.type==="copy"&&L){let E=xe(y,M.nodeId),ne=mt(p.capabilities,M.nodeId);E?.type==="coupon_code"&&ne?.code&&navigator.clipboard?.writeText(ne.code).catch(()=>{})}else if(M.type==="escape"&&L)ee("escape");else if(M.type==="action"&&L&&typeof M.actionId=="string"){let E=y.actions.find(ne=>ne.id===M.actionId);if(!E)return;if(E.close&&j(),te({type:"action",actionId:E.id,...typeof M.nodeId=="string"&&xe(y,M.nodeId)?{nodeId:M.nodeId}:{},name:E.event,properties:{...E.properties},...M.selection?{selection:Ve(y,M.selection,p.capabilities)}:{}}),E.type==="open_url")try{aa(E.url)}catch(ne){V(p.onError,ne)}E.close&&te({type:"closed",reason:"action"})}}}let pe=Ge(document,()=>{V(p.onError,new Error("Web View renderer did not start")),ee("timeout")}),le={destroy:()=>ee("destroy"),updateCapabilities:X=>{let M=Re(X,y,window);p.capabilities=M,F({type:"capabilities",capabilities:M})}};return ta.set(le,X=>{x||F({type:"restore-action-focus",nodeId:X})}),N.addEventListener("click",()=>ee("close_button")),v.addEventListener("cancel",X=>{X.preventDefault(),ee("escape")}),v.append(N,H),P.append(b,v),window.addEventListener("message",se),Ye.set(document,le),document.body.append(C),le}function Sa(c,p={}){let A=(()=>{let R=c.ownerDocument.defaultView;if(!R)throw new Error("Preview container has no browser window");return R})(),I=p.mode??"editor",{frame:y,post:T,accept:C}=Pt(I,p.title??"\u5F39\u7A97\u9884\u89C8",p.editorMessages,p.rendererUrl,c.ownerDocument,p.screenUrl);y.style.cssText="display:block;border:0;width:100%;height:0";let P=!1,b=null,v=null,N=!1,H,F,W=new Promise((R,k)=>{H=R,F=k});W.catch(()=>{});let x=Ge(c.ownerDocument,()=>{if(N||P)return;let R=new Error("Web View renderer did not start");F(R),V(p.onError,R.message),L()});function L(){N||(N=!0,x(),P||F(new Error("Web View mount cancelled")),window.removeEventListener("message",ne),P=!1,b=null,v=null,$=null,j=null,ee=null,te=void 0,pe.clear(),y.remove(),y.removeAttribute("srcdoc"),y.removeAttribute("src"))}let $=null,te,j=null,ee=null,se="modal",pe=new Set,le=p.viewportHeight,X=0,M=R=>{X=R;let k=le,S=k?se==="fullscreen"?k:Math.max(1,Math.min(R,k-(se==="sheet"?0:32))):R;y.style.height=`${S}px`,V(p.onResize,S)};function E(R){if(!te)return;let k=xt.safeParse(R);if(!k.success||Object.keys(k.data).some(S=>!te.bindings.some(ae=>ae.key===S))){V(p.onError,"Invalid current-screen answers");return}return k.data}function ne(R){let k=N?null:C(R);if(k)if(k.type==="ready"){if(p.screenUrl){let S=$e.safeParse(k.document);if(!S.success){V(p.onError,"Invalid published screen render"),L();return}j=Ne(S.data,A),y.title=j.name}if(P=!0,x(),H(),ee){let[,S,ae]=ee;ee=null,ue.update(null,S,ae)}b&&T(b),v&&T(v)}else if(k.type==="rendered"||k.type==="resize")M(k.height),k.type==="rendered"&&V(p.onRendered);else if(k.type==="layout"&&I==="editor")Array.isArray(k.nodes)&&k.nodes.length<=($?De.nodes:0)&&k.nodes.every(S=>S&&typeof S.id=="string"&&/^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/.test(S.id)&&[S.x,S.y,S.width,S.height].every(ae=>typeof ae=="number"&&Number.isFinite(ae))&&S.width>0&&S.height>0)&&V(p.onLayout,k.nodes);else if(k.type==="page"&&I==="live"&&pe.has(k.pageId))V(p.onPageChange,k.pageId);else if(k.type==="escape"&&I==="live")V(p.onEscape);else if(k.type==="hover")V(p.onHover,k.id);else if(k.type==="select")V(p.onSelect,k.id);else if(k.type==="edit")V(p.onEdit,k.id);else if(k.type==="key"&&I==="editor"){let S=k.key;S&&typeof S.key=="string"&&S.key.length<=16&&(S.phase==="down"||S.phase==="up")&&[S.meta,S.ctrl,S.shift,S.alt].every(ae=>typeof ae=="boolean")&&V(p.onKey,{key:S.key,phase:S.phase,meta:S.meta,ctrl:S.ctrl,shift:S.shift,alt:S.alt})}else if(k.type==="zoom"&&I==="editor"&&typeof k.delta=="number"&&Number.isFinite(k.delta))V(p.onZoom,k.delta);else if(k.type==="customer-data-intent"&&I==="live"&&$){let S=ht.safeParse(k.intent);S.success&&xe($,S.data.nodeId)?.type==="customer_data"&&V(p.onCustomerDataIntent,S.data)}else if(k.type==="answers"&&I==="live"&&te){let S=E(k.answers);S&&V(p.onAnswers,S)}else if(k.type==="action"&&$?.actions.some(S=>S.id===k.actionId)){let S=E(k.answers);if(te&&!S)return;V(p.onAction,k.actionId,Ve($,k.selection,b?.type==="render"?b.capabilities:void 0),S)}else k.type==="error"&&V(p.onError,k.message)}window.addEventListener("message",ne),c.append(y);let ue={ready:W,get document(){return $},updateCustomerData(R){if(N||!$)return;let k=Be.parse(R),S={nodes:Object.fromEntries(Object.entries(k.nodes).filter(([ae,me])=>{let Z=xe($,ae);return Z?.type==="customer_data"&&Z.data.source===me.source}))};b?.type==="render"&&(b.customerData=S),P&&T({type:"customer-data",data:S})},updateCapabilities(R){if(N||!$)return;let k=Re(R,$,A);k&&(b?.type==="render"&&JSON.stringify(b.capabilities)===JSON.stringify(k)||(b?.type==="render"&&(b.capabilities=k),P&&T({type:"capabilities",capabilities:k})))},update(R,k,S){if(N)return;if(p.screenUrl?R!==null:R===null){V(p.onError,"A published screen render takes its document from the frame");return}if(R===null&&!j){ee=[null,k,S];return}let ae=R??j,me;try{let Z=R?Ne(ae,A):ae,Ee=I==="live"&&!!S?.serverInput,ve=Ee?qe(Z,[k]):k,q=Ee?Je(Z,ve):Z,ge=S?.serverInput?kt.parse(S.serverInput):void 0;if(ge&&(Z.surface!=="paywall"&&Z.pages.length!==1||Z.actions.some(de=>de.type!=="event"&&!(Z.surface==="paywall"&&de.type==="navigate")||de.close)||ge.bindings.some(de=>{let K=xe(Z,de.componentId);return K?.type!=="stack"||!K.interaction||!["input","multiselect","select","tabs","toggle"].includes(K.interaction.type)})))throw new Error("Current Funnel input requires one screen with bound interactive controls and output actions");$=q,te=ge,se=Z.presentation.type,pe=new Set(Z.pages.map(de=>de.id)),me={type:"render",...p.screenUrl?{}:{doc:q},...ge?{serverInput:ge}:{},locale:ve,parameters:vt.parse(S?.parameters??{}),capabilities:Re(S?.capabilities,Z,A),...S?.selection?{selection:S.selection}:{},customerData:S?.customerData?Be.parse(S.customerData):void 0},se==="fullscreen"&&le&&M(le)}catch(Z){V(p.onError,Z instanceof Error?Z.message:"\u5185\u5BB9\u4E0D\u6B63\u786E");return}b=me,P&&T(me)},resizeViewport(R){N||!Number.isFinite(R)||R<=0||(le=R,M(X))},highlight(R,k){N||(v={type:"highlight",hoverId:R,selectedId:k},P&&T(v))},destroy:L};return ue}export{ea as formatCustomerDecimal,Qt as hostedRendererScript,Xt as hostedScreenScript,Gt as inspectCustomHtml,Sa as mountScreenPreview,Ne as prepareScreen,Zt as sanitizeCustomHtml,ka 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};
|