@swarm.ing/pieui 2.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/cli.js +17 -19
  2. package/dist/code/introspection/cardMetadata.d.ts.map +1 -1
  3. package/dist/code/templates/componentTypes.d.ts.map +1 -1
  4. package/dist/code/templates/pages/components/shared.d.ts.map +1 -1
  5. package/dist/components/PieCard/index.d.ts.map +1 -1
  6. package/dist/components/PieCard/types/index.d.ts +6 -4
  7. package/dist/components/PieCard/types/index.d.ts.map +1 -1
  8. package/dist/components/index.esm.js +1 -1
  9. package/dist/components/index.js +1 -1
  10. package/dist/index.d.ts +4 -4
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.esm.js +2 -2
  13. package/dist/index.js +2 -2
  14. package/dist/max/index.esm.js +1 -1
  15. package/dist/max/index.js +1 -1
  16. package/dist/native/PieNativeRoot.d.ts +10 -9
  17. package/dist/native/PieNativeRoot.d.ts.map +1 -1
  18. package/dist/native/index.d.ts +2 -2
  19. package/dist/native/index.d.ts.map +1 -1
  20. package/dist/native/index.esm.js +2 -2
  21. package/dist/native/index.js +2 -2
  22. package/dist/providers/CentrifugeIOInitProvider.d.ts.map +1 -1
  23. package/dist/providers/SocketIOInitProvider.d.ts.map +1 -1
  24. package/dist/telegram/index.esm.js +1 -1
  25. package/dist/telegram/index.js +1 -1
  26. package/dist/tests/ajaxStoredResolver.test.d.ts +8 -0
  27. package/dist/tests/ajaxStoredResolver.test.d.ts.map +1 -0
  28. package/dist/tests/discoverAjaxEndpoints.test.d.ts +7 -0
  29. package/dist/tests/discoverAjaxEndpoints.test.d.ts.map +1 -0
  30. package/dist/tests/linkStatus.test.d.ts +2 -0
  31. package/dist/tests/linkStatus.test.d.ts.map +1 -0
  32. package/dist/types/index.d.ts +19 -4
  33. package/dist/types/index.d.ts.map +1 -1
  34. package/dist/util/ajaxCommonUtils.d.ts +38 -0
  35. package/dist/util/ajaxCommonUtils.d.ts.map +1 -1
  36. package/dist/util/linkStatus.d.ts +33 -0
  37. package/dist/util/linkStatus.d.ts.map +1 -0
  38. package/dist/util/pieConfig.d.ts +11 -0
  39. package/dist/util/pieConfig.d.ts.map +1 -1
  40. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- var b$=Object.create;var{getPrototypeOf:v$,defineProperty:HU,getOwnPropertyNames:XZ,getOwnPropertyDescriptor:m$}=Object,YZ=Object.prototype.hasOwnProperty;var BZ=(U,Z,$)=>{$=U!=null?b$(v$(U)):{};let z=Z||!U||!U.__esModule?HU($,"default",{value:U,enumerable:!0}):$;for(let T of XZ(U))if(!YZ.call(z,T))HU(z,T,{get:()=>U[T],enumerable:!0});return z},GZ=new WeakMap,p$=(U)=>{var Z=GZ.get(U),$;if(Z)return Z;if(Z=HU({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function")XZ(U).map((z)=>!YZ.call(Z,z)&&HU(Z,z,{get:()=>U[z],enumerable:!($=m$(U,z))||$.enumerable}));return GZ.set(U,Z),Z};var h$=(U,Z)=>{for(var $ in Z)HU(U,$,{get:Z[$],enumerable:!0,configurable:!0,set:(z)=>Z[$]=()=>z})};var xz={};h$(xz,{usePieEmit:()=>KZ,useAjaxSubmit:()=>N$,unregisterComponent:()=>jZ,trackLazy:()=>KU,submitGlobalForm:()=>f$,registry:()=>y,registerPieComponent:()=>F,registerMultipleComponents:()=>EZ,readAjaxKeyAsync:()=>JZ,readAjaxKey:()=>TZ,preloadComponent:()=>sU,prefetchLazyComponents:()=>yZ,pieName:()=>x$,parseDepName:()=>OU,hasComponent:()=>CZ,getRegistrySize:()=>kZ,getRegistryEntry:()=>t,getLazyComponentNames:()=>iU,getEmitter:()=>o,getComponentMeta:()=>fZ,getAllRegisteredComponents:()=>xZ,cn:()=>C$,UnionCard:()=>oZ,UIRendererContext:()=>C,UILoading:()=>RU,UI:()=>N,SocketIOContext:()=>b,SessionStorageCard:()=>H$,SequenceCard:()=>uZ,PieRoot:()=>hU,PiePreviewRoot:()=>L$,PieConfigContext:()=>c,PieCard:()=>M,PieBaseRoot:()=>M$,PIEBREAK:()=>_U,OneOfCard:()=>O$,MittContext:()=>v,IOEventsCard:()=>$$,HiddenCard:()=>tZ,HTMLEmbedCard:()=>rZ,FallbackContext:()=>j,DeviceStorageCard:()=>J$,CentrifugeIOContext:()=>S,BoxCard:()=>Y$,AutoRedirectCard:()=>U$,AjaxGroupCard:()=>G$});module.exports=p$(xz);var k=require("react");var QU=require("react");var oU=globalThis,A=(U,Z)=>{let $=Symbol.for(U);if(!($ in oU))oU[$]=Z();return oU[$]};var c=A("@swarm.ing/pieui:context:pieConfig",()=>QU.createContext(null)),TU=()=>{let U=QU.useContext(c);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},JU=()=>{let{apiServer:U}=TU();return U},WU=JU,DU=()=>{let{centrifugeServer:U}=TU();return U};var p=()=>{let{enableRenderingLog:U}=TU();return U},qZ=p;var _U="__piedemo__";var QZ=require("react"),lU=require("centrifuge");var OZ=A("@swarm.ing/pieui:centrifuge-cache",()=>new Map),VU=(U,Z)=>{if(!Z)return null;let $=`${U}::${Z}`,z=OZ.get($);if(z)return z;async function T(){let J=await fetch(U+"api/centrifuge/gen_token",{credentials:"include"});if(!J.ok){if(J.status===401||J.status===403)throw new lU.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${J.status}`)}return(await J.json()).token}let H=new lU.Centrifuge(Z,{getToken:T});return OZ.set($,H),H},g$=A("@swarm.ing/pieui:context:centrifuge",()=>QZ.createContext(null)),S=g$;var DZ=require("socket.io-client"),_Z=require("react");var WZ=A("@swarm.ing/pieui:socket-cache",()=>new Map),FU=(U)=>{let Z=WZ.get(U);if(Z)return Z;let $=DZ.io(U,{autoConnect:!1,transports:["websocket"]});return WZ.set(U,$),$},u$=A("@swarm.ing/pieui:context:socket",()=>_Z.createContext(null)),b=u$;var VZ=BZ(require("mitt")),r=require("react");function o(){return A("@swarm.ing/pieui:mitt-emitter",()=>VZ.default())}var FZ=A("@swarm.ing/pieui:context:mitt",()=>r.createContext(null));function KZ(U){let Z=r.useContext(FZ);return r.useCallback(($,z)=>{(Z??o()).emit(`pie${$}_${U}`,z)},[U,Z])}var v=FZ;function AZ(U){return U.wasRecovering===!0&&U.recovered===!1}function PZ(U){return U.recoverable===!1}function MZ(U,Z,$){let z=U.getSubscription(Z);if(z)return{subscription:z,createdHere:!1};return{subscription:U.newSubscription(Z,$),createdHere:!0}}var n=require("react/jsx-runtime"),d$=({card:U,data:Z,children:$,useSocketioSupport:z=!1,useCentrifugeSupport:T=!1,useMittSupport:H=!1,centrifugeChannel:J=void 0,methods:G=void 0,stored:I=void 0,onResync:Y=void 0})=>{let D=qZ(),O=k.useRef(G);O.current=G;let V=k.useRef(Y);if(V.current=Y,D)console.log("[PieCard] Rendering card:",U),console.log("[PieCard] Card data:",Z),console.log("[PieCard] Component name:",Z?.name),console.log("[PieCard] Real-time support:",{socketio:z,centrifuge:T,mitt:H,centrifugeChannel:J}),console.log("[PieCard] Methods:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!$);let B=k.useContext(b),q=k.useContext(S),_=k.useContext(v);if(k.useEffect(()=>{if(!B||!z||!O.current||!Z.name){if(D&&z)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!B,useSocketioSupport:z,hasMethods:!!O.current,hasDataName:!!Z?.name});return}let P=Object.keys(O.current??{}).map((W)=>{let X=`pie${W}_${Z.name}`;if(D)console.log(`[PieCard] Socket.IO registering event: ${X}`);let Q=(x)=>{O.current?.[W]?.(x)};return B.on(X,Q),[X,Q]});return()=>{P.forEach(([W,X])=>{if(D)console.log(`[PieCard] Socket.IO unregistering event: ${W}`);B.off(W,X)})}},[B,Z.name,z]),k.useEffect(()=>{if(!q||!T||!J||!Z.name){if(D&&T)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!q,useCentrifugeSupport:T,hasCentrifugeChannel:!!J,hasMethods:!!O.current,hasDataName:!!Z?.name});return}let P=Object.keys(O.current??{}).map((W)=>{let X=`pie${W}_${Z.name}_${J}`;if(D)console.log(`[PieCard] Centrifuge subscribing to channel: ${X}`);let{subscription:Q,createdHere:x}=MZ(q,X,{recoverable:!0,positioned:!0}),uU=(d)=>{if(D)console.log(`[PieCard] Centrifuge received data on ${X}:`,d.data);O.current?.[W]?.(d.data)},u=(d)=>{if(PZ(d))console.warn(`[PieCard] Centrifuge channel ${X} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(AZ(d)){if(D)console.log(`[PieCard] Centrifuge recovery gap on ${X}; requesting resync`);V.current?.({channel:X,reason:"gap"})}};return Q.on("publication",uU),Q.on("subscribed",u),Q.subscribe(),{subscription:Q,createdHere:x,onPublication:uU,onSubscribed:u}});return()=>{P.forEach(({subscription:W,createdHere:X,onPublication:Q,onSubscribed:x})=>{if(D)console.log("[PieCard] Centrifuge unsubscribing from channel");if(W.off("publication",Q),W.off("subscribed",x),X)W.unsubscribe(),q.removeSubscription(W)})}},[q,J,Z.name,T]),k.useEffect(()=>{if(!_||!H||!Z.name){if(D&&H)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!_,useMittSupport:H,hasMethods:!!O.current,hasDataName:!!Z?.name});return}let K=Object.keys(O.current??{}),P={};return K.forEach((W)=>{let X=`pie${W}_${Z.name}`,Q=(x)=>{if(D)console.log(`[PieCard] Mitt registering event: ${X}`);O.current?.[W]?.(x)};P[X]=Q,_.on(X,Q)}),()=>{Object.entries(P).forEach(([W,X])=>{if(D)console.log(`[PieCard] Mitt unregistering event: ${W}`);_.off(W,X)})}},[_,Z.name,H]),D)console.log("[PieCard] Rendering complete, returning children");if(I!==void 0)return n.jsxs(n.Fragment,{children:[n.jsx("input",{type:"hidden",name:Z.name,value:JSON.stringify(I)}),$]});return $},M=d$;var RZ=require("react"),l=new Map;function LZ(U,Z){return Z.catch(()=>{if(l.get(U)===Z)l.delete(U)}),l.set(U,Z),Z}function KU(U,Z){return RZ.lazy(()=>{if(l.has(Z))return l.get(Z);return LZ(Z,U().then(($)=>$))})}var wZ=async(U,Z)=>{if(!Z)return;if(l.has(U))return l.get(U);return LZ(U,Z().then(($)=>$))};var y=A("@swarm.ing/pieui:component-registry",()=>new Map),c$=(U)=>{if(!U.name)throw Error("Component registration requires a name");if(!U.component&&!U.loader)throw Error(`Component "${U.name}" requires component or loader`);let Z={name:U.name,component:U.component,loader:U.loader,metadata:U.metadata,fallback:U.fallback,isLazy:!1};if(!Z.component&&Z.loader)Z.component=KU(Z.loader,U.name),Z.isLazy=!0;return Z};function F(U){let Z=c$(U);return y.set(Z.name,Z),Z.component}var EZ=(U)=>{U.forEach((Z)=>F(Z))},jZ=(U)=>{y.delete(U)},CZ=(U)=>{return y.has(U)},fZ=(U)=>{return y.get(U)?.metadata},t=(U)=>{return y.get(U)},xZ=()=>{return Array.from(y.keys())},kZ=()=>{return y.size},iU=()=>Array.from(y.values()).filter((U)=>U.isLazy&&typeof U.loader==="function").map((U)=>U.name),sU=(U)=>{let Z=y.get(U);if(!Z?.isLazy||typeof Z.loader!=="function")return;return wZ(U,Z.loader)},NZ=!1,yZ=()=>{if(NZ||typeof window>"u")return;NZ=!0;let U=navigator.connection;if(U?.saveData)return;if(U?.effectiveType&&["slow-2g","2g"].includes(U.effectiveType))return;let Z=iU(),$="requestIdleCallback"in window?(T)=>window.requestIdleCallback(T,{timeout:2000}):(T)=>window.setTimeout(T,300),z=(T)=>{if(T>=Z.length)return;$(()=>{Promise.resolve().then(()=>sU(Z[T])).catch(()=>{}).finally(()=>z(T+1))})};z(0)};var IU=require("react");var SZ=require("react");var AU=require("react/jsx-runtime"),o$=A("@swarm.ing/pieui:context:fallback",()=>SZ.createContext(AU.jsx(AU.Fragment,{}))),j=o$;var bZ=require("react");var l$=A("@swarm.ing/pieui:context:lazyError",()=>bZ.createContext(void 0)),h=l$;var PU=require("react"),vZ=require("react/jsx-runtime"),i$=2,s$=400;class a extends PU.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<i$){let Z=s$*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState(($)=>({failed:!1,attempt:$.attempt+1}))},Z)}}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 vZ.jsx(PU.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var MU=require("react/jsx-runtime");function r$({uiConfig:U,setUiAjaxConfiguration:Z}){let $=IU.useContext(j),z=IU.useContext(h),T=p();if(T)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:",!!Z);let H=t(U.card);if(!H?.component){if(T)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return $}if(T)console.log("[UI] Found component in registry:",{name:H.name,isLazy:H.isLazy,hasMetadata:!!H.metadata});let J=H.component,G=MU.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:Z});if(H.isLazy){if(T)console.log("[UI] Rendering lazy component with Suspense:",H.name);return MU.jsx(a,{name:H.name,fallback:H.fallback?MU.jsx(H.fallback,{}):$,onError:z,children:G})}if(T)console.log("[UI] Rendering component directly:",H.name);return G}var N=IU.memo(r$);var rU=require("react");var mZ=require("react");var n$=A("@swarm.ing/pieui:context:uiRenderer",()=>mZ.createContext(null)),C=n$;var GU=require("react/jsx-runtime");function pZ({uiConfig:U,setUiAjaxConfiguration:Z}){let $=rU.useContext(j),z=rU.useContext(h),T=p();if(T)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:",!!Z);let H=t(U.card);if(!H?.component){if(T)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return $}if(T)console.log("[UILoading] Found component in registry:",{name:H.name,isLazy:H.isLazy,hasMetadata:!!H.metadata,hasFallback:!!H.fallback});if(H.fallback){if(T)console.log("[UILoading] Rendering fallback for:",H.name);let I=H.fallback;return GU.jsx(I,{})}if(T)console.log("[UILoading] No fallback, rendering full component:",H.name);let J=H.component,G=GU.jsx(C.Provider,{value:pZ,children:GU.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:Z})});if(H.isLazy)return GU.jsx(a,{name:H.name,fallback:$,onError:z,children:G});return G}var RU=pZ;var hZ=require("react");var LU=require("react/jsx-runtime"),t$=({data:U,content:Z,setUiAjaxConfiguration:$})=>{let{name:z,sx:T}=U,H=hZ.useContext(C)??N;return LU.jsx(M,{card:z,data:U,children:LU.jsx("div",{style:T,id:z,children:Z.map((J,G)=>{return LU.jsx(H,{uiConfig:J,setUiAjaxConfiguration:$},`children-${G}`)})})})},gZ=t$;var uZ=F({name:"SequenceCard",component:gZ,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var dZ=require("react");var nU=require("react/jsx-runtime"),a$=({data:U,content:Z,setUiAjaxConfiguration:$})=>{let{name:z}=U,T=dZ.useContext(C)??N;return nU.jsx(M,{card:z,data:U,children:Z.map((H,J)=>{return nU.jsx(T,{uiConfig:H,setUiAjaxConfiguration:$},`children-${J}`)})})},cZ=a$;var oZ=F({name:"UnionCard",component:cZ,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var wU=require("react"),lZ=BZ(require("html-react-parser"));var f=require("react");function e$(){let U=new AudioContext,Z=U.createOscillator(),$=Z.connect(U.createMediaStreamDestination());Z.start();let z=$.stream.getAudioTracks()[0];return z.enabled=!1,z}function tU(U=null,Z){let[$,z]=f.useState(!1),T=f.useRef(null),H=f.useRef(null),J=f.useRef(null),G=f.useCallback(async(O,V=!0)=>{if(T.current)I();let B=new RTCPeerConnection;if(B.onconnectionstatechange=()=>{if(B.connectionState==="connected")z(!0);else if(["disconnected","failed","closed"].includes(B.connectionState))z(!1)},B.ontrack=(Q)=>{if(U)U.srcObject=Q.streams[0]},V){let Q=await navigator.mediaDevices.getUserMedia({audio:!0});B.addTrack(Q.getTracks()[0],Q)}else{let Q=e$();B.addTrack(Q)}let q=B.createDataChannel("oai-events");H.current=q,J.current=new Promise((Q)=>{q.addEventListener("open",()=>{Q()})});let _=await B.createOffer();await B.setLocalDescription(_);let X=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:_.sdp,headers:{Authorization:`Bearer ${O}`,"Content-Type":"application/sdp"}})).text();await B.setRemoteDescription({type:"answer",sdp:X}),T.current=B,await J.current},[U]),I=f.useCallback(()=>{let O=H.current;if(O)O.close();T.current?.getSenders()?.forEach((V)=>V.track?.stop()),T.current?.close(),z(!1),T.current=null,H.current=null,J.current=null},[U]),Y=f.useCallback((O)=>{let V=H.current;if(!V){console.error("Data channel is not ready",O);return}let B=new Date().toLocaleTimeString();if(O.event_id=O.event_id||crypto.randomUUID(),V.send(JSON.stringify(O)),!O.timestamp)O.timestamp=B;Z?.(O)},[Z,U]),D=f.useCallback((O)=>{if(!H.current){console.error("Data channel is not ready");return}let B=()=>{Y({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:O}]}}),Y({type:"response.create"})};if(J.current)J.current.then(B);else B()},[Z,U]);return f.useEffect(()=>{let O=H.current;if(!O)return;let V=(B)=>{let q=JSON.parse(B.data);if(!q.timestamp)q.timestamp=new Date().toLocaleTimeString();Z?.(q)};return O.addEventListener("message",V),()=>{O.removeEventListener("message",V)}},[Z,U]),{isSessionActive:$,startSession:G,stopSession:I,sendTextMessage:D}}var sZ=require("react/jsx-runtime"),Uz=({data:U})=>{let{html:Z,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:T,centrifugeChannel:H}=U,[J,G]=wU.useState(Z),{isSessionActive:I,startSession:Y,sendTextMessage:D}=tU(null,(q)=>{if(console.log(q.type,q.type==="response.output_text.delta"&&q.delta),q.type==="response.output_text.delta"&&q.delta)G((_)=>_+q.delta)});return wU.useEffect(()=>{G(Z)},[Z]),sZ.jsx(M,{card:"HTMLEmbedCard",data:U,methods:{update:(q)=>{G(q.value)},generateUsingAI:async(q)=>{try{if(!I&&q.token)await Y(q.token,!1);D(q.prompt)}catch(_){console.error("Failed to generate using AI",_)}},initializeAI:async(q)=>{if(!I&&q.token)await Y(q.token,!1)}},useCentrifugeSupport:z,useSocketioSupport:$,useMittSupport:T,centrifugeChannel:H,children:lZ.default(J)})},iZ=Uz;var rZ=F({name:"HTMLEmbedCard",component:iZ,metadata:{author:"Swarm.ing"}});var NU=require("react");var aU=require("react/jsx-runtime"),Zz=({data:U})=>{let{name:Z,value:$,useSocketioSupport:z,useCentrifugeSupport:T,useMittSupport:H,centrifugeChannel:J}=U,[G,I]=NU.useState($);return NU.useEffect(()=>{I($)},[$]),aU.jsx(M,{card:"HiddenCard",data:U,useSocketioSupport:z,useCentrifugeSupport:T,useMittSupport:H,centrifugeChannel:J,methods:{update:({value:Y})=>{I(Y)}},children:aU.jsx("input",{type:"hidden",id:Z,name:Z,value:G})})},nZ=Zz;var tZ=F({name:"HiddenCard",component:nZ,metadata:{author:"Swarm.ing"}});var XU=require("react");var aZ=require("react");var $z=A("@swarm.ing/pieui:context:navigate",()=>aZ.createContext(void 0)),m=$z;var EU=require("react/jsx-runtime"),zz=({data:U})=>{let{url:Z}=U,$=XU.useContext(m),z=XU.useContext(j);return XU.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Z))window.location.href=Z;else $?.(Z)},[Z,$]),EU.jsx(EU.Fragment,{children:z})},eZ=zz;var U$=F({name:"AutoRedirectCard",component:eZ,metadata:{author:"Swarm.ing"}});var g=require("react-toastify"),jU=require("react-toastify");var UU=require("react");var e=require("react/jsx-runtime"),Hz={bounce:g.Bounce,slide:g.Slide,zoom:g.Zoom,flip:g.Flip},Tz=(U)=>{let Z={...U,type:U.alertType,transition:U.transition?Hz[U.transition]:void 0,position:U.position??"bottom-right",autoClose:U.autoClose??3000,style:{backgroundColor:"black",...U.sx}};jU.toast(U.message,Z)},Jz=(U)=>{console.log("Log event",U)},Iz=(U)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let Z=()=>{try{new window.Notification(U.title,{body:U.message??U.subtitle,icon:U.icon,silent:U.silent})}catch(z){console.error("[IOEventsCard] Failed to show notification",z)}},$=window.Notification.permission;if($==="granted"){Z();return}if($==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((z)=>{if(z==="granted")Z()})},Gz=({data:U})=>{let{useCentrifugeSupport:Z,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:T}=U,H=UU.useContext(m),J=UU.useRef(H);J.current=H;let G=UU.useMemo(()=>({alert:Tz,log:Jz,push:Iz,redirect:(I)=>{if(I.to){let Y=I.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Y))window.location.href=Y;else J.current?.(Y)}else window.location.reload()},reload:(I)=>{if(I.to){let Y=I.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Y))window.location.href=Y;else J.current?.(Y)}else window.location.reload()}}),[]);return e.jsx(e.Fragment,{children:e.jsx(M,{card:"IOEventsCard",data:U,useCentrifugeSupport:Z,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:T,methods:G,children:e.jsx(jU.ToastContainer,{})})})},Z$=Gz;var $$=F({name:"IOEventsCard",component:Z$,metadata:{author:"Swarm.ing"}});var YU=require("react");var eU=require("react/jsx-runtime"),Xz=({data:U})=>{let{name:Z,key:$,value:z,useSocketioSupport:T,useCentrifugeSupport:H,useMittSupport:J,centrifugeChannel:G}=U,[I,Y]=YU.useState(z);return YU.useEffect(()=>{Y(z)},[z]),YU.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem($,I)},[$,I]),eU.jsx(M,{card:"SessionStorageCard",data:U,useSocketioSupport:T,useCentrifugeSupport:H,useMittSupport:J,centrifugeChannel:G,methods:{update:({value:D})=>{Y(D)},remove:()=>{sessionStorage.removeItem($),Y("")}},children:eU.jsx("input",{type:"hidden",id:Z,name:Z,value:I})})},z$=Xz;var H$=F({name:"SessionStorageCard",component:z$,metadata:{author:"PieData"}});var BU=require("react");var UZ=require("react/jsx-runtime"),Yz=({data:U})=>{let{name:Z,key:$,value:z,useSocketioSupport:T,useCentrifugeSupport:H,useMittSupport:J,centrifugeChannel:G}=U,[I,Y]=BU.useState(z);return BU.useEffect(()=>{Y(z)},[z]),BU.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem($,I)},[$,I]),UZ.jsx(M,{card:"DeviceStorageCard",data:U,useSocketioSupport:T,useCentrifugeSupport:H,useMittSupport:J,centrifugeChannel:G,methods:{update:({value:D})=>{Y(D)},remove:()=>{localStorage.removeItem($),Y("")}},children:UZ.jsx("input",{type:"hidden",id:Z,name:Z,value:I})})},T$=Yz;var J$=F({name:"DeviceStorageCard",component:T$,metadata:{author:"PieData"}});var E=require("react");var ZZ=require("react/jsx-runtime"),Bz=({data:U,content:Z})=>{let{useLoader:$,noReturn:z,returnType:T,useSocketioSupport:H,useCentrifugeSupport:J,useMittSupport:G,centrifugeChannel:I}=U,Y=E.useContext(j),D=E.useContext(C)??N,[O,V]=E.useState(!1),[B,q]=E.useState(null),_=E.useRef(Z),K=E.useContext(v),P=E.useCallback((Q)=>{if(Q===null)V(!0);else if(V(!1),!z)_.current=Q;if(!z)q(Q)},[z]),W=E.useCallback((Q)=>{_.current=Q.content,q(Q.content)},[]),X=E.useCallback((Q)=>{if(Q===null)V(!0);else if(V(!1),!z)for(let x of Q)K?.emit(x.name,x.data)},[z,K]);if(E.useEffect(()=>{q(Z),V(!1)},[Z]),!B&&$)return Y;return ZZ.jsx(M,{card:"AjaxGroupCard",data:U,methods:{changeContent:W},useSocketioSupport:H,useCentrifugeSupport:J,useMittSupport:G,centrifugeChannel:I,children:ZZ.jsx(D,{uiConfig:B??_.current,setUiAjaxConfiguration:T==="events"?X:P})})},I$=Bz;var G$=F({name:"AjaxGroupCard",component:I$,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var $Z=require("react");var CU=require("react/jsx-runtime"),qz=({data:U,content:Z,setUiAjaxConfiguration:$})=>{let{name:z,url:T,sx:H}=U,J=$Z.useContext(m),G=$Z.useContext(C)??N;return CU.jsx(M,{card:z,data:U,children:CU.jsx("div",{style:H,id:z,onClick:(Y)=>{if(T)if(Y.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else J?.(T)},children:CU.jsx(G,{setUiAjaxConfiguration:$,uiConfig:Z})})})},X$=qz;var Y$=F({name:"BoxCard",component:X$,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var B$=require("react");var fU=require("react/jsx-runtime"),Oz=({data:U,content:Z,setUiAjaxConfiguration:$})=>{let{name:z,sx:T}=U,H=B$.useContext(C)??N;return fU.jsx(M,{card:z,data:U,children:fU.jsx("div",{style:T,id:z,children:Z.map((J,G)=>{return fU.jsx(H,{uiConfig:J,setUiAjaxConfiguration:$},`children-${G}`)})})})},q$=Oz;var O$=F({name:"OneOfCard",component:q$,metadata:{author:"Swarm.ing",description:"Different variants"}});var ZU=require("react"),$U=require("@tanstack/react-query");var bU=require("react");var yU=require("react"),xU=new Map,kU=new Map;function SU(U,Z){let $=`${U}::${Z}`,z=U?xU.get($):void 0,[T,H]=yU.useState(z??null);return yU.useEffect(()=>{if(!U)return;if(xU.has($)){H(xU.get($));return}let J=kU.get($);if(!J)J=fetch(U+`api/support/${Z}`,{method:"GET"}).then((I)=>I.json()).then((I)=>{return xU.set($,I),kU.delete($),I}).catch((I)=>{throw kU.delete($),I}),kU.set($,J);let G=!1;return J.then((I)=>{if(!G)H(I)}).catch(()=>{}),()=>{G=!0}},[U,Z,$]),T}var Qz=(U)=>{let Z=document.cookie?document.cookie.split(";"):[];for(let $ of Z){let z=$.indexOf("=");if((z===-1?$:$.slice(0,z)).trim()===U){let H=z===-1?"":$.slice(z+1).trim();try{return decodeURIComponent(H)}catch{return H}}}return null},Wz={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(U){if(typeof window<"u")window.sid=U},readWebStorage(U,Z){return(U==="local"?window.localStorage:window.sessionStorage).getItem(Z)},readCookie:Qz,readUrlParams(U){return new URLSearchParams(window.location.search).getAll(U)},readDomInput(U){let Z=document.getElementsByName(U);if(!Z.length)return null;let $=Z[0];if($ instanceof HTMLInputElement){if($.type==="file"&&$.files)return Array.from($.files);return[$.value]}if($ instanceof HTMLTextAreaElement)return[$.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let U=document.getElementById("piedata_global_form");U&&U.submit()}},Q$=Wz;var Dz={};function i(){return Dz}var W$=new Map;var D$=(U)=>{return W$.has(U)?W$.get(U):null};var _$,_z={isClient(){return!0},readSid(){return _$},setSid(U){_$=U},readWebStorage(U,Z){let $=i(),z=U==="local"?$.storage:$.sessionStorage;return z?z.getItem(Z):null},async readWebStorageAsync(U,Z){let $=i(),z=U==="local"?$.asyncStorage:$.asyncSessionStorage;if(z)return z.getItem(Z);let T=U==="local"?$.storage:$.sessionStorage;return T?T.getItem(Z):null},readCookie(U){let Z=i();return Z.getCookie?Z.getCookie(U):null},readUrlParams(U){let Z=i();return Z.getRouteParams?Z.getRouteParams(U):[]},readDomInput(U){let Z=i();return Z.getInput?Z.getInput(U):D$(U)},submitGlobalForm(){i().submitForm?.()}},V$=_z;var Vz=typeof navigator<"u"&&navigator.product==="ReactNative",Fz=Vz?V$:Q$,R=Fz;var qU=A("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function F$(){qU.resolve?.()}function zZ(){if(!R.isClient())return Promise.resolve();if(R.readSid()!==void 0)return Promise.resolve();if(!qU.promise)qU.promise=new Promise((U)=>{qU.resolve=()=>{U()}});return qU.promise}var Kz=({children:U})=>{let Z=bU.useContext(b),$=WU(),z=SU($,"socketIO"),T=(H)=>{if(R.isClient())R.setSid(H.sid),F$(),console.log(`SocketIO initialized: ${R.readSid()}`)};return bU.useEffect(()=>{if(!Z)return;let H=()=>{console.log("SocketIO connected")},J=(G)=>{console.log(`SocketIO disconnected: ${G}`),Z.connect()};if(z)Z.on("pieinit",T),Z.on("connect",H),Z.on("disconnect",J),Z.connect();return()=>{if(z)Z.off("pieinit",T),Z.off("connect",H),Z.off("disconnect",J),Z.disconnect()}},[Z,z]),U},vU=Kz;var mU=require("react");var Az=({children:U})=>{let Z=mU.useContext(S),$=WU(),z=SU($,"centrifuge");return mU.useEffect(()=>{if(!Z)return;let T=()=>{console.log("Centrifuge connected")},H=(J)=>{console.log("Centrifuge disconnected:",J)};if(z)Z.on("connected",T),Z.on("disconnected",H),Z.connect();return()=>{if(z)Z.disconnect()}},[Z,z]),U},pU=Az;var P$=require("axios-date-transformer");var A$=require("react/jsx-runtime");function K$(U,Z,$){if(!Z)return $;let z=U.replace(/^\//,""),T=Z[z];if(!T)return $;return A$.jsx(RU,{uiConfig:T})}var L=require("react/jsx-runtime"),Pz=({location:U,fallback:Z,piecache:$,onError:z,queryOptions:T,disableGlobalForm:H})=>{let J=JU(),G=DU(),I=p(),Y=ZU.useMemo(()=>P$.createAxiosDateTransformer({baseURL:J||""}),[J]),D=ZU.useMemo(()=>o(),[]),O=ZU.useMemo(()=>J?FU(J):null,[J]),V=ZU.useMemo(()=>J?VU(J,G):null,[J,G]),{data:B,isLoading:q,error:_}=$U.useQuery({queryKey:["uiConfig",U.pathname+U.search,J],enabled:!!J,queryFn:async()=>{let P=new URLSearchParams(U.search);P.set("__pieroot","web");let W="/api/content"+U.pathname+"?"+P.toString();if(I)console.log("[PieRoot] Fetching UI configuration from:",W);let X=await Y.get(W,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(I)console.log("[PieRoot] Received UI configuration:",X.data);return X.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(P)=>Math.min(1000*2**P,30000),...T}),K=K$(U.pathname,$,Z);if(!J)return K??null;if(I)console.log("[PieRoot] Rendering with location:",U),console.log("[PieRoot] API_SERVER:",J),console.log("[PieRoot] CENTRIFUGE_SERVER:",G),console.log("[PieRoot] Fallback provided:",!!Z),console.log("[PieRoot] Piecache provided:",!!$);if(_){if(I)console.error("[PieRoot] Error fetching UI configuration:",_),console.error("[PieRoot] Error details:",{message:_.message,status:_.response?.status,data:_.response?.data});return z?.(_),K}if(q||!B){if(I)console.log("[PieRoot] Loading state:",{isLoading:q,hasUiConfiguration:!!B});return K}if(I)console.log("[PieRoot] UI configuration loaded successfully:",B),console.log("[PieRoot] Rendering UI with configuration");return L.jsx(v.Provider,{value:D,children:L.jsx(b.Provider,{value:O,children:L.jsx(S.Provider,{value:V,children:L.jsx(j.Provider,{value:Z??L.jsx(L.Fragment,{}),children:L.jsx(vU,{children:L.jsx(pU,{children:H?L.jsx(N,{uiConfig:B}):L.jsx("form",{id:"piedata_global_form",action:J+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:L.jsx(N,{uiConfig:B})})})})})})})})},Mz=(U)=>{let Z=ZU.useMemo(()=>new $U.QueryClient,[]),$=U.queryClient??Z;return L.jsx(m.Provider,{value:U.onNavigate,children:L.jsx(c.Provider,{value:U.config,children:L.jsx(h.Provider,{value:U.onError,children:L.jsx($U.QueryClientProvider,{client:$,children:L.jsx(Pz,{...U})})})})})},hU=Mz;var zU=require("react"),gU=require("@tanstack/react-query");var w=require("react/jsx-runtime"),Rz=({location:U,fallback:Z,children:$,disableGlobalForm:z})=>{let T=JU(),H=DU(),J=p(),G=zU.useMemo(()=>o(),[]),I=zU.useMemo(()=>T?FU(T):null,[T]),Y=zU.useMemo(()=>T?VU(T,H):null,[T,H]);if(J)console.log("[PieRoot] Rendering with location:",U),console.log("[PieRoot] API_SERVER:",T),console.log("[PieRoot] CENTRIFUGE_SERVER:",H),console.log("[PieRoot] Fallback provided:",!!Z);return w.jsx(v.Provider,{value:G,children:w.jsx(b.Provider,{value:I,children:w.jsx(S.Provider,{value:Y,children:w.jsx(j.Provider,{value:Z??w.jsx(w.Fragment,{}),children:w.jsx(vU,{children:w.jsx(pU,{children:z?$:w.jsx("form",{id:"piedata_global_form",action:T+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:$})})})})})})})},Lz=(U)=>{let[Z]=zU.useState(()=>new gU.QueryClient),$=U.queryClient??Z;return w.jsx(m.Provider,{value:U.onNavigate,children:w.jsx(c.Provider,{value:U.config,children:w.jsx(h.Provider,{value:U.onError,children:w.jsx(gU.QueryClientProvider,{client:$,children:w.jsx(Rz,{...U})})})})})},M$=Lz;var R$=require("react");var HZ=require("react/jsx-runtime"),wz=HZ.jsx("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),Nz=({apiServer:U,pathname:Z="/",search:$="",centrifugeServer:z,fallback:T,enableRenderingLog:H=!1})=>{let J=U??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"",G=R$.useMemo(()=>({apiServer:J,centrifugeServer:z,enableRenderingLog:H,pageProcessor:"web"}),[J,z,H]);return HZ.jsx(hU,{location:{pathname:Z,search:$},config:G,fallback:T??wz,onNavigate:(Y)=>{if(typeof window<"u")window.history.pushState(null,"",Y)}})},L$=Nz;var w$=require("react");var Ez=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],jz=new Set(["telegram:cloud","telegram:secure"]),OU=(U)=>{if(U==="sid")return{source:"sid",key:"sid"};for(let Z of Ez){let $=Z+":";if(U.startsWith($))return{source:Z,key:U.slice($.length)}}return{source:"dom",key:U}},TZ=(U,Z=!1)=>{let{source:$,key:z}=OU(U);if($==="sid"){let H=R.readSid();if(!H)throw Error("SocketIO isn't initialized properly");return[H]}if($==="localStorage"||$==="sessionStorage")try{let H=R.readWebStorage($==="localStorage"?"local":"session",z);if(H===null){if(Z)console.warn(`No ${$} value found for key ${z}`);return[]}return[H]}catch(H){if(Z)console.warn(`Failed to read ${$} key ${z}:`,H);return[]}if($==="cookie"){let H=R.readCookie(z);if(H===null){if(Z)console.warn(`No cookie found for key ${z}`);return[]}return[H]}if($==="url"){let H=R.readUrlParams(z);if(!H.length&&Z)console.warn(`No URL query param found for key ${z}`);return H}if(jz.has($)){if(Z)console.warn(`Source ${$} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let T=R.readDomInput(z);if(T===null){if(Z)console.warn(`No input found with name ${z}`);return[]}return T},Cz=(U,Z,$)=>{let z=window.Telegram?.WebApp,T=U==="telegram:cloud"?z?.CloudStorage:z?.SecureStorage,H=U==="telegram:cloud"?"Telegram CloudStorage":"Telegram SecureStorage";if(!T){if($)console.warn(`${H} is not available`);return Promise.resolve([])}return new Promise((J)=>{try{T.getItem(Z,(G,I)=>{if(G){if($)console.warn(`Failed to read ${H} key ${Z}:`,G);J([]);return}if(I==null||I===""){if($)console.warn(`No ${H} value found for key ${Z}`);J([]);return}J([I])})}catch(G){if($)console.warn(`Failed to read ${H} key ${Z}:`,G);J([])}})},JZ=async(U,Z=!1)=>{let{source:$,key:z}=OU(U);if($==="telegram:cloud"||$==="telegram:secure")return Cz($,z,Z);if(($==="localStorage"||$==="sessionStorage")&&R.readWebStorageAsync)try{let T=await R.readWebStorageAsync($==="localStorage"?"local":"session",z);if(T===null){if(Z)console.warn(`No ${$} value found for key ${z}`);return[]}return[T]}catch(T){if(Z)console.warn(`Failed to read ${$} key ${z}:`,T);return[]}return TZ(U,Z)},fz=(U,Z={},$=[],z,T)=>{let H=T?.renderingLogEnabled??!1,J=T?.timeout,G=T?.retryPolicy,I=G?.maxRetries??0,Y=G?.baseDelay??1000,D=G?.retryOn??[502,503,504];if(H)console.log("Registering AJAX: ",z,Z,$);return async(O={})=>{if(!R.isClient()){if(H)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let V=T?.apiServer;if(!V){if(H)console.warn("AJAX skipped: apiServer is missing");return}if(!z||!U){if(H)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if($.includes("sid"))await zZ();let B=new FormData;for(let[K,P]of Object.entries({...Z,...O}))B.append(K,P);for(let K of $){let{key:P}=OU(K);for(let W of await JZ(K,H))B.append(P,W)}let q=V+"api/ajax_content"+z;U(null);let _;for(let K=0;K<=I;K++){if(K>0){let X=Y*2**(K-1);if(H)console.log(`AJAX retry ${K}/${I} after ${X}ms`);await new Promise((Q)=>setTimeout(Q,X))}let P=J!=null?new AbortController:null,W=P&&setTimeout(()=>P.abort(),J);try{let X=await fetch(q,{method:"POST",body:B,signal:P?.signal});if(W)clearTimeout(W);if(!X.ok&&D.includes(X.status)&&K<I){_=Error(`HTTP ${X.status}`);continue}let x=(X.headers.get("content-type")||"").includes("application/json");if(!!X.body?.getReader&&!x){let u=X.body.getReader(),d=new TextDecoder,s="";while(!0){let{done:dU,value:k$}=await u.read();if(dU)break;s+=d.decode(k$,{stream:!0});let IZ=s.split(`
3
- `);s=IZ.pop()??"";for(let y$ of IZ){let cU=y$.trim();if(!cU)continue;try{let S$=JSON.parse(cU);U([S$])}catch{if(H)console.warn("Failed to parse streamed line:",cU)}}}if(s.trim())try{let dU=JSON.parse(s);U([dU])}catch{if(H)console.warn("Failed to parse final streamed line:",s)}return{}}else{let u=await X.json();return U(u),u}}catch(X){if(W)clearTimeout(W);if(_=X,K<I)continue;if(H)console.error("AJAX request failed:",X);return U(null),X}}if(H)console.error("AJAX request failed after retries:",_);return U(null),_}},N$=(U,Z={},$=[],z,T)=>{let{apiServer:H,enableRenderingLog:J}=TU(),G=JSON.stringify(Z),I=JSON.stringify($),Y=JSON.stringify(T);return w$.useMemo(()=>fz(U,Z,$,z,{apiServer:H,renderingLogEnabled:J,timeout:T?.timeout,retryPolicy:T?.retryPolicy}),[U,G,I,z,H,J,Y])};var E$=require("clsx"),j$=require("tailwind-merge");function C$(...U){return j$.twMerge(E$.clsx(U))}var f$=()=>{R.submitGlobalForm()};var x$=(U,Z)=>`${U}${_U}${Z}`;
2
+ var l$=Object.create;var{getPrototypeOf:o$,defineProperty:qZ,getOwnPropertyNames:VU,getOwnPropertyDescriptor:s$}=Object,DU=Object.prototype.hasOwnProperty;var KU=(Z,U,$)=>{$=Z!=null?l$(o$(Z)):{};let z=U||!Z||!Z.__esModule?qZ($,"default",{value:Z,enumerable:!0}):$;for(let H of VU(Z))if(!DU.call(z,H))qZ(z,H,{get:()=>Z[H],enumerable:!0});return z},_U=new WeakMap,i$=(Z)=>{var U=_U.get(Z),$;if(U)return U;if(U=qZ({},"__esModule",{value:!0}),Z&&typeof Z==="object"||typeof Z==="function")VU(Z).map((z)=>!DU.call(U,z)&&qZ(U,z,{get:()=>Z[z],enumerable:!($=s$(Z,z))||$.enumerable}));return _U.set(Z,U),U};var r$=(Z,U)=>{for(var $ in U)qZ(Z,$,{get:U[$],enumerable:!0,configurable:!0,set:(z)=>U[$]=()=>z})};var gz={};r$(gz,{usePieEmit:()=>LU,useOnLinkRestored:()=>ZZ,useOnLinkLost:()=>e,useAjaxSubmits:()=>gU,useAjaxSubmit:()=>hU,unregisterComponent:()=>oU,trackLazy:()=>jZ,submitGlobalForm:()=>g$,registry:()=>S,registerPieComponent:()=>I,registerMultipleComponents:()=>lU,readAjaxKeyAsync:()=>ZU,readAjaxKey:()=>eZ,preloadComponent:()=>zU,prefetchLazyComponents:()=>nU,pieName:()=>p$,parseDepName:()=>_Z,hasComponent:()=>sU,getRegistrySize:()=>aU,getRegistryEntry:()=>zZ,getLazyComponentNames:()=>$U,getEmitter:()=>a,getComponentMeta:()=>iU,getAllRegisteredComponents:()=>rU,discoverAjaxEndpoints:()=>UU,cn:()=>h$,UnionCard:()=>X$,UIRendererContext:()=>y,UILoading:()=>xZ,UI:()=>j,SocketIOContext:()=>v,SessionStorageCard:()=>M$,SequenceCard:()=>T$,PieRoot:()=>oZ,PiePreviewRoot:()=>S$,PieConfigContext:()=>r,PieCard:()=>P,PieBaseRoot:()=>b$,PIEBREAK:()=>wZ,OneOfCard:()=>C$,MittContext:()=>h,IOEventsCard:()=>F$,HiddenCard:()=>_$,HTMLEmbedCard:()=>Q$,FallbackContext:()=>C,DeviceStorageCard:()=>A$,CentrifugeIOContext:()=>m,BoxCard:()=>R$,AutoRedirectCard:()=>K$,AjaxGroupCard:()=>N$});module.exports=i$(gz);var f=require("react");var MZ=require("react");var rZ=globalThis,M=(Z,U)=>{let $=Symbol.for(Z);if(!($ in rZ))rZ[$]=U();return rZ[$]};var r=M("@swarm.ing/pieui:context:pieConfig",()=>MZ.createContext(null)),c=()=>{let Z=MZ.useContext(r);if(!Z)throw Error("usePieConfig must be used within PieConfigProvider");return Z},QZ=()=>{let{apiServer:Z}=c();return Z},PZ=QZ,AZ=()=>{let{centrifugeServer:Z}=c();return Z};var d=()=>{let{enableRenderingLog:Z}=c();return Z},OU=d;var e=()=>{let{onLinkLost:Z}=c();return Z},ZZ=()=>{let{onLinkRestored:Z}=c();return Z},wZ="__piedemo__";var IU=require("react"),aZ=require("centrifuge");var FU=M("@swarm.ing/pieui:centrifuge-cache",()=>new Map),NZ=(Z,U)=>{if(!U)return null;let $=`${Z}::${U}`,z=FU.get($);if(z)return z;async function H(){let J=await fetch(Z+"api/centrifuge/gen_token",{credentials:"include"});if(!J.ok){if(J.status===401||J.status===403)throw new aZ.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${J.status}`)}return(await J.json()).token}let T=new aZ.Centrifuge(U,{getToken:H});return FU.set($,T),T},a$=M("@swarm.ing/pieui:context:centrifuge",()=>IU.createContext(null)),m=a$;var PU=require("socket.io-client"),AU=require("react");var MU=M("@swarm.ing/pieui:socket-cache",()=>new Map),LZ=(Z)=>{let U=MU.get(Z);if(U)return U;let $=PU.io(Z,{autoConnect:!1,transports:["websocket"]});return MU.set(Z,$),$},n$=M("@swarm.ing/pieui:context:socket",()=>AU.createContext(null)),v=n$;var wU=KU(require("mitt")),UZ=require("react");function a(){return M("@swarm.ing/pieui:mitt-emitter",()=>wU.default())}var NU=M("@swarm.ing/pieui:context:mitt",()=>UZ.createContext(null));function LU(Z){let U=UZ.useContext(NU);return UZ.useCallback(($,z)=>{(U??a()).emit(`pie${$}_${Z}`,z)},[Z,U])}var h=NU;function RU(Z){return Z.wasRecovering===!0&&Z.recovered===!1}function jU(Z){return Z.recoverable===!1}function EU(Z,U,$){let z=Z.getSubscription(U);if(z)return{subscription:z,createdHere:!1};return{subscription:Z.newSubscription(U,$),createdHere:!0}}var t$=(Z)=>{let U=document.cookie?document.cookie.split(";"):[];for(let $ of U){let z=$.indexOf("=");if((z===-1?$:$.slice(0,z)).trim()===Z){let T=z===-1?"":$.slice(z+1).trim();try{return decodeURIComponent(T)}catch{return T}}}return null},e$={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(Z){if(typeof window<"u")window.sid=Z},readWebStorage(Z,U){return(Z==="local"?window.localStorage:window.sessionStorage).getItem(U)},readCookie:t$,readUrlParams(Z){return new URLSearchParams(window.location.search).getAll(Z)},readDomInput(Z){let U=document.getElementsByName(Z);if(!U.length)return null;let $=U[0];if($ instanceof HTMLInputElement){if($.type==="file"&&$.files)return Array.from($.files);return[$.value]}if($ instanceof HTMLTextAreaElement)return[$.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let Z=document.getElementById("piedata_global_form");Z&&Z.submit()}},CU=e$;var Zz={};function n(){return Zz}var yU=new Map;var xU=(Z)=>{return yU.has(Z)?yU.get(Z):null};var fU,Uz={isClient(){return!0},readSid(){return fU},setSid(Z){fU=Z},readWebStorage(Z,U){let $=n(),z=Z==="local"?$.storage:$.sessionStorage;return z?z.getItem(U):null},async readWebStorageAsync(Z,U){let $=n(),z=Z==="local"?$.asyncStorage:$.asyncSessionStorage;if(z)return z.getItem(U);let H=Z==="local"?$.storage:$.sessionStorage;return H?H.getItem(U):null},readCookie(Z){let U=n();return U.getCookie?U.getCookie(Z):null},readUrlParams(Z){let U=n();return U.getRouteParams?U.getRouteParams(Z):[]},readDomInput(Z){let U=n();return U.getInput?U.getInput(Z):xU(Z)},submitGlobalForm(){n().submitForm?.()}},bU=Uz;var $z=typeof navigator<"u"&&navigator.product==="ReactNative",zz=$z?bU:CU,N=zz;var WZ=M("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function kU(){WZ.resolve?.()}function nZ(){if(!N.isClient())return Promise.resolve();if(N.readSid()!==void 0)return Promise.resolve();if(!WZ.promise)WZ.promise=new Promise((Z)=>{WZ.resolve=()=>{Z()}});return WZ.promise}var tZ=require("react");var Hz=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],Tz=new Set(["telegram:cloud","telegram:secure"]),RZ=new Map,SU=(Z,U)=>{RZ.set(Z,U)},mU=(Z)=>{RZ.delete(Z)},_Z=(Z)=>{if(Z==="sid")return{source:"sid",key:"sid"};for(let U of Hz){let $=U+":";if(Z.startsWith($))return{source:U,key:Z.slice($.length)}}return{source:"dom",key:Z}},eZ=(Z,U=!1)=>{let{source:$,key:z}=_Z(Z);if($==="sid"){let J=N.readSid();if(!J)throw Error("SocketIO isn't initialized properly");return[J]}if($==="localStorage"||$==="sessionStorage")try{let J=N.readWebStorage($==="localStorage"?"local":"session",z);if(J===null){if(U)console.warn(`No ${$} value found for key ${z}`);return[]}return[J]}catch(J){if(U)console.warn(`Failed to read ${$} key ${z}:`,J);return[]}if($==="cookie"){let J=N.readCookie(z);if(J===null){if(U)console.warn(`No cookie found for key ${z}`);return[]}return[J]}if($==="url"){let J=N.readUrlParams(z);if(!J.length&&U)console.warn(`No URL query param found for key ${z}`);return J}if(Tz.has($)){if(U)console.warn(`Source ${$} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let H=RZ.get(z);if(H){let J=H();if(J instanceof Promise){if(U)console.warn(`stored resolver for ${z} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}return J}let T=N.readDomInput(z);if(T===null){if(U)console.warn(`No input found with name ${z}`);return[]}return T},Jz=(Z,U,$)=>{let z=window.Telegram?.WebApp,H=Z==="telegram:cloud"?z?.CloudStorage:z?.SecureStorage,T=Z==="telegram:cloud"?"Telegram CloudStorage":"Telegram SecureStorage";if(!H){if($)console.warn(`${T} is not available`);return Promise.resolve([])}return new Promise((J)=>{try{H.getItem(U,(X,G)=>{if(X){if($)console.warn(`Failed to read ${T} key ${U}:`,X);J([]);return}if(G==null||G===""){if($)console.warn(`No ${T} value found for key ${U}`);J([]);return}J([G])})}catch(X){if($)console.warn(`Failed to read ${T} key ${U}:`,X);J([])}})},ZU=async(Z,U=!1)=>{let{source:$,key:z}=_Z(Z);if($==="telegram:cloud"||$==="telegram:secure")return Jz($,z,U);if(($==="localStorage"||$==="sessionStorage")&&N.readWebStorageAsync)try{let H=await N.readWebStorageAsync($==="localStorage"?"local":"session",z);if(H===null){if(U)console.warn(`No ${$} value found for key ${z}`);return[]}return[H]}catch(H){if(U)console.warn(`Failed to read ${$} key ${z}:`,H);return[]}if($==="dom"){let H=RZ.get(z);if(H)return H()}return eZ(Z,U)},vU=(Z,U={},$=[],z,H)=>{let T=H?.renderingLogEnabled??!1,J=H?.timeout,X=H?.retryPolicy,G=X?.maxRetries??0,Y=X?.baseDelay??1000,_=X?.retryOn??[502,503,504];if(T)console.log("Registering AJAX: ",z,U,$);return async(q={})=>{if(!N.isClient()){if(T)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let V=H?.apiServer;if(!V){if(T)console.warn("AJAX skipped: apiServer is missing");return}if(!z||!Z){if(T)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if($.includes("sid"))await nZ();let B=new FormData;for(let[O,A]of Object.entries({...U,...q}))B.append(O,A);for(let O of $){let{key:A}=_Z(O);for(let w of await ZU(O,T))B.append(A,w)}let W=V+"api/ajax_content"+z;Z(null);let D;for(let O=0;O<=G;O++){if(O>0){let K=Y*2**(O-1);if(T)console.log(`AJAX retry ${O}/${G} after ${K}ms`);await new Promise((Q)=>setTimeout(Q,K))}let A=J!=null?new AbortController:null,w=A&&setTimeout(()=>A.abort(),J);try{let K=await fetch(W,{method:"POST",body:B,signal:A?.signal});if(w)clearTimeout(w);if(!K.ok&&_.includes(K.status)&&O<G){D=Error(`HTTP ${K.status}`);continue}let F=(K.headers.get("content-type")||"").includes("application/json");if(!!K.body?.getReader&&!F){let k=K.body.getReader(),IZ=new TextDecoder,p="";while(!0){let{done:u,value:u$}=await k.read();if(u)break;p+=IZ.decode(u$,{stream:!0});let WU=p.split(`
3
+ `);p=WU.pop()??"";for(let d$ of WU){let iZ=d$.trim();if(!iZ)continue;try{let c$=JSON.parse(iZ);Z([c$])}catch{if(T)console.warn("Failed to parse streamed line:",iZ)}}}if(p.trim())try{let u=JSON.parse(p);Z([u])}catch{if(T)console.warn("Failed to parse final streamed line:",p)}return{}}else{let k=await K.json();return Z(k),k}}catch(K){if(w)clearTimeout(w);if(D=K,O<G)continue;if(T)console.error("AJAX request failed:",K);return Z(null),K}}if(T)console.error("AJAX request failed after retries:",D);return Z(null),D}},hU=(Z,U={},$=[],z,H)=>{let{apiServer:T,enableRenderingLog:J}=c(),X=JSON.stringify(U),G=JSON.stringify($),Y=JSON.stringify(H);return tZ.useMemo(()=>vU(Z,U,$,z,{apiServer:T,renderingLogEnabled:J,timeout:H?.timeout,retryPolicy:H?.retryPolicy}),[Z,X,G,z,T,J,Y])},UU=(Z={})=>{let U=[];for(let $ of Object.keys(Z??{})){let z=null;if($==="pathname")z="default";else if($.endsWith("Pathname"))z=$.slice(0,-8);if(z===null)continue;let H=z==="default"?"":z;U.push({key:z,pathname:Z[$],depsNames:Z[H?`${H}DepsNames`:"depsNames"]??[],kwargs:Z[H?`${H}Kwargs`:"kwargs"]??{}})}return U},gU=(Z={},U,$)=>{let{apiServer:z,enableRenderingLog:H}=c(),T=JSON.stringify(Z??{}),J=JSON.stringify($);return tZ.useMemo(()=>{let X={};for(let G of UU(Z??{}))X[G.key]=vU(U,G.kwargs,G.depsNames,G.pathname,{apiServer:z,renderingLogEnabled:H,timeout:$?.timeout,retryPolicy:$?.retryPolicy});return X},[T,U,z,H,J])};var $Z=require("react/jsx-runtime"),Gz=({card:Z,data:U,children:$,useSocketioSupport:z=!1,useCentrifugeSupport:H=!1,useMittSupport:T=!1,centrifugeChannel:J=void 0,methods:X=void 0,stored:G=void 0,onResync:Y=void 0})=>{let _=OU(),q=f.useRef(X);q.current=X;let V=f.useRef(Y);V.current=Y;let B=f.useRef(G);B.current=G;let W=typeof G==="function";if(f.useEffect(()=>{if(!W)return;let w=U.name;return SU(w,()=>[JSON.stringify(B.current())]),()=>mU(w)},[W,U.name]),_)console.log("[PieCard] Rendering card:",Z),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:z,centrifuge:H,mitt:T,centrifugeChannel:J}),console.log("[PieCard] Methods:",X?Object.keys(X):"none"),console.log("[PieCard] Has children:",!!$);let D=f.useContext(v),O=f.useContext(m),A=f.useContext(h);if(f.useEffect(()=>{if(!D||!z||!q.current||!U.name){if(_&&z)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!D,useSocketioSupport:z,hasMethods:!!q.current,hasDataName:!!U?.name});return}let K=Object.keys(q.current??{}).map((Q)=>{let F=`pie${Q}_${U.name}`;if(_)console.log(`[PieCard] Socket.IO registering event: ${F}`);let x=(k)=>{q.current?.[Q]?.(k)};return D.on(F,x),[F,x]});return()=>{K.forEach(([Q,F])=>{if(_)console.log(`[PieCard] Socket.IO unregistering event: ${Q}`);D.off(Q,F)})}},[D,U.name,z]),f.useEffect(()=>{if(!O||!H||!J||!U.name){if(_&&H)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!O,useCentrifugeSupport:H,hasCentrifugeChannel:!!J,hasMethods:!!q.current,hasDataName:!!U?.name});return}let K=Object.keys(q.current??{}).map((Q)=>{let F=`pie${Q}_${U.name}_${J}`;if(_)console.log(`[PieCard] Centrifuge subscribing to channel: ${F}`);let{subscription:x,createdHere:k}=EU(O,F,{recoverable:!0,positioned:!0}),IZ=(u)=>{if(_)console.log(`[PieCard] Centrifuge received data on ${F}:`,u.data);q.current?.[Q]?.(u.data)},p=(u)=>{if(jU(u))console.warn(`[PieCard] Centrifuge channel ${F} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(RU(u)){if(_)console.log(`[PieCard] Centrifuge recovery gap on ${F}; requesting resync`);V.current?.({channel:F,reason:"gap"})}};return x.on("publication",IZ),x.on("subscribed",p),x.subscribe(),{subscription:x,createdHere:k,onPublication:IZ,onSubscribed:p}});return()=>{K.forEach(({subscription:Q,createdHere:F,onPublication:x,onSubscribed:k})=>{if(_)console.log("[PieCard] Centrifuge unsubscribing from channel");if(Q.off("publication",x),Q.off("subscribed",k),F)Q.unsubscribe(),O.removeSubscription(Q)})}},[O,J,U.name,H]),f.useEffect(()=>{if(!A||!T||!U.name){if(_&&T)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!A,useMittSupport:T,hasMethods:!!q.current,hasDataName:!!U?.name});return}let w=Object.keys(q.current??{}),K={};return w.forEach((Q)=>{let F=`pie${Q}_${U.name}`,x=(k)=>{if(_)console.log(`[PieCard] Mitt registering event: ${F}`);q.current?.[Q]?.(k)};K[F]=x,A.on(F,x)}),()=>{Object.entries(K).forEach(([Q,F])=>{if(_)console.log(`[PieCard] Mitt unregistering event: ${Q}`);A.off(Q,F)})}},[A,U.name,T]),_)console.log("[PieCard] Rendering complete, returning children");if(G!==void 0&&!W)return $Z.jsxs($Z.Fragment,{children:[$Z.jsx("input",{type:"hidden",name:U.name,value:JSON.stringify(G)}),$]});return $},P=Gz;var pU=require("react"),t=new Map;function uU(Z,U){return U.catch(()=>{if(t.get(Z)===U)t.delete(Z)}),t.set(Z,U),U}function jZ(Z,U){return pU.lazy(()=>{if(t.has(U))return t.get(U);return uU(U,Z().then(($)=>$))})}var dU=async(Z,U)=>{if(!U)return;if(t.has(Z))return t.get(Z);return uU(Z,U().then(($)=>$))};var S=M("@swarm.ing/pieui:component-registry",()=>new Map),Xz=(Z)=>{if(!Z.name)throw Error("Component registration requires a name");if(!Z.component&&!Z.loader)throw Error(`Component "${Z.name}" requires component or loader`);let U={name:Z.name,component:Z.component,loader:Z.loader,metadata:Z.metadata,fallback:Z.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=jZ(U.loader,Z.name),U.isLazy=!0;return U};function I(Z){let U=Xz(Z);return S.set(U.name,U),U.component}var lU=(Z)=>{Z.forEach((U)=>I(U))},oU=(Z)=>{S.delete(Z)},sU=(Z)=>{return S.has(Z)},iU=(Z)=>{return S.get(Z)?.metadata},zZ=(Z)=>{return S.get(Z)},rU=()=>{return Array.from(S.keys())},aU=()=>{return S.size},$U=()=>Array.from(S.values()).filter((Z)=>Z.isLazy&&typeof Z.loader==="function").map((Z)=>Z.name),zU=(Z)=>{let U=S.get(Z);if(!U?.isLazy||typeof U.loader!=="function")return;return dU(Z,U.loader)},cU=!1,nU=()=>{if(cU||typeof window>"u")return;cU=!0;let Z=navigator.connection;if(Z?.saveData)return;if(Z?.effectiveType&&["slow-2g","2g"].includes(Z.effectiveType))return;let U=$U(),$="requestIdleCallback"in window?(H)=>window.requestIdleCallback(H,{timeout:2000}):(H)=>window.setTimeout(H,300),z=(H)=>{if(H>=U.length)return;$(()=>{Promise.resolve().then(()=>zU(U[H])).catch(()=>{}).finally(()=>z(H+1))})};z(0)};var VZ=require("react");var tU=require("react");var EZ=require("react/jsx-runtime"),Yz=M("@swarm.ing/pieui:context:fallback",()=>tU.createContext(EZ.jsx(EZ.Fragment,{}))),C=Yz;var eU=require("react");var Bz=M("@swarm.ing/pieui:context:lazyError",()=>eU.createContext(void 0)),l=Bz;var CZ=require("react"),Z$=require("react/jsx-runtime"),qz=2,Qz=400;class HZ extends CZ.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(Z){if(this.props.onError?.(Z),this.state.attempt<qz){let U=Qz*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState(($)=>({failed:!1,attempt:$.attempt+1}))},U)}}componentDidUpdate(Z){if(Z.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 Z$.jsx(CZ.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var yZ=require("react/jsx-runtime");function Wz({uiConfig:Z,setUiAjaxConfiguration:U}){let $=VZ.useContext(C),z=VZ.useContext(l),H=d();if(H)console.log("[UI] Rendering component:",Z.card),console.log("[UI] Component data:",Z.data),console.log("[UI] Component content:",Z.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let T=zZ(Z.card);if(!T?.component){if(H)console.warn(`[UI] Component not found in registry: ${Z.card}`),console.log("[UI] Returning fallback component");return $}if(H)console.log("[UI] Found component in registry:",{name:T.name,isLazy:T.isLazy,hasMetadata:!!T.metadata});let J=T.component,X=yZ.jsx(J,{data:Z.data,content:Z.content,setUiAjaxConfiguration:U});if(T.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",T.name);return yZ.jsx(HZ,{name:T.name,fallback:T.fallback?yZ.jsx(T.fallback,{}):$,onError:z,children:X})}if(H)console.log("[UI] Rendering component directly:",T.name);return X}var j=VZ.memo(Wz);var HU=require("react");var U$=require("react");var _z=M("@swarm.ing/pieui:context:uiRenderer",()=>U$.createContext(null)),y=_z;var DZ=require("react/jsx-runtime");function $$({uiConfig:Z,setUiAjaxConfiguration:U}){let $=HU.useContext(C),z=HU.useContext(l),H=d();if(H)console.log("[UILoading] Rendering fallback for:",Z.card),console.log("[UILoading] Component data:",Z.data),console.log("[UILoading] Component content:",Z.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let T=zZ(Z.card);if(!T?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${Z.card}`),console.log("[UILoading] Returning fallback component");return $}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 G=T.fallback;return DZ.jsx(G,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",T.name);let J=T.component,X=DZ.jsx(y.Provider,{value:$$,children:DZ.jsx(J,{data:Z.data,content:Z.content,setUiAjaxConfiguration:U})});if(T.isLazy)return DZ.jsx(HZ,{name:T.name,fallback:$,onError:z,children:X});return X}var xZ=$$;var z$=require("react");var fZ=require("react/jsx-runtime"),Vz=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:z,sx:H}=Z,T=z$.useContext(y)??j;return fZ.jsx(P,{card:z,data:Z,children:fZ.jsx("div",{style:H,id:z,children:U.map((J,X)=>{return fZ.jsx(T,{uiConfig:J,setUiAjaxConfiguration:$},`children-${X}`)})})})},H$=Vz;var T$=I({name:"SequenceCard",component:H$,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var J$=require("react");var TU=require("react/jsx-runtime"),Dz=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:z}=Z,H=J$.useContext(y)??j;return TU.jsx(P,{card:z,data:Z,children:U.map((T,J)=>{return TU.jsx(H,{uiConfig:T,setUiAjaxConfiguration:$},`children-${J}`)})})},G$=Dz;var X$=I({name:"UnionCard",component:G$,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var bZ=require("react"),Y$=KU(require("html-react-parser"));var b=require("react");function Kz(){let Z=new AudioContext,U=Z.createOscillator(),$=U.connect(Z.createMediaStreamDestination());U.start();let z=$.stream.getAudioTracks()[0];return z.enabled=!1,z}function JU(Z=null,U){let[$,z]=b.useState(!1),H=b.useRef(null),T=b.useRef(null),J=b.useRef(null),X=b.useCallback(async(q,V=!0)=>{if(H.current)G();let B=new RTCPeerConnection;if(B.onconnectionstatechange=()=>{if(B.connectionState==="connected")z(!0);else if(["disconnected","failed","closed"].includes(B.connectionState))z(!1)},B.ontrack=(Q)=>{if(Z)Z.srcObject=Q.streams[0]},V){let Q=await navigator.mediaDevices.getUserMedia({audio:!0});B.addTrack(Q.getTracks()[0],Q)}else{let Q=Kz();B.addTrack(Q)}let W=B.createDataChannel("oai-events");T.current=W,J.current=new Promise((Q)=>{W.addEventListener("open",()=>{Q()})});let D=await B.createOffer();await B.setLocalDescription(D);let K=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:D.sdp,headers:{Authorization:`Bearer ${q}`,"Content-Type":"application/sdp"}})).text();await B.setRemoteDescription({type:"answer",sdp:K}),H.current=B,await J.current},[Z]),G=b.useCallback(()=>{let q=T.current;if(q)q.close();H.current?.getSenders()?.forEach((V)=>V.track?.stop()),H.current?.close(),z(!1),H.current=null,T.current=null,J.current=null},[Z]),Y=b.useCallback((q)=>{let V=T.current;if(!V){console.error("Data channel is not ready",q);return}let B=new Date().toLocaleTimeString();if(q.event_id=q.event_id||crypto.randomUUID(),V.send(JSON.stringify(q)),!q.timestamp)q.timestamp=B;U?.(q)},[U,Z]),_=b.useCallback((q)=>{if(!T.current){console.error("Data channel is not ready");return}let B=()=>{Y({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:q}]}}),Y({type:"response.create"})};if(J.current)J.current.then(B);else B()},[U,Z]);return b.useEffect(()=>{let q=T.current;if(!q)return;let V=(B)=>{let W=JSON.parse(B.data);if(!W.timestamp)W.timestamp=new Date().toLocaleTimeString();U?.(W)};return q.addEventListener("message",V),()=>{q.removeEventListener("message",V)}},[U,Z]),{isSessionActive:$,startSession:X,stopSession:G,sendTextMessage:_}}var q$=require("react/jsx-runtime"),Oz=({data:Z})=>{let{html:U,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:H,centrifugeChannel:T}=Z,[J,X]=bZ.useState(U),{isSessionActive:G,startSession:Y,sendTextMessage:_}=JU(null,(W)=>{if(console.log(W.type,W.type==="response.output_text.delta"&&W.delta),W.type==="response.output_text.delta"&&W.delta)X((D)=>D+W.delta)});return bZ.useEffect(()=>{X(U)},[U]),q$.jsx(P,{card:"HTMLEmbedCard",data:Z,methods:{update:(W)=>{X(W.value)},generateUsingAI:async(W)=>{try{if(!G&&W.token)await Y(W.token,!1);_(W.prompt)}catch(D){console.error("Failed to generate using AI",D)}},initializeAI:async(W)=>{if(!G&&W.token)await Y(W.token,!1)}},useCentrifugeSupport:z,useSocketioSupport:$,useMittSupport:H,centrifugeChannel:T,children:Y$.default(J)})},B$=Oz;var Q$=I({name:"HTMLEmbedCard",component:B$,metadata:{author:"Swarm.ing"}});var kZ=require("react");var GU=require("react/jsx-runtime"),Fz=({data:Z})=>{let{name:U,value:$,useSocketioSupport:z,useCentrifugeSupport:H,useMittSupport:T,centrifugeChannel:J}=Z,[X,G]=kZ.useState($);return kZ.useEffect(()=>{G($)},[$]),GU.jsx(P,{card:"HiddenCard",data:Z,useSocketioSupport:z,useCentrifugeSupport:H,useMittSupport:T,centrifugeChannel:J,methods:{update:({value:Y})=>{G(Y)}},children:GU.jsx("input",{type:"hidden",id:U,name:U,value:X})})},W$=Fz;var _$=I({name:"HiddenCard",component:W$,metadata:{author:"Swarm.ing"}});var KZ=require("react");var V$=require("react");var Iz=M("@swarm.ing/pieui:context:navigate",()=>V$.createContext(void 0)),g=Iz;var SZ=require("react/jsx-runtime"),Mz=({data:Z})=>{let{url:U}=Z,$=KZ.useContext(g),z=KZ.useContext(C);return KZ.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else $?.(U)},[U,$]),SZ.jsx(SZ.Fragment,{children:z})},D$=Mz;var K$=I({name:"AutoRedirectCard",component:D$,metadata:{author:"Swarm.ing"}});var o=require("react-toastify"),mZ=require("react-toastify");var JZ=require("react");var TZ=require("react/jsx-runtime"),Pz={bounce:o.Bounce,slide:o.Slide,zoom:o.Zoom,flip:o.Flip},Az=(Z)=>{let U={...Z,type:Z.alertType,transition:Z.transition?Pz[Z.transition]:void 0,position:Z.position??"bottom-right",autoClose:Z.autoClose??3000,style:{backgroundColor:"black",...Z.sx}};mZ.toast(Z.message,U)},wz=(Z)=>{console.log("Log event",Z)},Nz=(Z)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(Z.title,{body:Z.message??Z.subtitle,icon:Z.icon,silent:Z.silent})}catch(z){console.error("[IOEventsCard] Failed to show notification",z)}},$=window.Notification.permission;if($==="granted"){U();return}if($==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((z)=>{if(z==="granted")U()})},Lz=({data:Z})=>{let{useCentrifugeSupport:U,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:H}=Z,T=JZ.useContext(g),J=JZ.useRef(T);J.current=T;let X=JZ.useMemo(()=>({alert:Az,log:wz,push:Nz,redirect:(G)=>{if(G.to){let Y=G.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Y))window.location.href=Y;else J.current?.(Y)}else window.location.reload()},reload:(G)=>{if(G.to){let Y=G.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Y))window.location.href=Y;else J.current?.(Y)}else window.location.reload()}}),[]);return TZ.jsx(TZ.Fragment,{children:TZ.jsx(P,{card:"IOEventsCard",data:Z,useCentrifugeSupport:U,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:H,methods:X,children:TZ.jsx(mZ.ToastContainer,{})})})},O$=Lz;var F$=I({name:"IOEventsCard",component:O$,metadata:{author:"Swarm.ing"}});var OZ=require("react");var XU=require("react/jsx-runtime"),Rz=({data:Z})=>{let{name:U,key:$,value:z,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:J,centrifugeChannel:X}=Z,[G,Y]=OZ.useState(z);return OZ.useEffect(()=>{Y(z)},[z]),OZ.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem($,G)},[$,G]),XU.jsx(P,{card:"SessionStorageCard",data:Z,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:J,centrifugeChannel:X,methods:{update:({value:_})=>{Y(_)},remove:()=>{sessionStorage.removeItem($),Y("")}},children:XU.jsx("input",{type:"hidden",id:U,name:U,value:G})})},I$=Rz;var M$=I({name:"SessionStorageCard",component:I$,metadata:{author:"PieData"}});var FZ=require("react");var YU=require("react/jsx-runtime"),jz=({data:Z})=>{let{name:U,key:$,value:z,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:J,centrifugeChannel:X}=Z,[G,Y]=FZ.useState(z);return FZ.useEffect(()=>{Y(z)},[z]),FZ.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem($,G)},[$,G]),YU.jsx(P,{card:"DeviceStorageCard",data:Z,useSocketioSupport:H,useCentrifugeSupport:T,useMittSupport:J,centrifugeChannel:X,methods:{update:({value:_})=>{Y(_)},remove:()=>{localStorage.removeItem($),Y("")}},children:YU.jsx("input",{type:"hidden",id:U,name:U,value:G})})},P$=jz;var A$=I({name:"DeviceStorageCard",component:P$,metadata:{author:"PieData"}});var E=require("react");var BU=require("react/jsx-runtime"),Ez=({data:Z,content:U})=>{let{useLoader:$,noReturn:z,returnType:H,useSocketioSupport:T,useCentrifugeSupport:J,useMittSupport:X,centrifugeChannel:G}=Z,Y=E.useContext(C),_=E.useContext(y)??j,[q,V]=E.useState(!1),[B,W]=E.useState(null),D=E.useRef(U),O=E.useContext(h),A=E.useCallback((Q)=>{if(Q===null)V(!0);else if(V(!1),!z)D.current=Q;if(!z)W(Q)},[z]),w=E.useCallback((Q)=>{D.current=Q.content,W(Q.content)},[]),K=E.useCallback((Q)=>{if(Q===null)V(!0);else if(V(!1),!z)for(let F of Q)O?.emit(F.name,F.data)},[z,O]);if(E.useEffect(()=>{W(U),V(!1)},[U]),!B&&$)return Y;return BU.jsx(P,{card:"AjaxGroupCard",data:Z,methods:{changeContent:w},useSocketioSupport:T,useCentrifugeSupport:J,useMittSupport:X,centrifugeChannel:G,children:BU.jsx(_,{uiConfig:B??D.current,setUiAjaxConfiguration:H==="events"?K:A})})},w$=Ez;var N$=I({name:"AjaxGroupCard",component:w$,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var qU=require("react");var vZ=require("react/jsx-runtime"),Cz=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:z,url:H,sx:T}=Z,J=qU.useContext(g),X=qU.useContext(y)??j;return vZ.jsx(P,{card:z,data:Z,children:vZ.jsx("div",{style:T,id:z,onClick:(Y)=>{if(H)if(Y.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(H))window.location.href=H;else J?.(H)},children:vZ.jsx(X,{setUiAjaxConfiguration:$,uiConfig:U})})})},L$=Cz;var R$=I({name:"BoxCard",component:L$,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var j$=require("react");var hZ=require("react/jsx-runtime"),yz=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:z,sx:H}=Z,T=j$.useContext(y)??j;return hZ.jsx(P,{card:z,data:Z,children:hZ.jsx("div",{style:H,id:z,children:U.map((J,X)=>{return hZ.jsx(T,{uiConfig:J,setUiAjaxConfiguration:$},`children-${X}`)})})})},E$=yz;var C$=I({name:"OneOfCard",component:E$,metadata:{author:"Swarm.ing",description:"Different variants"}});var XZ=require("react"),YZ=require("@tanstack/react-query");var s=require("react");var uZ=require("react"),gZ=new Map,pZ=new Map;function dZ(Z,U){let $=`${Z}::${U}`,z=Z?gZ.get($):void 0,[H,T]=uZ.useState(z??null);return uZ.useEffect(()=>{if(!Z)return;if(gZ.has($)){T(gZ.get($));return}let J=pZ.get($);if(!J)J=fetch(Z+`api/support/${U}`,{method:"GET"}).then((G)=>G.json()).then((G)=>{return gZ.set($,G),pZ.delete($),G}).catch((G)=>{throw pZ.delete($),G}),pZ.set($,J);let X=!1;return J.then((G)=>{if(!X)T(G)}).catch(()=>{}),()=>{X=!0}},[Z,U,$]),H}function GZ(Z,U){if(U==="up")return{state:"up",signal:Z==="down"?"restored":null};return{state:"down",signal:Z==="up"?"lost":null}}var xz=({children:Z})=>{let U=s.useContext(v),$=PZ(),z=dZ($,"socketIO"),H=e(),T=ZZ(),J=s.useRef(H);J.current=H;let X=s.useRef(T);X.current=T;let G=s.useRef("initial"),Y=(_)=>{if(N.isClient())N.setSid(_.sid),kU(),console.log(`SocketIO initialized: ${N.readSid()}`)};return s.useEffect(()=>{if(!U||!z)return;let _=()=>{let{state:V,signal:B}=GZ(G.current,"up");if(G.current=V,B==="restored")X.current?.("socketio");console.log("SocketIO connected")},q=(V)=>{if(console.log(`SocketIO disconnected: ${V}`),U.connect(),V==="io client disconnect")return;let{state:B,signal:W}=GZ(G.current,"down");if(G.current=B,W==="lost")J.current?.("socketio",V)};return U.on("pieinit",Y),U.on("connect",_),U.on("disconnect",q),U.connect(),()=>{U.off("pieinit",Y),U.off("connect",_),U.off("disconnect",q),U.disconnect()}},[U,z]),Z},cZ=xz;var i=require("react");var fz=({children:Z})=>{let U=i.useContext(m),$=PZ(),z=dZ($,"centrifuge"),H=e(),T=ZZ(),J=i.useRef(H);J.current=H;let X=i.useRef(T);X.current=T;let G=i.useRef("initial");return i.useEffect(()=>{if(!U||!z)return;let Y=(V)=>{let{state:B,signal:W}=GZ(G.current,"down");if(G.current=B,W==="lost")J.current?.("centrifuge",V)},_=()=>{let{state:V,signal:B}=GZ(G.current,"up");if(G.current=V,B==="restored")X.current?.("centrifuge");console.log("Centrifuge connected")},q=(V)=>{console.log("Centrifuge disconnected:",V),Y(V)};return U.on("connecting",Y),U.on("connected",_),U.on("disconnected",q),U.connect(),()=>{U.off("connecting",Y),U.off("connected",_),U.off("disconnected",q),U.disconnect()}},[U,z]),Z},lZ=fz;var f$=require("axios-date-transformer");var x$=require("react/jsx-runtime");function y$(Z,U,$){if(!U)return $;let z=Z.replace(/^\//,""),H=U[z];if(!H)return $;return x$.jsx(xZ,{uiConfig:H})}var L=require("react/jsx-runtime"),bz=({location:Z,fallback:U,piecache:$,onError:z,queryOptions:H,disableGlobalForm:T})=>{let J=QZ(),X=AZ(),G=d(),Y=XZ.useMemo(()=>f$.createAxiosDateTransformer({baseURL:J||""}),[J]),_=XZ.useMemo(()=>a(),[]),q=XZ.useMemo(()=>J?LZ(J):null,[J]),V=XZ.useMemo(()=>J?NZ(J,X):null,[J,X]),{data:B,isLoading:W,error:D}=YZ.useQuery({queryKey:["uiConfig",Z.pathname+Z.search,J],enabled:!!J,queryFn:async()=>{let A=new URLSearchParams(Z.search);A.set("__pieroot","web");let w="/api/content"+Z.pathname+"?"+A.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",w);let K=await Y.get(w,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(G)console.log("[PieRoot] Received UI configuration:",K.data);return K.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(A)=>Math.min(1000*2**A,30000),...H}),O=y$(Z.pathname,$,U);if(!J)return O??null;if(G)console.log("[PieRoot] Rendering with location:",Z),console.log("[PieRoot] API_SERVER:",J),console.log("[PieRoot] CENTRIFUGE_SERVER:",X),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!$);if(D){if(G)console.error("[PieRoot] Error fetching UI configuration:",D),console.error("[PieRoot] Error details:",{message:D.message,status:D.response?.status,data:D.response?.data});return z?.(D),O}if(W||!B){if(G)console.log("[PieRoot] Loading state:",{isLoading:W,hasUiConfiguration:!!B});return O}if(G)console.log("[PieRoot] UI configuration loaded successfully:",B),console.log("[PieRoot] Rendering UI with configuration");return L.jsx(h.Provider,{value:_,children:L.jsx(v.Provider,{value:q,children:L.jsx(m.Provider,{value:V,children:L.jsx(C.Provider,{value:U??L.jsx(L.Fragment,{}),children:L.jsx(cZ,{children:L.jsx(lZ,{children:T?L.jsx(j,{uiConfig:B}):L.jsx("form",{id:"piedata_global_form",action:J+"api/process"+Z.pathname,method:"post",encType:"multipart/form-data",children:L.jsx(j,{uiConfig:B})})})})})})})})},kz=(Z)=>{let U=XZ.useMemo(()=>new YZ.QueryClient,[]),$=Z.queryClient??U;return L.jsx(g.Provider,{value:Z.onNavigate,children:L.jsx(r.Provider,{value:Z.config,children:L.jsx(l.Provider,{value:Z.onError,children:L.jsx(YZ.QueryClientProvider,{client:$,children:L.jsx(bz,{...Z})})})})})},oZ=kz;var BZ=require("react"),sZ=require("@tanstack/react-query");var R=require("react/jsx-runtime"),Sz=({location:Z,fallback:U,children:$,disableGlobalForm:z})=>{let H=QZ(),T=AZ(),J=d(),X=BZ.useMemo(()=>a(),[]),G=BZ.useMemo(()=>H?LZ(H):null,[H]),Y=BZ.useMemo(()=>H?NZ(H,T):null,[H,T]);if(J)console.log("[PieRoot] Rendering with location:",Z),console.log("[PieRoot] API_SERVER:",H),console.log("[PieRoot] CENTRIFUGE_SERVER:",T),console.log("[PieRoot] Fallback provided:",!!U);return R.jsx(h.Provider,{value:X,children:R.jsx(v.Provider,{value:G,children:R.jsx(m.Provider,{value:Y,children:R.jsx(C.Provider,{value:U??R.jsx(R.Fragment,{}),children:R.jsx(cZ,{children:R.jsx(lZ,{children:z?$:R.jsx("form",{id:"piedata_global_form",action:H+"api/process"+Z.pathname,method:"post",encType:"multipart/form-data",children:$})})})})})})})},mz=(Z)=>{let[U]=BZ.useState(()=>new sZ.QueryClient),$=Z.queryClient??U;return R.jsx(g.Provider,{value:Z.onNavigate,children:R.jsx(r.Provider,{value:Z.config,children:R.jsx(l.Provider,{value:Z.onError,children:R.jsx(sZ.QueryClientProvider,{client:$,children:R.jsx(Sz,{...Z})})})})})},b$=mz;var k$=require("react");var QU=require("react/jsx-runtime"),vz=QU.jsx("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),hz=({apiServer:Z,pathname:U="/",search:$="",centrifugeServer:z,fallback:H,enableRenderingLog:T=!1})=>{let J=Z??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"",X=k$.useMemo(()=>({apiServer:J,centrifugeServer:z,enableRenderingLog:T,pageProcessor:"web"}),[J,z,T]);return QU.jsx(oZ,{location:{pathname:U,search:$},config:X,fallback:H??vz,onNavigate:(Y)=>{if(typeof window<"u")window.history.pushState(null,"",Y)}})},S$=hz;var m$=require("clsx"),v$=require("tailwind-merge");function h$(...Z){return v$.twMerge(m$.clsx(Z))}var g$=()=>{N.submitGlobalForm()};var p$=(Z,U)=>`${Z}${wZ}${U}`;
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{useMemo as E}from"react";import{QueryClient as VL,QueryClientProvider as YL,useQuery as DL}from"@tanstack/react-query";import FU from"mitt";import{createContext as KU,useCallback as BL,useContext as WL}from"react";var w=globalThis,H=(U,L)=>{let $=Symbol.for(U);if(!($ in w))w[$]=L();return w[$]};function g(){return H("@swarm.ing/pieui:mitt-emitter",()=>FU())}var OU=H("@swarm.ing/pieui:context:mitt",()=>KU(null));var h=OU;import{io as XU}from"socket.io-client";import{createContext as qU}from"react";var c=H("@swarm.ing/pieui:socket-cache",()=>new Map),l=(U)=>{let L=c.get(U);if(L)return L;let $=XU(U,{autoConnect:!1,transports:["websocket"]});return c.set(U,$),$},EU=H("@swarm.ing/pieui:context:socket",()=>qU(null)),W=EU;import{createContext as BU}from"react";import{Centrifuge as p}from"centrifuge";var o=H("@swarm.ing/pieui:centrifuge-cache",()=>new Map),s=(U,L)=>{if(!L)return null;let $=`${U}::${L}`,I=o.get($);if(I)return I;async function J(){let T=await fetch(U+"api/centrifuge/gen_token",{credentials:"include"});if(!T.ok){if(T.status===401||T.status===403)throw new p.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${T.status}`)}return(await T.json()).token}let z=new p(L,{getToken:J});return o.set($,z),z},WU=H("@swarm.ing/pieui:context:centrifuge",()=>BU(null)),N=WU;import{useContext as kU,useEffect as SU}from"react";import{useEffect as NU,useState as RU}from"react";var R=new Map,j=new Map;function M(U,L){let $=`${U}::${L}`,I=U?R.get($):void 0,[J,z]=RU(I??null);return NU(()=>{if(!U)return;if(R.has($)){z(R.get($));return}let T=j.get($);if(!T)T=fetch(U+`api/support/${L}`,{method:"GET"}).then((Z)=>Z.json()).then((Z)=>{return R.set($,Z),j.delete($),Z}).catch((Z)=>{throw j.delete($),Z}),j.set($,T);let Y=!1;return T.then((Z)=>{if(!Y)z(Z)}).catch(()=>{}),()=>{Y=!0}},[U,L,$]),J}import{createContext as jU,useContext as MU}from"react";var x=H("@swarm.ing/pieui:context:pieConfig",()=>jU(null)),C=()=>{let U=MU(x);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},k=()=>{let{apiServer:U}=C();return U},A=k,n=()=>{let{centrifugeServer:U}=C();return U};var Q=()=>{let{enableRenderingLog:U}=C();return U};var AU=(U)=>{let L=document.cookie?document.cookie.split(";"):[];for(let $ of L){let I=$.indexOf("=");if((I===-1?$:$.slice(0,I)).trim()===U){let z=I===-1?"":$.slice(I+1).trim();try{return decodeURIComponent(z)}catch{return z}}}return null},PU={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(U){if(typeof window<"u")window.sid=U},readWebStorage(U,L){return(U==="local"?window.localStorage:window.sessionStorage).getItem(L)},readCookie:AU,readUrlParams(U){return new URLSearchParams(window.location.search).getAll(U)},readDomInput(U){let L=document.getElementsByName(U);if(!L.length)return null;let $=L[0];if($ instanceof HTMLInputElement){if($.type==="file"&&$.files)return Array.from($.files);return[$.value]}if($ instanceof HTMLTextAreaElement)return[$.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let U=document.getElementById("piedata_global_form");U&&U.submit()}},r=PU;var fU={};function D(){return fU}var i=new Map;var a=(U)=>{return i.has(U)?i.get(U):null};var t,yU={isClient(){return!0},readSid(){return t},setSid(U){t=U},readWebStorage(U,L){let $=D(),I=U==="local"?$.storage:$.sessionStorage;return I?I.getItem(L):null},async readWebStorageAsync(U,L){let $=D(),I=U==="local"?$.asyncStorage:$.asyncSessionStorage;if(I)return I.getItem(L);let J=U==="local"?$.storage:$.sessionStorage;return J?J.getItem(L):null},readCookie(U){let L=D();return L.getCookie?L.getCookie(U):null},readUrlParams(U){let L=D();return L.getRouteParams?L.getRouteParams(U):[]},readDomInput(U){let L=D();return L.getInput?L.getInput(U):a(U)},submitGlobalForm(){D().submitForm?.()}},e=yU;var wU=typeof navigator<"u"&&navigator.product==="ReactNative",xU=wU?e:r,P=xU;var CU=H("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function UU(){CU.resolve?.()}var bU=({children:U})=>{let L=kU(W),$=A(),I=M($,"socketIO"),J=(z)=>{if(P.isClient())P.setSid(z.sid),UU(),console.log(`SocketIO initialized: ${P.readSid()}`)};return SU(()=>{if(!L)return;let z=()=>{console.log("SocketIO connected")},T=(Y)=>{console.log(`SocketIO disconnected: ${Y}`),L.connect()};if(I)L.on("pieinit",J),L.on("connect",z),L.on("disconnect",T),L.connect();return()=>{if(I)L.off("pieinit",J),L.off("connect",z),L.off("disconnect",T),L.disconnect()}},[L,I]),U},LU=bU;import{useContext as mU,useEffect as vU}from"react";var dU=({children:U})=>{let L=mU(N),$=A(),I=M($,"centrifuge");return vU(()=>{if(!L)return;let J=()=>{console.log("Centrifuge connected")},z=(T)=>{console.log("Centrifuge disconnected:",T)};if(I)L.on("connected",J),L.on("disconnected",z),L.connect();return()=>{if(I)L.disconnect()}},[L,I]),U},$U=dU;import{createContext as uU}from"react";import{jsx as cU,Fragment as hU}from"react/jsx-runtime";var gU=H("@swarm.ing/pieui:context:fallback",()=>uU(cU(hU,{}))),_=gU;import{createContext as lU}from"react";var pU=H("@swarm.ing/pieui:context:lazyError",()=>lU(void 0)),F=pU;var oU=H("@swarm.ing/pieui:component-registry",()=>new Map);var f=(U)=>{return oU.get(U)};import{useContext as zU,memo as tU}from"react";import{Component as sU,Suspense as nU}from"react";import{jsx as aU}from"react/jsx-runtime";var rU=2,iU=400;class K extends sU{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<rU){let L=iU*(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 aU(nU,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as S}from"react/jsx-runtime";function eU({uiConfig:U,setUiAjaxConfiguration:L}){let $=zU(_),I=zU(F),J=Q();if(J)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=f(U.card);if(!z?.component){if(J)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return $}if(J)console.log("[UI] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata});let T=z.component,Y=S(T,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if(z.isLazy){if(J)console.log("[UI] Rendering lazy component with Suspense:",z.name);return S(K,{name:z.name,fallback:z.fallback?S(z.fallback,{}):$,onError:I,children:Y})}if(J)console.log("[UI] Rendering component directly:",z.name);return Y}var b=tU(eU);import{createAxiosDateTransformer as GL}from"axios-date-transformer";import{useEffect as IU,useState as UL}from"react";var O=()=>{let[U,L]=UL(null);return IU(()=>{if(typeof window>"u")return;let $=window.WebApp;if(!$)return;$.ready(),L($)},[]),U},LL=()=>{let U=O();return[U?.initDataUnsafe,U?.initData]},$L=(U)=>{let L=O();return IU(()=>{if(!L||!U)return;return L.BackButton.onClick(U),L.BackButton.show(),()=>{L.BackButton.offClick(U),L.BackButton.hide()}},[L,U]),L?.BackButton??null},zL=()=>{return O()?.HapticFeedback??null};import{createContext as IL}from"react";var TL=H("@swarm.ing/pieui:context:navigate",()=>IL(void 0)),TU=TL;import{useContext as HU}from"react";import{createContext as JL}from"react";var HL=H("@swarm.ing/pieui:context:uiRenderer",()=>JL(null)),JU=HL;import{jsx as y}from"react/jsx-runtime";function ZU({uiConfig:U,setUiAjaxConfiguration:L}){let $=HU(_),I=HU(F),J=Q();if(J)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=f(U.card);if(!z?.component){if(J)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return $}if(J)console.log("[UILoading] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata,hasFallback:!!z.fallback});if(z.fallback){if(J)console.log("[UILoading] Rendering fallback for:",z.name);let Z=z.fallback;return y(Z,{})}if(J)console.log("[UILoading] No fallback, rendering full component:",z.name);let T=z.component,Y=y(JU.Provider,{value:ZU,children:y(T,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if(z.isLazy)return y(K,{name:z.name,fallback:$,onError:I,children:Y});return Y}var VU=ZU;import{jsx as ZL}from"react/jsx-runtime";function YU(U,L,$){if(!L)return $;let I=U.replace(/^\//,""),J=L[I];if(!J)return $;return ZL(VU,{uiConfig:J})}import{jsx as V,Fragment as FL}from"react/jsx-runtime";var QL=({location:U,fallback:L,piecache:$,onError:I,queryOptions:J,disableGlobalForm:z})=>{let T=k(),Y=n(),Z=Q(),DU=E(()=>GL({baseURL:T}),[T]),GU=E(()=>g(),[]),QU=E(()=>T?l(T):null,[T]),_U=E(()=>T?s(T,Y):null,[T,Y]),B=O(),{data:X,isLoading:m,error:G}=DL({queryKey:["uiConfig",U.pathname+U.search,B?.initData],queryFn:async()=>{let q=new URLSearchParams(U.search);if(q.set("__pieroot","max"),B?.initData)q.set("initData",B.initData);let d="/api/content"+U.pathname+"?"+q.toString();if(Z)console.log("[PieRoot] Fetching UI configuration from:",d);let u=await DU.get(d,{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:",u.data);return u.data},enabled:!!B?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(q)=>Math.min(1000*2**q,30000),...J}),v=YU(U.pathname,$,L);if(!T)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(G&&Z)return console.error("[PieRoot] Error fetching UI configuration:",G),console.error("[PieRoot] Error details:",{message:G.message,status:G.response?.status,data:G.response?.data}),I?.(G),v;if(m||!X){if(Z)console.log("[PieRoot] Loading state:",{isLoading:m,hasUiConfiguration:!!X});return v}if(Z)console.log("[PieRoot] UI configuration loaded successfully:",X),console.log("[PieRoot] Rendering UI with configuration");return V(h.Provider,{value:GU,children:V(W.Provider,{value:QU,children:V(N.Provider,{value:_U,children:V(_.Provider,{value:L??V(FL,{}),children:V(LU,{children:V($U,{children:z?V(b,{uiConfig:X}):V("form",{id:"piedata_global_form",action:T+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:V(b,{uiConfig:X})})})})})})})})},_L=(U)=>{let L=E(()=>new VL,[]),$=U.queryClient??L;return V(TU.Provider,{value:U.onNavigate,children:V(x.Provider,{value:U.config,children:V(F.Provider,{value:U.onError,children:V(YL,{client:$,children:V(QL,{...U})})})})})},KL=_L;export{O as useMaxWebApp,LL as useMaxInitData,zL as useMaxHapticFeedback,$L as useMaxBackButton,KL as PieMaxRoot};
2
+ import{useMemo as P}from"react";import{QueryClient as XT,QueryClientProvider as qT,useQuery as DT}from"@tanstack/react-query";import EU from"mitt";import{createContext as jU,useCallback as AT,useContext as PT}from"react";var h=globalThis,Y=(U,T)=>{let z=Symbol.for(U);if(!(z in h))h[z]=T();return h[z]};function n(){return Y("@swarm.ing/pieui:mitt-emitter",()=>EU())}var IU=Y("@swarm.ing/pieui:context:mitt",()=>jU(null));var i=IU;import{io as OU}from"socket.io-client";import{createContext as MU}from"react";var t=Y("@swarm.ing/pieui:socket-cache",()=>new Map),e=(U)=>{let T=t.get(U);if(T)return T;let z=OU(U,{autoConnect:!1,transports:["websocket"]});return t.set(U,z),z},LU=Y("@swarm.ing/pieui:context:socket",()=>MU(null)),R=LU;import{createContext as AU}from"react";import{Centrifuge as UU}from"centrifuge";var TU=Y("@swarm.ing/pieui:centrifuge-cache",()=>new Map),zU=(U,T)=>{if(!T)return null;let z=`${U}::${T}`,Z=TU.get(z);if(Z)return Z;async function H(){let J=await fetch(U+"api/centrifuge/gen_token",{credentials:"include"});if(!J.ok){if(J.status===401||J.status===403)throw new UU.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${J.status}`)}return(await J.json()).token}let $=new UU(T,{getToken:H});return TU.set(z,$),$},PU=Y("@swarm.ing/pieui:context:centrifuge",()=>AU(null)),y=PU;import{useContext as hU,useEffect as dU,useRef as u}from"react";import{useEffect as RU,useState as yU}from"react";var w=new Map,x=new Map;function b(U,T){let z=`${U}::${T}`,Z=U?w.get(z):void 0,[H,$]=yU(Z??null);return RU(()=>{if(!U)return;if(w.has(z)){$(w.get(z));return}let J=x.get(z);if(!J)J=fetch(U+`api/support/${T}`,{method:"GET"}).then((V)=>V.json()).then((V)=>{return w.set(z,V),x.delete(z),V}).catch((V)=>{throw x.delete(z),V}),x.set(z,J);let G=!1;return J.then((V)=>{if(!G)$(V)}).catch(()=>{}),()=>{G=!0}},[U,T,z]),H}import{createContext as wU,useContext as xU}from"react";var d=Y("@swarm.ing/pieui:context:pieConfig",()=>wU(null)),A=()=>{let U=xU(d);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},g=()=>{let{apiServer:U}=A();return U},C=g,$U=()=>{let{centrifugeServer:U}=A();return U};var N=()=>{let{enableRenderingLog:U}=A();return U};var m=()=>{let{onLinkLost:U}=A();return U},f=()=>{let{onLinkRestored:U}=A();return U};var bU=(U)=>{let T=document.cookie?document.cookie.split(";"):[];for(let z of T){let Z=z.indexOf("=");if((Z===-1?z:z.slice(0,Z)).trim()===U){let $=Z===-1?"":z.slice(Z+1).trim();try{return decodeURIComponent($)}catch{return $}}}return null},CU={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(U){if(typeof window<"u")window.sid=U},readWebStorage(U,T){return(U==="local"?window.localStorage:window.sessionStorage).getItem(T)},readCookie:bU,readUrlParams(U){return new URLSearchParams(window.location.search).getAll(U)},readDomInput(U){let T=document.getElementsByName(U);if(!T.length)return null;let z=T[0];if(z instanceof HTMLInputElement){if(z.type==="file"&&z.files)return Array.from(z.files);return[z.value]}if(z instanceof HTMLTextAreaElement)return[z.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let U=document.getElementById("piedata_global_form");U&&U.submit()}},JU=CU;var mU={};function B(){return mU}var HU=new Map;var ZU=(U)=>{return HU.has(U)?HU.get(U):null};var VU,fU={isClient(){return!0},readSid(){return VU},setSid(U){VU=U},readWebStorage(U,T){let z=B(),Z=U==="local"?z.storage:z.sessionStorage;return Z?Z.getItem(T):null},async readWebStorageAsync(U,T){let z=B(),Z=U==="local"?z.asyncStorage:z.asyncSessionStorage;if(Z)return Z.getItem(T);let H=U==="local"?z.storage:z.sessionStorage;return H?H.getItem(T):null},readCookie(U){let T=B();return T.getCookie?T.getCookie(U):null},readUrlParams(U){let T=B();return T.getRouteParams?T.getRouteParams(U):[]},readDomInput(U){let T=B();return T.getInput?T.getInput(U):ZU(U)},submitGlobalForm(){B().submitForm?.()}},YU=fU;var SU=typeof navigator<"u"&&navigator.product==="ReactNative",kU=SU?YU:JU,S=kU;var vU=Y("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function GU(){vU.resolve?.()}function E(U,T){if(T==="up")return{state:"up",signal:U==="down"?"restored":null};return{state:"down",signal:U==="up"?"lost":null}}var gU=({children:U})=>{let T=hU(R),z=C(),Z=b(z,"socketIO"),H=m(),$=f(),J=u(H);J.current=H;let G=u($);G.current=$;let V=u("initial"),q=(K)=>{if(S.isClient())S.setSid(K.sid),GU(),console.log(`SocketIO initialized: ${S.readSid()}`)};return dU(()=>{if(!T||!Z)return;let K=()=>{let{state:_,signal:F}=E(V.current,"up");if(V.current=_,F==="restored")G.current?.("socketio");console.log("SocketIO connected")},D=(_)=>{if(console.log(`SocketIO disconnected: ${_}`),T.connect(),_==="io client disconnect")return;let{state:F,signal:X}=E(V.current,"down");if(V.current=F,X==="lost")J.current?.("socketio",_)};return T.on("pieinit",q),T.on("connect",K),T.on("disconnect",D),T.connect(),()=>{T.off("pieinit",q),T.off("connect",K),T.off("disconnect",D),T.disconnect()}},[T,Z]),U},QU=gU;import{useContext as uU,useEffect as pU,useRef as p}from"react";var lU=({children:U})=>{let T=uU(y),z=C(),Z=b(z,"centrifuge"),H=m(),$=f(),J=p(H);J.current=H;let G=p($);G.current=$;let V=p("initial");return pU(()=>{if(!T||!Z)return;let q=(_)=>{let{state:F,signal:X}=E(V.current,"down");if(V.current=F,X==="lost")J.current?.("centrifuge",_)},K=()=>{let{state:_,signal:F}=E(V.current,"up");if(V.current=_,F==="restored")G.current?.("centrifuge");console.log("Centrifuge connected")},D=(_)=>{console.log("Centrifuge disconnected:",_),q(_)};return T.on("connecting",q),T.on("connected",K),T.on("disconnected",D),T.connect(),()=>{T.off("connecting",q),T.off("connected",K),T.off("disconnected",D),T.disconnect()}},[T,Z]),U},_U=lU;import{createContext as cU}from"react";import{jsx as aU,Fragment as sU}from"react/jsx-runtime";var oU=Y("@swarm.ing/pieui:context:fallback",()=>cU(aU(sU,{}))),j=oU;import{createContext as rU}from"react";var nU=Y("@swarm.ing/pieui:context:lazyError",()=>rU(void 0)),I=nU;var iU=Y("@swarm.ing/pieui:component-registry",()=>new Map);var k=(U)=>{return iU.get(U)};import{useContext as FU,memo as $T}from"react";import{Component as tU,Suspense as eU}from"react";import{jsx as zT}from"react/jsx-runtime";var UT=2,TT=400;class O extends tU{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<UT){let T=TT*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((z)=>({failed:!1,attempt:z.attempt+1}))},T)}}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 zT(eU,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as l}from"react/jsx-runtime";function JT({uiConfig:U,setUiAjaxConfiguration:T}){let z=FU(j),Z=FU(I),H=N();if(H)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:",!!T);let $=k(U.card);if(!$?.component){if(H)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return z}if(H)console.log("[UI] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata});let J=$.component,G=l(J,{data:U.data,content:U.content,setUiAjaxConfiguration:T});if($.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",$.name);return l(O,{name:$.name,fallback:$.fallback?l($.fallback,{}):z,onError:Z,children:G})}if(H)console.log("[UI] Rendering component directly:",$.name);return G}var c=$T(JT);import{createAxiosDateTransformer as BT}from"axios-date-transformer";import{useEffect as KU,useState as HT}from"react";var M=()=>{let[U,T]=HT(null);return KU(()=>{if(typeof window>"u")return;let z=window.WebApp;if(!z)return;z.ready(),T(z)},[]),U},ZT=()=>{let U=M();return[U?.initDataUnsafe,U?.initData]},VT=(U)=>{let T=M();return KU(()=>{if(!T||!U)return;return T.BackButton.onClick(U),T.BackButton.show(),()=>{T.BackButton.offClick(U),T.BackButton.hide()}},[T,U]),T?.BackButton??null},YT=()=>{return M()?.HapticFeedback??null};import{createContext as GT}from"react";var QT=Y("@swarm.ing/pieui:context:navigate",()=>GT(void 0)),XU=QT;import{useContext as DU}from"react";import{createContext as _T}from"react";var FT=Y("@swarm.ing/pieui:context:uiRenderer",()=>_T(null)),qU=FT;import{jsx as v}from"react/jsx-runtime";function BU({uiConfig:U,setUiAjaxConfiguration:T}){let z=DU(j),Z=DU(I),H=N();if(H)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:",!!T);let $=k(U.card);if(!$?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return z}if(H)console.log("[UILoading] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata,hasFallback:!!$.fallback});if($.fallback){if(H)console.log("[UILoading] Rendering fallback for:",$.name);let V=$.fallback;return v(V,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",$.name);let J=$.component,G=v(qU.Provider,{value:BU,children:v(J,{data:U.data,content:U.content,setUiAjaxConfiguration:T})});if($.isLazy)return v(O,{name:$.name,fallback:z,onError:Z,children:G});return G}var WU=BU;import{jsx as KT}from"react/jsx-runtime";function NU(U,T,z){if(!T)return z;let Z=U.replace(/^\//,""),H=T[Z];if(!H)return z;return KT(WU,{uiConfig:H})}import{jsx as Q,Fragment as ET}from"react/jsx-runtime";var WT=({location:U,fallback:T,piecache:z,onError:Z,queryOptions:H,disableGlobalForm:$})=>{let J=g(),G=$U(),V=N(),q=P(()=>BT({baseURL:J}),[J]),K=P(()=>n(),[]),D=P(()=>J?e(J):null,[J]),_=P(()=>J?zU(J,G):null,[J,G]),F=M(),{data:X,isLoading:o,error:W}=DT({queryKey:["uiConfig",U.pathname+U.search,F?.initData],queryFn:async()=>{let L=new URLSearchParams(U.search);if(L.set("__pieroot","max"),F?.initData)L.set("initData",F.initData);let a="/api/content"+U.pathname+"?"+L.toString();if(V)console.log("[PieRoot] Fetching UI configuration from:",a);let r=await q.get(a,{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:",r.data);return r.data},enabled:!!F?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(L)=>Math.min(1000*2**L,30000),...H}),s=NU(U.pathname,z,T);if(!J)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(W&&V)return console.error("[PieRoot] Error fetching UI configuration:",W),console.error("[PieRoot] Error details:",{message:W.message,status:W.response?.status,data:W.response?.data}),Z?.(W),s;if(o||!X){if(V)console.log("[PieRoot] Loading state:",{isLoading:o,hasUiConfiguration:!!X});return s}if(V)console.log("[PieRoot] UI configuration loaded successfully:",X),console.log("[PieRoot] Rendering UI with configuration");return Q(i.Provider,{value:K,children:Q(R.Provider,{value:D,children:Q(y.Provider,{value:_,children:Q(j.Provider,{value:T??Q(ET,{}),children:Q(QU,{children:Q(_U,{children:$?Q(c,{uiConfig:X}):Q("form",{id:"piedata_global_form",action:J+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:Q(c,{uiConfig:X})})})})})})})})},NT=(U)=>{let T=P(()=>new XT,[]),z=U.queryClient??T;return Q(XU.Provider,{value:U.onNavigate,children:Q(d.Provider,{value:U.config,children:Q(I.Provider,{value:U.onError,children:Q(qT,{client:z,children:Q(WT,{...U})})})})})},jT=NT;export{M as useMaxWebApp,ZT as useMaxInitData,YT as useMaxHapticFeedback,VT as useMaxBackButton,jT as PieMaxRoot};
package/dist/max/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var hU=Object.create;var{getPrototypeOf:cU,defineProperty:W,getOwnPropertyNames:LU,getOwnPropertyDescriptor:lU}=Object,$U=Object.prototype.hasOwnProperty;var pU=(U,L,$)=>{$=U!=null?hU(cU(U)):{};let z=L||!U||!U.__esModule?W($,"default",{value:U,enumerable:!0}):$;for(let T of LU(U))if(!$U.call(z,T))W(z,T,{get:()=>U[T],enumerable:!0});return z},UU=new WeakMap,oU=(U)=>{var L=UU.get(U),$;if(L)return L;if(L=W({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function")LU(U).map((z)=>!$U.call(L,z)&&W(L,z,{get:()=>U[z],enumerable:!($=lU(U,z))||$.enumerable}));return UU.set(U,L),L};var sU=(U,L)=>{for(var $ in L)W(U,$,{get:L[$],enumerable:!0,configurable:!0,set:(z)=>L[$]=()=>z})};var KL={};sU(KL,{useMaxWebApp:()=>G,useMaxInitData:()=>jU,useMaxHapticFeedback:()=>AU,useMaxBackButton:()=>MU,PieMaxRoot:()=>mU});module.exports=oU(KL);var X=require("react"),q=require("@tanstack/react-query");var zU=pU(require("mitt")),A=require("react");var c=globalThis,H=(U,L)=>{let $=Symbol.for(U);if(!($ in c))c[$]=L();return c[$]};function IU(){return H("@swarm.ing/pieui:mitt-emitter",()=>zU.default())}var nU=H("@swarm.ing/pieui:context:mitt",()=>A.createContext(null));var TU=nU;var HU=require("socket.io-client"),ZU=require("react");var JU=H("@swarm.ing/pieui:socket-cache",()=>new Map),VU=(U)=>{let L=JU.get(U);if(L)return L;let $=HU.io(U,{autoConnect:!1,transports:["websocket"]});return JU.set(U,$),$},rU=H("@swarm.ing/pieui:context:socket",()=>ZU.createContext(null)),P=rU;var DU=require("react"),l=require("centrifuge");var YU=H("@swarm.ing/pieui:centrifuge-cache",()=>new Map),GU=(U,L)=>{if(!L)return null;let $=`${U}::${L}`,z=YU.get($);if(z)return z;async function T(){let J=await fetch(U+"api/centrifuge/gen_token",{credentials:"include"});if(!J.ok){if(J.status===401||J.status===403)throw new l.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${J.status}`)}return(await J.json()).token}let I=new l.Centrifuge(L,{getToken:T});return YU.set($,I),I},iU=H("@swarm.ing/pieui:context:centrifuge",()=>DU.createContext(null)),f=iU;var m=require("react");var x=require("react"),y=new Map,w=new Map;function C(U,L){let $=`${U}::${L}`,z=U?y.get($):void 0,[T,I]=x.useState(z??null);return x.useEffect(()=>{if(!U)return;if(y.has($)){I(y.get($));return}let J=w.get($);if(!J)J=fetch(U+`api/support/${L}`,{method:"GET"}).then((V)=>V.json()).then((V)=>{return y.set($,V),w.delete($),V}).catch((V)=>{throw w.delete($),V}),w.set($,J);let Y=!1;return J.then((V)=>{if(!Y)I(V)}).catch(()=>{}),()=>{Y=!0}},[U,L,$]),T}var k=require("react");var p=H("@swarm.ing/pieui:context:pieConfig",()=>k.createContext(null)),o=()=>{let U=k.useContext(p);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},s=()=>{let{apiServer:U}=o();return U},S=s,QU=()=>{let{centrifugeServer:U}=o();return U};var _=()=>{let{enableRenderingLog:U}=o();return U};var aU=(U)=>{let L=document.cookie?document.cookie.split(";"):[];for(let $ of L){let z=$.indexOf("=");if((z===-1?$:$.slice(0,z)).trim()===U){let I=z===-1?"":$.slice(z+1).trim();try{return decodeURIComponent(I)}catch{return I}}}return null},tU={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(U){if(typeof window<"u")window.sid=U},readWebStorage(U,L){return(U==="local"?window.localStorage:window.sessionStorage).getItem(L)},readCookie:aU,readUrlParams(U){return new URLSearchParams(window.location.search).getAll(U)},readDomInput(U){let L=document.getElementsByName(U);if(!L.length)return null;let $=L[0];if($ instanceof HTMLInputElement){if($.type==="file"&&$.files)return Array.from($.files);return[$.value]}if($ instanceof HTMLTextAreaElement)return[$.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let U=document.getElementById("piedata_global_form");U&&U.submit()}},_U=tU;var eU={};function D(){return eU}var FU=new Map;var KU=(U)=>{return FU.has(U)?FU.get(U):null};var OU,UL={isClient(){return!0},readSid(){return OU},setSid(U){OU=U},readWebStorage(U,L){let $=D(),z=U==="local"?$.storage:$.sessionStorage;return z?z.getItem(L):null},async readWebStorageAsync(U,L){let $=D(),z=U==="local"?$.asyncStorage:$.asyncSessionStorage;if(z)return z.getItem(L);let T=U==="local"?$.storage:$.sessionStorage;return T?T.getItem(L):null},readCookie(U){let L=D();return L.getCookie?L.getCookie(U):null},readUrlParams(U){let L=D();return L.getRouteParams?L.getRouteParams(U):[]},readDomInput(U){let L=D();return L.getInput?L.getInput(U):KU(U)},submitGlobalForm(){D().submitForm?.()}},XU=UL;var LL=typeof navigator<"u"&&navigator.product==="ReactNative",$L=LL?XU:_U,b=$L;var zL=H("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function qU(){zL.resolve?.()}var IL=({children:U})=>{let L=m.useContext(P),$=S(),z=C($,"socketIO"),T=(I)=>{if(b.isClient())b.setSid(I.sid),qU(),console.log(`SocketIO initialized: ${b.readSid()}`)};return m.useEffect(()=>{if(!L)return;let I=()=>{console.log("SocketIO connected")},J=(Y)=>{console.log(`SocketIO disconnected: ${Y}`),L.connect()};if(z)L.on("pieinit",T),L.on("connect",I),L.on("disconnect",J),L.connect();return()=>{if(z)L.off("pieinit",T),L.off("connect",I),L.off("disconnect",J),L.disconnect()}},[L,z]),U},EU=IL;var v=require("react");var TL=({children:U})=>{let L=v.useContext(f),$=S(),z=C($,"centrifuge");return v.useEffect(()=>{if(!L)return;let T=()=>{console.log("Centrifuge connected")},I=(J)=>{console.log("Centrifuge disconnected:",J)};if(z)L.on("connected",T),L.on("disconnected",I),L.connect();return()=>{if(z)L.disconnect()}},[L,z]),U},BU=TL;var WU=require("react");var d=require("react/jsx-runtime"),JL=H("@swarm.ing/pieui:context:fallback",()=>WU.createContext(d.jsx(d.Fragment,{}))),F=JL;var NU=require("react");var HL=H("@swarm.ing/pieui:context:lazyError",()=>NU.createContext(void 0)),K=HL;var ZL=H("@swarm.ing/pieui:component-registry",()=>new Map);var u=(U)=>{return ZL.get(U)};var N=require("react");var g=require("react"),RU=require("react/jsx-runtime"),VL=2,YL=400;class O extends g.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<VL){let L=YL*(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 RU.jsx(g.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var h=require("react/jsx-runtime");function DL({uiConfig:U,setUiAjaxConfiguration:L}){let $=N.useContext(F),z=N.useContext(K),T=_();if(T)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=u(U.card);if(!I?.component){if(T)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return $}if(T)console.log("[UI] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata});let J=I.component,Y=h.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if(I.isLazy){if(T)console.log("[UI] Rendering lazy component with Suspense:",I.name);return h.jsx(O,{name:I.name,fallback:I.fallback?h.jsx(I.fallback,{}):$,onError:z,children:Y})}if(T)console.log("[UI] Rendering component directly:",I.name);return Y}var n=N.memo(DL);var bU=require("axios-date-transformer");var R=require("react"),G=()=>{let[U,L]=R.useState(null);return R.useEffect(()=>{if(typeof window>"u")return;let $=window.WebApp;if(!$)return;$.ready(),L($)},[]),U},jU=()=>{let U=G();return[U?.initDataUnsafe,U?.initData]},MU=(U)=>{let L=G();return R.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},AU=()=>{return G()?.HapticFeedback??null};var PU=require("react");var GL=H("@swarm.ing/pieui:context:navigate",()=>PU.createContext(void 0)),fU=GL;var r=require("react");var yU=require("react");var QL=H("@swarm.ing/pieui:context:uiRenderer",()=>yU.createContext(null)),wU=QL;var j=require("react/jsx-runtime");function xU({uiConfig:U,setUiAjaxConfiguration:L}){let $=r.useContext(F),z=r.useContext(K),T=_();if(T)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=u(U.card);if(!I?.component){if(T)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return $}if(T)console.log("[UILoading] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata,hasFallback:!!I.fallback});if(I.fallback){if(T)console.log("[UILoading] Rendering fallback for:",I.name);let V=I.fallback;return j.jsx(V,{})}if(T)console.log("[UILoading] No fallback, rendering full component:",I.name);let J=I.component,Y=j.jsx(wU.Provider,{value:xU,children:j.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if(I.isLazy)return j.jsx(O,{name:I.name,fallback:$,onError:z,children:Y});return Y}var CU=xU;var SU=require("react/jsx-runtime");function kU(U,L,$){if(!L)return $;let z=U.replace(/^\//,""),T=L[z];if(!T)return $;return SU.jsx(CU,{uiConfig:T})}var Z=require("react/jsx-runtime"),_L=({location:U,fallback:L,piecache:$,onError:z,queryOptions:T,disableGlobalForm:I})=>{let J=s(),Y=QU(),V=_(),vU=X.useMemo(()=>bU.createAxiosDateTransformer({baseURL:J}),[J]),dU=X.useMemo(()=>IU(),[]),uU=X.useMemo(()=>J?VU(J):null,[J]),gU=X.useMemo(()=>J?GU(J,Y):null,[J,Y]),M=G(),{data:E,isLoading:i,error:Q}=q.useQuery({queryKey:["uiConfig",U.pathname+U.search,M?.initData],queryFn:async()=>{let B=new URLSearchParams(U.search);if(B.set("__pieroot","max"),M?.initData)B.set("initData",M.initData);let t="/api/content"+U.pathname+"?"+B.toString();if(V)console.log("[PieRoot] Fetching UI configuration from:",t);let e=await vU.get(t,{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:",e.data);return e.data},enabled:!!M?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(B)=>Math.min(1000*2**B,30000),...T}),a=kU(U.pathname,$,L);if(!J)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(Q&&V)return console.error("[PieRoot] Error fetching UI configuration:",Q),console.error("[PieRoot] Error details:",{message:Q.message,status:Q.response?.status,data:Q.response?.data}),z?.(Q),a;if(i||!E){if(V)console.log("[PieRoot] Loading state:",{isLoading:i,hasUiConfiguration:!!E});return a}if(V)console.log("[PieRoot] UI configuration loaded successfully:",E),console.log("[PieRoot] Rendering UI with configuration");return Z.jsx(TU.Provider,{value:dU,children:Z.jsx(P.Provider,{value:uU,children:Z.jsx(f.Provider,{value:gU,children:Z.jsx(F.Provider,{value:L??Z.jsx(Z.Fragment,{}),children:Z.jsx(EU,{children:Z.jsx(BU,{children:I?Z.jsx(n,{uiConfig:E}):Z.jsx("form",{id:"piedata_global_form",action:J+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:Z.jsx(n,{uiConfig:E})})})})})})})})},FL=(U)=>{let L=X.useMemo(()=>new q.QueryClient,[]),$=U.queryClient??L;return Z.jsx(fU.Provider,{value:U.onNavigate,children:Z.jsx(p.Provider,{value:U.config,children:Z.jsx(K.Provider,{value:U.onError,children:Z.jsx(q.QueryClientProvider,{client:$,children:Z.jsx(_L,{...U})})})})})},mU=FL;
2
+ var cU=Object.create;var{getPrototypeOf:oU,defineProperty:w,getOwnPropertyNames:YU,getOwnPropertyDescriptor:sU}=Object,GU=Object.prototype.hasOwnProperty;var aU=(U,T,z)=>{z=U!=null?cU(oU(U)):{};let J=T||!U||!U.__esModule?w(z,"default",{value:U,enumerable:!0}):z;for(let H of YU(U))if(!GU.call(J,H))w(J,H,{get:()=>U[H],enumerable:!0});return J},VU=new WeakMap,rU=(U)=>{var T=VU.get(U),z;if(T)return T;if(T=w({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function")YU(U).map((J)=>!GU.call(T,J)&&w(T,J,{get:()=>U[J],enumerable:!(z=sU(U,J))||z.enumerable}));return VU.set(U,T),T};var nU=(U,T)=>{for(var z in T)w(U,z,{get:T[z],enumerable:!0,configurable:!0,set:(J)=>T[z]=()=>J})};var NT={};nU(NT,{useMaxWebApp:()=>E,useMaxInitData:()=>bU,useMaxHapticFeedback:()=>mU,useMaxBackButton:()=>CU,PieMaxRoot:()=>lU});module.exports=rU(NT);var P=require("react"),R=require("@tanstack/react-query");var QU=aU(require("mitt")),f=require("react");var i=globalThis,Y=(U,T)=>{let z=Symbol.for(U);if(!(z in i))i[z]=T();return i[z]};function _U(){return Y("@swarm.ing/pieui:mitt-emitter",()=>QU.default())}var iU=Y("@swarm.ing/pieui:context:mitt",()=>f.createContext(null));var FU=iU;var XU=require("socket.io-client"),qU=require("react");var KU=Y("@swarm.ing/pieui:socket-cache",()=>new Map),DU=(U)=>{let T=KU.get(U);if(T)return T;let z=XU.io(U,{autoConnect:!1,transports:["websocket"]});return KU.set(U,z),z},tU=Y("@swarm.ing/pieui:context:socket",()=>qU.createContext(null)),S=tU;var WU=require("react"),t=require("centrifuge");var BU=Y("@swarm.ing/pieui:centrifuge-cache",()=>new Map),NU=(U,T)=>{if(!T)return null;let z=`${U}::${T}`,J=BU.get(z);if(J)return J;async function H(){let Z=await fetch(U+"api/centrifuge/gen_token",{credentials:"include"});if(!Z.ok){if(Z.status===401||Z.status===403)throw new t.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${Z.status}`)}return(await Z.json()).token}let $=new t.Centrifuge(T,{getToken:H});return BU.set(z,$),$},eU=Y("@swarm.ing/pieui:context:centrifuge",()=>WU.createContext(null)),k=eU;var D=require("react");var d=require("react"),v=new Map,h=new Map;function g(U,T){let z=`${U}::${T}`,J=U?v.get(z):void 0,[H,$]=d.useState(J??null);return d.useEffect(()=>{if(!U)return;if(v.has(z)){$(v.get(z));return}let Z=h.get(z);if(!Z)Z=fetch(U+`api/support/${T}`,{method:"GET"}).then((V)=>V.json()).then((V)=>{return v.set(z,V),h.delete(z),V}).catch((V)=>{throw h.delete(z),V}),h.set(z,Z);let G=!1;return Z.then((V)=>{if(!G)$(V)}).catch(()=>{}),()=>{G=!0}},[U,T,z]),H}var u=require("react");var e=Y("@swarm.ing/pieui:context:pieConfig",()=>u.createContext(null)),x=()=>{let U=u.useContext(e);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},UU=()=>{let{apiServer:U}=x();return U},p=UU,EU=()=>{let{centrifugeServer:U}=x();return U};var I=()=>{let{enableRenderingLog:U}=x();return U};var l=()=>{let{onLinkLost:U}=x();return U},c=()=>{let{onLinkRestored:U}=x();return U};var UT=(U)=>{let T=document.cookie?document.cookie.split(";"):[];for(let z of T){let J=z.indexOf("=");if((J===-1?z:z.slice(0,J)).trim()===U){let $=J===-1?"":z.slice(J+1).trim();try{return decodeURIComponent($)}catch{return $}}}return null},TT={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(U){if(typeof window<"u")window.sid=U},readWebStorage(U,T){return(U==="local"?window.localStorage:window.sessionStorage).getItem(T)},readCookie:UT,readUrlParams(U){return new URLSearchParams(window.location.search).getAll(U)},readDomInput(U){let T=document.getElementsByName(U);if(!T.length)return null;let z=T[0];if(z instanceof HTMLInputElement){if(z.type==="file"&&z.files)return Array.from(z.files);return[z.value]}if(z instanceof HTMLTextAreaElement)return[z.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let U=document.getElementById("piedata_global_form");U&&U.submit()}},jU=TT;var zT={};function N(){return zT}var IU=new Map;var OU=(U)=>{return IU.has(U)?IU.get(U):null};var MU,$T={isClient(){return!0},readSid(){return MU},setSid(U){MU=U},readWebStorage(U,T){let z=N(),J=U==="local"?z.storage:z.sessionStorage;return J?J.getItem(T):null},async readWebStorageAsync(U,T){let z=N(),J=U==="local"?z.asyncStorage:z.asyncSessionStorage;if(J)return J.getItem(T);let H=U==="local"?z.storage:z.sessionStorage;return H?H.getItem(T):null},readCookie(U){let T=N();return T.getCookie?T.getCookie(U):null},readUrlParams(U){let T=N();return T.getRouteParams?T.getRouteParams(U):[]},readDomInput(U){let T=N();return T.getInput?T.getInput(U):OU(U)},submitGlobalForm(){N().submitForm?.()}},LU=$T;var JT=typeof navigator<"u"&&navigator.product==="ReactNative",HT=JT?LU:jU,o=HT;var ZT=Y("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function AU(){ZT.resolve?.()}function O(U,T){if(T==="up")return{state:"up",signal:U==="down"?"restored":null};return{state:"down",signal:U==="up"?"lost":null}}var VT=({children:U})=>{let T=D.useContext(S),z=p(),J=g(z,"socketIO"),H=l(),$=c(),Z=D.useRef(H);Z.current=H;let G=D.useRef($);G.current=$;let V=D.useRef("initial"),q=(K)=>{if(o.isClient())o.setSid(K.sid),AU(),console.log(`SocketIO initialized: ${o.readSid()}`)};return D.useEffect(()=>{if(!T||!J)return;let K=()=>{let{state:_,signal:F}=O(V.current,"up");if(V.current=_,F==="restored")G.current?.("socketio");console.log("SocketIO connected")},W=(_)=>{if(console.log(`SocketIO disconnected: ${_}`),T.connect(),_==="io client disconnect")return;let{state:F,signal:X}=O(V.current,"down");if(V.current=F,X==="lost")Z.current?.("socketio",_)};return T.on("pieinit",q),T.on("connect",K),T.on("disconnect",W),T.connect(),()=>{T.off("pieinit",q),T.off("connect",K),T.off("disconnect",W),T.disconnect()}},[T,J]),U},PU=VT;var B=require("react");var YT=({children:U})=>{let T=B.useContext(k),z=p(),J=g(z,"centrifuge"),H=l(),$=c(),Z=B.useRef(H);Z.current=H;let G=B.useRef($);G.current=$;let V=B.useRef("initial");return B.useEffect(()=>{if(!T||!J)return;let q=(_)=>{let{state:F,signal:X}=O(V.current,"down");if(V.current=F,X==="lost")Z.current?.("centrifuge",_)},K=()=>{let{state:_,signal:F}=O(V.current,"up");if(V.current=_,F==="restored")G.current?.("centrifuge");console.log("Centrifuge connected")},W=(_)=>{console.log("Centrifuge disconnected:",_),q(_)};return T.on("connecting",q),T.on("connected",K),T.on("disconnected",W),T.connect(),()=>{T.off("connecting",q),T.off("connected",K),T.off("disconnected",W),T.disconnect()}},[T,J]),U},RU=YT;var yU=require("react");var s=require("react/jsx-runtime"),GT=Y("@swarm.ing/pieui:context:fallback",()=>yU.createContext(s.jsx(s.Fragment,{}))),M=GT;var wU=require("react");var QT=Y("@swarm.ing/pieui:context:lazyError",()=>wU.createContext(void 0)),L=QT;var _T=Y("@swarm.ing/pieui:component-registry",()=>new Map);var a=(U)=>{return _T.get(U)};var b=require("react");var r=require("react"),xU=require("react/jsx-runtime"),FT=2,KT=400;class A extends r.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<FT){let T=KT*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((z)=>({failed:!1,attempt:z.attempt+1}))},T)}}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(r.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var n=require("react/jsx-runtime");function XT({uiConfig:U,setUiAjaxConfiguration:T}){let z=b.useContext(M),J=b.useContext(L),H=I();if(H)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:",!!T);let $=a(U.card);if(!$?.component){if(H)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return z}if(H)console.log("[UI] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata});let Z=$.component,G=n.jsx(Z,{data:U.data,content:U.content,setUiAjaxConfiguration:T});if($.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",$.name);return n.jsx(A,{name:$.name,fallback:$.fallback?n.jsx($.fallback,{}):z,onError:J,children:G})}if(H)console.log("[UI] Rendering component directly:",$.name);return G}var TU=b.memo(XT);var pU=require("axios-date-transformer");var C=require("react"),E=()=>{let[U,T]=C.useState(null);return C.useEffect(()=>{if(typeof window>"u")return;let z=window.WebApp;if(!z)return;z.ready(),T(z)},[]),U},bU=()=>{let U=E();return[U?.initDataUnsafe,U?.initData]},CU=(U)=>{let T=E();return C.useEffect(()=>{if(!T||!U)return;return T.BackButton.onClick(U),T.BackButton.show(),()=>{T.BackButton.offClick(U),T.BackButton.hide()}},[T,U]),T?.BackButton??null},mU=()=>{return E()?.HapticFeedback??null};var fU=require("react");var qT=Y("@swarm.ing/pieui:context:navigate",()=>fU.createContext(void 0)),SU=qT;var zU=require("react");var kU=require("react");var DT=Y("@swarm.ing/pieui:context:uiRenderer",()=>kU.createContext(null)),vU=DT;var m=require("react/jsx-runtime");function hU({uiConfig:U,setUiAjaxConfiguration:T}){let z=zU.useContext(M),J=zU.useContext(L),H=I();if(H)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:",!!T);let $=a(U.card);if(!$?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return z}if(H)console.log("[UILoading] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata,hasFallback:!!$.fallback});if($.fallback){if(H)console.log("[UILoading] Rendering fallback for:",$.name);let V=$.fallback;return m.jsx(V,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",$.name);let Z=$.component,G=m.jsx(vU.Provider,{value:hU,children:m.jsx(Z,{data:U.data,content:U.content,setUiAjaxConfiguration:T})});if($.isLazy)return m.jsx(A,{name:$.name,fallback:z,onError:J,children:G});return G}var dU=hU;var uU=require("react/jsx-runtime");function gU(U,T,z){if(!T)return z;let J=U.replace(/^\//,""),H=T[J];if(!H)return z;return uU.jsx(dU,{uiConfig:H})}var Q=require("react/jsx-runtime"),BT=({location:U,fallback:T,piecache:z,onError:J,queryOptions:H,disableGlobalForm:$})=>{let Z=UU(),G=EU(),V=I(),q=P.useMemo(()=>pU.createAxiosDateTransformer({baseURL:Z}),[Z]),K=P.useMemo(()=>_U(),[]),W=P.useMemo(()=>Z?DU(Z):null,[Z]),_=P.useMemo(()=>Z?NU(Z,G):null,[Z,G]),F=E(),{data:X,isLoading:$U,error:j}=R.useQuery({queryKey:["uiConfig",U.pathname+U.search,F?.initData],queryFn:async()=>{let y=new URLSearchParams(U.search);if(y.set("__pieroot","max"),F?.initData)y.set("initData",F.initData);let HU="/api/content"+U.pathname+"?"+y.toString();if(V)console.log("[PieRoot] Fetching UI configuration from:",HU);let ZU=await q.get(HU,{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:",ZU.data);return ZU.data},enabled:!!F?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(y)=>Math.min(1000*2**y,30000),...H}),JU=gU(U.pathname,z,T);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(j&&V)return console.error("[PieRoot] Error fetching UI configuration:",j),console.error("[PieRoot] Error details:",{message:j.message,status:j.response?.status,data:j.response?.data}),J?.(j),JU;if($U||!X){if(V)console.log("[PieRoot] Loading state:",{isLoading:$U,hasUiConfiguration:!!X});return JU}if(V)console.log("[PieRoot] UI configuration loaded successfully:",X),console.log("[PieRoot] Rendering UI with configuration");return Q.jsx(FU.Provider,{value:K,children:Q.jsx(S.Provider,{value:W,children:Q.jsx(k.Provider,{value:_,children:Q.jsx(M.Provider,{value:T??Q.jsx(Q.Fragment,{}),children:Q.jsx(PU,{children:Q.jsx(RU,{children:$?Q.jsx(TU,{uiConfig:X}):Q.jsx("form",{id:"piedata_global_form",action:Z+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:Q.jsx(TU,{uiConfig:X})})})})})})})})},WT=(U)=>{let T=P.useMemo(()=>new R.QueryClient,[]),z=U.queryClient??T;return Q.jsx(SU.Provider,{value:U.onNavigate,children:Q.jsx(e.Provider,{value:U.config,children:Q.jsx(L.Provider,{value:U.onError,children:Q.jsx(R.QueryClientProvider,{client:z,children:Q.jsx(BT,{...U})})})})})},lU=WT;
@@ -1,15 +1,16 @@
1
- import { PieBaseRootProps } from '../components/PieBaseRoot/types';
1
+ import React from 'react';
2
+ import { PieRootProps } from '../components/PieRoot/types';
2
3
  /**
3
- * React Native root for PieUI. Behaves exactly like {@link PieBaseRoot} but
4
- * never renders the implicit `<form id="piedata_global_form">` wrapper — there
5
- * is no HTML form on native, so the global "submit" is handled by the platform
6
- * `ClientSources` implementation instead (wire it via
7
- * {@link configureNativeClientSources}).
4
+ * React Native root for PieUI. Fetches the server-driven `UIConfig` from
5
+ * `api/content{pathname}{search}` like {@link PieRoot}, but identifies itself to
6
+ * the server with `__pieroot=<Platform.OS>` (`ios` / `android`) the native
7
+ * counterpart of PieTelegramRoot (`telegram`) and PieMaxRoot (`max`) and never
8
+ * renders the implicit `<form id="piedata_global_form">` wrapper (there is no
9
+ * HTML form on native; submission goes through the platform `ClientSources`).
8
10
  *
9
11
  * The host registers its own React Native leaf components with
10
- * `registerPieComponent` and renders the server-driven tree through `UI` /
11
- * `PieCard` inside this root.
12
+ * `registerPieComponent`; the fetched tree renders through `UI` / `PieCard`.
12
13
  */
13
- declare const PieNativeRoot: (props: PieBaseRootProps) => import("react").JSX.Element;
14
+ declare const PieNativeRoot: (props: PieRootProps) => React.JSX.Element;
14
15
  export default PieNativeRoot;
15
16
  //# sourceMappingURL=PieNativeRoot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PieNativeRoot.d.ts","sourceRoot":"","sources":["../../src/native/PieNativeRoot.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAElE;;;;;;;;;;GAUG;AACH,QAAA,MAAM,aAAa,GAAI,OAAO,gBAAgB,gCAE7C,CAAA;AAED,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"PieNativeRoot.d.ts","sourceRoot":"","sources":["../../src/native/PieNativeRoot.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAUtC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAoI1D;;;;;;;;;;GAUG;AACH,QAAA,MAAM,aAAa,GAAI,OAAO,YAAY,sBAezC,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -25,8 +25,8 @@ export { default as UIRendererContext, type UIRendererProps, } from '../util/uiR
25
25
  export { default as PieCard } from '../components/PieCard';
26
26
  export { registerPieComponent, getAllRegisteredComponents, getRegistrySize, registry, hasComponent, getRegistryEntry, getComponentMeta, registerMultipleComponents, unregisterComponent, getLazyComponentNames, preloadComponent, prefetchLazyComponents, } from '../util/registry';
27
27
  export { trackLazy } from '../util/lazy';
28
- export { useAjaxSubmit, readAjaxKey, readAjaxKeyAsync, parseDepName, } from '../util/ajaxCommonUtils';
29
- export type { RetryPolicy, DepSource } from '../util/ajaxCommonUtils';
28
+ export { useAjaxSubmit, useAjaxSubmits, discoverAjaxEndpoints, readAjaxKey, readAjaxKeyAsync, parseDepName, } from '../util/ajaxCommonUtils';
29
+ export type { RetryPolicy, DepSource, AjaxEndpointConfig } from '../util/ajaxCommonUtils';
30
30
  export { submitGlobalForm } from '../util/globalForm';
31
31
  export { usePieEmit } from '../util/mitt';
32
32
  export { default as MittContext, getEmitter } from '../util/mitt';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAGH,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAIlE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EACH,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GACjC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,eAAe,GAClB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACH,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,GAChB,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG1D,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,OAAO,EACH,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,YAAY,GACf,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,sCAAsC,EACtC,SAAS,EACT,YAAY,EACZ,0BAA0B,GAC7B,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAGH,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAIlE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EACH,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GACjC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,eAAe,GAClB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACH,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,GAChB,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG1D,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,OAAO,EACH,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,YAAY,GACf,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,sCAAsC,EACtC,SAAS,EACT,YAAY,EACZ,0BAA0B,GAC7B,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{lazy as RJ}from"react";var g=new Map;function u$($,J){return J.catch(()=>{if(g.get($)===J)g.delete($)}),g.set($,J),J}function U$($,J){return RJ(()=>{if(g.has(J))return g.get(J);return u$(J,$().then((Z)=>Z))})}var d$=async($,J)=>{if(!J)return;if(g.has($))return g.get($);return u$($,J().then((Z)=>Z))};var V$=globalThis,T=($,J)=>{let Z=Symbol.for($);if(!(Z in V$))V$[Z]=J();return V$[Z]};var y=T("@swarm.ing/pieui:component-registry",()=>new Map),wJ=($)=>{if(!$.name)throw Error("Component registration requires a name");if(!$.component&&!$.loader)throw Error(`Component "${$.name}" requires component or loader`);let J={name:$.name,component:$.component,loader:$.loader,metadata:$.metadata,fallback:$.fallback,isLazy:!1};if(!J.component&&J.loader)J.component=U$(J.loader,$.name),J.isLazy=!0;return J};function t($){let J=wJ($);return y.set(J.name,J),J.component}var EJ=($)=>{$.forEach((J)=>t(J))},jJ=($)=>{y.delete($)},NJ=($)=>{return y.has($)},kJ=($)=>{return y.get($)?.metadata},o=($)=>{return y.get($)},yJ=()=>{return Array.from(y.keys())},xJ=()=>{return y.size},s$=()=>Array.from(y.values()).filter(($)=>$.isLazy&&typeof $.loader==="function").map(($)=>$.name),o$=($)=>{let J=y.get($);if(!J?.isLazy||typeof J.loader!=="function")return;return d$($,J.loader)},l$=!1,SJ=()=>{if(l$||typeof window>"u")return;l$=!0;let $=navigator.connection;if($?.saveData)return;if($?.effectiveType&&["slow-2g","2g"].includes($.effectiveType))return;let J=s$(),Z="requestIdleCallback"in window?(W)=>window.requestIdleCallback(W,{timeout:2000}):(W)=>window.setTimeout(W,300),Y=(W)=>{if(W>=J.length)return;Z(()=>{Promise.resolve().then(()=>o$(J[W])).catch(()=>{}).finally(()=>Y(W+1))})};Y(0)};import{useContext as YJ}from"react";import{Linking as KZ,Pressable as BZ,View as TZ}from"react-native";import{useContext as I$,useEffect as O$,useRef as ZJ}from"react";import{createContext as bJ,useContext as fJ}from"react";var d=T("@swarm.ing/pieui:context:pieConfig",()=>bJ(null)),i=()=>{let $=fJ(d);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},n=()=>{let{apiServer:$}=i();return $},e=n,$$=()=>{let{centrifugeServer:$}=i();return $};var S=()=>{let{enableRenderingLog:$}=i();return $},i$=S;var F$="__piedemo__";import{createContext as CJ}from"react";import{Centrifuge as n$}from"centrifuge";var r$=T("@swarm.ing/pieui:centrifuge-cache",()=>new Map),J$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,Y=r$.get(Z);if(Y)return Y;async function W(){let z=await fetch($+"api/centrifuge/gen_token",{credentials:"include"});if(!z.ok){if(z.status===401||z.status===403)throw new n$.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let X=new n$(J,{getToken:W});return r$.set(Z,X),X},vJ=T("@swarm.ing/pieui:context:centrifuge",()=>CJ(null)),b=vJ;import{io as hJ}from"socket.io-client";import{createContext as mJ}from"react";var a$=T("@swarm.ing/pieui:socket-cache",()=>new Map),Z$=($)=>{let J=a$.get($);if(J)return J;let Z=hJ($,{autoConnect:!1,transports:["websocket"]});return a$.set($,Z),Z},gJ=T("@swarm.ing/pieui:context:socket",()=>mJ(null)),f=gJ;import pJ from"mitt";import{createContext as cJ,useCallback as uJ,useContext as dJ}from"react";function l(){return T("@swarm.ing/pieui:mitt-emitter",()=>pJ())}var t$=T("@swarm.ing/pieui:context:mitt",()=>cJ(null));function lJ($){let J=dJ(t$);return uJ((Z,Y)=>{(J??l()).emit(`pie${Z}_${$}`,Y)},[$,J])}var C=t$;function e$($){return $.wasRecovering===!0&&$.recovered===!1}function $J($){return $.recoverable===!1}function JJ($,J,Z){let Y=$.getSubscription(J);if(Y)return{subscription:Y,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}import{jsx as iJ,jsxs as nJ,Fragment as oJ}from"react/jsx-runtime";var sJ=({card:$,data:J,children:Z,useSocketioSupport:Y=!1,useCentrifugeSupport:W=!1,useMittSupport:X=!1,centrifugeChannel:z=void 0,methods:Q=void 0,stored:G=void 0,onResync:_=void 0})=>{let K=i$(),M=ZJ(Q);M.current=Q;let w=ZJ(_);if(w.current=_,K)console.log("[PieCard] Rendering card:",$),console.log("[PieCard] Card data:",J),console.log("[PieCard] Component name:",J?.name),console.log("[PieCard] Real-time support:",{socketio:Y,centrifuge:W,mitt:X,centrifugeChannel:z}),console.log("[PieCard] Methods:",Q?Object.keys(Q):"none"),console.log("[PieCard] Has children:",!!Z);let I=I$(f),L=I$(b),U=I$(C);if(O$(()=>{if(!I||!Y||!M.current||!J.name){if(K&&Y)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!I,useSocketioSupport:Y,hasMethods:!!M.current,hasDataName:!!J?.name});return}let V=Object.keys(M.current??{}).map((D)=>{let q=`pie${D}_${J.name}`;if(K)console.log(`[PieCard] Socket.IO registering event: ${q}`);let H=(k)=>{M.current?.[D]?.(k)};return I.on(q,H),[q,H]});return()=>{V.forEach(([D,q])=>{if(K)console.log(`[PieCard] Socket.IO unregistering event: ${D}`);I.off(D,q)})}},[I,J.name,Y]),O$(()=>{if(!L||!W||!z||!J.name){if(K&&W)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!L,useCentrifugeSupport:W,hasCentrifugeChannel:!!z,hasMethods:!!M.current,hasDataName:!!J?.name});return}let V=Object.keys(M.current??{}).map((D)=>{let q=`pie${D}_${J.name}_${z}`;if(K)console.log(`[PieCard] Centrifuge subscribing to channel: ${q}`);let{subscription:H,createdHere:k}=JJ(L,q,{recoverable:!0,positioned:!0}),K$=(m)=>{if(K)console.log(`[PieCard] Centrifuge received data on ${q}:`,m.data);M.current?.[D]?.(m.data)},h=(m)=>{if($J(m))console.warn(`[PieCard] Centrifuge channel ${q} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(e$(m)){if(K)console.log(`[PieCard] Centrifuge recovery gap on ${q}; requesting resync`);w.current?.({channel:q,reason:"gap"})}};return H.on("publication",K$),H.on("subscribed",h),H.subscribe(),{subscription:H,createdHere:k,onPublication:K$,onSubscribed:h}});return()=>{V.forEach(({subscription:D,createdHere:q,onPublication:H,onSubscribed:k})=>{if(K)console.log("[PieCard] Centrifuge unsubscribing from channel");if(D.off("publication",H),D.off("subscribed",k),q)D.unsubscribe(),L.removeSubscription(D)})}},[L,z,J.name,W]),O$(()=>{if(!U||!X||!J.name){if(K&&X)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!U,useMittSupport:X,hasMethods:!!M.current,hasDataName:!!J?.name});return}let B=Object.keys(M.current??{}),V={};return B.forEach((D)=>{let q=`pie${D}_${J.name}`,H=(k)=>{if(K)console.log(`[PieCard] Mitt registering event: ${q}`);M.current?.[D]?.(k)};V[q]=H,U.on(q,H)}),()=>{Object.entries(V).forEach(([D,q])=>{if(K)console.log(`[PieCard] Mitt unregistering event: ${D}`);U.off(D,q)})}},[U,J.name,X]),K)console.log("[PieCard] Rendering complete, returning children");if(G!==void 0)return nJ(oJ,{children:[iJ("input",{type:"hidden",name:J.name,value:JSON.stringify(G)}),Z]});return Z},F=sJ;import{useContext as XJ,memo as QZ}from"react";import{createContext as rJ}from"react";import{jsx as eJ,Fragment as tJ}from"react/jsx-runtime";var aJ=T("@swarm.ing/pieui:context:fallback",()=>rJ(eJ(tJ,{}))),E=aJ;import{createContext as $Z}from"react";var JZ=T("@swarm.ing/pieui:context:lazyError",()=>$Z(void 0)),v=JZ;import{Component as ZZ,Suspense as XZ}from"react";import{jsx as zZ}from"react/jsx-runtime";var YZ=2,WZ=400;class s extends ZZ{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<YZ){let J=WZ*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((Z)=>({failed:!1,attempt:Z.attempt+1}))},J)}}componentDidUpdate($){if($.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 zZ(XZ,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as M$}from"react/jsx-runtime";function GZ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=XJ(E),Y=XJ(v),W=S();if(W)console.log("[UI] Rendering component:",$.card),console.log("[UI] Component data:",$.data),console.log("[UI] Component content:",$.content),console.log("[UI] Has setUiAjaxConfiguration:",!!J);let X=o($.card);if(!X?.component){if(W)console.warn(`[UI] Component not found in registry: ${$.card}`),console.log("[UI] Returning fallback component");return Z}if(W)console.log("[UI] Found component in registry:",{name:X.name,isLazy:X.isLazy,hasMetadata:!!X.metadata});let z=X.component,Q=M$(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(X.isLazy){if(W)console.log("[UI] Rendering lazy component with Suspense:",X.name);return M$(s,{name:X.name,fallback:X.fallback?M$(X.fallback,{}):Z,onError:Y,children:Q})}if(W)console.log("[UI] Rendering component directly:",X.name);return Q}var P=QZ(GZ);import{createContext as _Z}from"react";var qZ=T("@swarm.ing/pieui:context:navigate",()=>_Z(void 0)),x=qZ;import{createContext as DZ}from"react";var HZ=T("@swarm.ing/pieui:context:uiRenderer",()=>DZ(null)),j=HZ;import{jsx as X$}from"react/jsx-runtime";var UZ=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),VZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:Y,url:W,sx:X}=$,z=YJ(x),Q=YJ(j)??P,G=()=>{if(!W)return;if(UZ(W))KZ.openURL(W).catch(()=>{});else z?.(W)},_=X$(Q,{setUiAjaxConfiguration:Z,uiConfig:J});return X$(F,{card:Y,data:$,children:W?X$(BZ,{onPress:G,style:X,children:_}):X$(TZ,{style:X,children:_})})},A$=VZ;import{useContext as FZ}from"react";import{View as IZ}from"react-native";import{jsx as L$}from"react/jsx-runtime";var OZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:Y,sx:W}=$,X=FZ(j)??P;return L$(F,{card:Y,data:$,children:L$(IZ,{style:W,children:J.map((z,Q)=>L$(X,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},P$=OZ;import{useContext as MZ}from"react";import{View as AZ}from"react-native";import{jsx as R$}from"react/jsx-runtime";var LZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:Y,sx:W}=$,X=MZ(j)??P;return R$(F,{card:Y,data:$,children:R$(AZ,{style:W,children:J.map((z,Q)=>R$(X,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},w$=LZ;import{useEffect as WJ,useState as PZ}from"react";var Y$=new Map,p=($,J)=>{Y$.set($,J)},c=($)=>{Y$.delete($)},E$=($)=>{return Y$.has($)?Y$.get($):null};import{jsx as wZ}from"react/jsx-runtime";var RZ=({data:$})=>{let{name:J,value:Z,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:X,centrifugeChannel:z}=$,[Q,G]=PZ(Z);return WJ(()=>{G(Z)},[Z]),WJ(()=>{return p(J,[Q]),()=>c(J)},[J,Q]),wZ(F,{card:"HiddenCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:X,centrifugeChannel:z,methods:{update:({value:_})=>{G(_)}}})},j$=RZ;import{useEffect as zJ,useState as NZ}from"react";var W$={};function EZ($){W$={...W$,...$}}function R(){return W$}function jZ(){W$={}}import{jsx as yZ}from"react/jsx-runtime";var kZ=({data:$})=>{let{name:J,key:Z,value:Y,useSocketioSupport:W,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q}=$,[G,_]=NZ(Y);return zJ(()=>{_(Y)},[Y]),zJ(()=>{return R().storage?.setItem?.(Z,G),p(J,[G]),()=>c(J)},[Z,J,G]),yZ(F,{card:"DeviceStorageCard",data:$,useSocketioSupport:W,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:K})=>{_(K)},remove:()=>{R().storage?.removeItem?.(Z),_("")}}})},N$=kZ;import{useEffect as QJ,useState as xZ}from"react";import{jsx as bZ}from"react/jsx-runtime";var SZ=({data:$})=>{let{name:J,key:Z,value:Y,useSocketioSupport:W,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q}=$,[G,_]=xZ(Y);return QJ(()=>{_(Y)},[Y]),QJ(()=>{return R().sessionStorage?.setItem?.(Z,G),p(J,[G]),()=>c(J)},[Z,J,G]),bZ(F,{card:"SessionStorageCard",data:$,useSocketioSupport:W,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:K})=>{_(K)},remove:()=>{R().sessionStorage?.removeItem?.(Z),_("")}}})},k$=SZ;import{useContext as fZ,useMemo as CZ,useRef as vZ}from"react";import{Alert as hZ,Linking as mZ}from"react-native";import{jsx as cZ}from"react/jsx-runtime";var gZ=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),pZ=({data:$})=>{let{useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:Y,centrifugeChannel:W}=$,X=fZ(x),z=vZ(X);z.current=X;let Q=CZ(()=>{let G=(_)=>{if(!_)return;if(gZ(_))mZ.openURL(_).catch(()=>{});else z.current?.(_)};return{alert:(_)=>hZ.alert(String(_.title??""),String(_.message??"")),log:(_)=>console.log("Log event",_),push:(_)=>console.warn("[IOEventsCard] push notifications are not supported on native",_?.title),redirect:(_)=>G(_.to),reload:(_)=>G(_.to)}},[]);return cZ(F,{card:"IOEventsCard",data:$,useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:Y,centrifugeChannel:W,methods:Q})},y$=pZ;import{useEffect as uZ,useState as dZ}from"react";import{Text as lZ}from"react-native";import{jsx as GJ}from"react/jsx-runtime";var sZ=($)=>($??"").replace(/<[^>]*>/g,"").replace(/&nbsp;/g," ").replace(/\s+/g," ").trim(),oZ=({data:$})=>{let{html:J,useSocketioSupport:Z,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:X}=$,[z,Q]=dZ(J);return uZ(()=>{Q(J)},[J]),GJ(F,{card:"HTMLEmbedCard",data:$,methods:{update:(G)=>Q(G.value)},useCentrifugeSupport:Y,useSocketioSupport:Z,useMittSupport:W,centrifugeChannel:X,children:GJ(lZ,{children:sZ(z)})})},x$=oZ;import{useContext as _J,useEffect as iZ}from"react";import{Linking as nZ}from"react-native";import{jsx as tZ,Fragment as aZ}from"react/jsx-runtime";var rZ=({data:$})=>{let{url:J}=$,Z=_J(x),Y=_J(E);return iZ(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(J))nZ.openURL(J).catch(()=>{});else Z?.(J)},[J,Z]),tZ(aZ,{children:Y})},S$=rZ;import{useContext as eZ}from"react";import{jsx as qJ}from"react/jsx-runtime";var $0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:Y}=$,W=eZ(j)??P;return qJ(F,{card:Y,data:$,children:J.map((X,z)=>{return qJ(W,{uiConfig:X,setUiAjaxConfiguration:Z},`children-${z}`)})})},b$=$0;import{useCallback as f$,useContext as C$,useEffect as J0,useRef as Z0,useState as DJ}from"react";import{jsx as HJ}from"react/jsx-runtime";var X0=({data:$,content:J})=>{let{useLoader:Z,noReturn:Y,returnType:W,useSocketioSupport:X,useCentrifugeSupport:z,useMittSupport:Q,centrifugeChannel:G}=$,_=C$(E),K=C$(j)??P,[M,w]=DJ(!1),[I,L]=DJ(null),U=Z0(J),B=C$(C),V=f$((H)=>{if(H===null)w(!0);else if(w(!1),!Y)U.current=H;if(!Y)L(H)},[Y]),D=f$((H)=>{U.current=H.content,L(H.content)},[]),q=f$((H)=>{if(H===null)w(!0);else if(w(!1),!Y)for(let k of H)B?.emit(k.name,k.data)},[Y,B]);if(J0(()=>{L(J),w(!1)},[J]),!I&&Z)return _;return HJ(F,{card:"AjaxGroupCard",data:$,methods:{changeContent:D},useSocketioSupport:X,useCentrifugeSupport:z,useMittSupport:Q,centrifugeChannel:G,children:HJ(K,{uiConfig:I??U.current,setUiAjaxConfiguration:W==="events"?q:V})})},v$=X0;var Y0=[{name:"BoxCard",component:A$},{name:"SequenceCard",component:P$},{name:"OneOfCard",component:w$},{name:"HiddenCard",component:j$},{name:"DeviceStorageCard",component:N$},{name:"SessionStorageCard",component:k$},{name:"IOEventsCard",component:y$},{name:"HTMLEmbedCard",component:x$},{name:"AutoRedirectCard",component:S$},{name:"UnionCard",component:b$},{name:"AjaxGroupCard",component:v$}];for(let $ of Y0)t($);import{useMemo as m$,useState as F0}from"react";import{QueryClient as I0,QueryClientProvider as O0}from"@tanstack/react-query";import{useContext as H0,useEffect as K0}from"react";import{useEffect as W0,useState as z0}from"react";var z$=new Map,Q$=new Map;function G$($,J){let Z=`${$}::${J}`,Y=$?z$.get(Z):void 0,[W,X]=z0(Y??null);return W0(()=>{if(!$)return;if(z$.has(Z)){X(z$.get(Z));return}let z=Q$.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((G)=>G.json()).then((G)=>{return z$.set(Z,G),Q$.delete(Z),G}).catch((G)=>{throw Q$.delete(Z),G}),Q$.set(Z,z);let Q=!1;return z.then((G)=>{if(!Q)X(G)}).catch(()=>{}),()=>{Q=!0}},[$,J,Z]),W}var Q0=($)=>{let J=document.cookie?document.cookie.split(";"):[];for(let Z of J){let Y=Z.indexOf("=");if((Y===-1?Z:Z.slice(0,Y)).trim()===$){let X=Y===-1?"":Z.slice(Y+1).trim();try{return decodeURIComponent(X)}catch{return X}}}return null},G0={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid($){if(typeof window<"u")window.sid=$},readWebStorage($,J){return($==="local"?window.localStorage:window.sessionStorage).getItem(J)},readCookie:Q0,readUrlParams($){return new URLSearchParams(window.location.search).getAll($)},readDomInput($){let J=document.getElementsByName($);if(!J.length)return null;let Z=J[0];if(Z instanceof HTMLInputElement){if(Z.type==="file"&&Z.files)return Array.from(Z.files);return[Z.value]}if(Z instanceof HTMLTextAreaElement)return[Z.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let $=document.getElementById("piedata_global_form");$&&$.submit()}},KJ=G0;var BJ,_0={isClient(){return!0},readSid(){return BJ},setSid($){BJ=$},readWebStorage($,J){let Z=R(),Y=$==="local"?Z.storage:Z.sessionStorage;return Y?Y.getItem(J):null},async readWebStorageAsync($,J){let Z=R(),Y=$==="local"?Z.asyncStorage:Z.asyncSessionStorage;if(Y)return Y.getItem(J);let W=$==="local"?Z.storage:Z.sessionStorage;return W?W.getItem(J):null},readCookie($){let J=R();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=R();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=R();return J.getInput?J.getInput($):E$($)},submitGlobalForm(){R().submitForm?.()}},TJ=_0;var q0=typeof navigator<"u"&&navigator.product==="ReactNative",D0=q0?TJ:KJ,O=D0;var r=T("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function UJ(){r.resolve?.()}function h$(){if(!O.isClient())return Promise.resolve();if(O.readSid()!==void 0)return Promise.resolve();if(!r.promise)r.promise=new Promise(($)=>{r.resolve=()=>{$()}});return r.promise}var B0=({children:$})=>{let J=H0(f),Z=e(),Y=G$(Z,"socketIO"),W=(X)=>{if(O.isClient())O.setSid(X.sid),UJ(),console.log(`SocketIO initialized: ${O.readSid()}`)};return K0(()=>{if(!J)return;let X=()=>{console.log("SocketIO connected")},z=(Q)=>{console.log(`SocketIO disconnected: ${Q}`),J.connect()};if(Y)J.on("pieinit",W),J.on("connect",X),J.on("disconnect",z),J.connect();return()=>{if(Y)J.off("pieinit",W),J.off("connect",X),J.off("disconnect",z),J.disconnect()}},[J,Y]),$},_$=B0;import{useContext as T0,useEffect as U0}from"react";var V0=({children:$})=>{let J=T0(b),Z=e(),Y=G$(Z,"centrifuge");return U0(()=>{if(!J)return;let W=()=>{console.log("Centrifuge connected")},X=(z)=>{console.log("Centrifuge disconnected:",z)};if(Y)J.on("connected",W),J.on("disconnected",X),J.connect();return()=>{if(Y)J.disconnect()}},[J,Y]),$},q$=V0;import{jsx as N,Fragment as L0}from"react/jsx-runtime";var M0=({location:$,fallback:J,children:Z,disableGlobalForm:Y})=>{let W=n(),X=$$(),z=S(),Q=m$(()=>l(),[]),G=m$(()=>W?Z$(W):null,[W]),_=m$(()=>W?J$(W,X):null,[W,X]);if(z)console.log("[PieRoot] Rendering with location:",$),console.log("[PieRoot] API_SERVER:",W),console.log("[PieRoot] CENTRIFUGE_SERVER:",X),console.log("[PieRoot] Fallback provided:",!!J);return N(C.Provider,{value:Q,children:N(f.Provider,{value:G,children:N(b.Provider,{value:_,children:N(E.Provider,{value:J??N(L0,{}),children:N(_$,{children:N(q$,{children:Y?Z:N("form",{id:"piedata_global_form",action:W+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:Z})})})})})})})},A0=($)=>{let[J]=F0(()=>new I0),Z=$.queryClient??J;return N(x.Provider,{value:$.onNavigate,children:N(d.Provider,{value:$.config,children:N(v.Provider,{value:$.onError,children:N(O0,{client:Z,children:N(M0,{...$})})})})})},g$=A0;import{jsx as R0}from"react/jsx-runtime";var P0=($)=>{return R0(g$,{...$,disableGlobalForm:!0})},w0=P0;import{useMemo as a}from"react";import{QueryClient as j0,QueryClientProvider as N0,useQuery as k0}from"@tanstack/react-query";import{createAxiosDateTransformer as y0}from"axios-date-transformer";import{useContext as VJ}from"react";import{jsx as D$}from"react/jsx-runtime";function FJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=VJ(E),Y=VJ(v),W=S();if(W)console.log("[UILoading] Rendering fallback for:",$.card),console.log("[UILoading] Component data:",$.data),console.log("[UILoading] Component content:",$.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!J);let X=o($.card);if(!X?.component){if(W)console.warn(`[UILoading] Component not found in registry: ${$.card}`),console.log("[UILoading] Returning fallback component");return Z}if(W)console.log("[UILoading] Found component in registry:",{name:X.name,isLazy:X.isLazy,hasMetadata:!!X.metadata,hasFallback:!!X.fallback});if(X.fallback){if(W)console.log("[UILoading] Rendering fallback for:",X.name);let G=X.fallback;return D$(G,{})}if(W)console.log("[UILoading] No fallback, rendering full component:",X.name);let z=X.component,Q=D$(j.Provider,{value:FJ,children:D$(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(X.isLazy)return D$(s,{name:X.name,fallback:Z,onError:Y,children:Q});return Q}var p$=FJ;import{jsx as E0}from"react/jsx-runtime";function IJ($,J,Z){if(!J)return Z;let Y=$.replace(/^\//,""),W=J[Y];if(!W)return Z;return E0(p$,{uiConfig:W})}import{jsx as A,Fragment as b0}from"react/jsx-runtime";var x0=({location:$,fallback:J,piecache:Z,onError:Y,queryOptions:W,disableGlobalForm:X})=>{let z=n(),Q=$$(),G=S(),_=a(()=>y0({baseURL:z||""}),[z]),K=a(()=>l(),[]),M=a(()=>z?Z$(z):null,[z]),w=a(()=>z?J$(z,Q):null,[z,Q]),{data:I,isLoading:L,error:U}=k0({queryKey:["uiConfig",$.pathname+$.search,z],enabled:!!z,queryFn:async()=>{let V=new URLSearchParams($.search);V.set("__pieroot","web");let D="/api/content"+$.pathname+"?"+V.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",D);let q=await _.get(D,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(G)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:(V)=>Math.min(1000*2**V,30000),...W}),B=IJ($.pathname,Z,J);if(!z)return B??null;if(G)console.log("[PieRoot] Rendering with location:",$),console.log("[PieRoot] API_SERVER:",z),console.log("[PieRoot] CENTRIFUGE_SERVER:",Q),console.log("[PieRoot] Fallback provided:",!!J),console.log("[PieRoot] Piecache provided:",!!Z);if(U){if(G)console.error("[PieRoot] Error fetching UI configuration:",U),console.error("[PieRoot] Error details:",{message:U.message,status:U.response?.status,data:U.response?.data});return Y?.(U),B}if(L||!I){if(G)console.log("[PieRoot] Loading state:",{isLoading:L,hasUiConfiguration:!!I});return B}if(G)console.log("[PieRoot] UI configuration loaded successfully:",I),console.log("[PieRoot] Rendering UI with configuration");return A(C.Provider,{value:K,children:A(f.Provider,{value:M,children:A(b.Provider,{value:w,children:A(E.Provider,{value:J??A(b0,{}),children:A(_$,{children:A(q$,{children:X?A(P,{uiConfig:I}):A("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:A(P,{uiConfig:I})})})})})})})})},S0=($)=>{let J=a(()=>new j0,[]),Z=$.queryClient??J;return A(x.Provider,{value:$.onNavigate,children:A(d.Provider,{value:$.config,children:A(v.Provider,{value:$.onError,children:A(N0,{client:Z,children:A(x0,{...$})})})})})},f0=S0;import{useMemo as C0}from"react";var v0=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],h0=new Set(["telegram:cloud","telegram:secure"]),H$=($)=>{if($==="sid")return{source:"sid",key:"sid"};for(let J of v0){let Z=J+":";if($.startsWith(Z))return{source:J,key:$.slice(Z.length)}}return{source:"dom",key:$}},OJ=($,J=!1)=>{let{source:Z,key:Y}=H$($);if(Z==="sid"){let X=O.readSid();if(!X)throw Error("SocketIO isn't initialized properly");return[X]}if(Z==="localStorage"||Z==="sessionStorage")try{let X=O.readWebStorage(Z==="localStorage"?"local":"session",Y);if(X===null){if(J)console.warn(`No ${Z} value found for key ${Y}`);return[]}return[X]}catch(X){if(J)console.warn(`Failed to read ${Z} key ${Y}:`,X);return[]}if(Z==="cookie"){let X=O.readCookie(Y);if(X===null){if(J)console.warn(`No cookie found for key ${Y}`);return[]}return[X]}if(Z==="url"){let X=O.readUrlParams(Y);if(!X.length&&J)console.warn(`No URL query param found for key ${Y}`);return X}if(h0.has(Z)){if(J)console.warn(`Source ${Z} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let W=O.readDomInput(Y);if(W===null){if(J)console.warn(`No input found with name ${Y}`);return[]}return W},m0=($,J,Z)=>{let Y=window.Telegram?.WebApp,W=$==="telegram:cloud"?Y?.CloudStorage:Y?.SecureStorage,X=$==="telegram:cloud"?"Telegram CloudStorage":"Telegram SecureStorage";if(!W){if(Z)console.warn(`${X} is not available`);return Promise.resolve([])}return new Promise((z)=>{try{W.getItem(J,(Q,G)=>{if(Q){if(Z)console.warn(`Failed to read ${X} key ${J}:`,Q);z([]);return}if(G==null||G===""){if(Z)console.warn(`No ${X} value found for key ${J}`);z([]);return}z([G])})}catch(Q){if(Z)console.warn(`Failed to read ${X} key ${J}:`,Q);z([])}})},MJ=async($,J=!1)=>{let{source:Z,key:Y}=H$($);if(Z==="telegram:cloud"||Z==="telegram:secure")return m0(Z,Y,J);if((Z==="localStorage"||Z==="sessionStorage")&&O.readWebStorageAsync)try{let W=await O.readWebStorageAsync(Z==="localStorage"?"local":"session",Y);if(W===null){if(J)console.warn(`No ${Z} value found for key ${Y}`);return[]}return[W]}catch(W){if(J)console.warn(`Failed to read ${Z} key ${Y}:`,W);return[]}return OJ($,J)},g0=($,J={},Z=[],Y,W)=>{let X=W?.renderingLogEnabled??!1,z=W?.timeout,Q=W?.retryPolicy,G=Q?.maxRetries??0,_=Q?.baseDelay??1000,K=Q?.retryOn??[502,503,504];if(X)console.log("Registering AJAX: ",Y,J,Z);return async(M={})=>{if(!O.isClient()){if(X)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let w=W?.apiServer;if(!w){if(X)console.warn("AJAX skipped: apiServer is missing");return}if(!Y||!$){if(X)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(Z.includes("sid"))await h$();let I=new FormData;for(let[B,V]of Object.entries({...J,...M}))I.append(B,V);for(let B of Z){let{key:V}=H$(B);for(let D of await MJ(B,X))I.append(V,D)}let L=w+"api/ajax_content"+Y;$(null);let U;for(let B=0;B<=G;B++){if(B>0){let q=_*2**(B-1);if(X)console.log(`AJAX retry ${B}/${G} after ${q}ms`);await new Promise((H)=>setTimeout(H,q))}let V=z!=null?new AbortController:null,D=V&&setTimeout(()=>V.abort(),z);try{let q=await fetch(L,{method:"POST",body:I,signal:V?.signal});if(D)clearTimeout(D);if(!q.ok&&K.includes(q.status)&&B<G){U=Error(`HTTP ${q.status}`);continue}let k=(q.headers.get("content-type")||"").includes("application/json");if(!!q.body?.getReader&&!k){let h=q.body.getReader(),m=new TextDecoder,u="";while(!0){let{done:B$,value:AJ}=await h.read();if(B$)break;u+=m.decode(AJ,{stream:!0});let c$=u.split(`
3
- `);u=c$.pop()??"";for(let LJ of c$){let T$=LJ.trim();if(!T$)continue;try{let PJ=JSON.parse(T$);$([PJ])}catch{if(X)console.warn("Failed to parse streamed line:",T$)}}}if(u.trim())try{let B$=JSON.parse(u);$([B$])}catch{if(X)console.warn("Failed to parse final streamed line:",u)}return{}}else{let h=await q.json();return $(h),h}}catch(q){if(D)clearTimeout(D);if(U=q,B<G)continue;if(X)console.error("AJAX request failed:",q);return $(null),q}}if(X)console.error("AJAX request failed after retries:",U);return $(null),U}},p0=($,J={},Z=[],Y,W)=>{let{apiServer:X,enableRenderingLog:z}=i(),Q=JSON.stringify(J),G=JSON.stringify(Z),_=JSON.stringify(W);return C0(()=>g0($,J,Z,Y,{apiServer:X,renderingLogEnabled:z,timeout:W?.timeout,retryPolicy:W?.retryPolicy}),[$,Q,G,Y,X,z,_])};var c0=()=>{O.submitGlobalForm()};var u0=($,J)=>`${$}${F$}${J}`;export{lJ as usePieEmit,p0 as useAjaxSubmit,jJ as unregisterComponent,U$ as trackLazy,c0 as submitGlobalForm,p as setNativeField,jZ as resetNativeClientSources,y as registry,t as registerPieComponent,EJ as registerMultipleComponents,E$ as readNativeField,MJ as readAjaxKeyAsync,OJ as readAjaxKey,o$ as preloadComponent,SJ as prefetchLazyComponents,u0 as pieName,H$ as parseDepName,NJ as hasComponent,xJ as getRegistrySize,o as getRegistryEntry,R as getNativeClientConfig,s$ as getLazyComponentNames,l as getEmitter,kJ as getComponentMeta,yJ as getAllRegisteredComponents,EZ as configureNativeClientSources,c as clearNativeField,b$ as UnionCard,j as UIRendererContext,p$ as UILoading,P as UI,f as SocketIOContext,k$ as SessionStorageCard,P$ as SequenceCard,f0 as PieRoot,w0 as PieNativeRoot,d as PieConfigContext,F as PieCard,g$ as PieBaseRoot,F$ as PIEBREAK,w$ as OneOfCard,C as MittContext,y$ as IOEventsCard,j$ as HiddenCard,x$ as HTMLEmbedCard,E as FallbackContext,N$ as DeviceStorageCard,b as CentrifugeIOContext,A$ as BoxCard,S$ as AutoRedirectCard,v$ as AjaxGroupCard};
2
+ import{lazy as hJ}from"react";var s=new Map;function t$($,J){return J.catch(()=>{if(s.get($)===J)s.delete($)}),s.set($,J),J}function w$($,J){return hJ(()=>{if(s.has(J))return s.get(J);return t$(J,$().then((Z)=>Z))})}var e$=async($,J)=>{if(!J)return;if(s.has($))return s.get($);return t$($,J().then((Z)=>Z))};var L$=globalThis,O=($,J)=>{let Z=Symbol.for($);if(!(Z in L$))L$[Z]=J();return L$[Z]};var m=O("@swarm.ing/pieui:component-registry",()=>new Map),vJ=($)=>{if(!$.name)throw Error("Component registration requires a name");if(!$.component&&!$.loader)throw Error(`Component "${$.name}" requires component or loader`);let J={name:$.name,component:$.component,loader:$.loader,metadata:$.metadata,fallback:$.fallback,isLazy:!1};if(!J.component&&J.loader)J.component=w$(J.loader,$.name),J.isLazy=!0;return J};function Q$($){let J=vJ($);return m.set(J.name,J),J.component}var mJ=($)=>{$.forEach((J)=>Q$(J))},gJ=($)=>{m.delete($)},pJ=($)=>{return m.has($)},dJ=($)=>{return m.get($)?.metadata},X$=($)=>{return m.get($)},uJ=()=>{return Array.from(m.keys())},cJ=()=>{return m.size},JJ=()=>Array.from(m.values()).filter(($)=>$.isLazy&&typeof $.loader==="function").map(($)=>$.name),ZJ=($)=>{let J=m.get($);if(!J?.isLazy||typeof J.loader!=="function")return;return e$($,J.loader)},$J=!1,lJ=()=>{if($J||typeof window>"u")return;$J=!0;let $=navigator.connection;if($?.saveData)return;if($?.effectiveType&&["slow-2g","2g"].includes($.effectiveType))return;let J=JJ(),Z="requestIdleCallback"in window?(Y)=>window.requestIdleCallback(Y,{timeout:2000}):(Y)=>window.setTimeout(Y,300),X=(Y)=>{if(Y>=J.length)return;Z(()=>{Promise.resolve().then(()=>ZJ(J[Y])).catch(()=>{}).finally(()=>X(Y+1))})};X(0)};import{useContext as PJ}from"react";import{Linking as hZ,Pressable as vZ,View as mZ}from"react-native";import{useContext as R$,useEffect as U$,useRef as y$}from"react";import{createContext as sJ,useContext as oJ}from"react";var u=O("@swarm.ing/pieui:context:pieConfig",()=>sJ(null)),c=()=>{let $=oJ(u);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},o=()=>{let{apiServer:$}=c();return $},_$=o,r=()=>{let{centrifugeServer:$}=c();return $};var C=()=>{let{enableRenderingLog:$}=c();return $},XJ=C;var B$=()=>{let{onLinkLost:$}=c();return $},H$=()=>{let{onLinkRestored:$}=c();return $},N$="__piedemo__";import{createContext as iJ}from"react";import{Centrifuge as YJ}from"centrifuge";var WJ=O("@swarm.ing/pieui:centrifuge-cache",()=>new Map),n=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,X=WJ.get(Z);if(X)return X;async function Y(){let z=await fetch($+"api/centrifuge/gen_token",{credentials:"include"});if(!z.ok){if(z.status===401||z.status===403)throw new YJ.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let W=new YJ(J,{getToken:Y});return WJ.set(Z,W),W},aJ=O("@swarm.ing/pieui:context:centrifuge",()=>iJ(null)),f=aJ;import{io as rJ}from"socket.io-client";import{createContext as nJ}from"react";var zJ=O("@swarm.ing/pieui:socket-cache",()=>new Map),t=($)=>{let J=zJ.get($);if(J)return J;let Z=rJ($,{autoConnect:!1,transports:["websocket"]});return zJ.set($,Z),Z},tJ=O("@swarm.ing/pieui:context:socket",()=>nJ(null)),h=tJ;import eJ from"mitt";import{createContext as $Z,useCallback as JZ,useContext as ZZ}from"react";function l(){return O("@swarm.ing/pieui:mitt-emitter",()=>eJ())}var GJ=O("@swarm.ing/pieui:context:mitt",()=>$Z(null));function XZ($){let J=ZZ(GJ);return JZ((Z,X)=>{(J??l()).emit(`pie${Z}_${$}`,X)},[$,J])}var v=GJ;function QJ($){return $.wasRecovering===!0&&$.recovered===!1}function _J($){return $.recoverable===!1}function BJ($,J,Z){let X=$.getSubscription(J);if(X)return{subscription:X,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}var YZ=($)=>{let J=document.cookie?document.cookie.split(";"):[];for(let Z of J){let X=Z.indexOf("=");if((X===-1?Z:Z.slice(0,X)).trim()===$){let W=X===-1?"":Z.slice(X+1).trim();try{return decodeURIComponent(W)}catch{return W}}}return null},WZ={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid($){if(typeof window<"u")window.sid=$},readWebStorage($,J){return($==="local"?window.localStorage:window.sessionStorage).getItem(J)},readCookie:YZ,readUrlParams($){return new URLSearchParams(window.location.search).getAll($)},readDomInput($){let J=document.getElementsByName($);if(!J.length)return null;let Z=J[0];if(Z instanceof HTMLInputElement){if(Z.type==="file"&&Z.files)return Array.from(Z.files);return[Z.value]}if(Z instanceof HTMLTextAreaElement)return[Z.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let $=document.getElementById("piedata_global_form");$&&$.submit()}},HJ=WZ;var q$={};function zZ($){q$={...q$,...$}}function E(){return q$}function GZ(){q$={}}var T$=new Map,i=($,J)=>{T$.set($,J)},a=($)=>{T$.delete($)},j$=($)=>{return T$.has($)?T$.get($):null};var qJ,QZ={isClient(){return!0},readSid(){return qJ},setSid($){qJ=$},readWebStorage($,J){let Z=E(),X=$==="local"?Z.storage:Z.sessionStorage;return X?X.getItem(J):null},async readWebStorageAsync($,J){let Z=E(),X=$==="local"?Z.asyncStorage:Z.asyncSessionStorage;if(X)return X.getItem(J);let Y=$==="local"?Z.storage:Z.sessionStorage;return Y?Y.getItem(J):null},readCookie($){let J=E();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=E();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=E();return J.getInput?J.getInput($):j$($)},submitGlobalForm(){E().submitForm?.()}},TJ=QZ;var _Z=typeof navigator<"u"&&navigator.product==="ReactNative",BZ=_Z?TJ:HJ,w=BZ;var Y$=O("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function KJ(){Y$.resolve?.()}function E$(){if(!w.isClient())return Promise.resolve();if(w.readSid()!==void 0)return Promise.resolve();if(!Y$.promise)Y$.promise=new Promise(($)=>{Y$.resolve=()=>{$()}});return Y$.promise}import{useMemo as DJ}from"react";var HZ=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],qZ=new Set(["telegram:cloud","telegram:secure"]),K$=new Map,UJ=($,J)=>{K$.set($,J)},VJ=($)=>{K$.delete($)},D$=($)=>{if($==="sid")return{source:"sid",key:"sid"};for(let J of HZ){let Z=J+":";if($.startsWith(Z))return{source:J,key:$.slice(Z.length)}}return{source:"dom",key:$}},FJ=($,J=!1)=>{let{source:Z,key:X}=D$($);if(Z==="sid"){let z=w.readSid();if(!z)throw Error("SocketIO isn't initialized properly");return[z]}if(Z==="localStorage"||Z==="sessionStorage")try{let z=w.readWebStorage(Z==="localStorage"?"local":"session",X);if(z===null){if(J)console.warn(`No ${Z} value found for key ${X}`);return[]}return[z]}catch(z){if(J)console.warn(`Failed to read ${Z} key ${X}:`,z);return[]}if(Z==="cookie"){let z=w.readCookie(X);if(z===null){if(J)console.warn(`No cookie found for key ${X}`);return[]}return[z]}if(Z==="url"){let z=w.readUrlParams(X);if(!z.length&&J)console.warn(`No URL query param found for key ${X}`);return z}if(qZ.has(Z)){if(J)console.warn(`Source ${Z} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let Y=K$.get(X);if(Y){let z=Y();if(z instanceof Promise){if(J)console.warn(`stored resolver for ${X} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}return z}let W=w.readDomInput(X);if(W===null){if(J)console.warn(`No input found with name ${X}`);return[]}return W},TZ=($,J,Z)=>{let X=window.Telegram?.WebApp,Y=$==="telegram:cloud"?X?.CloudStorage:X?.SecureStorage,W=$==="telegram:cloud"?"Telegram CloudStorage":"Telegram SecureStorage";if(!Y){if(Z)console.warn(`${W} is not available`);return Promise.resolve([])}return new Promise((z)=>{try{Y.getItem(J,(Q,G)=>{if(Q){if(Z)console.warn(`Failed to read ${W} key ${J}:`,Q);z([]);return}if(G==null||G===""){if(Z)console.warn(`No ${W} value found for key ${J}`);z([]);return}z([G])})}catch(Q){if(Z)console.warn(`Failed to read ${W} key ${J}:`,Q);z([])}})},MJ=async($,J=!1)=>{let{source:Z,key:X}=D$($);if(Z==="telegram:cloud"||Z==="telegram:secure")return TZ(Z,X,J);if((Z==="localStorage"||Z==="sessionStorage")&&w.readWebStorageAsync)try{let Y=await w.readWebStorageAsync(Z==="localStorage"?"local":"session",X);if(Y===null){if(J)console.warn(`No ${Z} value found for key ${X}`);return[]}return[Y]}catch(Y){if(J)console.warn(`Failed to read ${Z} key ${X}:`,Y);return[]}if(Z==="dom"){let Y=K$.get(X);if(Y)return Y()}return FJ($,J)},OJ=($,J={},Z=[],X,Y)=>{let W=Y?.renderingLogEnabled??!1,z=Y?.timeout,Q=Y?.retryPolicy,G=Q?.maxRetries??0,_=Q?.baseDelay??1000,B=Q?.retryOn??[502,503,504];if(W)console.log("Registering AJAX: ",X,J,Z);return async(F={})=>{if(!w.isClient()){if(W)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let T=Y?.apiServer;if(!T){if(W)console.warn("AJAX skipped: apiServer is missing");return}if(!X||!$){if(W)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(Z.includes("sid"))await E$();let D=new FormData;for(let[q,M]of Object.entries({...J,...F}))D.append(q,M);for(let q of Z){let{key:M}=D$(q);for(let A of await MJ(q,W))D.append(M,A)}let P=T+"api/ajax_content"+X;$(null);let U;for(let q=0;q<=G;q++){if(q>0){let K=_*2**(q-1);if(W)console.log(`AJAX retry ${q}/${G} after ${K}ms`);await new Promise((H)=>setTimeout(H,K))}let M=z!=null?new AbortController:null,A=M&&setTimeout(()=>M.abort(),z);try{let K=await fetch(P,{method:"POST",body:D,signal:M?.signal});if(A)clearTimeout(A);if(!K.ok&&B.includes(K.status)&&q<G){U=Error(`HTTP ${K.status}`);continue}let V=(K.headers.get("content-type")||"").includes("application/json");if(!!K.body?.getReader&&!V){let x=K.body.getReader(),G$=new TextDecoder,p="";while(!0){let{done:d,value:SJ}=await x.read();if(d)break;p+=G$.decode(SJ,{stream:!0});let n$=p.split(`
3
+ `);p=n$.pop()??"";for(let CJ of n$){let P$=CJ.trim();if(!P$)continue;try{let fJ=JSON.parse(P$);$([fJ])}catch{if(W)console.warn("Failed to parse streamed line:",P$)}}}if(p.trim())try{let d=JSON.parse(p);$([d])}catch{if(W)console.warn("Failed to parse final streamed line:",p)}return{}}else{let x=await K.json();return $(x),x}}catch(K){if(A)clearTimeout(A);if(U=K,q<G)continue;if(W)console.error("AJAX request failed:",K);return $(null),K}}if(W)console.error("AJAX request failed after retries:",U);return $(null),U}},KZ=($,J={},Z=[],X,Y)=>{let{apiServer:W,enableRenderingLog:z}=c(),Q=JSON.stringify(J),G=JSON.stringify(Z),_=JSON.stringify(Y);return DJ(()=>OJ($,J,Z,X,{apiServer:W,renderingLogEnabled:z,timeout:Y?.timeout,retryPolicy:Y?.retryPolicy}),[$,Q,G,X,W,z,_])},AJ=($={})=>{let J=[];for(let Z of Object.keys($??{})){let X=null;if(Z==="pathname")X="default";else if(Z.endsWith("Pathname"))X=Z.slice(0,-8);if(X===null)continue;let Y=X==="default"?"":X;J.push({key:X,pathname:$[Z],depsNames:$[Y?`${Y}DepsNames`:"depsNames"]??[],kwargs:$[Y?`${Y}Kwargs`:"kwargs"]??{}})}return J},DZ=($={},J,Z)=>{let{apiServer:X,enableRenderingLog:Y}=c(),W=JSON.stringify($??{}),z=JSON.stringify(Z);return DJ(()=>{let Q={};for(let G of AJ($??{}))Q[G.key]=OJ(J,G.kwargs,G.depsNames,G.pathname,{apiServer:X,renderingLogEnabled:Y,timeout:Z?.timeout,retryPolicy:Z?.retryPolicy});return Q},[W,J,X,Y,z])};import{jsx as FZ,jsxs as MZ,Fragment as VZ}from"react/jsx-runtime";var UZ=({card:$,data:J,children:Z,useSocketioSupport:X=!1,useCentrifugeSupport:Y=!1,useMittSupport:W=!1,centrifugeChannel:z=void 0,methods:Q=void 0,stored:G=void 0,onResync:_=void 0})=>{let B=XJ(),F=y$(Q);F.current=Q;let T=y$(_);T.current=_;let D=y$(G);D.current=G;let P=typeof G==="function";if(U$(()=>{if(!P)return;let A=J.name;return UJ(A,()=>[JSON.stringify(D.current())]),()=>VJ(A)},[P,J.name]),B)console.log("[PieCard] Rendering card:",$),console.log("[PieCard] Card data:",J),console.log("[PieCard] Component name:",J?.name),console.log("[PieCard] Real-time support:",{socketio:X,centrifuge:Y,mitt:W,centrifugeChannel:z}),console.log("[PieCard] Methods:",Q?Object.keys(Q):"none"),console.log("[PieCard] Has children:",!!Z);let U=R$(h),q=R$(f),M=R$(v);if(U$(()=>{if(!U||!X||!F.current||!J.name){if(B&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!U,useSocketioSupport:X,hasMethods:!!F.current,hasDataName:!!J?.name});return}let K=Object.keys(F.current??{}).map((H)=>{let V=`pie${H}_${J.name}`;if(B)console.log(`[PieCard] Socket.IO registering event: ${V}`);let R=(x)=>{F.current?.[H]?.(x)};return U.on(V,R),[V,R]});return()=>{K.forEach(([H,V])=>{if(B)console.log(`[PieCard] Socket.IO unregistering event: ${H}`);U.off(H,V)})}},[U,J.name,X]),U$(()=>{if(!q||!Y||!z||!J.name){if(B&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!q,useCentrifugeSupport:Y,hasCentrifugeChannel:!!z,hasMethods:!!F.current,hasDataName:!!J?.name});return}let K=Object.keys(F.current??{}).map((H)=>{let V=`pie${H}_${J.name}_${z}`;if(B)console.log(`[PieCard] Centrifuge subscribing to channel: ${V}`);let{subscription:R,createdHere:x}=BJ(q,V,{recoverable:!0,positioned:!0}),G$=(d)=>{if(B)console.log(`[PieCard] Centrifuge received data on ${V}:`,d.data);F.current?.[H]?.(d.data)},p=(d)=>{if(_J(d))console.warn(`[PieCard] Centrifuge channel ${V} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(QJ(d)){if(B)console.log(`[PieCard] Centrifuge recovery gap on ${V}; requesting resync`);T.current?.({channel:V,reason:"gap"})}};return R.on("publication",G$),R.on("subscribed",p),R.subscribe(),{subscription:R,createdHere:x,onPublication:G$,onSubscribed:p}});return()=>{K.forEach(({subscription:H,createdHere:V,onPublication:R,onSubscribed:x})=>{if(B)console.log("[PieCard] Centrifuge unsubscribing from channel");if(H.off("publication",R),H.off("subscribed",x),V)H.unsubscribe(),q.removeSubscription(H)})}},[q,z,J.name,Y]),U$(()=>{if(!M||!W||!J.name){if(B&&W)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!M,useMittSupport:W,hasMethods:!!F.current,hasDataName:!!J?.name});return}let A=Object.keys(F.current??{}),K={};return A.forEach((H)=>{let V=`pie${H}_${J.name}`,R=(x)=>{if(B)console.log(`[PieCard] Mitt registering event: ${V}`);F.current?.[H]?.(x)};K[V]=R,M.on(V,R)}),()=>{Object.entries(K).forEach(([H,V])=>{if(B)console.log(`[PieCard] Mitt unregistering event: ${H}`);M.off(H,V)})}},[M,J.name,W]),B)console.log("[PieCard] Rendering complete, returning children");if(G!==void 0&&!P)return MZ(VZ,{children:[FZ("input",{type:"hidden",name:J.name,value:JSON.stringify(G)}),Z]});return Z},I=UZ;import{useContext as IJ,memo as kZ}from"react";import{createContext as OZ}from"react";import{jsx as PZ,Fragment as IZ}from"react/jsx-runtime";var AZ=O("@swarm.ing/pieui:context:fallback",()=>OZ(PZ(IZ,{}))),N=AZ;import{createContext as wZ}from"react";var LZ=O("@swarm.ing/pieui:context:lazyError",()=>wZ(void 0)),g=LZ;import{Component as NZ,Suspense as jZ}from"react";import{jsx as yZ}from"react/jsx-runtime";var EZ=2,RZ=400;class e extends NZ{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<EZ){let J=RZ*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((Z)=>({failed:!1,attempt:Z.attempt+1}))},J)}}componentDidUpdate($){if($.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 yZ(jZ,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as k$}from"react/jsx-runtime";function bZ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=IJ(N),X=IJ(g),Y=C();if(Y)console.log("[UI] Rendering component:",$.card),console.log("[UI] Component data:",$.data),console.log("[UI] Component content:",$.content),console.log("[UI] Has setUiAjaxConfiguration:",!!J);let W=X$($.card);if(!W?.component){if(Y)console.warn(`[UI] Component not found in registry: ${$.card}`),console.log("[UI] Returning fallback component");return Z}if(Y)console.log("[UI] Found component in registry:",{name:W.name,isLazy:W.isLazy,hasMetadata:!!W.metadata});let z=W.component,Q=k$(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(W.isLazy){if(Y)console.log("[UI] Rendering lazy component with Suspense:",W.name);return k$(e,{name:W.name,fallback:W.fallback?k$(W.fallback,{}):Z,onError:X,children:Q})}if(Y)console.log("[UI] Rendering component directly:",W.name);return Q}var L=kZ(bZ);import{createContext as xZ}from"react";var SZ=O("@swarm.ing/pieui:context:navigate",()=>xZ(void 0)),S=SZ;import{createContext as CZ}from"react";var fZ=O("@swarm.ing/pieui:context:uiRenderer",()=>CZ(null)),y=fZ;import{jsx as V$}from"react/jsx-runtime";var gZ=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),pZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,url:Y,sx:W}=$,z=PJ(S),Q=PJ(y)??L,G=()=>{if(!Y)return;if(gZ(Y))hZ.openURL(Y).catch(()=>{});else z?.(Y)},_=V$(Q,{setUiAjaxConfiguration:Z,uiConfig:J});return V$(I,{card:X,data:$,children:Y?V$(vZ,{onPress:G,style:W,children:_}):V$(mZ,{style:W,children:_})})},b$=pZ;import{useContext as dZ}from"react";import{View as uZ}from"react-native";import{jsx as x$}from"react/jsx-runtime";var cZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=dZ(y)??L;return x$(I,{card:X,data:$,children:x$(uZ,{style:Y,children:J.map((z,Q)=>x$(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},S$=cZ;import{useContext as lZ}from"react";import{View as sZ}from"react-native";import{jsx as C$}from"react/jsx-runtime";var oZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=lZ(y)??L;return C$(I,{card:X,data:$,children:C$(sZ,{style:Y,children:J.map((z,Q)=>C$(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},f$=oZ;import{useEffect as wJ,useState as iZ}from"react";import{jsx as rZ}from"react/jsx-runtime";var aZ=({data:$})=>{let{name:J,value:Z,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z}=$,[Q,G]=iZ(Z);return wJ(()=>{G(Z)},[Z]),wJ(()=>{return i(J,[Q]),()=>a(J)},[J,Q]),rZ(I,{card:"HiddenCard",data:$,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z,methods:{update:({value:_})=>{G(_)}}})},h$=aZ;import{useEffect as LJ,useState as nZ}from"react";import{jsx as eZ}from"react/jsx-runtime";var tZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q}=$,[G,_]=nZ(X);return LJ(()=>{_(X)},[X]),LJ(()=>{return E().storage?.setItem?.(Z,G),i(J,[G]),()=>a(J)},[Z,J,G]),eZ(I,{card:"DeviceStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:B})=>{_(B)},remove:()=>{E().storage?.removeItem?.(Z),_("")}}})},v$=tZ;import{useEffect as NJ,useState as $0}from"react";import{jsx as Z0}from"react/jsx-runtime";var J0=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q}=$,[G,_]=$0(X);return NJ(()=>{_(X)},[X]),NJ(()=>{return E().sessionStorage?.setItem?.(Z,G),i(J,[G]),()=>a(J)},[Z,J,G]),Z0(I,{card:"SessionStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:B})=>{_(B)},remove:()=>{E().sessionStorage?.removeItem?.(Z),_("")}}})},m$=J0;import{useContext as X0,useMemo as Y0,useRef as W0}from"react";import{Alert as z0,Linking as G0}from"react-native";import{jsx as B0}from"react/jsx-runtime";var Q0=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),_0=({data:$})=>{let{useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y}=$,W=X0(S),z=W0(W);z.current=W;let Q=Y0(()=>{let G=(_)=>{if(!_)return;if(Q0(_))G0.openURL(_).catch(()=>{});else z.current?.(_)};return{alert:(_)=>z0.alert(String(_.title??""),String(_.message??"")),log:(_)=>console.log("Log event",_),push:(_)=>console.warn("[IOEventsCard] push notifications are not supported on native",_?.title),redirect:(_)=>G(_.to),reload:(_)=>G(_.to)}},[]);return B0(I,{card:"IOEventsCard",data:$,useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y,methods:Q})},g$=_0;import{useEffect as H0,useState as q0}from"react";import{Text as T0}from"react-native";import{jsx as jJ}from"react/jsx-runtime";var K0=($)=>($??"").replace(/<[^>]*>/g,"").replace(/&nbsp;/g," ").replace(/\s+/g," ").trim(),D0=({data:$})=>{let{html:J,useSocketioSupport:Z,useCentrifugeSupport:X,useMittSupport:Y,centrifugeChannel:W}=$,[z,Q]=q0(J);return H0(()=>{Q(J)},[J]),jJ(I,{card:"HTMLEmbedCard",data:$,methods:{update:(G)=>Q(G.value)},useCentrifugeSupport:X,useSocketioSupport:Z,useMittSupport:Y,centrifugeChannel:W,children:jJ(T0,{children:K0(z)})})},p$=D0;import{useContext as EJ,useEffect as U0}from"react";import{Linking as V0}from"react-native";import{jsx as O0,Fragment as M0}from"react/jsx-runtime";var F0=({data:$})=>{let{url:J}=$,Z=EJ(S),X=EJ(N);return U0(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(J))V0.openURL(J).catch(()=>{});else Z?.(J)},[J,Z]),O0(M0,{children:X})},d$=F0;import{useContext as A0}from"react";import{jsx as RJ}from"react/jsx-runtime";var I0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X}=$,Y=A0(y)??L;return RJ(I,{card:X,data:$,children:J.map((W,z)=>{return RJ(Y,{uiConfig:W,setUiAjaxConfiguration:Z},`children-${z}`)})})},u$=I0;import{useCallback as c$,useContext as l$,useEffect as P0,useRef as w0,useState as yJ}from"react";import{jsx as kJ}from"react/jsx-runtime";var L0=({data:$,content:J})=>{let{useLoader:Z,noReturn:X,returnType:Y,useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:Q,centrifugeChannel:G}=$,_=l$(N),B=l$(y)??L,[F,T]=yJ(!1),[D,P]=yJ(null),U=w0(J),q=l$(v),M=c$((H)=>{if(H===null)T(!0);else if(T(!1),!X)U.current=H;if(!X)P(H)},[X]),A=c$((H)=>{U.current=H.content,P(H.content)},[]),K=c$((H)=>{if(H===null)T(!0);else if(T(!1),!X)for(let V of H)q?.emit(V.name,V.data)},[X,q]);if(P0(()=>{P(J),T(!1)},[J]),!D&&Z)return _;return kJ(I,{card:"AjaxGroupCard",data:$,methods:{changeContent:A},useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:Q,centrifugeChannel:G,children:kJ(B,{uiConfig:D??U.current,setUiAjaxConfiguration:Y==="events"?K:M})})},s$=L0;var N0=[{name:"BoxCard",component:b$},{name:"SequenceCard",component:S$},{name:"OneOfCard",component:f$},{name:"HiddenCard",component:h$},{name:"DeviceStorageCard",component:v$},{name:"SessionStorageCard",component:m$},{name:"IOEventsCard",component:g$},{name:"HTMLEmbedCard",component:p$},{name:"AutoRedirectCard",component:d$},{name:"UnionCard",component:u$},{name:"AjaxGroupCard",component:s$}];for(let $ of N0)Q$($);import{useMemo as W$}from"react";import{QueryClient as f0,QueryClientProvider as h0,useQuery as v0}from"@tanstack/react-query";import{createAxiosDateTransformer as m0}from"axios-date-transformer";import{Platform as g0}from"react-native";import{useContext as R0,useEffect as y0,useRef as o$}from"react";import{useEffect as j0,useState as E0}from"react";var F$=new Map,M$=new Map;function O$($,J){let Z=`${$}::${J}`,X=$?F$.get(Z):void 0,[Y,W]=E0(X??null);return j0(()=>{if(!$)return;if(F$.has(Z)){W(F$.get(Z));return}let z=M$.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((G)=>G.json()).then((G)=>{return F$.set(Z,G),M$.delete(Z),G}).catch((G)=>{throw M$.delete(Z),G}),M$.set(Z,z);let Q=!1;return z.then((G)=>{if(!Q)W(G)}).catch(()=>{}),()=>{Q=!0}},[$,J,Z]),Y}function $$($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var k0=({children:$})=>{let J=R0(h),Z=_$(),X=O$(Z,"socketIO"),Y=B$(),W=H$(),z=o$(Y);z.current=Y;let Q=o$(W);Q.current=W;let G=o$("initial"),_=(B)=>{if(w.isClient())w.setSid(B.sid),KJ(),console.log(`SocketIO initialized: ${w.readSid()}`)};return y0(()=>{if(!J||!X)return;let B=()=>{let{state:T,signal:D}=$$(G.current,"up");if(G.current=T,D==="restored")Q.current?.("socketio");console.log("SocketIO connected")},F=(T)=>{if(console.log(`SocketIO disconnected: ${T}`),J.connect(),T==="io client disconnect")return;let{state:D,signal:P}=$$(G.current,"down");if(G.current=D,P==="lost")z.current?.("socketio",T)};return J.on("pieinit",_),J.on("connect",B),J.on("disconnect",F),J.connect(),()=>{J.off("pieinit",_),J.off("connect",B),J.off("disconnect",F),J.disconnect()}},[J,X]),$},J$=k0;import{useContext as b0,useEffect as x0,useRef as i$}from"react";var S0=({children:$})=>{let J=b0(f),Z=_$(),X=O$(Z,"centrifuge"),Y=B$(),W=H$(),z=i$(Y);z.current=Y;let Q=i$(W);Q.current=W;let G=i$("initial");return x0(()=>{if(!J||!X)return;let _=(T)=>{let{state:D,signal:P}=$$(G.current,"down");if(G.current=D,P==="lost")z.current?.("centrifuge",T)},B=()=>{let{state:T,signal:D}=$$(G.current,"up");if(G.current=T,D==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},F=(T)=>{console.log("Centrifuge disconnected:",T),_(T)};return J.on("connecting",_),J.on("connected",B),J.on("disconnected",F),J.connect(),()=>{J.off("connecting",_),J.off("connected",B),J.off("disconnected",F),J.disconnect()}},[J,X]),$},Z$=S0;import{useContext as bJ}from"react";import{jsx as A$}from"react/jsx-runtime";function xJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=bJ(N),X=bJ(g),Y=C();if(Y)console.log("[UILoading] Rendering fallback for:",$.card),console.log("[UILoading] Component data:",$.data),console.log("[UILoading] Component content:",$.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!J);let W=X$($.card);if(!W?.component){if(Y)console.warn(`[UILoading] Component not found in registry: ${$.card}`),console.log("[UILoading] Returning fallback component");return Z}if(Y)console.log("[UILoading] Found component in registry:",{name:W.name,isLazy:W.isLazy,hasMetadata:!!W.metadata,hasFallback:!!W.fallback});if(W.fallback){if(Y)console.log("[UILoading] Rendering fallback for:",W.name);let G=W.fallback;return A$(G,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",W.name);let z=W.component,Q=A$(y.Provider,{value:xJ,children:A$(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(W.isLazy)return A$(e,{name:W.name,fallback:Z,onError:X,children:Q});return Q}var a$=xJ;import{jsx as C0}from"react/jsx-runtime";function I$($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),Y=J[X];if(!Y)return Z;return C0(a$,{uiConfig:Y})}import{jsx as k,Fragment as u0}from"react/jsx-runtime";var p0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y})=>{let W=o(),z=r(),Q=C(),G=W$(()=>m0({baseURL:W||""}),[W]),_=W$(()=>l(),[]),B=W$(()=>W?t(W):null,[W]),F=W$(()=>W?n(W,z):null,[W,z]),{data:T,isLoading:D,error:P}=v0({queryKey:["uiConfig",$.pathname+$.search,W],enabled:!!W,queryFn:async()=>{let q=new URLSearchParams($.search);q.set("__pieroot",g0.OS);let M="/api/content"+$.pathname+"?"+q.toString();if(Q)console.log("[PieNativeRoot] Fetching UI configuration from:",M);let A=await G.get(M,{headers:{"Content-type":"application/json"},withCredentials:!0});if(Q)console.log("[PieNativeRoot] Received UI configuration:",A.data);return A.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(q)=>Math.min(1000*2**q,30000),...Y}),U=I$($.pathname,Z,J);if(!W)return U??null;if(P){if(Q)console.error("[PieNativeRoot] Error fetching UI configuration:",P);return X?.(P),U}if(D||!T)return U;return k(v.Provider,{value:_,children:k(h.Provider,{value:B,children:k(f.Provider,{value:F,children:k(N.Provider,{value:J??k(u0,{}),children:k(J$,{children:k(Z$,{children:k(L,{uiConfig:T})})})})})})})},d0=($)=>{let J=W$(()=>new f0,[]),Z=$.queryClient??J;return k(S.Provider,{value:$.onNavigate,children:k(u.Provider,{value:$.config,children:k(g.Provider,{value:$.onError,children:k(h0,{client:Z,children:k(p0,{...$})})})})})},c0=d0;import{useMemo as r$,useState as l0}from"react";import{QueryClient as s0,QueryClientProvider as o0}from"@tanstack/react-query";import{jsx as b,Fragment as r0}from"react/jsx-runtime";var i0=({location:$,fallback:J,children:Z,disableGlobalForm:X})=>{let Y=o(),W=r(),z=C(),Q=r$(()=>l(),[]),G=r$(()=>Y?t(Y):null,[Y]),_=r$(()=>Y?n(Y,W):null,[Y,W]);if(z)console.log("[PieRoot] Rendering with location:",$),console.log("[PieRoot] API_SERVER:",Y),console.log("[PieRoot] CENTRIFUGE_SERVER:",W),console.log("[PieRoot] Fallback provided:",!!J);return b(v.Provider,{value:Q,children:b(h.Provider,{value:G,children:b(f.Provider,{value:_,children:b(N.Provider,{value:J??b(r0,{}),children:b(J$,{children:b(Z$,{children:X?Z:b("form",{id:"piedata_global_form",action:Y+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:Z})})})})})})})},a0=($)=>{let[J]=l0(()=>new s0),Z=$.queryClient??J;return b(S.Provider,{value:$.onNavigate,children:b(u.Provider,{value:$.config,children:b(g.Provider,{value:$.onError,children:b(o0,{client:Z,children:b(i0,{...$})})})})})},n0=a0;import{useMemo as z$}from"react";import{QueryClient as t0,QueryClientProvider as e0,useQuery as $1}from"@tanstack/react-query";import{createAxiosDateTransformer as J1}from"axios-date-transformer";import{jsx as j,Fragment as Y1}from"react/jsx-runtime";var Z1=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,disableGlobalForm:W})=>{let z=o(),Q=r(),G=C(),_=z$(()=>J1({baseURL:z||""}),[z]),B=z$(()=>l(),[]),F=z$(()=>z?t(z):null,[z]),T=z$(()=>z?n(z,Q):null,[z,Q]),{data:D,isLoading:P,error:U}=$1({queryKey:["uiConfig",$.pathname+$.search,z],enabled:!!z,queryFn:async()=>{let M=new URLSearchParams($.search);M.set("__pieroot","web");let A="/api/content"+$.pathname+"?"+M.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",A);let K=await _.get(A,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(G)console.log("[PieRoot] Received UI configuration:",K.data);return K.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(M)=>Math.min(1000*2**M,30000),...Y}),q=I$($.pathname,Z,J);if(!z)return q??null;if(G)console.log("[PieRoot] Rendering with location:",$),console.log("[PieRoot] API_SERVER:",z),console.log("[PieRoot] CENTRIFUGE_SERVER:",Q),console.log("[PieRoot] Fallback provided:",!!J),console.log("[PieRoot] Piecache provided:",!!Z);if(U){if(G)console.error("[PieRoot] Error fetching UI configuration:",U),console.error("[PieRoot] Error details:",{message:U.message,status:U.response?.status,data:U.response?.data});return X?.(U),q}if(P||!D){if(G)console.log("[PieRoot] Loading state:",{isLoading:P,hasUiConfiguration:!!D});return q}if(G)console.log("[PieRoot] UI configuration loaded successfully:",D),console.log("[PieRoot] Rendering UI with configuration");return j(v.Provider,{value:B,children:j(h.Provider,{value:F,children:j(f.Provider,{value:T,children:j(N.Provider,{value:J??j(Y1,{}),children:j(J$,{children:j(Z$,{children:W?j(L,{uiConfig:D}):j("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:j(L,{uiConfig:D})})})})})})})})},X1=($)=>{let J=z$(()=>new t0,[]),Z=$.queryClient??J;return j(S.Provider,{value:$.onNavigate,children:j(u.Provider,{value:$.config,children:j(g.Provider,{value:$.onError,children:j(e0,{client:Z,children:j(Z1,{...$})})})})})},W1=X1;var z1=()=>{w.submitGlobalForm()};var G1=($,J)=>`${$}${N$}${J}`;export{XZ as usePieEmit,DZ as useAjaxSubmits,KZ as useAjaxSubmit,gJ as unregisterComponent,w$ as trackLazy,z1 as submitGlobalForm,i as setNativeField,GZ as resetNativeClientSources,m as registry,Q$ as registerPieComponent,mJ as registerMultipleComponents,j$ as readNativeField,MJ as readAjaxKeyAsync,FJ as readAjaxKey,ZJ as preloadComponent,lJ as prefetchLazyComponents,G1 as pieName,D$ as parseDepName,pJ as hasComponent,cJ as getRegistrySize,X$ as getRegistryEntry,E as getNativeClientConfig,JJ as getLazyComponentNames,l as getEmitter,dJ as getComponentMeta,uJ as getAllRegisteredComponents,AJ as discoverAjaxEndpoints,zZ as configureNativeClientSources,a as clearNativeField,u$ as UnionCard,y as UIRendererContext,a$ as UILoading,L as UI,h as SocketIOContext,m$ as SessionStorageCard,S$ as SequenceCard,W1 as PieRoot,c0 as PieNativeRoot,u as PieConfigContext,I as PieCard,n0 as PieBaseRoot,N$ as PIEBREAK,f$ as OneOfCard,v as MittContext,g$ as IOEventsCard,h$ as HiddenCard,p$ as HTMLEmbedCard,N as FallbackContext,v$ as DeviceStorageCard,f as CentrifugeIOContext,b$ as BoxCard,d$ as AutoRedirectCard,s$ as AjaxGroupCard};