@swarm.ing/pieui 2.2.1 → 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.
- package/dist/cli.js +17 -19
- package/dist/code/introspection/cardMetadata.d.ts.map +1 -1
- package/dist/code/templates/componentTypes.d.ts.map +1 -1
- package/dist/code/templates/pages/components/shared.d.ts.map +1 -1
- package/dist/components/PieCard/index.d.ts.map +1 -1
- package/dist/components/PieCard/types/index.d.ts +6 -4
- package/dist/components/PieCard/types/index.d.ts.map +1 -1
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +2 -2
- package/dist/index.js +2 -2
- package/dist/native/PieNativeRoot.d.ts +10 -9
- package/dist/native/PieNativeRoot.d.ts.map +1 -1
- package/dist/native/index.d.ts +2 -2
- package/dist/native/index.d.ts.map +1 -1
- package/dist/native/index.esm.js +2 -2
- package/dist/native/index.js +2 -2
- package/dist/telegram/index.esm.js +1 -1
- package/dist/telegram/index.js +1 -1
- package/dist/tests/ajaxStoredResolver.test.d.ts +8 -0
- package/dist/tests/ajaxStoredResolver.test.d.ts.map +1 -0
- package/dist/tests/discoverAjaxEndpoints.test.d.ts +7 -0
- package/dist/tests/discoverAjaxEndpoints.test.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/util/ajaxCommonUtils.d.ts +38 -0
- package/dist/util/ajaxCommonUtils.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var h$=Object.create;var{getPrototypeOf:p$,defineProperty:BU,getOwnPropertyNames:QZ,getOwnPropertyDescriptor:g$}=Object,WZ=Object.prototype.hasOwnProperty;var _Z=(U,Z,$)=>{$=U!=null?h$(p$(U)):{};let z=Z||!U||!U.__esModule?BU($,"default",{value:U,enumerable:!0}):$;for(let T of QZ(U))if(!WZ.call(z,T))BU(z,T,{get:()=>U[T],enumerable:!0});return z},qZ=new WeakMap,d$=(U)=>{var Z=qZ.get(U),$;if(Z)return Z;if(Z=BU({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function")QZ(U).map((z)=>!WZ.call(Z,z)&&BU(Z,z,{get:()=>U[z],enumerable:!($=g$(U,z))||$.enumerable}));return qZ.set(U,Z),Z};var u$=(U,Z)=>{for(var $ in Z)BU(U,$,{get:Z[$],enumerable:!0,configurable:!0,set:(z)=>Z[$]=()=>z})};var kz={};u$(kz,{usePieEmit:()=>PZ,useOnLinkRestored:()=>e,useOnLinkLost:()=>t,useAjaxSubmit:()=>C$,unregisterComponent:()=>xZ,trackLazy:()=>NU,submitGlobalForm:()=>b$,registry:()=>b,registerPieComponent:()=>O,registerMultipleComponents:()=>yZ,readAjaxKeyAsync:()=>YZ,readAjaxKey:()=>XZ,preloadComponent:()=>nU,prefetchLazyComponents:()=>mZ,pieName:()=>k$,parseDepName:()=>FU,hasComponent:()=>fZ,getRegistrySize:()=>SZ,getRegistryEntry:()=>$U,getLazyComponentNames:()=>aU,getEmitter:()=>i,getComponentMeta:()=>bZ,getAllRegisteredComponents:()=>kZ,cn:()=>f$,UnionCard:()=>iZ,UIRendererContext:()=>C,UILoading:()=>EU,UI:()=>L,SocketIOContext:()=>S,SessionStorageCard:()=>G$,SequenceCard:()=>lZ,PieRoot:()=>uU,PiePreviewRoot:()=>j$,PieConfigContext:()=>o,PieCard:()=>P,PieBaseRoot:()=>R$,PIEBREAK:()=>AU,OneOfCard:()=>D$,MittContext:()=>m,IOEventsCard:()=>T$,HiddenCard:()=>U$,HTMLEmbedCard:()=>tZ,FallbackContext:()=>E,DeviceStorageCard:()=>Y$,CentrifugeIOContext:()=>k,BoxCard:()=>W$,AutoRedirectCard:()=>z$,AjaxGroupCard:()=>q$});module.exports=d$(kz);var f=require("react");var OU=require("react");var iU=globalThis,M=(U,Z)=>{let $=Symbol.for(U);if(!($ in iU))iU[$]=Z();return iU[$]};var o=M("@swarm.ing/pieui:context:pieConfig",()=>OU.createContext(null)),s=()=>{let U=OU.useContext(o);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},qU=()=>{let{apiServer:U}=s();return U},IU=qU,MU=()=>{let{centrifugeServer:U}=s();return U};var h=()=>{let{enableRenderingLog:U}=s();return U},VZ=h;var t=()=>{let{onLinkLost:U}=s();return U},e=()=>{let{onLinkRestored:U}=s();return U},AU="__piedemo__";var KZ=require("react"),rU=require("centrifuge");var DZ=M("@swarm.ing/pieui:centrifuge-cache",()=>new Map),PU=(U,Z)=>{if(!Z)return null;let $=`${U}::${Z}`,z=DZ.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 rU.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${J.status}`)}return(await J.json()).token}let H=new rU.Centrifuge(Z,{getToken:T});return DZ.set($,H),H},c$=M("@swarm.ing/pieui:context:centrifuge",()=>KZ.createContext(null)),k=c$;var OZ=require("socket.io-client"),IZ=require("react");var FZ=M("@swarm.ing/pieui:socket-cache",()=>new Map),wU=(U)=>{let Z=FZ.get(U);if(Z)return Z;let $=OZ.io(U,{autoConnect:!1,transports:["websocket"]});return FZ.set(U,$),$},l$=M("@swarm.ing/pieui:context:socket",()=>IZ.createContext(null)),S=l$;var MZ=_Z(require("mitt")),UU=require("react");function i(){return M("@swarm.ing/pieui:mitt-emitter",()=>MZ.default())}var AZ=M("@swarm.ing/pieui:context:mitt",()=>UU.createContext(null));function PZ(U){let Z=UU.useContext(AZ);return UU.useCallback(($,z)=>{(Z??i()).emit(`pie${$}_${U}`,z)},[U,Z])}var m=AZ;function wZ(U){return U.wasRecovering===!0&&U.recovered===!1}function NZ(U){return U.recoverable===!1}function RZ(U,Z,$){let z=U.getSubscription(Z);if(z)return{subscription:z,createdHere:!1};return{subscription:U.newSubscription(Z,$),createdHere:!0}}var ZU=require("react/jsx-runtime"),o$=({card:U,data:Z,children:$,useSocketioSupport:z=!1,useCentrifugeSupport:T=!1,useMittSupport:H=!1,centrifugeChannel:J=void 0,methods:X=void 0,stored:G=void 0,onResync:Y=void 0})=>{let _=VZ(),q=f.useRef(X);q.current=X;let V=f.useRef(Y);if(V.current=Y,_)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:",X?Object.keys(X):"none"),console.log("[PieCard] Has children:",!!$);let B=f.useContext(S),Q=f.useContext(k),F=f.useContext(m);if(f.useEffect(()=>{if(!B||!z||!q.current||!Z.name){if(_&&z)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!B,useSocketioSupport:z,hasMethods:!!q.current,hasDataName:!!Z?.name});return}let A=Object.keys(q.current??{}).map((K)=>{let W=`pie${K}_${Z.name}`;if(_)console.log(`[PieCard] Socket.IO registering event: ${W}`);let D=(x)=>{q.current?.[K]?.(x)};return B.on(W,D),[W,D]});return()=>{A.forEach(([K,W])=>{if(_)console.log(`[PieCard] Socket.IO unregistering event: ${K}`);B.off(K,W)})}},[B,Z.name,z]),f.useEffect(()=>{if(!Q||!T||!J||!Z.name){if(_&&T)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!Q,useCentrifugeSupport:T,hasCentrifugeChannel:!!J,hasMethods:!!q.current,hasDataName:!!Z?.name});return}let A=Object.keys(q.current??{}).map((K)=>{let W=`pie${K}_${Z.name}_${J}`;if(_)console.log(`[PieCard] Centrifuge subscribing to channel: ${W}`);let{subscription:D,createdHere:x}=RZ(Q,W,{recoverable:!0,positioned:!0}),lU=(l)=>{if(_)console.log(`[PieCard] Centrifuge received data on ${W}:`,l.data);q.current?.[K]?.(l.data)},c=(l)=>{if(NZ(l))console.warn(`[PieCard] Centrifuge channel ${W} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(wZ(l)){if(_)console.log(`[PieCard] Centrifuge recovery gap on ${W}; requesting resync`);V.current?.({channel:W,reason:"gap"})}};return D.on("publication",lU),D.on("subscribed",c),D.subscribe(),{subscription:D,createdHere:x,onPublication:lU,onSubscribed:c}});return()=>{A.forEach(({subscription:K,createdHere:W,onPublication:D,onSubscribed:x})=>{if(_)console.log("[PieCard] Centrifuge unsubscribing from channel");if(K.off("publication",D),K.off("subscribed",x),W)K.unsubscribe(),Q.removeSubscription(K)})}},[Q,J,Z.name,T]),f.useEffect(()=>{if(!F||!H||!Z.name){if(_&&H)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!F,useMittSupport:H,hasMethods:!!q.current,hasDataName:!!Z?.name});return}let I=Object.keys(q.current??{}),A={};return I.forEach((K)=>{let W=`pie${K}_${Z.name}`,D=(x)=>{if(_)console.log(`[PieCard] Mitt registering event: ${W}`);q.current?.[K]?.(x)};A[W]=D,F.on(W,D)}),()=>{Object.entries(A).forEach(([K,W])=>{if(_)console.log(`[PieCard] Mitt unregistering event: ${K}`);F.off(K,W)})}},[F,Z.name,H]),_)console.log("[PieCard] Rendering complete, returning children");if(G!==void 0)return ZU.jsxs(ZU.Fragment,{children:[ZU.jsx("input",{type:"hidden",name:Z.name,value:JSON.stringify(G)}),$]});return $},P=o$;var LZ=require("react"),r=new Map;function jZ(U,Z){return Z.catch(()=>{if(r.get(U)===Z)r.delete(U)}),r.set(U,Z),Z}function NU(U,Z){return LZ.lazy(()=>{if(r.has(Z))return r.get(Z);return jZ(Z,U().then(($)=>$))})}var EZ=async(U,Z)=>{if(!Z)return;if(r.has(U))return r.get(U);return jZ(U,Z().then(($)=>$))};var b=M("@swarm.ing/pieui:component-registry",()=>new Map),s$=(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=NU(Z.loader,U.name),Z.isLazy=!0;return Z};function O(U){let Z=s$(U);return b.set(Z.name,Z),Z.component}var yZ=(U)=>{U.forEach((Z)=>O(Z))},xZ=(U)=>{b.delete(U)},fZ=(U)=>{return b.has(U)},bZ=(U)=>{return b.get(U)?.metadata},$U=(U)=>{return b.get(U)},kZ=()=>{return Array.from(b.keys())},SZ=()=>{return b.size},aU=()=>Array.from(b.values()).filter((U)=>U.isLazy&&typeof U.loader==="function").map((U)=>U.name),nU=(U)=>{let Z=b.get(U);if(!Z?.isLazy||typeof Z.loader!=="function")return;return EZ(U,Z.loader)},CZ=!1,mZ=()=>{if(CZ||typeof window>"u")return;CZ=!0;let U=navigator.connection;if(U?.saveData)return;if(U?.effectiveType&&["slow-2g","2g"].includes(U.effectiveType))return;let Z=aU(),$="requestIdleCallback"in window?(T)=>window.requestIdleCallback(T,{timeout:2000}):(T)=>window.setTimeout(T,300),z=(T)=>{if(T>=Z.length)return;$(()=>{Promise.resolve().then(()=>nU(Z[T])).catch(()=>{}).finally(()=>z(T+1))})};z(0)};var QU=require("react");var vZ=require("react");var RU=require("react/jsx-runtime"),i$=M("@swarm.ing/pieui:context:fallback",()=>vZ.createContext(RU.jsx(RU.Fragment,{}))),E=i$;var hZ=require("react");var r$=M("@swarm.ing/pieui:context:lazyError",()=>hZ.createContext(void 0)),p=r$;var LU=require("react"),pZ=require("react/jsx-runtime"),a$=2,n$=400;class zU extends LU.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<a$){let Z=n$*(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 pZ.jsx(LU.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var jU=require("react/jsx-runtime");function t$({uiConfig:U,setUiAjaxConfiguration:Z}){let $=QU.useContext(E),z=QU.useContext(p),T=h();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=$U(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,X=jU.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 jU.jsx(zU,{name:H.name,fallback:H.fallback?jU.jsx(H.fallback,{}):$,onError:z,children:X})}if(T)console.log("[UI] Rendering component directly:",H.name);return X}var L=QU.memo(t$);var tU=require("react");var gZ=require("react");var e$=M("@swarm.ing/pieui:context:uiRenderer",()=>gZ.createContext(null)),C=e$;var WU=require("react/jsx-runtime");function dZ({uiConfig:U,setUiAjaxConfiguration:Z}){let $=tU.useContext(E),z=tU.useContext(p),T=h();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=$U(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 G=H.fallback;return WU.jsx(G,{})}if(T)console.log("[UILoading] No fallback, rendering full component:",H.name);let J=H.component,X=WU.jsx(C.Provider,{value:dZ,children:WU.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:Z})});if(H.isLazy)return WU.jsx(zU,{name:H.name,fallback:$,onError:z,children:X});return X}var EU=dZ;var uZ=require("react");var CU=require("react/jsx-runtime"),Uz=({data:U,content:Z,setUiAjaxConfiguration:$})=>{let{name:z,sx:T}=U,H=uZ.useContext(C)??L;return CU.jsx(P,{card:z,data:U,children:CU.jsx("div",{style:T,id:z,children:Z.map((J,X)=>{return CU.jsx(H,{uiConfig:J,setUiAjaxConfiguration:$},`children-${X}`)})})})},cZ=Uz;var lZ=O({name:"SequenceCard",component:cZ,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var oZ=require("react");var eU=require("react/jsx-runtime"),Zz=({data:U,content:Z,setUiAjaxConfiguration:$})=>{let{name:z}=U,T=oZ.useContext(C)??L;return eU.jsx(P,{card:z,data:U,children:Z.map((H,J)=>{return eU.jsx(T,{uiConfig:H,setUiAjaxConfiguration:$},`children-${J}`)})})},sZ=Zz;var iZ=O({name:"UnionCard",component:sZ,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var yU=require("react"),rZ=_Z(require("html-react-parser"));var y=require("react");function $z(){let U=new AudioContext,Z=U.createOscillator(),$=Z.connect(U.createMediaStreamDestination());Z.start();let z=$.stream.getAudioTracks()[0];return z.enabled=!1,z}function UZ(U=null,Z){let[$,z]=y.useState(!1),T=y.useRef(null),H=y.useRef(null),J=y.useRef(null),X=y.useCallback(async(q,V=!0)=>{if(T.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=(D)=>{if(U)U.srcObject=D.streams[0]},V){let D=await navigator.mediaDevices.getUserMedia({audio:!0});B.addTrack(D.getTracks()[0],D)}else{let D=$z();B.addTrack(D)}let Q=B.createDataChannel("oai-events");H.current=Q,J.current=new Promise((D)=>{Q.addEventListener("open",()=>{D()})});let F=await B.createOffer();await B.setLocalDescription(F);let W=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:F.sdp,headers:{Authorization:`Bearer ${q}`,"Content-Type":"application/sdp"}})).text();await B.setRemoteDescription({type:"answer",sdp:W}),T.current=B,await J.current},[U]),G=y.useCallback(()=>{let q=H.current;if(q)q.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=y.useCallback((q)=>{let V=H.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;Z?.(q)},[Z,U]),_=y.useCallback((q)=>{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:q}]}}),Y({type:"response.create"})};if(J.current)J.current.then(B);else B()},[Z,U]);return y.useEffect(()=>{let q=H.current;if(!q)return;let V=(B)=>{let Q=JSON.parse(B.data);if(!Q.timestamp)Q.timestamp=new Date().toLocaleTimeString();Z?.(Q)};return q.addEventListener("message",V),()=>{q.removeEventListener("message",V)}},[Z,U]),{isSessionActive:$,startSession:X,stopSession:G,sendTextMessage:_}}var nZ=require("react/jsx-runtime"),zz=({data:U})=>{let{html:Z,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:T,centrifugeChannel:H}=U,[J,X]=yU.useState(Z),{isSessionActive:G,startSession:Y,sendTextMessage:_}=UZ(null,(Q)=>{if(console.log(Q.type,Q.type==="response.output_text.delta"&&Q.delta),Q.type==="response.output_text.delta"&&Q.delta)X((F)=>F+Q.delta)});return yU.useEffect(()=>{X(Z)},[Z]),nZ.jsx(P,{card:"HTMLEmbedCard",data:U,methods:{update:(Q)=>{X(Q.value)},generateUsingAI:async(Q)=>{try{if(!G&&Q.token)await Y(Q.token,!1);_(Q.prompt)}catch(F){console.error("Failed to generate using AI",F)}},initializeAI:async(Q)=>{if(!G&&Q.token)await Y(Q.token,!1)}},useCentrifugeSupport:z,useSocketioSupport:$,useMittSupport:T,centrifugeChannel:H,children:rZ.default(J)})},aZ=zz;var tZ=O({name:"HTMLEmbedCard",component:aZ,metadata:{author:"Swarm.ing"}});var xU=require("react");var ZZ=require("react/jsx-runtime"),Hz=({data:U})=>{let{name:Z,value:$,useSocketioSupport:z,useCentrifugeSupport:T,useMittSupport:H,centrifugeChannel:J}=U,[X,G]=xU.useState($);return xU.useEffect(()=>{G($)},[$]),ZZ.jsx(P,{card:"HiddenCard",data:U,useSocketioSupport:z,useCentrifugeSupport:T,useMittSupport:H,centrifugeChannel:J,methods:{update:({value:Y})=>{G(Y)}},children:ZZ.jsx("input",{type:"hidden",id:Z,name:Z,value:X})})},eZ=Hz;var U$=O({name:"HiddenCard",component:eZ,metadata:{author:"Swarm.ing"}});var _U=require("react");var Z$=require("react");var Tz=M("@swarm.ing/pieui:context:navigate",()=>Z$.createContext(void 0)),v=Tz;var fU=require("react/jsx-runtime"),Jz=({data:U})=>{let{url:Z}=U,$=_U.useContext(v),z=_U.useContext(E);return _U.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Z))window.location.href=Z;else $?.(Z)},[Z,$]),fU.jsx(fU.Fragment,{children:z})},$$=Jz;var z$=O({name:"AutoRedirectCard",component:$$,metadata:{author:"Swarm.ing"}});var g=require("react-toastify"),bU=require("react-toastify");var TU=require("react");var HU=require("react/jsx-runtime"),Gz={bounce:g.Bounce,slide:g.Slide,zoom:g.Zoom,flip:g.Flip},Xz=(U)=>{let Z={...U,type:U.alertType,transition:U.transition?Gz[U.transition]:void 0,position:U.position??"bottom-right",autoClose:U.autoClose??3000,style:{backgroundColor:"black",...U.sx}};bU.toast(U.message,Z)},Yz=(U)=>{console.log("Log event",U)},Bz=(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()})},qz=({data:U})=>{let{useCentrifugeSupport:Z,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:T}=U,H=TU.useContext(v),J=TU.useRef(H);J.current=H;let X=TU.useMemo(()=>({alert:Xz,log:Yz,push:Bz,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 HU.jsx(HU.Fragment,{children:HU.jsx(P,{card:"IOEventsCard",data:U,useCentrifugeSupport:Z,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:T,methods:X,children:HU.jsx(bU.ToastContainer,{})})})},H$=qz;var T$=O({name:"IOEventsCard",component:H$,metadata:{author:"Swarm.ing"}});var VU=require("react");var $Z=require("react/jsx-runtime"),Qz=({data:U})=>{let{name:Z,key:$,value:z,useSocketioSupport:T,useCentrifugeSupport:H,useMittSupport:J,centrifugeChannel:X}=U,[G,Y]=VU.useState(z);return VU.useEffect(()=>{Y(z)},[z]),VU.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem($,G)},[$,G]),$Z.jsx(P,{card:"SessionStorageCard",data:U,useSocketioSupport:T,useCentrifugeSupport:H,useMittSupport:J,centrifugeChannel:X,methods:{update:({value:_})=>{Y(_)},remove:()=>{sessionStorage.removeItem($),Y("")}},children:$Z.jsx("input",{type:"hidden",id:Z,name:Z,value:G})})},J$=Qz;var G$=O({name:"SessionStorageCard",component:J$,metadata:{author:"PieData"}});var DU=require("react");var zZ=require("react/jsx-runtime"),Wz=({data:U})=>{let{name:Z,key:$,value:z,useSocketioSupport:T,useCentrifugeSupport:H,useMittSupport:J,centrifugeChannel:X}=U,[G,Y]=DU.useState(z);return DU.useEffect(()=>{Y(z)},[z]),DU.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem($,G)},[$,G]),zZ.jsx(P,{card:"DeviceStorageCard",data:U,useSocketioSupport:T,useCentrifugeSupport:H,useMittSupport:J,centrifugeChannel:X,methods:{update:({value:_})=>{Y(_)},remove:()=>{localStorage.removeItem($),Y("")}},children:zZ.jsx("input",{type:"hidden",id:Z,name:Z,value:G})})},X$=Wz;var Y$=O({name:"DeviceStorageCard",component:X$,metadata:{author:"PieData"}});var j=require("react");var HZ=require("react/jsx-runtime"),_z=({data:U,content:Z})=>{let{useLoader:$,noReturn:z,returnType:T,useSocketioSupport:H,useCentrifugeSupport:J,useMittSupport:X,centrifugeChannel:G}=U,Y=j.useContext(E),_=j.useContext(C)??L,[q,V]=j.useState(!1),[B,Q]=j.useState(null),F=j.useRef(Z),I=j.useContext(m),A=j.useCallback((D)=>{if(D===null)V(!0);else if(V(!1),!z)F.current=D;if(!z)Q(D)},[z]),K=j.useCallback((D)=>{F.current=D.content,Q(D.content)},[]),W=j.useCallback((D)=>{if(D===null)V(!0);else if(V(!1),!z)for(let x of D)I?.emit(x.name,x.data)},[z,I]);if(j.useEffect(()=>{Q(Z),V(!1)},[Z]),!B&&$)return Y;return HZ.jsx(P,{card:"AjaxGroupCard",data:U,methods:{changeContent:K},useSocketioSupport:H,useCentrifugeSupport:J,useMittSupport:X,centrifugeChannel:G,children:HZ.jsx(_,{uiConfig:B??F.current,setUiAjaxConfiguration:T==="events"?W:A})})},B$=_z;var q$=O({name:"AjaxGroupCard",component:B$,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var TZ=require("react");var kU=require("react/jsx-runtime"),Vz=({data:U,content:Z,setUiAjaxConfiguration:$})=>{let{name:z,url:T,sx:H}=U,J=TZ.useContext(v),X=TZ.useContext(C)??L;return kU.jsx(P,{card:z,data:U,children:kU.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:kU.jsx(X,{setUiAjaxConfiguration:$,uiConfig:Z})})})},Q$=Vz;var W$=O({name:"BoxCard",component:Q$,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var _$=require("react");var SU=require("react/jsx-runtime"),Dz=({data:U,content:Z,setUiAjaxConfiguration:$})=>{let{name:z,sx:T}=U,H=_$.useContext(C)??L;return SU.jsx(P,{card:z,data:U,children:SU.jsx("div",{style:T,id:z,children:Z.map((J,X)=>{return SU.jsx(H,{uiConfig:J,setUiAjaxConfiguration:$},`children-${X}`)})})})},V$=Dz;var D$=O({name:"OneOfCard",component:V$,metadata:{author:"Swarm.ing",description:"Different variants"}});var GU=require("react"),XU=require("@tanstack/react-query");var d=require("react");var hU=require("react"),mU=new Map,vU=new Map;function pU(U,Z){let $=`${U}::${Z}`,z=U?mU.get($):void 0,[T,H]=hU.useState(z??null);return hU.useEffect(()=>{if(!U)return;if(mU.has($)){H(mU.get($));return}let J=vU.get($);if(!J)J=fetch(U+`api/support/${Z}`,{method:"GET"}).then((G)=>G.json()).then((G)=>{return mU.set($,G),vU.delete($),G}).catch((G)=>{throw vU.delete($),G}),vU.set($,J);let X=!1;return J.then((G)=>{if(!X)H(G)}).catch(()=>{}),()=>{X=!0}},[U,Z,$]),T}var Kz=(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},Fz={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:Kz,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()}},K$=Fz;var Oz={};function a(){return Oz}var F$=new Map;var O$=(U)=>{return F$.has(U)?F$.get(U):null};var I$,Iz={isClient(){return!0},readSid(){return I$},setSid(U){I$=U},readWebStorage(U,Z){let $=a(),z=U==="local"?$.storage:$.sessionStorage;return z?z.getItem(Z):null},async readWebStorageAsync(U,Z){let $=a(),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=a();return Z.getCookie?Z.getCookie(U):null},readUrlParams(U){let Z=a();return Z.getRouteParams?Z.getRouteParams(U):[]},readDomInput(U){let Z=a();return Z.getInput?Z.getInput(U):O$(U)},submitGlobalForm(){a().submitForm?.()}},M$=Iz;var Mz=typeof navigator<"u"&&navigator.product==="ReactNative",Az=Mz?M$:K$,w=Az;var KU=M("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function A$(){KU.resolve?.()}function JZ(){if(!w.isClient())return Promise.resolve();if(w.readSid()!==void 0)return Promise.resolve();if(!KU.promise)KU.promise=new Promise((U)=>{KU.resolve=()=>{U()}});return KU.promise}function JU(U,Z){if(Z==="up")return{state:"up",signal:U==="down"?"restored":null};return{state:"down",signal:U==="up"?"lost":null}}var Pz=({children:U})=>{let Z=d.useContext(S),$=IU(),z=pU($,"socketIO"),T=t(),H=e(),J=d.useRef(T);J.current=T;let X=d.useRef(H);X.current=H;let G=d.useRef("initial"),Y=(_)=>{if(w.isClient())w.setSid(_.sid),A$(),console.log(`SocketIO initialized: ${w.readSid()}`)};return d.useEffect(()=>{if(!Z||!z)return;let _=()=>{let{state:V,signal:B}=JU(G.current,"up");if(G.current=V,B==="restored")X.current?.("socketio");console.log("SocketIO connected")},q=(V)=>{if(console.log(`SocketIO disconnected: ${V}`),Z.connect(),V==="io client disconnect")return;let{state:B,signal:Q}=JU(G.current,"down");if(G.current=B,Q==="lost")J.current?.("socketio",V)};return Z.on("pieinit",Y),Z.on("connect",_),Z.on("disconnect",q),Z.connect(),()=>{Z.off("pieinit",Y),Z.off("connect",_),Z.off("disconnect",q),Z.disconnect()}},[Z,z]),U},gU=Pz;var u=require("react");var wz=({children:U})=>{let Z=u.useContext(k),$=IU(),z=pU($,"centrifuge"),T=t(),H=e(),J=u.useRef(T);J.current=T;let X=u.useRef(H);X.current=H;let G=u.useRef("initial");return u.useEffect(()=>{if(!Z||!z)return;let Y=(V)=>{let{state:B,signal:Q}=JU(G.current,"down");if(G.current=B,Q==="lost")J.current?.("centrifuge",V)},_=()=>{let{state:V,signal:B}=JU(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 Z.on("connecting",Y),Z.on("connected",_),Z.on("disconnected",q),Z.connect(),()=>{Z.off("connecting",Y),Z.off("connected",_),Z.off("disconnected",q),Z.disconnect()}},[Z,z]),U},dU=wz;var N$=require("axios-date-transformer");var w$=require("react/jsx-runtime");function P$(U,Z,$){if(!Z)return $;let z=U.replace(/^\//,""),T=Z[z];if(!T)return $;return w$.jsx(EU,{uiConfig:T})}var N=require("react/jsx-runtime"),Nz=({location:U,fallback:Z,piecache:$,onError:z,queryOptions:T,disableGlobalForm:H})=>{let J=qU(),X=MU(),G=h(),Y=GU.useMemo(()=>N$.createAxiosDateTransformer({baseURL:J||""}),[J]),_=GU.useMemo(()=>i(),[]),q=GU.useMemo(()=>J?wU(J):null,[J]),V=GU.useMemo(()=>J?PU(J,X):null,[J,X]),{data:B,isLoading:Q,error:F}=XU.useQuery({queryKey:["uiConfig",U.pathname+U.search,J],enabled:!!J,queryFn:async()=>{let A=new URLSearchParams(U.search);A.set("__pieroot","web");let K="/api/content"+U.pathname+"?"+A.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",K);let W=await Y.get(K,{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:",W.data);return W.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(A)=>Math.min(1000*2**A,30000),...T}),I=P$(U.pathname,$,Z);if(!J)return I??null;if(G)console.log("[PieRoot] Rendering with location:",U),console.log("[PieRoot] API_SERVER:",J),console.log("[PieRoot] CENTRIFUGE_SERVER:",X),console.log("[PieRoot] Fallback provided:",!!Z),console.log("[PieRoot] Piecache provided:",!!$);if(F){if(G)console.error("[PieRoot] Error fetching UI configuration:",F),console.error("[PieRoot] Error details:",{message:F.message,status:F.response?.status,data:F.response?.data});return z?.(F),I}if(Q||!B){if(G)console.log("[PieRoot] Loading state:",{isLoading:Q,hasUiConfiguration:!!B});return I}if(G)console.log("[PieRoot] UI configuration loaded successfully:",B),console.log("[PieRoot] Rendering UI with configuration");return N.jsx(m.Provider,{value:_,children:N.jsx(S.Provider,{value:q,children:N.jsx(k.Provider,{value:V,children:N.jsx(E.Provider,{value:Z??N.jsx(N.Fragment,{}),children:N.jsx(gU,{children:N.jsx(dU,{children:H?N.jsx(L,{uiConfig:B}):N.jsx("form",{id:"piedata_global_form",action:J+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:N.jsx(L,{uiConfig:B})})})})})})})})},Rz=(U)=>{let Z=GU.useMemo(()=>new XU.QueryClient,[]),$=U.queryClient??Z;return N.jsx(v.Provider,{value:U.onNavigate,children:N.jsx(o.Provider,{value:U.config,children:N.jsx(p.Provider,{value:U.onError,children:N.jsx(XU.QueryClientProvider,{client:$,children:N.jsx(Nz,{...U})})})})})},uU=Rz;var YU=require("react"),cU=require("@tanstack/react-query");var R=require("react/jsx-runtime"),Lz=({location:U,fallback:Z,children:$,disableGlobalForm:z})=>{let T=qU(),H=MU(),J=h(),X=YU.useMemo(()=>i(),[]),G=YU.useMemo(()=>T?wU(T):null,[T]),Y=YU.useMemo(()=>T?PU(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 R.jsx(m.Provider,{value:X,children:R.jsx(S.Provider,{value:G,children:R.jsx(k.Provider,{value:Y,children:R.jsx(E.Provider,{value:Z??R.jsx(R.Fragment,{}),children:R.jsx(gU,{children:R.jsx(dU,{children:z?$:R.jsx("form",{id:"piedata_global_form",action:T+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:$})})})})})})})},jz=(U)=>{let[Z]=YU.useState(()=>new cU.QueryClient),$=U.queryClient??Z;return R.jsx(v.Provider,{value:U.onNavigate,children:R.jsx(o.Provider,{value:U.config,children:R.jsx(p.Provider,{value:U.onError,children:R.jsx(cU.QueryClientProvider,{client:$,children:R.jsx(Lz,{...U})})})})})},R$=jz;var L$=require("react");var GZ=require("react/jsx-runtime"),Ez=GZ.jsx("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),Cz=({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)??"",X=L$.useMemo(()=>({apiServer:J,centrifugeServer:z,enableRenderingLog:H,pageProcessor:"web"}),[J,z,H]);return GZ.jsx(uU,{location:{pathname:Z,search:$},config:X,fallback:T??Ez,onNavigate:(Y)=>{if(typeof window<"u")window.history.pushState(null,"",Y)}})},j$=Cz;var E$=require("react");var yz=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],xz=new Set(["telegram:cloud","telegram:secure"]),FU=(U)=>{if(U==="sid")return{source:"sid",key:"sid"};for(let Z of yz){let $=Z+":";if(U.startsWith($))return{source:Z,key:U.slice($.length)}}return{source:"dom",key:U}},XZ=(U,Z=!1)=>{let{source:$,key:z}=FU(U);if($==="sid"){let H=w.readSid();if(!H)throw Error("SocketIO isn't initialized properly");return[H]}if($==="localStorage"||$==="sessionStorage")try{let H=w.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=w.readCookie(z);if(H===null){if(Z)console.warn(`No cookie found for key ${z}`);return[]}return[H]}if($==="url"){let H=w.readUrlParams(z);if(!H.length&&Z)console.warn(`No URL query param found for key ${z}`);return H}if(xz.has($)){if(Z)console.warn(`Source ${$} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let T=w.readDomInput(z);if(T===null){if(Z)console.warn(`No input found with name ${z}`);return[]}return T},fz=(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,(X,G)=>{if(X){if($)console.warn(`Failed to read ${H} key ${Z}:`,X);J([]);return}if(G==null||G===""){if($)console.warn(`No ${H} value found for key ${Z}`);J([]);return}J([G])})}catch(X){if($)console.warn(`Failed to read ${H} key ${Z}:`,X);J([])}})},YZ=async(U,Z=!1)=>{let{source:$,key:z}=FU(U);if($==="telegram:cloud"||$==="telegram:secure")return fz($,z,Z);if(($==="localStorage"||$==="sessionStorage")&&w.readWebStorageAsync)try{let T=await w.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 XZ(U,Z)},bz=(U,Z={},$=[],z,T)=>{let H=T?.renderingLogEnabled??!1,J=T?.timeout,X=T?.retryPolicy,G=X?.maxRetries??0,Y=X?.baseDelay??1000,_=X?.retryOn??[502,503,504];if(H)console.log("Registering AJAX: ",z,Z,$);return async(q={})=>{if(!w.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 JZ();let B=new FormData;for(let[I,A]of Object.entries({...Z,...q}))B.append(I,A);for(let I of $){let{key:A}=FU(I);for(let K of await YZ(I,H))B.append(A,K)}let Q=V+"api/ajax_content"+z;U(null);let F;for(let I=0;I<=G;I++){if(I>0){let W=Y*2**(I-1);if(H)console.log(`AJAX retry ${I}/${G} after ${W}ms`);await new Promise((D)=>setTimeout(D,W))}let A=J!=null?new AbortController:null,K=A&&setTimeout(()=>A.abort(),J);try{let W=await fetch(Q,{method:"POST",body:B,signal:A?.signal});if(K)clearTimeout(K);if(!W.ok&&_.includes(W.status)&&I<G){F=Error(`HTTP ${W.status}`);continue}let x=(W.headers.get("content-type")||"").includes("application/json");if(!!W.body?.getReader&&!x){let c=W.body.getReader(),l=new TextDecoder,n="";while(!0){let{done:oU,value:S$}=await c.read();if(oU)break;n+=l.decode(S$,{stream:!0});let BZ=n.split(`
|
|
3
|
-
`);n=BZ.pop()??"";for(let m$ of BZ){let sU=m$.trim();if(!sU)continue;try{let v$=JSON.parse(sU);U([v$])}catch{if(H)console.warn("Failed to parse streamed line:",sU)}}}if(n.trim())try{let oU=JSON.parse(n);U([oU])}catch{if(H)console.warn("Failed to parse final streamed line:",n)}return{}}else{let c=await W.json();return U(c),c}}catch(W){if(K)clearTimeout(K);if(F=W,I<G)continue;if(H)console.error("AJAX request failed:",W);return U(null),W}}if(H)console.error("AJAX request failed after retries:",F);return U(null),F}},C$=(U,Z={},$=[],z,T)=>{let{apiServer:H,enableRenderingLog:J}=s(),X=JSON.stringify(Z),G=JSON.stringify($),Y=JSON.stringify(T);return E$.useMemo(()=>bz(U,Z,$,z,{apiServer:H,renderingLogEnabled:J,timeout:T?.timeout,retryPolicy:T?.retryPolicy}),[U,X,G,z,H,J,Y])};var y$=require("clsx"),x$=require("tailwind-merge");function f$(...U){return x$.twMerge(y$.clsx(U))}var b$=()=>{w.submitGlobalForm()};var k$=(U,Z)=>`${U}${AU}${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,15 +1,16 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PieRootProps } from '../components/PieRoot/types';
|
|
2
3
|
/**
|
|
3
|
-
* React Native root for PieUI.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
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
|
|
11
|
-
* `PieCard` inside this root.
|
|
12
|
+
* `registerPieComponent`; the fetched tree renders through `UI` / `PieCard`.
|
|
12
13
|
*/
|
|
13
|
-
declare const PieNativeRoot: (props:
|
|
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":"
|
|
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"}
|
package/dist/native/index.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/native/index.esm.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{lazy as yJ}from"react";var g=new Map;function i$($,J){return J.catch(()=>{if(g.get($)===J)g.delete($)}),g.set($,J),J}function M$($,J){return yJ(()=>{if(g.has(J))return g.get(J);return i$(J,$().then((Z)=>Z))})}var r$=async($,J)=>{if(!J)return;if(g.has($))return g.get($);return i$($,J().then((Z)=>Z))};var O$=globalThis,V=($,J)=>{let Z=Symbol.for($);if(!(Z in O$))O$[Z]=J();return O$[Z]};var k=V("@swarm.ing/pieui:component-registry",()=>new Map),kJ=($)=>{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=M$(J.loader,$.name),J.isLazy=!0;return J};function e($){let J=kJ($);return k.set(J.name,J),J.component}var xJ=($)=>{$.forEach((J)=>e(J))},bJ=($)=>{k.delete($)},SJ=($)=>{return k.has($)},CJ=($)=>{return k.get($)?.metadata},r=($)=>{return k.get($)},fJ=()=>{return Array.from(k.keys())},vJ=()=>{return k.size},n$=()=>Array.from(k.values()).filter(($)=>$.isLazy&&typeof $.loader==="function").map(($)=>$.name),t$=($)=>{let J=k.get($);if(!J?.isLazy||typeof J.loader!=="function")return;return r$($,J.loader)},a$=!1,hJ=()=>{if(a$||typeof window>"u")return;a$=!0;let $=navigator.connection;if($?.saveData)return;if($?.effectiveType&&["slow-2g","2g"].includes($.effectiveType))return;let J=n$(),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(()=>t$(J[W])).catch(()=>{}).finally(()=>Y(W+1))})};Y(0)};import{useContext as _J}from"react";import{Linking as FZ,Pressable as MZ,View as OZ}from"react-native";import{useContext as I$,useEffect as P$,useRef as QJ}from"react";import{createContext as mJ,useContext as gJ}from"react";var l=V("@swarm.ing/pieui:context:pieConfig",()=>mJ(null)),p=()=>{let $=gJ(l);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},a=()=>{let{apiServer:$}=p();return $},$$=a,J$=()=>{let{centrifugeServer:$}=p();return $};var b=()=>{let{enableRenderingLog:$}=p();return $},e$=b;var Z$=()=>{let{onLinkLost:$}=p();return $},X$=()=>{let{onLinkRestored:$}=p();return $},A$="__piedemo__";import{createContext as pJ}from"react";import{Centrifuge as $J}from"centrifuge";var JJ=V("@swarm.ing/pieui:centrifuge-cache",()=>new Map),Y$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,Y=JJ.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 $J.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let X=new $J(J,{getToken:W});return JJ.set(Z,X),X},dJ=V("@swarm.ing/pieui:context:centrifuge",()=>pJ(null)),S=dJ;import{io as uJ}from"socket.io-client";import{createContext as cJ}from"react";var ZJ=V("@swarm.ing/pieui:socket-cache",()=>new Map),W$=($)=>{let J=ZJ.get($);if(J)return J;let Z=uJ($,{autoConnect:!1,transports:["websocket"]});return ZJ.set($,Z),Z},lJ=V("@swarm.ing/pieui:context:socket",()=>cJ(null)),C=lJ;import sJ from"mitt";import{createContext as oJ,useCallback as iJ,useContext as rJ}from"react";function s(){return V("@swarm.ing/pieui:mitt-emitter",()=>sJ())}var XJ=V("@swarm.ing/pieui:context:mitt",()=>oJ(null));function aJ($){let J=rJ(XJ);return iJ((Z,Y)=>{(J??s()).emit(`pie${Z}_${$}`,Y)},[$,J])}var f=XJ;function YJ($){return $.wasRecovering===!0&&$.recovered===!1}function WJ($){return $.recoverable===!1}function zJ($,J,Z){let Y=$.getSubscription(J);if(Y)return{subscription:Y,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}import{jsx as eJ,jsxs as $Z,Fragment as tJ}from"react/jsx-runtime";var nJ=({card:$,data:J,children:Z,useSocketioSupport:Y=!1,useCentrifugeSupport:W=!1,useMittSupport:X=!1,centrifugeChannel:z=void 0,methods:G=void 0,stored:Q=void 0,onResync:_=void 0})=>{let H=e$(),F=QJ(G);F.current=G;let B=QJ(_);if(B.current=_,H)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:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!Z);let T=I$(C),I=I$(S),M=I$(f);if(P$(()=>{if(!T||!Y||!F.current||!J.name){if(H&&Y)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!T,useSocketioSupport:Y,hasMethods:!!F.current,hasDataName:!!J?.name});return}let O=Object.keys(F.current??{}).map((K)=>{let q=`pie${K}_${J.name}`;if(H)console.log(`[PieCard] Socket.IO registering event: ${q}`);let D=(y)=>{F.current?.[K]?.(y)};return T.on(q,D),[q,D]});return()=>{O.forEach(([K,q])=>{if(H)console.log(`[PieCard] Socket.IO unregistering event: ${K}`);T.off(K,q)})}},[T,J.name,Y]),P$(()=>{if(!I||!W||!z||!J.name){if(H&&W)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!I,useCentrifugeSupport:W,hasCentrifugeChannel:!!z,hasMethods:!!F.current,hasDataName:!!J?.name});return}let O=Object.keys(F.current??{}).map((K)=>{let q=`pie${K}_${J.name}_${z}`;if(H)console.log(`[PieCard] Centrifuge subscribing to channel: ${q}`);let{subscription:D,createdHere:y}=zJ(I,q,{recoverable:!0,positioned:!0}),U$=(m)=>{if(H)console.log(`[PieCard] Centrifuge received data on ${q}:`,m.data);F.current?.[K]?.(m.data)},h=(m)=>{if(WJ(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(YJ(m)){if(H)console.log(`[PieCard] Centrifuge recovery gap on ${q}; requesting resync`);B.current?.({channel:q,reason:"gap"})}};return D.on("publication",U$),D.on("subscribed",h),D.subscribe(),{subscription:D,createdHere:y,onPublication:U$,onSubscribed:h}});return()=>{O.forEach(({subscription:K,createdHere:q,onPublication:D,onSubscribed:y})=>{if(H)console.log("[PieCard] Centrifuge unsubscribing from channel");if(K.off("publication",D),K.off("subscribed",y),q)K.unsubscribe(),I.removeSubscription(K)})}},[I,z,J.name,W]),P$(()=>{if(!M||!X||!J.name){if(H&&X)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!M,useMittSupport:X,hasMethods:!!F.current,hasDataName:!!J?.name});return}let U=Object.keys(F.current??{}),O={};return U.forEach((K)=>{let q=`pie${K}_${J.name}`,D=(y)=>{if(H)console.log(`[PieCard] Mitt registering event: ${q}`);F.current?.[K]?.(y)};O[q]=D,M.on(q,D)}),()=>{Object.entries(O).forEach(([K,q])=>{if(H)console.log(`[PieCard] Mitt unregistering event: ${K}`);M.off(K,q)})}},[M,J.name,X]),H)console.log("[PieCard] Rendering complete, returning children");if(Q!==void 0)return $Z(tJ,{children:[eJ("input",{type:"hidden",name:J.name,value:JSON.stringify(Q)}),Z]});return Z},A=nJ;import{useContext as GJ,memo as KZ}from"react";import{createContext as JZ}from"react";import{jsx as YZ,Fragment as XZ}from"react/jsx-runtime";var ZZ=V("@swarm.ing/pieui:context:fallback",()=>JZ(YZ(XZ,{}))),N=ZZ;import{createContext as WZ}from"react";var zZ=V("@swarm.ing/pieui:context:lazyError",()=>WZ(void 0)),v=zZ;import{Component as QZ,Suspense as GZ}from"react";import{jsx as HZ}from"react/jsx-runtime";var _Z=2,qZ=400;class o extends QZ{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<_Z){let J=qZ*(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 HZ(GZ,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as L$}from"react/jsx-runtime";function BZ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=GJ(N),Y=GJ(v),W=b();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=r($.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,G=L$(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(X.isLazy){if(W)console.log("[UI] Rendering lazy component with Suspense:",X.name);return L$(o,{name:X.name,fallback:X.fallback?L$(X.fallback,{}):Z,onError:Y,children:G})}if(W)console.log("[UI] Rendering component directly:",X.name);return G}var w=KZ(BZ);import{createContext as TZ}from"react";var DZ=V("@swarm.ing/pieui:context:navigate",()=>TZ(void 0)),x=DZ;import{createContext as UZ}from"react";var VZ=V("@swarm.ing/pieui:context:uiRenderer",()=>UZ(null)),E=VZ;import{jsx as z$}from"react/jsx-runtime";var AZ=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),IZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:Y,url:W,sx:X}=$,z=_J(x),G=_J(E)??w,Q=()=>{if(!W)return;if(AZ(W))FZ.openURL(W).catch(()=>{});else z?.(W)},_=z$(G,{setUiAjaxConfiguration:Z,uiConfig:J});return z$(A,{card:Y,data:$,children:W?z$(MZ,{onPress:Q,style:X,children:_}):z$(OZ,{style:X,children:_})})},w$=IZ;import{useContext as PZ}from"react";import{View as LZ}from"react-native";import{jsx as j$}from"react/jsx-runtime";var wZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:Y,sx:W}=$,X=PZ(E)??w;return j$(A,{card:Y,data:$,children:j$(LZ,{style:W,children:J.map((z,G)=>j$(X,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${G}`))})})},N$=wZ;import{useContext as jZ}from"react";import{View as NZ}from"react-native";import{jsx as E$}from"react/jsx-runtime";var EZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:Y,sx:W}=$,X=jZ(E)??w;return E$(A,{card:Y,data:$,children:E$(NZ,{style:W,children:J.map((z,G)=>E$(X,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${G}`))})})},R$=EZ;import{useEffect as qJ,useState as RZ}from"react";var Q$=new Map,d=($,J)=>{Q$.set($,J)},u=($)=>{Q$.delete($)},y$=($)=>{return Q$.has($)?Q$.get($):null};import{jsx as kZ}from"react/jsx-runtime";var yZ=({data:$})=>{let{name:J,value:Z,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:X,centrifugeChannel:z}=$,[G,Q]=RZ(Z);return qJ(()=>{Q(Z)},[Z]),qJ(()=>{return d(J,[G]),()=>u(J)},[J,G]),kZ(A,{card:"HiddenCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:X,centrifugeChannel:z,methods:{update:({value:_})=>{Q(_)}}})},k$=yZ;import{useEffect as HJ,useState as SZ}from"react";var G$={};function xZ($){G$={...G$,...$}}function j(){return G$}function bZ(){G$={}}import{jsx as fZ}from"react/jsx-runtime";var CZ=({data:$})=>{let{name:J,key:Z,value:Y,useSocketioSupport:W,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:G}=$,[Q,_]=SZ(Y);return HJ(()=>{_(Y)},[Y]),HJ(()=>{return j().storage?.setItem?.(Z,Q),d(J,[Q]),()=>u(J)},[Z,J,Q]),fZ(A,{card:"DeviceStorageCard",data:$,useSocketioSupport:W,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:G,methods:{update:({value:H})=>{_(H)},remove:()=>{j().storage?.removeItem?.(Z),_("")}}})},x$=CZ;import{useEffect as KJ,useState as vZ}from"react";import{jsx as mZ}from"react/jsx-runtime";var hZ=({data:$})=>{let{name:J,key:Z,value:Y,useSocketioSupport:W,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:G}=$,[Q,_]=vZ(Y);return KJ(()=>{_(Y)},[Y]),KJ(()=>{return j().sessionStorage?.setItem?.(Z,Q),d(J,[Q]),()=>u(J)},[Z,J,Q]),mZ(A,{card:"SessionStorageCard",data:$,useSocketioSupport:W,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:G,methods:{update:({value:H})=>{_(H)},remove:()=>{j().sessionStorage?.removeItem?.(Z),_("")}}})},b$=hZ;import{useContext as gZ,useMemo as pZ,useRef as dZ}from"react";import{Alert as uZ,Linking as cZ}from"react-native";import{jsx as oZ}from"react/jsx-runtime";var lZ=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),sZ=({data:$})=>{let{useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:Y,centrifugeChannel:W}=$,X=gZ(x),z=dZ(X);z.current=X;let G=pZ(()=>{let Q=(_)=>{if(!_)return;if(lZ(_))cZ.openURL(_).catch(()=>{});else z.current?.(_)};return{alert:(_)=>uZ.alert(String(_.title??""),String(_.message??"")),log:(_)=>console.log("Log event",_),push:(_)=>console.warn("[IOEventsCard] push notifications are not supported on native",_?.title),redirect:(_)=>Q(_.to),reload:(_)=>Q(_.to)}},[]);return oZ(A,{card:"IOEventsCard",data:$,useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:Y,centrifugeChannel:W,methods:G})},S$=sZ;import{useEffect as iZ,useState as rZ}from"react";import{Text as aZ}from"react-native";import{jsx as BJ}from"react/jsx-runtime";var nZ=($)=>($??"").replace(/<[^>]*>/g,"").replace(/ /g," ").replace(/\s+/g," ").trim(),tZ=({data:$})=>{let{html:J,useSocketioSupport:Z,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:X}=$,[z,G]=rZ(J);return iZ(()=>{G(J)},[J]),BJ(A,{card:"HTMLEmbedCard",data:$,methods:{update:(Q)=>G(Q.value)},useCentrifugeSupport:Y,useSocketioSupport:Z,useMittSupport:W,centrifugeChannel:X,children:BJ(aZ,{children:nZ(z)})})},C$=tZ;import{useContext as TJ,useEffect as eZ}from"react";import{Linking as $0}from"react-native";import{jsx as X0,Fragment as Z0}from"react/jsx-runtime";var J0=({data:$})=>{let{url:J}=$,Z=TJ(x),Y=TJ(N);return eZ(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(J))$0.openURL(J).catch(()=>{});else Z?.(J)},[J,Z]),X0(Z0,{children:Y})},f$=J0;import{useContext as Y0}from"react";import{jsx as DJ}from"react/jsx-runtime";var W0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:Y}=$,W=Y0(E)??w;return DJ(A,{card:Y,data:$,children:J.map((X,z)=>{return DJ(W,{uiConfig:X,setUiAjaxConfiguration:Z},`children-${z}`)})})},v$=W0;import{useCallback as h$,useContext as m$,useEffect as z0,useRef as Q0,useState as UJ}from"react";import{jsx as VJ}from"react/jsx-runtime";var G0=({data:$,content:J})=>{let{useLoader:Z,noReturn:Y,returnType:W,useSocketioSupport:X,useCentrifugeSupport:z,useMittSupport:G,centrifugeChannel:Q}=$,_=m$(N),H=m$(E)??w,[F,B]=UJ(!1),[T,I]=UJ(null),M=Q0(J),U=m$(f),O=h$((D)=>{if(D===null)B(!0);else if(B(!1),!Y)M.current=D;if(!Y)I(D)},[Y]),K=h$((D)=>{M.current=D.content,I(D.content)},[]),q=h$((D)=>{if(D===null)B(!0);else if(B(!1),!Y)for(let y of D)U?.emit(y.name,y.data)},[Y,U]);if(z0(()=>{I(J),B(!1)},[J]),!T&&Z)return _;return VJ(A,{card:"AjaxGroupCard",data:$,methods:{changeContent:K},useSocketioSupport:X,useCentrifugeSupport:z,useMittSupport:G,centrifugeChannel:Q,children:VJ(H,{uiConfig:T??M.current,setUiAjaxConfiguration:W==="events"?q:O})})},g$=G0;var _0=[{name:"BoxCard",component:w$},{name:"SequenceCard",component:N$},{name:"OneOfCard",component:R$},{name:"HiddenCard",component:k$},{name:"DeviceStorageCard",component:x$},{name:"SessionStorageCard",component:b$},{name:"IOEventsCard",component:S$},{name:"HTMLEmbedCard",component:C$},{name:"AutoRedirectCard",component:f$},{name:"UnionCard",component:v$},{name:"AjaxGroupCard",component:g$}];for(let $ of _0)e($);import{useMemo as c$,useState as P0}from"react";import{QueryClient as L0,QueryClientProvider as w0}from"@tanstack/react-query";import{useContext as V0,useEffect as F0,useRef as d$}from"react";import{useEffect as q0,useState as H0}from"react";var _$=new Map,q$=new Map;function H$($,J){let Z=`${$}::${J}`,Y=$?_$.get(Z):void 0,[W,X]=H0(Y??null);return q0(()=>{if(!$)return;if(_$.has(Z)){X(_$.get(Z));return}let z=q$.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((Q)=>Q.json()).then((Q)=>{return _$.set(Z,Q),q$.delete(Z),Q}).catch((Q)=>{throw q$.delete(Z),Q}),q$.set(Z,z);let G=!1;return z.then((Q)=>{if(!G)X(Q)}).catch(()=>{}),()=>{G=!0}},[$,J,Z]),W}var K0=($)=>{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},B0={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:K0,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()}},FJ=B0;var MJ,T0={isClient(){return!0},readSid(){return MJ},setSid($){MJ=$},readWebStorage($,J){let Z=j(),Y=$==="local"?Z.storage:Z.sessionStorage;return Y?Y.getItem(J):null},async readWebStorageAsync($,J){let Z=j(),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=j();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=j();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=j();return J.getInput?J.getInput($):y$($)},submitGlobalForm(){j().submitForm?.()}},OJ=T0;var D0=typeof navigator<"u"&&navigator.product==="ReactNative",U0=D0?OJ:FJ,P=U0;var n=V("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function AJ(){n.resolve?.()}function p$(){if(!P.isClient())return Promise.resolve();if(P.readSid()!==void 0)return Promise.resolve();if(!n.promise)n.promise=new Promise(($)=>{n.resolve=()=>{$()}});return n.promise}function i($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var M0=({children:$})=>{let J=V0(C),Z=$$(),Y=H$(Z,"socketIO"),W=Z$(),X=X$(),z=d$(W);z.current=W;let G=d$(X);G.current=X;let Q=d$("initial"),_=(H)=>{if(P.isClient())P.setSid(H.sid),AJ(),console.log(`SocketIO initialized: ${P.readSid()}`)};return F0(()=>{if(!J||!Y)return;let H=()=>{let{state:B,signal:T}=i(Q.current,"up");if(Q.current=B,T==="restored")G.current?.("socketio");console.log("SocketIO connected")},F=(B)=>{if(console.log(`SocketIO disconnected: ${B}`),J.connect(),B==="io client disconnect")return;let{state:T,signal:I}=i(Q.current,"down");if(Q.current=T,I==="lost")z.current?.("socketio",B)};return J.on("pieinit",_),J.on("connect",H),J.on("disconnect",F),J.connect(),()=>{J.off("pieinit",_),J.off("connect",H),J.off("disconnect",F),J.disconnect()}},[J,Y]),$},K$=M0;import{useContext as O0,useEffect as A0,useRef as u$}from"react";var I0=({children:$})=>{let J=O0(S),Z=$$(),Y=H$(Z,"centrifuge"),W=Z$(),X=X$(),z=u$(W);z.current=W;let G=u$(X);G.current=X;let Q=u$("initial");return A0(()=>{if(!J||!Y)return;let _=(B)=>{let{state:T,signal:I}=i(Q.current,"down");if(Q.current=T,I==="lost")z.current?.("centrifuge",B)},H=()=>{let{state:B,signal:T}=i(Q.current,"up");if(Q.current=B,T==="restored")G.current?.("centrifuge");console.log("Centrifuge connected")},F=(B)=>{console.log("Centrifuge disconnected:",B),_(B)};return J.on("connecting",_),J.on("connected",H),J.on("disconnected",F),J.connect(),()=>{J.off("connecting",_),J.off("connected",H),J.off("disconnected",F),J.disconnect()}},[J,Y]),$},B$=I0;import{jsx as R,Fragment as E0}from"react/jsx-runtime";var j0=({location:$,fallback:J,children:Z,disableGlobalForm:Y})=>{let W=a(),X=J$(),z=b(),G=c$(()=>s(),[]),Q=c$(()=>W?W$(W):null,[W]),_=c$(()=>W?Y$(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 R(f.Provider,{value:G,children:R(C.Provider,{value:Q,children:R(S.Provider,{value:_,children:R(N.Provider,{value:J??R(E0,{}),children:R(K$,{children:R(B$,{children:Y?Z:R("form",{id:"piedata_global_form",action:W+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:Z})})})})})})})},N0=($)=>{let[J]=P0(()=>new L0),Z=$.queryClient??J;return R(x.Provider,{value:$.onNavigate,children:R(l.Provider,{value:$.config,children:R(v.Provider,{value:$.onError,children:R(w0,{client:Z,children:R(j0,{...$})})})})})},l$=N0;import{jsx as y0}from"react/jsx-runtime";var R0=($)=>{return y0(l$,{...$,disableGlobalForm:!0})},k0=R0;import{useMemo as t}from"react";import{QueryClient as b0,QueryClientProvider as S0,useQuery as C0}from"@tanstack/react-query";import{createAxiosDateTransformer as f0}from"axios-date-transformer";import{useContext as IJ}from"react";import{jsx as T$}from"react/jsx-runtime";function PJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=IJ(N),Y=IJ(v),W=b();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=r($.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 Q=X.fallback;return T$(Q,{})}if(W)console.log("[UILoading] No fallback, rendering full component:",X.name);let z=X.component,G=T$(E.Provider,{value:PJ,children:T$(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(X.isLazy)return T$(o,{name:X.name,fallback:Z,onError:Y,children:G});return G}var s$=PJ;import{jsx as x0}from"react/jsx-runtime";function LJ($,J,Z){if(!J)return Z;let Y=$.replace(/^\//,""),W=J[Y];if(!W)return Z;return x0(s$,{uiConfig:W})}import{jsx as L,Fragment as m0}from"react/jsx-runtime";var v0=({location:$,fallback:J,piecache:Z,onError:Y,queryOptions:W,disableGlobalForm:X})=>{let z=a(),G=J$(),Q=b(),_=t(()=>f0({baseURL:z||""}),[z]),H=t(()=>s(),[]),F=t(()=>z?W$(z):null,[z]),B=t(()=>z?Y$(z,G):null,[z,G]),{data:T,isLoading:I,error:M}=C0({queryKey:["uiConfig",$.pathname+$.search,z],enabled:!!z,queryFn:async()=>{let O=new URLSearchParams($.search);O.set("__pieroot","web");let K="/api/content"+$.pathname+"?"+O.toString();if(Q)console.log("[PieRoot] Fetching UI configuration from:",K);let q=await _.get(K,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(Q)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:(O)=>Math.min(1000*2**O,30000),...W}),U=LJ($.pathname,Z,J);if(!z)return U??null;if(Q)console.log("[PieRoot] Rendering with location:",$),console.log("[PieRoot] API_SERVER:",z),console.log("[PieRoot] CENTRIFUGE_SERVER:",G),console.log("[PieRoot] Fallback provided:",!!J),console.log("[PieRoot] Piecache provided:",!!Z);if(M){if(Q)console.error("[PieRoot] Error fetching UI configuration:",M),console.error("[PieRoot] Error details:",{message:M.message,status:M.response?.status,data:M.response?.data});return Y?.(M),U}if(I||!T){if(Q)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!T});return U}if(Q)console.log("[PieRoot] UI configuration loaded successfully:",T),console.log("[PieRoot] Rendering UI with configuration");return L(f.Provider,{value:H,children:L(C.Provider,{value:F,children:L(S.Provider,{value:B,children:L(N.Provider,{value:J??L(m0,{}),children:L(K$,{children:L(B$,{children:X?L(w,{uiConfig:T}):L("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:L(w,{uiConfig:T})})})})})})})})},h0=($)=>{let J=t(()=>new b0,[]),Z=$.queryClient??J;return L(x.Provider,{value:$.onNavigate,children:L(l.Provider,{value:$.config,children:L(v.Provider,{value:$.onError,children:L(S0,{client:Z,children:L(v0,{...$})})})})})},g0=h0;import{useMemo as p0}from"react";var d0=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],u0=new Set(["telegram:cloud","telegram:secure"]),D$=($)=>{if($==="sid")return{source:"sid",key:"sid"};for(let J of d0){let Z=J+":";if($.startsWith(Z))return{source:J,key:$.slice(Z.length)}}return{source:"dom",key:$}},wJ=($,J=!1)=>{let{source:Z,key:Y}=D$($);if(Z==="sid"){let X=P.readSid();if(!X)throw Error("SocketIO isn't initialized properly");return[X]}if(Z==="localStorage"||Z==="sessionStorage")try{let X=P.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=P.readCookie(Y);if(X===null){if(J)console.warn(`No cookie found for key ${Y}`);return[]}return[X]}if(Z==="url"){let X=P.readUrlParams(Y);if(!X.length&&J)console.warn(`No URL query param found for key ${Y}`);return X}if(u0.has(Z)){if(J)console.warn(`Source ${Z} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let W=P.readDomInput(Y);if(W===null){if(J)console.warn(`No input found with name ${Y}`);return[]}return W},c0=($,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,(G,Q)=>{if(G){if(Z)console.warn(`Failed to read ${X} key ${J}:`,G);z([]);return}if(Q==null||Q===""){if(Z)console.warn(`No ${X} value found for key ${J}`);z([]);return}z([Q])})}catch(G){if(Z)console.warn(`Failed to read ${X} key ${J}:`,G);z([])}})},jJ=async($,J=!1)=>{let{source:Z,key:Y}=D$($);if(Z==="telegram:cloud"||Z==="telegram:secure")return c0(Z,Y,J);if((Z==="localStorage"||Z==="sessionStorage")&&P.readWebStorageAsync)try{let W=await P.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 wJ($,J)},l0=($,J={},Z=[],Y,W)=>{let X=W?.renderingLogEnabled??!1,z=W?.timeout,G=W?.retryPolicy,Q=G?.maxRetries??0,_=G?.baseDelay??1000,H=G?.retryOn??[502,503,504];if(X)console.log("Registering AJAX: ",Y,J,Z);return async(F={})=>{if(!P.isClient()){if(X)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let B=W?.apiServer;if(!B){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 p$();let T=new FormData;for(let[U,O]of Object.entries({...J,...F}))T.append(U,O);for(let U of Z){let{key:O}=D$(U);for(let K of await jJ(U,X))T.append(O,K)}let I=B+"api/ajax_content"+Y;$(null);let M;for(let U=0;U<=Q;U++){if(U>0){let q=_*2**(U-1);if(X)console.log(`AJAX retry ${U}/${Q} after ${q}ms`);await new Promise((D)=>setTimeout(D,q))}let O=z!=null?new AbortController:null,K=O&&setTimeout(()=>O.abort(),z);try{let q=await fetch(I,{method:"POST",body:T,signal:O?.signal});if(K)clearTimeout(K);if(!q.ok&&H.includes(q.status)&&U<Q){M=Error(`HTTP ${q.status}`);continue}let y=(q.headers.get("content-type")||"").includes("application/json");if(!!q.body?.getReader&&!y){let h=q.body.getReader(),m=new TextDecoder,c="";while(!0){let{done:V$,value:NJ}=await h.read();if(V$)break;c+=m.decode(NJ,{stream:!0});let o$=c.split(`
|
|
3
|
-
`);c=o$.pop()??"";for(let EJ of o$){let F$=EJ.trim();if(!F$)continue;try{let RJ=JSON.parse(F$);$([RJ])}catch{if(X)console.warn("Failed to parse streamed line:",F$)}}}if(c.trim())try{let V$=JSON.parse(c);$([V$])}catch{if(X)console.warn("Failed to parse final streamed line:",c)}return{}}else{let h=await q.json();return $(h),h}}catch(q){if(K)clearTimeout(K);if(M=q,U<Q)continue;if(X)console.error("AJAX request failed:",q);return $(null),q}}if(X)console.error("AJAX request failed after retries:",M);return $(null),M}},s0=($,J={},Z=[],Y,W)=>{let{apiServer:X,enableRenderingLog:z}=p(),G=JSON.stringify(J),Q=JSON.stringify(Z),_=JSON.stringify(W);return p0(()=>l0($,J,Z,Y,{apiServer:X,renderingLogEnabled:z,timeout:W?.timeout,retryPolicy:W?.retryPolicy}),[$,G,Q,Y,X,z,_])};var o0=()=>{P.submitGlobalForm()};var i0=($,J)=>`${$}${A$}${J}`;export{aJ as usePieEmit,s0 as useAjaxSubmit,bJ as unregisterComponent,M$ as trackLazy,o0 as submitGlobalForm,d as setNativeField,bZ as resetNativeClientSources,k as registry,e as registerPieComponent,xJ as registerMultipleComponents,y$ as readNativeField,jJ as readAjaxKeyAsync,wJ as readAjaxKey,t$ as preloadComponent,hJ as prefetchLazyComponents,i0 as pieName,D$ as parseDepName,SJ as hasComponent,vJ as getRegistrySize,r as getRegistryEntry,j as getNativeClientConfig,n$ as getLazyComponentNames,s as getEmitter,CJ as getComponentMeta,fJ as getAllRegisteredComponents,xZ as configureNativeClientSources,u as clearNativeField,v$ as UnionCard,E as UIRendererContext,s$ as UILoading,w as UI,C as SocketIOContext,b$ as SessionStorageCard,N$ as SequenceCard,g0 as PieRoot,k0 as PieNativeRoot,l as PieConfigContext,A as PieCard,l$ as PieBaseRoot,A$ as PIEBREAK,R$ as OneOfCard,f as MittContext,S$ as IOEventsCard,k$ as HiddenCard,C$ as HTMLEmbedCard,N as FallbackContext,x$ as DeviceStorageCard,S as CentrifugeIOContext,w$ as BoxCard,f$ as AutoRedirectCard,g$ 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(/ /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};
|
package/dist/native/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var RZ=Object.create;var{getPrototypeOf:yZ,defineProperty:Q$,getOwnPropertyNames:IJ,getOwnPropertyDescriptor:kZ}=Object,PJ=Object.prototype.hasOwnProperty;var xZ=($,J,Z)=>{Z=$!=null?RZ(yZ($)):{};let X=J||!$||!$.__esModule?Q$(Z,"default",{value:$,enumerable:!0}):Z;for(let W of IJ($))if(!PJ.call(X,W))Q$(X,W,{get:()=>$[W],enumerable:!0});return X},AJ=new WeakMap,bZ=($)=>{var J=AJ.get($),Z;if(J)return J;if(J=Q$({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")IJ($).map((X)=>!PJ.call(J,X)&&Q$(J,X,{get:()=>$[X],enumerable:!(Z=kZ($,X))||Z.enumerable}));return AJ.set($,J),J};var SZ=($,J)=>{for(var Z in J)Q$($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(X)=>J[Z]=()=>X})};var P0={};SZ(P0,{usePieEmit:()=>uJ,useAjaxSubmit:()=>PZ,unregisterComponent:()=>RJ,trackLazy:()=>M$,submitGlobalForm:()=>LZ,setNativeField:()=>g,resetNativeClientSources:()=>YZ,registry:()=>x,registerPieComponent:()=>G$,registerMultipleComponents:()=>EJ,readNativeField:()=>v$,readAjaxKeyAsync:()=>MJ,readAjaxKey:()=>FJ,preloadComponent:()=>qJ,prefetchLazyComponents:()=>SJ,pieName:()=>wZ,parseDepName:()=>F$,hasComponent:()=>yJ,getRegistrySize:()=>bJ,getRegistryEntry:()=>n,getNativeClientConfig:()=>N,getLazyComponentNames:()=>_J,getEmitter:()=>r,getComponentMeta:()=>kJ,getAllRegisteredComponents:()=>xJ,configureNativeClientSources:()=>XZ,clearNativeField:()=>p,UnionCard:()=>i$,UIRendererContext:()=>y,UILoading:()=>YJ,UI:()=>j,SocketIOContext:()=>C,SessionStorageCard:()=>p$,SequenceCard:()=>b$,PieRoot:()=>AZ,PieNativeRoot:()=>DZ,PieConfigContext:()=>o,PieCard:()=>M,PieBaseRoot:()=>XJ,PIEBREAK:()=>w$,OneOfCard:()=>C$,MittContext:()=>f,IOEventsCard:()=>u$,HiddenCard:()=>h$,HTMLEmbedCard:()=>l$,FallbackContext:()=>R,DeviceStorageCard:()=>g$,CentrifugeIOContext:()=>S,BoxCard:()=>k$,AutoRedirectCard:()=>s$,AjaxGroupCard:()=>r$});module.exports=bZ(P0);var LJ=require("react"),s=new Map;function wJ($,J){return J.catch(()=>{if(s.get($)===J)s.delete($)}),s.set($,J),J}function M$($,J){return LJ.lazy(()=>{if(s.has(J))return s.get(J);return wJ(J,$().then((Z)=>Z))})}var jJ=async($,J)=>{if(!J)return;if(s.has($))return s.get($);return wJ($,J().then((Z)=>Z))};var GJ=globalThis,V=($,J)=>{let Z=Symbol.for($);if(!(Z in GJ))GJ[Z]=J();return GJ[Z]};var x=V("@swarm.ing/pieui:component-registry",()=>new Map),CZ=($)=>{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=M$(J.loader,$.name),J.isLazy=!0;return J};function G$($){let J=CZ($);return x.set(J.name,J),J.component}var EJ=($)=>{$.forEach((J)=>G$(J))},RJ=($)=>{x.delete($)},yJ=($)=>{return x.has($)},kJ=($)=>{return x.get($)?.metadata},n=($)=>{return x.get($)},xJ=()=>{return Array.from(x.keys())},bJ=()=>{return x.size},_J=()=>Array.from(x.values()).filter(($)=>$.isLazy&&typeof $.loader==="function").map(($)=>$.name),qJ=($)=>{let J=x.get($);if(!J?.isLazy||typeof J.loader!=="function")return;return jJ($,J.loader)},NJ=!1,SJ=()=>{if(NJ||typeof window>"u")return;NJ=!0;let $=navigator.connection;if($?.saveData)return;if($?.effectiveType&&["slow-2g","2g"].includes($.effectiveType))return;let J=_J(),Z="requestIdleCallback"in window?(W)=>window.requestIdleCallback(W,{timeout:2000}):(W)=>window.setTimeout(W,300),X=(W)=>{if(W>=J.length)return;Z(()=>{Promise.resolve().then(()=>qJ(J[W])).catch(()=>{}).finally(()=>X(W+1))})};X(0)};var KJ=require("react"),J$=require("react-native");var b=require("react");var O$=require("react");var o=V("@swarm.ing/pieui:context:pieConfig",()=>O$.createContext(null)),i=()=>{let $=O$.useContext(o);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},_$=()=>{let{apiServer:$}=i();return $},A$=_$,I$=()=>{let{centrifugeServer:$}=i();return $};var h=()=>{let{enableRenderingLog:$}=i();return $},CJ=h;var P$=()=>{let{onLinkLost:$}=i();return $},L$=()=>{let{onLinkRestored:$}=i();return $},w$="__piedemo__";var vJ=require("react"),HJ=require("centrifuge");var fJ=V("@swarm.ing/pieui:centrifuge-cache",()=>new Map),j$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,X=fJ.get(Z);if(X)return X;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 HJ.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let Y=new HJ.Centrifuge(J,{getToken:W});return fJ.set(Z,Y),Y},fZ=V("@swarm.ing/pieui:context:centrifuge",()=>vJ.createContext(null)),S=fZ;var mJ=require("socket.io-client"),gJ=require("react");var hJ=V("@swarm.ing/pieui:socket-cache",()=>new Map),N$=($)=>{let J=hJ.get($);if(J)return J;let Z=mJ.io($,{autoConnect:!1,transports:["websocket"]});return hJ.set($,Z),Z},vZ=V("@swarm.ing/pieui:context:socket",()=>gJ.createContext(null)),C=vZ;var pJ=xZ(require("mitt")),t=require("react");function r(){return V("@swarm.ing/pieui:mitt-emitter",()=>pJ.default())}var dJ=V("@swarm.ing/pieui:context:mitt",()=>t.createContext(null));function uJ($){let J=t.useContext(dJ);return t.useCallback((Z,X)=>{(J??r()).emit(`pie${Z}_${$}`,X)},[$,J])}var f=dJ;function cJ($){return $.wasRecovering===!0&&$.recovered===!1}function lJ($){return $.recoverable===!1}function sJ($,J,Z){let X=$.getSubscription(J);if(X)return{subscription:X,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}var e=require("react/jsx-runtime"),hZ=({card:$,data:J,children:Z,useSocketioSupport:X=!1,useCentrifugeSupport:W=!1,useMittSupport:Y=!1,centrifugeChannel:z=void 0,methods:G=void 0,stored:Q=void 0,onResync:_=void 0})=>{let H=CJ(),F=b.useRef(G);F.current=G;let B=b.useRef(_);if(B.current=_,H)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:W,mitt:Y,centrifugeChannel:z}),console.log("[PieCard] Methods:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!Z);let T=b.useContext(C),I=b.useContext(S),O=b.useContext(f);if(b.useEffect(()=>{if(!T||!X||!F.current||!J.name){if(H&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!T,useSocketioSupport:X,hasMethods:!!F.current,hasDataName:!!J?.name});return}let A=Object.keys(F.current??{}).map((K)=>{let q=`pie${K}_${J.name}`;if(H)console.log(`[PieCard] Socket.IO registering event: ${q}`);let D=(k)=>{F.current?.[K]?.(k)};return T.on(q,D),[q,D]});return()=>{A.forEach(([K,q])=>{if(H)console.log(`[PieCard] Socket.IO unregistering event: ${K}`);T.off(K,q)})}},[T,J.name,X]),b.useEffect(()=>{if(!I||!W||!z||!J.name){if(H&&W)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!I,useCentrifugeSupport:W,hasCentrifugeChannel:!!z,hasMethods:!!F.current,hasDataName:!!J?.name});return}let A=Object.keys(F.current??{}).map((K)=>{let q=`pie${K}_${J.name}_${z}`;if(H)console.log(`[PieCard] Centrifuge subscribing to channel: ${q}`);let{subscription:D,createdHere:k}=sJ(I,q,{recoverable:!0,positioned:!0}),WJ=(l)=>{if(H)console.log(`[PieCard] Centrifuge received data on ${q}:`,l.data);F.current?.[K]?.(l.data)},c=(l)=>{if(lJ(l))console.warn(`[PieCard] Centrifuge channel ${q} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(cJ(l)){if(H)console.log(`[PieCard] Centrifuge recovery gap on ${q}; requesting resync`);B.current?.({channel:q,reason:"gap"})}};return D.on("publication",WJ),D.on("subscribed",c),D.subscribe(),{subscription:D,createdHere:k,onPublication:WJ,onSubscribed:c}});return()=>{A.forEach(({subscription:K,createdHere:q,onPublication:D,onSubscribed:k})=>{if(H)console.log("[PieCard] Centrifuge unsubscribing from channel");if(K.off("publication",D),K.off("subscribed",k),q)K.unsubscribe(),I.removeSubscription(K)})}},[I,z,J.name,W]),b.useEffect(()=>{if(!O||!Y||!J.name){if(H&&Y)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!O,useMittSupport:Y,hasMethods:!!F.current,hasDataName:!!J?.name});return}let U=Object.keys(F.current??{}),A={};return U.forEach((K)=>{let q=`pie${K}_${J.name}`,D=(k)=>{if(H)console.log(`[PieCard] Mitt registering event: ${q}`);F.current?.[K]?.(k)};A[q]=D,O.on(q,D)}),()=>{Object.entries(A).forEach(([K,q])=>{if(H)console.log(`[PieCard] Mitt unregistering event: ${K}`);O.off(K,q)})}},[O,J.name,Y]),H)console.log("[PieCard] Rendering complete, returning children");if(Q!==void 0)return e.jsxs(e.Fragment,{children:[e.jsx("input",{type:"hidden",name:J.name,value:JSON.stringify(Q)}),Z]});return Z},M=hZ;var q$=require("react");var oJ=require("react");var E$=require("react/jsx-runtime"),mZ=V("@swarm.ing/pieui:context:fallback",()=>oJ.createContext(E$.jsx(E$.Fragment,{}))),R=mZ;var iJ=require("react");var gZ=V("@swarm.ing/pieui:context:lazyError",()=>iJ.createContext(void 0)),m=gZ;var R$=require("react"),rJ=require("react/jsx-runtime"),pZ=2,dZ=400;class $$ extends R$.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<pZ){let J=dZ*(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 rJ.jsx(R$.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var y$=require("react/jsx-runtime");function uZ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=q$.useContext(R),X=q$.useContext(m),W=h();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 Y=n($.card);if(!Y?.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:Y.name,isLazy:Y.isLazy,hasMetadata:!!Y.metadata});let z=Y.component,G=y$.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(Y.isLazy){if(W)console.log("[UI] Rendering lazy component with Suspense:",Y.name);return y$.jsx($$,{name:Y.name,fallback:Y.fallback?y$.jsx(Y.fallback,{}):Z,onError:X,children:G})}if(W)console.log("[UI] Rendering component directly:",Y.name);return G}var j=q$.memo(uZ);var aJ=require("react");var cZ=V("@swarm.ing/pieui:context:navigate",()=>aJ.createContext(void 0)),v=cZ;var nJ=require("react");var lZ=V("@swarm.ing/pieui:context:uiRenderer",()=>nJ.createContext(null)),y=lZ;var H$=require("react/jsx-runtime"),sZ=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),oZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,url:W,sx:Y}=$,z=KJ.useContext(v),G=KJ.useContext(y)??j,Q=()=>{if(!W)return;if(sZ(W))J$.Linking.openURL(W).catch(()=>{});else z?.(W)},_=H$.jsx(G,{setUiAjaxConfiguration:Z,uiConfig:J});return H$.jsx(M,{card:X,data:$,children:W?H$.jsx(J$.Pressable,{onPress:Q,style:Y,children:_}):H$.jsx(J$.View,{style:Y,children:_})})},k$=oZ;var tJ=require("react"),eJ=require("react-native");var x$=require("react/jsx-runtime"),iZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:W}=$,Y=tJ.useContext(y)??j;return x$.jsx(M,{card:X,data:$,children:x$.jsx(eJ.View,{style:W,children:J.map((z,G)=>x$.jsx(Y,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${G}`))})})},b$=iZ;var $Z=require("react"),JZ=require("react-native");var S$=require("react/jsx-runtime"),rZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:W}=$,Y=$Z.useContext(y)??j;return S$.jsx(M,{card:X,data:$,children:S$.jsx(JZ.View,{style:W,children:J.map((z,G)=>S$.jsx(Y,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${G}`))})})},C$=rZ;var K$=require("react");var f$=new Map,g=($,J)=>{f$.set($,J)},p=($)=>{f$.delete($)},v$=($)=>{return f$.has($)?f$.get($):null};var ZZ=require("react/jsx-runtime"),aZ=({data:$})=>{let{name:J,value:Z,useSocketioSupport:X,useCentrifugeSupport:W,useMittSupport:Y,centrifugeChannel:z}=$,[G,Q]=K$.useState(Z);return K$.useEffect(()=>{Q(Z)},[Z]),K$.useEffect(()=>{return g(J,[G]),()=>p(J)},[J,G]),ZZ.jsx(M,{card:"HiddenCard",data:$,useSocketioSupport:X,useCentrifugeSupport:W,useMittSupport:Y,centrifugeChannel:z,methods:{update:({value:_})=>{Q(_)}}})},h$=aZ;var B$=require("react");var m$={};function XZ($){m$={...m$,...$}}function N(){return m$}function YZ(){m$={}}var WZ=require("react/jsx-runtime"),nZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:W,useCentrifugeSupport:Y,useMittSupport:z,centrifugeChannel:G}=$,[Q,_]=B$.useState(X);return B$.useEffect(()=>{_(X)},[X]),B$.useEffect(()=>{return N().storage?.setItem?.(Z,Q),g(J,[Q]),()=>p(J)},[Z,J,Q]),WZ.jsx(M,{card:"DeviceStorageCard",data:$,useSocketioSupport:W,useCentrifugeSupport:Y,useMittSupport:z,centrifugeChannel:G,methods:{update:({value:H})=>{_(H)},remove:()=>{N().storage?.removeItem?.(Z),_("")}}})},g$=nZ;var T$=require("react");var zZ=require("react/jsx-runtime"),tZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:W,useCentrifugeSupport:Y,useMittSupport:z,centrifugeChannel:G}=$,[Q,_]=T$.useState(X);return T$.useEffect(()=>{_(X)},[X]),T$.useEffect(()=>{return N().sessionStorage?.setItem?.(Z,Q),g(J,[Q]),()=>p(J)},[Z,J,Q]),zZ.jsx(M,{card:"SessionStorageCard",data:$,useSocketioSupport:W,useCentrifugeSupport:Y,useMittSupport:z,centrifugeChannel:G,methods:{update:({value:H})=>{_(H)},remove:()=>{N().sessionStorage?.removeItem?.(Z),_("")}}})},p$=tZ;var Z$=require("react"),d$=require("react-native");var QZ=require("react/jsx-runtime"),eZ=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),$0=({data:$})=>{let{useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:W}=$,Y=Z$.useContext(v),z=Z$.useRef(Y);z.current=Y;let G=Z$.useMemo(()=>{let Q=(_)=>{if(!_)return;if(eZ(_))d$.Linking.openURL(_).catch(()=>{});else z.current?.(_)};return{alert:(_)=>d$.Alert.alert(String(_.title??""),String(_.message??"")),log:(_)=>console.log("Log event",_),push:(_)=>console.warn("[IOEventsCard] push notifications are not supported on native",_?.title),redirect:(_)=>Q(_.to),reload:(_)=>Q(_.to)}},[]);return QZ.jsx(M,{card:"IOEventsCard",data:$,useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:W,methods:G})},u$=$0;var c$=require("react"),GZ=require("react-native");var BJ=require("react/jsx-runtime"),J0=($)=>($??"").replace(/<[^>]*>/g,"").replace(/ /g," ").replace(/\s+/g," ").trim(),Z0=({data:$})=>{let{html:J,useSocketioSupport:Z,useCentrifugeSupport:X,useMittSupport:W,centrifugeChannel:Y}=$,[z,G]=c$.useState(J);return c$.useEffect(()=>{G(J)},[J]),BJ.jsx(M,{card:"HTMLEmbedCard",data:$,methods:{update:(Q)=>G(Q.value)},useCentrifugeSupport:X,useSocketioSupport:Z,useMittSupport:W,centrifugeChannel:Y,children:BJ.jsx(GZ.Text,{children:J0(z)})})},l$=Z0;var D$=require("react"),_Z=require("react-native");var o$=require("react/jsx-runtime"),X0=({data:$})=>{let{url:J}=$,Z=D$.useContext(v),X=D$.useContext(R);return D$.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(J))_Z.Linking.openURL(J).catch(()=>{});else Z?.(J)},[J,Z]),o$.jsx(o$.Fragment,{children:X})},s$=X0;var qZ=require("react");var TJ=require("react/jsx-runtime"),Y0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X}=$,W=qZ.useContext(y)??j;return TJ.jsx(M,{card:X,data:$,children:J.map((Y,z)=>{return TJ.jsx(W,{uiConfig:Y,setUiAjaxConfiguration:Z},`children-${z}`)})})},i$=Y0;var E=require("react");var DJ=require("react/jsx-runtime"),W0=({data:$,content:J})=>{let{useLoader:Z,noReturn:X,returnType:W,useSocketioSupport:Y,useCentrifugeSupport:z,useMittSupport:G,centrifugeChannel:Q}=$,_=E.useContext(R),H=E.useContext(y)??j,[F,B]=E.useState(!1),[T,I]=E.useState(null),O=E.useRef(J),U=E.useContext(f),A=E.useCallback((D)=>{if(D===null)B(!0);else if(B(!1),!X)O.current=D;if(!X)I(D)},[X]),K=E.useCallback((D)=>{O.current=D.content,I(D.content)},[]),q=E.useCallback((D)=>{if(D===null)B(!0);else if(B(!1),!X)for(let k of D)U?.emit(k.name,k.data)},[X,U]);if(E.useEffect(()=>{I(J),B(!1)},[J]),!T&&Z)return _;return DJ.jsx(M,{card:"AjaxGroupCard",data:$,methods:{changeContent:K},useSocketioSupport:Y,useCentrifugeSupport:z,useMittSupport:G,centrifugeChannel:Q,children:DJ.jsx(H,{uiConfig:T??O.current,setUiAjaxConfiguration:W==="events"?q:A})})},r$=W0;var z0=[{name:"BoxCard",component:k$},{name:"SequenceCard",component:b$},{name:"OneOfCard",component:C$},{name:"HiddenCard",component:h$},{name:"DeviceStorageCard",component:g$},{name:"SessionStorageCard",component:p$},{name:"IOEventsCard",component:u$},{name:"HTMLEmbedCard",component:l$},{name:"AutoRedirectCard",component:s$},{name:"UnionCard",component:i$},{name:"AjaxGroupCard",component:r$}];for(let $ of z0)G$($);var Y$=require("react"),ZJ=require("@tanstack/react-query");var d=require("react");var t$=require("react"),a$=new Map,n$=new Map;function e$($,J){let Z=`${$}::${J}`,X=$?a$.get(Z):void 0,[W,Y]=t$.useState(X??null);return t$.useEffect(()=>{if(!$)return;if(a$.has(Z)){Y(a$.get(Z));return}let z=n$.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((Q)=>Q.json()).then((Q)=>{return a$.set(Z,Q),n$.delete(Z),Q}).catch((Q)=>{throw n$.delete(Z),Q}),n$.set(Z,z);let G=!1;return z.then((Q)=>{if(!G)Y(Q)}).catch(()=>{}),()=>{G=!0}},[$,J,Z]),W}var Q0=($)=>{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 Y=X===-1?"":Z.slice(X+1).trim();try{return decodeURIComponent(Y)}catch{return Y}}}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()}},HZ=G0;var KZ,_0={isClient(){return!0},readSid(){return KZ},setSid($){KZ=$},readWebStorage($,J){let Z=N(),X=$==="local"?Z.storage:Z.sessionStorage;return X?X.getItem(J):null},async readWebStorageAsync($,J){let Z=N(),X=$==="local"?Z.asyncStorage:Z.asyncSessionStorage;if(X)return X.getItem(J);let W=$==="local"?Z.storage:Z.sessionStorage;return W?W.getItem(J):null},readCookie($){let J=N();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=N();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=N();return J.getInput?J.getInput($):v$($)},submitGlobalForm(){N().submitForm?.()}},BZ=_0;var q0=typeof navigator<"u"&&navigator.product==="ReactNative",H0=q0?BZ:HZ,P=H0;var U$=V("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function TZ(){U$.resolve?.()}function UJ(){if(!P.isClient())return Promise.resolve();if(P.readSid()!==void 0)return Promise.resolve();if(!U$.promise)U$.promise=new Promise(($)=>{U$.resolve=()=>{$()}});return U$.promise}function X$($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var K0=({children:$})=>{let J=d.useContext(C),Z=A$(),X=e$(Z,"socketIO"),W=P$(),Y=L$(),z=d.useRef(W);z.current=W;let G=d.useRef(Y);G.current=Y;let Q=d.useRef("initial"),_=(H)=>{if(P.isClient())P.setSid(H.sid),TZ(),console.log(`SocketIO initialized: ${P.readSid()}`)};return d.useEffect(()=>{if(!J||!X)return;let H=()=>{let{state:B,signal:T}=X$(Q.current,"up");if(Q.current=B,T==="restored")G.current?.("socketio");console.log("SocketIO connected")},F=(B)=>{if(console.log(`SocketIO disconnected: ${B}`),J.connect(),B==="io client disconnect")return;let{state:T,signal:I}=X$(Q.current,"down");if(Q.current=T,I==="lost")z.current?.("socketio",B)};return J.on("pieinit",_),J.on("connect",H),J.on("disconnect",F),J.connect(),()=>{J.off("pieinit",_),J.off("connect",H),J.off("disconnect",F),J.disconnect()}},[J,X]),$},$J=K0;var u=require("react");var B0=({children:$})=>{let J=u.useContext(S),Z=A$(),X=e$(Z,"centrifuge"),W=P$(),Y=L$(),z=u.useRef(W);z.current=W;let G=u.useRef(Y);G.current=Y;let Q=u.useRef("initial");return u.useEffect(()=>{if(!J||!X)return;let _=(B)=>{let{state:T,signal:I}=X$(Q.current,"down");if(Q.current=T,I==="lost")z.current?.("centrifuge",B)},H=()=>{let{state:B,signal:T}=X$(Q.current,"up");if(Q.current=B,T==="restored")G.current?.("centrifuge");console.log("Centrifuge connected")},F=(B)=>{console.log("Centrifuge disconnected:",B),_(B)};return J.on("connecting",_),J.on("connected",H),J.on("disconnected",F),J.connect(),()=>{J.off("connecting",_),J.off("connected",H),J.off("disconnected",F),J.disconnect()}},[J,X]),$},JJ=B0;var w=require("react/jsx-runtime"),T0=({location:$,fallback:J,children:Z,disableGlobalForm:X})=>{let W=_$(),Y=I$(),z=h(),G=Y$.useMemo(()=>r(),[]),Q=Y$.useMemo(()=>W?N$(W):null,[W]),_=Y$.useMemo(()=>W?j$(W,Y):null,[W,Y]);if(z)console.log("[PieRoot] Rendering with location:",$),console.log("[PieRoot] API_SERVER:",W),console.log("[PieRoot] CENTRIFUGE_SERVER:",Y),console.log("[PieRoot] Fallback provided:",!!J);return w.jsx(f.Provider,{value:G,children:w.jsx(C.Provider,{value:Q,children:w.jsx(S.Provider,{value:_,children:w.jsx(R.Provider,{value:J??w.jsx(w.Fragment,{}),children:w.jsx($J,{children:w.jsx(JJ,{children:X?Z:w.jsx("form",{id:"piedata_global_form",action:W+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:Z})})})})})})})},D0=($)=>{let[J]=Y$.useState(()=>new ZJ.QueryClient),Z=$.queryClient??J;return w.jsx(v.Provider,{value:$.onNavigate,children:w.jsx(o.Provider,{value:$.config,children:w.jsx(m.Provider,{value:$.onError,children:w.jsx(ZJ.QueryClientProvider,{client:Z,children:w.jsx(T0,{...$})})})})})},XJ=D0;var UZ=require("react/jsx-runtime"),U0=($)=>{return UZ.jsx(XJ,{...$,disableGlobalForm:!0})},DZ=U0;var W$=require("react"),z$=require("@tanstack/react-query");var OZ=require("axios-date-transformer");var VJ=require("react");var V$=require("react/jsx-runtime");function VZ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=VJ.useContext(R),X=VJ.useContext(m),W=h();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 Y=n($.card);if(!Y?.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:Y.name,isLazy:Y.isLazy,hasMetadata:!!Y.metadata,hasFallback:!!Y.fallback});if(Y.fallback){if(W)console.log("[UILoading] Rendering fallback for:",Y.name);let Q=Y.fallback;return V$.jsx(Q,{})}if(W)console.log("[UILoading] No fallback, rendering full component:",Y.name);let z=Y.component,G=V$.jsx(y.Provider,{value:VZ,children:V$.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(Y.isLazy)return V$.jsx($$,{name:Y.name,fallback:Z,onError:X,children:G});return G}var YJ=VZ;var MZ=require("react/jsx-runtime");function FZ($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),W=J[X];if(!W)return Z;return MZ.jsx(YJ,{uiConfig:W})}var L=require("react/jsx-runtime"),V0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:W,disableGlobalForm:Y})=>{let z=_$(),G=I$(),Q=h(),_=W$.useMemo(()=>OZ.createAxiosDateTransformer({baseURL:z||""}),[z]),H=W$.useMemo(()=>r(),[]),F=W$.useMemo(()=>z?N$(z):null,[z]),B=W$.useMemo(()=>z?j$(z,G):null,[z,G]),{data:T,isLoading:I,error:O}=z$.useQuery({queryKey:["uiConfig",$.pathname+$.search,z],enabled:!!z,queryFn:async()=>{let A=new URLSearchParams($.search);A.set("__pieroot","web");let K="/api/content"+$.pathname+"?"+A.toString();if(Q)console.log("[PieRoot] Fetching UI configuration from:",K);let q=await _.get(K,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(Q)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:(A)=>Math.min(1000*2**A,30000),...W}),U=FZ($.pathname,Z,J);if(!z)return U??null;if(Q)console.log("[PieRoot] Rendering with location:",$),console.log("[PieRoot] API_SERVER:",z),console.log("[PieRoot] CENTRIFUGE_SERVER:",G),console.log("[PieRoot] Fallback provided:",!!J),console.log("[PieRoot] Piecache provided:",!!Z);if(O){if(Q)console.error("[PieRoot] Error fetching UI configuration:",O),console.error("[PieRoot] Error details:",{message:O.message,status:O.response?.status,data:O.response?.data});return X?.(O),U}if(I||!T){if(Q)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!T});return U}if(Q)console.log("[PieRoot] UI configuration loaded successfully:",T),console.log("[PieRoot] Rendering UI with configuration");return L.jsx(f.Provider,{value:H,children:L.jsx(C.Provider,{value:F,children:L.jsx(S.Provider,{value:B,children:L.jsx(R.Provider,{value:J??L.jsx(L.Fragment,{}),children:L.jsx($J,{children:L.jsx(JJ,{children:Y?L.jsx(j,{uiConfig:T}):L.jsx("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:L.jsx(j,{uiConfig:T})})})})})})})})},F0=($)=>{let J=W$.useMemo(()=>new z$.QueryClient,[]),Z=$.queryClient??J;return L.jsx(v.Provider,{value:$.onNavigate,children:L.jsx(o.Provider,{value:$.config,children:L.jsx(m.Provider,{value:$.onError,children:L.jsx(z$.QueryClientProvider,{client:Z,children:L.jsx(V0,{...$})})})})})},AZ=F0;var IZ=require("react");var M0=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],O0=new Set(["telegram:cloud","telegram:secure"]),F$=($)=>{if($==="sid")return{source:"sid",key:"sid"};for(let J of M0){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}=F$($);if(Z==="sid"){let Y=P.readSid();if(!Y)throw Error("SocketIO isn't initialized properly");return[Y]}if(Z==="localStorage"||Z==="sessionStorage")try{let Y=P.readWebStorage(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==="cookie"){let Y=P.readCookie(X);if(Y===null){if(J)console.warn(`No cookie found for key ${X}`);return[]}return[Y]}if(Z==="url"){let Y=P.readUrlParams(X);if(!Y.length&&J)console.warn(`No URL query param found for key ${X}`);return Y}if(O0.has(Z)){if(J)console.warn(`Source ${Z} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let W=P.readDomInput(X);if(W===null){if(J)console.warn(`No input found with name ${X}`);return[]}return W},A0=($,J,Z)=>{let X=window.Telegram?.WebApp,W=$==="telegram:cloud"?X?.CloudStorage:X?.SecureStorage,Y=$==="telegram:cloud"?"Telegram CloudStorage":"Telegram SecureStorage";if(!W){if(Z)console.warn(`${Y} is not available`);return Promise.resolve([])}return new Promise((z)=>{try{W.getItem(J,(G,Q)=>{if(G){if(Z)console.warn(`Failed to read ${Y} key ${J}:`,G);z([]);return}if(Q==null||Q===""){if(Z)console.warn(`No ${Y} value found for key ${J}`);z([]);return}z([Q])})}catch(G){if(Z)console.warn(`Failed to read ${Y} key ${J}:`,G);z([])}})},MJ=async($,J=!1)=>{let{source:Z,key:X}=F$($);if(Z==="telegram:cloud"||Z==="telegram:secure")return A0(Z,X,J);if((Z==="localStorage"||Z==="sessionStorage")&&P.readWebStorageAsync)try{let W=await P.readWebStorageAsync(Z==="localStorage"?"local":"session",X);if(W===null){if(J)console.warn(`No ${Z} value found for key ${X}`);return[]}return[W]}catch(W){if(J)console.warn(`Failed to read ${Z} key ${X}:`,W);return[]}return FJ($,J)},I0=($,J={},Z=[],X,W)=>{let Y=W?.renderingLogEnabled??!1,z=W?.timeout,G=W?.retryPolicy,Q=G?.maxRetries??0,_=G?.baseDelay??1000,H=G?.retryOn??[502,503,504];if(Y)console.log("Registering AJAX: ",X,J,Z);return async(F={})=>{if(!P.isClient()){if(Y)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let B=W?.apiServer;if(!B){if(Y)console.warn("AJAX skipped: apiServer is missing");return}if(!X||!$){if(Y)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(Z.includes("sid"))await UJ();let T=new FormData;for(let[U,A]of Object.entries({...J,...F}))T.append(U,A);for(let U of Z){let{key:A}=F$(U);for(let K of await MJ(U,Y))T.append(A,K)}let I=B+"api/ajax_content"+X;$(null);let O;for(let U=0;U<=Q;U++){if(U>0){let q=_*2**(U-1);if(Y)console.log(`AJAX retry ${U}/${Q} after ${q}ms`);await new Promise((D)=>setTimeout(D,q))}let A=z!=null?new AbortController:null,K=A&&setTimeout(()=>A.abort(),z);try{let q=await fetch(I,{method:"POST",body:T,signal:A?.signal});if(K)clearTimeout(K);if(!q.ok&&H.includes(q.status)&&U<Q){O=Error(`HTTP ${q.status}`);continue}let k=(q.headers.get("content-type")||"").includes("application/json");if(!!q.body?.getReader&&!k){let c=q.body.getReader(),l=new TextDecoder,a="";while(!0){let{done:zJ,value:jZ}=await c.read();if(zJ)break;a+=l.decode(jZ,{stream:!0});let OJ=a.split(`
|
|
3
|
-
`);a=OJ.pop()??"";for(let NZ of OJ){let QJ=NZ.trim();if(!QJ)continue;try{let EZ=JSON.parse(QJ);$([EZ])}catch{if(Y)console.warn("Failed to parse streamed line:",QJ)}}}if(a.trim())try{let zJ=JSON.parse(a);$([zJ])}catch{if(Y)console.warn("Failed to parse final streamed line:",a)}return{}}else{let c=await q.json();return $(c),c}}catch(q){if(K)clearTimeout(K);if(O=q,U<Q)continue;if(Y)console.error("AJAX request failed:",q);return $(null),q}}if(Y)console.error("AJAX request failed after retries:",O);return $(null),O}},PZ=($,J={},Z=[],X,W)=>{let{apiServer:Y,enableRenderingLog:z}=i(),G=JSON.stringify(J),Q=JSON.stringify(Z),_=JSON.stringify(W);return IZ.useMemo(()=>I0($,J,Z,X,{apiServer:Y,renderingLogEnabled:z,timeout:W?.timeout,retryPolicy:W?.retryPolicy}),[$,G,Q,X,Y,z,_])};var LZ=()=>{P.submitGlobalForm()};var wZ=($,J)=>`${$}${w$}${J}`;
|
|
2
|
+
var mZ=Object.create;var{getPrototypeOf:gZ,defineProperty:V$,getOwnPropertyNames:EJ,getOwnPropertyDescriptor:pZ}=Object,RJ=Object.prototype.hasOwnProperty;var dZ=($,J,Z)=>{Z=$!=null?mZ(gZ($)):{};let X=J||!$||!$.__esModule?V$(Z,"default",{value:$,enumerable:!0}):Z;for(let Y of EJ($))if(!RJ.call(X,Y))V$(X,Y,{get:()=>$[Y],enumerable:!0});return X},jJ=new WeakMap,uZ=($)=>{var J=jJ.get($),Z;if(J)return J;if(J=V$({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")EJ($).map((X)=>!RJ.call(J,X)&&V$(J,X,{get:()=>$[X],enumerable:!(Z=pZ($,X))||Z.enumerable}));return jJ.set($,J),J};var cZ=($,J)=>{for(var Z in J)V$($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(X)=>J[Z]=()=>X})};var x0={};cZ(x0,{usePieEmit:()=>aJ,useAjaxSubmits:()=>_Z,useAjaxSubmit:()=>QZ,unregisterComponent:()=>CJ,trackLazy:()=>R$,submitGlobalForm:()=>SZ,setNativeField:()=>i,resetNativeClientSources:()=>JZ,registry:()=>g,registerPieComponent:()=>F$,registerMultipleComponents:()=>SJ,readNativeField:()=>h$,readAjaxKeyAsync:()=>MJ,readAjaxKey:()=>FJ,preloadComponent:()=>KJ,prefetchLazyComponents:()=>gJ,pieName:()=>CZ,parseDepName:()=>O$,hasComponent:()=>fJ,getRegistrySize:()=>mJ,getRegistryEntry:()=>$$,getNativeClientConfig:()=>y,getLazyComponentNames:()=>TJ,getEmitter:()=>s,getComponentMeta:()=>hJ,getAllRegisteredComponents:()=>vJ,discoverAjaxEndpoints:()=>OJ,configureNativeClientSources:()=>$Z,clearNativeField:()=>a,UnionCard:()=>ZJ,UIRendererContext:()=>b,UILoading:()=>QJ,UI:()=>N,SocketIOContext:()=>h,SessionStorageCard:()=>a$,SequenceCard:()=>c$,PieRoot:()=>xZ,PieNativeRoot:()=>yZ,PieConfigContext:()=>l,PieCard:()=>A,PieBaseRoot:()=>kZ,PIEBREAK:()=>S$,OneOfCard:()=>s$,MittContext:()=>v,IOEventsCard:()=>n$,HiddenCard:()=>o$,HTMLEmbedCard:()=>e$,FallbackContext:()=>j,DeviceStorageCard:()=>i$,CentrifugeIOContext:()=>f,BoxCard:()=>d$,AutoRedirectCard:()=>$J,AjaxGroupCard:()=>XJ});module.exports=uZ(x0);var yJ=require("react"),t=new Map;function kJ($,J){return J.catch(()=>{if(t.get($)===J)t.delete($)}),t.set($,J),J}function R$($,J){return yJ.lazy(()=>{if(t.has(J))return t.get(J);return kJ(J,$().then((Z)=>Z))})}var bJ=async($,J)=>{if(!J)return;if(t.has($))return t.get($);return kJ($,J().then((Z)=>Z))};var qJ=globalThis,O=($,J)=>{let Z=Symbol.for($);if(!(Z in qJ))qJ[Z]=J();return qJ[Z]};var g=O("@swarm.ing/pieui:component-registry",()=>new Map),lZ=($)=>{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=R$(J.loader,$.name),J.isLazy=!0;return J};function F$($){let J=lZ($);return g.set(J.name,J),J.component}var SJ=($)=>{$.forEach((J)=>F$(J))},CJ=($)=>{g.delete($)},fJ=($)=>{return g.has($)},hJ=($)=>{return g.get($)?.metadata},$$=($)=>{return g.get($)},vJ=()=>{return Array.from(g.keys())},mJ=()=>{return g.size},TJ=()=>Array.from(g.values()).filter(($)=>$.isLazy&&typeof $.loader==="function").map(($)=>$.name),KJ=($)=>{let J=g.get($);if(!J?.isLazy||typeof J.loader!=="function")return;return bJ($,J.loader)},xJ=!1,gJ=()=>{if(xJ||typeof window>"u")return;xJ=!0;let $=navigator.connection;if($?.saveData)return;if($?.effectiveType&&["slow-2g","2g"].includes($.effectiveType))return;let J=TJ(),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(()=>KJ(J[Y])).catch(()=>{}).finally(()=>X(Y+1))})};X(0)};var AJ=require("react"),G$=require("react-native");var S=require("react");var y$=require("react");var l=O("@swarm.ing/pieui:context:pieConfig",()=>y$.createContext(null)),o=()=>{let $=y$.useContext(l);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},e=()=>{let{apiServer:$}=o();return $},k$=e,J$=()=>{let{centrifugeServer:$}=o();return $};var p=()=>{let{enableRenderingLog:$}=o();return $},pJ=p;var b$=()=>{let{onLinkLost:$}=o();return $},x$=()=>{let{onLinkRestored:$}=o();return $},S$="__piedemo__";var uJ=require("react"),DJ=require("centrifuge");var dJ=O("@swarm.ing/pieui:centrifuge-cache",()=>new Map),Z$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,X=dJ.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 DJ.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let W=new DJ.Centrifuge(J,{getToken:Y});return dJ.set(Z,W),W},sZ=O("@swarm.ing/pieui:context:centrifuge",()=>uJ.createContext(null)),f=sZ;var lJ=require("socket.io-client"),sJ=require("react");var cJ=O("@swarm.ing/pieui:socket-cache",()=>new Map),X$=($)=>{let J=cJ.get($);if(J)return J;let Z=lJ.io($,{autoConnect:!1,transports:["websocket"]});return cJ.set($,Z),Z},oZ=O("@swarm.ing/pieui:context:socket",()=>sJ.createContext(null)),h=oZ;var oJ=dZ(require("mitt")),Y$=require("react");function s(){return O("@swarm.ing/pieui:mitt-emitter",()=>oJ.default())}var iJ=O("@swarm.ing/pieui:context:mitt",()=>Y$.createContext(null));function aJ($){let J=Y$.useContext(iJ);return Y$.useCallback((Z,X)=>{(J??s()).emit(`pie${Z}_${$}`,X)},[$,J])}var v=iJ;function rJ($){return $.wasRecovering===!0&&$.recovered===!1}function nJ($){return $.recoverable===!1}function tJ($,J,Z){let X=$.getSubscription(J);if(X)return{subscription:X,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}var iZ=($)=>{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},aZ={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:iZ,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()}},eJ=aZ;var C$={};function $Z($){C$={...C$,...$}}function y(){return C$}function JZ(){C$={}}var f$=new Map,i=($,J)=>{f$.set($,J)},a=($)=>{f$.delete($)},h$=($)=>{return f$.has($)?f$.get($):null};var ZZ,rZ={isClient(){return!0},readSid(){return ZZ},setSid($){ZZ=$},readWebStorage($,J){let Z=y(),X=$==="local"?Z.storage:Z.sessionStorage;return X?X.getItem(J):null},async readWebStorageAsync($,J){let Z=y(),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=y();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=y();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=y();return J.getInput?J.getInput($):h$($)},submitGlobalForm(){y().submitForm?.()}},XZ=rZ;var nZ=typeof navigator<"u"&&navigator.product==="ReactNative",tZ=nZ?XZ:eJ,w=tZ;var M$=O("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function YZ(){M$.resolve?.()}function UJ(){if(!w.isClient())return Promise.resolve();if(w.readSid()!==void 0)return Promise.resolve();if(!M$.promise)M$.promise=new Promise(($)=>{M$.resolve=()=>{$()}});return M$.promise}var VJ=require("react");var eZ=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],$0=new Set(["telegram:cloud","telegram:secure"]),v$=new Map,WZ=($,J)=>{v$.set($,J)},zZ=($)=>{v$.delete($)},O$=($)=>{if($==="sid")return{source:"sid",key:"sid"};for(let J of eZ){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}=O$($);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($0.has(Z)){if(J)console.warn(`Source ${Z} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let Y=v$.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},J0=($,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}=O$($);if(Z==="telegram:cloud"||Z==="telegram:secure")return J0(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=v$.get(X);if(Y)return Y()}return FJ($,J)},GZ=($,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 UJ();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}=O$(q);for(let I of await MJ(q,W))D.append(M,I)}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,I=M&&setTimeout(()=>M.abort(),z);try{let K=await fetch(P,{method:"POST",body:D,signal:M?.signal});if(I)clearTimeout(I);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 C=K.body.getReader(),E$=new TextDecoder,u="";while(!0){let{done:c,value:fZ}=await C.read();if(c)break;u+=E$.decode(fZ,{stream:!0});let NJ=u.split(`
|
|
3
|
+
`);u=NJ.pop()??"";for(let hZ of NJ){let HJ=hZ.trim();if(!HJ)continue;try{let vZ=JSON.parse(HJ);$([vZ])}catch{if(W)console.warn("Failed to parse streamed line:",HJ)}}}if(u.trim())try{let c=JSON.parse(u);$([c])}catch{if(W)console.warn("Failed to parse final streamed line:",u)}return{}}else{let C=await K.json();return $(C),C}}catch(K){if(I)clearTimeout(I);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}},QZ=($,J={},Z=[],X,Y)=>{let{apiServer:W,enableRenderingLog:z}=o(),Q=JSON.stringify(J),G=JSON.stringify(Z),_=JSON.stringify(Y);return VJ.useMemo(()=>GZ($,J,Z,X,{apiServer:W,renderingLogEnabled:z,timeout:Y?.timeout,retryPolicy:Y?.retryPolicy}),[$,Q,G,X,W,z,_])},OJ=($={})=>{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},_Z=($={},J,Z)=>{let{apiServer:X,enableRenderingLog:Y}=o(),W=JSON.stringify($??{}),z=JSON.stringify(Z);return VJ.useMemo(()=>{let Q={};for(let G of OJ($??{}))Q[G.key]=GZ(J,G.kwargs,G.depsNames,G.pathname,{apiServer:X,renderingLogEnabled:Y,timeout:Z?.timeout,retryPolicy:Z?.retryPolicy});return Q},[W,J,X,Y,z])};var W$=require("react/jsx-runtime"),Z0=({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=pJ(),F=S.useRef(Q);F.current=Q;let T=S.useRef(_);T.current=_;let D=S.useRef(G);D.current=G;let P=typeof G==="function";if(S.useEffect(()=>{if(!P)return;let I=J.name;return WZ(I,()=>[JSON.stringify(D.current())]),()=>zZ(I)},[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=S.useContext(h),q=S.useContext(f),M=S.useContext(v);if(S.useEffect(()=>{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 x=(C)=>{F.current?.[H]?.(C)};return U.on(V,x),[V,x]});return()=>{K.forEach(([H,V])=>{if(B)console.log(`[PieCard] Socket.IO unregistering event: ${H}`);U.off(H,V)})}},[U,J.name,X]),S.useEffect(()=>{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:x,createdHere:C}=tJ(q,V,{recoverable:!0,positioned:!0}),E$=(c)=>{if(B)console.log(`[PieCard] Centrifuge received data on ${V}:`,c.data);F.current?.[H]?.(c.data)},u=(c)=>{if(nJ(c))console.warn(`[PieCard] Centrifuge channel ${V} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(rJ(c)){if(B)console.log(`[PieCard] Centrifuge recovery gap on ${V}; requesting resync`);T.current?.({channel:V,reason:"gap"})}};return x.on("publication",E$),x.on("subscribed",u),x.subscribe(),{subscription:x,createdHere:C,onPublication:E$,onSubscribed:u}});return()=>{K.forEach(({subscription:H,createdHere:V,onPublication:x,onSubscribed:C})=>{if(B)console.log("[PieCard] Centrifuge unsubscribing from channel");if(H.off("publication",x),H.off("subscribed",C),V)H.unsubscribe(),q.removeSubscription(H)})}},[q,z,J.name,Y]),S.useEffect(()=>{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 I=Object.keys(F.current??{}),K={};return I.forEach((H)=>{let V=`pie${H}_${J.name}`,x=(C)=>{if(B)console.log(`[PieCard] Mitt registering event: ${V}`);F.current?.[H]?.(C)};K[V]=x,M.on(V,x)}),()=>{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 W$.jsxs(W$.Fragment,{children:[W$.jsx("input",{type:"hidden",name:J.name,value:JSON.stringify(G)}),Z]});return Z},A=Z0;var A$=require("react");var BZ=require("react");var m$=require("react/jsx-runtime"),X0=O("@swarm.ing/pieui:context:fallback",()=>BZ.createContext(m$.jsx(m$.Fragment,{}))),j=X0;var HZ=require("react");var Y0=O("@swarm.ing/pieui:context:lazyError",()=>HZ.createContext(void 0)),d=Y0;var g$=require("react"),qZ=require("react/jsx-runtime"),W0=2,z0=400;class z$ extends g$.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<W0){let J=z0*(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 qZ.jsx(g$.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var p$=require("react/jsx-runtime");function G0({uiConfig:$,setUiAjaxConfiguration:J}){let Z=A$.useContext(j),X=A$.useContext(d),Y=p();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=$$($.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=p$.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(W.isLazy){if(Y)console.log("[UI] Rendering lazy component with Suspense:",W.name);return p$.jsx(z$,{name:W.name,fallback:W.fallback?p$.jsx(W.fallback,{}):Z,onError:X,children:Q})}if(Y)console.log("[UI] Rendering component directly:",W.name);return Q}var N=A$.memo(G0);var TZ=require("react");var Q0=O("@swarm.ing/pieui:context:navigate",()=>TZ.createContext(void 0)),m=Q0;var KZ=require("react");var _0=O("@swarm.ing/pieui:context:uiRenderer",()=>KZ.createContext(null)),b=_0;var I$=require("react/jsx-runtime"),B0=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),H0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,url:Y,sx:W}=$,z=AJ.useContext(m),Q=AJ.useContext(b)??N,G=()=>{if(!Y)return;if(B0(Y))G$.Linking.openURL(Y).catch(()=>{});else z?.(Y)},_=I$.jsx(Q,{setUiAjaxConfiguration:Z,uiConfig:J});return I$.jsx(A,{card:X,data:$,children:Y?I$.jsx(G$.Pressable,{onPress:G,style:W,children:_}):I$.jsx(G$.View,{style:W,children:_})})},d$=H0;var DZ=require("react"),UZ=require("react-native");var u$=require("react/jsx-runtime"),q0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=DZ.useContext(b)??N;return u$.jsx(A,{card:X,data:$,children:u$.jsx(UZ.View,{style:Y,children:J.map((z,Q)=>u$.jsx(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},c$=q0;var VZ=require("react"),FZ=require("react-native");var l$=require("react/jsx-runtime"),T0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=VZ.useContext(b)??N;return l$.jsx(A,{card:X,data:$,children:l$.jsx(FZ.View,{style:Y,children:J.map((z,Q)=>l$.jsx(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},s$=T0;var P$=require("react");var MZ=require("react/jsx-runtime"),K0=({data:$})=>{let{name:J,value:Z,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z}=$,[Q,G]=P$.useState(Z);return P$.useEffect(()=>{G(Z)},[Z]),P$.useEffect(()=>{return i(J,[Q]),()=>a(J)},[J,Q]),MZ.jsx(A,{card:"HiddenCard",data:$,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z,methods:{update:({value:_})=>{G(_)}}})},o$=K0;var w$=require("react");var OZ=require("react/jsx-runtime"),D0=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q}=$,[G,_]=w$.useState(X);return w$.useEffect(()=>{_(X)},[X]),w$.useEffect(()=>{return y().storage?.setItem?.(Z,G),i(J,[G]),()=>a(J)},[Z,J,G]),OZ.jsx(A,{card:"DeviceStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:B})=>{_(B)},remove:()=>{y().storage?.removeItem?.(Z),_("")}}})},i$=D0;var L$=require("react");var AZ=require("react/jsx-runtime"),U0=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q}=$,[G,_]=L$.useState(X);return L$.useEffect(()=>{_(X)},[X]),L$.useEffect(()=>{return y().sessionStorage?.setItem?.(Z,G),i(J,[G]),()=>a(J)},[Z,J,G]),AZ.jsx(A,{card:"SessionStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:B})=>{_(B)},remove:()=>{y().sessionStorage?.removeItem?.(Z),_("")}}})},a$=U0;var Q$=require("react"),r$=require("react-native");var IZ=require("react/jsx-runtime"),V0=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),F0=({data:$})=>{let{useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y}=$,W=Q$.useContext(m),z=Q$.useRef(W);z.current=W;let Q=Q$.useMemo(()=>{let G=(_)=>{if(!_)return;if(V0(_))r$.Linking.openURL(_).catch(()=>{});else z.current?.(_)};return{alert:(_)=>r$.Alert.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 IZ.jsx(A,{card:"IOEventsCard",data:$,useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y,methods:Q})},n$=F0;var t$=require("react"),PZ=require("react-native");var IJ=require("react/jsx-runtime"),M0=($)=>($??"").replace(/<[^>]*>/g,"").replace(/ /g," ").replace(/\s+/g," ").trim(),O0=({data:$})=>{let{html:J,useSocketioSupport:Z,useCentrifugeSupport:X,useMittSupport:Y,centrifugeChannel:W}=$,[z,Q]=t$.useState(J);return t$.useEffect(()=>{Q(J)},[J]),IJ.jsx(A,{card:"HTMLEmbedCard",data:$,methods:{update:(G)=>Q(G.value)},useCentrifugeSupport:X,useSocketioSupport:Z,useMittSupport:Y,centrifugeChannel:W,children:IJ.jsx(PZ.Text,{children:M0(z)})})},e$=O0;var N$=require("react"),wZ=require("react-native");var JJ=require("react/jsx-runtime"),A0=({data:$})=>{let{url:J}=$,Z=N$.useContext(m),X=N$.useContext(j);return N$.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(J))wZ.Linking.openURL(J).catch(()=>{});else Z?.(J)},[J,Z]),JJ.jsx(JJ.Fragment,{children:X})},$J=A0;var LZ=require("react");var PJ=require("react/jsx-runtime"),I0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X}=$,Y=LZ.useContext(b)??N;return PJ.jsx(A,{card:X,data:$,children:J.map((W,z)=>{return PJ.jsx(Y,{uiConfig:W,setUiAjaxConfiguration:Z},`children-${z}`)})})},ZJ=I0;var k=require("react");var wJ=require("react/jsx-runtime"),P0=({data:$,content:J})=>{let{useLoader:Z,noReturn:X,returnType:Y,useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:Q,centrifugeChannel:G}=$,_=k.useContext(j),B=k.useContext(b)??N,[F,T]=k.useState(!1),[D,P]=k.useState(null),U=k.useRef(J),q=k.useContext(v),M=k.useCallback((H)=>{if(H===null)T(!0);else if(T(!1),!X)U.current=H;if(!X)P(H)},[X]),I=k.useCallback((H)=>{U.current=H.content,P(H.content)},[]),K=k.useCallback((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(k.useEffect(()=>{P(J),T(!1)},[J]),!D&&Z)return _;return wJ.jsx(A,{card:"AjaxGroupCard",data:$,methods:{changeContent:I},useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:Q,centrifugeChannel:G,children:wJ.jsx(B,{uiConfig:D??U.current,setUiAjaxConfiguration:Y==="events"?K:M})})},XJ=P0;var w0=[{name:"BoxCard",component:d$},{name:"SequenceCard",component:c$},{name:"OneOfCard",component:s$},{name:"HiddenCard",component:o$},{name:"DeviceStorageCard",component:i$},{name:"SessionStorageCard",component:a$},{name:"IOEventsCard",component:n$},{name:"HTMLEmbedCard",component:e$},{name:"AutoRedirectCard",component:$J},{name:"UnionCard",component:ZJ},{name:"AjaxGroupCard",component:XJ}];for(let $ of w0)F$($);var q$=require("react"),T$=require("@tanstack/react-query"),EZ=require("axios-date-transformer"),RZ=require("react-native");var r=require("react");var zJ=require("react"),YJ=new Map,WJ=new Map;function GJ($,J){let Z=`${$}::${J}`,X=$?YJ.get(Z):void 0,[Y,W]=zJ.useState(X??null);return zJ.useEffect(()=>{if(!$)return;if(YJ.has(Z)){W(YJ.get(Z));return}let z=WJ.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((G)=>G.json()).then((G)=>{return YJ.set(Z,G),WJ.delete(Z),G}).catch((G)=>{throw WJ.delete(Z),G}),WJ.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 L0=({children:$})=>{let J=r.useContext(h),Z=k$(),X=GJ(Z,"socketIO"),Y=b$(),W=x$(),z=r.useRef(Y);z.current=Y;let Q=r.useRef(W);Q.current=W;let G=r.useRef("initial"),_=(B)=>{if(w.isClient())w.setSid(B.sid),YZ(),console.log(`SocketIO initialized: ${w.readSid()}`)};return r.useEffect(()=>{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]),$},B$=L0;var n=require("react");var N0=({children:$})=>{let J=n.useContext(f),Z=k$(),X=GJ(Z,"centrifuge"),Y=b$(),W=x$(),z=n.useRef(Y);z.current=Y;let Q=n.useRef(W);Q.current=W;let G=n.useRef("initial");return n.useEffect(()=>{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]),$},H$=N0;var LJ=require("react");var j$=require("react/jsx-runtime");function NZ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=LJ.useContext(j),X=LJ.useContext(d),Y=p();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=$$($.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 j$.jsx(G,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",W.name);let z=W.component,Q=j$.jsx(b.Provider,{value:NZ,children:j$.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(W.isLazy)return j$.jsx(z$,{name:W.name,fallback:Z,onError:X,children:Q});return Q}var QJ=NZ;var jZ=require("react/jsx-runtime");function _J($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),Y=J[X];if(!Y)return Z;return jZ.jsx(QJ,{uiConfig:Y})}var E=require("react/jsx-runtime"),j0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y})=>{let W=e(),z=J$(),Q=p(),G=q$.useMemo(()=>EZ.createAxiosDateTransformer({baseURL:W||""}),[W]),_=q$.useMemo(()=>s(),[]),B=q$.useMemo(()=>W?X$(W):null,[W]),F=q$.useMemo(()=>W?Z$(W,z):null,[W,z]),{data:T,isLoading:D,error:P}=T$.useQuery({queryKey:["uiConfig",$.pathname+$.search,W],enabled:!!W,queryFn:async()=>{let q=new URLSearchParams($.search);q.set("__pieroot",RZ.Platform.OS);let M="/api/content"+$.pathname+"?"+q.toString();if(Q)console.log("[PieNativeRoot] Fetching UI configuration from:",M);let I=await G.get(M,{headers:{"Content-type":"application/json"},withCredentials:!0});if(Q)console.log("[PieNativeRoot] Received UI configuration:",I.data);return I.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=_J($.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 E.jsx(v.Provider,{value:_,children:E.jsx(h.Provider,{value:B,children:E.jsx(f.Provider,{value:F,children:E.jsx(j.Provider,{value:J??E.jsx(E.Fragment,{}),children:E.jsx(B$,{children:E.jsx(H$,{children:E.jsx(N,{uiConfig:T})})})})})})})},E0=($)=>{let J=q$.useMemo(()=>new T$.QueryClient,[]),Z=$.queryClient??J;return E.jsx(m.Provider,{value:$.onNavigate,children:E.jsx(l.Provider,{value:$.config,children:E.jsx(d.Provider,{value:$.onError,children:E.jsx(T$.QueryClientProvider,{client:Z,children:E.jsx(j0,{...$})})})})})},yZ=E0;var K$=require("react"),BJ=require("@tanstack/react-query");var R=require("react/jsx-runtime"),R0=({location:$,fallback:J,children:Z,disableGlobalForm:X})=>{let Y=e(),W=J$(),z=p(),Q=K$.useMemo(()=>s(),[]),G=K$.useMemo(()=>Y?X$(Y):null,[Y]),_=K$.useMemo(()=>Y?Z$(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 R.jsx(v.Provider,{value:Q,children:R.jsx(h.Provider,{value:G,children:R.jsx(f.Provider,{value:_,children:R.jsx(j.Provider,{value:J??R.jsx(R.Fragment,{}),children:R.jsx(B$,{children:R.jsx(H$,{children:X?Z:R.jsx("form",{id:"piedata_global_form",action:Y+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:Z})})})})})})})},y0=($)=>{let[J]=K$.useState(()=>new BJ.QueryClient),Z=$.queryClient??J;return R.jsx(m.Provider,{value:$.onNavigate,children:R.jsx(l.Provider,{value:$.config,children:R.jsx(d.Provider,{value:$.onError,children:R.jsx(BJ.QueryClientProvider,{client:Z,children:R.jsx(R0,{...$})})})})})},kZ=y0;var D$=require("react"),U$=require("@tanstack/react-query");var bZ=require("axios-date-transformer");var L=require("react/jsx-runtime"),k0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,disableGlobalForm:W})=>{let z=e(),Q=J$(),G=p(),_=D$.useMemo(()=>bZ.createAxiosDateTransformer({baseURL:z||""}),[z]),B=D$.useMemo(()=>s(),[]),F=D$.useMemo(()=>z?X$(z):null,[z]),T=D$.useMemo(()=>z?Z$(z,Q):null,[z,Q]),{data:D,isLoading:P,error:U}=U$.useQuery({queryKey:["uiConfig",$.pathname+$.search,z],enabled:!!z,queryFn:async()=>{let M=new URLSearchParams($.search);M.set("__pieroot","web");let I="/api/content"+$.pathname+"?"+M.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",I);let K=await _.get(I,{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=_J($.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 L.jsx(v.Provider,{value:B,children:L.jsx(h.Provider,{value:F,children:L.jsx(f.Provider,{value:T,children:L.jsx(j.Provider,{value:J??L.jsx(L.Fragment,{}),children:L.jsx(B$,{children:L.jsx(H$,{children:W?L.jsx(N,{uiConfig:D}):L.jsx("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:L.jsx(N,{uiConfig:D})})})})})})})})},b0=($)=>{let J=D$.useMemo(()=>new U$.QueryClient,[]),Z=$.queryClient??J;return L.jsx(m.Provider,{value:$.onNavigate,children:L.jsx(l.Provider,{value:$.config,children:L.jsx(d.Provider,{value:$.onError,children:L.jsx(U$.QueryClientProvider,{client:Z,children:L.jsx(k0,{...$})})})})})},xZ=b0;var SZ=()=>{w.submitGlobalForm()};var CZ=($,J)=>`${$}${S$}${J}`;
|