@swarm.ing/pieui 2.1.0 → 2.1.1
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/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/index.esm.js +2 -2
- package/dist/index.js +2 -2
- package/dist/max/index.esm.js +1 -1
- package/dist/max/index.js +1 -1
- package/dist/telegram/index.esm.js +1 -1
- package/dist/telegram/index.js +1 -1
- package/dist/util/registry.d.ts +3 -7
- package/dist/util/registry.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{useContext as K,useEffect as M,useRef as Eo}from"react";import{createContext as Fo,useContext as Jo}from"react";var Qo=Fo(null),Wo=()=>{let o=Jo(Qo);if(!o)throw Error("usePieConfig must be used within PieConfigProvider");return o};var G=()=>{let{enableRenderingLog:o}=Wo();return o},a=G;import{createContext as Xo}from"react";import{Centrifuge as Bf}from"centrifuge";var Yo=Xo(null),c=Yo;import{io as qf}from"socket.io-client";import{createContext as Ko}from"react";var Mo=Ko(null),v=Mo;import Qf from"mitt";import{createContext as Ro,useCallback as Yf,useContext as Kf}from"react";var _o=Ro(null);var J=_o;import{jsx as bo,jsxs as ko,Fragment as yo}from"react/jsx-runtime";var xo=({card:o,data:r,children:C,useSocketioSupport:p=!1,useCentrifugeSupport:U=!1,useMittSupport:f=!1,centrifugeChannel:m=void 0,methods:d=void 0,stored:S=void 0})=>{let u=a(),I=Eo(d);if(I.current=d,u)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:p,centrifuge:U,mitt:f,centrifugeChannel:m}),console.log("[PieCard] Methods:",d?Object.keys(d):"none"),console.log("[PieCard] Has children:",!!C);let w=K(v),H=K(c),A=K(J);if(M(()=>{if(!w||!p||!I.current||!r.name){if(u&&p)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!w,useSocketioSupport:p,hasMethods:!!I.current,hasDataName:!!r?.name});return}let z=Object.keys(I.current??{}).map((O)=>{let L=`pie${O}_${r.name}`;if(u)console.log(`[PieCard] Socket.IO registering event: ${L}`);let Z=(l)=>{I.current?.[O]?.(l)};return w.on(L,Z),[L,Z]});return()=>{z.forEach(([O,L])=>{if(u)console.log(`[PieCard] Socket.IO unregistering event: ${O}`);w.off(O,L)})}},[w,r.name,p]),M(()=>{if(!H||!U||!m||!r.name){if(u&&U)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!H,useCentrifugeSupport:U,hasCentrifugeChannel:!!m,hasMethods:!!I.current,hasDataName:!!r?.name});return}let z=Object.keys(I.current??{}).map((O)=>{let L=`pie${O}_${r.name}_${m}`;if(u)console.log(`[PieCard] Centrifuge subscribing to channel: ${L}`);let Z=H.newSubscription(L);return Z.on("publication",(l)=>{if(u)console.log(`[PieCard] Centrifuge received data on ${L}:`,l.data);I.current?.[O]?.(l.data)}),Z.subscribe(),Z});return()=>{z.forEach((O)=>{if(u)console.log("[PieCard] Centrifuge unsubscribing from channel");O.unsubscribe(),H.removeSubscription(O)})}},[H,m,r.name,U]),M(()=>{if(!A||!f||!r.name){if(u&&f)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!A,useMittSupport:f,hasMethods:!!I.current,hasDataName:!!r?.name});return}let P=Object.keys(I.current??{}),z={};return P.forEach((O)=>{let L=`pie${O}_${r.name}`,Z=(l)=>{if(u)console.log(`[PieCard] Mitt registering event: ${L}`);I.current?.[O]?.(l)};z[L]=Z,A.on(L,Z)}),()=>{Object.entries(z).forEach(([O,L])=>{if(u)console.log(`[PieCard] Mitt unregistering event: ${O}`);A.off(O,L)})}},[A,r.name,f]),u)console.log("[PieCard] Rendering complete, returning children");if(S!==void 0)return ko(yo,{children:[bo("input",{type:"hidden",name:r.name,value:JSON.stringify(S)}),C]});return C},i=xo;import{lazy as No}from"react";var F=new Map;function jo(o,r){return r.catch(()=>{if(F.get(o)===r)F.delete(o)}),F.set(o,r),r}function t(o,r){return No(()=>{if(F.has(r))return F.get(r);return jo(r,o().then((C)=>C))})}var h=new Map,no=(o)=>{if(!o.name)throw Error("Component registration requires a name");if(!o.component&&!o.loader)throw Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=t(r.loader,o.name),r.isLazy=!0;return r};function T(o){let r=no(o);return h.set(r.name,r),r.component}var Q=(o)=>{return h.get(o)};import{useContext as s,memo as Cr}from"react";import{createContext as ao}from"react";import{jsx as to,Fragment as vo}from"react/jsx-runtime";var co=ao(to(vo,{})),V=co;import{createContext as ho}from"react";var so=ho(void 0),W=so;import{Component as eo,Suspense as or}from"react";import{jsx as pr}from"react/jsx-runtime";var rr=2,fr=400;class q extends eo{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(o){if(this.props.onError?.(o),this.state.attempt<rr){let r=fr*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((C)=>({failed:!1,attempt:C.attempt+1}))},r)}}componentDidUpdate(o){if(o.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return pr(or,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as R}from"react/jsx-runtime";function Ur({uiConfig:o,setUiAjaxConfiguration:r}){let C=s(V),p=s(W),U=G();if(U)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let f=Q(o.card);if(!f?.component){if(U)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return C}if(U)console.log("[UI] Found component in registry:",{name:f.name,isLazy:f.isLazy,hasMetadata:!!f.metadata});let m=f.component,d=R(m,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(f.isLazy){if(U)console.log("[UI] Rendering lazy component with Suspense:",f.name);return R(q,{name:f.name,fallback:f.fallback?R(f.fallback,{}):C,onError:p,children:d})}if(U)console.log("[UI] Rendering component directly:",f.name);return d}var B=Cr(Ur);import{useContext as e}from"react";import{createContext as ur}from"react";var mr=ur(null),g=mr;import{jsx as X}from"react/jsx-runtime";function oo({uiConfig:o,setUiAjaxConfiguration:r}){let C=e(V),p=e(W),U=G();if(U)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let f=Q(o.card);if(!f?.component){if(U)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return C}if(U)console.log("[UILoading] Found component in registry:",{name:f.name,isLazy:f.isLazy,hasMetadata:!!f.metadata,hasFallback:!!f.fallback});if(f.fallback){if(U)console.log("[UILoading] Rendering fallback for:",f.name);let S=f.fallback;return X(S,{})}if(U)console.log("[UILoading] No fallback, rendering full component:",f.name);let m=f.component,d=X(g.Provider,{value:oo,children:X(m,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(f.isLazy)return X(q,{name:f.name,fallback:C,onError:p,children:d});return d}var Ir=oo;import{useContext as Sr}from"react";import{jsx as _}from"react/jsx-runtime";var dr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:p,sx:U}=o,f=Sr(g)??B;return _(i,{card:p,data:o,children:_("div",{style:U,id:p,children:r.map((m,d)=>{return _(f,{uiConfig:m,setUiAjaxConfiguration:C},`children-${d}`)})})})},ro=dr;var Pr=T({name:"SequenceCard",component:ro,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as Ar}from"react";import{jsx as fo}from"react/jsx-runtime";var wr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:p}=o,U=Ar(g)??B;return fo(i,{card:p,data:o,children:r.map((f,m)=>{return fo(U,{uiConfig:f,setUiAjaxConfiguration:C},`children-${m}`)})})},po=wr;var Tr=T({name:"UnionCard",component:po,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as Lr,useState as Dr}from"react";import zr from"html-react-parser";import{useCallback as Y,useEffect as ir,useRef as E,useState as Hr}from"react";function Or(){let o=new AudioContext,r=o.createOscillator(),C=r.connect(o.createMediaStreamDestination());r.start();let p=C.stream.getAudioTracks()[0];return p.enabled=!1,p}function x(o=null,r){let[C,p]=Hr(!1),U=E(null),f=E(null),m=E(null),d=Y(async(w,H=!0)=>{if(U.current)S();let A=new RTCPeerConnection;if(A.onconnectionstatechange=()=>{if(A.connectionState==="connected")p(!0);else if(["disconnected","failed","closed"].includes(A.connectionState))p(!1)},A.ontrack=(D)=>{if(o)o.srcObject=D.streams[0]},H){let D=await navigator.mediaDevices.getUserMedia({audio:!0});A.addTrack(D.getTracks()[0],D)}else{let D=Or();A.addTrack(D)}let P=A.createDataChannel("oai-events");f.current=P,m.current=new Promise((D)=>{P.addEventListener("open",()=>{D()})});let z=await A.createOffer();await A.setLocalDescription(z);let l=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:z.sdp,headers:{Authorization:`Bearer ${w}`,"Content-Type":"application/sdp"}})).text();await A.setRemoteDescription({type:"answer",sdp:l}),U.current=A,await m.current},[o]),S=Y(()=>{let w=f.current;if(w)w.close();U.current?.getSenders()?.forEach((H)=>H.track?.stop()),U.current?.close(),p(!1),U.current=null,f.current=null,m.current=null},[o]),u=Y((w)=>{let H=f.current;if(!H){console.error("Data channel is not ready",w);return}let A=new Date().toLocaleTimeString();if(w.event_id=w.event_id||crypto.randomUUID(),H.send(JSON.stringify(w)),!w.timestamp)w.timestamp=A;r?.(w)},[r,o]),I=Y((w)=>{if(!f.current){console.error("Data channel is not ready");return}let A=()=>{u({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:w}]}}),u({type:"response.create"})};if(m.current)m.current.then(A);else A()},[r,o]);return ir(()=>{let w=f.current;if(!w)return;let H=(A)=>{let P=JSON.parse(A.data);if(!P.timestamp)P.timestamp=new Date().toLocaleTimeString();r?.(P)};return w.addEventListener("message",H),()=>{w.removeEventListener("message",H)}},[r,o]),{isSessionActive:C,startSession:d,stopSession:S,sendTextMessage:I}}import{jsx as gr}from"react/jsx-runtime";var Zr=({data:o})=>{let{html:r,useSocketioSupport:C,useCentrifugeSupport:p,useMittSupport:U,centrifugeChannel:f}=o,[m,d]=Dr(r),{isSessionActive:S,startSession:u,sendTextMessage:I}=x(null,(P)=>{if(console.log(P.type,P.type==="response.output_text.delta"&&P.delta),P.type==="response.output_text.delta"&&P.delta)d((z)=>z+P.delta)});return Lr(()=>{d(r)},[r]),gr(i,{card:"HTMLEmbedCard",data:o,methods:{update:(P)=>{d(P.value)},generateUsingAI:async(P)=>{try{if(!S&&P.token)await u(P.token,!1);I(P.prompt)}catch(z){console.error("Failed to generate using AI",z)}},initializeAI:async(P)=>{if(!S&&P.token)await u(P.token,!1)}},useCentrifugeSupport:p,useSocketioSupport:C,useMittSupport:U,centrifugeChannel:f,children:zr(m)})},Co=Zr;var Br=T({name:"HTMLEmbedCard",component:Co,metadata:{author:"Swarm.ing"}});import{useEffect as lr,useState as Vr}from"react";import{jsx as Uo}from"react/jsx-runtime";var qr=({data:o})=>{let{name:r,value:C,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:f,centrifugeChannel:m}=o,[d,S]=Vr(C);return lr(()=>{S(C)},[C]),Uo(i,{card:"HiddenCard",data:o,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:f,centrifugeChannel:m,methods:{update:({value:u})=>{S(u)}},children:Uo("input",{type:"hidden",id:r,name:r,value:d})})},uo=qr;var $r=T({name:"HiddenCard",component:uo,metadata:{author:"Swarm.ing"}});import{useContext as mo,useEffect as Jr}from"react";import{createContext as Gr}from"react";var Fr=Gr(void 0),$=Fr;import{jsx as Xr,Fragment as Wr}from"react/jsx-runtime";var Qr=({data:o})=>{let{url:r}=o,C=mo($),p=mo(V);return Jr(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else C?.(r)},[r,C]),Xr(Wr,{children:p})},Io=Qr;var Yr=T({name:"AutoRedirectCard",component:Io,metadata:{author:"Swarm.ing"}});import{Bounce as Kr,Slide as Mr,Zoom as Rr,Flip as _r}from"react-toastify";import{toast as Er,ToastContainer as xr}from"react-toastify";import{useContext as yr,useMemo as br,useRef as kr}from"react";import{jsx as y,Fragment as vr}from"react/jsx-runtime";var Nr={bounce:Kr,slide:Mr,zoom:Rr,flip:_r},jr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?Nr[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};Er(o.message,r)},nr=(o)=>{console.log("Log event",o)},ar=(o)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(p){console.error("[IOEventsCard] Failed to show notification",p)}},C=window.Notification.permission;if(C==="granted"){r();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((p)=>{if(p==="granted")r()})},cr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:U}=o,f=yr($),m=kr(f);m.current=f;let d=br(()=>({alert:jr,log:nr,push:ar,redirect:(S)=>{if(S.to){let u=S.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else m.current?.(u)}else window.location.reload()},reload:(S)=>{if(S.to){let u=S.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else m.current?.(u)}else window.location.reload()}}),[]);return y(vr,{children:y(i,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:U,methods:d,children:y(xr,{})})})},So=cr;var tr=T({name:"IOEventsCard",component:So,metadata:{author:"Swarm.ing"}});import{useEffect as Po,useState as hr}from"react";import{jsx as Ao}from"react/jsx-runtime";var sr=({data:o})=>{let{name:r,key:C,value:p,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:d}=o,[S,u]=hr(p);return Po(()=>{u(p)},[p]),Po(()=>{if(typeof window>"u")return;sessionStorage.setItem(C,S)},[C,S]),Ao(i,{card:"SessionStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:d,methods:{update:({value:I})=>{u(I)},remove:()=>{sessionStorage.removeItem(C),u("")}},children:Ao("input",{type:"hidden",id:r,name:r,value:S})})},wo=sr;var er=T({name:"SessionStorageCard",component:wo,metadata:{author:"PieData"}});import{useEffect as To,useState as of}from"react";import{jsx as io}from"react/jsx-runtime";var rf=({data:o})=>{let{name:r,key:C,value:p,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:d}=o,[S,u]=of(p);return To(()=>{u(p)},[p]),To(()=>{if(typeof window>"u")return;localStorage.setItem(C,S)},[C,S]),io(i,{card:"DeviceStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:d,methods:{update:({value:I})=>{u(I)},remove:()=>{localStorage.removeItem(C),u("")}},children:io("input",{type:"hidden",id:r,name:r,value:S})})},Ho=rf;var ff=T({name:"DeviceStorageCard",component:Ho,metadata:{author:"PieData"}});import{useEffect as Oo,useState as pf}from"react";import{jsx as Lo}from"react/jsx-runtime";var Cf=({data:o})=>{let{name:r,key:C,value:p,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:d}=o,[S,u]=pf(p);return Oo(()=>{u(p)},[p]),Oo(()=>{if(typeof window>"u")return;let I=window.Telegram?.WebApp?.CloudStorage;if(!I)return;I.setItem(C,S)},[C,S]),Lo(i,{card:"CloudStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:d,methods:{update:({value:I})=>{u(I)},remove:()=>{let I=window.Telegram?.WebApp?.CloudStorage;if(I)I.removeItem(C);u("")}},children:Lo("input",{type:"hidden",id:r,name:r,value:S})})},Do=Cf;var Uf=T({name:"CloudStorageCard",component:Do,metadata:{author:"PieData"}});import{useEffect as zo,useState as uf}from"react";import{jsx as Zo}from"react/jsx-runtime";var mf=({data:o})=>{let{name:r,key:C,value:p,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:d}=o,[S,u]=uf(p);return zo(()=>{u(p)},[p]),zo(()=>{if(typeof window>"u")return;let I=window.Telegram?.WebApp?.SecureStorage;if(!I)return;I.setItem(C,S)},[C,S]),Zo(i,{card:"SecureStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:d,methods:{update:({value:I})=>{u(I)},remove:()=>{let I=window.Telegram?.WebApp?.SecureStorage;if(I)I.removeItem(C);u("")}},children:Zo("input",{type:"hidden",id:r,name:r,value:S})})},go=mf;var If=T({name:"SecureStorageCard",component:go,metadata:{author:"PieData"}});import{useCallback as b,useContext as k,useEffect as Sf,useRef as df,useState as Bo}from"react";import{jsx as lo}from"react/jsx-runtime";var Pf=({data:o,content:r})=>{let{useLoader:C,noReturn:p,returnType:U,useSocketioSupport:f,useCentrifugeSupport:m,useMittSupport:d,centrifugeChannel:S}=o,u=k(V),I=k(g)??B,[w,H]=Bo(!1),[A,P]=Bo(null),z=df(r),O=k(J),L=b((D)=>{if(D===null)H(!0);else if(H(!1),!p)z.current=D;if(!p)P(D)},[p]),Z=b((D)=>{z.current=D.content,P(D.content)},[]),l=b((D)=>{if(D===null)H(!0);else if(H(!1),!p)for(let n of D)O?.emit(n.name,n.data)},[p,O]);if(Sf(()=>{P(r),H(!1)},[r]),!A&&C)return u;return lo(i,{card:"AjaxGroupCard",data:o,methods:{changeContent:Z},useSocketioSupport:f,useCentrifugeSupport:m,useMittSupport:d,centrifugeChannel:S,children:lo(I,{uiConfig:A??z.current,setUiAjaxConfiguration:U==="events"?l:L})})},Vo=Pf;var Af=T({name:"AjaxGroupCard",component:Vo,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as qo}from"react";import{jsx as N}from"react/jsx-runtime";var wf=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:p,url:U,sx:f}=o,m=qo($),d=qo(g)??B;return N(i,{card:p,data:o,children:N("div",{style:f,id:p,onClick:(u)=>{if(U)if(u.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else m?.(U)},children:N(d,{setUiAjaxConfiguration:C,uiConfig:r})})})},$o=wf;var Tf=T({name:"BoxCard",component:$o,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as Hf}from"react";import{jsx as j}from"react/jsx-runtime";var Of=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:p,sx:U}=o,f=Hf(g)??B;return j(i,{card:p,data:o,children:j("div",{style:U,id:p,children:r.map((m,d)=>{return j(f,{uiConfig:m,setUiAjaxConfiguration:C},`children-${d}`)})})})},Go=Of;var Lf=T({name:"OneOfCard",component:Go,metadata:{author:"Swarm.ing",description:"Different variants"}});export{Tr as UnionCard,Ir as UILoading,B as UI,er as SessionStorageCard,Pr as SequenceCard,If as SecureStorageCard,i as PieCard,Lf as OneOfCard,tr as IOEventsCard,$r as HiddenCard,Br as HTMLEmbedCard,ff as DeviceStorageCard,Uf as CloudStorageCard,Tf as BoxCard,Yr as AutoRedirectCard,Af as AjaxGroupCard};
|
|
2
|
+
import{useContext as M,useEffect as K,useRef as Eo}from"react";import{createContext as Qo,useContext as Wo}from"react";var Xo=Qo(null),Yo=()=>{let o=Wo(Xo);if(!o)throw Error("usePieConfig must be used within PieConfigProvider");return o};var G=()=>{let{enableRenderingLog:o}=Yo();return o},a=G;import{createContext as Mo}from"react";import{Centrifuge as qf}from"centrifuge";var Ko=Mo(null),v=Ko;import{io as Gf}from"socket.io-client";import{createContext as Ro}from"react";var _o=Ro(null),c=_o;import Xf from"mitt";import{createContext as xo,useCallback as Kf,useContext as Rf}from"react";var yo=xo(null);var J=yo;import{jsx as No,jsxs as jo,Fragment as bo}from"react/jsx-runtime";var ko=({card:o,data:r,children:C,useSocketioSupport:p=!1,useCentrifugeSupport:U=!1,useMittSupport:f=!1,centrifugeChannel:m=void 0,methods:S=void 0,stored:d=void 0})=>{let u=a(),I=Eo(S);if(I.current=S,u)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:p,centrifuge:U,mitt:f,centrifugeChannel:m}),console.log("[PieCard] Methods:",S?Object.keys(S):"none"),console.log("[PieCard] Has children:",!!C);let w=M(c),H=M(v),A=M(J);if(K(()=>{if(!w||!p||!I.current||!r.name){if(u&&p)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!w,useSocketioSupport:p,hasMethods:!!I.current,hasDataName:!!r?.name});return}let z=Object.keys(I.current??{}).map((O)=>{let L=`pie${O}_${r.name}`;if(u)console.log(`[PieCard] Socket.IO registering event: ${L}`);let Z=(g)=>{I.current?.[O]?.(g)};return w.on(L,Z),[L,Z]});return()=>{z.forEach(([O,L])=>{if(u)console.log(`[PieCard] Socket.IO unregistering event: ${O}`);w.off(O,L)})}},[w,r.name,p]),K(()=>{if(!H||!U||!m||!r.name){if(u&&U)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!H,useCentrifugeSupport:U,hasCentrifugeChannel:!!m,hasMethods:!!I.current,hasDataName:!!r?.name});return}let z=Object.keys(I.current??{}).map((O)=>{let L=`pie${O}_${r.name}_${m}`;if(u)console.log(`[PieCard] Centrifuge subscribing to channel: ${L}`);let Z=H.newSubscription(L);return Z.on("publication",(g)=>{if(u)console.log(`[PieCard] Centrifuge received data on ${L}:`,g.data);I.current?.[O]?.(g.data)}),Z.subscribe(),Z});return()=>{z.forEach((O)=>{if(u)console.log("[PieCard] Centrifuge unsubscribing from channel");O.unsubscribe(),H.removeSubscription(O)})}},[H,m,r.name,U]),K(()=>{if(!A||!f||!r.name){if(u&&f)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!A,useMittSupport:f,hasMethods:!!I.current,hasDataName:!!r?.name});return}let P=Object.keys(I.current??{}),z={};return P.forEach((O)=>{let L=`pie${O}_${r.name}`,Z=(g)=>{if(u)console.log(`[PieCard] Mitt registering event: ${L}`);I.current?.[O]?.(g)};z[L]=Z,A.on(L,Z)}),()=>{Object.entries(z).forEach(([O,L])=>{if(u)console.log(`[PieCard] Mitt unregistering event: ${O}`);A.off(O,L)})}},[A,r.name,f]),u)console.log("[PieCard] Rendering complete, returning children");if(d!==void 0)return jo(bo,{children:[No("input",{type:"hidden",name:r.name,value:JSON.stringify(d)}),C]});return C},T=ko;import{lazy as no}from"react";var F=new Map;function ao(o,r){return r.catch(()=>{if(F.get(o)===r)F.delete(o)}),F.set(o,r),r}function t(o,r){return no(()=>{if(F.has(r))return F.get(r);return ao(r,o().then((C)=>C))})}var h=Symbol.for("@swarm.ing/pieui:component-registry"),s=globalThis,e=s[h]??(s[h]=new Map),vo=(o)=>{if(!o.name)throw Error("Component registration requires a name");if(!o.component&&!o.loader)throw Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=t(r.loader,o.name),r.isLazy=!0;return r};function i(o){let r=vo(o);return e.set(r.name,r),r.component}var Q=(o)=>{return e.get(o)};import{useContext as oo,memo as ur}from"react";import{createContext as co}from"react";import{jsx as so,Fragment as ho}from"react/jsx-runtime";var to=co(so(ho,{})),q=to;import{createContext as eo}from"react";var or=eo(void 0),W=or;import{Component as rr,Suspense as fr}from"react";import{jsx as Ur}from"react/jsx-runtime";var pr=2,Cr=400;class $ extends rr{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(o){if(this.props.onError?.(o),this.state.attempt<pr){let r=Cr*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((C)=>({failed:!1,attempt:C.attempt+1}))},r)}}componentDidUpdate(o){if(o.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return Ur(fr,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as R}from"react/jsx-runtime";function mr({uiConfig:o,setUiAjaxConfiguration:r}){let C=oo(q),p=oo(W),U=G();if(U)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let f=Q(o.card);if(!f?.component){if(U)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return C}if(U)console.log("[UI] Found component in registry:",{name:f.name,isLazy:f.isLazy,hasMetadata:!!f.metadata});let m=f.component,S=R(m,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(f.isLazy){if(U)console.log("[UI] Rendering lazy component with Suspense:",f.name);return R($,{name:f.name,fallback:f.fallback?R(f.fallback,{}):C,onError:p,children:S})}if(U)console.log("[UI] Rendering component directly:",f.name);return S}var V=ur(mr);import{useContext as ro}from"react";import{createContext as Ir}from"react";var dr=Ir(null),B=dr;import{jsx as X}from"react/jsx-runtime";function fo({uiConfig:o,setUiAjaxConfiguration:r}){let C=ro(q),p=ro(W),U=G();if(U)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let f=Q(o.card);if(!f?.component){if(U)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return C}if(U)console.log("[UILoading] Found component in registry:",{name:f.name,isLazy:f.isLazy,hasMetadata:!!f.metadata,hasFallback:!!f.fallback});if(f.fallback){if(U)console.log("[UILoading] Rendering fallback for:",f.name);let d=f.fallback;return X(d,{})}if(U)console.log("[UILoading] No fallback, rendering full component:",f.name);let m=f.component,S=X(B.Provider,{value:fo,children:X(m,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(f.isLazy)return X($,{name:f.name,fallback:C,onError:p,children:S});return S}var Sr=fo;import{useContext as Pr}from"react";import{jsx as _}from"react/jsx-runtime";var Ar=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:p,sx:U}=o,f=Pr(B)??V;return _(T,{card:p,data:o,children:_("div",{style:U,id:p,children:r.map((m,S)=>{return _(f,{uiConfig:m,setUiAjaxConfiguration:C},`children-${S}`)})})})},po=Ar;var wr=i({name:"SequenceCard",component:po,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as ir}from"react";import{jsx as Co}from"react/jsx-runtime";var Tr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:p}=o,U=ir(B)??V;return Co(T,{card:p,data:o,children:r.map((f,m)=>{return Co(U,{uiConfig:f,setUiAjaxConfiguration:C},`children-${m}`)})})},Uo=Tr;var Hr=i({name:"UnionCard",component:Uo,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as zr,useState as Zr}from"react";import Br from"html-react-parser";import{useCallback as Y,useEffect as Or,useRef as x,useState as Lr}from"react";function Dr(){let o=new AudioContext,r=o.createOscillator(),C=r.connect(o.createMediaStreamDestination());r.start();let p=C.stream.getAudioTracks()[0];return p.enabled=!1,p}function y(o=null,r){let[C,p]=Lr(!1),U=x(null),f=x(null),m=x(null),S=Y(async(w,H=!0)=>{if(U.current)d();let A=new RTCPeerConnection;if(A.onconnectionstatechange=()=>{if(A.connectionState==="connected")p(!0);else if(["disconnected","failed","closed"].includes(A.connectionState))p(!1)},A.ontrack=(D)=>{if(o)o.srcObject=D.streams[0]},H){let D=await navigator.mediaDevices.getUserMedia({audio:!0});A.addTrack(D.getTracks()[0],D)}else{let D=Dr();A.addTrack(D)}let P=A.createDataChannel("oai-events");f.current=P,m.current=new Promise((D)=>{P.addEventListener("open",()=>{D()})});let z=await A.createOffer();await A.setLocalDescription(z);let g=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:z.sdp,headers:{Authorization:`Bearer ${w}`,"Content-Type":"application/sdp"}})).text();await A.setRemoteDescription({type:"answer",sdp:g}),U.current=A,await m.current},[o]),d=Y(()=>{let w=f.current;if(w)w.close();U.current?.getSenders()?.forEach((H)=>H.track?.stop()),U.current?.close(),p(!1),U.current=null,f.current=null,m.current=null},[o]),u=Y((w)=>{let H=f.current;if(!H){console.error("Data channel is not ready",w);return}let A=new Date().toLocaleTimeString();if(w.event_id=w.event_id||crypto.randomUUID(),H.send(JSON.stringify(w)),!w.timestamp)w.timestamp=A;r?.(w)},[r,o]),I=Y((w)=>{if(!f.current){console.error("Data channel is not ready");return}let A=()=>{u({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:w}]}}),u({type:"response.create"})};if(m.current)m.current.then(A);else A()},[r,o]);return Or(()=>{let w=f.current;if(!w)return;let H=(A)=>{let P=JSON.parse(A.data);if(!P.timestamp)P.timestamp=new Date().toLocaleTimeString();r?.(P)};return w.addEventListener("message",H),()=>{w.removeEventListener("message",H)}},[r,o]),{isSessionActive:C,startSession:S,stopSession:d,sendTextMessage:I}}import{jsx as gr}from"react/jsx-runtime";var Vr=({data:o})=>{let{html:r,useSocketioSupport:C,useCentrifugeSupport:p,useMittSupport:U,centrifugeChannel:f}=o,[m,S]=Zr(r),{isSessionActive:d,startSession:u,sendTextMessage:I}=y(null,(P)=>{if(console.log(P.type,P.type==="response.output_text.delta"&&P.delta),P.type==="response.output_text.delta"&&P.delta)S((z)=>z+P.delta)});return zr(()=>{S(r)},[r]),gr(T,{card:"HTMLEmbedCard",data:o,methods:{update:(P)=>{S(P.value)},generateUsingAI:async(P)=>{try{if(!d&&P.token)await u(P.token,!1);I(P.prompt)}catch(z){console.error("Failed to generate using AI",z)}},initializeAI:async(P)=>{if(!d&&P.token)await u(P.token,!1)}},useCentrifugeSupport:p,useSocketioSupport:C,useMittSupport:U,centrifugeChannel:f,children:Br(m)})},uo=Vr;var qr=i({name:"HTMLEmbedCard",component:uo,metadata:{author:"Swarm.ing"}});import{useEffect as $r,useState as lr}from"react";import{jsx as mo}from"react/jsx-runtime";var Gr=({data:o})=>{let{name:r,value:C,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:f,centrifugeChannel:m}=o,[S,d]=lr(C);return $r(()=>{d(C)},[C]),mo(T,{card:"HiddenCard",data:o,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:f,centrifugeChannel:m,methods:{update:({value:u})=>{d(u)}},children:mo("input",{type:"hidden",id:r,name:r,value:S})})},Io=Gr;var Fr=i({name:"HiddenCard",component:Io,metadata:{author:"Swarm.ing"}});import{useContext as So,useEffect as Wr}from"react";import{createContext as Jr}from"react";var Qr=Jr(void 0),l=Qr;import{jsx as Mr,Fragment as Yr}from"react/jsx-runtime";var Xr=({data:o})=>{let{url:r}=o,C=So(l),p=So(q);return Wr(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else C?.(r)},[r,C]),Mr(Yr,{children:p})},Po=Xr;var Kr=i({name:"AutoRedirectCard",component:Po,metadata:{author:"Swarm.ing"}});import{Bounce as Rr,Slide as _r,Zoom as xr,Flip as yr}from"react-toastify";import{toast as Er,ToastContainer as kr}from"react-toastify";import{useContext as br,useMemo as Nr,useRef as jr}from"react";import{jsx as E,Fragment as hr}from"react/jsx-runtime";var nr={bounce:Rr,slide:_r,zoom:xr,flip:yr},ar=(o)=>{let r={...o,type:o.alertType,transition:o.transition?nr[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};Er(o.message,r)},vr=(o)=>{console.log("Log event",o)},cr=(o)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(p){console.error("[IOEventsCard] Failed to show notification",p)}},C=window.Notification.permission;if(C==="granted"){r();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((p)=>{if(p==="granted")r()})},tr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:U}=o,f=br(l),m=jr(f);m.current=f;let S=Nr(()=>({alert:ar,log:vr,push:cr,redirect:(d)=>{if(d.to){let u=d.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else m.current?.(u)}else window.location.reload()},reload:(d)=>{if(d.to){let u=d.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else m.current?.(u)}else window.location.reload()}}),[]);return E(hr,{children:E(T,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:U,methods:S,children:E(kr,{})})})},Ao=tr;var sr=i({name:"IOEventsCard",component:Ao,metadata:{author:"Swarm.ing"}});import{useEffect as wo,useState as er}from"react";import{jsx as io}from"react/jsx-runtime";var of=({data:o})=>{let{name:r,key:C,value:p,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:S}=o,[d,u]=er(p);return wo(()=>{u(p)},[p]),wo(()=>{if(typeof window>"u")return;sessionStorage.setItem(C,d)},[C,d]),io(T,{card:"SessionStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:S,methods:{update:({value:I})=>{u(I)},remove:()=>{sessionStorage.removeItem(C),u("")}},children:io("input",{type:"hidden",id:r,name:r,value:d})})},To=of;var rf=i({name:"SessionStorageCard",component:To,metadata:{author:"PieData"}});import{useEffect as Ho,useState as ff}from"react";import{jsx as Oo}from"react/jsx-runtime";var pf=({data:o})=>{let{name:r,key:C,value:p,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:S}=o,[d,u]=ff(p);return Ho(()=>{u(p)},[p]),Ho(()=>{if(typeof window>"u")return;localStorage.setItem(C,d)},[C,d]),Oo(T,{card:"DeviceStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:S,methods:{update:({value:I})=>{u(I)},remove:()=>{localStorage.removeItem(C),u("")}},children:Oo("input",{type:"hidden",id:r,name:r,value:d})})},Lo=pf;var Cf=i({name:"DeviceStorageCard",component:Lo,metadata:{author:"PieData"}});import{useEffect as Do,useState as Uf}from"react";import{jsx as zo}from"react/jsx-runtime";var uf=({data:o})=>{let{name:r,key:C,value:p,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:S}=o,[d,u]=Uf(p);return Do(()=>{u(p)},[p]),Do(()=>{if(typeof window>"u")return;let I=window.Telegram?.WebApp?.CloudStorage;if(!I)return;I.setItem(C,d)},[C,d]),zo(T,{card:"CloudStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:S,methods:{update:({value:I})=>{u(I)},remove:()=>{let I=window.Telegram?.WebApp?.CloudStorage;if(I)I.removeItem(C);u("")}},children:zo("input",{type:"hidden",id:r,name:r,value:d})})},Zo=uf;var mf=i({name:"CloudStorageCard",component:Zo,metadata:{author:"PieData"}});import{useEffect as Bo,useState as If}from"react";import{jsx as Vo}from"react/jsx-runtime";var df=({data:o})=>{let{name:r,key:C,value:p,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:S}=o,[d,u]=If(p);return Bo(()=>{u(p)},[p]),Bo(()=>{if(typeof window>"u")return;let I=window.Telegram?.WebApp?.SecureStorage;if(!I)return;I.setItem(C,d)},[C,d]),Vo(T,{card:"SecureStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:f,useMittSupport:m,centrifugeChannel:S,methods:{update:({value:I})=>{u(I)},remove:()=>{let I=window.Telegram?.WebApp?.SecureStorage;if(I)I.removeItem(C);u("")}},children:Vo("input",{type:"hidden",id:r,name:r,value:d})})},go=df;var Sf=i({name:"SecureStorageCard",component:go,metadata:{author:"PieData"}});import{useCallback as k,useContext as b,useEffect as Pf,useRef as Af,useState as qo}from"react";import{jsx as $o}from"react/jsx-runtime";var wf=({data:o,content:r})=>{let{useLoader:C,noReturn:p,returnType:U,useSocketioSupport:f,useCentrifugeSupport:m,useMittSupport:S,centrifugeChannel:d}=o,u=b(q),I=b(B)??V,[w,H]=qo(!1),[A,P]=qo(null),z=Af(r),O=b(J),L=k((D)=>{if(D===null)H(!0);else if(H(!1),!p)z.current=D;if(!p)P(D)},[p]),Z=k((D)=>{z.current=D.content,P(D.content)},[]),g=k((D)=>{if(D===null)H(!0);else if(H(!1),!p)for(let n of D)O?.emit(n.name,n.data)},[p,O]);if(Pf(()=>{P(r),H(!1)},[r]),!A&&C)return u;return $o(T,{card:"AjaxGroupCard",data:o,methods:{changeContent:Z},useSocketioSupport:f,useCentrifugeSupport:m,useMittSupport:S,centrifugeChannel:d,children:$o(I,{uiConfig:A??z.current,setUiAjaxConfiguration:U==="events"?g:L})})},lo=wf;var Tf=i({name:"AjaxGroupCard",component:lo,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as Go}from"react";import{jsx as N}from"react/jsx-runtime";var Hf=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:p,url:U,sx:f}=o,m=Go(l),S=Go(B)??V;return N(T,{card:p,data:o,children:N("div",{style:f,id:p,onClick:(u)=>{if(U)if(u.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else m?.(U)},children:N(S,{setUiAjaxConfiguration:C,uiConfig:r})})})},Fo=Hf;var Of=i({name:"BoxCard",component:Fo,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as Lf}from"react";import{jsx as j}from"react/jsx-runtime";var Df=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:p,sx:U}=o,f=Lf(B)??V;return j(T,{card:p,data:o,children:j("div",{style:U,id:p,children:r.map((m,S)=>{return j(f,{uiConfig:m,setUiAjaxConfiguration:C},`children-${S}`)})})})},Jo=Df;var zf=i({name:"OneOfCard",component:Jo,metadata:{author:"Swarm.ing",description:"Different variants"}});export{Hr as UnionCard,Sr as UILoading,V as UI,rf as SessionStorageCard,wr as SequenceCard,Sf as SecureStorageCard,T as PieCard,zf as OneOfCard,sr as IOEventsCard,Fr as HiddenCard,qr as HTMLEmbedCard,Cf as DeviceStorageCard,mf as CloudStorageCard,Of as BoxCard,Kr as AutoRedirectCard,Tf as AjaxGroupCard};
|
package/dist/components/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var Tr=Object.create;var{getPrototypeOf:ir,defineProperty:K,getOwnPropertyNames:Do,getOwnPropertyDescriptor:Hr}=Object,zo=Object.prototype.hasOwnProperty;var Zo=(o,r,p)=>{p=o!=null?Tr(ir(o)):{};let f=r||!o||!o.__esModule?K(p,"default",{value:o,enumerable:!0}):p;for(let U of Do(o))if(!zo.call(f,U))K(f,U,{get:()=>o[U],enumerable:!0});return f},Lo=new WeakMap,Or=(o)=>{var r=Lo.get(o),p;if(r)return r;if(r=K({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function")Do(o).map((f)=>!zo.call(r,f)&&K(r,f,{get:()=>o[f],enumerable:!(p=Hr(o,f))||p.enumerable}));return Lo.set(o,r),r};var Lr=(o,r)=>{for(var p in r)K(o,p,{get:r[p],enumerable:!0,configurable:!0,set:(f)=>r[p]=()=>f})};var rf={};Lr(rf,{UnionCard:()=>yo,UILoading:()=>Ko,UI:()=>l,SessionStorageCard:()=>or,SequenceCard:()=>_o,SecureStorageCard:()=>ur,PieCard:()=>T,OneOfCard:()=>wr,IOEventsCard:()=>so,HiddenCard:()=>ao,HTMLEmbedCard:()=>jo,DeviceStorageCard:()=>fr,CloudStorageCard:()=>Cr,BoxCard:()=>dr,AutoRedirectCard:()=>to,AjaxGroupCard:()=>Ir});module.exports=Or(rf);var $=require("react");var j=require("react"),Dr=j.createContext(null),zr=()=>{let o=j.useContext(Dr);if(!o)throw Error("usePieConfig must be used within PieConfigProvider");return o};var M=()=>{let{enableRenderingLog:o}=zr();return o},go=M;var Bo=require("react"),Zr=require("centrifuge");var gr=Bo.createContext(null),lo=gr;var Br=require("socket.io-client"),Vo=require("react");var lr=Vo.createContext(null),qo=lr;var Vr=Zo(require("mitt")),n=require("react");var qr=n.createContext(null);var a=qr;var J=require("react/jsx-runtime"),$r=({card:o,data:r,children:p,useSocketioSupport:f=!1,useCentrifugeSupport:U=!1,useMittSupport:C=!1,centrifugeChannel:m=void 0,methods:d=void 0,stored:S=void 0})=>{let u=go(),I=$.useRef(d);if(I.current=d,u)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:f,centrifuge:U,mitt:C,centrifugeChannel:m}),console.log("[PieCard] Methods:",d?Object.keys(d):"none"),console.log("[PieCard] Has children:",!!p);let w=$.useContext(qo),H=$.useContext(lo),A=$.useContext(a);if($.useEffect(()=>{if(!w||!f||!I.current||!r.name){if(u&&f)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!w,useSocketioSupport:f,hasMethods:!!I.current,hasDataName:!!r?.name});return}let z=Object.keys(I.current??{}).map((O)=>{let L=`pie${O}_${r.name}`;if(u)console.log(`[PieCard] Socket.IO registering event: ${L}`);let B=(q)=>{I.current?.[O]?.(q)};return w.on(L,B),[L,B]});return()=>{z.forEach(([O,L])=>{if(u)console.log(`[PieCard] Socket.IO unregistering event: ${O}`);w.off(O,L)})}},[w,r.name,f]),$.useEffect(()=>{if(!H||!U||!m||!r.name){if(u&&U)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!H,useCentrifugeSupport:U,hasCentrifugeChannel:!!m,hasMethods:!!I.current,hasDataName:!!r?.name});return}let z=Object.keys(I.current??{}).map((O)=>{let L=`pie${O}_${r.name}_${m}`;if(u)console.log(`[PieCard] Centrifuge subscribing to channel: ${L}`);let B=H.newSubscription(L);return B.on("publication",(q)=>{if(u)console.log(`[PieCard] Centrifuge received data on ${L}:`,q.data);I.current?.[O]?.(q.data)}),B.subscribe(),B});return()=>{z.forEach((O)=>{if(u)console.log("[PieCard] Centrifuge unsubscribing from channel");O.unsubscribe(),H.removeSubscription(O)})}},[H,m,r.name,U]),$.useEffect(()=>{if(!A||!C||!r.name){if(u&&C)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!A,useMittSupport:C,hasMethods:!!I.current,hasDataName:!!r?.name});return}let P=Object.keys(I.current??{}),z={};return P.forEach((O)=>{let L=`pie${O}_${r.name}`,B=(q)=>{if(u)console.log(`[PieCard] Mitt registering event: ${L}`);I.current?.[O]?.(q)};z[L]=B,A.on(L,B)}),()=>{Object.entries(z).forEach(([O,L])=>{if(u)console.log(`[PieCard] Mitt unregistering event: ${O}`);A.off(O,L)})}},[A,r.name,C]),u)console.log("[PieCard] Rendering complete, returning children");if(S!==void 0)return J.jsxs(J.Fragment,{children:[J.jsx("input",{type:"hidden",name:r.name,value:JSON.stringify(S)}),p]});return p},T=$r;var $o=require("react"),R=new Map;function Gr(o,r){return r.catch(()=>{if(R.get(o)===r)R.delete(o)}),R.set(o,r),r}function Go(o,r){return $o.lazy(()=>{if(R.has(r))return R.get(r);return Gr(r,o().then((p)=>p))})}var Fo=new Map,Fr=(o)=>{if(!o.name)throw Error("Component registration requires a name");if(!o.component&&!o.loader)throw Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=Go(r.loader,o.name),r.isLazy=!0;return r};function i(o){let r=Fr(o);return Fo.set(r.name,r),r.component}var c=(o)=>{return Fo.get(o)};var _=require("react");var Jo=require("react"),v=require("react/jsx-runtime"),Jr=Jo.createContext(v.jsx(v.Fragment,{})),G=Jr;var Qo=require("react"),Qr=Qo.createContext(void 0),t=Qr;var h=require("react"),Wo=require("react/jsx-runtime"),Wr=2,Xr=400;class Q extends h.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(o){if(this.props.onError?.(o),this.state.attempt<Wr){let r=Xr*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((p)=>({failed:!1,attempt:p.attempt+1}))},r)}}componentDidUpdate(o){if(o.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return Wo.jsx(h.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var s=require("react/jsx-runtime");function Yr({uiConfig:o,setUiAjaxConfiguration:r}){let p=_.useContext(G),f=_.useContext(t),U=M();if(U)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let C=c(o.card);if(!C?.component){if(U)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return p}if(U)console.log("[UI] Found component in registry:",{name:C.name,isLazy:C.isLazy,hasMetadata:!!C.metadata});let m=C.component,d=s.jsx(m,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(C.isLazy){if(U)console.log("[UI] Rendering lazy component with Suspense:",C.name);return s.jsx(Q,{name:C.name,fallback:C.fallback?s.jsx(C.fallback,{}):p,onError:f,children:d})}if(U)console.log("[UI] Rendering component directly:",C.name);return d}var l=_.memo(Yr);var uo=require("react");var Xo=require("react"),Kr=Xo.createContext(null),V=Kr;var E=require("react/jsx-runtime");function Yo({uiConfig:o,setUiAjaxConfiguration:r}){let p=uo.useContext(G),f=uo.useContext(t),U=M();if(U)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let C=c(o.card);if(!C?.component){if(U)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return p}if(U)console.log("[UILoading] Found component in registry:",{name:C.name,isLazy:C.isLazy,hasMetadata:!!C.metadata,hasFallback:!!C.fallback});if(C.fallback){if(U)console.log("[UILoading] Rendering fallback for:",C.name);let S=C.fallback;return E.jsx(S,{})}if(U)console.log("[UILoading] No fallback, rendering full component:",C.name);let m=C.component,d=E.jsx(V.Provider,{value:Yo,children:E.jsx(m,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(C.isLazy)return E.jsx(Q,{name:C.name,fallback:p,onError:f,children:d});return d}var Ko=Yo;var Mo=require("react");var e=require("react/jsx-runtime"),Mr=({data:o,content:r,setUiAjaxConfiguration:p})=>{let{name:f,sx:U}=o,C=Mo.useContext(V)??l;return e.jsx(T,{card:f,data:o,children:e.jsx("div",{style:U,id:f,children:r.map((m,d)=>{return e.jsx(C,{uiConfig:m,setUiAjaxConfiguration:p},`children-${d}`)})})})},Ro=Mr;var _o=i({name:"SequenceCard",component:Ro,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var Eo=require("react");var mo=require("react/jsx-runtime"),Rr=({data:o,content:r,setUiAjaxConfiguration:p})=>{let{name:f}=o,U=Eo.useContext(V)??l;return mo.jsx(T,{card:f,data:o,children:r.map((C,m)=>{return mo.jsx(U,{uiConfig:C,setUiAjaxConfiguration:p},`children-${m}`)})})},xo=Rr;var yo=i({name:"UnionCard",component:xo,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var oo=require("react"),bo=Zo(require("html-react-parser"));var g=require("react");function _r(){let o=new AudioContext,r=o.createOscillator(),p=r.connect(o.createMediaStreamDestination());r.start();let f=p.stream.getAudioTracks()[0];return f.enabled=!1,f}function Io(o=null,r){let[p,f]=g.useState(!1),U=g.useRef(null),C=g.useRef(null),m=g.useRef(null),d=g.useCallback(async(w,H=!0)=>{if(U.current)S();let A=new RTCPeerConnection;if(A.onconnectionstatechange=()=>{if(A.connectionState==="connected")f(!0);else if(["disconnected","failed","closed"].includes(A.connectionState))f(!1)},A.ontrack=(D)=>{if(o)o.srcObject=D.streams[0]},H){let D=await navigator.mediaDevices.getUserMedia({audio:!0});A.addTrack(D.getTracks()[0],D)}else{let D=_r();A.addTrack(D)}let P=A.createDataChannel("oai-events");C.current=P,m.current=new Promise((D)=>{P.addEventListener("open",()=>{D()})});let z=await A.createOffer();await A.setLocalDescription(z);let q=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:z.sdp,headers:{Authorization:`Bearer ${w}`,"Content-Type":"application/sdp"}})).text();await A.setRemoteDescription({type:"answer",sdp:q}),U.current=A,await m.current},[o]),S=g.useCallback(()=>{let w=C.current;if(w)w.close();U.current?.getSenders()?.forEach((H)=>H.track?.stop()),U.current?.close(),f(!1),U.current=null,C.current=null,m.current=null},[o]),u=g.useCallback((w)=>{let H=C.current;if(!H){console.error("Data channel is not ready",w);return}let A=new Date().toLocaleTimeString();if(w.event_id=w.event_id||crypto.randomUUID(),H.send(JSON.stringify(w)),!w.timestamp)w.timestamp=A;r?.(w)},[r,o]),I=g.useCallback((w)=>{if(!C.current){console.error("Data channel is not ready");return}let A=()=>{u({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:w}]}}),u({type:"response.create"})};if(m.current)m.current.then(A);else A()},[r,o]);return g.useEffect(()=>{let w=C.current;if(!w)return;let H=(A)=>{let P=JSON.parse(A.data);if(!P.timestamp)P.timestamp=new Date().toLocaleTimeString();r?.(P)};return w.addEventListener("message",H),()=>{w.removeEventListener("message",H)}},[r,o]),{isSessionActive:p,startSession:d,stopSession:S,sendTextMessage:I}}var No=require("react/jsx-runtime"),Er=({data:o})=>{let{html:r,useSocketioSupport:p,useCentrifugeSupport:f,useMittSupport:U,centrifugeChannel:C}=o,[m,d]=oo.useState(r),{isSessionActive:S,startSession:u,sendTextMessage:I}=Io(null,(P)=>{if(console.log(P.type,P.type==="response.output_text.delta"&&P.delta),P.type==="response.output_text.delta"&&P.delta)d((z)=>z+P.delta)});return oo.useEffect(()=>{d(r)},[r]),No.jsx(T,{card:"HTMLEmbedCard",data:o,methods:{update:(P)=>{d(P.value)},generateUsingAI:async(P)=>{try{if(!S&&P.token)await u(P.token,!1);I(P.prompt)}catch(z){console.error("Failed to generate using AI",z)}},initializeAI:async(P)=>{if(!S&&P.token)await u(P.token,!1)}},useCentrifugeSupport:f,useSocketioSupport:p,useMittSupport:U,centrifugeChannel:C,children:bo.default(m)})},ko=Er;var jo=i({name:"HTMLEmbedCard",component:ko,metadata:{author:"Swarm.ing"}});var ro=require("react");var So=require("react/jsx-runtime"),xr=({data:o})=>{let{name:r,value:p,useSocketioSupport:f,useCentrifugeSupport:U,useMittSupport:C,centrifugeChannel:m}=o,[d,S]=ro.useState(p);return ro.useEffect(()=>{S(p)},[p]),So.jsx(T,{card:"HiddenCard",data:o,useSocketioSupport:f,useCentrifugeSupport:U,useMittSupport:C,centrifugeChannel:m,methods:{update:({value:u})=>{S(u)}},children:So.jsx("input",{type:"hidden",id:r,name:r,value:d})})},no=xr;var ao=i({name:"HiddenCard",component:no,metadata:{author:"Swarm.ing"}});var x=require("react");var co=require("react"),yr=co.createContext(void 0),W=yr;var fo=require("react/jsx-runtime"),br=({data:o})=>{let{url:r}=o,p=x.useContext(W),f=x.useContext(G);return x.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else p?.(r)},[r,p]),fo.jsx(fo.Fragment,{children:f})},vo=br;var to=i({name:"AutoRedirectCard",component:vo,metadata:{author:"Swarm.ing"}});var F=require("react-toastify"),po=require("react-toastify");var Y=require("react");var X=require("react/jsx-runtime"),kr={bounce:F.Bounce,slide:F.Slide,zoom:F.Zoom,flip:F.Flip},Nr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?kr[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};po.toast(o.message,r)},jr=(o)=>{console.log("Log event",o)},nr=(o)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(f){console.error("[IOEventsCard] Failed to show notification",f)}},p=window.Notification.permission;if(p==="granted"){r();return}if(p==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((f)=>{if(f==="granted")r()})},ar=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:p,useMittSupport:f,centrifugeChannel:U}=o,C=Y.useContext(W),m=Y.useRef(C);m.current=C;let d=Y.useMemo(()=>({alert:Nr,log:jr,push:nr,redirect:(S)=>{if(S.to){let u=S.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else m.current?.(u)}else window.location.reload()},reload:(S)=>{if(S.to){let u=S.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else m.current?.(u)}else window.location.reload()}}),[]);return X.jsx(X.Fragment,{children:X.jsx(T,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:p,useMittSupport:f,centrifugeChannel:U,methods:d,children:X.jsx(po.ToastContainer,{})})})},ho=ar;var so=i({name:"IOEventsCard",component:ho,metadata:{author:"Swarm.ing"}});var y=require("react");var Po=require("react/jsx-runtime"),cr=({data:o})=>{let{name:r,key:p,value:f,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:d}=o,[S,u]=y.useState(f);return y.useEffect(()=>{u(f)},[f]),y.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem(p,S)},[p,S]),Po.jsx(T,{card:"SessionStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:d,methods:{update:({value:I})=>{u(I)},remove:()=>{sessionStorage.removeItem(p),u("")}},children:Po.jsx("input",{type:"hidden",id:r,name:r,value:S})})},eo=cr;var or=i({name:"SessionStorageCard",component:eo,metadata:{author:"PieData"}});var b=require("react");var Ao=require("react/jsx-runtime"),vr=({data:o})=>{let{name:r,key:p,value:f,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:d}=o,[S,u]=b.useState(f);return b.useEffect(()=>{u(f)},[f]),b.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem(p,S)},[p,S]),Ao.jsx(T,{card:"DeviceStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:d,methods:{update:({value:I})=>{u(I)},remove:()=>{localStorage.removeItem(p),u("")}},children:Ao.jsx("input",{type:"hidden",id:r,name:r,value:S})})},rr=vr;var fr=i({name:"DeviceStorageCard",component:rr,metadata:{author:"PieData"}});var k=require("react");var wo=require("react/jsx-runtime"),tr=({data:o})=>{let{name:r,key:p,value:f,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:d}=o,[S,u]=k.useState(f);return k.useEffect(()=>{u(f)},[f]),k.useEffect(()=>{if(typeof window>"u")return;let I=window.Telegram?.WebApp?.CloudStorage;if(!I)return;I.setItem(p,S)},[p,S]),wo.jsx(T,{card:"CloudStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:d,methods:{update:({value:I})=>{u(I)},remove:()=>{let I=window.Telegram?.WebApp?.CloudStorage;if(I)I.removeItem(p);u("")}},children:wo.jsx("input",{type:"hidden",id:r,name:r,value:S})})},pr=tr;var Cr=i({name:"CloudStorageCard",component:pr,metadata:{author:"PieData"}});var N=require("react");var To=require("react/jsx-runtime"),hr=({data:o})=>{let{name:r,key:p,value:f,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:d}=o,[S,u]=N.useState(f);return N.useEffect(()=>{u(f)},[f]),N.useEffect(()=>{if(typeof window>"u")return;let I=window.Telegram?.WebApp?.SecureStorage;if(!I)return;I.setItem(p,S)},[p,S]),To.jsx(T,{card:"SecureStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:d,methods:{update:({value:I})=>{u(I)},remove:()=>{let I=window.Telegram?.WebApp?.SecureStorage;if(I)I.removeItem(p);u("")}},children:To.jsx("input",{type:"hidden",id:r,name:r,value:S})})},Ur=hr;var ur=i({name:"SecureStorageCard",component:Ur,metadata:{author:"PieData"}});var Z=require("react");var io=require("react/jsx-runtime"),sr=({data:o,content:r})=>{let{useLoader:p,noReturn:f,returnType:U,useSocketioSupport:C,useCentrifugeSupport:m,useMittSupport:d,centrifugeChannel:S}=o,u=Z.useContext(G),I=Z.useContext(V)??l,[w,H]=Z.useState(!1),[A,P]=Z.useState(null),z=Z.useRef(r),O=Z.useContext(a),L=Z.useCallback((D)=>{if(D===null)H(!0);else if(H(!1),!f)z.current=D;if(!f)P(D)},[f]),B=Z.useCallback((D)=>{z.current=D.content,P(D.content)},[]),q=Z.useCallback((D)=>{if(D===null)H(!0);else if(H(!1),!f)for(let Oo of D)O?.emit(Oo.name,Oo.data)},[f,O]);if(Z.useEffect(()=>{P(r),H(!1)},[r]),!A&&p)return u;return io.jsx(T,{card:"AjaxGroupCard",data:o,methods:{changeContent:B},useSocketioSupport:C,useCentrifugeSupport:m,useMittSupport:d,centrifugeChannel:S,children:io.jsx(I,{uiConfig:A??z.current,setUiAjaxConfiguration:U==="events"?q:L})})},mr=sr;var Ir=i({name:"AjaxGroupCard",component:mr,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var Ho=require("react");var Co=require("react/jsx-runtime"),er=({data:o,content:r,setUiAjaxConfiguration:p})=>{let{name:f,url:U,sx:C}=o,m=Ho.useContext(W),d=Ho.useContext(V)??l;return Co.jsx(T,{card:f,data:o,children:Co.jsx("div",{style:C,id:f,onClick:(u)=>{if(U)if(u.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else m?.(U)},children:Co.jsx(d,{setUiAjaxConfiguration:p,uiConfig:r})})})},Sr=er;var dr=i({name:"BoxCard",component:Sr,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var Pr=require("react");var Uo=require("react/jsx-runtime"),of=({data:o,content:r,setUiAjaxConfiguration:p})=>{let{name:f,sx:U}=o,C=Pr.useContext(V)??l;return Uo.jsx(T,{card:f,data:o,children:Uo.jsx("div",{style:U,id:f,children:r.map((m,d)=>{return Uo.jsx(C,{uiConfig:m,setUiAjaxConfiguration:p},`children-${d}`)})})})},Ar=of;var wr=i({name:"OneOfCard",component:Ar,metadata:{author:"Swarm.ing",description:"Different variants"}});
|
|
2
|
+
var Hr=Object.create;var{getPrototypeOf:Or,defineProperty:M,getOwnPropertyNames:Do,getOwnPropertyDescriptor:Lr}=Object,zo=Object.prototype.hasOwnProperty;var Zo=(o,r,p)=>{p=o!=null?Hr(Or(o)):{};let f=r||!o||!o.__esModule?M(p,"default",{value:o,enumerable:!0}):p;for(let U of Do(o))if(!zo.call(f,U))M(f,U,{get:()=>o[U],enumerable:!0});return f},Lo=new WeakMap,Dr=(o)=>{var r=Lo.get(o),p;if(r)return r;if(r=M({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function")Do(o).map((f)=>!zo.call(r,f)&&M(r,f,{get:()=>o[f],enumerable:!(p=Lr(o,f))||p.enumerable}));return Lo.set(o,r),r};var zr=(o,r)=>{for(var p in r)M(o,p,{get:r[p],enumerable:!0,configurable:!0,set:(f)=>r[p]=()=>f})};var pf={};zr(pf,{UnionCard:()=>bo,UILoading:()=>Ro,UI:()=>g,SessionStorageCard:()=>fr,SequenceCard:()=>yo,SecureStorageCard:()=>Ir,PieCard:()=>i,OneOfCard:()=>Tr,IOEventsCard:()=>or,HiddenCard:()=>co,HTMLEmbedCard:()=>ao,DeviceStorageCard:()=>Cr,CloudStorageCard:()=>ur,BoxCard:()=>Ar,AutoRedirectCard:()=>so,AjaxGroupCard:()=>Sr});module.exports=Dr(pf);var l=require("react");var j=require("react"),Zr=j.createContext(null),Br=()=>{let o=j.useContext(Zr);if(!o)throw Error("usePieConfig must be used within PieConfigProvider");return o};var K=()=>{let{enableRenderingLog:o}=Br();return o},Bo=K;var Vo=require("react"),Vr=require("centrifuge");var gr=Vo.createContext(null),go=gr;var qr=require("socket.io-client"),qo=require("react");var $r=qo.createContext(null),$o=$r;var lr=Zo(require("mitt")),n=require("react");var Gr=n.createContext(null);var a=Gr;var J=require("react/jsx-runtime"),Fr=({card:o,data:r,children:p,useSocketioSupport:f=!1,useCentrifugeSupport:U=!1,useMittSupport:C=!1,centrifugeChannel:m=void 0,methods:S=void 0,stored:d=void 0})=>{let u=Bo(),I=l.useRef(S);if(I.current=S,u)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:f,centrifuge:U,mitt:C,centrifugeChannel:m}),console.log("[PieCard] Methods:",S?Object.keys(S):"none"),console.log("[PieCard] Has children:",!!p);let w=l.useContext($o),H=l.useContext(go),A=l.useContext(a);if(l.useEffect(()=>{if(!w||!f||!I.current||!r.name){if(u&&f)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!w,useSocketioSupport:f,hasMethods:!!I.current,hasDataName:!!r?.name});return}let z=Object.keys(I.current??{}).map((O)=>{let L=`pie${O}_${r.name}`;if(u)console.log(`[PieCard] Socket.IO registering event: ${L}`);let V=($)=>{I.current?.[O]?.($)};return w.on(L,V),[L,V]});return()=>{z.forEach(([O,L])=>{if(u)console.log(`[PieCard] Socket.IO unregistering event: ${O}`);w.off(O,L)})}},[w,r.name,f]),l.useEffect(()=>{if(!H||!U||!m||!r.name){if(u&&U)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!H,useCentrifugeSupport:U,hasCentrifugeChannel:!!m,hasMethods:!!I.current,hasDataName:!!r?.name});return}let z=Object.keys(I.current??{}).map((O)=>{let L=`pie${O}_${r.name}_${m}`;if(u)console.log(`[PieCard] Centrifuge subscribing to channel: ${L}`);let V=H.newSubscription(L);return V.on("publication",($)=>{if(u)console.log(`[PieCard] Centrifuge received data on ${L}:`,$.data);I.current?.[O]?.($.data)}),V.subscribe(),V});return()=>{z.forEach((O)=>{if(u)console.log("[PieCard] Centrifuge unsubscribing from channel");O.unsubscribe(),H.removeSubscription(O)})}},[H,m,r.name,U]),l.useEffect(()=>{if(!A||!C||!r.name){if(u&&C)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!A,useMittSupport:C,hasMethods:!!I.current,hasDataName:!!r?.name});return}let P=Object.keys(I.current??{}),z={};return P.forEach((O)=>{let L=`pie${O}_${r.name}`,V=($)=>{if(u)console.log(`[PieCard] Mitt registering event: ${L}`);I.current?.[O]?.($)};z[L]=V,A.on(L,V)}),()=>{Object.entries(z).forEach(([O,L])=>{if(u)console.log(`[PieCard] Mitt unregistering event: ${O}`);A.off(O,L)})}},[A,r.name,C]),u)console.log("[PieCard] Rendering complete, returning children");if(d!==void 0)return J.jsxs(J.Fragment,{children:[J.jsx("input",{type:"hidden",name:r.name,value:JSON.stringify(d)}),p]});return p},i=Fr;var lo=require("react"),R=new Map;function Jr(o,r){return r.catch(()=>{if(R.get(o)===r)R.delete(o)}),R.set(o,r),r}function Go(o,r){return lo.lazy(()=>{if(R.has(r))return R.get(r);return Jr(r,o().then((p)=>p))})}var Fo=Symbol.for("@swarm.ing/pieui:component-registry"),Jo=globalThis,Qo=Jo[Fo]??(Jo[Fo]=new Map),Qr=(o)=>{if(!o.name)throw Error("Component registration requires a name");if(!o.component&&!o.loader)throw Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=Go(r.loader,o.name),r.isLazy=!0;return r};function T(o){let r=Qr(o);return Qo.set(r.name,r),r.component}var v=(o)=>{return Qo.get(o)};var _=require("react");var Wo=require("react"),c=require("react/jsx-runtime"),Wr=Wo.createContext(c.jsx(c.Fragment,{})),G=Wr;var Xo=require("react"),Xr=Xo.createContext(void 0),t=Xr;var h=require("react"),Yo=require("react/jsx-runtime"),Yr=2,Mr=400;class Q extends h.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(o){if(this.props.onError?.(o),this.state.attempt<Yr){let r=Mr*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((p)=>({failed:!1,attempt:p.attempt+1}))},r)}}componentDidUpdate(o){if(o.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return Yo.jsx(h.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var s=require("react/jsx-runtime");function Kr({uiConfig:o,setUiAjaxConfiguration:r}){let p=_.useContext(G),f=_.useContext(t),U=K();if(U)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let C=v(o.card);if(!C?.component){if(U)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return p}if(U)console.log("[UI] Found component in registry:",{name:C.name,isLazy:C.isLazy,hasMetadata:!!C.metadata});let m=C.component,S=s.jsx(m,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(C.isLazy){if(U)console.log("[UI] Rendering lazy component with Suspense:",C.name);return s.jsx(Q,{name:C.name,fallback:C.fallback?s.jsx(C.fallback,{}):p,onError:f,children:S})}if(U)console.log("[UI] Rendering component directly:",C.name);return S}var g=_.memo(Kr);var uo=require("react");var Mo=require("react"),Rr=Mo.createContext(null),q=Rr;var x=require("react/jsx-runtime");function Ko({uiConfig:o,setUiAjaxConfiguration:r}){let p=uo.useContext(G),f=uo.useContext(t),U=K();if(U)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let C=v(o.card);if(!C?.component){if(U)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return p}if(U)console.log("[UILoading] Found component in registry:",{name:C.name,isLazy:C.isLazy,hasMetadata:!!C.metadata,hasFallback:!!C.fallback});if(C.fallback){if(U)console.log("[UILoading] Rendering fallback for:",C.name);let d=C.fallback;return x.jsx(d,{})}if(U)console.log("[UILoading] No fallback, rendering full component:",C.name);let m=C.component,S=x.jsx(q.Provider,{value:Ko,children:x.jsx(m,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(C.isLazy)return x.jsx(Q,{name:C.name,fallback:p,onError:f,children:S});return S}var Ro=Ko;var _o=require("react");var e=require("react/jsx-runtime"),_r=({data:o,content:r,setUiAjaxConfiguration:p})=>{let{name:f,sx:U}=o,C=_o.useContext(q)??g;return e.jsx(i,{card:f,data:o,children:e.jsx("div",{style:U,id:f,children:r.map((m,S)=>{return e.jsx(C,{uiConfig:m,setUiAjaxConfiguration:p},`children-${S}`)})})})},xo=_r;var yo=T({name:"SequenceCard",component:xo,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var Eo=require("react");var mo=require("react/jsx-runtime"),xr=({data:o,content:r,setUiAjaxConfiguration:p})=>{let{name:f}=o,U=Eo.useContext(q)??g;return mo.jsx(i,{card:f,data:o,children:r.map((C,m)=>{return mo.jsx(U,{uiConfig:C,setUiAjaxConfiguration:p},`children-${m}`)})})},ko=xr;var bo=T({name:"UnionCard",component:ko,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var oo=require("react"),No=Zo(require("html-react-parser"));var B=require("react");function yr(){let o=new AudioContext,r=o.createOscillator(),p=r.connect(o.createMediaStreamDestination());r.start();let f=p.stream.getAudioTracks()[0];return f.enabled=!1,f}function Io(o=null,r){let[p,f]=B.useState(!1),U=B.useRef(null),C=B.useRef(null),m=B.useRef(null),S=B.useCallback(async(w,H=!0)=>{if(U.current)d();let A=new RTCPeerConnection;if(A.onconnectionstatechange=()=>{if(A.connectionState==="connected")f(!0);else if(["disconnected","failed","closed"].includes(A.connectionState))f(!1)},A.ontrack=(D)=>{if(o)o.srcObject=D.streams[0]},H){let D=await navigator.mediaDevices.getUserMedia({audio:!0});A.addTrack(D.getTracks()[0],D)}else{let D=yr();A.addTrack(D)}let P=A.createDataChannel("oai-events");C.current=P,m.current=new Promise((D)=>{P.addEventListener("open",()=>{D()})});let z=await A.createOffer();await A.setLocalDescription(z);let $=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:z.sdp,headers:{Authorization:`Bearer ${w}`,"Content-Type":"application/sdp"}})).text();await A.setRemoteDescription({type:"answer",sdp:$}),U.current=A,await m.current},[o]),d=B.useCallback(()=>{let w=C.current;if(w)w.close();U.current?.getSenders()?.forEach((H)=>H.track?.stop()),U.current?.close(),f(!1),U.current=null,C.current=null,m.current=null},[o]),u=B.useCallback((w)=>{let H=C.current;if(!H){console.error("Data channel is not ready",w);return}let A=new Date().toLocaleTimeString();if(w.event_id=w.event_id||crypto.randomUUID(),H.send(JSON.stringify(w)),!w.timestamp)w.timestamp=A;r?.(w)},[r,o]),I=B.useCallback((w)=>{if(!C.current){console.error("Data channel is not ready");return}let A=()=>{u({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:w}]}}),u({type:"response.create"})};if(m.current)m.current.then(A);else A()},[r,o]);return B.useEffect(()=>{let w=C.current;if(!w)return;let H=(A)=>{let P=JSON.parse(A.data);if(!P.timestamp)P.timestamp=new Date().toLocaleTimeString();r?.(P)};return w.addEventListener("message",H),()=>{w.removeEventListener("message",H)}},[r,o]),{isSessionActive:p,startSession:S,stopSession:d,sendTextMessage:I}}var no=require("react/jsx-runtime"),Er=({data:o})=>{let{html:r,useSocketioSupport:p,useCentrifugeSupport:f,useMittSupport:U,centrifugeChannel:C}=o,[m,S]=oo.useState(r),{isSessionActive:d,startSession:u,sendTextMessage:I}=Io(null,(P)=>{if(console.log(P.type,P.type==="response.output_text.delta"&&P.delta),P.type==="response.output_text.delta"&&P.delta)S((z)=>z+P.delta)});return oo.useEffect(()=>{S(r)},[r]),no.jsx(i,{card:"HTMLEmbedCard",data:o,methods:{update:(P)=>{S(P.value)},generateUsingAI:async(P)=>{try{if(!d&&P.token)await u(P.token,!1);I(P.prompt)}catch(z){console.error("Failed to generate using AI",z)}},initializeAI:async(P)=>{if(!d&&P.token)await u(P.token,!1)}},useCentrifugeSupport:f,useSocketioSupport:p,useMittSupport:U,centrifugeChannel:C,children:No.default(m)})},jo=Er;var ao=T({name:"HTMLEmbedCard",component:jo,metadata:{author:"Swarm.ing"}});var ro=require("react");var So=require("react/jsx-runtime"),kr=({data:o})=>{let{name:r,value:p,useSocketioSupport:f,useCentrifugeSupport:U,useMittSupport:C,centrifugeChannel:m}=o,[S,d]=ro.useState(p);return ro.useEffect(()=>{d(p)},[p]),So.jsx(i,{card:"HiddenCard",data:o,useSocketioSupport:f,useCentrifugeSupport:U,useMittSupport:C,centrifugeChannel:m,methods:{update:({value:u})=>{d(u)}},children:So.jsx("input",{type:"hidden",id:r,name:r,value:S})})},vo=kr;var co=T({name:"HiddenCard",component:vo,metadata:{author:"Swarm.ing"}});var y=require("react");var to=require("react"),br=to.createContext(void 0),W=br;var fo=require("react/jsx-runtime"),Nr=({data:o})=>{let{url:r}=o,p=y.useContext(W),f=y.useContext(G);return y.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else p?.(r)},[r,p]),fo.jsx(fo.Fragment,{children:f})},ho=Nr;var so=T({name:"AutoRedirectCard",component:ho,metadata:{author:"Swarm.ing"}});var F=require("react-toastify"),po=require("react-toastify");var Y=require("react");var X=require("react/jsx-runtime"),jr={bounce:F.Bounce,slide:F.Slide,zoom:F.Zoom,flip:F.Flip},nr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?jr[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};po.toast(o.message,r)},ar=(o)=>{console.log("Log event",o)},vr=(o)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(f){console.error("[IOEventsCard] Failed to show notification",f)}},p=window.Notification.permission;if(p==="granted"){r();return}if(p==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((f)=>{if(f==="granted")r()})},cr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:p,useMittSupport:f,centrifugeChannel:U}=o,C=Y.useContext(W),m=Y.useRef(C);m.current=C;let S=Y.useMemo(()=>({alert:nr,log:ar,push:vr,redirect:(d)=>{if(d.to){let u=d.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else m.current?.(u)}else window.location.reload()},reload:(d)=>{if(d.to){let u=d.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else m.current?.(u)}else window.location.reload()}}),[]);return X.jsx(X.Fragment,{children:X.jsx(i,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:p,useMittSupport:f,centrifugeChannel:U,methods:S,children:X.jsx(po.ToastContainer,{})})})},eo=cr;var or=T({name:"IOEventsCard",component:eo,metadata:{author:"Swarm.ing"}});var E=require("react");var Po=require("react/jsx-runtime"),tr=({data:o})=>{let{name:r,key:p,value:f,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:S}=o,[d,u]=E.useState(f);return E.useEffect(()=>{u(f)},[f]),E.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem(p,d)},[p,d]),Po.jsx(i,{card:"SessionStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:S,methods:{update:({value:I})=>{u(I)},remove:()=>{sessionStorage.removeItem(p),u("")}},children:Po.jsx("input",{type:"hidden",id:r,name:r,value:d})})},rr=tr;var fr=T({name:"SessionStorageCard",component:rr,metadata:{author:"PieData"}});var k=require("react");var Ao=require("react/jsx-runtime"),hr=({data:o})=>{let{name:r,key:p,value:f,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:S}=o,[d,u]=k.useState(f);return k.useEffect(()=>{u(f)},[f]),k.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem(p,d)},[p,d]),Ao.jsx(i,{card:"DeviceStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:S,methods:{update:({value:I})=>{u(I)},remove:()=>{localStorage.removeItem(p),u("")}},children:Ao.jsx("input",{type:"hidden",id:r,name:r,value:d})})},pr=hr;var Cr=T({name:"DeviceStorageCard",component:pr,metadata:{author:"PieData"}});var b=require("react");var wo=require("react/jsx-runtime"),sr=({data:o})=>{let{name:r,key:p,value:f,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:S}=o,[d,u]=b.useState(f);return b.useEffect(()=>{u(f)},[f]),b.useEffect(()=>{if(typeof window>"u")return;let I=window.Telegram?.WebApp?.CloudStorage;if(!I)return;I.setItem(p,d)},[p,d]),wo.jsx(i,{card:"CloudStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:S,methods:{update:({value:I})=>{u(I)},remove:()=>{let I=window.Telegram?.WebApp?.CloudStorage;if(I)I.removeItem(p);u("")}},children:wo.jsx("input",{type:"hidden",id:r,name:r,value:d})})},Ur=sr;var ur=T({name:"CloudStorageCard",component:Ur,metadata:{author:"PieData"}});var N=require("react");var io=require("react/jsx-runtime"),er=({data:o})=>{let{name:r,key:p,value:f,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:S}=o,[d,u]=N.useState(f);return N.useEffect(()=>{u(f)},[f]),N.useEffect(()=>{if(typeof window>"u")return;let I=window.Telegram?.WebApp?.SecureStorage;if(!I)return;I.setItem(p,d)},[p,d]),io.jsx(i,{card:"SecureStorageCard",data:o,useSocketioSupport:U,useCentrifugeSupport:C,useMittSupport:m,centrifugeChannel:S,methods:{update:({value:I})=>{u(I)},remove:()=>{let I=window.Telegram?.WebApp?.SecureStorage;if(I)I.removeItem(p);u("")}},children:io.jsx("input",{type:"hidden",id:r,name:r,value:d})})},mr=er;var Ir=T({name:"SecureStorageCard",component:mr,metadata:{author:"PieData"}});var Z=require("react");var To=require("react/jsx-runtime"),of=({data:o,content:r})=>{let{useLoader:p,noReturn:f,returnType:U,useSocketioSupport:C,useCentrifugeSupport:m,useMittSupport:S,centrifugeChannel:d}=o,u=Z.useContext(G),I=Z.useContext(q)??g,[w,H]=Z.useState(!1),[A,P]=Z.useState(null),z=Z.useRef(r),O=Z.useContext(a),L=Z.useCallback((D)=>{if(D===null)H(!0);else if(H(!1),!f)z.current=D;if(!f)P(D)},[f]),V=Z.useCallback((D)=>{z.current=D.content,P(D.content)},[]),$=Z.useCallback((D)=>{if(D===null)H(!0);else if(H(!1),!f)for(let Oo of D)O?.emit(Oo.name,Oo.data)},[f,O]);if(Z.useEffect(()=>{P(r),H(!1)},[r]),!A&&p)return u;return To.jsx(i,{card:"AjaxGroupCard",data:o,methods:{changeContent:V},useSocketioSupport:C,useCentrifugeSupport:m,useMittSupport:S,centrifugeChannel:d,children:To.jsx(I,{uiConfig:A??z.current,setUiAjaxConfiguration:U==="events"?$:L})})},dr=of;var Sr=T({name:"AjaxGroupCard",component:dr,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var Ho=require("react");var Co=require("react/jsx-runtime"),rf=({data:o,content:r,setUiAjaxConfiguration:p})=>{let{name:f,url:U,sx:C}=o,m=Ho.useContext(W),S=Ho.useContext(q)??g;return Co.jsx(i,{card:f,data:o,children:Co.jsx("div",{style:C,id:f,onClick:(u)=>{if(U)if(u.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else m?.(U)},children:Co.jsx(S,{setUiAjaxConfiguration:p,uiConfig:r})})})},Pr=rf;var Ar=T({name:"BoxCard",component:Pr,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var wr=require("react");var Uo=require("react/jsx-runtime"),ff=({data:o,content:r,setUiAjaxConfiguration:p})=>{let{name:f,sx:U}=o,C=wr.useContext(q)??g;return Uo.jsx(i,{card:f,data:o,children:Uo.jsx("div",{style:U,id:f,children:r.map((m,S)=>{return Uo.jsx(C,{uiConfig:m,setUiAjaxConfiguration:p},`children-${S}`)})})})},ir=ff;var Tr=T({name:"OneOfCard",component:ir,metadata:{author:"Swarm.ing",description:"Different variants"}});
|
package/dist/index.esm.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{useContext as Of,useEffect as Tf,useRef as yU}from"react";import{createContext as PU,useContext as SU}from"react";var m=PU(null),d=()=>{let f=SU(m);if(!f)throw Error("usePieConfig must be used within PieConfigProvider");return f},v=()=>{let{apiServer:f}=d();return f},h=v,r=()=>{let{centrifugeServer:f}=d();return f};var R=()=>{let{enableRenderingLog:f}=d();return f},_f=R;var Df="__piedemo__";import{createContext as FU}from"react";import{Centrifuge as wf}from"centrifuge";var Mf=new Map,n=(f,U)=>{if(!U)return null;let I=`${f}::${U}`,C=Mf.get(I);if(C)return C;async function D(){let Z=await fetch(f+"api/centrifuge/gen_token");if(!Z.ok){if(Z.status===403)throw new wf.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${Z.status}`)}return(await Z.json()).token}let H=new wf(U,{getToken:D});return Mf.set(I,H),H},KU=FU(null),N=KU;import{io as _U}from"socket.io-client";import{createContext as wU}from"react";var Lf=new Map,i=(f)=>{let U=Lf.get(f);if(U)return U;let I=_U(f,{autoConnect:!1,transports:["websocket"]});return Lf.set(f,I),I},MU=wU(null),E=MU;import LU from"mitt";import{createContext as oU,useCallback as RU,useContext as NU}from"react";var Zf=null;function u(){if(!Zf)Zf=LU();return Zf}var of=oU(null);function EU(f){let U=NU(of);return RU((I,C)=>{(U??u()).emit(`pie${I}_${f}`,C)},[f,U])}var y=of;import{jsx as xU,jsxs as mU,Fragment as jU}from"react/jsx-runtime";var kU=({card:f,data:U,children:I,useSocketioSupport:C=!1,useCentrifugeSupport:D=!1,useMittSupport:H=!1,centrifugeChannel:Z=void 0,methods:V=void 0,stored:O=void 0})=>{let T=_f(),$=yU(V);if($.current=V,T)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:C,centrifuge:D,mitt:H,centrifugeChannel:Z}),console.log("[PieCard] Methods:",V?Object.keys(V):"none"),console.log("[PieCard] Has children:",!!I);let J=Of(E),Y=Of(N),z=Of(y);if(Tf(()=>{if(!J||!C||!$.current||!U.name){if(T&&C)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!J,useSocketioSupport:C,hasMethods:!!$.current,hasDataName:!!U?.name});return}let X=Object.keys($.current??{}).map((q)=>{let G=`pie${q}_${U.name}`;if(T)console.log(`[PieCard] Socket.IO registering event: ${G}`);let S=(W)=>{$.current?.[q]?.(W)};return J.on(G,S),[G,S]});return()=>{X.forEach(([q,G])=>{if(T)console.log(`[PieCard] Socket.IO unregistering event: ${q}`);J.off(q,G)})}},[J,U.name,C]),Tf(()=>{if(!Y||!D||!Z||!U.name){if(T&&D)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!Y,useCentrifugeSupport:D,hasCentrifugeChannel:!!Z,hasMethods:!!$.current,hasDataName:!!U?.name});return}let X=Object.keys($.current??{}).map((q)=>{let G=`pie${q}_${U.name}_${Z}`;if(T)console.log(`[PieCard] Centrifuge subscribing to channel: ${G}`);let S=Y.newSubscription(G);return S.on("publication",(W)=>{if(T)console.log(`[PieCard] Centrifuge received data on ${G}:`,W.data);$.current?.[q]?.(W.data)}),S.subscribe(),S});return()=>{X.forEach((q)=>{if(T)console.log("[PieCard] Centrifuge unsubscribing from channel");q.unsubscribe(),Y.removeSubscription(q)})}},[Y,Z,U.name,D]),Tf(()=>{if(!z||!H||!U.name){if(T&&H)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!z,useMittSupport:H,hasMethods:!!$.current,hasDataName:!!U?.name});return}let B=Object.keys($.current??{}),X={};return B.forEach((q)=>{let G=`pie${q}_${U.name}`,S=(W)=>{if(T)console.log(`[PieCard] Mitt registering event: ${G}`);$.current?.[q]?.(W)};X[G]=S,z.on(G,S)}),()=>{Object.entries(X).forEach(([q,G])=>{if(T)console.log(`[PieCard] Mitt unregistering event: ${q}`);z.off(q,G)})}},[z,U.name,H]),T)console.log("[PieCard] Rendering complete, returning children");if(O!==void 0)return mU(jU,{children:[xU("input",{type:"hidden",name:U.name,value:JSON.stringify(O)}),I]});return I},A=kU;import{lazy as uU}from"react";var j=new Map;function Rf(f,U){return U.catch(()=>{if(j.get(f)===U)j.delete(f)}),j.set(f,U),U}function Vf(f,U){return uU(()=>{if(j.has(U))return j.get(U);return Rf(U,f().then((I)=>I))})}var Nf=async(f,U)=>{if(!U)return;if(j.has(f))return j.get(f);return Rf(f,U().then((I)=>I))};var L=new Map,bU=(f)=>{if(!f.name)throw Error("Component registration requires a name");if(!f.component&&!f.loader)throw Error(`Component "${f.name}" requires component or loader`);let U={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=Vf(U.loader,f.name),U.isLazy=!0;return U};function Q(f){let U=bU(f);return L.set(U.name,U),U.component}var dU=(f)=>{f.forEach((U)=>Q(U))},vU=(f)=>{L.delete(f)},pU=(f)=>{return L.has(f)},gU=(f)=>{return L.get(f)?.metadata},p=(f)=>{return L.get(f)},cU=()=>{return Array.from(L.keys())},lU=()=>{return L.size},yf=()=>Array.from(L.values()).filter((f)=>f.isLazy&&typeof f.loader==="function").map((f)=>f.name),kf=(f)=>{let U=L.get(f);if(!U?.isLazy||typeof U.loader!=="function")return;return Nf(f,U.loader)},Ef=!1,hU=()=>{if(Ef||typeof window>"u")return;Ef=!0;let f=navigator.connection;if(f?.saveData)return;if(f?.effectiveType&&["slow-2g","2g"].includes(f.effectiveType))return;let U=yf(),I="requestIdleCallback"in window?(D)=>window.requestIdleCallback(D,{timeout:2000}):(D)=>window.setTimeout(D,300),C=(D)=>{if(D>=U.length)return;I(()=>{Promise.resolve().then(()=>kf(U[D])).catch(()=>{}).finally(()=>C(D+1))})};C(0)};import{useContext as jf,memo as HI}from"react";import{createContext as rU}from"react";import{jsx as sU,Fragment as iU}from"react/jsx-runtime";var nU=rU(sU(iU,{})),_=nU;import{createContext as tU}from"react";var aU=tU(void 0),k=aU;import{Component as eU,Suspense as fI}from"react";import{jsx as CI}from"react/jsx-runtime";var UI=2,II=400;class b extends eU{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(f){if(this.props.onError?.(f),this.state.attempt<UI){let U=II*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((I)=>({failed:!1,attempt:I.attempt+1}))},U)}}componentDidUpdate(f){if(f.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return CI(fI,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as $f}from"react/jsx-runtime";function DI({uiConfig:f,setUiAjaxConfiguration:U}){let I=jf(_),C=jf(k),D=R();if(D)console.log("[UI] Rendering component:",f.card),console.log("[UI] Component data:",f.data),console.log("[UI] Component content:",f.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let H=p(f.card);if(!H?.component){if(D)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return I}if(D)console.log("[UI] Found component in registry:",{name:H.name,isLazy:H.isLazy,hasMetadata:!!H.metadata});let Z=H.component,V=$f(Z,{data:f.data,content:f.content,setUiAjaxConfiguration:U});if(H.isLazy){if(D)console.log("[UI] Rendering lazy component with Suspense:",H.name);return $f(b,{name:H.name,fallback:H.fallback?$f(H.fallback,{}):I,onError:C,children:V})}if(D)console.log("[UI] Rendering component directly:",H.name);return V}var K=HI(DI);import{useContext as xf}from"react";import{createContext as ZI}from"react";var OI=ZI(null),w=OI;import{jsx as s}from"react/jsx-runtime";function mf({uiConfig:f,setUiAjaxConfiguration:U}){let I=xf(_),C=xf(k),D=R();if(D)console.log("[UILoading] Rendering fallback for:",f.card),console.log("[UILoading] Component data:",f.data),console.log("[UILoading] Component content:",f.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let H=p(f.card);if(!H?.component){if(D)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return I}if(D)console.log("[UILoading] Found component in registry:",{name:H.name,isLazy:H.isLazy,hasMetadata:!!H.metadata,hasFallback:!!H.fallback});if(H.fallback){if(D)console.log("[UILoading] Rendering fallback for:",H.name);let O=H.fallback;return s(O,{})}if(D)console.log("[UILoading] No fallback, rendering full component:",H.name);let Z=H.component,V=s(w.Provider,{value:mf,children:s(Z,{data:f.data,content:f.content,setUiAjaxConfiguration:U})});if(H.isLazy)return s(b,{name:H.name,fallback:I,onError:C,children:V});return V}var zf=mf;import{useContext as TI}from"react";import{jsx as qf}from"react/jsx-runtime";var VI=({data:f,content:U,setUiAjaxConfiguration:I})=>{let{name:C,sx:D}=f,H=TI(w)??K;return qf(A,{card:C,data:f,children:qf("div",{style:D,id:C,children:U.map((Z,V)=>{return qf(H,{uiConfig:Z,setUiAjaxConfiguration:I},`children-${V}`)})})})},uf=VI;var $I=Q({name:"SequenceCard",component:uf,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as zI}from"react";import{jsx as bf}from"react/jsx-runtime";var qI=({data:f,content:U,setUiAjaxConfiguration:I})=>{let{name:C}=f,D=zI(w)??K;return bf(A,{card:C,data:f,children:U.map((H,Z)=>{return bf(D,{uiConfig:H,setUiAjaxConfiguration:I},`children-${Z}`)})})},df=qI;var BI=Q({name:"UnionCard",component:df,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as YI,useState as WI}from"react";import QI from"html-react-parser";import{useCallback as t,useEffect as GI,useRef as Bf,useState as JI}from"react";function XI(){let f=new AudioContext,U=f.createOscillator(),I=U.connect(f.createMediaStreamDestination());U.start();let C=I.stream.getAudioTracks()[0];return C.enabled=!1,C}function Gf(f=null,U){let[I,C]=JI(!1),D=Bf(null),H=Bf(null),Z=Bf(null),V=t(async(J,Y=!0)=>{if(D.current)O();let z=new RTCPeerConnection;if(z.onconnectionstatechange=()=>{if(z.connectionState==="connected")C(!0);else if(["disconnected","failed","closed"].includes(z.connectionState))C(!1)},z.ontrack=(P)=>{if(f)f.srcObject=P.streams[0]},Y){let P=await navigator.mediaDevices.getUserMedia({audio:!0});z.addTrack(P.getTracks()[0],P)}else{let P=XI();z.addTrack(P)}let B=z.createDataChannel("oai-events");H.current=B,Z.current=new Promise((P)=>{B.addEventListener("open",()=>{P()})});let X=await z.createOffer();await z.setLocalDescription(X);let W=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:X.sdp,headers:{Authorization:`Bearer ${J}`,"Content-Type":"application/sdp"}})).text();await z.setRemoteDescription({type:"answer",sdp:W}),D.current=z,await Z.current},[f]),O=t(()=>{let J=H.current;if(J)J.close();D.current?.getSenders()?.forEach((Y)=>Y.track?.stop()),D.current?.close(),C(!1),D.current=null,H.current=null,Z.current=null},[f]),T=t((J)=>{let Y=H.current;if(!Y){console.error("Data channel is not ready",J);return}let z=new Date().toLocaleTimeString();if(J.event_id=J.event_id||crypto.randomUUID(),Y.send(JSON.stringify(J)),!J.timestamp)J.timestamp=z;U?.(J)},[U,f]),$=t((J)=>{if(!H.current){console.error("Data channel is not ready");return}let z=()=>{T({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:J}]}}),T({type:"response.create"})};if(Z.current)Z.current.then(z);else z()},[U,f]);return GI(()=>{let J=H.current;if(!J)return;let Y=(z)=>{let B=JSON.parse(z.data);if(!B.timestamp)B.timestamp=new Date().toLocaleTimeString();U?.(B)};return J.addEventListener("message",Y),()=>{J.removeEventListener("message",Y)}},[U,f]),{isSessionActive:I,startSession:V,stopSession:O,sendTextMessage:$}}import{jsx as PI}from"react/jsx-runtime";var AI=({data:f})=>{let{html:U,useSocketioSupport:I,useCentrifugeSupport:C,useMittSupport:D,centrifugeChannel:H}=f,[Z,V]=WI(U),{isSessionActive:O,startSession:T,sendTextMessage:$}=Gf(null,(B)=>{if(console.log(B.type,B.type==="response.output_text.delta"&&B.delta),B.type==="response.output_text.delta"&&B.delta)V((X)=>X+B.delta)});return YI(()=>{V(U)},[U]),PI(A,{card:"HTMLEmbedCard",data:f,methods:{update:(B)=>{V(B.value)},generateUsingAI:async(B)=>{try{if(!O&&B.token)await T(B.token,!1);$(B.prompt)}catch(X){console.error("Failed to generate using AI",X)}},initializeAI:async(B)=>{if(!O&&B.token)await T(B.token,!1)}},useCentrifugeSupport:C,useSocketioSupport:I,useMittSupport:D,centrifugeChannel:H,children:QI(Z)})},vf=AI;var SI=Q({name:"HTMLEmbedCard",component:vf,metadata:{author:"Swarm.ing"}});import{useEffect as FI,useState as KI}from"react";import{jsx as pf}from"react/jsx-runtime";var _I=({data:f})=>{let{name:U,value:I,useSocketioSupport:C,useCentrifugeSupport:D,useMittSupport:H,centrifugeChannel:Z}=f,[V,O]=KI(I);return FI(()=>{O(I)},[I]),pf(A,{card:"HiddenCard",data:f,useSocketioSupport:C,useCentrifugeSupport:D,useMittSupport:H,centrifugeChannel:Z,methods:{update:({value:T})=>{O(T)}},children:pf("input",{type:"hidden",id:U,name:U,value:V})})},gf=_I;var wI=Q({name:"HiddenCard",component:gf,metadata:{author:"Swarm.ing"}});import{useContext as cf,useEffect as oI}from"react";import{createContext as MI}from"react";var LI=MI(void 0),o=LI;import{jsx as EI,Fragment as NI}from"react/jsx-runtime";var RI=({data:f})=>{let{url:U}=f,I=cf(o),C=cf(_);return oI(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else I?.(U)},[U,I]),EI(NI,{children:C})},lf=RI;var yI=Q({name:"AutoRedirectCard",component:lf,metadata:{author:"Swarm.ing"}});import{Bounce as kI,Slide as jI,Zoom as xI,Flip as mI}from"react-toastify";import{toast as uI,ToastContainer as bI}from"react-toastify";import{useContext as dI,useMemo as vI,useRef as pI}from"react";import{jsx as Jf,Fragment as nI}from"react/jsx-runtime";var gI={bounce:kI,slide:jI,zoom:xI,flip:mI},cI=(f)=>{let U={...f,type:f.alertType,transition:f.transition?gI[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};uI(f.message,U)},lI=(f)=>{console.log("Log event",f)},hI=(f)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(C){console.error("[IOEventsCard] Failed to show notification",C)}},I=window.Notification.permission;if(I==="granted"){U();return}if(I==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((C)=>{if(C==="granted")U()})},rI=({data:f})=>{let{useCentrifugeSupport:U,useSocketioSupport:I,useMittSupport:C,centrifugeChannel:D}=f,H=dI(o),Z=pI(H);Z.current=H;let V=vI(()=>({alert:cI,log:lI,push:hI,redirect:(O)=>{if(O.to){let T=O.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else Z.current?.(T)}else window.location.reload()},reload:(O)=>{if(O.to){let T=O.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else Z.current?.(T)}else window.location.reload()}}),[]);return Jf(nI,{children:Jf(A,{card:"IOEventsCard",data:f,useCentrifugeSupport:U,useSocketioSupport:I,useMittSupport:C,centrifugeChannel:D,methods:V,children:Jf(bI,{})})})},hf=rI;var iI=Q({name:"IOEventsCard",component:hf,metadata:{author:"Swarm.ing"}});import{useEffect as rf,useState as sI}from"react";import{jsx as nf}from"react/jsx-runtime";var tI=({data:f})=>{let{name:U,key:I,value:C,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V}=f,[O,T]=sI(C);return rf(()=>{T(C)},[C]),rf(()=>{if(typeof window>"u")return;sessionStorage.setItem(I,O)},[I,O]),nf(A,{card:"SessionStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V,methods:{update:({value:$})=>{T($)},remove:()=>{sessionStorage.removeItem(I),T("")}},children:nf("input",{type:"hidden",id:U,name:U,value:O})})},sf=tI;var aI=Q({name:"SessionStorageCard",component:sf,metadata:{author:"PieData"}});import{useEffect as tf,useState as eI}from"react";import{jsx as af}from"react/jsx-runtime";var fC=({data:f})=>{let{name:U,key:I,value:C,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V}=f,[O,T]=eI(C);return tf(()=>{T(C)},[C]),tf(()=>{if(typeof window>"u")return;localStorage.setItem(I,O)},[I,O]),af(A,{card:"DeviceStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V,methods:{update:({value:$})=>{T($)},remove:()=>{localStorage.removeItem(I),T("")}},children:af("input",{type:"hidden",id:U,name:U,value:O})})},ef=fC;var UC=Q({name:"DeviceStorageCard",component:ef,metadata:{author:"PieData"}});import{useEffect as fU,useState as IC}from"react";import{jsx as UU}from"react/jsx-runtime";var CC=({data:f})=>{let{name:U,key:I,value:C,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V}=f,[O,T]=IC(C);return fU(()=>{T(C)},[C]),fU(()=>{if(typeof window>"u")return;let $=window.Telegram?.WebApp?.CloudStorage;if(!$)return;$.setItem(I,O)},[I,O]),UU(A,{card:"CloudStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V,methods:{update:({value:$})=>{T($)},remove:()=>{let $=window.Telegram?.WebApp?.CloudStorage;if($)$.removeItem(I);T("")}},children:UU("input",{type:"hidden",id:U,name:U,value:O})})},IU=CC;var HC=Q({name:"CloudStorageCard",component:IU,metadata:{author:"PieData"}});import{useEffect as CU,useState as DC}from"react";import{jsx as HU}from"react/jsx-runtime";var ZC=({data:f})=>{let{name:U,key:I,value:C,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V}=f,[O,T]=DC(C);return CU(()=>{T(C)},[C]),CU(()=>{if(typeof window>"u")return;let $=window.Telegram?.WebApp?.SecureStorage;if(!$)return;$.setItem(I,O)},[I,O]),HU(A,{card:"SecureStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V,methods:{update:({value:$})=>{T($)},remove:()=>{let $=window.Telegram?.WebApp?.SecureStorage;if($)$.removeItem(I);T("")}},children:HU("input",{type:"hidden",id:U,name:U,value:O})})},DU=ZC;var OC=Q({name:"SecureStorageCard",component:DU,metadata:{author:"PieData"}});import{useCallback as Xf,useContext as Yf,useEffect as TC,useRef as VC,useState as ZU}from"react";import{jsx as OU}from"react/jsx-runtime";var $C=({data:f,content:U})=>{let{useLoader:I,noReturn:C,returnType:D,useSocketioSupport:H,useCentrifugeSupport:Z,useMittSupport:V,centrifugeChannel:O}=f,T=Yf(_),$=Yf(w)??K,[J,Y]=ZU(!1),[z,B]=ZU(null),X=VC(U),q=Yf(y),G=Xf((P)=>{if(P===null)Y(!0);else if(Y(!1),!C)X.current=P;if(!C)B(P)},[C]),S=Xf((P)=>{X.current=P.content,B(P.content)},[]),W=Xf((P)=>{if(P===null)Y(!0);else if(Y(!1),!C)for(let c of P)q?.emit(c.name,c.data)},[C,q]);if(TC(()=>{B(U),Y(!1)},[U]),!z&&I)return T;return OU(A,{card:"AjaxGroupCard",data:f,methods:{changeContent:S},useSocketioSupport:H,useCentrifugeSupport:Z,useMittSupport:V,centrifugeChannel:O,children:OU($,{uiConfig:z??X.current,setUiAjaxConfiguration:D==="events"?W:G})})},TU=$C;var zC=Q({name:"AjaxGroupCard",component:TU,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as VU}from"react";import{jsx as Wf}from"react/jsx-runtime";var qC=({data:f,content:U,setUiAjaxConfiguration:I})=>{let{name:C,url:D,sx:H}=f,Z=VU(o),V=VU(w)??K;return Wf(A,{card:C,data:f,children:Wf("div",{style:H,id:C,onClick:(T)=>{if(D)if(T.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(D))window.location.href=D;else Z?.(D)},children:Wf(V,{setUiAjaxConfiguration:I,uiConfig:U})})})},$U=qC;var BC=Q({name:"BoxCard",component:$U,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as GC}from"react";import{jsx as Qf}from"react/jsx-runtime";var JC=({data:f,content:U,setUiAjaxConfiguration:I})=>{let{name:C,sx:D}=f,H=GC(w)??K;return Qf(A,{card:C,data:f,children:Qf("div",{style:D,id:C,children:U.map((Z,V)=>{return Qf(H,{uiConfig:Z,setUiAjaxConfiguration:I},`children-${V}`)})})})},zU=JC;var XC=Q({name:"OneOfCard",component:zU,metadata:{author:"Swarm.ing",description:"Different variants"}});import{useMemo as g}from"react";import{QueryClient as wC,QueryClientProvider as MC,useQuery as LC}from"@tanstack/react-query";import{useContext as QC,useEffect as AC}from"react";import{useEffect as YC,useState as WC}from"react";var a=new Map,e=new Map;function ff(f,U){let I=`${f}::${U}`,C=f?a.get(I):void 0,[D,H]=WC(C??null);return YC(()=>{if(!f)return;if(a.has(I)){H(a.get(I));return}let Z=e.get(I);if(!Z)Z=fetch(f+`api/support/${U}`,{method:"GET"}).then((O)=>O.json()).then((O)=>{return a.set(I,O),e.delete(I),O}).catch((O)=>{throw e.delete(I),O}),e.set(I,Z);let V=!1;return Z.then((O)=>{if(!V)H(O)}).catch(()=>{}),()=>{V=!0}},[f,U,I]),D}var Af=null,qU=null;function BU(){qU?.()}function Pf(){if(typeof window>"u")return Promise.resolve();if(typeof window.sid<"u")return Promise.resolve();if(!Af)Af=new Promise((f)=>{qU=()=>{f()}});return Af}var PC=({children:f})=>{let U=QC(E),I=h(),C=ff(I,"socketIO"),D=(H)=>{if(typeof window<"u")window.sid=H.sid,BU(),console.log(`SocketIO initialized: ${window.sid}`)};return AC(()=>{if(!U)return;let H=()=>{console.log("SocketIO connected")},Z=(V)=>{console.log(`SocketIO disconnected: ${V}`),U.connect()};if(C)U.on("pieinit",D),U.on("connect",H),U.on("disconnect",Z),U.connect();return()=>{if(C)U.off("pieinit",D),U.off("connect",H),U.off("disconnect",Z),U.disconnect()}},[U,C]),f},Uf=PC;import{useContext as SC,useEffect as FC}from"react";var KC=({children:f})=>{let U=SC(N),I=h(),C=ff(I,"centrifuge");return FC(()=>{if(!U)return;let D=()=>{console.log("Centrifuge connected")},H=(Z)=>{console.log("Centrifuge disconnected:",Z)};if(C)U.on("connected",D),U.on("disconnected",H),U.connect();return()=>{if(C)U.disconnect()}},[U,C]),f},If=KC;import{createAxiosDateTransformer as oC}from"axios-date-transformer";import{jsx as _C}from"react/jsx-runtime";function GU(f,U,I){if(!U)return I;let C=f.replace(/^\//,""),D=U[C];if(!D)return I;return _C(zf,{uiConfig:D})}import{jsx as F,Fragment as EC}from"react/jsx-runtime";var RC=({location:f,fallback:U,piecache:I,onError:C,queryOptions:D,disableGlobalForm:H})=>{let Z=v(),V=r(),O=R(),T=g(()=>oC({baseURL:Z||""}),[Z]),$=g(()=>u(),[]),J=g(()=>Z?i(Z):null,[Z]),Y=g(()=>Z?n(Z,V):null,[Z,V]),{data:z,isLoading:B,error:X}=LC({queryKey:["uiConfig",f.pathname+f.search,Z],enabled:!!Z,queryFn:async()=>{let G=new URLSearchParams(f.search);G.set("__pieroot","web");let S="/api/content"+f.pathname+"?"+G.toString();if(O)console.log("[PieRoot] Fetching UI configuration from:",S);let W=await T.get(S,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(O)console.log("[PieRoot] Received UI configuration:",W.data);return W.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(G)=>Math.min(1000*2**G,30000),...D}),q=GU(f.pathname,I,U);if(!Z)return q??null;if(O)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",Z),console.log("[PieRoot] CENTRIFUGE_SERVER:",V),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!I);if(X){if(O)console.error("[PieRoot] Error fetching UI configuration:",X),console.error("[PieRoot] Error details:",{message:X.message,status:X.response?.status,data:X.response?.data});return C?.(X),q}if(B||!z){if(O)console.log("[PieRoot] Loading state:",{isLoading:B,hasUiConfiguration:!!z});return q}if(O)console.log("[PieRoot] UI configuration loaded successfully:",z),console.log("[PieRoot] Rendering UI with configuration");return F(y.Provider,{value:$,children:F(E.Provider,{value:J,children:F(N.Provider,{value:Y,children:F(_.Provider,{value:U??F(EC,{}),children:F(Uf,{children:F(If,{children:H?F(K,{uiConfig:z}):F("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:F(K,{uiConfig:z})})})})})})})})},NC=(f)=>{let U=g(()=>new wC,[]),I=f.queryClient??U;return F(o.Provider,{value:f.onNavigate,children:F(m.Provider,{value:f.config,children:F(k.Provider,{value:f.onError,children:F(MC,{client:I,children:F(RC,{...f})})})})})},Sf=NC;import{useMemo as Ff,useState as yC}from"react";import{QueryClient as kC,QueryClientProvider as jC}from"@tanstack/react-query";import{jsx as M,Fragment as uC}from"react/jsx-runtime";var xC=({location:f,fallback:U,children:I,disableGlobalForm:C})=>{let D=v(),H=r(),Z=R(),V=Ff(()=>u(),[]),O=Ff(()=>D?i(D):null,[D]),T=Ff(()=>D?n(D,H):null,[D,H]);if(Z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",D),console.log("[PieRoot] CENTRIFUGE_SERVER:",H),console.log("[PieRoot] Fallback provided:",!!U);return M(y.Provider,{value:V,children:M(E.Provider,{value:O,children:M(N.Provider,{value:T,children:M(_.Provider,{value:U??M(uC,{}),children:M(Uf,{children:M(If,{children:C?I:M("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:I})})})})})})})},mC=(f)=>{let[U]=yC(()=>new kC),I=f.queryClient??U;return M(o.Provider,{value:f.onNavigate,children:M(m.Provider,{value:f.config,children:M(k.Provider,{value:f.onError,children:M(jC,{client:I,children:M(xC,{...f})})})})})},bC=mC;import{useMemo as dC}from"react";import{jsx as JU}from"react/jsx-runtime";var vC=JU("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),pC=({apiServer:f,pathname:U="/",search:I="",centrifugeServer:C,fallback:D,enableRenderingLog:H=!1})=>{let Z=f??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"",V=dC(()=>({apiServer:Z,centrifugeServer:C,enableRenderingLog:H,pageProcessor:"web"}),[Z,C,H]);return JU(Sf,{location:{pathname:U,search:I},config:V,fallback:D??vC,onNavigate:(T)=>{if(typeof window<"u")window.history.pushState(null,"",T)}})},gC=pC;import{useMemo as cC}from"react";var XU=(f,U=!1)=>{if(f==="sid"){if(!window.sid)throw Error("SocketIO isn't initialized properly");return[window.sid]}let I=document.getElementsByName(f);if(!I.length){if(U)console.warn(`No input found with name ${f}`);return[]}let C=I[0];if(C instanceof HTMLInputElement){if(C.type==="file"&&C.files)return Array.from(C.files);return[C.value]}if(C instanceof HTMLTextAreaElement)return[C.value];return[]},lC=(f,U={},I=[],C,D)=>{let H=D?.renderingLogEnabled??!1,Z=D?.timeout,V=D?.retryPolicy,O=V?.maxRetries??0,T=V?.baseDelay??1000,$=V?.retryOn??[502,503,504];if(H)console.log("Registering AJAX: ",C,U,I);return async(J={})=>{if(typeof window>"u"||typeof document>"u"){if(H)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let Y=D?.apiServer;if(!Y){if(H)console.warn("AJAX skipped: apiServer is missing");return}if(!C||!f){if(H)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(I.includes("sid"))await Pf();let z=new FormData;for(let[q,G]of Object.entries({...U,...J}))z.append(q,G);for(let q of I)for(let G of XU(q,H))z.append(q,G);let B=Y+"api/ajax_content"+C;f(null);let X;for(let q=0;q<=O;q++){if(q>0){let W=T*2**(q-1);if(H)console.log(`AJAX retry ${q}/${O} after ${W}ms`);await new Promise((P)=>setTimeout(P,W))}let G=Z!=null?new AbortController:null,S=G&&setTimeout(()=>G.abort(),Z);try{let W=await fetch(B,{method:"POST",body:z,signal:G?.signal});if(S)clearTimeout(S);if(!W.ok&&$.includes(W.status)&&q<O){X=Error(`HTTP ${W.status}`);continue}let c=(W.headers.get("content-type")||"").includes("application/json");if(!!W.body?.getReader&&!c){let l=W.body.getReader(),YU=new TextDecoder,x="";while(!0){let{done:Cf,value:WU}=await l.read();if(Cf)break;x+=YU.decode(WU,{stream:!0});let Kf=x.split(`
|
|
3
|
-
`);x=
|
|
2
|
+
import{useContext as Of,useEffect as Vf,useRef as jU}from"react";import{createContext as KU,useContext as SU}from"react";var m=KU(null),d=()=>{let f=SU(m);if(!f)throw Error("usePieConfig must be used within PieConfigProvider");return f},v=()=>{let{apiServer:f}=d();return f},h=v,r=()=>{let{centrifugeServer:f}=d();return f};var R=()=>{let{enableRenderingLog:f}=d();return f},_f=R;var Df="__piedemo__";import{createContext as _U}from"react";import{Centrifuge as wf}from"centrifuge";var Mf=new Map,n=(f,U)=>{if(!U)return null;let C=`${f}::${U}`,H=Mf.get(C);if(H)return H;async function D(){let Z=await fetch(f+"api/centrifuge/gen_token");if(!Z.ok){if(Z.status===403)throw new wf.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${Z.status}`)}return(await Z.json()).token}let I=new wf(U,{getToken:D});return Mf.set(C,I),I},wU=_U(null),N=wU;import{io as MU}from"socket.io-client";import{createContext as LU}from"react";var Lf=new Map,i=(f)=>{let U=Lf.get(f);if(U)return U;let C=MU(f,{autoConnect:!1,transports:["websocket"]});return Lf.set(f,C),C},oU=LU(null),E=oU;import RU from"mitt";import{createContext as NU,useCallback as EU,useContext as yU}from"react";var Zf=null;function u(){if(!Zf)Zf=RU();return Zf}var of=NU(null);function kU(f){let U=yU(of);return EU((C,H)=>{(U??u()).emit(`pie${C}_${f}`,H)},[f,U])}var y=of;import{jsx as uU,jsxs as bU,Fragment as mU}from"react/jsx-runtime";var xU=({card:f,data:U,children:C,useSocketioSupport:H=!1,useCentrifugeSupport:D=!1,useMittSupport:I=!1,centrifugeChannel:Z=void 0,methods:$=void 0,stored:O=void 0})=>{let V=_f(),z=jU($);if(z.current=$,V)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:H,centrifuge:D,mitt:I,centrifugeChannel:Z}),console.log("[PieCard] Methods:",$?Object.keys($):"none"),console.log("[PieCard] Has children:",!!C);let X=Of(E),W=Of(N),T=Of(y);if(Vf(()=>{if(!X||!H||!z.current||!U.name){if(V&&H)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!X,useSocketioSupport:H,hasMethods:!!z.current,hasDataName:!!U?.name});return}let G=Object.keys(z.current??{}).map((q)=>{let J=`pie${q}_${U.name}`;if(V)console.log(`[PieCard] Socket.IO registering event: ${J}`);let F=(Q)=>{z.current?.[q]?.(Q)};return X.on(J,F),[J,F]});return()=>{G.forEach(([q,J])=>{if(V)console.log(`[PieCard] Socket.IO unregistering event: ${q}`);X.off(q,J)})}},[X,U.name,H]),Vf(()=>{if(!W||!D||!Z||!U.name){if(V&&D)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!W,useCentrifugeSupport:D,hasCentrifugeChannel:!!Z,hasMethods:!!z.current,hasDataName:!!U?.name});return}let G=Object.keys(z.current??{}).map((q)=>{let J=`pie${q}_${U.name}_${Z}`;if(V)console.log(`[PieCard] Centrifuge subscribing to channel: ${J}`);let F=W.newSubscription(J);return F.on("publication",(Q)=>{if(V)console.log(`[PieCard] Centrifuge received data on ${J}:`,Q.data);z.current?.[q]?.(Q.data)}),F.subscribe(),F});return()=>{G.forEach((q)=>{if(V)console.log("[PieCard] Centrifuge unsubscribing from channel");q.unsubscribe(),W.removeSubscription(q)})}},[W,Z,U.name,D]),Vf(()=>{if(!T||!I||!U.name){if(V&&I)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!T,useMittSupport:I,hasMethods:!!z.current,hasDataName:!!U?.name});return}let B=Object.keys(z.current??{}),G={};return B.forEach((q)=>{let J=`pie${q}_${U.name}`,F=(Q)=>{if(V)console.log(`[PieCard] Mitt registering event: ${J}`);z.current?.[q]?.(Q)};G[J]=F,T.on(J,F)}),()=>{Object.entries(G).forEach(([q,J])=>{if(V)console.log(`[PieCard] Mitt unregistering event: ${q}`);T.off(q,J)})}},[T,U.name,I]),V)console.log("[PieCard] Rendering complete, returning children");if(O!==void 0)return bU(mU,{children:[uU("input",{type:"hidden",name:U.name,value:JSON.stringify(O)}),C]});return C},A=xU;import{lazy as dU}from"react";var j=new Map;function Rf(f,U){return U.catch(()=>{if(j.get(f)===U)j.delete(f)}),j.set(f,U),U}function $f(f,U){return dU(()=>{if(j.has(U))return j.get(U);return Rf(U,f().then((C)=>C))})}var Nf=async(f,U)=>{if(!U)return;if(j.has(f))return j.get(f);return Rf(f,U().then((C)=>C))};var Ef=Symbol.for("@swarm.ing/pieui:component-registry"),yf=globalThis,L=yf[Ef]??(yf[Ef]=new Map),vU=(f)=>{if(!f.name)throw Error("Component registration requires a name");if(!f.component&&!f.loader)throw Error(`Component "${f.name}" requires component or loader`);let U={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=$f(U.loader,f.name),U.isLazy=!0;return U};function Y(f){let U=vU(f);return L.set(U.name,U),U.component}var pU=(f)=>{f.forEach((U)=>Y(U))},gU=(f)=>{L.delete(f)},cU=(f)=>{return L.has(f)},lU=(f)=>{return L.get(f)?.metadata},p=(f)=>{return L.get(f)},hU=()=>{return Array.from(L.keys())},rU=()=>{return L.size},jf=()=>Array.from(L.values()).filter((f)=>f.isLazy&&typeof f.loader==="function").map((f)=>f.name),xf=(f)=>{let U=L.get(f);if(!U?.isLazy||typeof U.loader!=="function")return;return Nf(f,U.loader)},kf=!1,nU=()=>{if(kf||typeof window>"u")return;kf=!0;let f=navigator.connection;if(f?.saveData)return;if(f?.effectiveType&&["slow-2g","2g"].includes(f.effectiveType))return;let U=jf(),C="requestIdleCallback"in window?(D)=>window.requestIdleCallback(D,{timeout:2000}):(D)=>window.setTimeout(D,300),H=(D)=>{if(D>=U.length)return;C(()=>{Promise.resolve().then(()=>xf(U[D])).catch(()=>{}).finally(()=>H(D+1))})};H(0)};import{useContext as mf,memo as ZC}from"react";import{createContext as iU}from"react";import{jsx as aU,Fragment as tU}from"react/jsx-runtime";var sU=iU(aU(tU,{})),_=sU;import{createContext as eU}from"react";var fC=eU(void 0),k=fC;import{Component as UC,Suspense as CC}from"react";import{jsx as DC}from"react/jsx-runtime";var HC=2,IC=400;class b extends UC{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(f){if(this.props.onError?.(f),this.state.attempt<HC){let U=IC*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((C)=>({failed:!1,attempt:C.attempt+1}))},U)}}componentDidUpdate(f){if(f.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return DC(CC,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as zf}from"react/jsx-runtime";function OC({uiConfig:f,setUiAjaxConfiguration:U}){let C=mf(_),H=mf(k),D=R();if(D)console.log("[UI] Rendering component:",f.card),console.log("[UI] Component data:",f.data),console.log("[UI] Component content:",f.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let I=p(f.card);if(!I?.component){if(D)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return C}if(D)console.log("[UI] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata});let Z=I.component,$=zf(Z,{data:f.data,content:f.content,setUiAjaxConfiguration:U});if(I.isLazy){if(D)console.log("[UI] Rendering lazy component with Suspense:",I.name);return zf(b,{name:I.name,fallback:I.fallback?zf(I.fallback,{}):C,onError:H,children:$})}if(D)console.log("[UI] Rendering component directly:",I.name);return $}var S=ZC(OC);import{useContext as uf}from"react";import{createContext as VC}from"react";var $C=VC(null),w=$C;import{jsx as s}from"react/jsx-runtime";function bf({uiConfig:f,setUiAjaxConfiguration:U}){let C=uf(_),H=uf(k),D=R();if(D)console.log("[UILoading] Rendering fallback for:",f.card),console.log("[UILoading] Component data:",f.data),console.log("[UILoading] Component content:",f.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let I=p(f.card);if(!I?.component){if(D)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return C}if(D)console.log("[UILoading] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata,hasFallback:!!I.fallback});if(I.fallback){if(D)console.log("[UILoading] Rendering fallback for:",I.name);let O=I.fallback;return s(O,{})}if(D)console.log("[UILoading] No fallback, rendering full component:",I.name);let Z=I.component,$=s(w.Provider,{value:bf,children:s(Z,{data:f.data,content:f.content,setUiAjaxConfiguration:U})});if(I.isLazy)return s(b,{name:I.name,fallback:C,onError:H,children:$});return $}var Tf=bf;import{useContext as zC}from"react";import{jsx as qf}from"react/jsx-runtime";var TC=({data:f,content:U,setUiAjaxConfiguration:C})=>{let{name:H,sx:D}=f,I=zC(w)??S;return qf(A,{card:H,data:f,children:qf("div",{style:D,id:H,children:U.map((Z,$)=>{return qf(I,{uiConfig:Z,setUiAjaxConfiguration:C},`children-${$}`)})})})},df=TC;var qC=Y({name:"SequenceCard",component:df,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as BC}from"react";import{jsx as vf}from"react/jsx-runtime";var JC=({data:f,content:U,setUiAjaxConfiguration:C})=>{let{name:H}=f,D=BC(w)??S;return vf(A,{card:H,data:f,children:U.map((I,Z)=>{return vf(D,{uiConfig:I,setUiAjaxConfiguration:C},`children-${Z}`)})})},pf=JC;var XC=Y({name:"UnionCard",component:pf,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as YC,useState as AC}from"react";import PC from"html-react-parser";import{useCallback as t,useEffect as GC,useRef as Bf,useState as WC}from"react";function QC(){let f=new AudioContext,U=f.createOscillator(),C=U.connect(f.createMediaStreamDestination());U.start();let H=C.stream.getAudioTracks()[0];return H.enabled=!1,H}function Jf(f=null,U){let[C,H]=WC(!1),D=Bf(null),I=Bf(null),Z=Bf(null),$=t(async(X,W=!0)=>{if(D.current)O();let T=new RTCPeerConnection;if(T.onconnectionstatechange=()=>{if(T.connectionState==="connected")H(!0);else if(["disconnected","failed","closed"].includes(T.connectionState))H(!1)},T.ontrack=(P)=>{if(f)f.srcObject=P.streams[0]},W){let P=await navigator.mediaDevices.getUserMedia({audio:!0});T.addTrack(P.getTracks()[0],P)}else{let P=QC();T.addTrack(P)}let B=T.createDataChannel("oai-events");I.current=B,Z.current=new Promise((P)=>{B.addEventListener("open",()=>{P()})});let G=await T.createOffer();await T.setLocalDescription(G);let Q=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:G.sdp,headers:{Authorization:`Bearer ${X}`,"Content-Type":"application/sdp"}})).text();await T.setRemoteDescription({type:"answer",sdp:Q}),D.current=T,await Z.current},[f]),O=t(()=>{let X=I.current;if(X)X.close();D.current?.getSenders()?.forEach((W)=>W.track?.stop()),D.current?.close(),H(!1),D.current=null,I.current=null,Z.current=null},[f]),V=t((X)=>{let W=I.current;if(!W){console.error("Data channel is not ready",X);return}let T=new Date().toLocaleTimeString();if(X.event_id=X.event_id||crypto.randomUUID(),W.send(JSON.stringify(X)),!X.timestamp)X.timestamp=T;U?.(X)},[U,f]),z=t((X)=>{if(!I.current){console.error("Data channel is not ready");return}let T=()=>{V({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:X}]}}),V({type:"response.create"})};if(Z.current)Z.current.then(T);else T()},[U,f]);return GC(()=>{let X=I.current;if(!X)return;let W=(T)=>{let B=JSON.parse(T.data);if(!B.timestamp)B.timestamp=new Date().toLocaleTimeString();U?.(B)};return X.addEventListener("message",W),()=>{X.removeEventListener("message",W)}},[U,f]),{isSessionActive:C,startSession:$,stopSession:O,sendTextMessage:z}}import{jsx as KC}from"react/jsx-runtime";var FC=({data:f})=>{let{html:U,useSocketioSupport:C,useCentrifugeSupport:H,useMittSupport:D,centrifugeChannel:I}=f,[Z,$]=AC(U),{isSessionActive:O,startSession:V,sendTextMessage:z}=Jf(null,(B)=>{if(console.log(B.type,B.type==="response.output_text.delta"&&B.delta),B.type==="response.output_text.delta"&&B.delta)$((G)=>G+B.delta)});return YC(()=>{$(U)},[U]),KC(A,{card:"HTMLEmbedCard",data:f,methods:{update:(B)=>{$(B.value)},generateUsingAI:async(B)=>{try{if(!O&&B.token)await V(B.token,!1);z(B.prompt)}catch(G){console.error("Failed to generate using AI",G)}},initializeAI:async(B)=>{if(!O&&B.token)await V(B.token,!1)}},useCentrifugeSupport:H,useSocketioSupport:C,useMittSupport:D,centrifugeChannel:I,children:PC(Z)})},gf=FC;var SC=Y({name:"HTMLEmbedCard",component:gf,metadata:{author:"Swarm.ing"}});import{useEffect as _C,useState as wC}from"react";import{jsx as cf}from"react/jsx-runtime";var MC=({data:f})=>{let{name:U,value:C,useSocketioSupport:H,useCentrifugeSupport:D,useMittSupport:I,centrifugeChannel:Z}=f,[$,O]=wC(C);return _C(()=>{O(C)},[C]),cf(A,{card:"HiddenCard",data:f,useSocketioSupport:H,useCentrifugeSupport:D,useMittSupport:I,centrifugeChannel:Z,methods:{update:({value:V})=>{O(V)}},children:cf("input",{type:"hidden",id:U,name:U,value:$})})},lf=MC;var LC=Y({name:"HiddenCard",component:lf,metadata:{author:"Swarm.ing"}});import{useContext as hf,useEffect as NC}from"react";import{createContext as oC}from"react";var RC=oC(void 0),o=RC;import{jsx as kC,Fragment as yC}from"react/jsx-runtime";var EC=({data:f})=>{let{url:U}=f,C=hf(o),H=hf(_);return NC(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else C?.(U)},[U,C]),kC(yC,{children:H})},rf=EC;var jC=Y({name:"AutoRedirectCard",component:rf,metadata:{author:"Swarm.ing"}});import{Bounce as xC,Slide as mC,Zoom as uC,Flip as bC}from"react-toastify";import{toast as dC,ToastContainer as vC}from"react-toastify";import{useContext as pC,useMemo as gC,useRef as cC}from"react";import{jsx as Xf,Fragment as sC}from"react/jsx-runtime";var lC={bounce:xC,slide:mC,zoom:uC,flip:bC},hC=(f)=>{let U={...f,type:f.alertType,transition:f.transition?lC[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};dC(f.message,U)},rC=(f)=>{console.log("Log event",f)},nC=(f)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(H){console.error("[IOEventsCard] Failed to show notification",H)}},C=window.Notification.permission;if(C==="granted"){U();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((H)=>{if(H==="granted")U()})},iC=({data:f})=>{let{useCentrifugeSupport:U,useSocketioSupport:C,useMittSupport:H,centrifugeChannel:D}=f,I=pC(o),Z=cC(I);Z.current=I;let $=gC(()=>({alert:hC,log:rC,push:nC,redirect:(O)=>{if(O.to){let V=O.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(V))window.location.href=V;else Z.current?.(V)}else window.location.reload()},reload:(O)=>{if(O.to){let V=O.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(V))window.location.href=V;else Z.current?.(V)}else window.location.reload()}}),[]);return Xf(sC,{children:Xf(A,{card:"IOEventsCard",data:f,useCentrifugeSupport:U,useSocketioSupport:C,useMittSupport:H,centrifugeChannel:D,methods:$,children:Xf(vC,{})})})},nf=iC;var tC=Y({name:"IOEventsCard",component:nf,metadata:{author:"Swarm.ing"}});import{useEffect as sf,useState as aC}from"react";import{jsx as tf}from"react/jsx-runtime";var eC=({data:f})=>{let{name:U,key:C,value:H,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$}=f,[O,V]=aC(H);return sf(()=>{V(H)},[H]),sf(()=>{if(typeof window>"u")return;sessionStorage.setItem(C,O)},[C,O]),tf(A,{card:"SessionStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$,methods:{update:({value:z})=>{V(z)},remove:()=>{sessionStorage.removeItem(C),V("")}},children:tf("input",{type:"hidden",id:U,name:U,value:O})})},af=eC;var fH=Y({name:"SessionStorageCard",component:af,metadata:{author:"PieData"}});import{useEffect as ef,useState as UH}from"react";import{jsx as fU}from"react/jsx-runtime";var CH=({data:f})=>{let{name:U,key:C,value:H,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$}=f,[O,V]=UH(H);return ef(()=>{V(H)},[H]),ef(()=>{if(typeof window>"u")return;localStorage.setItem(C,O)},[C,O]),fU(A,{card:"DeviceStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$,methods:{update:({value:z})=>{V(z)},remove:()=>{localStorage.removeItem(C),V("")}},children:fU("input",{type:"hidden",id:U,name:U,value:O})})},UU=CH;var HH=Y({name:"DeviceStorageCard",component:UU,metadata:{author:"PieData"}});import{useEffect as CU,useState as IH}from"react";import{jsx as HU}from"react/jsx-runtime";var DH=({data:f})=>{let{name:U,key:C,value:H,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$}=f,[O,V]=IH(H);return CU(()=>{V(H)},[H]),CU(()=>{if(typeof window>"u")return;let z=window.Telegram?.WebApp?.CloudStorage;if(!z)return;z.setItem(C,O)},[C,O]),HU(A,{card:"CloudStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$,methods:{update:({value:z})=>{V(z)},remove:()=>{let z=window.Telegram?.WebApp?.CloudStorage;if(z)z.removeItem(C);V("")}},children:HU("input",{type:"hidden",id:U,name:U,value:O})})},IU=DH;var ZH=Y({name:"CloudStorageCard",component:IU,metadata:{author:"PieData"}});import{useEffect as DU,useState as OH}from"react";import{jsx as ZU}from"react/jsx-runtime";var VH=({data:f})=>{let{name:U,key:C,value:H,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$}=f,[O,V]=OH(H);return DU(()=>{V(H)},[H]),DU(()=>{if(typeof window>"u")return;let z=window.Telegram?.WebApp?.SecureStorage;if(!z)return;z.setItem(C,O)},[C,O]),ZU(A,{card:"SecureStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$,methods:{update:({value:z})=>{V(z)},remove:()=>{let z=window.Telegram?.WebApp?.SecureStorage;if(z)z.removeItem(C);V("")}},children:ZU("input",{type:"hidden",id:U,name:U,value:O})})},OU=VH;var $H=Y({name:"SecureStorageCard",component:OU,metadata:{author:"PieData"}});import{useCallback as Gf,useContext as Wf,useEffect as zH,useRef as TH,useState as VU}from"react";import{jsx as $U}from"react/jsx-runtime";var qH=({data:f,content:U})=>{let{useLoader:C,noReturn:H,returnType:D,useSocketioSupport:I,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:O}=f,V=Wf(_),z=Wf(w)??S,[X,W]=VU(!1),[T,B]=VU(null),G=TH(U),q=Wf(y),J=Gf((P)=>{if(P===null)W(!0);else if(W(!1),!H)G.current=P;if(!H)B(P)},[H]),F=Gf((P)=>{G.current=P.content,B(P.content)},[]),Q=Gf((P)=>{if(P===null)W(!0);else if(W(!1),!H)for(let c of P)q?.emit(c.name,c.data)},[H,q]);if(zH(()=>{B(U),W(!1)},[U]),!T&&C)return V;return $U(A,{card:"AjaxGroupCard",data:f,methods:{changeContent:F},useSocketioSupport:I,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:O,children:$U(z,{uiConfig:T??G.current,setUiAjaxConfiguration:D==="events"?Q:J})})},zU=qH;var BH=Y({name:"AjaxGroupCard",component:zU,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as TU}from"react";import{jsx as Qf}from"react/jsx-runtime";var JH=({data:f,content:U,setUiAjaxConfiguration:C})=>{let{name:H,url:D,sx:I}=f,Z=TU(o),$=TU(w)??S;return Qf(A,{card:H,data:f,children:Qf("div",{style:I,id:H,onClick:(V)=>{if(D)if(V.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(D))window.location.href=D;else Z?.(D)},children:Qf($,{setUiAjaxConfiguration:C,uiConfig:U})})})},qU=JH;var XH=Y({name:"BoxCard",component:qU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as GH}from"react";import{jsx as Yf}from"react/jsx-runtime";var WH=({data:f,content:U,setUiAjaxConfiguration:C})=>{let{name:H,sx:D}=f,I=GH(w)??S;return Yf(A,{card:H,data:f,children:Yf("div",{style:D,id:H,children:U.map((Z,$)=>{return Yf(I,{uiConfig:Z,setUiAjaxConfiguration:C},`children-${$}`)})})})},BU=WH;var QH=Y({name:"OneOfCard",component:BU,metadata:{author:"Swarm.ing",description:"Different variants"}});import{useMemo as g}from"react";import{QueryClient as LH,QueryClientProvider as oH,useQuery as RH}from"@tanstack/react-query";import{useContext as PH,useEffect as FH}from"react";import{useEffect as YH,useState as AH}from"react";var a=new Map,e=new Map;function ff(f,U){let C=`${f}::${U}`,H=f?a.get(C):void 0,[D,I]=AH(H??null);return YH(()=>{if(!f)return;if(a.has(C)){I(a.get(C));return}let Z=e.get(C);if(!Z)Z=fetch(f+`api/support/${U}`,{method:"GET"}).then((O)=>O.json()).then((O)=>{return a.set(C,O),e.delete(C),O}).catch((O)=>{throw e.delete(C),O}),e.set(C,Z);let $=!1;return Z.then((O)=>{if(!$)I(O)}).catch(()=>{}),()=>{$=!0}},[f,U,C]),D}var Af=null,JU=null;function XU(){JU?.()}function Pf(){if(typeof window>"u")return Promise.resolve();if(typeof window.sid<"u")return Promise.resolve();if(!Af)Af=new Promise((f)=>{JU=()=>{f()}});return Af}var KH=({children:f})=>{let U=PH(E),C=h(),H=ff(C,"socketIO"),D=(I)=>{if(typeof window<"u")window.sid=I.sid,XU(),console.log(`SocketIO initialized: ${window.sid}`)};return FH(()=>{if(!U)return;let I=()=>{console.log("SocketIO connected")},Z=($)=>{console.log(`SocketIO disconnected: ${$}`),U.connect()};if(H)U.on("pieinit",D),U.on("connect",I),U.on("disconnect",Z),U.connect();return()=>{if(H)U.off("pieinit",D),U.off("connect",I),U.off("disconnect",Z),U.disconnect()}},[U,H]),f},Uf=KH;import{useContext as SH,useEffect as _H}from"react";var wH=({children:f})=>{let U=SH(N),C=h(),H=ff(C,"centrifuge");return _H(()=>{if(!U)return;let D=()=>{console.log("Centrifuge connected")},I=(Z)=>{console.log("Centrifuge disconnected:",Z)};if(H)U.on("connected",D),U.on("disconnected",I),U.connect();return()=>{if(H)U.disconnect()}},[U,H]),f},Cf=wH;import{createAxiosDateTransformer as NH}from"axios-date-transformer";import{jsx as MH}from"react/jsx-runtime";function GU(f,U,C){if(!U)return C;let H=f.replace(/^\//,""),D=U[H];if(!D)return C;return MH(Tf,{uiConfig:D})}import{jsx as K,Fragment as kH}from"react/jsx-runtime";var EH=({location:f,fallback:U,piecache:C,onError:H,queryOptions:D,disableGlobalForm:I})=>{let Z=v(),$=r(),O=R(),V=g(()=>NH({baseURL:Z||""}),[Z]),z=g(()=>u(),[]),X=g(()=>Z?i(Z):null,[Z]),W=g(()=>Z?n(Z,$):null,[Z,$]),{data:T,isLoading:B,error:G}=RH({queryKey:["uiConfig",f.pathname+f.search,Z],enabled:!!Z,queryFn:async()=>{let J=new URLSearchParams(f.search);J.set("__pieroot","web");let F="/api/content"+f.pathname+"?"+J.toString();if(O)console.log("[PieRoot] Fetching UI configuration from:",F);let Q=await V.get(F,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(O)console.log("[PieRoot] Received UI configuration:",Q.data);return Q.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(J)=>Math.min(1000*2**J,30000),...D}),q=GU(f.pathname,C,U);if(!Z)return q??null;if(O)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",Z),console.log("[PieRoot] CENTRIFUGE_SERVER:",$),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!C);if(G){if(O)console.error("[PieRoot] Error fetching UI configuration:",G),console.error("[PieRoot] Error details:",{message:G.message,status:G.response?.status,data:G.response?.data});return H?.(G),q}if(B||!T){if(O)console.log("[PieRoot] Loading state:",{isLoading:B,hasUiConfiguration:!!T});return q}if(O)console.log("[PieRoot] UI configuration loaded successfully:",T),console.log("[PieRoot] Rendering UI with configuration");return K(y.Provider,{value:z,children:K(E.Provider,{value:X,children:K(N.Provider,{value:W,children:K(_.Provider,{value:U??K(kH,{}),children:K(Uf,{children:K(Cf,{children:I?K(S,{uiConfig:T}):K("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:K(S,{uiConfig:T})})})})})})})})},yH=(f)=>{let U=g(()=>new LH,[]),C=f.queryClient??U;return K(o.Provider,{value:f.onNavigate,children:K(m.Provider,{value:f.config,children:K(k.Provider,{value:f.onError,children:K(oH,{client:C,children:K(EH,{...f})})})})})},Ff=yH;import{useMemo as Kf,useState as jH}from"react";import{QueryClient as xH,QueryClientProvider as mH}from"@tanstack/react-query";import{jsx as M,Fragment as dH}from"react/jsx-runtime";var uH=({location:f,fallback:U,children:C,disableGlobalForm:H})=>{let D=v(),I=r(),Z=R(),$=Kf(()=>u(),[]),O=Kf(()=>D?i(D):null,[D]),V=Kf(()=>D?n(D,I):null,[D,I]);if(Z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",D),console.log("[PieRoot] CENTRIFUGE_SERVER:",I),console.log("[PieRoot] Fallback provided:",!!U);return M(y.Provider,{value:$,children:M(E.Provider,{value:O,children:M(N.Provider,{value:V,children:M(_.Provider,{value:U??M(dH,{}),children:M(Uf,{children:M(Cf,{children:H?C:M("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:C})})})})})})})},bH=(f)=>{let[U]=jH(()=>new xH),C=f.queryClient??U;return M(o.Provider,{value:f.onNavigate,children:M(m.Provider,{value:f.config,children:M(k.Provider,{value:f.onError,children:M(mH,{client:C,children:M(uH,{...f})})})})})},vH=bH;import{useMemo as pH}from"react";import{jsx as WU}from"react/jsx-runtime";var gH=WU("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),cH=({apiServer:f,pathname:U="/",search:C="",centrifugeServer:H,fallback:D,enableRenderingLog:I=!1})=>{let Z=f??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"",$=pH(()=>({apiServer:Z,centrifugeServer:H,enableRenderingLog:I,pageProcessor:"web"}),[Z,H,I]);return WU(Ff,{location:{pathname:U,search:C},config:$,fallback:D??gH,onNavigate:(V)=>{if(typeof window<"u")window.history.pushState(null,"",V)}})},lH=cH;import{useMemo as hH}from"react";var QU=(f,U=!1)=>{if(f==="sid"){if(!window.sid)throw Error("SocketIO isn't initialized properly");return[window.sid]}let C=document.getElementsByName(f);if(!C.length){if(U)console.warn(`No input found with name ${f}`);return[]}let H=C[0];if(H instanceof HTMLInputElement){if(H.type==="file"&&H.files)return Array.from(H.files);return[H.value]}if(H instanceof HTMLTextAreaElement)return[H.value];return[]},rH=(f,U={},C=[],H,D)=>{let I=D?.renderingLogEnabled??!1,Z=D?.timeout,$=D?.retryPolicy,O=$?.maxRetries??0,V=$?.baseDelay??1000,z=$?.retryOn??[502,503,504];if(I)console.log("Registering AJAX: ",H,U,C);return async(X={})=>{if(typeof window>"u"||typeof document>"u"){if(I)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let W=D?.apiServer;if(!W){if(I)console.warn("AJAX skipped: apiServer is missing");return}if(!H||!f){if(I)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(C.includes("sid"))await Pf();let T=new FormData;for(let[q,J]of Object.entries({...U,...X}))T.append(q,J);for(let q of C)for(let J of QU(q,I))T.append(q,J);let B=W+"api/ajax_content"+H;f(null);let G;for(let q=0;q<=O;q++){if(q>0){let Q=V*2**(q-1);if(I)console.log(`AJAX retry ${q}/${O} after ${Q}ms`);await new Promise((P)=>setTimeout(P,Q))}let J=Z!=null?new AbortController:null,F=J&&setTimeout(()=>J.abort(),Z);try{let Q=await fetch(B,{method:"POST",body:T,signal:J?.signal});if(F)clearTimeout(F);if(!Q.ok&&z.includes(Q.status)&&q<O){G=Error(`HTTP ${Q.status}`);continue}let c=(Q.headers.get("content-type")||"").includes("application/json");if(!!Q.body?.getReader&&!c){let l=Q.body.getReader(),YU=new TextDecoder,x="";while(!0){let{done:Hf,value:AU}=await l.read();if(Hf)break;x+=YU.decode(AU,{stream:!0});let Sf=x.split(`
|
|
3
|
+
`);x=Sf.pop()??"";for(let PU of Sf){let If=PU.trim();if(!If)continue;try{let FU=JSON.parse(If);f([FU])}catch{if(I)console.warn("Failed to parse streamed line:",If)}}}if(x.trim())try{let Hf=JSON.parse(x);f([Hf])}catch{if(I)console.warn("Failed to parse final streamed line:",x)}return{}}else{let l=await Q.json();return f(l),l}}catch(Q){if(F)clearTimeout(F);if(G=Q,q<O)continue;if(I)console.error("AJAX request failed:",Q);return f(null),Q}}if(I)console.error("AJAX request failed after retries:",G);return f(null),G}},nH=(f,U={},C=[],H,D)=>{let{apiServer:I,enableRenderingLog:Z}=d(),$=JSON.stringify(U),O=JSON.stringify(C),V=JSON.stringify(D);return hH(()=>rH(f,U,C,H,{apiServer:I,renderingLogEnabled:Z,timeout:D?.timeout,retryPolicy:D?.retryPolicy}),[f,$,O,H,I,Z,V])};import{clsx as iH}from"clsx";import{twMerge as sH}from"tailwind-merge";function tH(...f){return sH(iH(f))}var aH=()=>{if(typeof document>"u")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var eH=(f,U)=>`${f}${Df}${U}`;export{kU as usePieEmit,nH as useAjaxSubmit,gU as unregisterComponent,$f as trackLazy,aH as submitGlobalForm,L as registry,Y as registerPieComponent,pU as registerMultipleComponents,QU as readAjaxKey,xf as preloadComponent,nU as prefetchLazyComponents,eH as pieName,cU as hasComponent,rU as getRegistrySize,p as getRegistryEntry,jf as getLazyComponentNames,u as getEmitter,lU as getComponentMeta,hU as getAllRegisteredComponents,tH as cn,XC as UnionCard,w as UIRendererContext,Tf as UILoading,S as UI,E as SocketIOContext,fH as SessionStorageCard,qC as SequenceCard,$H as SecureStorageCard,Ff as PieRoot,lH as PiePreviewRoot,m as PieConfigContext,A as PieCard,vH as PieBaseRoot,Df as PIEBREAK,QH as OneOfCard,y as MittContext,tC as IOEventsCard,LC as HiddenCard,SC as HTMLEmbedCard,_ as FallbackContext,HH as DeviceStorageCard,ZH as CloudStorageCard,N as CentrifugeIOContext,XH as BoxCard,jC as AutoRedirectCard,BH as AjaxGroupCard};
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var EI=Object.create;var{getPrototypeOf:yI,defineProperty:a,getOwnPropertyNames:OU,getOwnPropertyDescriptor:kI}=Object,TU=Object.prototype.hasOwnProperty;var VU=(f,U,I)=>{I=f!=null?EI(yI(f)):{};let C=U||!f||!f.__esModule?a(I,"default",{value:f,enumerable:!0}):I;for(let D of OU(f))if(!TU.call(C,D))a(C,D,{get:()=>f[D],enumerable:!0});return C},ZU=new WeakMap,jI=(f)=>{var U=ZU.get(f),I;if(U)return U;if(U=a({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function")OU(f).map((C)=>!TU.call(U,C)&&a(U,C,{get:()=>f[C],enumerable:!(I=kI(f,C))||I.enumerable}));return ZU.set(f,U),U};var xI=(f,U)=>{for(var I in U)a(f,I,{get:U[I],enumerable:!0,configurable:!0,set:(C)=>U[I]=()=>C})};var PC={};xI(PC,{usePieEmit:()=>WU,useAjaxSubmit:()=>SI,unregisterComponent:()=>KU,trackLazy:()=>Xf,submitGlobalForm:()=>wI,registry:()=>R,registerPieComponent:()=>Y,registerMultipleComponents:()=>FU,readAjaxKey:()=>HU,preloadComponent:()=>gf,prefetchLazyComponents:()=>oU,pieName:()=>MI,hasComponent:()=>_U,getRegistrySize:()=>LU,getRegistryEntry:()=>l,getLazyComponentNames:()=>pf,getEmitter:()=>d,getComponentMeta:()=>wU,getAllRegisteredComponents:()=>MU,cn:()=>_I,UnionCard:()=>dU,UIRendererContext:()=>L,UILoading:()=>Af,UI:()=>_,SocketIOContext:()=>E,SessionStorageCard:()=>eU,SequenceCard:()=>mU,SecureStorageCard:()=>DI,PieRoot:()=>xf,PiePreviewRoot:()=>AI,PieConfigContext:()=>b,PieCard:()=>A,PieBaseRoot:()=>WI,PIEBREAK:()=>Bf,OneOfCard:()=>qI,MittContext:()=>y,IOEventsCard:()=>tU,HiddenCard:()=>hU,HTMLEmbedCard:()=>cU,FallbackContext:()=>M,DeviceStorageCard:()=>UI,CloudStorageCard:()=>CI,CentrifugeIOContext:()=>N,BoxCard:()=>VI,AutoRedirectCard:()=>iU,AjaxGroupCard:()=>OI});module.exports=jI(PC);var k=require("react");var $f=require("react"),b=$f.createContext(null),e=()=>{let f=$f.useContext(b);if(!f)throw Error("usePieConfig must be used within PieConfigProvider");return f},ff=()=>{let{apiServer:f}=e();return f},zf=ff,qf=()=>{let{centrifugeServer:f}=e();return f};var x=()=>{let{enableRenderingLog:f}=e();return f},$U=x;var Bf="__piedemo__";var qU=require("react"),df=require("centrifuge"),zU=new Map,Gf=(f,U)=>{if(!U)return null;let I=`${f}::${U}`,C=zU.get(I);if(C)return C;async function D(){let Z=await fetch(f+"api/centrifuge/gen_token");if(!Z.ok){if(Z.status===403)throw new df.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${Z.status}`)}return(await Z.json()).token}let H=new df.Centrifuge(U,{getToken:D});return zU.set(I,H),H},mI=qU.createContext(null),N=mI;var GU=require("socket.io-client"),JU=require("react"),BU=new Map,Jf=(f)=>{let U=BU.get(f);if(U)return U;let I=GU.io(f,{autoConnect:!1,transports:["websocket"]});return BU.set(f,I),I},uI=JU.createContext(null),E=uI;var XU=VU(require("mitt")),g=require("react"),vf=null;function d(){if(!vf)vf=XU.default();return vf}var YU=g.createContext(null);function WU(f){let U=g.useContext(YU);return g.useCallback((I,C)=>{(U??d()).emit(`pie${I}_${f}`,C)},[f,U])}var y=YU;var c=require("react/jsx-runtime"),bI=({card:f,data:U,children:I,useSocketioSupport:C=!1,useCentrifugeSupport:D=!1,useMittSupport:H=!1,centrifugeChannel:Z=void 0,methods:V=void 0,stored:O=void 0})=>{let T=$U(),$=k.useRef(V);if($.current=V,T)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:C,centrifuge:D,mitt:H,centrifugeChannel:Z}),console.log("[PieCard] Methods:",V?Object.keys(V):"none"),console.log("[PieCard] Has children:",!!I);let J=k.useContext(E),W=k.useContext(N),z=k.useContext(y);if(k.useEffect(()=>{if(!J||!C||!$.current||!U.name){if(T&&C)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!J,useSocketioSupport:C,hasMethods:!!$.current,hasDataName:!!U?.name});return}let X=Object.keys($.current??{}).map((q)=>{let G=`pie${q}_${U.name}`;if(T)console.log(`[PieCard] Socket.IO registering event: ${G}`);let S=(Q)=>{$.current?.[q]?.(Q)};return J.on(G,S),[G,S]});return()=>{X.forEach(([q,G])=>{if(T)console.log(`[PieCard] Socket.IO unregistering event: ${q}`);J.off(q,G)})}},[J,U.name,C]),k.useEffect(()=>{if(!W||!D||!Z||!U.name){if(T&&D)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!W,useCentrifugeSupport:D,hasCentrifugeChannel:!!Z,hasMethods:!!$.current,hasDataName:!!U?.name});return}let X=Object.keys($.current??{}).map((q)=>{let G=`pie${q}_${U.name}_${Z}`;if(T)console.log(`[PieCard] Centrifuge subscribing to channel: ${G}`);let S=W.newSubscription(G);return S.on("publication",(Q)=>{if(T)console.log(`[PieCard] Centrifuge received data on ${G}:`,Q.data);$.current?.[q]?.(Q.data)}),S.subscribe(),S});return()=>{X.forEach((q)=>{if(T)console.log("[PieCard] Centrifuge unsubscribing from channel");q.unsubscribe(),W.removeSubscription(q)})}},[W,Z,U.name,D]),k.useEffect(()=>{if(!z||!H||!U.name){if(T&&H)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!z,useMittSupport:H,hasMethods:!!$.current,hasDataName:!!U?.name});return}let B=Object.keys($.current??{}),X={};return B.forEach((q)=>{let G=`pie${q}_${U.name}`,S=(Q)=>{if(T)console.log(`[PieCard] Mitt registering event: ${G}`);$.current?.[q]?.(Q)};X[G]=S,z.on(G,S)}),()=>{Object.entries(X).forEach(([q,G])=>{if(T)console.log(`[PieCard] Mitt unregistering event: ${q}`);z.off(q,G)})}},[z,U.name,H]),T)console.log("[PieCard] Rendering complete, returning children");if(O!==void 0)return c.jsxs(c.Fragment,{children:[c.jsx("input",{type:"hidden",name:U.name,value:JSON.stringify(O)}),I]});return I},A=bI;var QU=require("react"),v=new Map;function AU(f,U){return U.catch(()=>{if(v.get(f)===U)v.delete(f)}),v.set(f,U),U}function Xf(f,U){return QU.lazy(()=>{if(v.has(U))return v.get(U);return AU(U,f().then((I)=>I))})}var PU=async(f,U)=>{if(!U)return;if(v.has(f))return v.get(f);return AU(f,U().then((I)=>I))};var R=new Map,dI=(f)=>{if(!f.name)throw Error("Component registration requires a name");if(!f.component&&!f.loader)throw Error(`Component "${f.name}" requires component or loader`);let U={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=Xf(U.loader,f.name),U.isLazy=!0;return U};function Y(f){let U=dI(f);return R.set(U.name,U),U.component}var FU=(f)=>{f.forEach((U)=>Y(U))},KU=(f)=>{R.delete(f)},_U=(f)=>{return R.has(f)},wU=(f)=>{return R.get(f)?.metadata},l=(f)=>{return R.get(f)},MU=()=>{return Array.from(R.keys())},LU=()=>{return R.size},pf=()=>Array.from(R.values()).filter((f)=>f.isLazy&&typeof f.loader==="function").map((f)=>f.name),gf=(f)=>{let U=R.get(f);if(!U?.isLazy||typeof U.loader!=="function")return;return PU(f,U.loader)},SU=!1,oU=()=>{if(SU||typeof window>"u")return;SU=!0;let f=navigator.connection;if(f?.saveData)return;if(f?.effectiveType&&["slow-2g","2g"].includes(f.effectiveType))return;let U=pf(),I="requestIdleCallback"in window?(D)=>window.requestIdleCallback(D,{timeout:2000}):(D)=>window.setTimeout(D,300),C=(D)=>{if(D>=U.length)return;I(()=>{Promise.resolve().then(()=>gf(U[D])).catch(()=>{}).finally(()=>C(D+1))})};C(0)};var Uf=require("react");var RU=require("react"),Yf=require("react/jsx-runtime"),vI=RU.createContext(Yf.jsx(Yf.Fragment,{})),M=vI;var NU=require("react"),pI=NU.createContext(void 0),m=pI;var Wf=require("react"),EU=require("react/jsx-runtime"),gI=2,cI=400;class h extends Wf.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(f){if(this.props.onError?.(f),this.state.attempt<gI){let U=cI*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((I)=>({failed:!1,attempt:I.attempt+1}))},U)}}componentDidUpdate(f){if(f.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return EU.jsx(Wf.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var Qf=require("react/jsx-runtime");function lI({uiConfig:f,setUiAjaxConfiguration:U}){let I=Uf.useContext(M),C=Uf.useContext(m),D=x();if(D)console.log("[UI] Rendering component:",f.card),console.log("[UI] Component data:",f.data),console.log("[UI] Component content:",f.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let H=l(f.card);if(!H?.component){if(D)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return I}if(D)console.log("[UI] Found component in registry:",{name:H.name,isLazy:H.isLazy,hasMetadata:!!H.metadata});let Z=H.component,V=Qf.jsx(Z,{data:f.data,content:f.content,setUiAjaxConfiguration:U});if(H.isLazy){if(D)console.log("[UI] Rendering lazy component with Suspense:",H.name);return Qf.jsx(h,{name:H.name,fallback:H.fallback?Qf.jsx(H.fallback,{}):I,onError:C,children:V})}if(D)console.log("[UI] Rendering component directly:",H.name);return V}var _=Uf.memo(lI);var cf=require("react");var yU=require("react"),hI=yU.createContext(null),L=hI;var If=require("react/jsx-runtime");function kU({uiConfig:f,setUiAjaxConfiguration:U}){let I=cf.useContext(M),C=cf.useContext(m),D=x();if(D)console.log("[UILoading] Rendering fallback for:",f.card),console.log("[UILoading] Component data:",f.data),console.log("[UILoading] Component content:",f.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let H=l(f.card);if(!H?.component){if(D)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return I}if(D)console.log("[UILoading] Found component in registry:",{name:H.name,isLazy:H.isLazy,hasMetadata:!!H.metadata,hasFallback:!!H.fallback});if(H.fallback){if(D)console.log("[UILoading] Rendering fallback for:",H.name);let O=H.fallback;return If.jsx(O,{})}if(D)console.log("[UILoading] No fallback, rendering full component:",H.name);let Z=H.component,V=If.jsx(L.Provider,{value:kU,children:If.jsx(Z,{data:f.data,content:f.content,setUiAjaxConfiguration:U})});if(H.isLazy)return If.jsx(h,{name:H.name,fallback:I,onError:C,children:V});return V}var Af=kU;var jU=require("react");var Pf=require("react/jsx-runtime"),rI=({data:f,content:U,setUiAjaxConfiguration:I})=>{let{name:C,sx:D}=f,H=jU.useContext(L)??_;return Pf.jsx(A,{card:C,data:f,children:Pf.jsx("div",{style:D,id:C,children:U.map((Z,V)=>{return Pf.jsx(H,{uiConfig:Z,setUiAjaxConfiguration:I},`children-${V}`)})})})},xU=rI;var mU=Y({name:"SequenceCard",component:xU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var uU=require("react");var lf=require("react/jsx-runtime"),nI=({data:f,content:U,setUiAjaxConfiguration:I})=>{let{name:C}=f,D=uU.useContext(L)??_;return lf.jsx(A,{card:C,data:f,children:U.map((H,Z)=>{return lf.jsx(D,{uiConfig:H,setUiAjaxConfiguration:I},`children-${Z}`)})})},bU=nI;var dU=Y({name:"UnionCard",component:bU,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var Sf=require("react"),vU=VU(require("html-react-parser"));var o=require("react");function iI(){let f=new AudioContext,U=f.createOscillator(),I=U.connect(f.createMediaStreamDestination());U.start();let C=I.stream.getAudioTracks()[0];return C.enabled=!1,C}function hf(f=null,U){let[I,C]=o.useState(!1),D=o.useRef(null),H=o.useRef(null),Z=o.useRef(null),V=o.useCallback(async(J,W=!0)=>{if(D.current)O();let z=new RTCPeerConnection;if(z.onconnectionstatechange=()=>{if(z.connectionState==="connected")C(!0);else if(["disconnected","failed","closed"].includes(z.connectionState))C(!1)},z.ontrack=(P)=>{if(f)f.srcObject=P.streams[0]},W){let P=await navigator.mediaDevices.getUserMedia({audio:!0});z.addTrack(P.getTracks()[0],P)}else{let P=iI();z.addTrack(P)}let B=z.createDataChannel("oai-events");H.current=B,Z.current=new Promise((P)=>{B.addEventListener("open",()=>{P()})});let X=await z.createOffer();await z.setLocalDescription(X);let Q=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:X.sdp,headers:{Authorization:`Bearer ${J}`,"Content-Type":"application/sdp"}})).text();await z.setRemoteDescription({type:"answer",sdp:Q}),D.current=z,await Z.current},[f]),O=o.useCallback(()=>{let J=H.current;if(J)J.close();D.current?.getSenders()?.forEach((W)=>W.track?.stop()),D.current?.close(),C(!1),D.current=null,H.current=null,Z.current=null},[f]),T=o.useCallback((J)=>{let W=H.current;if(!W){console.error("Data channel is not ready",J);return}let z=new Date().toLocaleTimeString();if(J.event_id=J.event_id||crypto.randomUUID(),W.send(JSON.stringify(J)),!J.timestamp)J.timestamp=z;U?.(J)},[U,f]),$=o.useCallback((J)=>{if(!H.current){console.error("Data channel is not ready");return}let z=()=>{T({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:J}]}}),T({type:"response.create"})};if(Z.current)Z.current.then(z);else z()},[U,f]);return o.useEffect(()=>{let J=H.current;if(!J)return;let W=(z)=>{let B=JSON.parse(z.data);if(!B.timestamp)B.timestamp=new Date().toLocaleTimeString();U?.(B)};return J.addEventListener("message",W),()=>{J.removeEventListener("message",W)}},[U,f]),{isSessionActive:I,startSession:V,stopSession:O,sendTextMessage:$}}var gU=require("react/jsx-runtime"),sI=({data:f})=>{let{html:U,useSocketioSupport:I,useCentrifugeSupport:C,useMittSupport:D,centrifugeChannel:H}=f,[Z,V]=Sf.useState(U),{isSessionActive:O,startSession:T,sendTextMessage:$}=hf(null,(B)=>{if(console.log(B.type,B.type==="response.output_text.delta"&&B.delta),B.type==="response.output_text.delta"&&B.delta)V((X)=>X+B.delta)});return Sf.useEffect(()=>{V(U)},[U]),gU.jsx(A,{card:"HTMLEmbedCard",data:f,methods:{update:(B)=>{V(B.value)},generateUsingAI:async(B)=>{try{if(!O&&B.token)await T(B.token,!1);$(B.prompt)}catch(X){console.error("Failed to generate using AI",X)}},initializeAI:async(B)=>{if(!O&&B.token)await T(B.token,!1)}},useCentrifugeSupport:C,useSocketioSupport:I,useMittSupport:D,centrifugeChannel:H,children:vU.default(Z)})},pU=sI;var cU=Y({name:"HTMLEmbedCard",component:pU,metadata:{author:"Swarm.ing"}});var Ff=require("react");var rf=require("react/jsx-runtime"),tI=({data:f})=>{let{name:U,value:I,useSocketioSupport:C,useCentrifugeSupport:D,useMittSupport:H,centrifugeChannel:Z}=f,[V,O]=Ff.useState(I);return Ff.useEffect(()=>{O(I)},[I]),rf.jsx(A,{card:"HiddenCard",data:f,useSocketioSupport:C,useCentrifugeSupport:D,useMittSupport:H,centrifugeChannel:Z,methods:{update:({value:T})=>{O(T)}},children:rf.jsx("input",{type:"hidden",id:U,name:U,value:V})})},lU=tI;var hU=Y({name:"HiddenCard",component:lU,metadata:{author:"Swarm.ing"}});var Cf=require("react");var rU=require("react"),aI=rU.createContext(void 0),j=aI;var Kf=require("react/jsx-runtime"),eI=({data:f})=>{let{url:U}=f,I=Cf.useContext(j),C=Cf.useContext(M);return Cf.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else I?.(U)},[U,I]),Kf.jsx(Kf.Fragment,{children:C})},nU=eI;var iU=Y({name:"AutoRedirectCard",component:nU,metadata:{author:"Swarm.ing"}});var u=require("react-toastify"),_f=require("react-toastify");var n=require("react");var r=require("react/jsx-runtime"),fC={bounce:u.Bounce,slide:u.Slide,zoom:u.Zoom,flip:u.Flip},UC=(f)=>{let U={...f,type:f.alertType,transition:f.transition?fC[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};_f.toast(f.message,U)},IC=(f)=>{console.log("Log event",f)},CC=(f)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(C){console.error("[IOEventsCard] Failed to show notification",C)}},I=window.Notification.permission;if(I==="granted"){U();return}if(I==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((C)=>{if(C==="granted")U()})},HC=({data:f})=>{let{useCentrifugeSupport:U,useSocketioSupport:I,useMittSupport:C,centrifugeChannel:D}=f,H=n.useContext(j),Z=n.useRef(H);Z.current=H;let V=n.useMemo(()=>({alert:UC,log:IC,push:CC,redirect:(O)=>{if(O.to){let T=O.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else Z.current?.(T)}else window.location.reload()},reload:(O)=>{if(O.to){let T=O.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else Z.current?.(T)}else window.location.reload()}}),[]);return r.jsx(r.Fragment,{children:r.jsx(A,{card:"IOEventsCard",data:f,useCentrifugeSupport:U,useSocketioSupport:I,useMittSupport:C,centrifugeChannel:D,methods:V,children:r.jsx(_f.ToastContainer,{})})})},sU=HC;var tU=Y({name:"IOEventsCard",component:sU,metadata:{author:"Swarm.ing"}});var Hf=require("react");var nf=require("react/jsx-runtime"),DC=({data:f})=>{let{name:U,key:I,value:C,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V}=f,[O,T]=Hf.useState(C);return Hf.useEffect(()=>{T(C)},[C]),Hf.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem(I,O)},[I,O]),nf.jsx(A,{card:"SessionStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V,methods:{update:({value:$})=>{T($)},remove:()=>{sessionStorage.removeItem(I),T("")}},children:nf.jsx("input",{type:"hidden",id:U,name:U,value:O})})},aU=DC;var eU=Y({name:"SessionStorageCard",component:aU,metadata:{author:"PieData"}});var Df=require("react");var sf=require("react/jsx-runtime"),ZC=({data:f})=>{let{name:U,key:I,value:C,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V}=f,[O,T]=Df.useState(C);return Df.useEffect(()=>{T(C)},[C]),Df.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem(I,O)},[I,O]),sf.jsx(A,{card:"DeviceStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V,methods:{update:({value:$})=>{T($)},remove:()=>{localStorage.removeItem(I),T("")}},children:sf.jsx("input",{type:"hidden",id:U,name:U,value:O})})},fI=ZC;var UI=Y({name:"DeviceStorageCard",component:fI,metadata:{author:"PieData"}});var Zf=require("react");var tf=require("react/jsx-runtime"),OC=({data:f})=>{let{name:U,key:I,value:C,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V}=f,[O,T]=Zf.useState(C);return Zf.useEffect(()=>{T(C)},[C]),Zf.useEffect(()=>{if(typeof window>"u")return;let $=window.Telegram?.WebApp?.CloudStorage;if(!$)return;$.setItem(I,O)},[I,O]),tf.jsx(A,{card:"CloudStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V,methods:{update:({value:$})=>{T($)},remove:()=>{let $=window.Telegram?.WebApp?.CloudStorage;if($)$.removeItem(I);T("")}},children:tf.jsx("input",{type:"hidden",id:U,name:U,value:O})})},II=OC;var CI=Y({name:"CloudStorageCard",component:II,metadata:{author:"PieData"}});var Of=require("react");var af=require("react/jsx-runtime"),TC=({data:f})=>{let{name:U,key:I,value:C,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V}=f,[O,T]=Of.useState(C);return Of.useEffect(()=>{T(C)},[C]),Of.useEffect(()=>{if(typeof window>"u")return;let $=window.Telegram?.WebApp?.SecureStorage;if(!$)return;$.setItem(I,O)},[I,O]),af.jsx(A,{card:"SecureStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:Z,centrifugeChannel:V,methods:{update:({value:$})=>{T($)},remove:()=>{let $=window.Telegram?.WebApp?.SecureStorage;if($)$.removeItem(I);T("")}},children:af.jsx("input",{type:"hidden",id:U,name:U,value:O})})},HI=TC;var DI=Y({name:"SecureStorageCard",component:HI,metadata:{author:"PieData"}});var w=require("react");var ef=require("react/jsx-runtime"),VC=({data:f,content:U})=>{let{useLoader:I,noReturn:C,returnType:D,useSocketioSupport:H,useCentrifugeSupport:Z,useMittSupport:V,centrifugeChannel:O}=f,T=w.useContext(M),$=w.useContext(L)??_,[J,W]=w.useState(!1),[z,B]=w.useState(null),X=w.useRef(U),q=w.useContext(y),G=w.useCallback((P)=>{if(P===null)W(!0);else if(W(!1),!C)X.current=P;if(!C)B(P)},[C]),S=w.useCallback((P)=>{X.current=P.content,B(P.content)},[]),Q=w.useCallback((P)=>{if(P===null)W(!0);else if(W(!1),!C)for(let Tf of P)q?.emit(Tf.name,Tf.data)},[C,q]);if(w.useEffect(()=>{B(U),W(!1)},[U]),!z&&I)return T;return ef.jsx(A,{card:"AjaxGroupCard",data:f,methods:{changeContent:S},useSocketioSupport:H,useCentrifugeSupport:Z,useMittSupport:V,centrifugeChannel:O,children:ef.jsx($,{uiConfig:z??X.current,setUiAjaxConfiguration:D==="events"?Q:G})})},ZI=VC;var OI=Y({name:"AjaxGroupCard",component:ZI,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var fU=require("react");var wf=require("react/jsx-runtime"),$C=({data:f,content:U,setUiAjaxConfiguration:I})=>{let{name:C,url:D,sx:H}=f,Z=fU.useContext(j),V=fU.useContext(L)??_;return wf.jsx(A,{card:C,data:f,children:wf.jsx("div",{style:H,id:C,onClick:(T)=>{if(D)if(T.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(D))window.location.href=D;else Z?.(D)},children:wf.jsx(V,{setUiAjaxConfiguration:I,uiConfig:U})})})},TI=$C;var VI=Y({name:"BoxCard",component:TI,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var $I=require("react");var Mf=require("react/jsx-runtime"),zC=({data:f,content:U,setUiAjaxConfiguration:I})=>{let{name:C,sx:D}=f,H=$I.useContext(L)??_;return Mf.jsx(A,{card:C,data:f,children:Mf.jsx("div",{style:D,id:C,children:U.map((Z,V)=>{return Mf.jsx(H,{uiConfig:Z,setUiAjaxConfiguration:I},`children-${V}`)})})})},zI=zC;var qI=Y({name:"OneOfCard",component:zI,metadata:{author:"Swarm.ing",description:"Different variants"}});var i=require("react"),s=require("@tanstack/react-query");var Ef=require("react");var Rf=require("react"),Lf=new Map,of=new Map;function Nf(f,U){let I=`${f}::${U}`,C=f?Lf.get(I):void 0,[D,H]=Rf.useState(C??null);return Rf.useEffect(()=>{if(!f)return;if(Lf.has(I)){H(Lf.get(I));return}let Z=of.get(I);if(!Z)Z=fetch(f+`api/support/${U}`,{method:"GET"}).then((O)=>O.json()).then((O)=>{return Lf.set(I,O),of.delete(I),O}).catch((O)=>{throw of.delete(I),O}),of.set(I,Z);let V=!1;return Z.then((O)=>{if(!V)H(O)}).catch(()=>{}),()=>{V=!0}},[f,U,I]),D}var UU=null,BI=null;function GI(){BI?.()}function IU(){if(typeof window>"u")return Promise.resolve();if(typeof window.sid<"u")return Promise.resolve();if(!UU)UU=new Promise((f)=>{BI=()=>{f()}});return UU}var qC=({children:f})=>{let U=Ef.useContext(E),I=zf(),C=Nf(I,"socketIO"),D=(H)=>{if(typeof window<"u")window.sid=H.sid,GI(),console.log(`SocketIO initialized: ${window.sid}`)};return Ef.useEffect(()=>{if(!U)return;let H=()=>{console.log("SocketIO connected")},Z=(V)=>{console.log(`SocketIO disconnected: ${V}`),U.connect()};if(C)U.on("pieinit",D),U.on("connect",H),U.on("disconnect",Z),U.connect();return()=>{if(C)U.off("pieinit",D),U.off("connect",H),U.off("disconnect",Z),U.disconnect()}},[U,C]),f},yf=qC;var kf=require("react");var BC=({children:f})=>{let U=kf.useContext(N),I=zf(),C=Nf(I,"centrifuge");return kf.useEffect(()=>{if(!U)return;let D=()=>{console.log("Centrifuge connected")},H=(Z)=>{console.log("Centrifuge disconnected:",Z)};if(C)U.on("connected",D),U.on("disconnected",H),U.connect();return()=>{if(C)U.disconnect()}},[U,C]),f},jf=BC;var YI=require("axios-date-transformer");var XI=require("react/jsx-runtime");function JI(f,U,I){if(!U)return I;let C=f.replace(/^\//,""),D=U[C];if(!D)return I;return XI.jsx(Af,{uiConfig:D})}var F=require("react/jsx-runtime"),GC=({location:f,fallback:U,piecache:I,onError:C,queryOptions:D,disableGlobalForm:H})=>{let Z=ff(),V=qf(),O=x(),T=i.useMemo(()=>YI.createAxiosDateTransformer({baseURL:Z||""}),[Z]),$=i.useMemo(()=>d(),[]),J=i.useMemo(()=>Z?Jf(Z):null,[Z]),W=i.useMemo(()=>Z?Gf(Z,V):null,[Z,V]),{data:z,isLoading:B,error:X}=s.useQuery({queryKey:["uiConfig",f.pathname+f.search,Z],enabled:!!Z,queryFn:async()=>{let G=new URLSearchParams(f.search);G.set("__pieroot","web");let S="/api/content"+f.pathname+"?"+G.toString();if(O)console.log("[PieRoot] Fetching UI configuration from:",S);let Q=await T.get(S,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(O)console.log("[PieRoot] Received UI configuration:",Q.data);return Q.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(G)=>Math.min(1000*2**G,30000),...D}),q=JI(f.pathname,I,U);if(!Z)return q??null;if(O)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",Z),console.log("[PieRoot] CENTRIFUGE_SERVER:",V),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!I);if(X){if(O)console.error("[PieRoot] Error fetching UI configuration:",X),console.error("[PieRoot] Error details:",{message:X.message,status:X.response?.status,data:X.response?.data});return C?.(X),q}if(B||!z){if(O)console.log("[PieRoot] Loading state:",{isLoading:B,hasUiConfiguration:!!z});return q}if(O)console.log("[PieRoot] UI configuration loaded successfully:",z),console.log("[PieRoot] Rendering UI with configuration");return F.jsx(y.Provider,{value:$,children:F.jsx(E.Provider,{value:J,children:F.jsx(N.Provider,{value:W,children:F.jsx(M.Provider,{value:U??F.jsx(F.Fragment,{}),children:F.jsx(yf,{children:F.jsx(jf,{children:H?F.jsx(_,{uiConfig:z}):F.jsx("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:F.jsx(_,{uiConfig:z})})})})})})})})},JC=(f)=>{let U=i.useMemo(()=>new s.QueryClient,[]),I=f.queryClient??U;return F.jsx(j.Provider,{value:f.onNavigate,children:F.jsx(b.Provider,{value:f.config,children:F.jsx(m.Provider,{value:f.onError,children:F.jsx(s.QueryClientProvider,{client:I,children:F.jsx(GC,{...f})})})})})},xf=JC;var t=require("react"),mf=require("@tanstack/react-query");var K=require("react/jsx-runtime"),XC=({location:f,fallback:U,children:I,disableGlobalForm:C})=>{let D=ff(),H=qf(),Z=x(),V=t.useMemo(()=>d(),[]),O=t.useMemo(()=>D?Jf(D):null,[D]),T=t.useMemo(()=>D?Gf(D,H):null,[D,H]);if(Z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",D),console.log("[PieRoot] CENTRIFUGE_SERVER:",H),console.log("[PieRoot] Fallback provided:",!!U);return K.jsx(y.Provider,{value:V,children:K.jsx(E.Provider,{value:O,children:K.jsx(N.Provider,{value:T,children:K.jsx(M.Provider,{value:U??K.jsx(K.Fragment,{}),children:K.jsx(yf,{children:K.jsx(jf,{children:C?I:K.jsx("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:I})})})})})})})},YC=(f)=>{let[U]=t.useState(()=>new mf.QueryClient),I=f.queryClient??U;return K.jsx(j.Provider,{value:f.onNavigate,children:K.jsx(b.Provider,{value:f.config,children:K.jsx(m.Provider,{value:f.onError,children:K.jsx(mf.QueryClientProvider,{client:I,children:K.jsx(XC,{...f})})})})})},WI=YC;var QI=require("react");var CU=require("react/jsx-runtime"),WC=CU.jsx("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),QC=({apiServer:f,pathname:U="/",search:I="",centrifugeServer:C,fallback:D,enableRenderingLog:H=!1})=>{let Z=f??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"",V=QI.useMemo(()=>({apiServer:Z,centrifugeServer:C,enableRenderingLog:H,pageProcessor:"web"}),[Z,C,H]);return CU.jsx(xf,{location:{pathname:U,search:I},config:V,fallback:D??WC,onNavigate:(T)=>{if(typeof window<"u")window.history.pushState(null,"",T)}})},AI=QC;var PI=require("react"),HU=(f,U=!1)=>{if(f==="sid"){if(!window.sid)throw Error("SocketIO isn't initialized properly");return[window.sid]}let I=document.getElementsByName(f);if(!I.length){if(U)console.warn(`No input found with name ${f}`);return[]}let C=I[0];if(C instanceof HTMLInputElement){if(C.type==="file"&&C.files)return Array.from(C.files);return[C.value]}if(C instanceof HTMLTextAreaElement)return[C.value];return[]},AC=(f,U={},I=[],C,D)=>{let H=D?.renderingLogEnabled??!1,Z=D?.timeout,V=D?.retryPolicy,O=V?.maxRetries??0,T=V?.baseDelay??1000,$=V?.retryOn??[502,503,504];if(H)console.log("Registering AJAX: ",C,U,I);return async(J={})=>{if(typeof window>"u"||typeof document>"u"){if(H)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let W=D?.apiServer;if(!W){if(H)console.warn("AJAX skipped: apiServer is missing");return}if(!C||!f){if(H)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(I.includes("sid"))await IU();let z=new FormData;for(let[q,G]of Object.entries({...U,...J}))z.append(q,G);for(let q of I)for(let G of HU(q,H))z.append(q,G);let B=W+"api/ajax_content"+C;f(null);let X;for(let q=0;q<=O;q++){if(q>0){let Q=T*2**(q-1);if(H)console.log(`AJAX retry ${q}/${O} after ${Q}ms`);await new Promise((P)=>setTimeout(P,Q))}let G=Z!=null?new AbortController:null,S=G&&setTimeout(()=>G.abort(),Z);try{let Q=await fetch(B,{method:"POST",body:z,signal:G?.signal});if(S)clearTimeout(S);if(!Q.ok&&$.includes(Q.status)&&q<O){X=Error(`HTTP ${Q.status}`);continue}let Tf=(Q.headers.get("content-type")||"").includes("application/json");if(!!Q.body?.getReader&&!Tf){let Vf=Q.body.getReader(),LI=new TextDecoder,p="";while(!0){let{done:uf,value:oI}=await Vf.read();if(uf)break;p+=LI.decode(oI,{stream:!0});let DU=p.split(`
|
|
3
|
-
`);p=DU.pop()??"";for(let
|
|
2
|
+
var kC=Object.create;var{getPrototypeOf:jC,defineProperty:a,getOwnPropertyNames:OU,getOwnPropertyDescriptor:xC}=Object,VU=Object.prototype.hasOwnProperty;var $U=(f,U,C)=>{C=f!=null?kC(jC(f)):{};let H=U||!f||!f.__esModule?a(C,"default",{value:f,enumerable:!0}):C;for(let D of OU(f))if(!VU.call(H,D))a(H,D,{get:()=>f[D],enumerable:!0});return H},ZU=new WeakMap,mC=(f)=>{var U=ZU.get(f),C;if(U)return U;if(U=a({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function")OU(f).map((H)=>!VU.call(U,H)&&a(U,H,{get:()=>f[H],enumerable:!(C=xC(f,H))||C.enumerable}));return ZU.set(f,U),U};var uC=(f,U)=>{for(var C in U)a(f,C,{get:U[C],enumerable:!0,configurable:!0,set:(H)=>U[C]=()=>H})};var KH={};uC(KH,{usePieEmit:()=>QU,useAjaxSubmit:()=>SC,unregisterComponent:()=>wU,trackLazy:()=>Gf,submitGlobalForm:()=>LC,registry:()=>R,registerPieComponent:()=>W,registerMultipleComponents:()=>_U,readAjaxKey:()=>IU,preloadComponent:()=>gf,prefetchLazyComponents:()=>NU,pieName:()=>oC,hasComponent:()=>MU,getRegistrySize:()=>RU,getRegistryEntry:()=>l,getLazyComponentNames:()=>pf,getEmitter:()=>d,getComponentMeta:()=>LU,getAllRegisteredComponents:()=>oU,cn:()=>MC,UnionCard:()=>pU,UIRendererContext:()=>L,UILoading:()=>Af,UI:()=>_,SocketIOContext:()=>E,SessionStorageCard:()=>UC,SequenceCard:()=>bU,SecureStorageCard:()=>OC,PieRoot:()=>xf,PiePreviewRoot:()=>FC,PieConfigContext:()=>b,PieCard:()=>A,PieBaseRoot:()=>AC,PIEBREAK:()=>Bf,OneOfCard:()=>JC,MittContext:()=>y,IOEventsCard:()=>eU,HiddenCard:()=>nU,HTMLEmbedCard:()=>hU,FallbackContext:()=>M,DeviceStorageCard:()=>HC,CloudStorageCard:()=>DC,CentrifugeIOContext:()=>N,BoxCard:()=>TC,AutoRedirectCard:()=>tU,AjaxGroupCard:()=>$C});module.exports=mC(KH);var k=require("react");var zf=require("react"),b=zf.createContext(null),e=()=>{let f=zf.useContext(b);if(!f)throw Error("usePieConfig must be used within PieConfigProvider");return f},ff=()=>{let{apiServer:f}=e();return f},Tf=ff,qf=()=>{let{centrifugeServer:f}=e();return f};var x=()=>{let{enableRenderingLog:f}=e();return f},zU=x;var Bf="__piedemo__";var qU=require("react"),df=require("centrifuge"),TU=new Map,Jf=(f,U)=>{if(!U)return null;let C=`${f}::${U}`,H=TU.get(C);if(H)return H;async function D(){let Z=await fetch(f+"api/centrifuge/gen_token");if(!Z.ok){if(Z.status===403)throw new df.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${Z.status}`)}return(await Z.json()).token}let I=new df.Centrifuge(U,{getToken:D});return TU.set(C,I),I},bC=qU.createContext(null),N=bC;var JU=require("socket.io-client"),XU=require("react"),BU=new Map,Xf=(f)=>{let U=BU.get(f);if(U)return U;let C=JU.io(f,{autoConnect:!1,transports:["websocket"]});return BU.set(f,C),C},dC=XU.createContext(null),E=dC;var GU=$U(require("mitt")),g=require("react"),vf=null;function d(){if(!vf)vf=GU.default();return vf}var WU=g.createContext(null);function QU(f){let U=g.useContext(WU);return g.useCallback((C,H)=>{(U??d()).emit(`pie${C}_${f}`,H)},[f,U])}var y=WU;var c=require("react/jsx-runtime"),vC=({card:f,data:U,children:C,useSocketioSupport:H=!1,useCentrifugeSupport:D=!1,useMittSupport:I=!1,centrifugeChannel:Z=void 0,methods:$=void 0,stored:O=void 0})=>{let V=zU(),z=k.useRef($);if(z.current=$,V)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:H,centrifuge:D,mitt:I,centrifugeChannel:Z}),console.log("[PieCard] Methods:",$?Object.keys($):"none"),console.log("[PieCard] Has children:",!!C);let X=k.useContext(E),Q=k.useContext(N),T=k.useContext(y);if(k.useEffect(()=>{if(!X||!H||!z.current||!U.name){if(V&&H)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!X,useSocketioSupport:H,hasMethods:!!z.current,hasDataName:!!U?.name});return}let G=Object.keys(z.current??{}).map((q)=>{let J=`pie${q}_${U.name}`;if(V)console.log(`[PieCard] Socket.IO registering event: ${J}`);let F=(Y)=>{z.current?.[q]?.(Y)};return X.on(J,F),[J,F]});return()=>{G.forEach(([q,J])=>{if(V)console.log(`[PieCard] Socket.IO unregistering event: ${q}`);X.off(q,J)})}},[X,U.name,H]),k.useEffect(()=>{if(!Q||!D||!Z||!U.name){if(V&&D)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!Q,useCentrifugeSupport:D,hasCentrifugeChannel:!!Z,hasMethods:!!z.current,hasDataName:!!U?.name});return}let G=Object.keys(z.current??{}).map((q)=>{let J=`pie${q}_${U.name}_${Z}`;if(V)console.log(`[PieCard] Centrifuge subscribing to channel: ${J}`);let F=Q.newSubscription(J);return F.on("publication",(Y)=>{if(V)console.log(`[PieCard] Centrifuge received data on ${J}:`,Y.data);z.current?.[q]?.(Y.data)}),F.subscribe(),F});return()=>{G.forEach((q)=>{if(V)console.log("[PieCard] Centrifuge unsubscribing from channel");q.unsubscribe(),Q.removeSubscription(q)})}},[Q,Z,U.name,D]),k.useEffect(()=>{if(!T||!I||!U.name){if(V&&I)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!T,useMittSupport:I,hasMethods:!!z.current,hasDataName:!!U?.name});return}let B=Object.keys(z.current??{}),G={};return B.forEach((q)=>{let J=`pie${q}_${U.name}`,F=(Y)=>{if(V)console.log(`[PieCard] Mitt registering event: ${J}`);z.current?.[q]?.(Y)};G[J]=F,T.on(J,F)}),()=>{Object.entries(G).forEach(([q,J])=>{if(V)console.log(`[PieCard] Mitt unregistering event: ${q}`);T.off(q,J)})}},[T,U.name,I]),V)console.log("[PieCard] Rendering complete, returning children");if(O!==void 0)return c.jsxs(c.Fragment,{children:[c.jsx("input",{type:"hidden",name:U.name,value:JSON.stringify(O)}),C]});return C},A=vC;var YU=require("react"),v=new Map;function AU(f,U){return U.catch(()=>{if(v.get(f)===U)v.delete(f)}),v.set(f,U),U}function Gf(f,U){return YU.lazy(()=>{if(v.has(U))return v.get(U);return AU(U,f().then((C)=>C))})}var PU=async(f,U)=>{if(!U)return;if(v.has(f))return v.get(f);return AU(f,U().then((C)=>C))};var FU=Symbol.for("@swarm.ing/pieui:component-registry"),KU=globalThis,R=KU[FU]??(KU[FU]=new Map),pC=(f)=>{if(!f.name)throw Error("Component registration requires a name");if(!f.component&&!f.loader)throw Error(`Component "${f.name}" requires component or loader`);let U={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=Gf(U.loader,f.name),U.isLazy=!0;return U};function W(f){let U=pC(f);return R.set(U.name,U),U.component}var _U=(f)=>{f.forEach((U)=>W(U))},wU=(f)=>{R.delete(f)},MU=(f)=>{return R.has(f)},LU=(f)=>{return R.get(f)?.metadata},l=(f)=>{return R.get(f)},oU=()=>{return Array.from(R.keys())},RU=()=>{return R.size},pf=()=>Array.from(R.values()).filter((f)=>f.isLazy&&typeof f.loader==="function").map((f)=>f.name),gf=(f)=>{let U=R.get(f);if(!U?.isLazy||typeof U.loader!=="function")return;return PU(f,U.loader)},SU=!1,NU=()=>{if(SU||typeof window>"u")return;SU=!0;let f=navigator.connection;if(f?.saveData)return;if(f?.effectiveType&&["slow-2g","2g"].includes(f.effectiveType))return;let U=pf(),C="requestIdleCallback"in window?(D)=>window.requestIdleCallback(D,{timeout:2000}):(D)=>window.setTimeout(D,300),H=(D)=>{if(D>=U.length)return;C(()=>{Promise.resolve().then(()=>gf(U[D])).catch(()=>{}).finally(()=>H(D+1))})};H(0)};var Uf=require("react");var EU=require("react"),Wf=require("react/jsx-runtime"),gC=EU.createContext(Wf.jsx(Wf.Fragment,{})),M=gC;var yU=require("react"),cC=yU.createContext(void 0),m=cC;var Qf=require("react"),kU=require("react/jsx-runtime"),lC=2,hC=400;class h extends Qf.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(f){if(this.props.onError?.(f),this.state.attempt<lC){let U=hC*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((C)=>({failed:!1,attempt:C.attempt+1}))},U)}}componentDidUpdate(f){if(f.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return kU.jsx(Qf.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var Yf=require("react/jsx-runtime");function rC({uiConfig:f,setUiAjaxConfiguration:U}){let C=Uf.useContext(M),H=Uf.useContext(m),D=x();if(D)console.log("[UI] Rendering component:",f.card),console.log("[UI] Component data:",f.data),console.log("[UI] Component content:",f.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let I=l(f.card);if(!I?.component){if(D)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return C}if(D)console.log("[UI] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata});let Z=I.component,$=Yf.jsx(Z,{data:f.data,content:f.content,setUiAjaxConfiguration:U});if(I.isLazy){if(D)console.log("[UI] Rendering lazy component with Suspense:",I.name);return Yf.jsx(h,{name:I.name,fallback:I.fallback?Yf.jsx(I.fallback,{}):C,onError:H,children:$})}if(D)console.log("[UI] Rendering component directly:",I.name);return $}var _=Uf.memo(rC);var cf=require("react");var jU=require("react"),nC=jU.createContext(null),L=nC;var Cf=require("react/jsx-runtime");function xU({uiConfig:f,setUiAjaxConfiguration:U}){let C=cf.useContext(M),H=cf.useContext(m),D=x();if(D)console.log("[UILoading] Rendering fallback for:",f.card),console.log("[UILoading] Component data:",f.data),console.log("[UILoading] Component content:",f.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let I=l(f.card);if(!I?.component){if(D)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return C}if(D)console.log("[UILoading] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata,hasFallback:!!I.fallback});if(I.fallback){if(D)console.log("[UILoading] Rendering fallback for:",I.name);let O=I.fallback;return Cf.jsx(O,{})}if(D)console.log("[UILoading] No fallback, rendering full component:",I.name);let Z=I.component,$=Cf.jsx(L.Provider,{value:xU,children:Cf.jsx(Z,{data:f.data,content:f.content,setUiAjaxConfiguration:U})});if(I.isLazy)return Cf.jsx(h,{name:I.name,fallback:C,onError:H,children:$});return $}var Af=xU;var mU=require("react");var Pf=require("react/jsx-runtime"),iC=({data:f,content:U,setUiAjaxConfiguration:C})=>{let{name:H,sx:D}=f,I=mU.useContext(L)??_;return Pf.jsx(A,{card:H,data:f,children:Pf.jsx("div",{style:D,id:H,children:U.map((Z,$)=>{return Pf.jsx(I,{uiConfig:Z,setUiAjaxConfiguration:C},`children-${$}`)})})})},uU=iC;var bU=W({name:"SequenceCard",component:uU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var dU=require("react");var lf=require("react/jsx-runtime"),sC=({data:f,content:U,setUiAjaxConfiguration:C})=>{let{name:H}=f,D=dU.useContext(L)??_;return lf.jsx(A,{card:H,data:f,children:U.map((I,Z)=>{return lf.jsx(D,{uiConfig:I,setUiAjaxConfiguration:C},`children-${Z}`)})})},vU=sC;var pU=W({name:"UnionCard",component:vU,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var Ff=require("react"),gU=$U(require("html-react-parser"));var o=require("react");function tC(){let f=new AudioContext,U=f.createOscillator(),C=U.connect(f.createMediaStreamDestination());U.start();let H=C.stream.getAudioTracks()[0];return H.enabled=!1,H}function hf(f=null,U){let[C,H]=o.useState(!1),D=o.useRef(null),I=o.useRef(null),Z=o.useRef(null),$=o.useCallback(async(X,Q=!0)=>{if(D.current)O();let T=new RTCPeerConnection;if(T.onconnectionstatechange=()=>{if(T.connectionState==="connected")H(!0);else if(["disconnected","failed","closed"].includes(T.connectionState))H(!1)},T.ontrack=(P)=>{if(f)f.srcObject=P.streams[0]},Q){let P=await navigator.mediaDevices.getUserMedia({audio:!0});T.addTrack(P.getTracks()[0],P)}else{let P=tC();T.addTrack(P)}let B=T.createDataChannel("oai-events");I.current=B,Z.current=new Promise((P)=>{B.addEventListener("open",()=>{P()})});let G=await T.createOffer();await T.setLocalDescription(G);let Y=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:G.sdp,headers:{Authorization:`Bearer ${X}`,"Content-Type":"application/sdp"}})).text();await T.setRemoteDescription({type:"answer",sdp:Y}),D.current=T,await Z.current},[f]),O=o.useCallback(()=>{let X=I.current;if(X)X.close();D.current?.getSenders()?.forEach((Q)=>Q.track?.stop()),D.current?.close(),H(!1),D.current=null,I.current=null,Z.current=null},[f]),V=o.useCallback((X)=>{let Q=I.current;if(!Q){console.error("Data channel is not ready",X);return}let T=new Date().toLocaleTimeString();if(X.event_id=X.event_id||crypto.randomUUID(),Q.send(JSON.stringify(X)),!X.timestamp)X.timestamp=T;U?.(X)},[U,f]),z=o.useCallback((X)=>{if(!I.current){console.error("Data channel is not ready");return}let T=()=>{V({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:X}]}}),V({type:"response.create"})};if(Z.current)Z.current.then(T);else T()},[U,f]);return o.useEffect(()=>{let X=I.current;if(!X)return;let Q=(T)=>{let B=JSON.parse(T.data);if(!B.timestamp)B.timestamp=new Date().toLocaleTimeString();U?.(B)};return X.addEventListener("message",Q),()=>{X.removeEventListener("message",Q)}},[U,f]),{isSessionActive:C,startSession:$,stopSession:O,sendTextMessage:z}}var lU=require("react/jsx-runtime"),aC=({data:f})=>{let{html:U,useSocketioSupport:C,useCentrifugeSupport:H,useMittSupport:D,centrifugeChannel:I}=f,[Z,$]=Ff.useState(U),{isSessionActive:O,startSession:V,sendTextMessage:z}=hf(null,(B)=>{if(console.log(B.type,B.type==="response.output_text.delta"&&B.delta),B.type==="response.output_text.delta"&&B.delta)$((G)=>G+B.delta)});return Ff.useEffect(()=>{$(U)},[U]),lU.jsx(A,{card:"HTMLEmbedCard",data:f,methods:{update:(B)=>{$(B.value)},generateUsingAI:async(B)=>{try{if(!O&&B.token)await V(B.token,!1);z(B.prompt)}catch(G){console.error("Failed to generate using AI",G)}},initializeAI:async(B)=>{if(!O&&B.token)await V(B.token,!1)}},useCentrifugeSupport:H,useSocketioSupport:C,useMittSupport:D,centrifugeChannel:I,children:gU.default(Z)})},cU=aC;var hU=W({name:"HTMLEmbedCard",component:cU,metadata:{author:"Swarm.ing"}});var Kf=require("react");var rf=require("react/jsx-runtime"),eC=({data:f})=>{let{name:U,value:C,useSocketioSupport:H,useCentrifugeSupport:D,useMittSupport:I,centrifugeChannel:Z}=f,[$,O]=Kf.useState(C);return Kf.useEffect(()=>{O(C)},[C]),rf.jsx(A,{card:"HiddenCard",data:f,useSocketioSupport:H,useCentrifugeSupport:D,useMittSupport:I,centrifugeChannel:Z,methods:{update:({value:V})=>{O(V)}},children:rf.jsx("input",{type:"hidden",id:U,name:U,value:$})})},rU=eC;var nU=W({name:"HiddenCard",component:rU,metadata:{author:"Swarm.ing"}});var Hf=require("react");var iU=require("react"),fH=iU.createContext(void 0),j=fH;var Sf=require("react/jsx-runtime"),UH=({data:f})=>{let{url:U}=f,C=Hf.useContext(j),H=Hf.useContext(M);return Hf.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else C?.(U)},[U,C]),Sf.jsx(Sf.Fragment,{children:H})},sU=UH;var tU=W({name:"AutoRedirectCard",component:sU,metadata:{author:"Swarm.ing"}});var u=require("react-toastify"),_f=require("react-toastify");var n=require("react");var r=require("react/jsx-runtime"),CH={bounce:u.Bounce,slide:u.Slide,zoom:u.Zoom,flip:u.Flip},HH=(f)=>{let U={...f,type:f.alertType,transition:f.transition?CH[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};_f.toast(f.message,U)},IH=(f)=>{console.log("Log event",f)},DH=(f)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(H){console.error("[IOEventsCard] Failed to show notification",H)}},C=window.Notification.permission;if(C==="granted"){U();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((H)=>{if(H==="granted")U()})},ZH=({data:f})=>{let{useCentrifugeSupport:U,useSocketioSupport:C,useMittSupport:H,centrifugeChannel:D}=f,I=n.useContext(j),Z=n.useRef(I);Z.current=I;let $=n.useMemo(()=>({alert:HH,log:IH,push:DH,redirect:(O)=>{if(O.to){let V=O.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(V))window.location.href=V;else Z.current?.(V)}else window.location.reload()},reload:(O)=>{if(O.to){let V=O.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(V))window.location.href=V;else Z.current?.(V)}else window.location.reload()}}),[]);return r.jsx(r.Fragment,{children:r.jsx(A,{card:"IOEventsCard",data:f,useCentrifugeSupport:U,useSocketioSupport:C,useMittSupport:H,centrifugeChannel:D,methods:$,children:r.jsx(_f.ToastContainer,{})})})},aU=ZH;var eU=W({name:"IOEventsCard",component:aU,metadata:{author:"Swarm.ing"}});var If=require("react");var nf=require("react/jsx-runtime"),OH=({data:f})=>{let{name:U,key:C,value:H,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$}=f,[O,V]=If.useState(H);return If.useEffect(()=>{V(H)},[H]),If.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem(C,O)},[C,O]),nf.jsx(A,{card:"SessionStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$,methods:{update:({value:z})=>{V(z)},remove:()=>{sessionStorage.removeItem(C),V("")}},children:nf.jsx("input",{type:"hidden",id:U,name:U,value:O})})},fC=OH;var UC=W({name:"SessionStorageCard",component:fC,metadata:{author:"PieData"}});var Df=require("react");var sf=require("react/jsx-runtime"),VH=({data:f})=>{let{name:U,key:C,value:H,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$}=f,[O,V]=Df.useState(H);return Df.useEffect(()=>{V(H)},[H]),Df.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem(C,O)},[C,O]),sf.jsx(A,{card:"DeviceStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$,methods:{update:({value:z})=>{V(z)},remove:()=>{localStorage.removeItem(C),V("")}},children:sf.jsx("input",{type:"hidden",id:U,name:U,value:O})})},CC=VH;var HC=W({name:"DeviceStorageCard",component:CC,metadata:{author:"PieData"}});var Zf=require("react");var tf=require("react/jsx-runtime"),$H=({data:f})=>{let{name:U,key:C,value:H,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$}=f,[O,V]=Zf.useState(H);return Zf.useEffect(()=>{V(H)},[H]),Zf.useEffect(()=>{if(typeof window>"u")return;let z=window.Telegram?.WebApp?.CloudStorage;if(!z)return;z.setItem(C,O)},[C,O]),tf.jsx(A,{card:"CloudStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$,methods:{update:({value:z})=>{V(z)},remove:()=>{let z=window.Telegram?.WebApp?.CloudStorage;if(z)z.removeItem(C);V("")}},children:tf.jsx("input",{type:"hidden",id:U,name:U,value:O})})},IC=$H;var DC=W({name:"CloudStorageCard",component:IC,metadata:{author:"PieData"}});var Of=require("react");var af=require("react/jsx-runtime"),zH=({data:f})=>{let{name:U,key:C,value:H,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$}=f,[O,V]=Of.useState(H);return Of.useEffect(()=>{V(H)},[H]),Of.useEffect(()=>{if(typeof window>"u")return;let z=window.Telegram?.WebApp?.SecureStorage;if(!z)return;z.setItem(C,O)},[C,O]),af.jsx(A,{card:"SecureStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:I,useMittSupport:Z,centrifugeChannel:$,methods:{update:({value:z})=>{V(z)},remove:()=>{let z=window.Telegram?.WebApp?.SecureStorage;if(z)z.removeItem(C);V("")}},children:af.jsx("input",{type:"hidden",id:U,name:U,value:O})})},ZC=zH;var OC=W({name:"SecureStorageCard",component:ZC,metadata:{author:"PieData"}});var w=require("react");var ef=require("react/jsx-runtime"),TH=({data:f,content:U})=>{let{useLoader:C,noReturn:H,returnType:D,useSocketioSupport:I,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:O}=f,V=w.useContext(M),z=w.useContext(L)??_,[X,Q]=w.useState(!1),[T,B]=w.useState(null),G=w.useRef(U),q=w.useContext(y),J=w.useCallback((P)=>{if(P===null)Q(!0);else if(Q(!1),!H)G.current=P;if(!H)B(P)},[H]),F=w.useCallback((P)=>{G.current=P.content,B(P.content)},[]),Y=w.useCallback((P)=>{if(P===null)Q(!0);else if(Q(!1),!H)for(let Vf of P)q?.emit(Vf.name,Vf.data)},[H,q]);if(w.useEffect(()=>{B(U),Q(!1)},[U]),!T&&C)return V;return ef.jsx(A,{card:"AjaxGroupCard",data:f,methods:{changeContent:F},useSocketioSupport:I,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:O,children:ef.jsx(z,{uiConfig:T??G.current,setUiAjaxConfiguration:D==="events"?Y:J})})},VC=TH;var $C=W({name:"AjaxGroupCard",component:VC,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var fU=require("react");var wf=require("react/jsx-runtime"),qH=({data:f,content:U,setUiAjaxConfiguration:C})=>{let{name:H,url:D,sx:I}=f,Z=fU.useContext(j),$=fU.useContext(L)??_;return wf.jsx(A,{card:H,data:f,children:wf.jsx("div",{style:I,id:H,onClick:(V)=>{if(D)if(V.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(D))window.location.href=D;else Z?.(D)},children:wf.jsx($,{setUiAjaxConfiguration:C,uiConfig:U})})})},zC=qH;var TC=W({name:"BoxCard",component:zC,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var qC=require("react");var Mf=require("react/jsx-runtime"),BH=({data:f,content:U,setUiAjaxConfiguration:C})=>{let{name:H,sx:D}=f,I=qC.useContext(L)??_;return Mf.jsx(A,{card:H,data:f,children:Mf.jsx("div",{style:D,id:H,children:U.map((Z,$)=>{return Mf.jsx(I,{uiConfig:Z,setUiAjaxConfiguration:C},`children-${$}`)})})})},BC=BH;var JC=W({name:"OneOfCard",component:BC,metadata:{author:"Swarm.ing",description:"Different variants"}});var i=require("react"),s=require("@tanstack/react-query");var Ef=require("react");var Rf=require("react"),Lf=new Map,of=new Map;function Nf(f,U){let C=`${f}::${U}`,H=f?Lf.get(C):void 0,[D,I]=Rf.useState(H??null);return Rf.useEffect(()=>{if(!f)return;if(Lf.has(C)){I(Lf.get(C));return}let Z=of.get(C);if(!Z)Z=fetch(f+`api/support/${U}`,{method:"GET"}).then((O)=>O.json()).then((O)=>{return Lf.set(C,O),of.delete(C),O}).catch((O)=>{throw of.delete(C),O}),of.set(C,Z);let $=!1;return Z.then((O)=>{if(!$)I(O)}).catch(()=>{}),()=>{$=!0}},[f,U,C]),D}var UU=null,XC=null;function GC(){XC?.()}function CU(){if(typeof window>"u")return Promise.resolve();if(typeof window.sid<"u")return Promise.resolve();if(!UU)UU=new Promise((f)=>{XC=()=>{f()}});return UU}var JH=({children:f})=>{let U=Ef.useContext(E),C=Tf(),H=Nf(C,"socketIO"),D=(I)=>{if(typeof window<"u")window.sid=I.sid,GC(),console.log(`SocketIO initialized: ${window.sid}`)};return Ef.useEffect(()=>{if(!U)return;let I=()=>{console.log("SocketIO connected")},Z=($)=>{console.log(`SocketIO disconnected: ${$}`),U.connect()};if(H)U.on("pieinit",D),U.on("connect",I),U.on("disconnect",Z),U.connect();return()=>{if(H)U.off("pieinit",D),U.off("connect",I),U.off("disconnect",Z),U.disconnect()}},[U,H]),f},yf=JH;var kf=require("react");var XH=({children:f})=>{let U=kf.useContext(N),C=Tf(),H=Nf(C,"centrifuge");return kf.useEffect(()=>{if(!U)return;let D=()=>{console.log("Centrifuge connected")},I=(Z)=>{console.log("Centrifuge disconnected:",Z)};if(H)U.on("connected",D),U.on("disconnected",I),U.connect();return()=>{if(H)U.disconnect()}},[U,H]),f},jf=XH;var YC=require("axios-date-transformer");var QC=require("react/jsx-runtime");function WC(f,U,C){if(!U)return C;let H=f.replace(/^\//,""),D=U[H];if(!D)return C;return QC.jsx(Af,{uiConfig:D})}var K=require("react/jsx-runtime"),GH=({location:f,fallback:U,piecache:C,onError:H,queryOptions:D,disableGlobalForm:I})=>{let Z=ff(),$=qf(),O=x(),V=i.useMemo(()=>YC.createAxiosDateTransformer({baseURL:Z||""}),[Z]),z=i.useMemo(()=>d(),[]),X=i.useMemo(()=>Z?Xf(Z):null,[Z]),Q=i.useMemo(()=>Z?Jf(Z,$):null,[Z,$]),{data:T,isLoading:B,error:G}=s.useQuery({queryKey:["uiConfig",f.pathname+f.search,Z],enabled:!!Z,queryFn:async()=>{let J=new URLSearchParams(f.search);J.set("__pieroot","web");let F="/api/content"+f.pathname+"?"+J.toString();if(O)console.log("[PieRoot] Fetching UI configuration from:",F);let Y=await V.get(F,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(O)console.log("[PieRoot] Received UI configuration:",Y.data);return Y.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(J)=>Math.min(1000*2**J,30000),...D}),q=WC(f.pathname,C,U);if(!Z)return q??null;if(O)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",Z),console.log("[PieRoot] CENTRIFUGE_SERVER:",$),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!C);if(G){if(O)console.error("[PieRoot] Error fetching UI configuration:",G),console.error("[PieRoot] Error details:",{message:G.message,status:G.response?.status,data:G.response?.data});return H?.(G),q}if(B||!T){if(O)console.log("[PieRoot] Loading state:",{isLoading:B,hasUiConfiguration:!!T});return q}if(O)console.log("[PieRoot] UI configuration loaded successfully:",T),console.log("[PieRoot] Rendering UI with configuration");return K.jsx(y.Provider,{value:z,children:K.jsx(E.Provider,{value:X,children:K.jsx(N.Provider,{value:Q,children:K.jsx(M.Provider,{value:U??K.jsx(K.Fragment,{}),children:K.jsx(yf,{children:K.jsx(jf,{children:I?K.jsx(_,{uiConfig:T}):K.jsx("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:K.jsx(_,{uiConfig:T})})})})})})})})},WH=(f)=>{let U=i.useMemo(()=>new s.QueryClient,[]),C=f.queryClient??U;return K.jsx(j.Provider,{value:f.onNavigate,children:K.jsx(b.Provider,{value:f.config,children:K.jsx(m.Provider,{value:f.onError,children:K.jsx(s.QueryClientProvider,{client:C,children:K.jsx(GH,{...f})})})})})},xf=WH;var t=require("react"),mf=require("@tanstack/react-query");var S=require("react/jsx-runtime"),QH=({location:f,fallback:U,children:C,disableGlobalForm:H})=>{let D=ff(),I=qf(),Z=x(),$=t.useMemo(()=>d(),[]),O=t.useMemo(()=>D?Xf(D):null,[D]),V=t.useMemo(()=>D?Jf(D,I):null,[D,I]);if(Z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",D),console.log("[PieRoot] CENTRIFUGE_SERVER:",I),console.log("[PieRoot] Fallback provided:",!!U);return S.jsx(y.Provider,{value:$,children:S.jsx(E.Provider,{value:O,children:S.jsx(N.Provider,{value:V,children:S.jsx(M.Provider,{value:U??S.jsx(S.Fragment,{}),children:S.jsx(yf,{children:S.jsx(jf,{children:H?C:S.jsx("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:C})})})})})})})},YH=(f)=>{let[U]=t.useState(()=>new mf.QueryClient),C=f.queryClient??U;return S.jsx(j.Provider,{value:f.onNavigate,children:S.jsx(b.Provider,{value:f.config,children:S.jsx(m.Provider,{value:f.onError,children:S.jsx(mf.QueryClientProvider,{client:C,children:S.jsx(QH,{...f})})})})})},AC=YH;var PC=require("react");var HU=require("react/jsx-runtime"),AH=HU.jsx("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),PH=({apiServer:f,pathname:U="/",search:C="",centrifugeServer:H,fallback:D,enableRenderingLog:I=!1})=>{let Z=f??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"",$=PC.useMemo(()=>({apiServer:Z,centrifugeServer:H,enableRenderingLog:I,pageProcessor:"web"}),[Z,H,I]);return HU.jsx(xf,{location:{pathname:U,search:C},config:$,fallback:D??AH,onNavigate:(V)=>{if(typeof window<"u")window.history.pushState(null,"",V)}})},FC=PH;var KC=require("react"),IU=(f,U=!1)=>{if(f==="sid"){if(!window.sid)throw Error("SocketIO isn't initialized properly");return[window.sid]}let C=document.getElementsByName(f);if(!C.length){if(U)console.warn(`No input found with name ${f}`);return[]}let H=C[0];if(H instanceof HTMLInputElement){if(H.type==="file"&&H.files)return Array.from(H.files);return[H.value]}if(H instanceof HTMLTextAreaElement)return[H.value];return[]},FH=(f,U={},C=[],H,D)=>{let I=D?.renderingLogEnabled??!1,Z=D?.timeout,$=D?.retryPolicy,O=$?.maxRetries??0,V=$?.baseDelay??1000,z=$?.retryOn??[502,503,504];if(I)console.log("Registering AJAX: ",H,U,C);return async(X={})=>{if(typeof window>"u"||typeof document>"u"){if(I)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let Q=D?.apiServer;if(!Q){if(I)console.warn("AJAX skipped: apiServer is missing");return}if(!H||!f){if(I)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(C.includes("sid"))await CU();let T=new FormData;for(let[q,J]of Object.entries({...U,...X}))T.append(q,J);for(let q of C)for(let J of IU(q,I))T.append(q,J);let B=Q+"api/ajax_content"+H;f(null);let G;for(let q=0;q<=O;q++){if(q>0){let Y=V*2**(q-1);if(I)console.log(`AJAX retry ${q}/${O} after ${Y}ms`);await new Promise((P)=>setTimeout(P,Y))}let J=Z!=null?new AbortController:null,F=J&&setTimeout(()=>J.abort(),Z);try{let Y=await fetch(B,{method:"POST",body:T,signal:J?.signal});if(F)clearTimeout(F);if(!Y.ok&&z.includes(Y.status)&&q<O){G=Error(`HTTP ${Y.status}`);continue}let Vf=(Y.headers.get("content-type")||"").includes("application/json");if(!!Y.body?.getReader&&!Vf){let $f=Y.body.getReader(),RC=new TextDecoder,p="";while(!0){let{done:uf,value:NC}=await $f.read();if(uf)break;p+=RC.decode(NC,{stream:!0});let DU=p.split(`
|
|
3
|
+
`);p=DU.pop()??"";for(let EC of DU){let bf=EC.trim();if(!bf)continue;try{let yC=JSON.parse(bf);f([yC])}catch{if(I)console.warn("Failed to parse streamed line:",bf)}}}if(p.trim())try{let uf=JSON.parse(p);f([uf])}catch{if(I)console.warn("Failed to parse final streamed line:",p)}return{}}else{let $f=await Y.json();return f($f),$f}}catch(Y){if(F)clearTimeout(F);if(G=Y,q<O)continue;if(I)console.error("AJAX request failed:",Y);return f(null),Y}}if(I)console.error("AJAX request failed after retries:",G);return f(null),G}},SC=(f,U={},C=[],H,D)=>{let{apiServer:I,enableRenderingLog:Z}=e(),$=JSON.stringify(U),O=JSON.stringify(C),V=JSON.stringify(D);return KC.useMemo(()=>FH(f,U,C,H,{apiServer:I,renderingLogEnabled:Z,timeout:D?.timeout,retryPolicy:D?.retryPolicy}),[f,$,O,H,I,Z,V])};var _C=require("clsx"),wC=require("tailwind-merge");function MC(...f){return wC.twMerge(_C.clsx(f))}var LC=()=>{if(typeof document>"u")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var oC=(f,U)=>`${f}${Bf}${U}`;
|
package/dist/max/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{useMemo as
|
|
2
|
+
import{useMemo as X}from"react";import{QueryClient as rU,QueryClientProvider as tU,useQuery as eU}from"@tanstack/react-query";import NU from"mitt";import{createContext as VU,useCallback as ZL,useContext as NL}from"react";var A=null;function m(){if(!A)A=NU();return A}var FU=VU(null);var d=FU;import{io as OU}from"socket.io-client";import{createContext as QU}from"react";var g=new Map,u=(U)=>{let L=g.get(U);if(L)return L;let z=OU(U,{autoConnect:!1,transports:["websocket"]});return g.set(U,z),z},TU=QU(null),K=TU;import{createContext as qU}from"react";import{Centrifuge as l}from"centrifuge";var c=new Map,h=(U,L)=>{if(!L)return null;let z=`${U}::${L}`,H=c.get(z);if(H)return H;async function D(){let I=await fetch(U+"api/centrifuge/gen_token");if(!I.ok){if(I.status===403)throw new l.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${I.status}`)}return(await I.json()).token}let $=new l(L,{getToken:D});return c.set(z,$),$},GU=qU(null),_=GU;import{useContext as WU,useEffect as EU}from"react";import{useEffect as YU,useState as XU}from"react";var W=new Map,E=new Map;function R(U,L){let z=`${U}::${L}`,H=U?W.get(z):void 0,[D,$]=XU(H??null);return YU(()=>{if(!U)return;if(W.has(z)){$(W.get(z));return}let I=E.get(z);if(!I)I=fetch(U+`api/support/${L}`,{method:"GET"}).then((J)=>J.json()).then((J)=>{return W.set(z,J),E.delete(z),J}).catch((J)=>{throw E.delete(z),J}),E.set(z,I);let N=!1;return I.then((J)=>{if(!N)$(J)}).catch(()=>{}),()=>{N=!0}},[U,L,z]),D}import{createContext as BU,useContext as KU}from"react";var P=BU(null),S=()=>{let U=KU(P);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},k=()=>{let{apiServer:U}=S();return U},j=k,o=()=>{let{centrifugeServer:U}=S();return U};var F=()=>{let{enableRenderingLog:U}=S();return U};var _U=null;function p(){_U?.()}var RU=({children:U})=>{let L=WU(K),z=j(),H=R(z,"socketIO"),D=($)=>{if(typeof window<"u")window.sid=$.sid,p(),console.log(`SocketIO initialized: ${window.sid}`)};return EU(()=>{if(!L)return;let $=()=>{console.log("SocketIO connected")},I=(N)=>{console.log(`SocketIO disconnected: ${N}`),L.connect()};if(H)L.on("pieinit",D),L.on("connect",$),L.on("disconnect",I),L.connect();return()=>{if(H)L.off("pieinit",D),L.off("connect",$),L.off("disconnect",I),L.disconnect()}},[L,H]),U},n=RU;import{useContext as jU,useEffect as MU}from"react";var fU=({children:U})=>{let L=jU(_),z=j(),H=R(z,"centrifuge");return MU(()=>{if(!L)return;let D=()=>{console.log("Centrifuge connected")},$=(I)=>{console.log("Centrifuge disconnected:",I)};if(H)L.on("connected",D),L.on("disconnected",$),L.connect();return()=>{if(H)L.disconnect()}},[L,H]),U},s=fU;import{createContext as AU}from"react";import{jsx as kU,Fragment as SU}from"react/jsx-runtime";var PU=AU(kU(SU,{})),O=PU;import{createContext as yU}from"react";var wU=yU(void 0),Q=wU;var i=Symbol.for("@swarm.ing/pieui:component-registry"),a=globalThis,CU=a[i]??(a[i]=new Map);var M=(U)=>{return CU.get(U)};import{useContext as r,memo as gU}from"react";import{Component as bU,Suspense as xU}from"react";import{jsx as dU}from"react/jsx-runtime";var vU=2,mU=400;class T extends bU{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<vU){let L=mU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((z)=>({failed:!1,attempt:z.attempt+1}))},L)}}componentDidUpdate(U){if(U.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return dU(xU,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as y}from"react/jsx-runtime";function uU({uiConfig:U,setUiAjaxConfiguration:L}){let z=r(O),H=r(Q),D=F();if(D)console.log("[UI] Rendering component:",U.card),console.log("[UI] Component data:",U.data),console.log("[UI] Component content:",U.content),console.log("[UI] Has setUiAjaxConfiguration:",!!L);let $=M(U.card);if(!$?.component){if(D)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return z}if(D)console.log("[UI] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata});let I=$.component,N=y(I,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if($.isLazy){if(D)console.log("[UI] Rendering lazy component with Suspense:",$.name);return y(T,{name:$.name,fallback:$.fallback?y($.fallback,{}):z,onError:H,children:N})}if(D)console.log("[UI] Rendering component directly:",$.name);return N}var w=gU(uU);import{createAxiosDateTransformer as UL}from"axios-date-transformer";import{useEffect as t,useState as lU}from"react";var q=()=>{let[U,L]=lU(null);return t(()=>{if(typeof window>"u")return;let z=window.WebApp;if(!z)return;z.ready(),L(z)},[]),U},cU=()=>{let U=q();return[U?.initDataUnsafe,U?.initData]},hU=(U)=>{let L=q();return t(()=>{if(!L||!U)return;return L.BackButton.onClick(U),L.BackButton.show(),()=>{L.BackButton.offClick(U),L.BackButton.hide()}},[L,U]),L?.BackButton??null},oU=()=>{return q()?.HapticFeedback??null};import{createContext as pU}from"react";var nU=pU(void 0),e=nU;import{useContext as LU}from"react";import{createContext as sU}from"react";var iU=sU(null),UU=iU;import{jsx as f}from"react/jsx-runtime";function $U({uiConfig:U,setUiAjaxConfiguration:L}){let z=LU(O),H=LU(Q),D=F();if(D)console.log("[UILoading] Rendering fallback for:",U.card),console.log("[UILoading] Component data:",U.data),console.log("[UILoading] Component content:",U.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!L);let $=M(U.card);if(!$?.component){if(D)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return z}if(D)console.log("[UILoading] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata,hasFallback:!!$.fallback});if($.fallback){if(D)console.log("[UILoading] Rendering fallback for:",$.name);let J=$.fallback;return f(J,{})}if(D)console.log("[UILoading] No fallback, rendering full component:",$.name);let I=$.component,N=f(UU.Provider,{value:$U,children:f(I,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if($.isLazy)return f(T,{name:$.name,fallback:z,onError:H,children:N});return N}var zU=$U;import{jsx as aU}from"react/jsx-runtime";function IU(U,L,z){if(!L)return z;let H=U.replace(/^\//,""),D=L[H];if(!D)return z;return aU(zU,{uiConfig:D})}import{jsx as Z,Fragment as zL}from"react/jsx-runtime";var LL=({location:U,fallback:L,piecache:z,onError:H,queryOptions:D,disableGlobalForm:$})=>{let I=k(),N=o(),J=F(),DU=X(()=>UL({baseURL:I}),[I]),HU=X(()=>m(),[]),JU=X(()=>I?u(I):null,[I]),ZU=X(()=>I?h(I,N):null,[I,N]),B=q(),{data:G,isLoading:C,error:V}=eU({queryKey:["uiConfig",U.pathname+U.search,B?.initData],queryFn:async()=>{let Y=new URLSearchParams(U.search);if(Y.set("__pieroot","max"),B?.initData)Y.set("initData",B.initData);let x="/api/content"+U.pathname+"?"+Y.toString();if(J)console.log("[PieRoot] Fetching UI configuration from:",x);let v=await DU.get(x,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(J)console.log("[PieRoot] Received UI configuration:",v.data);return v.data},enabled:!!B?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(Y)=>Math.min(1000*2**Y,30000),...D}),b=IU(U.pathname,z,L);if(!I)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(V&&J)return console.error("[PieRoot] Error fetching UI configuration:",V),console.error("[PieRoot] Error details:",{message:V.message,status:V.response?.status,data:V.response?.data}),H?.(V),b;if(C||!G){if(J)console.log("[PieRoot] Loading state:",{isLoading:C,hasUiConfiguration:!!G});return b}if(J)console.log("[PieRoot] UI configuration loaded successfully:",G),console.log("[PieRoot] Rendering UI with configuration");return Z(d.Provider,{value:HU,children:Z(K.Provider,{value:JU,children:Z(_.Provider,{value:ZU,children:Z(O.Provider,{value:L??Z(zL,{}),children:Z(n,{children:Z(s,{children:$?Z(w,{uiConfig:G}):Z("form",{id:"piedata_global_form",action:I+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:Z(w,{uiConfig:G})})})})})})})})},$L=(U)=>{let L=X(()=>new rU,[]),z=U.queryClient??L;return Z(e.Provider,{value:U.onNavigate,children:Z(P.Provider,{value:U.config,children:Z(Q.Provider,{value:U.onError,children:Z(tU,{client:z,children:Z(LL,{...U})})})})})},IL=$L;export{q as useMaxWebApp,cU as useMaxInitData,oU as useMaxHapticFeedback,hU as useMaxBackButton,IL as PieMaxRoot};
|
package/dist/max/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var
|
|
2
|
+
var xU=Object.create;var{getPrototypeOf:vU,defineProperty:K,getOwnPropertyNames:t,getOwnPropertyDescriptor:mU}=Object,e=Object.prototype.hasOwnProperty;var dU=(U,L,$)=>{$=U!=null?xU(vU(U)):{};let I=L||!U||!U.__esModule?K($,"default",{value:U,enumerable:!0}):$;for(let D of t(U))if(!e.call(I,D))K(I,D,{get:()=>U[D],enumerable:!0});return I},r=new WeakMap,gU=(U)=>{var L=r.get(U),$;if(L)return L;if(L=K({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function")t(U).map((I)=>!e.call(L,I)&&K(L,I,{get:()=>U[I],enumerable:!($=mU(U,I))||$.enumerable}));return r.set(U,L),L};var uU=(U,L)=>{for(var $ in L)K(U,$,{get:L[$],enumerable:!0,configurable:!0,set:(I)=>L[$]=()=>I})};var IL={};uU(IL,{useMaxWebApp:()=>V,useMaxInitData:()=>BU,useMaxHapticFeedback:()=>_U,useMaxBackButton:()=>KU,PieMaxRoot:()=>kU});module.exports=gU(IL);var G=require("react"),Y=require("@tanstack/react-query");var UU=dU(require("mitt")),j=require("react"),g=null;function LU(){if(!g)g=UU.default();return g}var lU=j.createContext(null);var $U=lU;var IU=require("socket.io-client"),DU=require("react"),zU=new Map,HU=(U)=>{let L=zU.get(U);if(L)return L;let $=IU.io(U,{autoConnect:!1,transports:["websocket"]});return zU.set(U,$),$},cU=DU.createContext(null),M=cU;var ZU=require("react"),u=require("centrifuge"),JU=new Map,NU=(U,L)=>{if(!L)return null;let $=`${U}::${L}`,I=JU.get($);if(I)return I;async function D(){let H=await fetch(U+"api/centrifuge/gen_token");if(!H.ok){if(H.status===403)throw new u.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${H.status}`)}return(await H.json()).token}let z=new u.Centrifuge(L,{getToken:D});return JU.set($,z),z},hU=ZU.createContext(null),f=hU;var C=require("react");var S=require("react"),A=new Map,P=new Map;function k(U,L){let $=`${U}::${L}`,I=U?A.get($):void 0,[D,z]=S.useState(I??null);return S.useEffect(()=>{if(!U)return;if(A.has($)){z(A.get($));return}let H=P.get($);if(!H)H=fetch(U+`api/support/${L}`,{method:"GET"}).then((Z)=>Z.json()).then((Z)=>{return A.set($,Z),P.delete($),Z}).catch((Z)=>{throw P.delete($),Z}),P.set($,H);let N=!1;return H.then((Z)=>{if(!N)z(Z)}).catch(()=>{}),()=>{N=!0}},[U,L,$]),D}var y=require("react"),l=y.createContext(null),c=()=>{let U=y.useContext(l);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},h=()=>{let{apiServer:U}=c();return U},w=h,VU=()=>{let{centrifugeServer:U}=c();return U};var O=()=>{let{enableRenderingLog:U}=c();return U};var oU=null;function FU(){oU?.()}var pU=({children:U})=>{let L=C.useContext(M),$=w(),I=k($,"socketIO"),D=(z)=>{if(typeof window<"u")window.sid=z.sid,FU(),console.log(`SocketIO initialized: ${window.sid}`)};return C.useEffect(()=>{if(!L)return;let z=()=>{console.log("SocketIO connected")},H=(N)=>{console.log(`SocketIO disconnected: ${N}`),L.connect()};if(I)L.on("pieinit",D),L.on("connect",z),L.on("disconnect",H),L.connect();return()=>{if(I)L.off("pieinit",D),L.off("connect",z),L.off("disconnect",H),L.disconnect()}},[L,I]),U},OU=pU;var b=require("react");var nU=({children:U})=>{let L=b.useContext(f),$=w(),I=k($,"centrifuge");return b.useEffect(()=>{if(!L)return;let D=()=>{console.log("Centrifuge connected")},z=(H)=>{console.log("Centrifuge disconnected:",H)};if(I)L.on("connected",D),L.on("disconnected",z),L.connect();return()=>{if(I)L.disconnect()}},[L,I]),U},QU=nU;var TU=require("react"),x=require("react/jsx-runtime"),sU=TU.createContext(x.jsx(x.Fragment,{})),Q=sU;var qU=require("react"),iU=qU.createContext(void 0),T=iU;var GU=Symbol.for("@swarm.ing/pieui:component-registry"),YU=globalThis,aU=YU[GU]??(YU[GU]=new Map);var v=(U)=>{return aU.get(U)};var _=require("react");var m=require("react"),XU=require("react/jsx-runtime"),rU=2,tU=400;class q extends m.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<rU){let L=tU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState(($)=>({failed:!1,attempt:$.attempt+1}))},L)}}componentDidUpdate(U){if(U.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return XU.jsx(m.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var d=require("react/jsx-runtime");function eU({uiConfig:U,setUiAjaxConfiguration:L}){let $=_.useContext(Q),I=_.useContext(T),D=O();if(D)console.log("[UI] Rendering component:",U.card),console.log("[UI] Component data:",U.data),console.log("[UI] Component content:",U.content),console.log("[UI] Has setUiAjaxConfiguration:",!!L);let z=v(U.card);if(!z?.component){if(D)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return $}if(D)console.log("[UI] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata});let H=z.component,N=d.jsx(H,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if(z.isLazy){if(D)console.log("[UI] Rendering lazy component with Suspense:",z.name);return d.jsx(q,{name:z.name,fallback:z.fallback?d.jsx(z.fallback,{}):$,onError:I,children:N})}if(D)console.log("[UI] Rendering component directly:",z.name);return N}var o=_.memo(eU);var SU=require("axios-date-transformer");var W=require("react"),V=()=>{let[U,L]=W.useState(null);return W.useEffect(()=>{if(typeof window>"u")return;let $=window.WebApp;if(!$)return;$.ready(),L($)},[]),U},BU=()=>{let U=V();return[U?.initDataUnsafe,U?.initData]},KU=(U)=>{let L=V();return W.useEffect(()=>{if(!L||!U)return;return L.BackButton.onClick(U),L.BackButton.show(),()=>{L.BackButton.offClick(U),L.BackButton.hide()}},[L,U]),L?.BackButton??null},_U=()=>{return V()?.HapticFeedback??null};var WU=require("react"),UL=WU.createContext(void 0),EU=UL;var p=require("react");var RU=require("react"),LL=RU.createContext(null),jU=LL;var E=require("react/jsx-runtime");function MU({uiConfig:U,setUiAjaxConfiguration:L}){let $=p.useContext(Q),I=p.useContext(T),D=O();if(D)console.log("[UILoading] Rendering fallback for:",U.card),console.log("[UILoading] Component data:",U.data),console.log("[UILoading] Component content:",U.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!L);let z=v(U.card);if(!z?.component){if(D)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return $}if(D)console.log("[UILoading] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata,hasFallback:!!z.fallback});if(z.fallback){if(D)console.log("[UILoading] Rendering fallback for:",z.name);let Z=z.fallback;return E.jsx(Z,{})}if(D)console.log("[UILoading] No fallback, rendering full component:",z.name);let H=z.component,N=E.jsx(jU.Provider,{value:MU,children:E.jsx(H,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if(z.isLazy)return E.jsx(q,{name:z.name,fallback:$,onError:I,children:N});return N}var fU=MU;var PU=require("react/jsx-runtime");function AU(U,L,$){if(!L)return $;let I=U.replace(/^\//,""),D=L[I];if(!D)return $;return PU.jsx(fU,{uiConfig:D})}var J=require("react/jsx-runtime"),$L=({location:U,fallback:L,piecache:$,onError:I,queryOptions:D,disableGlobalForm:z})=>{let H=h(),N=VU(),Z=O(),yU=G.useMemo(()=>SU.createAxiosDateTransformer({baseURL:H}),[H]),wU=G.useMemo(()=>LU(),[]),CU=G.useMemo(()=>H?HU(H):null,[H]),bU=G.useMemo(()=>H?NU(H,N):null,[H,N]),R=V(),{data:X,isLoading:n,error:F}=Y.useQuery({queryKey:["uiConfig",U.pathname+U.search,R?.initData],queryFn:async()=>{let B=new URLSearchParams(U.search);if(B.set("__pieroot","max"),R?.initData)B.set("initData",R.initData);let i="/api/content"+U.pathname+"?"+B.toString();if(Z)console.log("[PieRoot] Fetching UI configuration from:",i);let a=await yU.get(i,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(Z)console.log("[PieRoot] Received UI configuration:",a.data);return a.data},enabled:!!R?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(B)=>Math.min(1000*2**B,30000),...D}),s=AU(U.pathname,$,L);if(!H)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(F&&Z)return console.error("[PieRoot] Error fetching UI configuration:",F),console.error("[PieRoot] Error details:",{message:F.message,status:F.response?.status,data:F.response?.data}),I?.(F),s;if(n||!X){if(Z)console.log("[PieRoot] Loading state:",{isLoading:n,hasUiConfiguration:!!X});return s}if(Z)console.log("[PieRoot] UI configuration loaded successfully:",X),console.log("[PieRoot] Rendering UI with configuration");return J.jsx($U.Provider,{value:wU,children:J.jsx(M.Provider,{value:CU,children:J.jsx(f.Provider,{value:bU,children:J.jsx(Q.Provider,{value:L??J.jsx(J.Fragment,{}),children:J.jsx(OU,{children:J.jsx(QU,{children:z?J.jsx(o,{uiConfig:X}):J.jsx("form",{id:"piedata_global_form",action:H+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:J.jsx(o,{uiConfig:X})})})})})})})})},zL=(U)=>{let L=G.useMemo(()=>new Y.QueryClient,[]),$=U.queryClient??L;return J.jsx(EU.Provider,{value:U.onNavigate,children:J.jsx(l.Provider,{value:U.config,children:J.jsx(T.Provider,{value:U.onError,children:J.jsx(Y.QueryClientProvider,{client:$,children:J.jsx($L,{...U})})})})})},kU=zL;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{useMemo as
|
|
2
|
+
import{useMemo as G}from"react";import{QueryClient as aU,QueryClientProvider as tU,useQuery as rU}from"@tanstack/react-query";import BU from"mitt";import{createContext as FU,useCallback as VL,useContext as ZL}from"react";var k=null;function m(){if(!k)k=BU();return k}var NU=FU(null);var d=NU;import{io as XU}from"socket.io-client";import{createContext as DU}from"react";var u=new Map,g=(U)=>{let L=u.get(U);if(L)return L;let z=XU(U,{autoConnect:!1,transports:["websocket"]});return u.set(U,z),z},OU=DU(null),K=OU;import{createContext as QU}from"react";import{Centrifuge as c}from"centrifuge";var l=new Map,h=(U,L)=>{if(!L)return null;let z=`${U}::${L}`,J=l.get(z);if(J)return J;async function I(){let H=await fetch(U+"api/centrifuge/gen_token");if(!H.ok){if(H.status===403)throw new c.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${H.status}`)}return(await H.json()).token}let $=new c(L,{getToken:I});return l.set(z,$),$},qU=QU(null),W=qU;import{useContext as MU,useEffect as RU}from"react";import{useEffect as GU,useState as YU}from"react";var _=new Map,M=new Map;function R(U,L){let z=`${U}::${L}`,J=U?_.get(z):void 0,[I,$]=YU(J??null);return GU(()=>{if(!U)return;if(_.has(z)){$(_.get(z));return}let H=M.get(z);if(!H)H=fetch(U+`api/support/${L}`,{method:"GET"}).then((V)=>V.json()).then((V)=>{return _.set(z,V),M.delete(z),V}).catch((V)=>{throw M.delete(z),V}),M.set(z,H);let B=!1;return H.then((V)=>{if(!B)$(V)}).catch(()=>{}),()=>{B=!0}},[U,L,z]),I}import{createContext as KU,useContext as WU}from"react";var P=KU(null),T=()=>{let U=WU(P);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},S=()=>{let{apiServer:U}=T();return U},E=S,o=()=>{let{centrifugeServer:U}=T();return U};var N=()=>{let{enableRenderingLog:U}=T();return U};var p=()=>{let{pageProcessor:U}=T();return U};var _U=null;function n(){_U?.()}var TU=({children:U})=>{let L=MU(K),z=E(),J=R(z,"socketIO"),I=($)=>{if(typeof window<"u")window.sid=$.sid,n(),console.log(`SocketIO initialized: ${window.sid}`)};return RU(()=>{if(!L)return;let $=()=>{console.log("SocketIO connected")},H=(B)=>{console.log(`SocketIO disconnected: ${B}`),L.connect()};if(J)L.on("pieinit",I),L.on("connect",$),L.on("disconnect",H),L.connect();return()=>{if(J)L.off("pieinit",I),L.off("connect",$),L.off("disconnect",H),L.disconnect()}},[L,J]),U},s=TU;import{useContext as EU,useEffect as AU}from"react";var jU=({children:U})=>{let L=EU(W),z=E(),J=R(z,"centrifuge");return AU(()=>{if(!L)return;let I=()=>{console.log("Centrifuge connected")},$=(H)=>{console.log("Centrifuge disconnected:",H)};if(J)L.on("connected",I),L.on("disconnected",$),L.connect();return()=>{if(J)L.disconnect()}},[L,J]),U},i=jU;import{createContext as fU}from"react";import{jsx as SU,Fragment as PU}from"react/jsx-runtime";var kU=fU(SU(PU,{})),X=kU;import{createContext as wU}from"react";var yU=wU(void 0),D=yU;var a=Symbol.for("@swarm.ing/pieui:component-registry"),t=globalThis,bU=t[a]??(t[a]=new Map);var A=(U)=>{return bU.get(U)};import{useContext as r,memo as uU}from"react";import{Component as xU,Suspense as CU}from"react";import{jsx as dU}from"react/jsx-runtime";var vU=2,mU=400;class O extends xU{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<vU){let L=mU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((z)=>({failed:!1,attempt:z.attempt+1}))},L)}}componentDidUpdate(U){if(U.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return dU(CU,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as w}from"react/jsx-runtime";function gU({uiConfig:U,setUiAjaxConfiguration:L}){let z=r(X),J=r(D),I=N();if(I)console.log("[UI] Rendering component:",U.card),console.log("[UI] Component data:",U.data),console.log("[UI] Component content:",U.content),console.log("[UI] Has setUiAjaxConfiguration:",!!L);let $=A(U.card);if(!$?.component){if(I)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return z}if(I)console.log("[UI] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata});let H=$.component,B=w(H,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if($.isLazy){if(I)console.log("[UI] Rendering lazy component with Suspense:",$.name);return w(O,{name:$.name,fallback:$.fallback?w($.fallback,{}):z,onError:J,children:B})}if(I)console.log("[UI] Rendering component directly:",$.name);return B}var y=uU(gU);import{createAxiosDateTransformer as eU}from"axios-date-transformer";import{useEffect as cU,useState as lU}from"react";var j=({onError:U}={})=>{let[L,z]=lU(null),J=p();return cU(()=>{if(typeof window>"u")return;let I=window.Telegram?.WebApp;if(!I)return;try{I.ready?.()}catch($){U?.()}if(J==="telegram_expanded"&&(I.platform==="ios"||I.platform==="android"))I.expand();z(I)},[]),L},hU=()=>{let U=j();return[U?.initDataUnsafe,U?.initData]};import{createContext as oU}from"react";var pU=oU(void 0),e=pU;import{useContext as LU}from"react";import{createContext as nU}from"react";var sU=nU(null),UU=sU;import{jsx as f}from"react/jsx-runtime";function $U({uiConfig:U,setUiAjaxConfiguration:L}){let z=LU(X),J=LU(D),I=N();if(I)console.log("[UILoading] Rendering fallback for:",U.card),console.log("[UILoading] Component data:",U.data),console.log("[UILoading] Component content:",U.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!L);let $=A(U.card);if(!$?.component){if(I)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return z}if(I)console.log("[UILoading] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata,hasFallback:!!$.fallback});if($.fallback){if(I)console.log("[UILoading] Rendering fallback for:",$.name);let V=$.fallback;return f(V,{})}if(I)console.log("[UILoading] No fallback, rendering full component:",$.name);let H=$.component,B=f(UU.Provider,{value:$U,children:f(H,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if($.isLazy)return f(O,{name:$.name,fallback:z,onError:J,children:B});return B}var zU=$U;import{jsx as iU}from"react/jsx-runtime";function IU(U,L,z){if(!L)return z;let J=U.replace(/^\//,""),I=L[J];if(!I)return z;return iU(zU,{uiConfig:I})}import{jsx as Z,Fragment as $L}from"react/jsx-runtime";var UL=({location:U,fallback:L,piecache:z,onError:J,queryOptions:I,disableGlobalForm:$})=>{let H=S(),B=o(),V=N(),HU=G(()=>eU({baseURL:H}),[H]),JU=G(()=>m(),[]),VU=G(()=>H?g(H):null,[H]),ZU=G(()=>H?h(H,B):null,[H,B]),Y=j({onError:J}),{data:Q,isLoading:b,error:F}=rU({queryKey:["uiConfig",U.pathname+U.search,Y?.initData],enabled:!!Y?.initData,queryFn:async()=>{let q=new URLSearchParams(U.search);if(q.set("__pieroot","telegram"),Y?.initData)q.set("initData",Y.initData);let C="/api/content"+U.pathname+"?"+q.toString();if(V)console.log("[PieRoot] Fetching UI configuration from:",C);let v=await HU.get(C,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(V)console.log("[PieRoot] Received UI configuration:",v.data);return v.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(q)=>Math.min(1000*2**q,30000),...I}),x=IU(U.pathname,z,L);if(!H)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(F&&V)return console.error("[PieRoot] Error fetching UI configuration:",F),console.error("[PieRoot] Error details:",{message:F.message,status:F.response?.status,data:F.response?.data}),J?.(F),x;if(b||!Q){if(V)console.log("[PieRoot] Loading state:",{isLoading:b,hasUiConfiguration:!!Q});return x}if(V)console.log("[PieRoot] UI configuration loaded successfully:",Q),console.log("[PieRoot] Rendering UI with configuration");return Z(d.Provider,{value:JU,children:Z(K.Provider,{value:VU,children:Z(W.Provider,{value:ZU,children:Z(X.Provider,{value:L??Z($L,{}),children:Z(s,{children:Z(i,{children:$?Z(y,{uiConfig:Q}):Z("form",{id:"piedata_global_form",action:H+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:Z(y,{uiConfig:Q})})})})})})})})},LL=(U)=>{let L=G(()=>new aU,[]),z=U.queryClient??L;return Z(e.Provider,{value:U.onNavigate,children:Z(P.Provider,{value:U.config,children:Z(D.Provider,{value:U.onError,children:Z(tU,{client:z,children:Z(UL,{...U})})})})})},zL=LL;export{j as useWebApp,hU as useInitData,zL as PieTelegramRoot};
|
package/dist/telegram/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var
|
|
2
|
+
var xU=Object.create;var{getPrototypeOf:CU,defineProperty:K,getOwnPropertyNames:r,getOwnPropertyDescriptor:vU}=Object,e=Object.prototype.hasOwnProperty;var mU=(U,L,$)=>{$=U!=null?xU(CU(U)):{};let H=L||!U||!U.__esModule?K($,"default",{value:U,enumerable:!0}):$;for(let I of r(U))if(!e.call(H,I))K(H,I,{get:()=>U[I],enumerable:!0});return H},t=new WeakMap,dU=(U)=>{var L=t.get(U),$;if(L)return L;if(L=K({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function")r(U).map((H)=>!e.call(L,H)&&K(L,H,{get:()=>U[H],enumerable:!($=vU(U,H))||$.enumerable}));return t.set(U,L),L};var uU=(U,L)=>{for(var $ in L)K(U,$,{get:L[$],enumerable:!0,configurable:!0,set:(H)=>L[$]=()=>H})};var zL={};uU(zL,{useWebApp:()=>_,useInitData:()=>WU,PieTelegramRoot:()=>PU});module.exports=dU(zL);var Q=require("react"),q=require("@tanstack/react-query");var UU=mU(require("mitt")),T=require("react"),g=null;function LU(){if(!g)g=UU.default();return g}var gU=T.createContext(null);var $U=gU;var IU=require("socket.io-client"),HU=require("react"),zU=new Map,JU=(U)=>{let L=zU.get(U);if(L)return L;let $=IU.io(U,{autoConnect:!1,transports:["websocket"]});return zU.set(U,$),$},cU=HU.createContext(null),E=cU;var ZU=require("react"),c=require("centrifuge"),VU=new Map,BU=(U,L)=>{if(!L)return null;let $=`${U}::${L}`,H=VU.get($);if(H)return H;async function I(){let J=await fetch(U+"api/centrifuge/gen_token");if(!J.ok){if(J.status===403)throw new c.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${J.status}`)}return(await J.json()).token}let z=new c.Centrifuge(L,{getToken:I});return VU.set($,z),z},lU=ZU.createContext(null),A=lU;var b=require("react");var k=require("react"),j=new Map,f=new Map;function P(U,L){let $=`${U}::${L}`,H=U?j.get($):void 0,[I,z]=k.useState(H??null);return k.useEffect(()=>{if(!U)return;if(j.has($)){z(j.get($));return}let J=f.get($);if(!J)J=fetch(U+`api/support/${L}`,{method:"GET"}).then((Z)=>Z.json()).then((Z)=>{return j.set($,Z),f.delete($),Z}).catch((Z)=>{throw f.delete($),Z}),f.set($,J);let B=!1;return J.then((Z)=>{if(!B)z(Z)}).catch(()=>{}),()=>{B=!0}},[U,L,$]),I}var S=require("react"),l=S.createContext(null),w=()=>{let U=S.useContext(l);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},h=()=>{let{apiServer:U}=w();return U},y=h,FU=()=>{let{centrifugeServer:U}=w();return U};var N=()=>{let{enableRenderingLog:U}=w();return U};var NU=()=>{let{pageProcessor:U}=w();return U};var hU=null;function XU(){hU?.()}var oU=({children:U})=>{let L=b.useContext(E),$=y(),H=P($,"socketIO"),I=(z)=>{if(typeof window<"u")window.sid=z.sid,XU(),console.log(`SocketIO initialized: ${window.sid}`)};return b.useEffect(()=>{if(!L)return;let z=()=>{console.log("SocketIO connected")},J=(B)=>{console.log(`SocketIO disconnected: ${B}`),L.connect()};if(H)L.on("pieinit",I),L.on("connect",z),L.on("disconnect",J),L.connect();return()=>{if(H)L.off("pieinit",I),L.off("connect",z),L.off("disconnect",J),L.disconnect()}},[L,H]),U},DU=oU;var x=require("react");var pU=({children:U})=>{let L=x.useContext(A),$=y(),H=P($,"centrifuge");return x.useEffect(()=>{if(!L)return;let I=()=>{console.log("Centrifuge connected")},z=(J)=>{console.log("Centrifuge disconnected:",J)};if(H)L.on("connected",I),L.on("disconnected",z),L.connect();return()=>{if(H)L.disconnect()}},[L,H]),U},OU=pU;var QU=require("react"),C=require("react/jsx-runtime"),nU=QU.createContext(C.jsx(C.Fragment,{})),X=nU;var qU=require("react"),sU=qU.createContext(void 0),D=sU;var GU=Symbol.for("@swarm.ing/pieui:component-registry"),YU=globalThis,iU=YU[GU]??(YU[GU]=new Map);var v=(U)=>{return iU.get(U)};var W=require("react");var m=require("react"),KU=require("react/jsx-runtime"),aU=2,tU=400;class O extends m.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<aU){let L=tU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState(($)=>({failed:!1,attempt:$.attempt+1}))},L)}}componentDidUpdate(U){if(U.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return KU.jsx(m.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var d=require("react/jsx-runtime");function rU({uiConfig:U,setUiAjaxConfiguration:L}){let $=W.useContext(X),H=W.useContext(D),I=N();if(I)console.log("[UI] Rendering component:",U.card),console.log("[UI] Component data:",U.data),console.log("[UI] Component content:",U.content),console.log("[UI] Has setUiAjaxConfiguration:",!!L);let z=v(U.card);if(!z?.component){if(I)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return $}if(I)console.log("[UI] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata});let J=z.component,B=d.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if(z.isLazy){if(I)console.log("[UI] Rendering lazy component with Suspense:",z.name);return d.jsx(O,{name:z.name,fallback:z.fallback?d.jsx(z.fallback,{}):$,onError:H,children:B})}if(I)console.log("[UI] Rendering component directly:",z.name);return B}var o=W.memo(rU);var kU=require("axios-date-transformer");var u=require("react");var _=({onError:U}={})=>{let[L,$]=u.useState(null),H=NU();return u.useEffect(()=>{if(typeof window>"u")return;let I=window.Telegram?.WebApp;if(!I)return;try{I.ready?.()}catch(z){U?.()}if(H==="telegram_expanded"&&(I.platform==="ios"||I.platform==="android"))I.expand();$(I)},[]),L},WU=()=>{let U=_();return[U?.initDataUnsafe,U?.initData]};var _U=require("react"),eU=_U.createContext(void 0),MU=eU;var p=require("react");var RU=require("react"),UL=RU.createContext(null),TU=UL;var M=require("react/jsx-runtime");function EU({uiConfig:U,setUiAjaxConfiguration:L}){let $=p.useContext(X),H=p.useContext(D),I=N();if(I)console.log("[UILoading] Rendering fallback for:",U.card),console.log("[UILoading] Component data:",U.data),console.log("[UILoading] Component content:",U.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!L);let z=v(U.card);if(!z?.component){if(I)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return $}if(I)console.log("[UILoading] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata,hasFallback:!!z.fallback});if(z.fallback){if(I)console.log("[UILoading] Rendering fallback for:",z.name);let Z=z.fallback;return M.jsx(Z,{})}if(I)console.log("[UILoading] No fallback, rendering full component:",z.name);let J=z.component,B=M.jsx(TU.Provider,{value:EU,children:M.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if(z.isLazy)return M.jsx(O,{name:z.name,fallback:$,onError:H,children:B});return B}var AU=EU;var fU=require("react/jsx-runtime");function jU(U,L,$){if(!L)return $;let H=U.replace(/^\//,""),I=L[H];if(!I)return $;return fU.jsx(AU,{uiConfig:I})}var V=require("react/jsx-runtime"),LL=({location:U,fallback:L,piecache:$,onError:H,queryOptions:I,disableGlobalForm:z})=>{let J=h(),B=FU(),Z=N(),SU=Q.useMemo(()=>kU.createAxiosDateTransformer({baseURL:J}),[J]),wU=Q.useMemo(()=>LU(),[]),yU=Q.useMemo(()=>J?JU(J):null,[J]),bU=Q.useMemo(()=>J?BU(J,B):null,[J,B]),R=_({onError:H}),{data:G,isLoading:n,error:F}=q.useQuery({queryKey:["uiConfig",U.pathname+U.search,R?.initData],enabled:!!R?.initData,queryFn:async()=>{let Y=new URLSearchParams(U.search);if(Y.set("__pieroot","telegram"),R?.initData)Y.set("initData",R.initData);let i="/api/content"+U.pathname+"?"+Y.toString();if(Z)console.log("[PieRoot] Fetching UI configuration from:",i);let a=await SU.get(i,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(Z)console.log("[PieRoot] Received UI configuration:",a.data);return a.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(Y)=>Math.min(1000*2**Y,30000),...I}),s=jU(U.pathname,$,L);if(!J)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(F&&Z)return console.error("[PieRoot] Error fetching UI configuration:",F),console.error("[PieRoot] Error details:",{message:F.message,status:F.response?.status,data:F.response?.data}),H?.(F),s;if(n||!G){if(Z)console.log("[PieRoot] Loading state:",{isLoading:n,hasUiConfiguration:!!G});return s}if(Z)console.log("[PieRoot] UI configuration loaded successfully:",G),console.log("[PieRoot] Rendering UI with configuration");return V.jsx($U.Provider,{value:wU,children:V.jsx(E.Provider,{value:yU,children:V.jsx(A.Provider,{value:bU,children:V.jsx(X.Provider,{value:L??V.jsx(V.Fragment,{}),children:V.jsx(DU,{children:V.jsx(OU,{children:z?V.jsx(o,{uiConfig:G}):V.jsx("form",{id:"piedata_global_form",action:J+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:V.jsx(o,{uiConfig:G})})})})})})})})},$L=(U)=>{let L=Q.useMemo(()=>new q.QueryClient,[]),$=U.queryClient??L;return V.jsx(MU.Provider,{value:U.onNavigate,children:V.jsx(l.Provider,{value:U.config,children:V.jsx(D.Provider,{value:U.onError,children:V.jsx(q.QueryClientProvider,{client:$,children:V.jsx(LL,{...U})})})})})},PU=$L;
|
package/dist/util/registry.d.ts
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import { ComponentMetadata, ComponentRegistration } from '../types';
|
|
2
2
|
import { ComponentType } from 'react';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* call to {@link registerPieComponent} writes into this `Map`, and the
|
|
6
|
-
* dynamic UI renderer reads from it at render time to resolve a `card` name
|
|
7
|
-
* to a concrete React component.
|
|
8
|
-
*/
|
|
9
|
-
export declare const registry: Map<string, ComponentRegistration<any>>;
|
|
3
|
+
type RegistryMap = Map<string, ComponentRegistration<any>>;
|
|
4
|
+
export declare const registry: RegistryMap;
|
|
10
5
|
/**
|
|
11
6
|
* Registers a PieUI component so it can be rendered by name from a dynamic
|
|
12
7
|
* UI configuration.
|
|
@@ -86,4 +81,5 @@ export declare const preloadComponent: (name: string) => Promise<unknown> | unde
|
|
|
86
81
|
* landing screen).
|
|
87
82
|
*/
|
|
88
83
|
export declare const prefetchLazyComponents: () => void;
|
|
84
|
+
export {};
|
|
89
85
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/util/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/util/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAmBrC,KAAK,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;AAO1D,eAAO,MAAM,QAAQ,EAAE,WACiD,CAAA;AAwCxE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EACvC,YAAY,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAC5C,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAInC;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACnC,YAAY,qBAAqB,CAAC,GAAG,CAAC,EAAE,SAG3C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,SAE/C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,YAExC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GACzB,MAAM,MAAM,KACb,iBAAiB,GAAG,SAEtB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GACzB,MAAM,MAAM,KACb,qBAAqB,CAAC,GAAG,CAAC,GAAG,SAE/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,QAAO,MAAM,EAEnD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,QAAO,MAElC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,MAAM,EAGpB,CAAA;AAE3B;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,GAAG,SAIlE,CAAA;AAID;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,QAAO,IAsCzC,CAAA"}
|