@swarm.ing/pieui 2.1.1 → 2.1.2
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/agent/index.esm.js +1 -1
- package/dist/agent/index.js +1 -1
- 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/centrifuge.d.ts.map +1 -1
- package/dist/util/fallback.d.ts.map +1 -1
- package/dist/util/globalSingleton.d.ts +2 -0
- package/dist/util/globalSingleton.d.ts.map +1 -0
- package/dist/util/lazyError.d.ts.map +1 -1
- package/dist/util/mitt.d.ts +3 -0
- package/dist/util/mitt.d.ts.map +1 -1
- package/dist/util/navigate.d.ts.map +1 -1
- package/dist/util/pieConfig.d.ts.map +1 -1
- package/dist/util/registry.d.ts +16 -0
- package/dist/util/registry.d.ts.map +1 -1
- package/dist/util/socket.d.ts.map +1 -1
- package/dist/util/uiRenderer.d.ts.map +1 -1
- package/dist/util/waitForSidAvailable.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/agent/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{tool as
|
|
2
|
+
import{tool as k}from"@openai/agents";import{useContext as x,useMemo as y}from"react";import K from"mitt";import{createContext as O,useCallback as l,useContext as p}from"react";var b=globalThis,w=(B,G)=>{let H=Symbol.for(B);if(!(H in b))b[H]=G();return b[H]};function _(){return w("@swarm.ing/pieui:mitt-emitter",()=>K())}var R=w("@swarm.ing/pieui:context:mitt",()=>O(null));var T=R;var f=/^pie(.+?)_(.+)$/;function S(B=_(),G={}){let H=[],P=new Set;for(let L of B.all.keys()){if(typeof L!=="string")continue;let Q=L.match(f);if(!Q)continue;let[,U,Z]=Q,Y={methodName:U,cardName:Z,eventName:L};if(G.filter&&!G.filter(Y))continue;let z=G.nameFor?.(Y)??`${Z}_${U}`;if(P.has(z))continue;P.add(z);let V=G.describe?.(Y)??`Invokes the "${U}" method on the PieCard "${Z}" by emitting the in-process mitt event "${L}". The optional "payload" argument is forwarded verbatim to the card's handler.`;H.push(k({name:z,description:V,strict:!1,parameters:{type:"object",properties:{payload:{description:"Arbitrary JSON payload forwarded to the PieCard method handler. Omit for fire-and-forget calls."}},required:[],additionalProperties:!0},execute:async(J)=>{let X=J?.payload;return B.emit(L,X),`Emitted "${L}"`}}))}return H}function M(B={}){let H=x(T)??_(),P=[];for(let Y of H.all.keys())if(typeof Y==="string"&&f.test(Y))P.push(Y);P.sort();let L=P.join("|"),{filter:Q,describe:U,nameFor:Z}=B;return y(()=>S(H,{filter:Q,describe:U,nameFor:Z}),[H,L,Q,U,Z])}import{useCallback as W,useEffect as N,useRef as D,useState as g}from"react";function v(){let B=new AudioContext,G=B.createOscillator(),H=G.connect(B.createMediaStreamDestination());G.start();let P=H.stream.getAudioTracks()[0];return P.enabled=!1,P}function A(B=null,G){let[H,P]=g(!1),L=D(null),Q=D(null),U=D(null),Z=W(async(J,X=!0)=>{if(L.current)Y();let j=new RTCPeerConnection;if(j.onconnectionstatechange=()=>{if(j.connectionState==="connected")P(!0);else if(["disconnected","failed","closed"].includes(j.connectionState))P(!1)},j.ontrack=($)=>{if(B)B.srcObject=$.streams[0]},X){let $=await navigator.mediaDevices.getUserMedia({audio:!0});j.addTrack($.getTracks()[0],$)}else{let $=v();j.addTrack($)}let q=j.createDataChannel("oai-events");Q.current=q,U.current=new Promise(($)=>{q.addEventListener("open",()=>{$()})});let F=await j.createOffer();await j.setLocalDescription(F);let I=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:F.sdp,headers:{Authorization:`Bearer ${J}`,"Content-Type":"application/sdp"}})).text();await j.setRemoteDescription({type:"answer",sdp:I}),L.current=j,await U.current},[B]),Y=W(()=>{let J=Q.current;if(J)J.close();L.current?.getSenders()?.forEach((X)=>X.track?.stop()),L.current?.close(),P(!1),L.current=null,Q.current=null,U.current=null},[B]),z=W((J)=>{let X=Q.current;if(!X){console.error("Data channel is not ready",J);return}let j=new Date().toLocaleTimeString();if(J.event_id=J.event_id||crypto.randomUUID(),X.send(JSON.stringify(J)),!J.timestamp)J.timestamp=j;G?.(J)},[G,B]),V=W((J)=>{if(!Q.current){console.error("Data channel is not ready");return}let j=()=>{z({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:J}]}}),z({type:"response.create"})};if(U.current)U.current.then(j);else j()},[G,B]);return N(()=>{let J=Q.current;if(!J)return;let X=(j)=>{let q=JSON.parse(j.data);if(!q.timestamp)q.timestamp=new Date().toLocaleTimeString();G?.(q)};return J.addEventListener("message",X),()=>{J.removeEventListener("message",X)}},[G,B]),{isSessionActive:H,startSession:Z,stopSession:Y,sendTextMessage:V}}export{M as usePieMittAgentTools,A as useOpenAIWebRTC,S as getMittAgentTools};
|
package/dist/agent/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var
|
|
2
|
+
var g=Object.create;var{getPrototypeOf:v,defineProperty:V,getOwnPropertyNames:K,getOwnPropertyDescriptor:C}=Object,O=Object.prototype.hasOwnProperty;var u=(J,j,B)=>{B=J!=null?g(v(J)):{};let G=j||!J||!J.__esModule?V(B,"default",{value:J,enumerable:!0}):B;for(let L of K(J))if(!O.call(G,L))V(G,L,{get:()=>J[L],enumerable:!0});return G},I=new WeakMap,E=(J)=>{var j=I.get(J),B;if(j)return j;if(j=V({},"__esModule",{value:!0}),J&&typeof J==="object"||typeof J==="function")K(J).map((G)=>!O.call(j,G)&&V(j,G,{get:()=>J[G],enumerable:!(B=C(J,G))||B.enumerable}));return I.set(J,j),j};var h=(J,j)=>{for(var B in j)V(J,B,{get:j[B],enumerable:!0,configurable:!0,set:(G)=>j[B]=()=>G})};var d={};h(d,{usePieMittAgentTools:()=>M,useOpenAIWebRTC:()=>S,getMittAgentTools:()=>f});module.exports=E(d);var x=require("@openai/agents"),w=require("react");var R=u(require("mitt")),b=require("react");var D=globalThis,F=(J,j)=>{let B=Symbol.for(J);if(!(B in D))D[B]=j();return D[B]};function T(){return F("@swarm.ing/pieui:mitt-emitter",()=>R.default())}var r=F("@swarm.ing/pieui:context:mitt",()=>b.createContext(null));var k=r;var y=/^pie(.+?)_(.+)$/;function f(J=T(),j={}){let B=[],G=new Set;for(let L of J.all.keys()){if(typeof L!=="string")continue;let U=L.match(y);if(!U)continue;let[,X,$]=U,Z={methodName:X,cardName:$,eventName:L};if(j.filter&&!j.filter(Z))continue;let W=j.nameFor?.(Z)??`${$}_${X}`;if(G.has(W))continue;G.add(W);let _=j.describe?.(Z)??`Invokes the "${X}" method on the PieCard "${$}" by emitting the in-process mitt event "${L}". The optional "payload" argument is forwarded verbatim to the card's handler.`;B.push(x.tool({name:W,description:_,strict:!1,parameters:{type:"object",properties:{payload:{description:"Arbitrary JSON payload forwarded to the PieCard method handler. Omit for fire-and-forget calls."}},required:[],additionalProperties:!0},execute:async(H)=>{let Y=H?.payload;return J.emit(L,Y),`Emitted "${L}"`}}))}return B}function M(J={}){let B=w.useContext(k)??T(),G=[];for(let Z of B.all.keys())if(typeof Z==="string"&&y.test(Z))G.push(Z);G.sort();let L=G.join("|"),{filter:U,describe:X,nameFor:$}=J;return w.useMemo(()=>f(B,{filter:U,describe:X,nameFor:$}),[B,L,U,X,$])}var Q=require("react");function c(){let J=new AudioContext,j=J.createOscillator(),B=j.connect(J.createMediaStreamDestination());j.start();let G=B.stream.getAudioTracks()[0];return G.enabled=!1,G}function S(J=null,j){let[B,G]=Q.useState(!1),L=Q.useRef(null),U=Q.useRef(null),X=Q.useRef(null),$=Q.useCallback(async(H,Y=!0)=>{if(L.current)Z();let P=new RTCPeerConnection;if(P.onconnectionstatechange=()=>{if(P.connectionState==="connected")G(!0);else if(["disconnected","failed","closed"].includes(P.connectionState))G(!1)},P.ontrack=(q)=>{if(J)J.srcObject=q.streams[0]},Y){let q=await navigator.mediaDevices.getUserMedia({audio:!0});P.addTrack(q.getTracks()[0],q)}else{let q=c();P.addTrack(q)}let z=P.createDataChannel("oai-events");U.current=z,X.current=new Promise((q)=>{z.addEventListener("open",()=>{q()})});let A=await P.createOffer();await P.setLocalDescription(A);let N=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:A.sdp,headers:{Authorization:`Bearer ${H}`,"Content-Type":"application/sdp"}})).text();await P.setRemoteDescription({type:"answer",sdp:N}),L.current=P,await X.current},[J]),Z=Q.useCallback(()=>{let H=U.current;if(H)H.close();L.current?.getSenders()?.forEach((Y)=>Y.track?.stop()),L.current?.close(),G(!1),L.current=null,U.current=null,X.current=null},[J]),W=Q.useCallback((H)=>{let Y=U.current;if(!Y){console.error("Data channel is not ready",H);return}let P=new Date().toLocaleTimeString();if(H.event_id=H.event_id||crypto.randomUUID(),Y.send(JSON.stringify(H)),!H.timestamp)H.timestamp=P;j?.(H)},[j,J]),_=Q.useCallback((H)=>{if(!U.current){console.error("Data channel is not ready");return}let P=()=>{W({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:H}]}}),W({type:"response.create"})};if(X.current)X.current.then(P);else P()},[j,J]);return Q.useEffect(()=>{let H=U.current;if(!H)return;let Y=(P)=>{let z=JSON.parse(P.data);if(!z.timestamp)z.timestamp=new Date().toLocaleTimeString();j?.(z)};return H.addEventListener("message",Y),()=>{H.removeEventListener("message",Y)}},[j,J]),{isSessionActive:B,startSession:$,stopSession:Z,sendTextMessage:_}}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
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};
|
|
2
|
+
import{useContext as _,useEffect as g,useRef as ko}from"react";import{createContext as Xo,useContext as yo}from"react";var K=globalThis,L=(o,r)=>{let p=Symbol.for(o);if(!(p in K))K[p]=r();return K[p]};var Yo=L("@swarm.ing/pieui:context:pieConfig",()=>Xo(null)),Mo=()=>{let o=yo(Yo);if(!o)throw Error("usePieConfig must be used within PieConfigProvider");return o};var Q=()=>{let{enableRenderingLog:o}=Mo();return o},c=Q;import{createContext as Ro}from"react";import{Centrifuge as Jf}from"centrifuge";var Qf=L("@swarm.ing/pieui:centrifuge-cache",()=>new Map);var Ko=L("@swarm.ing/pieui:context:centrifuge",()=>Ro(null)),v=Ko;import{io as yf}from"socket.io-client";import{createContext as _o}from"react";var Kf=L("@swarm.ing/pieui:socket-cache",()=>new Map);var go=L("@swarm.ing/pieui:context:socket",()=>_o(null)),s=go;import xf from"mitt";import{createContext as xo,useCallback as lf,useContext as nf}from"react";var Eo=L("@swarm.ing/pieui:context:mitt",()=>xo(null));var X=Eo;import{jsx as No,jsxs as bo,Fragment as no}from"react/jsx-runtime";var lo=({card:o,data:r,children:p,useSocketioSupport:C=!1,useCentrifugeSupport:u=!1,useMittSupport:f=!1,centrifugeChannel:d=void 0,methods:I=void 0,stored:i=void 0})=>{let m=c(),U=ko(I);if(U.current=I,m)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:C,centrifuge:u,mitt:f,centrifugeChannel:d}),console.log("[PieCard] Methods:",I?Object.keys(I):"none"),console.log("[PieCard] Has children:",!!p);let S=_(s),H=_(v),w=_(X);if(g(()=>{if(!S||!C||!U.current||!r.name){if(m&&C)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!S,useSocketioSupport:C,hasMethods:!!U.current,hasDataName:!!r?.name});return}let Z=Object.keys(U.current??{}).map((O)=>{let D=`pie${O}_${r.name}`;if(m)console.log(`[PieCard] Socket.IO registering event: ${D}`);let B=($)=>{U.current?.[O]?.($)};return S.on(D,B),[D,B]});return()=>{Z.forEach(([O,D])=>{if(m)console.log(`[PieCard] Socket.IO unregistering event: ${O}`);S.off(O,D)})}},[S,r.name,C]),g(()=>{if(!H||!u||!d||!r.name){if(m&&u)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!H,useCentrifugeSupport:u,hasCentrifugeChannel:!!d,hasMethods:!!U.current,hasDataName:!!r?.name});return}let Z=Object.keys(U.current??{}).map((O)=>{let D=`pie${O}_${r.name}_${d}`;if(m)console.log(`[PieCard] Centrifuge subscribing to channel: ${D}`);let B=H.newSubscription(D);return B.on("publication",($)=>{if(m)console.log(`[PieCard] Centrifuge received data on ${D}:`,$.data);U.current?.[O]?.($.data)}),B.subscribe(),B});return()=>{Z.forEach((O)=>{if(m)console.log("[PieCard] Centrifuge unsubscribing from channel");O.unsubscribe(),H.removeSubscription(O)})}},[H,d,r.name,u]),g(()=>{if(!w||!f||!r.name){if(m&&f)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!w,useMittSupport:f,hasMethods:!!U.current,hasDataName:!!r?.name});return}let P=Object.keys(U.current??{}),Z={};return P.forEach((O)=>{let D=`pie${O}_${r.name}`,B=($)=>{if(m)console.log(`[PieCard] Mitt registering event: ${D}`);U.current?.[O]?.($)};Z[D]=B,w.on(D,B)}),()=>{Object.entries(Z).forEach(([O,D])=>{if(m)console.log(`[PieCard] Mitt unregistering event: ${O}`);w.off(O,D)})}},[w,r.name,f]),m)console.log("[PieCard] Rendering complete, returning children");if(i!==void 0)return bo(no,{children:[No("input",{type:"hidden",name:r.name,value:JSON.stringify(i)}),p]});return p},T=lo;import{lazy as jo}from"react";var W=new Map;function to(o,r){return r.catch(()=>{if(W.get(o)===r)W.delete(o)}),W.set(o,r),r}function h(o,r){return jo(()=>{if(W.has(r))return W.get(r);return to(r,o().then((p)=>p))})}var e=L("@swarm.ing/pieui:component-registry",()=>new Map),ao=(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=h(r.loader,o.name),r.isLazy=!0;return r};function A(o){let r=ao(o);return e.set(r.name,r),r.component}var y=(o)=>{return e.get(o)};import{useContext as oo,memo as mr}from"react";import{createContext as co}from"react";import{jsx as ho,Fragment as so}from"react/jsx-runtime";var vo=L("@swarm.ing/pieui:context:fallback",()=>co(ho(so,{}))),G=vo;import{createContext as eo}from"react";var or=L("@swarm.ing/pieui:context:lazyError",()=>eo(void 0)),Y=or;import{Component as rr,Suspense as fr}from"react";import{jsx as ur}from"react/jsx-runtime";var pr=2,Cr=400;class J 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((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 ur(fr,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as x}from"react/jsx-runtime";function dr({uiConfig:o,setUiAjaxConfiguration:r}){let p=oo(G),C=oo(Y),u=Q();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=y(o.card);if(!f?.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:f.name,isLazy:f.isLazy,hasMetadata:!!f.metadata});let d=f.component,I=x(d,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(f.isLazy){if(u)console.log("[UI] Rendering lazy component with Suspense:",f.name);return x(J,{name:f.name,fallback:f.fallback?x(f.fallback,{}):p,onError:C,children:I})}if(u)console.log("[UI] Rendering component directly:",f.name);return I}var q=mr(dr);import{useContext as ro}from"react";import{createContext as Ur}from"react";var ir=L("@swarm.ing/pieui:context:uiRenderer",()=>Ur(null)),V=ir;import{jsx as M}from"react/jsx-runtime";function fo({uiConfig:o,setUiAjaxConfiguration:r}){let p=ro(G),C=ro(Y),u=Q();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=y(o.card);if(!f?.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: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 i=f.fallback;return M(i,{})}if(u)console.log("[UILoading] No fallback, rendering full component:",f.name);let d=f.component,I=M(V.Provider,{value:fo,children:M(d,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(f.isLazy)return M(J,{name:f.name,fallback:p,onError:C,children:I});return I}var Ir=fo;import{useContext as Pr}from"react";import{jsx as E}from"react/jsx-runtime";var wr=({data:o,content:r,setUiAjaxConfiguration:p})=>{let{name:C,sx:u}=o,f=Pr(V)??q;return E(T,{card:C,data:o,children:E("div",{style:u,id:C,children:r.map((d,I)=>{return E(f,{uiConfig:d,setUiAjaxConfiguration:p},`children-${I}`)})})})},po=wr;var Sr=A({name:"SequenceCard",component:po,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as Ar}from"react";import{jsx as Co}from"react/jsx-runtime";var Tr=({data:o,content:r,setUiAjaxConfiguration:p})=>{let{name:C}=o,u=Ar(V)??q;return Co(T,{card:C,data:o,children:r.map((f,d)=>{return Co(u,{uiConfig:f,setUiAjaxConfiguration:p},`children-${d}`)})})},uo=Tr;var Hr=A({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 R,useEffect as Or,useRef as k,useState as Lr}from"react";function Dr(){let o=new AudioContext,r=o.createOscillator(),p=r.connect(o.createMediaStreamDestination());r.start();let C=p.stream.getAudioTracks()[0];return C.enabled=!1,C}function l(o=null,r){let[p,C]=Lr(!1),u=k(null),f=k(null),d=k(null),I=R(async(S,H=!0)=>{if(u.current)i();let w=new RTCPeerConnection;if(w.onconnectionstatechange=()=>{if(w.connectionState==="connected")C(!0);else if(["disconnected","failed","closed"].includes(w.connectionState))C(!1)},w.ontrack=(z)=>{if(o)o.srcObject=z.streams[0]},H){let z=await navigator.mediaDevices.getUserMedia({audio:!0});w.addTrack(z.getTracks()[0],z)}else{let z=Dr();w.addTrack(z)}let P=w.createDataChannel("oai-events");f.current=P,d.current=new Promise((z)=>{P.addEventListener("open",()=>{z()})});let Z=await w.createOffer();await w.setLocalDescription(Z);let $=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:Z.sdp,headers:{Authorization:`Bearer ${S}`,"Content-Type":"application/sdp"}})).text();await w.setRemoteDescription({type:"answer",sdp:$}),u.current=w,await d.current},[o]),i=R(()=>{let S=f.current;if(S)S.close();u.current?.getSenders()?.forEach((H)=>H.track?.stop()),u.current?.close(),C(!1),u.current=null,f.current=null,d.current=null},[o]),m=R((S)=>{let H=f.current;if(!H){console.error("Data channel is not ready",S);return}let w=new Date().toLocaleTimeString();if(S.event_id=S.event_id||crypto.randomUUID(),H.send(JSON.stringify(S)),!S.timestamp)S.timestamp=w;r?.(S)},[r,o]),U=R((S)=>{if(!f.current){console.error("Data channel is not ready");return}let w=()=>{m({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:S}]}}),m({type:"response.create"})};if(d.current)d.current.then(w);else w()},[r,o]);return Or(()=>{let S=f.current;if(!S)return;let H=(w)=>{let P=JSON.parse(w.data);if(!P.timestamp)P.timestamp=new Date().toLocaleTimeString();r?.(P)};return S.addEventListener("message",H),()=>{S.removeEventListener("message",H)}},[r,o]),{isSessionActive:p,startSession:I,stopSession:i,sendTextMessage:U}}import{jsx as qr}from"react/jsx-runtime";var Vr=({data:o})=>{let{html:r,useSocketioSupport:p,useCentrifugeSupport:C,useMittSupport:u,centrifugeChannel:f}=o,[d,I]=Zr(r),{isSessionActive:i,startSession:m,sendTextMessage:U}=l(null,(P)=>{if(console.log(P.type,P.type==="response.output_text.delta"&&P.delta),P.type==="response.output_text.delta"&&P.delta)I((Z)=>Z+P.delta)});return zr(()=>{I(r)},[r]),qr(T,{card:"HTMLEmbedCard",data:o,methods:{update:(P)=>{I(P.value)},generateUsingAI:async(P)=>{try{if(!i&&P.token)await m(P.token,!1);U(P.prompt)}catch(Z){console.error("Failed to generate using AI",Z)}},initializeAI:async(P)=>{if(!i&&P.token)await m(P.token,!1)}},useCentrifugeSupport:C,useSocketioSupport:p,useMittSupport:u,centrifugeChannel:f,children:Br(d)})},mo=Vr;var $r=A({name:"HTMLEmbedCard",component:mo,metadata:{author:"Swarm.ing"}});import{useEffect as Gr,useState as Jr}from"react";import{jsx as Uo}from"react/jsx-runtime";var Fr=({data:o})=>{let{name:r,value:p,useSocketioSupport:C,useCentrifugeSupport:u,useMittSupport:f,centrifugeChannel:d}=o,[I,i]=Jr(p);return Gr(()=>{i(p)},[p]),Uo(T,{card:"HiddenCard",data:o,useSocketioSupport:C,useCentrifugeSupport:u,useMittSupport:f,centrifugeChannel:d,methods:{update:({value:m})=>{i(m)}},children:Uo("input",{type:"hidden",id:r,name:r,value:I})})},io=Fr;var Qr=A({name:"HiddenCard",component:io,metadata:{author:"Swarm.ing"}});import{useContext as Io,useEffect as yr}from"react";import{createContext as Wr}from"react";var Xr=L("@swarm.ing/pieui:context:navigate",()=>Wr(void 0)),F=Xr;import{jsx as Rr,Fragment as Mr}from"react/jsx-runtime";var Yr=({data:o})=>{let{url:r}=o,p=Io(F),C=Io(G);return yr(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else p?.(r)},[r,p]),Rr(Mr,{children:C})},Po=Yr;var Kr=A({name:"AutoRedirectCard",component:Po,metadata:{author:"Swarm.ing"}});import{Bounce as _r,Slide as gr,Zoom as xr,Flip as Er}from"react-toastify";import{toast as kr,ToastContainer as lr}from"react-toastify";import{useContext as nr,useMemo as Nr,useRef as br}from"react";import{jsx as n,Fragment as sr}from"react/jsx-runtime";var jr={bounce:_r,slide:gr,zoom:xr,flip:Er},tr=(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}};kr(o.message,r)},ar=(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(C){console.error("[IOEventsCard] Failed to show notification",C)}},p=window.Notification.permission;if(p==="granted"){r();return}if(p==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((C)=>{if(C==="granted")r()})},vr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:p,useMittSupport:C,centrifugeChannel:u}=o,f=nr(F),d=br(f);d.current=f;let I=Nr(()=>({alert:tr,log:ar,push:cr,redirect:(i)=>{if(i.to){let m=i.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(m))window.location.href=m;else d.current?.(m)}else window.location.reload()},reload:(i)=>{if(i.to){let m=i.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(m))window.location.href=m;else d.current?.(m)}else window.location.reload()}}),[]);return n(sr,{children:n(T,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:p,useMittSupport:C,centrifugeChannel:u,methods:I,children:n(lr,{})})})},wo=vr;var hr=A({name:"IOEventsCard",component:wo,metadata:{author:"Swarm.ing"}});import{useEffect as So,useState as er}from"react";import{jsx as Ao}from"react/jsx-runtime";var of=({data:o})=>{let{name:r,key:p,value:C,useSocketioSupport:u,useCentrifugeSupport:f,useMittSupport:d,centrifugeChannel:I}=o,[i,m]=er(C);return So(()=>{m(C)},[C]),So(()=>{if(typeof window>"u")return;sessionStorage.setItem(p,i)},[p,i]),Ao(T,{card:"SessionStorageCard",data:o,useSocketioSupport:u,useCentrifugeSupport:f,useMittSupport:d,centrifugeChannel:I,methods:{update:({value:U})=>{m(U)},remove:()=>{sessionStorage.removeItem(p),m("")}},children:Ao("input",{type:"hidden",id:r,name:r,value:i})})},To=of;var rf=A({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:p,value:C,useSocketioSupport:u,useCentrifugeSupport:f,useMittSupport:d,centrifugeChannel:I}=o,[i,m]=ff(C);return Ho(()=>{m(C)},[C]),Ho(()=>{if(typeof window>"u")return;localStorage.setItem(p,i)},[p,i]),Oo(T,{card:"DeviceStorageCard",data:o,useSocketioSupport:u,useCentrifugeSupport:f,useMittSupport:d,centrifugeChannel:I,methods:{update:({value:U})=>{m(U)},remove:()=>{localStorage.removeItem(p),m("")}},children:Oo("input",{type:"hidden",id:r,name:r,value:i})})},Lo=pf;var Cf=A({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 mf=({data:o})=>{let{name:r,key:p,value:C,useSocketioSupport:u,useCentrifugeSupport:f,useMittSupport:d,centrifugeChannel:I}=o,[i,m]=uf(C);return Do(()=>{m(C)},[C]),Do(()=>{if(typeof window>"u")return;let U=window.Telegram?.WebApp?.CloudStorage;if(!U)return;U.setItem(p,i)},[p,i]),zo(T,{card:"CloudStorageCard",data:o,useSocketioSupport:u,useCentrifugeSupport:f,useMittSupport:d,centrifugeChannel:I,methods:{update:({value:U})=>{m(U)},remove:()=>{let U=window.Telegram?.WebApp?.CloudStorage;if(U)U.removeItem(p);m("")}},children:zo("input",{type:"hidden",id:r,name:r,value:i})})},Zo=mf;var df=A({name:"CloudStorageCard",component:Zo,metadata:{author:"PieData"}});import{useEffect as Bo,useState as Uf}from"react";import{jsx as Vo}from"react/jsx-runtime";var If=({data:o})=>{let{name:r,key:p,value:C,useSocketioSupport:u,useCentrifugeSupport:f,useMittSupport:d,centrifugeChannel:I}=o,[i,m]=Uf(C);return Bo(()=>{m(C)},[C]),Bo(()=>{if(typeof window>"u")return;let U=window.Telegram?.WebApp?.SecureStorage;if(!U)return;U.setItem(p,i)},[p,i]),Vo(T,{card:"SecureStorageCard",data:o,useSocketioSupport:u,useCentrifugeSupport:f,useMittSupport:d,centrifugeChannel:I,methods:{update:({value:U})=>{m(U)},remove:()=>{let U=window.Telegram?.WebApp?.SecureStorage;if(U)U.removeItem(p);m("")}},children:Vo("input",{type:"hidden",id:r,name:r,value:i})})},qo=If;var Pf=A({name:"SecureStorageCard",component:qo,metadata:{author:"PieData"}});import{useCallback as N,useContext as b,useEffect as wf,useRef as Sf,useState as $o}from"react";import{jsx as Go}from"react/jsx-runtime";var Af=({data:o,content:r})=>{let{useLoader:p,noReturn:C,returnType:u,useSocketioSupport:f,useCentrifugeSupport:d,useMittSupport:I,centrifugeChannel:i}=o,m=b(G),U=b(V)??q,[S,H]=$o(!1),[w,P]=$o(null),Z=Sf(r),O=b(X),D=N((z)=>{if(z===null)H(!0);else if(H(!1),!C)Z.current=z;if(!C)P(z)},[C]),B=N((z)=>{Z.current=z.content,P(z.content)},[]),$=N((z)=>{if(z===null)H(!0);else if(H(!1),!C)for(let a of z)O?.emit(a.name,a.data)},[C,O]);if(wf(()=>{P(r),H(!1)},[r]),!w&&p)return m;return Go(T,{card:"AjaxGroupCard",data:o,methods:{changeContent:B},useSocketioSupport:f,useCentrifugeSupport:d,useMittSupport:I,centrifugeChannel:i,children:Go(U,{uiConfig:w??Z.current,setUiAjaxConfiguration:u==="events"?$:D})})},Jo=Af;var Tf=A({name:"AjaxGroupCard",component:Jo,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as Fo}from"react";import{jsx as j}from"react/jsx-runtime";var Hf=({data:o,content:r,setUiAjaxConfiguration:p})=>{let{name:C,url:u,sx:f}=o,d=Fo(F),I=Fo(V)??q;return j(T,{card:C,data:o,children:j("div",{style:f,id:C,onClick:(m)=>{if(u)if(m.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else d?.(u)},children:j(I,{setUiAjaxConfiguration:p,uiConfig:r})})})},Qo=Hf;var Of=A({name:"BoxCard",component:Qo,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as Lf}from"react";import{jsx as t}from"react/jsx-runtime";var Df=({data:o,content:r,setUiAjaxConfiguration:p})=>{let{name:C,sx:u}=o,f=Lf(V)??q;return t(T,{card:C,data:o,children:t("div",{style:u,id:C,children:r.map((d,I)=>{return t(f,{uiConfig:d,setUiAjaxConfiguration:p},`children-${I}`)})})})},Wo=Df;var zf=A({name:"OneOfCard",component:Wo,metadata:{author:"Swarm.ing",description:"Different variants"}});export{Hr as UnionCard,Ir as UILoading,q as UI,rf as SessionStorageCard,Sr as SequenceCard,Pf as SecureStorageCard,T as PieCard,zf as OneOfCard,hr as IOEventsCard,Qr as HiddenCard,$r as HTMLEmbedCard,Cf as DeviceStorageCard,df 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 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"}});
|
|
2
|
+
var Hr=Object.create;var{getPrototypeOf:Or,defineProperty:K,getOwnPropertyNames:Zo,getOwnPropertyDescriptor:Lr}=Object,Bo=Object.prototype.hasOwnProperty;var Vo=(o,r,f)=>{f=o!=null?Hr(Or(o)):{};let p=r||!o||!o.__esModule?K(f,"default",{value:o,enumerable:!0}):f;for(let u of Zo(o))if(!Bo.call(p,u))K(p,u,{get:()=>o[u],enumerable:!0});return p},zo=new WeakMap,Dr=(o)=>{var r=zo.get(o),f;if(r)return r;if(r=K({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function")Zo(o).map((p)=>!Bo.call(r,p)&&K(r,p,{get:()=>o[p],enumerable:!(f=Lr(o,p))||f.enumerable}));return zo.set(o,r),r};var zr=(o,r)=>{for(var f in r)K(o,f,{get:r[f],enumerable:!0,configurable:!0,set:(p)=>r[f]=()=>p})};var pf={};zr(pf,{UnionCard:()=>no,UILoading:()=>_o,UI:()=>$,SessionStorageCard:()=>fr,SequenceCard:()=>Eo,SecureStorageCard:()=>Ur,PieCard:()=>A,OneOfCard:()=>Tr,IOEventsCard:()=>or,HiddenCard:()=>co,HTMLEmbedCard:()=>to,DeviceStorageCard:()=>Cr,CloudStorageCard:()=>mr,BoxCard:()=>wr,AutoRedirectCard:()=>ho,AjaxGroupCard:()=>Ir});module.exports=Dr(pf);var F=require("react");var j=require("react");var Uo=globalThis,L=(o,r)=>{let f=Symbol.for(o);if(!(f in Uo))Uo[f]=r();return Uo[f]};var Zr=L("@swarm.ing/pieui:context:pieConfig",()=>j.createContext(null)),Br=()=>{let o=j.useContext(Zr);if(!o)throw Error("usePieConfig must be used within PieConfigProvider");return o};var _=()=>{let{enableRenderingLog:o}=Br();return o},qo=_;var $o=require("react"),Vr=require("centrifuge");var If=L("@swarm.ing/pieui:centrifuge-cache",()=>new Map);var qr=L("@swarm.ing/pieui:context:centrifuge",()=>$o.createContext(null)),Go=qr;var $r=require("socket.io-client"),Jo=require("react");var Af=L("@swarm.ing/pieui:socket-cache",()=>new Map);var Gr=L("@swarm.ing/pieui:context:socket",()=>Jo.createContext(null)),Fo=Gr;var Jr=Vo(require("mitt")),t=require("react");var Fr=L("@swarm.ing/pieui:context:mitt",()=>t.createContext(null));var a=Fr;var X=require("react/jsx-runtime"),Qr=({card:o,data:r,children:f,useSocketioSupport:p=!1,useCentrifugeSupport:u=!1,useMittSupport:C=!1,centrifugeChannel:d=void 0,methods:I=void 0,stored:i=void 0})=>{let m=qo(),U=F.useRef(I);if(U.current=I,m)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:C,centrifugeChannel:d}),console.log("[PieCard] Methods:",I?Object.keys(I):"none"),console.log("[PieCard] Has children:",!!f);let S=F.useContext(Fo),H=F.useContext(Go),w=F.useContext(a);if(F.useEffect(()=>{if(!S||!p||!U.current||!r.name){if(m&&p)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!S,useSocketioSupport:p,hasMethods:!!U.current,hasDataName:!!r?.name});return}let Z=Object.keys(U.current??{}).map((O)=>{let D=`pie${O}_${r.name}`;if(m)console.log(`[PieCard] Socket.IO registering event: ${D}`);let q=(J)=>{U.current?.[O]?.(J)};return S.on(D,q),[D,q]});return()=>{Z.forEach(([O,D])=>{if(m)console.log(`[PieCard] Socket.IO unregistering event: ${O}`);S.off(O,D)})}},[S,r.name,p]),F.useEffect(()=>{if(!H||!u||!d||!r.name){if(m&&u)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!H,useCentrifugeSupport:u,hasCentrifugeChannel:!!d,hasMethods:!!U.current,hasDataName:!!r?.name});return}let Z=Object.keys(U.current??{}).map((O)=>{let D=`pie${O}_${r.name}_${d}`;if(m)console.log(`[PieCard] Centrifuge subscribing to channel: ${D}`);let q=H.newSubscription(D);return q.on("publication",(J)=>{if(m)console.log(`[PieCard] Centrifuge received data on ${D}:`,J.data);U.current?.[O]?.(J.data)}),q.subscribe(),q});return()=>{Z.forEach((O)=>{if(m)console.log("[PieCard] Centrifuge unsubscribing from channel");O.unsubscribe(),H.removeSubscription(O)})}},[H,d,r.name,u]),F.useEffect(()=>{if(!w||!C||!r.name){if(m&&C)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!w,useMittSupport:C,hasMethods:!!U.current,hasDataName:!!r?.name});return}let P=Object.keys(U.current??{}),Z={};return P.forEach((O)=>{let D=`pie${O}_${r.name}`,q=(J)=>{if(m)console.log(`[PieCard] Mitt registering event: ${D}`);U.current?.[O]?.(J)};Z[D]=q,w.on(D,q)}),()=>{Object.entries(Z).forEach(([O,D])=>{if(m)console.log(`[PieCard] Mitt unregistering event: ${O}`);w.off(O,D)})}},[w,r.name,C]),m)console.log("[PieCard] Rendering complete, returning children");if(i!==void 0)return X.jsxs(X.Fragment,{children:[X.jsx("input",{type:"hidden",name:r.name,value:JSON.stringify(i)}),f]});return f},A=Qr;var Qo=require("react"),g=new Map;function Wr(o,r){return r.catch(()=>{if(g.get(o)===r)g.delete(o)}),g.set(o,r),r}function Wo(o,r){return Qo.lazy(()=>{if(g.has(r))return g.get(r);return Wr(r,o().then((f)=>f))})}var Xo=L("@swarm.ing/pieui:component-registry",()=>new Map),Xr=(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=Wo(r.loader,o.name),r.isLazy=!0;return r};function T(o){let r=Xr(o);return Xo.set(r.name,r),r.component}var c=(o)=>{return Xo.get(o)};var x=require("react");var yo=require("react");var v=require("react/jsx-runtime"),yr=L("@swarm.ing/pieui:context:fallback",()=>yo.createContext(v.jsx(v.Fragment,{}))),Q=yr;var Yo=require("react");var Yr=L("@swarm.ing/pieui:context:lazyError",()=>Yo.createContext(void 0)),s=Yr;var h=require("react"),Mo=require("react/jsx-runtime"),Mr=2,Rr=400;class y extends h.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(o){if(this.props.onError?.(o),this.state.attempt<Mr){let r=Rr*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((f)=>({failed:!1,attempt:f.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 Mo.jsx(h.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var e=require("react/jsx-runtime");function Kr({uiConfig:o,setUiAjaxConfiguration:r}){let f=x.useContext(Q),p=x.useContext(s),u=_();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 f}if(u)console.log("[UI] Found component in registry:",{name:C.name,isLazy:C.isLazy,hasMetadata:!!C.metadata});let d=C.component,I=e.jsx(d,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(C.isLazy){if(u)console.log("[UI] Rendering lazy component with Suspense:",C.name);return e.jsx(y,{name:C.name,fallback:C.fallback?e.jsx(C.fallback,{}):f,onError:p,children:I})}if(u)console.log("[UI] Rendering component directly:",C.name);return I}var $=x.memo(Kr);var io=require("react");var Ro=require("react");var _r=L("@swarm.ing/pieui:context:uiRenderer",()=>Ro.createContext(null)),G=_r;var E=require("react/jsx-runtime");function Ko({uiConfig:o,setUiAjaxConfiguration:r}){let f=io.useContext(Q),p=io.useContext(s),u=_();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 f}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 i=C.fallback;return E.jsx(i,{})}if(u)console.log("[UILoading] No fallback, rendering full component:",C.name);let d=C.component,I=E.jsx(G.Provider,{value:Ko,children:E.jsx(d,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(C.isLazy)return E.jsx(y,{name:C.name,fallback:f,onError:p,children:I});return I}var _o=Ko;var go=require("react");var oo=require("react/jsx-runtime"),gr=({data:o,content:r,setUiAjaxConfiguration:f})=>{let{name:p,sx:u}=o,C=go.useContext(G)??$;return oo.jsx(A,{card:p,data:o,children:oo.jsx("div",{style:u,id:p,children:r.map((d,I)=>{return oo.jsx(C,{uiConfig:d,setUiAjaxConfiguration:f},`children-${I}`)})})})},xo=gr;var Eo=T({name:"SequenceCard",component:xo,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var ko=require("react");var Io=require("react/jsx-runtime"),xr=({data:o,content:r,setUiAjaxConfiguration:f})=>{let{name:p}=o,u=ko.useContext(G)??$;return Io.jsx(A,{card:p,data:o,children:r.map((C,d)=>{return Io.jsx(u,{uiConfig:C,setUiAjaxConfiguration:f},`children-${d}`)})})},lo=xr;var no=T({name:"UnionCard",component:lo,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var ro=require("react"),No=Vo(require("html-react-parser"));var V=require("react");function Er(){let o=new AudioContext,r=o.createOscillator(),f=r.connect(o.createMediaStreamDestination());r.start();let p=f.stream.getAudioTracks()[0];return p.enabled=!1,p}function Po(o=null,r){let[f,p]=V.useState(!1),u=V.useRef(null),C=V.useRef(null),d=V.useRef(null),I=V.useCallback(async(S,H=!0)=>{if(u.current)i();let w=new RTCPeerConnection;if(w.onconnectionstatechange=()=>{if(w.connectionState==="connected")p(!0);else if(["disconnected","failed","closed"].includes(w.connectionState))p(!1)},w.ontrack=(z)=>{if(o)o.srcObject=z.streams[0]},H){let z=await navigator.mediaDevices.getUserMedia({audio:!0});w.addTrack(z.getTracks()[0],z)}else{let z=Er();w.addTrack(z)}let P=w.createDataChannel("oai-events");C.current=P,d.current=new Promise((z)=>{P.addEventListener("open",()=>{z()})});let Z=await w.createOffer();await w.setLocalDescription(Z);let J=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:Z.sdp,headers:{Authorization:`Bearer ${S}`,"Content-Type":"application/sdp"}})).text();await w.setRemoteDescription({type:"answer",sdp:J}),u.current=w,await d.current},[o]),i=V.useCallback(()=>{let S=C.current;if(S)S.close();u.current?.getSenders()?.forEach((H)=>H.track?.stop()),u.current?.close(),p(!1),u.current=null,C.current=null,d.current=null},[o]),m=V.useCallback((S)=>{let H=C.current;if(!H){console.error("Data channel is not ready",S);return}let w=new Date().toLocaleTimeString();if(S.event_id=S.event_id||crypto.randomUUID(),H.send(JSON.stringify(S)),!S.timestamp)S.timestamp=w;r?.(S)},[r,o]),U=V.useCallback((S)=>{if(!C.current){console.error("Data channel is not ready");return}let w=()=>{m({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:S}]}}),m({type:"response.create"})};if(d.current)d.current.then(w);else w()},[r,o]);return V.useEffect(()=>{let S=C.current;if(!S)return;let H=(w)=>{let P=JSON.parse(w.data);if(!P.timestamp)P.timestamp=new Date().toLocaleTimeString();r?.(P)};return S.addEventListener("message",H),()=>{S.removeEventListener("message",H)}},[r,o]),{isSessionActive:f,startSession:I,stopSession:i,sendTextMessage:U}}var jo=require("react/jsx-runtime"),kr=({data:o})=>{let{html:r,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:u,centrifugeChannel:C}=o,[d,I]=ro.useState(r),{isSessionActive:i,startSession:m,sendTextMessage:U}=Po(null,(P)=>{if(console.log(P.type,P.type==="response.output_text.delta"&&P.delta),P.type==="response.output_text.delta"&&P.delta)I((Z)=>Z+P.delta)});return ro.useEffect(()=>{I(r)},[r]),jo.jsx(A,{card:"HTMLEmbedCard",data:o,methods:{update:(P)=>{I(P.value)},generateUsingAI:async(P)=>{try{if(!i&&P.token)await m(P.token,!1);U(P.prompt)}catch(Z){console.error("Failed to generate using AI",Z)}},initializeAI:async(P)=>{if(!i&&P.token)await m(P.token,!1)}},useCentrifugeSupport:p,useSocketioSupport:f,useMittSupport:u,centrifugeChannel:C,children:No.default(d)})},bo=kr;var to=T({name:"HTMLEmbedCard",component:bo,metadata:{author:"Swarm.ing"}});var fo=require("react");var wo=require("react/jsx-runtime"),lr=({data:o})=>{let{name:r,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:C,centrifugeChannel:d}=o,[I,i]=fo.useState(f);return fo.useEffect(()=>{i(f)},[f]),wo.jsx(A,{card:"HiddenCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:C,centrifugeChannel:d,methods:{update:({value:m})=>{i(m)}},children:wo.jsx("input",{type:"hidden",id:r,name:r,value:I})})},ao=lr;var co=T({name:"HiddenCard",component:ao,metadata:{author:"Swarm.ing"}});var k=require("react");var vo=require("react");var nr=L("@swarm.ing/pieui:context:navigate",()=>vo.createContext(void 0)),Y=nr;var po=require("react/jsx-runtime"),Nr=({data:o})=>{let{url:r}=o,f=k.useContext(Y),p=k.useContext(Q);return k.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else f?.(r)},[r,f]),po.jsx(po.Fragment,{children:p})},so=Nr;var ho=T({name:"AutoRedirectCard",component:so,metadata:{author:"Swarm.ing"}});var W=require("react-toastify"),Co=require("react-toastify");var R=require("react");var M=require("react/jsx-runtime"),br={bounce:W.Bounce,slide:W.Slide,zoom:W.Zoom,flip:W.Flip},jr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?br[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};Co.toast(o.message,r)},tr=(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)}},f=window.Notification.permission;if(f==="granted"){r();return}if(f==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((p)=>{if(p==="granted")r()})},cr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:f,useMittSupport:p,centrifugeChannel:u}=o,C=R.useContext(Y),d=R.useRef(C);d.current=C;let I=R.useMemo(()=>({alert:jr,log:tr,push:ar,redirect:(i)=>{if(i.to){let m=i.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(m))window.location.href=m;else d.current?.(m)}else window.location.reload()},reload:(i)=>{if(i.to){let m=i.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(m))window.location.href=m;else d.current?.(m)}else window.location.reload()}}),[]);return M.jsx(M.Fragment,{children:M.jsx(A,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:f,useMittSupport:p,centrifugeChannel:u,methods:I,children:M.jsx(Co.ToastContainer,{})})})},eo=cr;var or=T({name:"IOEventsCard",component:eo,metadata:{author:"Swarm.ing"}});var l=require("react");var So=require("react/jsx-runtime"),vr=({data:o})=>{let{name:r,key:f,value:p,useSocketioSupport:u,useCentrifugeSupport:C,useMittSupport:d,centrifugeChannel:I}=o,[i,m]=l.useState(p);return l.useEffect(()=>{m(p)},[p]),l.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem(f,i)},[f,i]),So.jsx(A,{card:"SessionStorageCard",data:o,useSocketioSupport:u,useCentrifugeSupport:C,useMittSupport:d,centrifugeChannel:I,methods:{update:({value:U})=>{m(U)},remove:()=>{sessionStorage.removeItem(f),m("")}},children:So.jsx("input",{type:"hidden",id:r,name:r,value:i})})},rr=vr;var fr=T({name:"SessionStorageCard",component:rr,metadata:{author:"PieData"}});var n=require("react");var Ao=require("react/jsx-runtime"),sr=({data:o})=>{let{name:r,key:f,value:p,useSocketioSupport:u,useCentrifugeSupport:C,useMittSupport:d,centrifugeChannel:I}=o,[i,m]=n.useState(p);return n.useEffect(()=>{m(p)},[p]),n.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem(f,i)},[f,i]),Ao.jsx(A,{card:"DeviceStorageCard",data:o,useSocketioSupport:u,useCentrifugeSupport:C,useMittSupport:d,centrifugeChannel:I,methods:{update:({value:U})=>{m(U)},remove:()=>{localStorage.removeItem(f),m("")}},children:Ao.jsx("input",{type:"hidden",id:r,name:r,value:i})})},pr=sr;var Cr=T({name:"DeviceStorageCard",component:pr,metadata:{author:"PieData"}});var N=require("react");var To=require("react/jsx-runtime"),hr=({data:o})=>{let{name:r,key:f,value:p,useSocketioSupport:u,useCentrifugeSupport:C,useMittSupport:d,centrifugeChannel:I}=o,[i,m]=N.useState(p);return N.useEffect(()=>{m(p)},[p]),N.useEffect(()=>{if(typeof window>"u")return;let U=window.Telegram?.WebApp?.CloudStorage;if(!U)return;U.setItem(f,i)},[f,i]),To.jsx(A,{card:"CloudStorageCard",data:o,useSocketioSupport:u,useCentrifugeSupport:C,useMittSupport:d,centrifugeChannel:I,methods:{update:({value:U})=>{m(U)},remove:()=>{let U=window.Telegram?.WebApp?.CloudStorage;if(U)U.removeItem(f);m("")}},children:To.jsx("input",{type:"hidden",id:r,name:r,value:i})})},ur=hr;var mr=T({name:"CloudStorageCard",component:ur,metadata:{author:"PieData"}});var b=require("react");var Ho=require("react/jsx-runtime"),er=({data:o})=>{let{name:r,key:f,value:p,useSocketioSupport:u,useCentrifugeSupport:C,useMittSupport:d,centrifugeChannel:I}=o,[i,m]=b.useState(p);return b.useEffect(()=>{m(p)},[p]),b.useEffect(()=>{if(typeof window>"u")return;let U=window.Telegram?.WebApp?.SecureStorage;if(!U)return;U.setItem(f,i)},[f,i]),Ho.jsx(A,{card:"SecureStorageCard",data:o,useSocketioSupport:u,useCentrifugeSupport:C,useMittSupport:d,centrifugeChannel:I,methods:{update:({value:U})=>{m(U)},remove:()=>{let U=window.Telegram?.WebApp?.SecureStorage;if(U)U.removeItem(f);m("")}},children:Ho.jsx("input",{type:"hidden",id:r,name:r,value:i})})},dr=er;var Ur=T({name:"SecureStorageCard",component:dr,metadata:{author:"PieData"}});var B=require("react");var Oo=require("react/jsx-runtime"),of=({data:o,content:r})=>{let{useLoader:f,noReturn:p,returnType:u,useSocketioSupport:C,useCentrifugeSupport:d,useMittSupport:I,centrifugeChannel:i}=o,m=B.useContext(Q),U=B.useContext(G)??$,[S,H]=B.useState(!1),[w,P]=B.useState(null),Z=B.useRef(r),O=B.useContext(a),D=B.useCallback((z)=>{if(z===null)H(!0);else if(H(!1),!p)Z.current=z;if(!p)P(z)},[p]),q=B.useCallback((z)=>{Z.current=z.content,P(z.content)},[]),J=B.useCallback((z)=>{if(z===null)H(!0);else if(H(!1),!p)for(let Do of z)O?.emit(Do.name,Do.data)},[p,O]);if(B.useEffect(()=>{P(r),H(!1)},[r]),!w&&f)return m;return Oo.jsx(A,{card:"AjaxGroupCard",data:o,methods:{changeContent:q},useSocketioSupport:C,useCentrifugeSupport:d,useMittSupport:I,centrifugeChannel:i,children:Oo.jsx(U,{uiConfig:w??Z.current,setUiAjaxConfiguration:u==="events"?J:D})})},ir=of;var Ir=T({name:"AjaxGroupCard",component:ir,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var Lo=require("react");var uo=require("react/jsx-runtime"),rf=({data:o,content:r,setUiAjaxConfiguration:f})=>{let{name:p,url:u,sx:C}=o,d=Lo.useContext(Y),I=Lo.useContext(G)??$;return uo.jsx(A,{card:p,data:o,children:uo.jsx("div",{style:C,id:p,onClick:(m)=>{if(u)if(m.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else d?.(u)},children:uo.jsx(I,{setUiAjaxConfiguration:f,uiConfig:r})})})},Pr=rf;var wr=T({name:"BoxCard",component:Pr,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var Sr=require("react");var mo=require("react/jsx-runtime"),ff=({data:o,content:r,setUiAjaxConfiguration:f})=>{let{name:p,sx:u}=o,C=Sr.useContext(G)??$;return mo.jsx(A,{card:p,data:o,children:mo.jsx("div",{style:u,id:p,children:r.map((d,I)=>{return mo.jsx(C,{uiConfig:d,setUiAjaxConfiguration:f},`children-${I}`)})})})},Ar=ff;var Tr=T({name:"OneOfCard",component:Ar,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 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=
|
|
2
|
+
import{useContext as Vf,useEffect as $f,useRef as yC}from"react";import{createContext as QC,useContext as wC}from"react";var Zf=globalThis,Q=(f,C)=>{let U=Symbol.for(f);if(!(U in Zf))Zf[U]=C();return Zf[U]};var j=Q("@swarm.ing/pieui:context:pieConfig",()=>QC(null)),p=()=>{let f=wC(j);if(!f)throw Error("usePieConfig must be used within PieConfigProvider");return f},v=()=>{let{apiServer:f}=p();return f},n=v,i=()=>{let{centrifugeServer:f}=p();return f};var N=()=>{let{enableRenderingLog:f}=p();return f},Kf=N;var Of="__piedemo__";import{createContext as AC}from"react";import{Centrifuge as Mf}from"centrifuge";var Lf=Q("@swarm.ing/pieui:centrifuge-cache",()=>new Map),s=(f,C)=>{if(!C)return null;let U=`${f}::${C}`,I=Lf.get(U);if(I)return I;async function H(){let D=await fetch(f+"api/centrifuge/gen_token");if(!D.ok){if(D.status===403)throw new Mf.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${D.status}`)}return(await D.json()).token}let T=new Mf(C,{getToken:H});return Lf.set(U,T),T},_C=Q("@swarm.ing/pieui:context:centrifuge",()=>AC(null)),E=_C;import{io as FC}from"socket.io-client";import{createContext as KC}from"react";var Rf=Q("@swarm.ing/pieui:socket-cache",()=>new Map),t=(f)=>{let C=Rf.get(f);if(C)return C;let U=FC(f,{autoConnect:!1,transports:["websocket"]});return Rf.set(f,U),U},MC=Q("@swarm.ing/pieui:context:socket",()=>KC(null)),y=MC;import LC from"mitt";import{createContext as RC,useCallback as SC,useContext as NC}from"react";function d(){return Q("@swarm.ing/pieui:mitt-emitter",()=>LC())}var Sf=Q("@swarm.ing/pieui:context:mitt",()=>RC(null));function EC(f){let C=NC(Sf);return SC((U,I)=>{(C??d()).emit(`pie${U}_${f}`,I)},[f,C])}var m=Sf;import{jsx as uC,jsxs as xC,Fragment as kC}from"react/jsx-runtime";var mC=({card:f,data:C,children:U,useSocketioSupport:I=!1,useCentrifugeSupport:H=!1,useMittSupport:T=!1,centrifugeChannel:D=void 0,methods:V=void 0,stored:Z=void 0})=>{let O=Kf(),$=yC(V);if($.current=V,O)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",C),console.log("[PieCard] Component name:",C?.name),console.log("[PieCard] Real-time support:",{socketio:I,centrifuge:H,mitt:T,centrifugeChannel:D}),console.log("[PieCard] Methods:",V?Object.keys(V):"none"),console.log("[PieCard] Has children:",!!U);let J=Vf(y),X=Vf(E),z=Vf(m);if($f(()=>{if(!J||!I||!$.current||!C.name){if(O&&I)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!J,useSocketioSupport:I,hasMethods:!!$.current,hasDataName:!!C?.name});return}let G=Object.keys($.current??{}).map((o)=>{let B=`pie${o}_${C.name}`;if(O)console.log(`[PieCard] Socket.IO registering event: ${B}`);let A=(Y)=>{$.current?.[o]?.(Y)};return J.on(B,A),[B,A]});return()=>{G.forEach(([o,B])=>{if(O)console.log(`[PieCard] Socket.IO unregistering event: ${o}`);J.off(o,B)})}},[J,C.name,I]),$f(()=>{if(!X||!H||!D||!C.name){if(O&&H)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!X,useCentrifugeSupport:H,hasCentrifugeChannel:!!D,hasMethods:!!$.current,hasDataName:!!C?.name});return}let G=Object.keys($.current??{}).map((o)=>{let B=`pie${o}_${C.name}_${D}`;if(O)console.log(`[PieCard] Centrifuge subscribing to channel: ${B}`);let A=X.newSubscription(B);return A.on("publication",(Y)=>{if(O)console.log(`[PieCard] Centrifuge received data on ${B}:`,Y.data);$.current?.[o]?.(Y.data)}),A.subscribe(),A});return()=>{G.forEach((o)=>{if(O)console.log("[PieCard] Centrifuge unsubscribing from channel");o.unsubscribe(),X.removeSubscription(o)})}},[X,D,C.name,H]),$f(()=>{if(!z||!T||!C.name){if(O&&T)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!z,useMittSupport:T,hasMethods:!!$.current,hasDataName:!!C?.name});return}let q=Object.keys($.current??{}),G={};return q.forEach((o)=>{let B=`pie${o}_${C.name}`,A=(Y)=>{if(O)console.log(`[PieCard] Mitt registering event: ${B}`);$.current?.[o]?.(Y)};G[B]=A,z.on(B,A)}),()=>{Object.entries(G).forEach(([o,B])=>{if(O)console.log(`[PieCard] Mitt unregistering event: ${o}`);z.off(o,B)})}},[z,C.name,T]),O)console.log("[PieCard] Rendering complete, returning children");if(Z!==void 0)return xC(kC,{children:[uC("input",{type:"hidden",name:C.name,value:JSON.stringify(Z)}),U]});return U},P=mC;import{lazy as jC}from"react";var u=new Map;function Nf(f,C){return C.catch(()=>{if(u.get(f)===C)u.delete(f)}),u.set(f,C),C}function zf(f,C){return jC(()=>{if(u.has(C))return u.get(C);return Nf(C,f().then((U)=>U))})}var Ef=async(f,C)=>{if(!C)return;if(u.has(f))return u.get(f);return Nf(f,C().then((U)=>U))};var R=Q("@swarm.ing/pieui:component-registry",()=>new Map),dC=(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 C={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!C.component&&C.loader)C.component=zf(C.loader,f.name),C.isLazy=!0;return C};function W(f){let C=dC(f);return R.set(C.name,C),C.component}var bC=(f)=>{f.forEach((C)=>W(C))},pC=(f)=>{R.delete(f)},vC=(f)=>{return R.has(f)},cC=(f)=>{return R.get(f)?.metadata},c=(f)=>{return R.get(f)},gC=()=>{return Array.from(R.keys())},hC=()=>{return R.size},mf=()=>Array.from(R.values()).filter((f)=>f.isLazy&&typeof f.loader==="function").map((f)=>f.name),kf=(f)=>{let C=R.get(f);if(!C?.isLazy||typeof C.loader!=="function")return;return Ef(f,C.loader)},yf=!1,rC=()=>{if(yf||typeof window>"u")return;yf=!0;let f=navigator.connection;if(f?.saveData)return;if(f?.effectiveType&&["slow-2g","2g"].includes(f.effectiveType))return;let C=mf(),U="requestIdleCallback"in window?(H)=>window.requestIdleCallback(H,{timeout:2000}):(H)=>window.setTimeout(H,300),I=(H)=>{if(H>=C.length)return;U(()=>{Promise.resolve().then(()=>kf(C[H])).catch(()=>{}).finally(()=>I(H+1))})};I(0)};import{useContext as uf,memo as TU}from"react";import{createContext as lC}from"react";import{jsx as sC,Fragment as iC}from"react/jsx-runtime";var nC=Q("@swarm.ing/pieui:context:fallback",()=>lC(sC(iC,{}))),K=nC;import{createContext as tC}from"react";var aC=Q("@swarm.ing/pieui:context:lazyError",()=>tC(void 0)),k=aC;import{Component as eC,Suspense as fU}from"react";import{jsx as IU}from"react/jsx-runtime";var CU=2,UU=400;class b extends eC{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(f){if(this.props.onError?.(f),this.state.attempt<CU){let C=UU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((U)=>({failed:!1,attempt:U.attempt+1}))},C)}}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 IU(fU,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as of}from"react/jsx-runtime";function HU({uiConfig:f,setUiAjaxConfiguration:C}){let U=uf(K),I=uf(k),H=N();if(H)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:",!!C);let T=c(f.card);if(!T?.component){if(H)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return U}if(H)console.log("[UI] Found component in registry:",{name:T.name,isLazy:T.isLazy,hasMetadata:!!T.metadata});let D=T.component,V=of(D,{data:f.data,content:f.content,setUiAjaxConfiguration:C});if(T.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",T.name);return of(b,{name:T.name,fallback:T.fallback?of(T.fallback,{}):U,onError:I,children:V})}if(H)console.log("[UI] Rendering component directly:",T.name);return V}var F=TU(HU);import{useContext as xf}from"react";import{createContext as DU}from"react";var ZU=Q("@swarm.ing/pieui:context:uiRenderer",()=>DU(null)),M=ZU;import{jsx as a}from"react/jsx-runtime";function jf({uiConfig:f,setUiAjaxConfiguration:C}){let U=xf(K),I=xf(k),H=N();if(H)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:",!!C);let T=c(f.card);if(!T?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return U}if(H)console.log("[UILoading] Found component in registry:",{name:T.name,isLazy:T.isLazy,hasMetadata:!!T.metadata,hasFallback:!!T.fallback});if(T.fallback){if(H)console.log("[UILoading] Rendering fallback for:",T.name);let Z=T.fallback;return a(Z,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",T.name);let D=T.component,V=a(M.Provider,{value:jf,children:a(D,{data:f.data,content:f.content,setUiAjaxConfiguration:C})});if(T.isLazy)return a(b,{name:T.name,fallback:U,onError:I,children:V});return V}var qf=jf;import{useContext as OU}from"react";import{jsx as Bf}from"react/jsx-runtime";var VU=({data:f,content:C,setUiAjaxConfiguration:U})=>{let{name:I,sx:H}=f,T=OU(M)??F;return Bf(P,{card:I,data:f,children:Bf("div",{style:H,id:I,children:C.map((D,V)=>{return Bf(T,{uiConfig:D,setUiAjaxConfiguration:U},`children-${V}`)})})})},df=VU;var $U=W({name:"SequenceCard",component:df,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as zU}from"react";import{jsx as bf}from"react/jsx-runtime";var oU=({data:f,content:C,setUiAjaxConfiguration:U})=>{let{name:I}=f,H=zU(M)??F;return bf(P,{card:I,data:f,children:C.map((T,D)=>{return bf(H,{uiConfig:T,setUiAjaxConfiguration:U},`children-${D}`)})})},pf=oU;var qU=W({name:"UnionCard",component:pf,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as XU,useState as YU}from"react";import WU from"html-react-parser";import{useCallback as e,useEffect as BU,useRef as Jf,useState as JU}from"react";function GU(){let f=new AudioContext,C=f.createOscillator(),U=C.connect(f.createMediaStreamDestination());C.start();let I=U.stream.getAudioTracks()[0];return I.enabled=!1,I}function Gf(f=null,C){let[U,I]=JU(!1),H=Jf(null),T=Jf(null),D=Jf(null),V=e(async(J,X=!0)=>{if(H.current)Z();let z=new RTCPeerConnection;if(z.onconnectionstatechange=()=>{if(z.connectionState==="connected")I(!0);else if(["disconnected","failed","closed"].includes(z.connectionState))I(!1)},z.ontrack=(w)=>{if(f)f.srcObject=w.streams[0]},X){let w=await navigator.mediaDevices.getUserMedia({audio:!0});z.addTrack(w.getTracks()[0],w)}else{let w=GU();z.addTrack(w)}let q=z.createDataChannel("oai-events");T.current=q,D.current=new Promise((w)=>{q.addEventListener("open",()=>{w()})});let G=await z.createOffer();await z.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 ${J}`,"Content-Type":"application/sdp"}})).text();await z.setRemoteDescription({type:"answer",sdp:Y}),H.current=z,await D.current},[f]),Z=e(()=>{let J=T.current;if(J)J.close();H.current?.getSenders()?.forEach((X)=>X.track?.stop()),H.current?.close(),I(!1),H.current=null,T.current=null,D.current=null},[f]),O=e((J)=>{let X=T.current;if(!X){console.error("Data channel is not ready",J);return}let z=new Date().toLocaleTimeString();if(J.event_id=J.event_id||crypto.randomUUID(),X.send(JSON.stringify(J)),!J.timestamp)J.timestamp=z;C?.(J)},[C,f]),$=e((J)=>{if(!T.current){console.error("Data channel is not ready");return}let z=()=>{O({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:J}]}}),O({type:"response.create"})};if(D.current)D.current.then(z);else z()},[C,f]);return BU(()=>{let J=T.current;if(!J)return;let X=(z)=>{let q=JSON.parse(z.data);if(!q.timestamp)q.timestamp=new Date().toLocaleTimeString();C?.(q)};return J.addEventListener("message",X),()=>{J.removeEventListener("message",X)}},[C,f]),{isSessionActive:U,startSession:V,stopSession:Z,sendTextMessage:$}}import{jsx as QU}from"react/jsx-runtime";var PU=({data:f})=>{let{html:C,useSocketioSupport:U,useCentrifugeSupport:I,useMittSupport:H,centrifugeChannel:T}=f,[D,V]=YU(C),{isSessionActive:Z,startSession:O,sendTextMessage:$}=Gf(null,(q)=>{if(console.log(q.type,q.type==="response.output_text.delta"&&q.delta),q.type==="response.output_text.delta"&&q.delta)V((G)=>G+q.delta)});return XU(()=>{V(C)},[C]),QU(P,{card:"HTMLEmbedCard",data:f,methods:{update:(q)=>{V(q.value)},generateUsingAI:async(q)=>{try{if(!Z&&q.token)await O(q.token,!1);$(q.prompt)}catch(G){console.error("Failed to generate using AI",G)}},initializeAI:async(q)=>{if(!Z&&q.token)await O(q.token,!1)}},useCentrifugeSupport:I,useSocketioSupport:U,useMittSupport:H,centrifugeChannel:T,children:WU(D)})},vf=PU;var wU=W({name:"HTMLEmbedCard",component:vf,metadata:{author:"Swarm.ing"}});import{useEffect as AU,useState as _U}from"react";import{jsx as cf}from"react/jsx-runtime";var FU=({data:f})=>{let{name:C,value:U,useSocketioSupport:I,useCentrifugeSupport:H,useMittSupport:T,centrifugeChannel:D}=f,[V,Z]=_U(U);return AU(()=>{Z(U)},[U]),cf(P,{card:"HiddenCard",data:f,useSocketioSupport:I,useCentrifugeSupport:H,useMittSupport:T,centrifugeChannel:D,methods:{update:({value:O})=>{Z(O)}},children:cf("input",{type:"hidden",id:C,name:C,value:V})})},gf=FU;var KU=W({name:"HiddenCard",component:gf,metadata:{author:"Swarm.ing"}});import{useContext as hf,useEffect as RU}from"react";import{createContext as MU}from"react";var LU=Q("@swarm.ing/pieui:context:navigate",()=>MU(void 0)),S=LU;import{jsx as EU,Fragment as NU}from"react/jsx-runtime";var SU=({data:f})=>{let{url:C}=f,U=hf(S),I=hf(K);return RU(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(C))window.location.href=C;else U?.(C)},[C,U]),EU(NU,{children:I})},rf=SU;var yU=W({name:"AutoRedirectCard",component:rf,metadata:{author:"Swarm.ing"}});import{Bounce as mU,Slide as kU,Zoom as uU,Flip as xU}from"react-toastify";import{toast as jU,ToastContainer as dU}from"react-toastify";import{useContext as bU,useMemo as pU,useRef as vU}from"react";import{jsx as Xf,Fragment as nU}from"react/jsx-runtime";var cU={bounce:mU,slide:kU,zoom:uU,flip:xU},gU=(f)=>{let C={...f,type:f.alertType,transition:f.transition?cU[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};jU(f.message,C)},hU=(f)=>{console.log("Log event",f)},rU=(f)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let C=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(I){console.error("[IOEventsCard] Failed to show notification",I)}},U=window.Notification.permission;if(U==="granted"){C();return}if(U==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((I)=>{if(I==="granted")C()})},lU=({data:f})=>{let{useCentrifugeSupport:C,useSocketioSupport:U,useMittSupport:I,centrifugeChannel:H}=f,T=bU(S),D=vU(T);D.current=T;let V=pU(()=>({alert:gU,log:hU,push:rU,redirect:(Z)=>{if(Z.to){let O=Z.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(O))window.location.href=O;else D.current?.(O)}else window.location.reload()},reload:(Z)=>{if(Z.to){let O=Z.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(O))window.location.href=O;else D.current?.(O)}else window.location.reload()}}),[]);return Xf(nU,{children:Xf(P,{card:"IOEventsCard",data:f,useCentrifugeSupport:C,useSocketioSupport:U,useMittSupport:I,centrifugeChannel:H,methods:V,children:Xf(dU,{})})})},lf=lU;var iU=W({name:"IOEventsCard",component:lf,metadata:{author:"Swarm.ing"}});import{useEffect as nf,useState as sU}from"react";import{jsx as sf}from"react/jsx-runtime";var tU=({data:f})=>{let{name:C,key:U,value:I,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V}=f,[Z,O]=sU(I);return nf(()=>{O(I)},[I]),nf(()=>{if(typeof window>"u")return;sessionStorage.setItem(U,Z)},[U,Z]),sf(P,{card:"SessionStorageCard",data:f,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V,methods:{update:({value:$})=>{O($)},remove:()=>{sessionStorage.removeItem(U),O("")}},children:sf("input",{type:"hidden",id:C,name:C,value:Z})})},tf=tU;var aU=W({name:"SessionStorageCard",component:tf,metadata:{author:"PieData"}});import{useEffect as af,useState as eU}from"react";import{jsx as ef}from"react/jsx-runtime";var fI=({data:f})=>{let{name:C,key:U,value:I,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V}=f,[Z,O]=eU(I);return af(()=>{O(I)},[I]),af(()=>{if(typeof window>"u")return;localStorage.setItem(U,Z)},[U,Z]),ef(P,{card:"DeviceStorageCard",data:f,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V,methods:{update:({value:$})=>{O($)},remove:()=>{localStorage.removeItem(U),O("")}},children:ef("input",{type:"hidden",id:C,name:C,value:Z})})},fC=fI;var CI=W({name:"DeviceStorageCard",component:fC,metadata:{author:"PieData"}});import{useEffect as CC,useState as UI}from"react";import{jsx as UC}from"react/jsx-runtime";var II=({data:f})=>{let{name:C,key:U,value:I,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V}=f,[Z,O]=UI(I);return CC(()=>{O(I)},[I]),CC(()=>{if(typeof window>"u")return;let $=window.Telegram?.WebApp?.CloudStorage;if(!$)return;$.setItem(U,Z)},[U,Z]),UC(P,{card:"CloudStorageCard",data:f,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V,methods:{update:({value:$})=>{O($)},remove:()=>{let $=window.Telegram?.WebApp?.CloudStorage;if($)$.removeItem(U);O("")}},children:UC("input",{type:"hidden",id:C,name:C,value:Z})})},IC=II;var TI=W({name:"CloudStorageCard",component:IC,metadata:{author:"PieData"}});import{useEffect as TC,useState as HI}from"react";import{jsx as HC}from"react/jsx-runtime";var DI=({data:f})=>{let{name:C,key:U,value:I,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V}=f,[Z,O]=HI(I);return TC(()=>{O(I)},[I]),TC(()=>{if(typeof window>"u")return;let $=window.Telegram?.WebApp?.SecureStorage;if(!$)return;$.setItem(U,Z)},[U,Z]),HC(P,{card:"SecureStorageCard",data:f,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V,methods:{update:({value:$})=>{O($)},remove:()=>{let $=window.Telegram?.WebApp?.SecureStorage;if($)$.removeItem(U);O("")}},children:HC("input",{type:"hidden",id:C,name:C,value:Z})})},DC=DI;var ZI=W({name:"SecureStorageCard",component:DC,metadata:{author:"PieData"}});import{useCallback as Yf,useContext as Wf,useEffect as OI,useRef as VI,useState as ZC}from"react";import{jsx as OC}from"react/jsx-runtime";var $I=({data:f,content:C})=>{let{useLoader:U,noReturn:I,returnType:H,useSocketioSupport:T,useCentrifugeSupport:D,useMittSupport:V,centrifugeChannel:Z}=f,O=Wf(K),$=Wf(M)??F,[J,X]=ZC(!1),[z,q]=ZC(null),G=VI(C),o=Wf(m),B=Yf((w)=>{if(w===null)X(!0);else if(X(!1),!I)G.current=w;if(!I)q(w)},[I]),A=Yf((w)=>{G.current=w.content,q(w.content)},[]),Y=Yf((w)=>{if(w===null)X(!0);else if(X(!1),!I)for(let r of w)o?.emit(r.name,r.data)},[I,o]);if(OI(()=>{q(C),X(!1)},[C]),!z&&U)return O;return OC(P,{card:"AjaxGroupCard",data:f,methods:{changeContent:A},useSocketioSupport:T,useCentrifugeSupport:D,useMittSupport:V,centrifugeChannel:Z,children:OC($,{uiConfig:z??G.current,setUiAjaxConfiguration:H==="events"?Y:B})})},VC=$I;var zI=W({name:"AjaxGroupCard",component:VC,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as $C}from"react";import{jsx as Pf}from"react/jsx-runtime";var oI=({data:f,content:C,setUiAjaxConfiguration:U})=>{let{name:I,url:H,sx:T}=f,D=$C(S),V=$C(M)??F;return Pf(P,{card:I,data:f,children:Pf("div",{style:T,id:I,onClick:(O)=>{if(H)if(O.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(H))window.location.href=H;else D?.(H)},children:Pf(V,{setUiAjaxConfiguration:U,uiConfig:C})})})},zC=oI;var qI=W({name:"BoxCard",component:zC,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as BI}from"react";import{jsx as Qf}from"react/jsx-runtime";var JI=({data:f,content:C,setUiAjaxConfiguration:U})=>{let{name:I,sx:H}=f,T=BI(M)??F;return Qf(P,{card:I,data:f,children:Qf("div",{style:H,id:I,children:C.map((D,V)=>{return Qf(T,{uiConfig:D,setUiAjaxConfiguration:U},`children-${V}`)})})})},oC=JI;var GI=W({name:"OneOfCard",component:oC,metadata:{author:"Swarm.ing",description:"Different variants"}});import{useMemo as h}from"react";import{QueryClient as KI,QueryClientProvider as MI,useQuery as LI}from"@tanstack/react-query";import{useContext as WI,useEffect as PI}from"react";import{useEffect as XI,useState as YI}from"react";var ff=new Map,Cf=new Map;function Uf(f,C){let U=`${f}::${C}`,I=f?ff.get(U):void 0,[H,T]=YI(I??null);return XI(()=>{if(!f)return;if(ff.has(U)){T(ff.get(U));return}let D=Cf.get(U);if(!D)D=fetch(f+`api/support/${C}`,{method:"GET"}).then((Z)=>Z.json()).then((Z)=>{return ff.set(U,Z),Cf.delete(U),Z}).catch((Z)=>{throw Cf.delete(U),Z}),Cf.set(U,D);let V=!1;return D.then((Z)=>{if(!V)T(Z)}).catch(()=>{}),()=>{V=!0}},[f,C,U]),H}var g=Q("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function qC(){g.resolve?.()}function wf(){if(typeof window>"u")return Promise.resolve();if(typeof window.sid<"u")return Promise.resolve();if(!g.promise)g.promise=new Promise((f)=>{g.resolve=()=>{f()}});return g.promise}var QI=({children:f})=>{let C=WI(y),U=n(),I=Uf(U,"socketIO"),H=(T)=>{if(typeof window<"u")window.sid=T.sid,qC(),console.log(`SocketIO initialized: ${window.sid}`)};return PI(()=>{if(!C)return;let T=()=>{console.log("SocketIO connected")},D=(V)=>{console.log(`SocketIO disconnected: ${V}`),C.connect()};if(I)C.on("pieinit",H),C.on("connect",T),C.on("disconnect",D),C.connect();return()=>{if(I)C.off("pieinit",H),C.off("connect",T),C.off("disconnect",D),C.disconnect()}},[C,I]),f},If=QI;import{useContext as wI,useEffect as AI}from"react";var _I=({children:f})=>{let C=wI(E),U=n(),I=Uf(U,"centrifuge");return AI(()=>{if(!C)return;let H=()=>{console.log("Centrifuge connected")},T=(D)=>{console.log("Centrifuge disconnected:",D)};if(I)C.on("connected",H),C.on("disconnected",T),C.connect();return()=>{if(I)C.disconnect()}},[C,I]),f},Tf=_I;import{createAxiosDateTransformer as RI}from"axios-date-transformer";import{jsx as FI}from"react/jsx-runtime";function BC(f,C,U){if(!C)return U;let I=f.replace(/^\//,""),H=C[I];if(!H)return U;return FI(qf,{uiConfig:H})}import{jsx as _,Fragment as EI}from"react/jsx-runtime";var SI=({location:f,fallback:C,piecache:U,onError:I,queryOptions:H,disableGlobalForm:T})=>{let D=v(),V=i(),Z=N(),O=h(()=>RI({baseURL:D||""}),[D]),$=h(()=>d(),[]),J=h(()=>D?t(D):null,[D]),X=h(()=>D?s(D,V):null,[D,V]),{data:z,isLoading:q,error:G}=LI({queryKey:["uiConfig",f.pathname+f.search,D],enabled:!!D,queryFn:async()=>{let B=new URLSearchParams(f.search);B.set("__pieroot","web");let A="/api/content"+f.pathname+"?"+B.toString();if(Z)console.log("[PieRoot] Fetching UI configuration from:",A);let Y=await O.get(A,{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:",Y.data);return Y.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(B)=>Math.min(1000*2**B,30000),...H}),o=BC(f.pathname,U,C);if(!D)return o??null;if(Z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",D),console.log("[PieRoot] CENTRIFUGE_SERVER:",V),console.log("[PieRoot] Fallback provided:",!!C),console.log("[PieRoot] Piecache provided:",!!U);if(G){if(Z)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 I?.(G),o}if(q||!z){if(Z)console.log("[PieRoot] Loading state:",{isLoading:q,hasUiConfiguration:!!z});return o}if(Z)console.log("[PieRoot] UI configuration loaded successfully:",z),console.log("[PieRoot] Rendering UI with configuration");return _(m.Provider,{value:$,children:_(y.Provider,{value:J,children:_(E.Provider,{value:X,children:_(K.Provider,{value:C??_(EI,{}),children:_(If,{children:_(Tf,{children:T?_(F,{uiConfig:z}):_("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:_(F,{uiConfig:z})})})})})})})})},NI=(f)=>{let C=h(()=>new KI,[]),U=f.queryClient??C;return _(S.Provider,{value:f.onNavigate,children:_(j.Provider,{value:f.config,children:_(k.Provider,{value:f.onError,children:_(MI,{client:U,children:_(SI,{...f})})})})})},Af=NI;import{useMemo as _f,useState as yI}from"react";import{QueryClient as mI,QueryClientProvider as kI}from"@tanstack/react-query";import{jsx as L,Fragment as jI}from"react/jsx-runtime";var uI=({location:f,fallback:C,children:U,disableGlobalForm:I})=>{let H=v(),T=i(),D=N(),V=_f(()=>d(),[]),Z=_f(()=>H?t(H):null,[H]),O=_f(()=>H?s(H,T):null,[H,T]);if(D)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",H),console.log("[PieRoot] CENTRIFUGE_SERVER:",T),console.log("[PieRoot] Fallback provided:",!!C);return L(m.Provider,{value:V,children:L(y.Provider,{value:Z,children:L(E.Provider,{value:O,children:L(K.Provider,{value:C??L(jI,{}),children:L(If,{children:L(Tf,{children:I?U:L("form",{id:"piedata_global_form",action:H+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:U})})})})})})})},xI=(f)=>{let[C]=yI(()=>new mI),U=f.queryClient??C;return L(S.Provider,{value:f.onNavigate,children:L(j.Provider,{value:f.config,children:L(k.Provider,{value:f.onError,children:L(kI,{client:U,children:L(uI,{...f})})})})})},dI=xI;import{useMemo as bI}from"react";import{jsx as JC}from"react/jsx-runtime";var pI=JC("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),vI=({apiServer:f,pathname:C="/",search:U="",centrifugeServer:I,fallback:H,enableRenderingLog:T=!1})=>{let D=f??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"",V=bI(()=>({apiServer:D,centrifugeServer:I,enableRenderingLog:T,pageProcessor:"web"}),[D,I,T]);return JC(Af,{location:{pathname:C,search:U},config:V,fallback:H??pI,onNavigate:(O)=>{if(typeof window<"u")window.history.pushState(null,"",O)}})},cI=vI;import{useMemo as gI}from"react";var GC=(f,C=!1)=>{if(f==="sid"){if(!window.sid)throw Error("SocketIO isn't initialized properly");return[window.sid]}let U=document.getElementsByName(f);if(!U.length){if(C)console.warn(`No input found with name ${f}`);return[]}let I=U[0];if(I instanceof HTMLInputElement){if(I.type==="file"&&I.files)return Array.from(I.files);return[I.value]}if(I instanceof HTMLTextAreaElement)return[I.value];return[]},hI=(f,C={},U=[],I,H)=>{let T=H?.renderingLogEnabled??!1,D=H?.timeout,V=H?.retryPolicy,Z=V?.maxRetries??0,O=V?.baseDelay??1000,$=V?.retryOn??[502,503,504];if(T)console.log("Registering AJAX: ",I,C,U);return async(J={})=>{if(typeof window>"u"||typeof document>"u"){if(T)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let X=H?.apiServer;if(!X){if(T)console.warn("AJAX skipped: apiServer is missing");return}if(!I||!f){if(T)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(U.includes("sid"))await wf();let z=new FormData;for(let[o,B]of Object.entries({...C,...J}))z.append(o,B);for(let o of U)for(let B of GC(o,T))z.append(o,B);let q=X+"api/ajax_content"+I;f(null);let G;for(let o=0;o<=Z;o++){if(o>0){let Y=O*2**(o-1);if(T)console.log(`AJAX retry ${o}/${Z} after ${Y}ms`);await new Promise((w)=>setTimeout(w,Y))}let B=D!=null?new AbortController:null,A=B&&setTimeout(()=>B.abort(),D);try{let Y=await fetch(q,{method:"POST",body:z,signal:B?.signal});if(A)clearTimeout(A);if(!Y.ok&&$.includes(Y.status)&&o<Z){G=Error(`HTTP ${Y.status}`);continue}let r=(Y.headers.get("content-type")||"").includes("application/json");if(!!Y.body?.getReader&&!r){let l=Y.body.getReader(),XC=new TextDecoder,x="";while(!0){let{done:Hf,value:YC}=await l.read();if(Hf)break;x+=XC.decode(YC,{stream:!0});let Ff=x.split(`
|
|
3
|
+
`);x=Ff.pop()??"";for(let WC of Ff){let Df=WC.trim();if(!Df)continue;try{let PC=JSON.parse(Df);f([PC])}catch{if(T)console.warn("Failed to parse streamed line:",Df)}}}if(x.trim())try{let Hf=JSON.parse(x);f([Hf])}catch{if(T)console.warn("Failed to parse final streamed line:",x)}return{}}else{let l=await Y.json();return f(l),l}}catch(Y){if(A)clearTimeout(A);if(G=Y,o<Z)continue;if(T)console.error("AJAX request failed:",Y);return f(null),Y}}if(T)console.error("AJAX request failed after retries:",G);return f(null),G}},rI=(f,C={},U=[],I,H)=>{let{apiServer:T,enableRenderingLog:D}=p(),V=JSON.stringify(C),Z=JSON.stringify(U),O=JSON.stringify(H);return gI(()=>hI(f,C,U,I,{apiServer:T,renderingLogEnabled:D,timeout:H?.timeout,retryPolicy:H?.retryPolicy}),[f,V,Z,I,T,D,O])};import{clsx as lI}from"clsx";import{twMerge as nI}from"tailwind-merge";function iI(...f){return nI(lI(f))}var sI=()=>{if(typeof document>"u")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var tI=(f,C)=>`${f}${Of}${C}`;export{EC as usePieEmit,rI as useAjaxSubmit,pC as unregisterComponent,zf as trackLazy,sI as submitGlobalForm,R as registry,W as registerPieComponent,bC as registerMultipleComponents,GC as readAjaxKey,kf as preloadComponent,rC as prefetchLazyComponents,tI as pieName,vC as hasComponent,hC as getRegistrySize,c as getRegistryEntry,mf as getLazyComponentNames,d as getEmitter,cC as getComponentMeta,gC as getAllRegisteredComponents,iI as cn,qU as UnionCard,M as UIRendererContext,qf as UILoading,F as UI,y as SocketIOContext,aU as SessionStorageCard,$U as SequenceCard,ZI as SecureStorageCard,Af as PieRoot,cI as PiePreviewRoot,j as PieConfigContext,P as PieCard,dI as PieBaseRoot,Of as PIEBREAK,GI as OneOfCard,m as MittContext,iU as IOEventsCard,KU as HiddenCard,wU as HTMLEmbedCard,K as FallbackContext,CI as DeviceStorageCard,TI as CloudStorageCard,E as CentrifugeIOContext,qI as BoxCard,yU as AutoRedirectCard,zI as AjaxGroupCard};
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
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
|
-
`);
|
|
2
|
+
var EU=Object.create;var{getPrototypeOf:yU,defineProperty:e,getOwnPropertyNames:OC,getOwnPropertyDescriptor:mU}=Object,VC=Object.prototype.hasOwnProperty;var $C=(f,C,U)=>{U=f!=null?EU(yU(f)):{};let I=C||!f||!f.__esModule?e(U,"default",{value:f,enumerable:!0}):U;for(let H of OC(f))if(!VC.call(I,H))e(I,H,{get:()=>f[H],enumerable:!0});return I},ZC=new WeakMap,kU=(f)=>{var C=ZC.get(f),U;if(C)return C;if(C=e({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function")OC(f).map((I)=>!VC.call(C,I)&&e(C,I,{get:()=>f[I],enumerable:!(U=mU(f,I))||U.enumerable}));return ZC.set(f,C),C};var uU=(f,C)=>{for(var U in C)e(f,U,{get:C[U],enumerable:!0,configurable:!0,set:(I)=>C[U]=()=>I})};var QI={};uU(QI,{usePieEmit:()=>WC,useAjaxSubmit:()=>wU,unregisterComponent:()=>FC,trackLazy:()=>Yf,submitGlobalForm:()=>KU,registry:()=>N,registerPieComponent:()=>X,registerMultipleComponents:()=>_C,readAjaxKey:()=>HC,preloadComponent:()=>hf,prefetchLazyComponents:()=>SC,pieName:()=>MU,hasComponent:()=>KC,getRegistrySize:()=>RC,getRegistryEntry:()=>r,getLazyComponentNames:()=>gf,getEmitter:()=>p,getComponentMeta:()=>MC,getAllRegisteredComponents:()=>LC,cn:()=>FU,UnionCard:()=>pC,UIRendererContext:()=>R,UILoading:()=>wf,UI:()=>K,SocketIOContext:()=>y,SessionStorageCard:()=>fU,SequenceCard:()=>jC,SecureStorageCard:()=>DU,PieRoot:()=>jf,PiePreviewRoot:()=>PU,PieConfigContext:()=>b,PieCard:()=>P,PieBaseRoot:()=>YU,PIEBREAK:()=>Jf,OneOfCard:()=>qU,MittContext:()=>m,IOEventsCard:()=>aC,HiddenCard:()=>lC,HTMLEmbedCard:()=>hC,FallbackContext:()=>L,DeviceStorageCard:()=>UU,CloudStorageCard:()=>TU,CentrifugeIOContext:()=>E,BoxCard:()=>$U,AutoRedirectCard:()=>sC,AjaxGroupCard:()=>OU});module.exports=kU(QI);var k=require("react");var of=require("react");var vf=globalThis,Q=(f,C)=>{let U=Symbol.for(f);if(!(U in vf))vf[U]=C();return vf[U]};var b=Q("@swarm.ing/pieui:context:pieConfig",()=>of.createContext(null)),ff=()=>{let f=of.useContext(b);if(!f)throw Error("usePieConfig must be used within PieConfigProvider");return f},Cf=()=>{let{apiServer:f}=ff();return f},qf=Cf,Bf=()=>{let{centrifugeServer:f}=ff();return f};var x=()=>{let{enableRenderingLog:f}=ff();return f},zC=x;var Jf="__piedemo__";var qC=require("react"),cf=require("centrifuge");var oC=Q("@swarm.ing/pieui:centrifuge-cache",()=>new Map),Gf=(f,C)=>{if(!C)return null;let U=`${f}::${C}`,I=oC.get(U);if(I)return I;async function H(){let D=await fetch(f+"api/centrifuge/gen_token");if(!D.ok){if(D.status===403)throw new cf.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${D.status}`)}return(await D.json()).token}let T=new cf.Centrifuge(C,{getToken:H});return oC.set(U,T),T},xU=Q("@swarm.ing/pieui:context:centrifuge",()=>qC.createContext(null)),E=xU;var JC=require("socket.io-client"),GC=require("react");var BC=Q("@swarm.ing/pieui:socket-cache",()=>new Map),Xf=(f)=>{let C=BC.get(f);if(C)return C;let U=JC.io(f,{autoConnect:!1,transports:["websocket"]});return BC.set(f,U),U},jU=Q("@swarm.ing/pieui:context:socket",()=>GC.createContext(null)),y=jU;var XC=$C(require("mitt")),g=require("react");function p(){return Q("@swarm.ing/pieui:mitt-emitter",()=>XC.default())}var YC=Q("@swarm.ing/pieui:context:mitt",()=>g.createContext(null));function WC(f){let C=g.useContext(YC);return g.useCallback((U,I)=>{(C??p()).emit(`pie${U}_${f}`,I)},[f,C])}var m=YC;var h=require("react/jsx-runtime"),dU=({card:f,data:C,children:U,useSocketioSupport:I=!1,useCentrifugeSupport:H=!1,useMittSupport:T=!1,centrifugeChannel:D=void 0,methods:V=void 0,stored:Z=void 0})=>{let O=zC(),$=k.useRef(V);if($.current=V,O)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",C),console.log("[PieCard] Component name:",C?.name),console.log("[PieCard] Real-time support:",{socketio:I,centrifuge:H,mitt:T,centrifugeChannel:D}),console.log("[PieCard] Methods:",V?Object.keys(V):"none"),console.log("[PieCard] Has children:",!!U);let J=k.useContext(y),Y=k.useContext(E),z=k.useContext(m);if(k.useEffect(()=>{if(!J||!I||!$.current||!C.name){if(O&&I)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!J,useSocketioSupport:I,hasMethods:!!$.current,hasDataName:!!C?.name});return}let G=Object.keys($.current??{}).map((o)=>{let B=`pie${o}_${C.name}`;if(O)console.log(`[PieCard] Socket.IO registering event: ${B}`);let A=(W)=>{$.current?.[o]?.(W)};return J.on(B,A),[B,A]});return()=>{G.forEach(([o,B])=>{if(O)console.log(`[PieCard] Socket.IO unregistering event: ${o}`);J.off(o,B)})}},[J,C.name,I]),k.useEffect(()=>{if(!Y||!H||!D||!C.name){if(O&&H)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!Y,useCentrifugeSupport:H,hasCentrifugeChannel:!!D,hasMethods:!!$.current,hasDataName:!!C?.name});return}let G=Object.keys($.current??{}).map((o)=>{let B=`pie${o}_${C.name}_${D}`;if(O)console.log(`[PieCard] Centrifuge subscribing to channel: ${B}`);let A=Y.newSubscription(B);return A.on("publication",(W)=>{if(O)console.log(`[PieCard] Centrifuge received data on ${B}:`,W.data);$.current?.[o]?.(W.data)}),A.subscribe(),A});return()=>{G.forEach((o)=>{if(O)console.log("[PieCard] Centrifuge unsubscribing from channel");o.unsubscribe(),Y.removeSubscription(o)})}},[Y,D,C.name,H]),k.useEffect(()=>{if(!z||!T||!C.name){if(O&&T)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!z,useMittSupport:T,hasMethods:!!$.current,hasDataName:!!C?.name});return}let q=Object.keys($.current??{}),G={};return q.forEach((o)=>{let B=`pie${o}_${C.name}`,A=(W)=>{if(O)console.log(`[PieCard] Mitt registering event: ${B}`);$.current?.[o]?.(W)};G[B]=A,z.on(B,A)}),()=>{Object.entries(G).forEach(([o,B])=>{if(O)console.log(`[PieCard] Mitt unregistering event: ${o}`);z.off(o,B)})}},[z,C.name,T]),O)console.log("[PieCard] Rendering complete, returning children");if(Z!==void 0)return h.jsxs(h.Fragment,{children:[h.jsx("input",{type:"hidden",name:C.name,value:JSON.stringify(Z)}),U]});return U},P=dU;var PC=require("react"),v=new Map;function QC(f,C){return C.catch(()=>{if(v.get(f)===C)v.delete(f)}),v.set(f,C),C}function Yf(f,C){return PC.lazy(()=>{if(v.has(C))return v.get(C);return QC(C,f().then((U)=>U))})}var wC=async(f,C)=>{if(!C)return;if(v.has(f))return v.get(f);return QC(f,C().then((U)=>U))};var N=Q("@swarm.ing/pieui:component-registry",()=>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 C={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!C.component&&C.loader)C.component=Yf(C.loader,f.name),C.isLazy=!0;return C};function X(f){let C=bU(f);return N.set(C.name,C),C.component}var _C=(f)=>{f.forEach((C)=>X(C))},FC=(f)=>{N.delete(f)},KC=(f)=>{return N.has(f)},MC=(f)=>{return N.get(f)?.metadata},r=(f)=>{return N.get(f)},LC=()=>{return Array.from(N.keys())},RC=()=>{return N.size},gf=()=>Array.from(N.values()).filter((f)=>f.isLazy&&typeof f.loader==="function").map((f)=>f.name),hf=(f)=>{let C=N.get(f);if(!C?.isLazy||typeof C.loader!=="function")return;return wC(f,C.loader)},AC=!1,SC=()=>{if(AC||typeof window>"u")return;AC=!0;let f=navigator.connection;if(f?.saveData)return;if(f?.effectiveType&&["slow-2g","2g"].includes(f.effectiveType))return;let C=gf(),U="requestIdleCallback"in window?(H)=>window.requestIdleCallback(H,{timeout:2000}):(H)=>window.setTimeout(H,300),I=(H)=>{if(H>=C.length)return;U(()=>{Promise.resolve().then(()=>hf(C[H])).catch(()=>{}).finally(()=>I(H+1))})};I(0)};var Uf=require("react");var NC=require("react");var Wf=require("react/jsx-runtime"),pU=Q("@swarm.ing/pieui:context:fallback",()=>NC.createContext(Wf.jsx(Wf.Fragment,{}))),L=pU;var EC=require("react");var vU=Q("@swarm.ing/pieui:context:lazyError",()=>EC.createContext(void 0)),j=vU;var Pf=require("react"),yC=require("react/jsx-runtime"),cU=2,gU=400;class l extends Pf.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(f){if(this.props.onError?.(f),this.state.attempt<cU){let C=gU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((U)=>({failed:!1,attempt:U.attempt+1}))},C)}}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 yC.jsx(Pf.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var Qf=require("react/jsx-runtime");function hU({uiConfig:f,setUiAjaxConfiguration:C}){let U=Uf.useContext(L),I=Uf.useContext(j),H=x();if(H)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:",!!C);let T=r(f.card);if(!T?.component){if(H)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return U}if(H)console.log("[UI] Found component in registry:",{name:T.name,isLazy:T.isLazy,hasMetadata:!!T.metadata});let D=T.component,V=Qf.jsx(D,{data:f.data,content:f.content,setUiAjaxConfiguration:C});if(T.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",T.name);return Qf.jsx(l,{name:T.name,fallback:T.fallback?Qf.jsx(T.fallback,{}):U,onError:I,children:V})}if(H)console.log("[UI] Rendering component directly:",T.name);return V}var K=Uf.memo(hU);var rf=require("react");var mC=require("react");var rU=Q("@swarm.ing/pieui:context:uiRenderer",()=>mC.createContext(null)),R=rU;var If=require("react/jsx-runtime");function kC({uiConfig:f,setUiAjaxConfiguration:C}){let U=rf.useContext(L),I=rf.useContext(j),H=x();if(H)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:",!!C);let T=r(f.card);if(!T?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return U}if(H)console.log("[UILoading] Found component in registry:",{name:T.name,isLazy:T.isLazy,hasMetadata:!!T.metadata,hasFallback:!!T.fallback});if(T.fallback){if(H)console.log("[UILoading] Rendering fallback for:",T.name);let Z=T.fallback;return If.jsx(Z,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",T.name);let D=T.component,V=If.jsx(R.Provider,{value:kC,children:If.jsx(D,{data:f.data,content:f.content,setUiAjaxConfiguration:C})});if(T.isLazy)return If.jsx(l,{name:T.name,fallback:U,onError:I,children:V});return V}var wf=kC;var uC=require("react");var Af=require("react/jsx-runtime"),lU=({data:f,content:C,setUiAjaxConfiguration:U})=>{let{name:I,sx:H}=f,T=uC.useContext(R)??K;return Af.jsx(P,{card:I,data:f,children:Af.jsx("div",{style:H,id:I,children:C.map((D,V)=>{return Af.jsx(T,{uiConfig:D,setUiAjaxConfiguration:U},`children-${V}`)})})})},xC=lU;var jC=X({name:"SequenceCard",component:xC,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var dC=require("react");var lf=require("react/jsx-runtime"),nU=({data:f,content:C,setUiAjaxConfiguration:U})=>{let{name:I}=f,H=dC.useContext(R)??K;return lf.jsx(P,{card:I,data:f,children:C.map((T,D)=>{return lf.jsx(H,{uiConfig:T,setUiAjaxConfiguration:U},`children-${D}`)})})},bC=nU;var pC=X({name:"UnionCard",component:bC,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var _f=require("react"),vC=$C(require("html-react-parser"));var S=require("react");function iU(){let f=new AudioContext,C=f.createOscillator(),U=C.connect(f.createMediaStreamDestination());C.start();let I=U.stream.getAudioTracks()[0];return I.enabled=!1,I}function nf(f=null,C){let[U,I]=S.useState(!1),H=S.useRef(null),T=S.useRef(null),D=S.useRef(null),V=S.useCallback(async(J,Y=!0)=>{if(H.current)Z();let z=new RTCPeerConnection;if(z.onconnectionstatechange=()=>{if(z.connectionState==="connected")I(!0);else if(["disconnected","failed","closed"].includes(z.connectionState))I(!1)},z.ontrack=(w)=>{if(f)f.srcObject=w.streams[0]},Y){let w=await navigator.mediaDevices.getUserMedia({audio:!0});z.addTrack(w.getTracks()[0],w)}else{let w=iU();z.addTrack(w)}let q=z.createDataChannel("oai-events");T.current=q,D.current=new Promise((w)=>{q.addEventListener("open",()=>{w()})});let G=await z.createOffer();await z.setLocalDescription(G);let W=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:G.sdp,headers:{Authorization:`Bearer ${J}`,"Content-Type":"application/sdp"}})).text();await z.setRemoteDescription({type:"answer",sdp:W}),H.current=z,await D.current},[f]),Z=S.useCallback(()=>{let J=T.current;if(J)J.close();H.current?.getSenders()?.forEach((Y)=>Y.track?.stop()),H.current?.close(),I(!1),H.current=null,T.current=null,D.current=null},[f]),O=S.useCallback((J)=>{let Y=T.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;C?.(J)},[C,f]),$=S.useCallback((J)=>{if(!T.current){console.error("Data channel is not ready");return}let z=()=>{O({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:J}]}}),O({type:"response.create"})};if(D.current)D.current.then(z);else z()},[C,f]);return S.useEffect(()=>{let J=T.current;if(!J)return;let Y=(z)=>{let q=JSON.parse(z.data);if(!q.timestamp)q.timestamp=new Date().toLocaleTimeString();C?.(q)};return J.addEventListener("message",Y),()=>{J.removeEventListener("message",Y)}},[C,f]),{isSessionActive:U,startSession:V,stopSession:Z,sendTextMessage:$}}var gC=require("react/jsx-runtime"),sU=({data:f})=>{let{html:C,useSocketioSupport:U,useCentrifugeSupport:I,useMittSupport:H,centrifugeChannel:T}=f,[D,V]=_f.useState(C),{isSessionActive:Z,startSession:O,sendTextMessage:$}=nf(null,(q)=>{if(console.log(q.type,q.type==="response.output_text.delta"&&q.delta),q.type==="response.output_text.delta"&&q.delta)V((G)=>G+q.delta)});return _f.useEffect(()=>{V(C)},[C]),gC.jsx(P,{card:"HTMLEmbedCard",data:f,methods:{update:(q)=>{V(q.value)},generateUsingAI:async(q)=>{try{if(!Z&&q.token)await O(q.token,!1);$(q.prompt)}catch(G){console.error("Failed to generate using AI",G)}},initializeAI:async(q)=>{if(!Z&&q.token)await O(q.token,!1)}},useCentrifugeSupport:I,useSocketioSupport:U,useMittSupport:H,centrifugeChannel:T,children:vC.default(D)})},cC=sU;var hC=X({name:"HTMLEmbedCard",component:cC,metadata:{author:"Swarm.ing"}});var Ff=require("react");var sf=require("react/jsx-runtime"),tU=({data:f})=>{let{name:C,value:U,useSocketioSupport:I,useCentrifugeSupport:H,useMittSupport:T,centrifugeChannel:D}=f,[V,Z]=Ff.useState(U);return Ff.useEffect(()=>{Z(U)},[U]),sf.jsx(P,{card:"HiddenCard",data:f,useSocketioSupport:I,useCentrifugeSupport:H,useMittSupport:T,centrifugeChannel:D,methods:{update:({value:O})=>{Z(O)}},children:sf.jsx("input",{type:"hidden",id:C,name:C,value:V})})},rC=tU;var lC=X({name:"HiddenCard",component:rC,metadata:{author:"Swarm.ing"}});var Tf=require("react");var nC=require("react");var aU=Q("@swarm.ing/pieui:context:navigate",()=>nC.createContext(void 0)),u=aU;var Kf=require("react/jsx-runtime"),eU=({data:f})=>{let{url:C}=f,U=Tf.useContext(u),I=Tf.useContext(L);return Tf.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(C))window.location.href=C;else U?.(C)},[C,U]),Kf.jsx(Kf.Fragment,{children:I})},iC=eU;var sC=X({name:"AutoRedirectCard",component:iC,metadata:{author:"Swarm.ing"}});var d=require("react-toastify"),Mf=require("react-toastify");var i=require("react");var n=require("react/jsx-runtime"),fI={bounce:d.Bounce,slide:d.Slide,zoom:d.Zoom,flip:d.Flip},CI=(f)=>{let C={...f,type:f.alertType,transition:f.transition?fI[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};Mf.toast(f.message,C)},UI=(f)=>{console.log("Log event",f)},II=(f)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let C=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(I){console.error("[IOEventsCard] Failed to show notification",I)}},U=window.Notification.permission;if(U==="granted"){C();return}if(U==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((I)=>{if(I==="granted")C()})},TI=({data:f})=>{let{useCentrifugeSupport:C,useSocketioSupport:U,useMittSupport:I,centrifugeChannel:H}=f,T=i.useContext(u),D=i.useRef(T);D.current=T;let V=i.useMemo(()=>({alert:CI,log:UI,push:II,redirect:(Z)=>{if(Z.to){let O=Z.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(O))window.location.href=O;else D.current?.(O)}else window.location.reload()},reload:(Z)=>{if(Z.to){let O=Z.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(O))window.location.href=O;else D.current?.(O)}else window.location.reload()}}),[]);return n.jsx(n.Fragment,{children:n.jsx(P,{card:"IOEventsCard",data:f,useCentrifugeSupport:C,useSocketioSupport:U,useMittSupport:I,centrifugeChannel:H,methods:V,children:n.jsx(Mf.ToastContainer,{})})})},tC=TI;var aC=X({name:"IOEventsCard",component:tC,metadata:{author:"Swarm.ing"}});var Hf=require("react");var tf=require("react/jsx-runtime"),HI=({data:f})=>{let{name:C,key:U,value:I,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V}=f,[Z,O]=Hf.useState(I);return Hf.useEffect(()=>{O(I)},[I]),Hf.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem(U,Z)},[U,Z]),tf.jsx(P,{card:"SessionStorageCard",data:f,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V,methods:{update:({value:$})=>{O($)},remove:()=>{sessionStorage.removeItem(U),O("")}},children:tf.jsx("input",{type:"hidden",id:C,name:C,value:Z})})},eC=HI;var fU=X({name:"SessionStorageCard",component:eC,metadata:{author:"PieData"}});var Df=require("react");var af=require("react/jsx-runtime"),DI=({data:f})=>{let{name:C,key:U,value:I,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V}=f,[Z,O]=Df.useState(I);return Df.useEffect(()=>{O(I)},[I]),Df.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem(U,Z)},[U,Z]),af.jsx(P,{card:"DeviceStorageCard",data:f,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V,methods:{update:({value:$})=>{O($)},remove:()=>{localStorage.removeItem(U),O("")}},children:af.jsx("input",{type:"hidden",id:C,name:C,value:Z})})},CU=DI;var UU=X({name:"DeviceStorageCard",component:CU,metadata:{author:"PieData"}});var Zf=require("react");var ef=require("react/jsx-runtime"),ZI=({data:f})=>{let{name:C,key:U,value:I,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V}=f,[Z,O]=Zf.useState(I);return Zf.useEffect(()=>{O(I)},[I]),Zf.useEffect(()=>{if(typeof window>"u")return;let $=window.Telegram?.WebApp?.CloudStorage;if(!$)return;$.setItem(U,Z)},[U,Z]),ef.jsx(P,{card:"CloudStorageCard",data:f,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V,methods:{update:({value:$})=>{O($)},remove:()=>{let $=window.Telegram?.WebApp?.CloudStorage;if($)$.removeItem(U);O("")}},children:ef.jsx("input",{type:"hidden",id:C,name:C,value:Z})})},IU=ZI;var TU=X({name:"CloudStorageCard",component:IU,metadata:{author:"PieData"}});var Of=require("react");var fC=require("react/jsx-runtime"),OI=({data:f})=>{let{name:C,key:U,value:I,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V}=f,[Z,O]=Of.useState(I);return Of.useEffect(()=>{O(I)},[I]),Of.useEffect(()=>{if(typeof window>"u")return;let $=window.Telegram?.WebApp?.SecureStorage;if(!$)return;$.setItem(U,Z)},[U,Z]),fC.jsx(P,{card:"SecureStorageCard",data:f,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:D,centrifugeChannel:V,methods:{update:({value:$})=>{O($)},remove:()=>{let $=window.Telegram?.WebApp?.SecureStorage;if($)$.removeItem(U);O("")}},children:fC.jsx("input",{type:"hidden",id:C,name:C,value:Z})})},HU=OI;var DU=X({name:"SecureStorageCard",component:HU,metadata:{author:"PieData"}});var M=require("react");var CC=require("react/jsx-runtime"),VI=({data:f,content:C})=>{let{useLoader:U,noReturn:I,returnType:H,useSocketioSupport:T,useCentrifugeSupport:D,useMittSupport:V,centrifugeChannel:Z}=f,O=M.useContext(L),$=M.useContext(R)??K,[J,Y]=M.useState(!1),[z,q]=M.useState(null),G=M.useRef(C),o=M.useContext(m),B=M.useCallback((w)=>{if(w===null)Y(!0);else if(Y(!1),!I)G.current=w;if(!I)q(w)},[I]),A=M.useCallback((w)=>{G.current=w.content,q(w.content)},[]),W=M.useCallback((w)=>{if(w===null)Y(!0);else if(Y(!1),!I)for(let $f of w)o?.emit($f.name,$f.data)},[I,o]);if(M.useEffect(()=>{q(C),Y(!1)},[C]),!z&&U)return O;return CC.jsx(P,{card:"AjaxGroupCard",data:f,methods:{changeContent:A},useSocketioSupport:T,useCentrifugeSupport:D,useMittSupport:V,centrifugeChannel:Z,children:CC.jsx($,{uiConfig:z??G.current,setUiAjaxConfiguration:H==="events"?W:B})})},ZU=VI;var OU=X({name:"AjaxGroupCard",component:ZU,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var UC=require("react");var Lf=require("react/jsx-runtime"),$I=({data:f,content:C,setUiAjaxConfiguration:U})=>{let{name:I,url:H,sx:T}=f,D=UC.useContext(u),V=UC.useContext(R)??K;return Lf.jsx(P,{card:I,data:f,children:Lf.jsx("div",{style:T,id:I,onClick:(O)=>{if(H)if(O.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(H))window.location.href=H;else D?.(H)},children:Lf.jsx(V,{setUiAjaxConfiguration:U,uiConfig:C})})})},VU=$I;var $U=X({name:"BoxCard",component:VU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var zU=require("react");var Rf=require("react/jsx-runtime"),zI=({data:f,content:C,setUiAjaxConfiguration:U})=>{let{name:I,sx:H}=f,T=zU.useContext(R)??K;return Rf.jsx(P,{card:I,data:f,children:Rf.jsx("div",{style:H,id:I,children:C.map((D,V)=>{return Rf.jsx(T,{uiConfig:D,setUiAjaxConfiguration:U},`children-${V}`)})})})},oU=zI;var qU=X({name:"OneOfCard",component:oU,metadata:{author:"Swarm.ing",description:"Different variants"}});var s=require("react"),t=require("@tanstack/react-query");var mf=require("react");var Ef=require("react"),Sf=new Map,Nf=new Map;function yf(f,C){let U=`${f}::${C}`,I=f?Sf.get(U):void 0,[H,T]=Ef.useState(I??null);return Ef.useEffect(()=>{if(!f)return;if(Sf.has(U)){T(Sf.get(U));return}let D=Nf.get(U);if(!D)D=fetch(f+`api/support/${C}`,{method:"GET"}).then((Z)=>Z.json()).then((Z)=>{return Sf.set(U,Z),Nf.delete(U),Z}).catch((Z)=>{throw Nf.delete(U),Z}),Nf.set(U,D);let V=!1;return D.then((Z)=>{if(!V)T(Z)}).catch(()=>{}),()=>{V=!0}},[f,C,U]),H}var Vf=Q("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function BU(){Vf.resolve?.()}function IC(){if(typeof window>"u")return Promise.resolve();if(typeof window.sid<"u")return Promise.resolve();if(!Vf.promise)Vf.promise=new Promise((f)=>{Vf.resolve=()=>{f()}});return Vf.promise}var oI=({children:f})=>{let C=mf.useContext(y),U=qf(),I=yf(U,"socketIO"),H=(T)=>{if(typeof window<"u")window.sid=T.sid,BU(),console.log(`SocketIO initialized: ${window.sid}`)};return mf.useEffect(()=>{if(!C)return;let T=()=>{console.log("SocketIO connected")},D=(V)=>{console.log(`SocketIO disconnected: ${V}`),C.connect()};if(I)C.on("pieinit",H),C.on("connect",T),C.on("disconnect",D),C.connect();return()=>{if(I)C.off("pieinit",H),C.off("connect",T),C.off("disconnect",D),C.disconnect()}},[C,I]),f},kf=oI;var uf=require("react");var qI=({children:f})=>{let C=uf.useContext(E),U=qf(),I=yf(U,"centrifuge");return uf.useEffect(()=>{if(!C)return;let H=()=>{console.log("Centrifuge connected")},T=(D)=>{console.log("Centrifuge disconnected:",D)};if(I)C.on("connected",H),C.on("disconnected",T),C.connect();return()=>{if(I)C.disconnect()}},[C,I]),f},xf=qI;var XU=require("axios-date-transformer");var GU=require("react/jsx-runtime");function JU(f,C,U){if(!C)return U;let I=f.replace(/^\//,""),H=C[I];if(!H)return U;return GU.jsx(wf,{uiConfig:H})}var _=require("react/jsx-runtime"),BI=({location:f,fallback:C,piecache:U,onError:I,queryOptions:H,disableGlobalForm:T})=>{let D=Cf(),V=Bf(),Z=x(),O=s.useMemo(()=>XU.createAxiosDateTransformer({baseURL:D||""}),[D]),$=s.useMemo(()=>p(),[]),J=s.useMemo(()=>D?Xf(D):null,[D]),Y=s.useMemo(()=>D?Gf(D,V):null,[D,V]),{data:z,isLoading:q,error:G}=t.useQuery({queryKey:["uiConfig",f.pathname+f.search,D],enabled:!!D,queryFn:async()=>{let B=new URLSearchParams(f.search);B.set("__pieroot","web");let A="/api/content"+f.pathname+"?"+B.toString();if(Z)console.log("[PieRoot] Fetching UI configuration from:",A);let W=await O.get(A,{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:",W.data);return W.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(B)=>Math.min(1000*2**B,30000),...H}),o=JU(f.pathname,U,C);if(!D)return o??null;if(Z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",D),console.log("[PieRoot] CENTRIFUGE_SERVER:",V),console.log("[PieRoot] Fallback provided:",!!C),console.log("[PieRoot] Piecache provided:",!!U);if(G){if(Z)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 I?.(G),o}if(q||!z){if(Z)console.log("[PieRoot] Loading state:",{isLoading:q,hasUiConfiguration:!!z});return o}if(Z)console.log("[PieRoot] UI configuration loaded successfully:",z),console.log("[PieRoot] Rendering UI with configuration");return _.jsx(m.Provider,{value:$,children:_.jsx(y.Provider,{value:J,children:_.jsx(E.Provider,{value:Y,children:_.jsx(L.Provider,{value:C??_.jsx(_.Fragment,{}),children:_.jsx(kf,{children:_.jsx(xf,{children:T?_.jsx(K,{uiConfig:z}):_.jsx("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:_.jsx(K,{uiConfig:z})})})})})})})})},JI=(f)=>{let C=s.useMemo(()=>new t.QueryClient,[]),U=f.queryClient??C;return _.jsx(u.Provider,{value:f.onNavigate,children:_.jsx(b.Provider,{value:f.config,children:_.jsx(j.Provider,{value:f.onError,children:_.jsx(t.QueryClientProvider,{client:U,children:_.jsx(BI,{...f})})})})})},jf=JI;var a=require("react"),df=require("@tanstack/react-query");var F=require("react/jsx-runtime"),GI=({location:f,fallback:C,children:U,disableGlobalForm:I})=>{let H=Cf(),T=Bf(),D=x(),V=a.useMemo(()=>p(),[]),Z=a.useMemo(()=>H?Xf(H):null,[H]),O=a.useMemo(()=>H?Gf(H,T):null,[H,T]);if(D)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",H),console.log("[PieRoot] CENTRIFUGE_SERVER:",T),console.log("[PieRoot] Fallback provided:",!!C);return F.jsx(m.Provider,{value:V,children:F.jsx(y.Provider,{value:Z,children:F.jsx(E.Provider,{value:O,children:F.jsx(L.Provider,{value:C??F.jsx(F.Fragment,{}),children:F.jsx(kf,{children:F.jsx(xf,{children:I?U:F.jsx("form",{id:"piedata_global_form",action:H+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:U})})})})})})})},XI=(f)=>{let[C]=a.useState(()=>new df.QueryClient),U=f.queryClient??C;return F.jsx(u.Provider,{value:f.onNavigate,children:F.jsx(b.Provider,{value:f.config,children:F.jsx(j.Provider,{value:f.onError,children:F.jsx(df.QueryClientProvider,{client:U,children:F.jsx(GI,{...f})})})})})},YU=XI;var WU=require("react");var TC=require("react/jsx-runtime"),YI=TC.jsx("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),WI=({apiServer:f,pathname:C="/",search:U="",centrifugeServer:I,fallback:H,enableRenderingLog:T=!1})=>{let D=f??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"",V=WU.useMemo(()=>({apiServer:D,centrifugeServer:I,enableRenderingLog:T,pageProcessor:"web"}),[D,I,T]);return TC.jsx(jf,{location:{pathname:C,search:U},config:V,fallback:H??YI,onNavigate:(O)=>{if(typeof window<"u")window.history.pushState(null,"",O)}})},PU=WI;var QU=require("react"),HC=(f,C=!1)=>{if(f==="sid"){if(!window.sid)throw Error("SocketIO isn't initialized properly");return[window.sid]}let U=document.getElementsByName(f);if(!U.length){if(C)console.warn(`No input found with name ${f}`);return[]}let I=U[0];if(I instanceof HTMLInputElement){if(I.type==="file"&&I.files)return Array.from(I.files);return[I.value]}if(I instanceof HTMLTextAreaElement)return[I.value];return[]},PI=(f,C={},U=[],I,H)=>{let T=H?.renderingLogEnabled??!1,D=H?.timeout,V=H?.retryPolicy,Z=V?.maxRetries??0,O=V?.baseDelay??1000,$=V?.retryOn??[502,503,504];if(T)console.log("Registering AJAX: ",I,C,U);return async(J={})=>{if(typeof window>"u"||typeof document>"u"){if(T)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let Y=H?.apiServer;if(!Y){if(T)console.warn("AJAX skipped: apiServer is missing");return}if(!I||!f){if(T)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(U.includes("sid"))await IC();let z=new FormData;for(let[o,B]of Object.entries({...C,...J}))z.append(o,B);for(let o of U)for(let B of HC(o,T))z.append(o,B);let q=Y+"api/ajax_content"+I;f(null);let G;for(let o=0;o<=Z;o++){if(o>0){let W=O*2**(o-1);if(T)console.log(`AJAX retry ${o}/${Z} after ${W}ms`);await new Promise((w)=>setTimeout(w,W))}let B=D!=null?new AbortController:null,A=B&&setTimeout(()=>B.abort(),D);try{let W=await fetch(q,{method:"POST",body:z,signal:B?.signal});if(A)clearTimeout(A);if(!W.ok&&$.includes(W.status)&&o<Z){G=Error(`HTTP ${W.status}`);continue}let $f=(W.headers.get("content-type")||"").includes("application/json");if(!!W.body?.getReader&&!$f){let zf=W.body.getReader(),LU=new TextDecoder,c="";while(!0){let{done:bf,value:RU}=await zf.read();if(bf)break;c+=LU.decode(RU,{stream:!0});let DC=c.split(`
|
|
3
|
+
`);c=DC.pop()??"";for(let SU of DC){let pf=SU.trim();if(!pf)continue;try{let NU=JSON.parse(pf);f([NU])}catch{if(T)console.warn("Failed to parse streamed line:",pf)}}}if(c.trim())try{let bf=JSON.parse(c);f([bf])}catch{if(T)console.warn("Failed to parse final streamed line:",c)}return{}}else{let zf=await W.json();return f(zf),zf}}catch(W){if(A)clearTimeout(A);if(G=W,o<Z)continue;if(T)console.error("AJAX request failed:",W);return f(null),W}}if(T)console.error("AJAX request failed after retries:",G);return f(null),G}},wU=(f,C={},U=[],I,H)=>{let{apiServer:T,enableRenderingLog:D}=ff(),V=JSON.stringify(C),Z=JSON.stringify(U),O=JSON.stringify(H);return QU.useMemo(()=>PI(f,C,U,I,{apiServer:T,renderingLogEnabled:D,timeout:H?.timeout,retryPolicy:H?.retryPolicy}),[f,V,Z,I,T,D,O])};var AU=require("clsx"),_U=require("tailwind-merge");function FU(...f){return _U.twMerge(AU.clsx(f))}var KU=()=>{if(typeof document>"u")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var MU=(f,C)=>`${f}${Jf}${C}`;
|
package/dist/max/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{useMemo as
|
|
2
|
+
import{useMemo as R}from"react";import{QueryClient as rU,QueryClientProvider as aU,useQuery as tU}from"@tanstack/react-query";import HU from"mitt";import{createContext as NU,useCallback as HL,useContext as NL}from"react";var A=globalThis,J=(U,L)=>{let T=Symbol.for(U);if(!(T in A))A[T]=L();return A[T]};function b(){return J("@swarm.ing/pieui:mitt-emitter",()=>HU())}var ZU=J("@swarm.ing/pieui:context:mitt",()=>NU(null));var u=ZU;import{io as VU}from"socket.io-client";import{createContext as YU}from"react";var c=J("@swarm.ing/pieui:socket-cache",()=>new Map),o=(U)=>{let L=c.get(U);if(L)return L;let T=VU(U,{autoConnect:!1,transports:["websocket"]});return c.set(U,T),T},FU=J("@swarm.ing/pieui:context:socket",()=>YU(null)),K=FU;import{createContext as GU}from"react";import{Centrifuge as g}from"centrifuge";var h=J("@swarm.ing/pieui:centrifuge-cache",()=>new Map),l=(U,L)=>{if(!L)return null;let T=`${U}::${L}`,D=h.get(T);if(D)return D;async function z(){let $=await fetch(U+"api/centrifuge/gen_token");if(!$.ok){if($.status===403)throw new g.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${$.status}`)}return(await $.json()).token}let I=new g(L,{getToken:z});return h.set(T,I),I},OU=J("@swarm.ing/pieui:context:centrifuge",()=>GU(null)),X=OU;import{useContext as KU,useEffect as XU}from"react";import{useEffect as QU,useState as _U}from"react";var B=new Map,W=new Map;function f(U,L){let T=`${U}::${L}`,D=U?B.get(T):void 0,[z,I]=_U(D??null);return QU(()=>{if(!U)return;if(B.has(T)){I(B.get(T));return}let $=W.get(T);if(!$)$=fetch(U+`api/support/${L}`,{method:"GET"}).then((H)=>H.json()).then((H)=>{return B.set(T,H),W.delete(T),H}).catch((H)=>{throw W.delete(T),H}),W.set(T,$);let Z=!1;return $.then((H)=>{if(!Z)I(H)}).catch(()=>{}),()=>{Z=!0}},[U,L,T]),z}import{createContext as qU,useContext as RU}from"react";var y=J("@swarm.ing/pieui:context:pieConfig",()=>qU(null)),w=()=>{let U=RU(y);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},k=()=>{let{apiServer:U}=w();return U},j=k,p=()=>{let{centrifugeServer:U}=w();return U};var Y=()=>{let{enableRenderingLog:U}=w();return U};var EU=J("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function n(){EU.resolve?.()}var BU=({children:U})=>{let L=KU(K),T=j(),D=f(T,"socketIO"),z=(I)=>{if(typeof window<"u")window.sid=I.sid,n(),console.log(`SocketIO initialized: ${window.sid}`)};return XU(()=>{if(!L)return;let I=()=>{console.log("SocketIO connected")},$=(Z)=>{console.log(`SocketIO disconnected: ${Z}`),L.connect()};if(D)L.on("pieinit",z),L.on("connect",I),L.on("disconnect",$),L.connect();return()=>{if(D)L.off("pieinit",z),L.off("connect",I),L.off("disconnect",$),L.disconnect()}},[L,D]),U},s=BU;import{useContext as WU,useEffect as fU}from"react";var jU=({children:U})=>{let L=WU(X),T=j(),D=f(T,"centrifuge");return fU(()=>{if(!L)return;let z=()=>{console.log("Centrifuge connected")},I=($)=>{console.log("Centrifuge disconnected:",$)};if(D)L.on("connected",z),L.on("disconnected",I),L.connect();return()=>{if(D)L.disconnect()}},[L,D]),U},i=jU;import{createContext as MU}from"react";import{jsx as yU,Fragment as AU}from"react/jsx-runtime";var PU=J("@swarm.ing/pieui:context:fallback",()=>MU(yU(AU,{}))),F=PU;import{createContext as wU}from"react";var kU=J("@swarm.ing/pieui:context:lazyError",()=>wU(void 0)),G=kU;var mU=J("@swarm.ing/pieui:component-registry",()=>new Map);var M=(U)=>{return mU.get(U)};import{useContext as r,memo as bU}from"react";import{Component as CU,Suspense as dU}from"react";import{jsx as xU}from"react/jsx-runtime";var SU=2,vU=400;class O extends CU{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<SU){let L=vU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((T)=>({failed:!1,attempt:T.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(dU,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as m}from"react/jsx-runtime";function uU({uiConfig:U,setUiAjaxConfiguration:L}){let T=r(F),D=r(G),z=Y();if(z)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 I=M(U.card);if(!I?.component){if(z)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return T}if(z)console.log("[UI] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata});let $=I.component,Z=m($,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if(I.isLazy){if(z)console.log("[UI] Rendering lazy component with Suspense:",I.name);return m(O,{name:I.name,fallback:I.fallback?m(I.fallback,{}):T,onError:D,children:Z})}if(z)console.log("[UI] Rendering component directly:",I.name);return Z}var C=bU(uU);import{createAxiosDateTransformer as eU}from"axios-date-transformer";import{useEffect as a,useState as cU}from"react";var Q=()=>{let[U,L]=cU(null);return a(()=>{if(typeof window>"u")return;let T=window.WebApp;if(!T)return;T.ready(),L(T)},[]),U},oU=()=>{let U=Q();return[U?.initDataUnsafe,U?.initData]},gU=(U)=>{let L=Q();return a(()=>{if(!L||!U)return;return L.BackButton.onClick(U),L.BackButton.show(),()=>{L.BackButton.offClick(U),L.BackButton.hide()}},[L,U]),L?.BackButton??null},hU=()=>{return Q()?.HapticFeedback??null};import{createContext as lU}from"react";var pU=J("@swarm.ing/pieui:context:navigate",()=>lU(void 0)),t=pU;import{useContext as UU}from"react";import{createContext as nU}from"react";var sU=J("@swarm.ing/pieui:context:uiRenderer",()=>nU(null)),e=sU;import{jsx as P}from"react/jsx-runtime";function LU({uiConfig:U,setUiAjaxConfiguration:L}){let T=UU(F),D=UU(G),z=Y();if(z)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 I=M(U.card);if(!I?.component){if(z)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return T}if(z)console.log("[UILoading] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata,hasFallback:!!I.fallback});if(I.fallback){if(z)console.log("[UILoading] Rendering fallback for:",I.name);let H=I.fallback;return P(H,{})}if(z)console.log("[UILoading] No fallback, rendering full component:",I.name);let $=I.component,Z=P(e.Provider,{value:LU,children:P($,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if(I.isLazy)return P(O,{name:I.name,fallback:T,onError:D,children:Z});return Z}var TU=LU;import{jsx as iU}from"react/jsx-runtime";function IU(U,L,T){if(!L)return T;let D=U.replace(/^\//,""),z=L[D];if(!z)return T;return iU(TU,{uiConfig:z})}import{jsx as N,Fragment as TL}from"react/jsx-runtime";var UL=({location:U,fallback:L,piecache:T,onError:D,queryOptions:z,disableGlobalForm:I})=>{let $=k(),Z=p(),H=Y(),$U=R(()=>eU({baseURL:$}),[$]),zU=R(()=>b(),[]),JU=R(()=>$?o($):null,[$]),DU=R(()=>$?l($,Z):null,[$,Z]),E=Q(),{data:_,isLoading:d,error:V}=tU({queryKey:["uiConfig",U.pathname+U.search,E?.initData],queryFn:async()=>{let q=new URLSearchParams(U.search);if(q.set("__pieroot","max"),E?.initData)q.set("initData",E.initData);let v="/api/content"+U.pathname+"?"+q.toString();if(H)console.log("[PieRoot] Fetching UI configuration from:",v);let x=await $U.get(v,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(H)console.log("[PieRoot] Received UI configuration:",x.data);return x.data},enabled:!!E?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(q)=>Math.min(1000*2**q,30000),...z}),S=IU(U.pathname,T,L);if(!$)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(V&&H)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}),D?.(V),S;if(d||!_){if(H)console.log("[PieRoot] Loading state:",{isLoading:d,hasUiConfiguration:!!_});return S}if(H)console.log("[PieRoot] UI configuration loaded successfully:",_),console.log("[PieRoot] Rendering UI with configuration");return N(u.Provider,{value:zU,children:N(K.Provider,{value:JU,children:N(X.Provider,{value:DU,children:N(F.Provider,{value:L??N(TL,{}),children:N(s,{children:N(i,{children:I?N(C,{uiConfig:_}):N("form",{id:"piedata_global_form",action:$+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:N(C,{uiConfig:_})})})})})})})})},LL=(U)=>{let L=R(()=>new rU,[]),T=U.queryClient??L;return N(t.Provider,{value:U.onNavigate,children:N(y.Provider,{value:U.config,children:N(G.Provider,{value:U.onError,children:N(aU,{client:T,children:N(UL,{...U})})})})})},IL=LL;export{Q as useMaxWebApp,oU as useMaxInitData,hU as useMaxHapticFeedback,gU as useMaxBackButton,IL as PieMaxRoot};
|
package/dist/max/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
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;
|
|
2
|
+
var dU=Object.create;var{getPrototypeOf:SU,defineProperty:K,getOwnPropertyNames:e,getOwnPropertyDescriptor:vU}=Object,UU=Object.prototype.hasOwnProperty;var xU=(U,L,T)=>{T=U!=null?dU(SU(U)):{};let $=L||!U||!U.__esModule?K(T,"default",{value:U,enumerable:!0}):T;for(let z of e(U))if(!UU.call($,z))K($,z,{get:()=>U[z],enumerable:!0});return $},t=new WeakMap,bU=(U)=>{var L=t.get(U),T;if(L)return L;if(L=K({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function")e(U).map(($)=>!UU.call(L,$)&&K(L,$,{get:()=>U[$],enumerable:!(T=vU(U,$))||T.enumerable}));return t.set(U,L),L};var uU=(U,L)=>{for(var T in L)K(U,T,{get:L[T],enumerable:!0,configurable:!0,set:($)=>L[T]=()=>$})};var IL={};uU(IL,{useMaxWebApp:()=>V,useMaxInitData:()=>qU,useMaxHapticFeedback:()=>EU,useMaxBackButton:()=>RU,PieMaxRoot:()=>yU});module.exports=bU(IL);var _=require("react"),q=require("@tanstack/react-query");var LU=xU(require("mitt")),j=require("react");var c=globalThis,D=(U,L)=>{let T=Symbol.for(U);if(!(T in c))c[T]=L();return c[T]};function TU(){return D("@swarm.ing/pieui:mitt-emitter",()=>LU.default())}var cU=D("@swarm.ing/pieui:context:mitt",()=>j.createContext(null));var IU=cU;var zU=require("socket.io-client"),JU=require("react");var $U=D("@swarm.ing/pieui:socket-cache",()=>new Map),DU=(U)=>{let L=$U.get(U);if(L)return L;let T=zU.io(U,{autoConnect:!1,transports:["websocket"]});return $U.set(U,T),T},oU=D("@swarm.ing/pieui:context:socket",()=>JU.createContext(null)),M=oU;var NU=require("react"),o=require("centrifuge");var HU=D("@swarm.ing/pieui:centrifuge-cache",()=>new Map),ZU=(U,L)=>{if(!L)return null;let T=`${U}::${L}`,$=HU.get(T);if($)return $;async function z(){let J=await fetch(U+"api/centrifuge/gen_token");if(!J.ok){if(J.status===403)throw new o.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${J.status}`)}return(await J.json()).token}let I=new o.Centrifuge(L,{getToken:z});return HU.set(T,I),I},gU=D("@swarm.ing/pieui:context:centrifuge",()=>NU.createContext(null)),P=gU;var d=require("react");var w=require("react"),A=new Map,y=new Map;function k(U,L){let T=`${U}::${L}`,$=U?A.get(T):void 0,[z,I]=w.useState($??null);return w.useEffect(()=>{if(!U)return;if(A.has(T)){I(A.get(T));return}let J=y.get(T);if(!J)J=fetch(U+`api/support/${L}`,{method:"GET"}).then((N)=>N.json()).then((N)=>{return A.set(T,N),y.delete(T),N}).catch((N)=>{throw y.delete(T),N}),y.set(T,J);let Z=!1;return J.then((N)=>{if(!Z)I(N)}).catch(()=>{}),()=>{Z=!0}},[U,L,T]),z}var m=require("react");var g=D("@swarm.ing/pieui:context:pieConfig",()=>m.createContext(null)),h=()=>{let U=m.useContext(g);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},l=()=>{let{apiServer:U}=h();return U},C=l,VU=()=>{let{centrifugeServer:U}=h();return U};var F=()=>{let{enableRenderingLog:U}=h();return U};var hU=D("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function YU(){hU.resolve?.()}var lU=({children:U})=>{let L=d.useContext(M),T=C(),$=k(T,"socketIO"),z=(I)=>{if(typeof window<"u")window.sid=I.sid,YU(),console.log(`SocketIO initialized: ${window.sid}`)};return d.useEffect(()=>{if(!L)return;let I=()=>{console.log("SocketIO connected")},J=(Z)=>{console.log(`SocketIO disconnected: ${Z}`),L.connect()};if($)L.on("pieinit",z),L.on("connect",I),L.on("disconnect",J),L.connect();return()=>{if($)L.off("pieinit",z),L.off("connect",I),L.off("disconnect",J),L.disconnect()}},[L,$]),U},FU=lU;var S=require("react");var pU=({children:U})=>{let L=S.useContext(P),T=C(),$=k(T,"centrifuge");return S.useEffect(()=>{if(!L)return;let z=()=>{console.log("Centrifuge connected")},I=(J)=>{console.log("Centrifuge disconnected:",J)};if($)L.on("connected",z),L.on("disconnected",I),L.connect();return()=>{if($)L.disconnect()}},[L,$]),U},GU=pU;var OU=require("react");var v=require("react/jsx-runtime"),nU=D("@swarm.ing/pieui:context:fallback",()=>OU.createContext(v.jsx(v.Fragment,{}))),G=nU;var QU=require("react");var sU=D("@swarm.ing/pieui:context:lazyError",()=>QU.createContext(void 0)),O=sU;var iU=D("@swarm.ing/pieui:component-registry",()=>new Map);var x=(U)=>{return iU.get(U)};var X=require("react");var b=require("react"),_U=require("react/jsx-runtime"),rU=2,aU=400;class Q extends b.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=aU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((T)=>({failed:!1,attempt:T.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 _U.jsx(b.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var u=require("react/jsx-runtime");function tU({uiConfig:U,setUiAjaxConfiguration:L}){let T=X.useContext(G),$=X.useContext(O),z=F();if(z)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 I=x(U.card);if(!I?.component){if(z)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return T}if(z)console.log("[UI] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata});let J=I.component,Z=u.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if(I.isLazy){if(z)console.log("[UI] Rendering lazy component with Suspense:",I.name);return u.jsx(Q,{name:I.name,fallback:I.fallback?u.jsx(I.fallback,{}):T,onError:$,children:Z})}if(z)console.log("[UI] Rendering component directly:",I.name);return Z}var p=X.memo(tU);var AU=require("axios-date-transformer");var B=require("react"),V=()=>{let[U,L]=B.useState(null);return B.useEffect(()=>{if(typeof window>"u")return;let T=window.WebApp;if(!T)return;T.ready(),L(T)},[]),U},qU=()=>{let U=V();return[U?.initDataUnsafe,U?.initData]},RU=(U)=>{let L=V();return B.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},EU=()=>{return V()?.HapticFeedback??null};var KU=require("react");var eU=D("@swarm.ing/pieui:context:navigate",()=>KU.createContext(void 0)),XU=eU;var n=require("react");var BU=require("react");var UL=D("@swarm.ing/pieui:context:uiRenderer",()=>BU.createContext(null)),WU=UL;var W=require("react/jsx-runtime");function fU({uiConfig:U,setUiAjaxConfiguration:L}){let T=n.useContext(G),$=n.useContext(O),z=F();if(z)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 I=x(U.card);if(!I?.component){if(z)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return T}if(z)console.log("[UILoading] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata,hasFallback:!!I.fallback});if(I.fallback){if(z)console.log("[UILoading] Rendering fallback for:",I.name);let N=I.fallback;return W.jsx(N,{})}if(z)console.log("[UILoading] No fallback, rendering full component:",I.name);let J=I.component,Z=W.jsx(WU.Provider,{value:fU,children:W.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if(I.isLazy)return W.jsx(Q,{name:I.name,fallback:T,onError:$,children:Z});return Z}var jU=fU;var PU=require("react/jsx-runtime");function MU(U,L,T){if(!L)return T;let $=U.replace(/^\//,""),z=L[$];if(!z)return T;return PU.jsx(jU,{uiConfig:z})}var H=require("react/jsx-runtime"),LL=({location:U,fallback:L,piecache:T,onError:$,queryOptions:z,disableGlobalForm:I})=>{let J=l(),Z=VU(),N=F(),wU=_.useMemo(()=>AU.createAxiosDateTransformer({baseURL:J}),[J]),kU=_.useMemo(()=>TU(),[]),mU=_.useMemo(()=>J?DU(J):null,[J]),CU=_.useMemo(()=>J?ZU(J,Z):null,[J,Z]),f=V(),{data:R,isLoading:s,error:Y}=q.useQuery({queryKey:["uiConfig",U.pathname+U.search,f?.initData],queryFn:async()=>{let E=new URLSearchParams(U.search);if(E.set("__pieroot","max"),f?.initData)E.set("initData",f.initData);let r="/api/content"+U.pathname+"?"+E.toString();if(N)console.log("[PieRoot] Fetching UI configuration from:",r);let a=await wU.get(r,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(N)console.log("[PieRoot] Received UI configuration:",a.data);return a.data},enabled:!!f?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(E)=>Math.min(1000*2**E,30000),...z}),i=MU(U.pathname,T,L);if(!J)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(Y&&N)return console.error("[PieRoot] Error fetching UI configuration:",Y),console.error("[PieRoot] Error details:",{message:Y.message,status:Y.response?.status,data:Y.response?.data}),$?.(Y),i;if(s||!R){if(N)console.log("[PieRoot] Loading state:",{isLoading:s,hasUiConfiguration:!!R});return i}if(N)console.log("[PieRoot] UI configuration loaded successfully:",R),console.log("[PieRoot] Rendering UI with configuration");return H.jsx(IU.Provider,{value:kU,children:H.jsx(M.Provider,{value:mU,children:H.jsx(P.Provider,{value:CU,children:H.jsx(G.Provider,{value:L??H.jsx(H.Fragment,{}),children:H.jsx(FU,{children:H.jsx(GU,{children:I?H.jsx(p,{uiConfig:R}):H.jsx("form",{id:"piedata_global_form",action:J+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:H.jsx(p,{uiConfig:R})})})})})})})})},TL=(U)=>{let L=_.useMemo(()=>new q.QueryClient,[]),T=U.queryClient??L;return H.jsx(XU.Provider,{value:U.onNavigate,children:H.jsx(g.Provider,{value:U.config,children:H.jsx(O.Provider,{value:U.onError,children:H.jsx(q.QueryClientProvider,{client:T,children:H.jsx(LL,{...U})})})})})},yU=TL;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{useMemo as
|
|
2
|
+
import{useMemo as R}from"react";import{QueryClient as iU,QueryClientProvider as rU,useQuery as aU}from"@tanstack/react-query";import VU from"mitt";import{createContext as ZU,useCallback as NL,useContext as VL}from"react";var P=globalThis,N=(U,L)=>{let I=Symbol.for(U);if(!(I in P))P[I]=L();return P[I]};function v(){return N("@swarm.ing/pieui:mitt-emitter",()=>VU())}var BU=N("@swarm.ing/pieui:context:mitt",()=>ZU(null));var u=BU;import{io as FU}from"socket.io-client";import{createContext as XU}from"react";var c=N("@swarm.ing/pieui:socket-cache",()=>new Map),o=(U)=>{let L=c.get(U);if(L)return L;let I=FU(U,{autoConnect:!1,transports:["websocket"]});return c.set(U,I),I},YU=N("@swarm.ing/pieui:context:socket",()=>XU(null)),_=YU;import{createContext as DU}from"react";import{Centrifuge as h}from"centrifuge";var g=N("@swarm.ing/pieui:centrifuge-cache",()=>new Map),l=(U,L)=>{if(!L)return null;let I=`${U}::${L}`,J=g.get(I);if(J)return J;async function z(){let H=await fetch(U+"api/centrifuge/gen_token");if(!H.ok){if(H.status===403)throw new h.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${H.status}`)}return(await H.json()).token}let $=new h(L,{getToken:z});return g.set(I,$),$},GU=N("@swarm.ing/pieui:context:centrifuge",()=>DU(null)),q=GU;import{useContext as qU,useEffect as KU}from"react";import{useEffect as OU,useState as QU}from"react";var K=new Map,W=new Map;function E(U,L){let I=`${U}::${L}`,J=U?K.get(I):void 0,[z,$]=QU(J??null);return OU(()=>{if(!U)return;if(K.has(I)){$(K.get(I));return}let H=W.get(I);if(!H)H=fetch(U+`api/support/${L}`,{method:"GET"}).then((V)=>V.json()).then((V)=>{return K.set(I,V),W.delete(I),V}).catch((V)=>{throw W.delete(I),V}),W.set(I,H);let B=!1;return H.then((V)=>{if(!B)$(V)}).catch(()=>{}),()=>{B=!0}},[U,L,I]),z}import{createContext as RU,useContext as TU}from"react";var w=N("@swarm.ing/pieui:context:pieConfig",()=>RU(null)),M=()=>{let U=TU(w);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},y=()=>{let{apiServer:U}=M();return U},f=y,p=()=>{let{centrifugeServer:U}=M();return U};var X=()=>{let{enableRenderingLog:U}=M();return U};var n=()=>{let{pageProcessor:U}=M();return U};var _U=N("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function s(){_U.resolve?.()}var WU=({children:U})=>{let L=qU(_),I=f(),J=E(I,"socketIO"),z=($)=>{if(typeof window<"u")window.sid=$.sid,s(),console.log(`SocketIO initialized: ${window.sid}`)};return KU(()=>{if(!L)return;let $=()=>{console.log("SocketIO connected")},H=(B)=>{console.log(`SocketIO disconnected: ${B}`),L.connect()};if(J)L.on("pieinit",z),L.on("connect",$),L.on("disconnect",H),L.connect();return()=>{if(J)L.off("pieinit",z),L.off("connect",$),L.off("disconnect",H),L.disconnect()}},[L,J]),U},i=WU;import{useContext as EU,useEffect as MU}from"react";var fU=({children:U})=>{let L=EU(q),I=f(),J=E(I,"centrifuge");return MU(()=>{if(!L)return;let z=()=>{console.log("Centrifuge connected")},$=(H)=>{console.log("Centrifuge disconnected:",H)};if(J)L.on("connected",z),L.on("disconnected",$),L.connect();return()=>{if(J)L.disconnect()}},[L,J]),U},r=fU;import{createContext as AU}from"react";import{jsx as PU,Fragment as kU}from"react/jsx-runtime";var jU=N("@swarm.ing/pieui:context:fallback",()=>AU(PU(kU,{}))),Y=jU;import{createContext as wU}from"react";var yU=N("@swarm.ing/pieui:context:lazyError",()=>wU(void 0)),D=yU;var mU=N("@swarm.ing/pieui:component-registry",()=>new Map);var A=(U)=>{return mU.get(U)};import{useContext as a,memo as vU}from"react";import{Component as CU,Suspense as xU}from"react";import{jsx as SU}from"react/jsx-runtime";var bU=2,dU=400;class G extends CU{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<bU){let L=dU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((I)=>({failed:!1,attempt:I.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 SU(xU,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as m}from"react/jsx-runtime";function uU({uiConfig:U,setUiAjaxConfiguration:L}){let I=a(Y),J=a(D),z=X();if(z)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(z)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return I}if(z)console.log("[UI] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata});let H=$.component,B=m(H,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if($.isLazy){if(z)console.log("[UI] Rendering lazy component with Suspense:",$.name);return m(G,{name:$.name,fallback:$.fallback?m($.fallback,{}):I,onError:J,children:B})}if(z)console.log("[UI] Rendering component directly:",$.name);return B}var C=vU(uU);import{createAxiosDateTransformer as tU}from"axios-date-transformer";import{useEffect as cU,useState as oU}from"react";var j=({onError:U}={})=>{let[L,I]=oU(null),J=n();return cU(()=>{if(typeof window>"u")return;let z=window.Telegram?.WebApp;if(!z)return;try{z.ready?.()}catch($){U?.()}if(J==="telegram_expanded"&&(z.platform==="ios"||z.platform==="android"))z.expand();I(z)},[]),L},hU=()=>{let U=j();return[U?.initDataUnsafe,U?.initData]};import{createContext as gU}from"react";var lU=N("@swarm.ing/pieui:context:navigate",()=>gU(void 0)),t=lU;import{useContext as UU}from"react";import{createContext as pU}from"react";var nU=N("@swarm.ing/pieui:context:uiRenderer",()=>pU(null)),e=nU;import{jsx as k}from"react/jsx-runtime";function LU({uiConfig:U,setUiAjaxConfiguration:L}){let I=UU(Y),J=UU(D),z=X();if(z)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(z)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return I}if(z)console.log("[UILoading] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata,hasFallback:!!$.fallback});if($.fallback){if(z)console.log("[UILoading] Rendering fallback for:",$.name);let V=$.fallback;return k(V,{})}if(z)console.log("[UILoading] No fallback, rendering full component:",$.name);let H=$.component,B=k(e.Provider,{value:LU,children:k(H,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if($.isLazy)return k(G,{name:$.name,fallback:I,onError:J,children:B});return B}var IU=LU;import{jsx as sU}from"react/jsx-runtime";function $U(U,L,I){if(!L)return I;let J=U.replace(/^\//,""),z=L[J];if(!z)return I;return sU(IU,{uiConfig:z})}import{jsx as Z,Fragment as LL}from"react/jsx-runtime";var eU=({location:U,fallback:L,piecache:I,onError:J,queryOptions:z,disableGlobalForm:$})=>{let H=y(),B=p(),V=X(),zU=R(()=>tU({baseURL:H}),[H]),HU=R(()=>v(),[]),JU=R(()=>H?o(H):null,[H]),NU=R(()=>H?l(H,B):null,[H,B]),T=j({onError:J}),{data:O,isLoading:x,error:F}=aU({queryKey:["uiConfig",U.pathname+U.search,T?.initData],enabled:!!T?.initData,queryFn:async()=>{let Q=new URLSearchParams(U.search);if(Q.set("__pieroot","telegram"),T?.initData)Q.set("initData",T.initData);let d="/api/content"+U.pathname+"?"+Q.toString();if(V)console.log("[PieRoot] Fetching UI configuration from:",d);let S=await zU.get(d,{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:",S.data);return S.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(Q)=>Math.min(1000*2**Q,30000),...z}),b=$U(U.pathname,I,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),b;if(x||!O){if(V)console.log("[PieRoot] Loading state:",{isLoading:x,hasUiConfiguration:!!O});return b}if(V)console.log("[PieRoot] UI configuration loaded successfully:",O),console.log("[PieRoot] Rendering UI with configuration");return Z(u.Provider,{value:HU,children:Z(_.Provider,{value:JU,children:Z(q.Provider,{value:NU,children:Z(Y.Provider,{value:L??Z(LL,{}),children:Z(i,{children:Z(r,{children:$?Z(C,{uiConfig:O}):Z("form",{id:"piedata_global_form",action:H+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:Z(C,{uiConfig:O})})})})})})})})},UL=(U)=>{let L=R(()=>new iU,[]),I=U.queryClient??L;return Z(t.Provider,{value:U.onNavigate,children:Z(w.Provider,{value:U.config,children:Z(D.Provider,{value:U.onError,children:Z(rU,{client:I,children:Z(eU,{...U})})})})})},IL=UL;export{j as useWebApp,hU as useInitData,IL as PieTelegramRoot};
|
package/dist/telegram/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
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;
|
|
2
|
+
var CU=Object.create;var{getPrototypeOf:xU,defineProperty:_,getOwnPropertyNames:e,getOwnPropertyDescriptor:bU}=Object,UU=Object.prototype.hasOwnProperty;var dU=(U,L,I)=>{I=U!=null?CU(xU(U)):{};let H=L||!U||!U.__esModule?_(I,"default",{value:U,enumerable:!0}):I;for(let z of e(U))if(!UU.call(H,z))_(H,z,{get:()=>U[z],enumerable:!0});return H},t=new WeakMap,SU=(U)=>{var L=t.get(U),I;if(L)return L;if(L=_({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function")e(U).map((H)=>!UU.call(L,H)&&_(L,H,{get:()=>U[H],enumerable:!(I=bU(U,H))||I.enumerable}));return t.set(U,L),L};var vU=(U,L)=>{for(var I in L)_(U,I,{get:L[I],enumerable:!0,configurable:!0,set:(H)=>L[I]=()=>H})};var IL={};vU(IL,{useWebApp:()=>K,useInitData:()=>TU,PieTelegramRoot:()=>kU});module.exports=SU(IL);var O=require("react"),Q=require("@tanstack/react-query");var LU=dU(require("mitt")),M=require("react");var o=globalThis,N=(U,L)=>{let I=Symbol.for(U);if(!(I in o))o[I]=L();return o[I]};function IU(){return N("@swarm.ing/pieui:mitt-emitter",()=>LU.default())}var uU=N("@swarm.ing/pieui:context:mitt",()=>M.createContext(null));var $U=uU;var HU=require("socket.io-client"),JU=require("react");var zU=N("@swarm.ing/pieui:socket-cache",()=>new Map),NU=(U)=>{let L=zU.get(U);if(L)return L;let I=HU.io(U,{autoConnect:!1,transports:["websocket"]});return zU.set(U,I),I},cU=N("@swarm.ing/pieui:context:socket",()=>JU.createContext(null)),f=cU;var ZU=require("react"),h=require("centrifuge");var VU=N("@swarm.ing/pieui:centrifuge-cache",()=>new Map),BU=(U,L)=>{if(!L)return null;let I=`${U}::${L}`,H=VU.get(I);if(H)return H;async function z(){let J=await fetch(U+"api/centrifuge/gen_token");if(!J.ok){if(J.status===403)throw new h.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${J.status}`)}return(await J.json()).token}let $=new h.Centrifuge(L,{getToken:z});return VU.set(I,$),$},oU=N("@swarm.ing/pieui:context:centrifuge",()=>ZU.createContext(null)),A=oU;var x=require("react");var P=require("react"),j=new Map,k=new Map;function w(U,L){let I=`${U}::${L}`,H=U?j.get(I):void 0,[z,$]=P.useState(H??null);return P.useEffect(()=>{if(!U)return;if(j.has(I)){$(j.get(I));return}let J=k.get(I);if(!J)J=fetch(U+`api/support/${L}`,{method:"GET"}).then((Z)=>Z.json()).then((Z)=>{return j.set(I,Z),k.delete(I),Z}).catch((Z)=>{throw k.delete(I),Z}),k.set(I,J);let B=!1;return J.then((Z)=>{if(!B)$(Z)}).catch(()=>{}),()=>{B=!0}},[U,L,I]),z}var y=require("react");var g=N("@swarm.ing/pieui:context:pieConfig",()=>y.createContext(null)),m=()=>{let U=y.useContext(g);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},l=()=>{let{apiServer:U}=m();return U},C=l,FU=()=>{let{centrifugeServer:U}=m();return U};var X=()=>{let{enableRenderingLog:U}=m();return U};var XU=()=>{let{pageProcessor:U}=m();return U};var hU=N("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function YU(){hU.resolve?.()}var gU=({children:U})=>{let L=x.useContext(f),I=C(),H=w(I,"socketIO"),z=($)=>{if(typeof window<"u")window.sid=$.sid,YU(),console.log(`SocketIO initialized: ${window.sid}`)};return x.useEffect(()=>{if(!L)return;let $=()=>{console.log("SocketIO connected")},J=(B)=>{console.log(`SocketIO disconnected: ${B}`),L.connect()};if(H)L.on("pieinit",z),L.on("connect",$),L.on("disconnect",J),L.connect();return()=>{if(H)L.off("pieinit",z),L.off("connect",$),L.off("disconnect",J),L.disconnect()}},[L,H]),U},DU=gU;var b=require("react");var lU=({children:U})=>{let L=b.useContext(A),I=C(),H=w(I,"centrifuge");return b.useEffect(()=>{if(!L)return;let z=()=>{console.log("Centrifuge connected")},$=(J)=>{console.log("Centrifuge disconnected:",J)};if(H)L.on("connected",z),L.on("disconnected",$),L.connect();return()=>{if(H)L.disconnect()}},[L,H]),U},GU=lU;var OU=require("react");var d=require("react/jsx-runtime"),pU=N("@swarm.ing/pieui:context:fallback",()=>OU.createContext(d.jsx(d.Fragment,{}))),Y=pU;var QU=require("react");var nU=N("@swarm.ing/pieui:context:lazyError",()=>QU.createContext(void 0)),D=nU;var sU=N("@swarm.ing/pieui:component-registry",()=>new Map);var S=(U)=>{return sU.get(U)};var q=require("react");var v=require("react"),RU=require("react/jsx-runtime"),iU=2,rU=400;class G extends v.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<iU){let L=rU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((I)=>({failed:!1,attempt:I.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 RU.jsx(v.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var u=require("react/jsx-runtime");function aU({uiConfig:U,setUiAjaxConfiguration:L}){let I=q.useContext(Y),H=q.useContext(D),z=X();if(z)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 $=S(U.card);if(!$?.component){if(z)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return I}if(z)console.log("[UI] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata});let J=$.component,B=u.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if($.isLazy){if(z)console.log("[UI] Rendering lazy component with Suspense:",$.name);return u.jsx(G,{name:$.name,fallback:$.fallback?u.jsx($.fallback,{}):I,onError:H,children:B})}if(z)console.log("[UI] Rendering component directly:",$.name);return B}var p=q.memo(aU);var jU=require("axios-date-transformer");var c=require("react");var K=({onError:U}={})=>{let[L,I]=c.useState(null),H=XU();return c.useEffect(()=>{if(typeof window>"u")return;let z=window.Telegram?.WebApp;if(!z)return;try{z.ready?.()}catch($){U?.()}if(H==="telegram_expanded"&&(z.platform==="ios"||z.platform==="android"))z.expand();I(z)},[]),L},TU=()=>{let U=K();return[U?.initDataUnsafe,U?.initData]};var _U=require("react");var tU=N("@swarm.ing/pieui:context:navigate",()=>_U.createContext(void 0)),qU=tU;var n=require("react");var KU=require("react");var eU=N("@swarm.ing/pieui:context:uiRenderer",()=>KU.createContext(null)),WU=eU;var W=require("react/jsx-runtime");function EU({uiConfig:U,setUiAjaxConfiguration:L}){let I=n.useContext(Y),H=n.useContext(D),z=X();if(z)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 $=S(U.card);if(!$?.component){if(z)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return I}if(z)console.log("[UILoading] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata,hasFallback:!!$.fallback});if($.fallback){if(z)console.log("[UILoading] Rendering fallback for:",$.name);let Z=$.fallback;return W.jsx(Z,{})}if(z)console.log("[UILoading] No fallback, rendering full component:",$.name);let J=$.component,B=W.jsx(WU.Provider,{value:EU,children:W.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if($.isLazy)return W.jsx(G,{name:$.name,fallback:I,onError:H,children:B});return B}var MU=EU;var AU=require("react/jsx-runtime");function fU(U,L,I){if(!L)return I;let H=U.replace(/^\//,""),z=L[H];if(!z)return I;return AU.jsx(MU,{uiConfig:z})}var V=require("react/jsx-runtime"),UL=({location:U,fallback:L,piecache:I,onError:H,queryOptions:z,disableGlobalForm:$})=>{let J=l(),B=FU(),Z=X(),PU=O.useMemo(()=>jU.createAxiosDateTransformer({baseURL:J}),[J]),wU=O.useMemo(()=>IU(),[]),yU=O.useMemo(()=>J?NU(J):null,[J]),mU=O.useMemo(()=>J?BU(J,B):null,[J,B]),E=K({onError:H}),{data:R,isLoading:s,error:F}=Q.useQuery({queryKey:["uiConfig",U.pathname+U.search,E?.initData],enabled:!!E?.initData,queryFn:async()=>{let T=new URLSearchParams(U.search);if(T.set("__pieroot","telegram"),E?.initData)T.set("initData",E.initData);let r="/api/content"+U.pathname+"?"+T.toString();if(Z)console.log("[PieRoot] Fetching UI configuration from:",r);let a=await PU.get(r,{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:(T)=>Math.min(1000*2**T,30000),...z}),i=fU(U.pathname,I,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),i;if(s||!R){if(Z)console.log("[PieRoot] Loading state:",{isLoading:s,hasUiConfiguration:!!R});return i}if(Z)console.log("[PieRoot] UI configuration loaded successfully:",R),console.log("[PieRoot] Rendering UI with configuration");return V.jsx($U.Provider,{value:wU,children:V.jsx(f.Provider,{value:yU,children:V.jsx(A.Provider,{value:mU,children:V.jsx(Y.Provider,{value:L??V.jsx(V.Fragment,{}),children:V.jsx(DU,{children:V.jsx(GU,{children:$?V.jsx(p,{uiConfig:R}):V.jsx("form",{id:"piedata_global_form",action:J+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:V.jsx(p,{uiConfig:R})})})})})})})})},LL=(U)=>{let L=O.useMemo(()=>new Q.QueryClient,[]),I=U.queryClient??L;return V.jsx(qU.Provider,{value:U.onNavigate,children:V.jsx(g.Provider,{value:U.config,children:V.jsx(D.Provider,{value:U.onError,children:V.jsx(Q.QueryClientProvider,{client:I,children:V.jsx(UL,{...U})})})})})},kU=LL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"centrifuge.d.ts","sourceRoot":"","sources":["../../src/util/centrifuge.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"centrifuge.d.ts","sourceRoot":"","sources":["../../src/util/centrifuge.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAQvC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa,GACtB,WAAW,MAAM,EACjB,mBAAmB,MAAM,KAC1B,UAAU,GAAG,IAwBf,CAAA;AAED;;;;GAIG;AACH,QAAA,MAAM,mBAAmB,4CAGxB,CAAA;AACD,eAAe,mBAAmB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../../src/util/fallback.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../../src/util/fallback.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAGhD;;;;;GAKG;AACH,QAAA,MAAM,eAAe,oCAGpB,CAAA;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalSingleton.d.ts","sourceRoot":"","sources":["../../src/util/globalSingleton.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,MAAM,MAAM,EAAE,QAAQ,MAAM,CAAC,KAAG,CAMlE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazyError.d.ts","sourceRoot":"","sources":["../../src/util/lazyError.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lazyError.d.ts","sourceRoot":"","sources":["../../src/util/lazyError.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB,mCAEW,OAAO,KAAK,IAAI,cAChD,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
package/dist/util/mitt.d.ts
CHANGED
|
@@ -14,6 +14,9 @@ export type MittEvents = {
|
|
|
14
14
|
* Prefer {@link usePieEmit} from within React components — it honours the
|
|
15
15
|
* provider-supplied emitter from `MittContext` when one is available.
|
|
16
16
|
*
|
|
17
|
+
* The emitter is stashed on `globalThis` so every pre-bundled entry point shares
|
|
18
|
+
* the same instance and events emitted from one bundle reach listeners in another.
|
|
19
|
+
*
|
|
17
20
|
* @returns The process-wide Mitt emitter instance.
|
|
18
21
|
*/
|
|
19
22
|
export declare function getEmitter(): Emitter<MittEvents>;
|
package/dist/util/mitt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mitt.d.ts","sourceRoot":"","sources":["../../src/util/mitt.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"mitt.d.ts","sourceRoot":"","sources":["../../src/util/mitt.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAIpC;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAIhD;AAED;;;;;GAKG;AACH,QAAA,MAAM,WAAW,qDAGhB,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,gBAGlB,MAAM,YAAY,GAAG,UAKzC;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../../src/util/navigate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../../src/util/navigate.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAElD;;;;;GAKG;AACH,QAAA,MAAM,eAAe,uDAGpB,CAAA;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pieConfig.d.ts","sourceRoot":"","sources":["../../src/util/pieConfig.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"pieConfig.d.ts","sourceRoot":"","sources":["../../src/util/pieConfig.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGpC;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,2CAG5B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,iBAMxB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,cAGxB,CAAA;AAED,6CAA6C;AAC7C,eAAO,MAAM,YAAY,cAAe,CAAA;AAExC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,0BAG/B,CAAA;AAED,oDAAoD;AACpD,eAAO,MAAM,mBAAmB,0BAAsB,CAAA;AAEtD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,2BAGpC,CAAA;AAED,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,2BAA2B,CAAA;AAE7D;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,0BAG5B,CAAA;AAED,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,0BAAmB,CAAA;AAEhD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,gBAAgB,CAAA"}
|
package/dist/util/registry.d.ts
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
import { ComponentMetadata, ComponentRegistration } from '../types';
|
|
2
2
|
import { ComponentType } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Central in-memory registry of PieUI components keyed by their name. Every
|
|
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
|
+
* The `Map` is stashed on `globalThis` under a shared `Symbol.for` key (via
|
|
10
|
+
* {@link globalSingleton}) so that every copy of this module resolves to the
|
|
11
|
+
* SAME instance. `registry.ts` gets inlined into each pre-bundled entry point
|
|
12
|
+
* (main, `/components`, `/telegram`, `/max`, `/agent`), and without a shared
|
|
13
|
+
* backing store each bundle would own a separate `Map`. A component registered
|
|
14
|
+
* via one entry (`import "@swarm.ing/pieui/components"`) would then be invisible
|
|
15
|
+
* to a renderer loaded from another (`PieTelegramRoot` from
|
|
16
|
+
* `@swarm.ing/pieui/telegram`), surfacing as "[UI] Component not found in
|
|
17
|
+
* registry".
|
|
18
|
+
*/
|
|
3
19
|
type RegistryMap = Map<string, ComponentRegistration<any>>;
|
|
4
20
|
export declare const registry: RegistryMap;
|
|
5
21
|
/**
|
|
@@ -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;AAGrC;;;;;;;;;;;;;;;GAeG;AACH,KAAK,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;AAE1D,eAAO,MAAM,QAAQ,EAAE,WAGtB,CAAA;AAwCD;;;;;;;;;;;;;;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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/util/socket.ts"],"names":[],"mappings":"AAEA,OAAO,EAAM,MAAM,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/util/socket.ts"],"names":[],"mappings":"AAEA,OAAO,EAAM,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAS7C;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,SAAS,GAAI,WAAW,MAAM,KAAG,MAU7C,CAAA;AAED;;;;GAIG;AACH,QAAA,MAAM,eAAe,0JAGpB,CAAA;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiRenderer.d.ts","sourceRoot":"","sources":["../../src/util/uiRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"uiRenderer.d.ts","sourceRoot":"","sources":["../../src/util/uiRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGnE;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,EAAE,YAAY,CAAA;IACtB,sBAAsB,CAAC,EAAE,0BAA0B,CAAA;CACtD,CAAA;AAED;;;;;GAKG;AACH,QAAA,MAAM,iBAAiB,gEAGtB,CAAA;AAED,eAAe,iBAAiB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waitForSidAvailable.d.ts","sourceRoot":"","sources":["../../src/util/waitForSidAvailable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"waitForSidAvailable.d.ts","sourceRoot":"","sources":["../../src/util/waitForSidAvailable.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,wBAAgB,gBAAgB,SAE/B;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAe3D"}
|