@swarm.ing/pieui 2.2.1 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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/tests/flushStoredResolversToForm.test.d.ts +9 -0
- package/dist/tests/flushStoredResolversToForm.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 +59 -0
- package/dist/util/ajaxCommonUtils.d.ts.map +1 -1
- package/dist/util/globalForm.d.ts +5 -0
- package/dist/util/globalForm.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 o$=Object.create;var{getPrototypeOf:s$,defineProperty:BZ,getOwnPropertyNames:VU,getOwnPropertyDescriptor:i$}=Object,DU=Object.prototype.hasOwnProperty;var KU=(Z,U,$)=>{$=Z!=null?o$(s$(Z)):{};let H=U||!Z||!Z.__esModule?BZ($,"default",{value:Z,enumerable:!0}):$;for(let z of VU(Z))if(!DU.call(H,z))BZ(H,z,{get:()=>Z[z],enumerable:!0});return H},_U=new WeakMap,r$=(Z)=>{var U=_U.get(Z),$;if(U)return U;if(U=BZ({},"__esModule",{value:!0}),Z&&typeof Z==="object"||typeof Z==="function")VU(Z).map((H)=>!DU.call(U,H)&&BZ(U,H,{get:()=>Z[H],enumerable:!($=i$(Z,H))||$.enumerable}));return _U.set(Z,U),U};var a$=(Z,U)=>{for(var $ in U)BZ(Z,$,{get:U[$],enumerable:!0,configurable:!0,set:(H)=>U[$]=()=>H})};var gH={};a$(gH,{usePieEmit:()=>LU,useOnLinkRestored:()=>ZZ,useOnLinkLost:()=>e,useAjaxSubmits:()=>gU,useAjaxSubmit:()=>pU,unregisterComponent:()=>sU,trackLazy:()=>jZ,submitGlobalForm:()=>g$,registry:()=>S,registerPieComponent:()=>I,registerMultipleComponents:()=>oU,readAjaxKeyAsync:()=>ZU,readAjaxKey:()=>eZ,preloadComponent:()=>HU,prefetchLazyComponents:()=>tU,pieName:()=>u$,parseDepName:()=>VZ,hasComponent:()=>iU,getRegistrySize:()=>nU,getRegistryEntry:()=>HZ,getLazyComponentNames:()=>$U,getEmitter:()=>a,getComponentMeta:()=>rU,getAllRegisteredComponents:()=>aU,discoverAjaxEndpoints:()=>UU,cn:()=>p$,UnionCard:()=>Y$,UIRendererContext:()=>y,UILoading:()=>xZ,UI:()=>j,SocketIOContext:()=>v,SessionStorageCard:()=>P$,SequenceCard:()=>T$,PieRoot:()=>oZ,PiePreviewRoot:()=>m$,PieConfigContext:()=>r,PieCard:()=>P,PieBaseRoot:()=>k$,PIEBREAK:()=>NZ,OneOfCard:()=>y$,MittContext:()=>h,IOEventsCard:()=>I$,HiddenCard:()=>V$,HTMLEmbedCard:()=>W$,FallbackContext:()=>C,DeviceStorageCard:()=>w$,CentrifugeIOContext:()=>m,BoxCard:()=>j$,AutoRedirectCard:()=>O$,AjaxGroupCard:()=>L$});module.exports=r$(gH);var f=require("react");var PZ=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",()=>PZ.createContext(null)),c=()=>{let Z=PZ.useContext(r);if(!Z)throw Error("usePieConfig must be used within PieConfigProvider");return Z},QZ=()=>{let{apiServer:Z}=c();return Z},AZ=QZ,wZ=()=>{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},NZ="__piedemo__";var IU=require("react"),aZ=require("centrifuge");var FU=M("@swarm.ing/pieui:centrifuge-cache",()=>new Map),LZ=(Z,U)=>{if(!U)return null;let $=`${Z}::${U}`,H=FU.get($);if(H)return H;async function z(){let T=await fetch(Z+"api/centrifuge/gen_token",{credentials:"include"});if(!T.ok){if(T.status===401||T.status===403)throw new aZ.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${T.status}`)}return(await T.json()).token}let J=new aZ.Centrifuge(U,{getToken:z});return FU.set($,J),J},n$=M("@swarm.ing/pieui:context:centrifuge",()=>IU.createContext(null)),m=n$;var PU=require("socket.io-client"),AU=require("react");var MU=M("@swarm.ing/pieui:socket-cache",()=>new Map),RZ=(Z)=>{let U=MU.get(Z);if(U)return U;let $=PU.io(Z,{autoConnect:!1,transports:["websocket"]});return MU.set(Z,$),$},t$=M("@swarm.ing/pieui:context:socket",()=>AU.createContext(null)),v=t$;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(($,H)=>{(U??a()).emit(`pie${$}_${Z}`,H)},[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 H=Z.getSubscription(U);if(H)return{subscription:H,createdHere:!1};return{subscription:Z.newSubscription(U,$),createdHere:!0}}var e$=(Z)=>{let U=document.cookie?document.cookie.split(";"):[];for(let $ of U){let H=$.indexOf("=");if((H===-1?$:$.slice(0,H)).trim()===Z){let J=H===-1?"":$.slice(H+1).trim();try{return decodeURIComponent(J)}catch{return J}}}return null},ZH={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:e$,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=ZH;var UH={};function n(){return UH}var yU=new Map;var xU=(Z)=>{return yU.has(Z)?yU.get(Z):null};var fU,$H={isClient(){return!0},readSid(){return fU},setSid(Z){fU=Z},readWebStorage(Z,U){let $=n(),H=Z==="local"?$.storage:$.sessionStorage;return H?H.getItem(U):null},async readWebStorageAsync(Z,U){let $=n(),H=Z==="local"?$.asyncStorage:$.asyncSessionStorage;if(H)return H.getItem(U);let z=Z==="local"?$.storage:$.sessionStorage;return z?z.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=$H;var HH=typeof navigator<"u"&&navigator.product==="ReactNative",zH=HH?bU:CU,N=zH;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 JH=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],TH=new Set(["telegram:cloud","telegram:secure"]),_Z=new Map,SU=(Z,U)=>{_Z.set(Z,U)},mU=(Z)=>{_Z.delete(Z)},vU=(Z="piedata_global_form")=>{let U;if(typeof Z==="string"){if(typeof document>"u")return;U=document.getElementById(Z)}else U=Z;if(!U)return;let $=U.ownerDocument;for(let H of Array.from(U.getElementsByTagName("input")))if(H.getAttribute("data-pie-stored")!==null)H.remove();for(let[H,z]of _Z){let J=z();if(J instanceof Promise)continue;for(let T of J){if(typeof T!=="string")continue;let X=$.createElement("input");X.type="hidden",X.name=H,X.value=T,X.setAttribute("data-pie-stored","1"),U.appendChild(X)}}},VZ=(Z)=>{if(Z==="sid")return{source:"sid",key:"sid"};for(let U of JH){let $=U+":";if(Z.startsWith($))return{source:U,key:Z.slice($.length)}}return{source:"dom",key:Z}},eZ=(Z,U=!1)=>{let{source:$,key:H}=VZ(Z);if($==="sid"){let T=N.readSid();if(!T)throw Error("SocketIO isn't initialized properly");return[T]}if($==="localStorage"||$==="sessionStorage")try{let T=N.readWebStorage($==="localStorage"?"local":"session",H);if(T===null){if(U)console.warn(`No ${$} value found for key ${H}`);return[]}return[T]}catch(T){if(U)console.warn(`Failed to read ${$} key ${H}:`,T);return[]}if($==="cookie"){let T=N.readCookie(H);if(T===null){if(U)console.warn(`No cookie found for key ${H}`);return[]}return[T]}if($==="url"){let T=N.readUrlParams(H);if(!T.length&&U)console.warn(`No URL query param found for key ${H}`);return T}if(TH.has($)){if(U)console.warn(`Source ${$} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let z=_Z.get(H);if(z){let T=z();if(T instanceof Promise){if(U)console.warn(`stored resolver for ${H} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}return T}let J=N.readDomInput(H);if(J===null){if(U)console.warn(`No input found with name ${H}`);return[]}return J},GH=(Z,U,$)=>{let H=window.Telegram?.WebApp,z=Z==="telegram:cloud"?H?.CloudStorage:H?.SecureStorage,J=Z==="telegram:cloud"?"Telegram CloudStorage":"Telegram SecureStorage";if(!z){if($)console.warn(`${J} is not available`);return Promise.resolve([])}return new Promise((T)=>{try{z.getItem(U,(X,G)=>{if(X){if($)console.warn(`Failed to read ${J} key ${U}:`,X);T([]);return}if(G==null||G===""){if($)console.warn(`No ${J} value found for key ${U}`);T([]);return}T([G])})}catch(X){if($)console.warn(`Failed to read ${J} key ${U}:`,X);T([])}})},ZU=async(Z,U=!1)=>{let{source:$,key:H}=VZ(Z);if($==="telegram:cloud"||$==="telegram:secure")return GH($,H,U);if(($==="localStorage"||$==="sessionStorage")&&N.readWebStorageAsync)try{let z=await N.readWebStorageAsync($==="localStorage"?"local":"session",H);if(z===null){if(U)console.warn(`No ${$} value found for key ${H}`);return[]}return[z]}catch(z){if(U)console.warn(`Failed to read ${$} key ${H}:`,z);return[]}if($==="dom"){let z=_Z.get(H);if(z)return z()}return eZ(Z,U)},hU=(Z,U={},$=[],H,z)=>{let J=z?.renderingLogEnabled??!1,T=z?.timeout,X=z?.retryPolicy,G=X?.maxRetries??0,Y=X?.baseDelay??1000,_=X?.retryOn??[502,503,504];if(J)console.log("Registering AJAX: ",H,U,$);return async(B={})=>{if(!N.isClient()){if(J)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let V=z?.apiServer;if(!V){if(J)console.warn("AJAX skipped: apiServer is missing");return}if(!H||!Z){if(J)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if($.includes("sid"))await nZ();let q=new FormData;for(let[O,A]of Object.entries({...U,...B}))q.append(O,A);for(let O of $){let{key:A}=VZ(O);for(let w of await ZU(O,J))q.append(A,w)}let W=V+"api/ajax_content"+H;Z(null);let D;for(let O=0;O<=G;O++){if(O>0){let K=Y*2**(O-1);if(J)console.log(`AJAX retry ${O}/${G} after ${K}ms`);await new Promise((Q)=>setTimeout(Q,K))}let A=T!=null?new AbortController:null,w=A&&setTimeout(()=>A.abort(),T);try{let K=await fetch(W,{method:"POST",body:q,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(),MZ=new TextDecoder,g="";while(!0){let{done:u,value:d$}=await k.read();if(u)break;g+=MZ.decode(d$,{stream:!0});let WU=g.split(`
|
|
3
|
+
`);g=WU.pop()??"";for(let c$ of WU){let iZ=c$.trim();if(!iZ)continue;try{let l$=JSON.parse(iZ);Z([l$])}catch{if(J)console.warn("Failed to parse streamed line:",iZ)}}}if(g.trim())try{let u=JSON.parse(g);Z([u])}catch{if(J)console.warn("Failed to parse final streamed line:",g)}return{}}else{let k=await K.json();return Z(k),k}}catch(K){if(w)clearTimeout(w);if(D=K,O<G)continue;if(J)console.error("AJAX request failed:",K);return Z(null),K}}if(J)console.error("AJAX request failed after retries:",D);return Z(null),D}},pU=(Z,U={},$=[],H,z)=>{let{apiServer:J,enableRenderingLog:T}=c(),X=JSON.stringify(U),G=JSON.stringify($),Y=JSON.stringify(z);return tZ.useMemo(()=>hU(Z,U,$,H,{apiServer:J,renderingLogEnabled:T,timeout:z?.timeout,retryPolicy:z?.retryPolicy}),[Z,X,G,H,J,T,Y])},UU=(Z={})=>{let U=[];for(let $ of Object.keys(Z??{})){let H=null;if($==="pathname")H="default";else if($.endsWith("Pathname"))H=$.slice(0,-8);if(H===null)continue;let z=H==="default"?"":H;U.push({key:H,pathname:Z[$],depsNames:Z[z?`${z}DepsNames`:"depsNames"]??[],kwargs:Z[z?`${z}Kwargs`:"kwargs"]??{}})}return U},gU=(Z={},U,$)=>{let{apiServer:H,enableRenderingLog:z}=c(),J=JSON.stringify(Z??{}),T=JSON.stringify($);return tZ.useMemo(()=>{let X={};for(let G of UU(Z??{}))X[G.key]=hU(U,G.kwargs,G.depsNames,G.pathname,{apiServer:H,renderingLogEnabled:z,timeout:$?.timeout,retryPolicy:$?.retryPolicy});return X},[J,U,H,z,T])};var $Z=require("react/jsx-runtime"),XH=({card:Z,data:U,children:$,useSocketioSupport:H=!1,useCentrifugeSupport:z=!1,useMittSupport:J=!1,centrifugeChannel:T=void 0,methods:X=void 0,stored:G=void 0,onResync:Y=void 0})=>{let _=OU(),B=f.useRef(X);B.current=X;let V=f.useRef(Y);V.current=Y;let q=f.useRef(G);q.current=G;let W=typeof G==="function";if(f.useEffect(()=>{if(!W)return;let w=U.name;return SU(w,()=>[JSON.stringify(q.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:H,centrifuge:z,mitt:J,centrifugeChannel:T}),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||!H||!B.current||!U.name){if(_&&H)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!D,useSocketioSupport:H,hasMethods:!!B.current,hasDataName:!!U?.name});return}let K=Object.keys(B.current??{}).map((Q)=>{let F=`pie${Q}_${U.name}`;if(_)console.log(`[PieCard] Socket.IO registering event: ${F}`);let x=(k)=>{B.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,H]),f.useEffect(()=>{if(!O||!z||!T||!U.name){if(_&&z)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!O,useCentrifugeSupport:z,hasCentrifugeChannel:!!T,hasMethods:!!B.current,hasDataName:!!U?.name});return}let K=Object.keys(B.current??{}).map((Q)=>{let F=`pie${Q}_${U.name}_${T}`;if(_)console.log(`[PieCard] Centrifuge subscribing to channel: ${F}`);let{subscription:x,createdHere:k}=EU(O,F,{recoverable:!0,positioned:!0}),MZ=(u)=>{if(_)console.log(`[PieCard] Centrifuge received data on ${F}:`,u.data);B.current?.[Q]?.(u.data)},g=(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",MZ),x.on("subscribed",g),x.subscribe(),{subscription:x,createdHere:k,onPublication:MZ,onSubscribed:g}});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,T,U.name,z]),f.useEffect(()=>{if(!A||!J||!U.name){if(_&&J)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!A,useMittSupport:J,hasMethods:!!B.current,hasDataName:!!U?.name});return}let w=Object.keys(B.current??{}),K={};return w.forEach((Q)=>{let F=`pie${Q}_${U.name}`,x=(k)=>{if(_)console.log(`[PieCard] Mitt registering event: ${F}`);B.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,J]),_)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=XH;var uU=require("react"),t=new Map;function dU(Z,U){return U.catch(()=>{if(t.get(Z)===U)t.delete(Z)}),t.set(Z,U),U}function jZ(Z,U){return uU.lazy(()=>{if(t.has(U))return t.get(U);return dU(U,Z().then(($)=>$))})}var cU=async(Z,U)=>{if(!U)return;if(t.has(Z))return t.get(Z);return dU(Z,U().then(($)=>$))};var S=M("@swarm.ing/pieui:component-registry",()=>new Map),YH=(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=YH(Z);return S.set(U.name,U),U.component}var oU=(Z)=>{Z.forEach((U)=>I(U))},sU=(Z)=>{S.delete(Z)},iU=(Z)=>{return S.has(Z)},rU=(Z)=>{return S.get(Z)?.metadata},HZ=(Z)=>{return S.get(Z)},aU=()=>{return Array.from(S.keys())},nU=()=>{return S.size},$U=()=>Array.from(S.values()).filter((Z)=>Z.isLazy&&typeof Z.loader==="function").map((Z)=>Z.name),HU=(Z)=>{let U=S.get(Z);if(!U?.isLazy||typeof U.loader!=="function")return;return cU(Z,U.loader)},lU=!1,tU=()=>{if(lU||typeof window>"u")return;lU=!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?(z)=>window.requestIdleCallback(z,{timeout:2000}):(z)=>window.setTimeout(z,300),H=(z)=>{if(z>=U.length)return;$(()=>{Promise.resolve().then(()=>HU(U[z])).catch(()=>{}).finally(()=>H(z+1))})};H(0)};var DZ=require("react");var eU=require("react");var EZ=require("react/jsx-runtime"),qH=M("@swarm.ing/pieui:context:fallback",()=>eU.createContext(EZ.jsx(EZ.Fragment,{}))),C=qH;var Z$=require("react");var BH=M("@swarm.ing/pieui:context:lazyError",()=>Z$.createContext(void 0)),l=BH;var CZ=require("react"),U$=require("react/jsx-runtime"),QH=2,WH=400;class zZ extends CZ.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(Z){if(this.props.onError?.(Z),this.state.attempt<QH){let U=WH*(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 U$.jsx(CZ.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var yZ=require("react/jsx-runtime");function _H({uiConfig:Z,setUiAjaxConfiguration:U}){let $=DZ.useContext(C),H=DZ.useContext(l),z=d();if(z)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 J=HZ(Z.card);if(!J?.component){if(z)console.warn(`[UI] Component not found in registry: ${Z.card}`),console.log("[UI] Returning fallback component");return $}if(z)console.log("[UI] Found component in registry:",{name:J.name,isLazy:J.isLazy,hasMetadata:!!J.metadata});let T=J.component,X=yZ.jsx(T,{data:Z.data,content:Z.content,setUiAjaxConfiguration:U});if(J.isLazy){if(z)console.log("[UI] Rendering lazy component with Suspense:",J.name);return yZ.jsx(zZ,{name:J.name,fallback:J.fallback?yZ.jsx(J.fallback,{}):$,onError:H,children:X})}if(z)console.log("[UI] Rendering component directly:",J.name);return X}var j=DZ.memo(_H);var zU=require("react");var $$=require("react");var VH=M("@swarm.ing/pieui:context:uiRenderer",()=>$$.createContext(null)),y=VH;var KZ=require("react/jsx-runtime");function H$({uiConfig:Z,setUiAjaxConfiguration:U}){let $=zU.useContext(C),H=zU.useContext(l),z=d();if(z)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 J=HZ(Z.card);if(!J?.component){if(z)console.warn(`[UILoading] Component not found in registry: ${Z.card}`),console.log("[UILoading] Returning fallback component");return $}if(z)console.log("[UILoading] Found component in registry:",{name:J.name,isLazy:J.isLazy,hasMetadata:!!J.metadata,hasFallback:!!J.fallback});if(J.fallback){if(z)console.log("[UILoading] Rendering fallback for:",J.name);let G=J.fallback;return KZ.jsx(G,{})}if(z)console.log("[UILoading] No fallback, rendering full component:",J.name);let T=J.component,X=KZ.jsx(y.Provider,{value:H$,children:KZ.jsx(T,{data:Z.data,content:Z.content,setUiAjaxConfiguration:U})});if(J.isLazy)return KZ.jsx(zZ,{name:J.name,fallback:$,onError:H,children:X});return X}var xZ=H$;var z$=require("react");var fZ=require("react/jsx-runtime"),DH=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:H,sx:z}=Z,J=z$.useContext(y)??j;return fZ.jsx(P,{card:H,data:Z,children:fZ.jsx("div",{style:z,id:H,children:U.map((T,X)=>{return fZ.jsx(J,{uiConfig:T,setUiAjaxConfiguration:$},`children-${X}`)})})})},J$=DH;var T$=I({name:"SequenceCard",component:J$,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var G$=require("react");var JU=require("react/jsx-runtime"),KH=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:H}=Z,z=G$.useContext(y)??j;return JU.jsx(P,{card:H,data:Z,children:U.map((J,T)=>{return JU.jsx(z,{uiConfig:J,setUiAjaxConfiguration:$},`children-${T}`)})})},X$=KH;var Y$=I({name:"UnionCard",component:X$,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var bZ=require("react"),q$=KU(require("html-react-parser"));var b=require("react");function OH(){let Z=new AudioContext,U=Z.createOscillator(),$=U.connect(Z.createMediaStreamDestination());U.start();let H=$.stream.getAudioTracks()[0];return H.enabled=!1,H}function TU(Z=null,U){let[$,H]=b.useState(!1),z=b.useRef(null),J=b.useRef(null),T=b.useRef(null),X=b.useCallback(async(B,V=!0)=>{if(z.current)G();let q=new RTCPeerConnection;if(q.onconnectionstatechange=()=>{if(q.connectionState==="connected")H(!0);else if(["disconnected","failed","closed"].includes(q.connectionState))H(!1)},q.ontrack=(Q)=>{if(Z)Z.srcObject=Q.streams[0]},V){let Q=await navigator.mediaDevices.getUserMedia({audio:!0});q.addTrack(Q.getTracks()[0],Q)}else{let Q=OH();q.addTrack(Q)}let W=q.createDataChannel("oai-events");J.current=W,T.current=new Promise((Q)=>{W.addEventListener("open",()=>{Q()})});let D=await q.createOffer();await q.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 ${B}`,"Content-Type":"application/sdp"}})).text();await q.setRemoteDescription({type:"answer",sdp:K}),z.current=q,await T.current},[Z]),G=b.useCallback(()=>{let B=J.current;if(B)B.close();z.current?.getSenders()?.forEach((V)=>V.track?.stop()),z.current?.close(),H(!1),z.current=null,J.current=null,T.current=null},[Z]),Y=b.useCallback((B)=>{let V=J.current;if(!V){console.error("Data channel is not ready",B);return}let q=new Date().toLocaleTimeString();if(B.event_id=B.event_id||crypto.randomUUID(),V.send(JSON.stringify(B)),!B.timestamp)B.timestamp=q;U?.(B)},[U,Z]),_=b.useCallback((B)=>{if(!J.current){console.error("Data channel is not ready");return}let q=()=>{Y({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:B}]}}),Y({type:"response.create"})};if(T.current)T.current.then(q);else q()},[U,Z]);return b.useEffect(()=>{let B=J.current;if(!B)return;let V=(q)=>{let W=JSON.parse(q.data);if(!W.timestamp)W.timestamp=new Date().toLocaleTimeString();U?.(W)};return B.addEventListener("message",V),()=>{B.removeEventListener("message",V)}},[U,Z]),{isSessionActive:$,startSession:X,stopSession:G,sendTextMessage:_}}var Q$=require("react/jsx-runtime"),FH=({data:Z})=>{let{html:U,useSocketioSupport:$,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:J}=Z,[T,X]=bZ.useState(U),{isSessionActive:G,startSession:Y,sendTextMessage:_}=TU(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:H,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:J,children:q$.default(T)})},B$=FH;var W$=I({name:"HTMLEmbedCard",component:B$,metadata:{author:"Swarm.ing"}});var kZ=require("react");var GU=require("react/jsx-runtime"),IH=({data:Z})=>{let{name:U,value:$,useSocketioSupport:H,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:T}=Z,[X,G]=kZ.useState($);return kZ.useEffect(()=>{G($)},[$]),GU.jsx(P,{card:"HiddenCard",data:Z,useSocketioSupport:H,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:T,methods:{update:({value:Y})=>{G(Y)}},children:GU.jsx("input",{type:"hidden",id:U,name:U,value:X})})},_$=IH;var V$=I({name:"HiddenCard",component:_$,metadata:{author:"Swarm.ing"}});var OZ=require("react");var D$=require("react");var MH=M("@swarm.ing/pieui:context:navigate",()=>D$.createContext(void 0)),p=MH;var SZ=require("react/jsx-runtime"),PH=({data:Z})=>{let{url:U}=Z,$=OZ.useContext(p),H=OZ.useContext(C);return OZ.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else $?.(U)},[U,$]),SZ.jsx(SZ.Fragment,{children:H})},K$=PH;var O$=I({name:"AutoRedirectCard",component:K$,metadata:{author:"Swarm.ing"}});var o=require("react-toastify"),mZ=require("react-toastify");var TZ=require("react");var JZ=require("react/jsx-runtime"),AH={bounce:o.Bounce,slide:o.Slide,zoom:o.Zoom,flip:o.Flip},wH=(Z)=>{let U={...Z,type:Z.alertType,transition:Z.transition?AH[Z.transition]:void 0,position:Z.position??"bottom-right",autoClose:Z.autoClose??3000,style:{backgroundColor:"black",...Z.sx}};mZ.toast(Z.message,U)},NH=(Z)=>{console.log("Log event",Z)},LH=(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(H){console.error("[IOEventsCard] Failed to show notification",H)}},$=window.Notification.permission;if($==="granted"){U();return}if($==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((H)=>{if(H==="granted")U()})},RH=({data:Z})=>{let{useCentrifugeSupport:U,useSocketioSupport:$,useMittSupport:H,centrifugeChannel:z}=Z,J=TZ.useContext(p),T=TZ.useRef(J);T.current=J;let X=TZ.useMemo(()=>({alert:wH,log:NH,push:LH,redirect:(G)=>{if(G.to){let Y=G.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Y))window.location.href=Y;else T.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 T.current?.(Y)}else window.location.reload()}}),[]);return JZ.jsx(JZ.Fragment,{children:JZ.jsx(P,{card:"IOEventsCard",data:Z,useCentrifugeSupport:U,useSocketioSupport:$,useMittSupport:H,centrifugeChannel:z,methods:X,children:JZ.jsx(mZ.ToastContainer,{})})})},F$=RH;var I$=I({name:"IOEventsCard",component:F$,metadata:{author:"Swarm.ing"}});var FZ=require("react");var XU=require("react/jsx-runtime"),jH=({data:Z})=>{let{name:U,key:$,value:H,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:X}=Z,[G,Y]=FZ.useState(H);return FZ.useEffect(()=>{Y(H)},[H]),FZ.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem($,G)},[$,G]),XU.jsx(P,{card:"SessionStorageCard",data:Z,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:X,methods:{update:({value:_})=>{Y(_)},remove:()=>{sessionStorage.removeItem($),Y("")}},children:XU.jsx("input",{type:"hidden",id:U,name:U,value:G})})},M$=jH;var P$=I({name:"SessionStorageCard",component:M$,metadata:{author:"PieData"}});var IZ=require("react");var YU=require("react/jsx-runtime"),EH=({data:Z})=>{let{name:U,key:$,value:H,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:X}=Z,[G,Y]=IZ.useState(H);return IZ.useEffect(()=>{Y(H)},[H]),IZ.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem($,G)},[$,G]),YU.jsx(P,{card:"DeviceStorageCard",data:Z,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:X,methods:{update:({value:_})=>{Y(_)},remove:()=>{localStorage.removeItem($),Y("")}},children:YU.jsx("input",{type:"hidden",id:U,name:U,value:G})})},A$=EH;var w$=I({name:"DeviceStorageCard",component:A$,metadata:{author:"PieData"}});var E=require("react");var qU=require("react/jsx-runtime"),CH=({data:Z,content:U})=>{let{useLoader:$,noReturn:H,returnType:z,useSocketioSupport:J,useCentrifugeSupport:T,useMittSupport:X,centrifugeChannel:G}=Z,Y=E.useContext(C),_=E.useContext(y)??j,[B,V]=E.useState(!1),[q,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),!H)D.current=Q;if(!H)W(Q)},[H]),w=E.useCallback((Q)=>{D.current=Q.content,W(Q.content)},[]),K=E.useCallback((Q)=>{if(Q===null)V(!0);else if(V(!1),!H)for(let F of Q)O?.emit(F.name,F.data)},[H,O]);if(E.useEffect(()=>{W(U),V(!1)},[U]),!q&&$)return Y;return qU.jsx(P,{card:"AjaxGroupCard",data:Z,methods:{changeContent:w},useSocketioSupport:J,useCentrifugeSupport:T,useMittSupport:X,centrifugeChannel:G,children:qU.jsx(_,{uiConfig:q??D.current,setUiAjaxConfiguration:z==="events"?K:A})})},N$=CH;var L$=I({name:"AjaxGroupCard",component:N$,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var BU=require("react");var vZ=require("react/jsx-runtime"),yH=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:H,url:z,sx:J}=Z,T=BU.useContext(p),X=BU.useContext(y)??j;return vZ.jsx(P,{card:H,data:Z,children:vZ.jsx("div",{style:J,id:H,onClick:(Y)=>{if(z)if(Y.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(z))window.location.href=z;else T?.(z)},children:vZ.jsx(X,{setUiAjaxConfiguration:$,uiConfig:U})})})},R$=yH;var j$=I({name:"BoxCard",component:R$,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var E$=require("react");var hZ=require("react/jsx-runtime"),xH=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:H,sx:z}=Z,J=E$.useContext(y)??j;return hZ.jsx(P,{card:H,data:Z,children:hZ.jsx("div",{style:z,id:H,children:U.map((T,X)=>{return hZ.jsx(J,{uiConfig:T,setUiAjaxConfiguration:$},`children-${X}`)})})})},C$=xH;var y$=I({name:"OneOfCard",component:C$,metadata:{author:"Swarm.ing",description:"Different variants"}});var XZ=require("react"),YZ=require("@tanstack/react-query");var s=require("react");var uZ=require("react"),pZ=new Map,gZ=new Map;function dZ(Z,U){let $=`${Z}::${U}`,H=Z?pZ.get($):void 0,[z,J]=uZ.useState(H??null);return uZ.useEffect(()=>{if(!Z)return;if(pZ.has($)){J(pZ.get($));return}let T=gZ.get($);if(!T)T=fetch(Z+`api/support/${U}`,{method:"GET"}).then((G)=>G.json()).then((G)=>{return pZ.set($,G),gZ.delete($),G}).catch((G)=>{throw gZ.delete($),G}),gZ.set($,T);let X=!1;return T.then((G)=>{if(!X)J(G)}).catch(()=>{}),()=>{X=!0}},[Z,U,$]),z}function GZ(Z,U){if(U==="up")return{state:"up",signal:Z==="down"?"restored":null};return{state:"down",signal:Z==="up"?"lost":null}}var fH=({children:Z})=>{let U=s.useContext(v),$=AZ(),H=dZ($,"socketIO"),z=e(),J=ZZ(),T=s.useRef(z);T.current=z;let X=s.useRef(J);X.current=J;let G=s.useRef("initial"),Y=(_)=>{if(N.isClient())N.setSid(_.sid),kU(),console.log(`SocketIO initialized: ${N.readSid()}`)};return s.useEffect(()=>{if(!U||!H)return;let _=()=>{let{state:V,signal:q}=GZ(G.current,"up");if(G.current=V,q==="restored")X.current?.("socketio");console.log("SocketIO connected")},B=(V)=>{if(console.log(`SocketIO disconnected: ${V}`),U.connect(),V==="io client disconnect")return;let{state:q,signal:W}=GZ(G.current,"down");if(G.current=q,W==="lost")T.current?.("socketio",V)};return U.on("pieinit",Y),U.on("connect",_),U.on("disconnect",B),U.connect(),()=>{U.off("pieinit",Y),U.off("connect",_),U.off("disconnect",B),U.disconnect()}},[U,H]),Z},cZ=fH;var i=require("react");var bH=({children:Z})=>{let U=i.useContext(m),$=AZ(),H=dZ($,"centrifuge"),z=e(),J=ZZ(),T=i.useRef(z);T.current=z;let X=i.useRef(J);X.current=J;let G=i.useRef("initial");return i.useEffect(()=>{if(!U||!H)return;let Y=(V)=>{let{state:q,signal:W}=GZ(G.current,"down");if(G.current=q,W==="lost")T.current?.("centrifuge",V)},_=()=>{let{state:V,signal:q}=GZ(G.current,"up");if(G.current=V,q==="restored")X.current?.("centrifuge");console.log("Centrifuge connected")},B=(V)=>{console.log("Centrifuge disconnected:",V),Y(V)};return U.on("connecting",Y),U.on("connected",_),U.on("disconnected",B),U.connect(),()=>{U.off("connecting",Y),U.off("connected",_),U.off("disconnected",B),U.disconnect()}},[U,H]),Z},lZ=bH;var b$=require("axios-date-transformer");var f$=require("react/jsx-runtime");function x$(Z,U,$){if(!U)return $;let H=Z.replace(/^\//,""),z=U[H];if(!z)return $;return f$.jsx(xZ,{uiConfig:z})}var L=require("react/jsx-runtime"),kH=({location:Z,fallback:U,piecache:$,onError:H,queryOptions:z,disableGlobalForm:J})=>{let T=QZ(),X=wZ(),G=d(),Y=XZ.useMemo(()=>b$.createAxiosDateTransformer({baseURL:T||""}),[T]),_=XZ.useMemo(()=>a(),[]),B=XZ.useMemo(()=>T?RZ(T):null,[T]),V=XZ.useMemo(()=>T?LZ(T,X):null,[T,X]),{data:q,isLoading:W,error:D}=YZ.useQuery({queryKey:["uiConfig",Z.pathname+Z.search,T],enabled:!!T,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),...z}),O=x$(Z.pathname,$,U);if(!T)return O??null;if(G)console.log("[PieRoot] Rendering with location:",Z),console.log("[PieRoot] API_SERVER:",T),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 H?.(D),O}if(W||!q){if(G)console.log("[PieRoot] Loading state:",{isLoading:W,hasUiConfiguration:!!q});return O}if(G)console.log("[PieRoot] UI configuration loaded successfully:",q),console.log("[PieRoot] Rendering UI with configuration");return L.jsx(h.Provider,{value:_,children:L.jsx(v.Provider,{value:B,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:J?L.jsx(j,{uiConfig:q}):L.jsx("form",{id:"piedata_global_form",action:T+"api/process"+Z.pathname,method:"post",encType:"multipart/form-data",children:L.jsx(j,{uiConfig:q})})})})})})})})},SH=(Z)=>{let U=XZ.useMemo(()=>new YZ.QueryClient,[]),$=Z.queryClient??U;return L.jsx(p.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(kH,{...Z})})})})})},oZ=SH;var qZ=require("react"),sZ=require("@tanstack/react-query");var R=require("react/jsx-runtime"),mH=({location:Z,fallback:U,children:$,disableGlobalForm:H})=>{let z=QZ(),J=wZ(),T=d(),X=qZ.useMemo(()=>a(),[]),G=qZ.useMemo(()=>z?RZ(z):null,[z]),Y=qZ.useMemo(()=>z?LZ(z,J):null,[z,J]);if(T)console.log("[PieRoot] Rendering with location:",Z),console.log("[PieRoot] API_SERVER:",z),console.log("[PieRoot] CENTRIFUGE_SERVER:",J),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:H?$:R.jsx("form",{id:"piedata_global_form",action:z+"api/process"+Z.pathname,method:"post",encType:"multipart/form-data",children:$})})})})})})})},vH=(Z)=>{let[U]=qZ.useState(()=>new sZ.QueryClient),$=Z.queryClient??U;return R.jsx(p.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(mH,{...Z})})})})})},k$=vH;var S$=require("react");var QU=require("react/jsx-runtime"),hH=QU.jsx("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),pH=({apiServer:Z,pathname:U="/",search:$="",centrifugeServer:H,fallback:z,enableRenderingLog:J=!1})=>{let T=Z??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"",X=S$.useMemo(()=>({apiServer:T,centrifugeServer:H,enableRenderingLog:J,pageProcessor:"web"}),[T,H,J]);return QU.jsx(oZ,{location:{pathname:U,search:$},config:X,fallback:z??hH,onNavigate:(Y)=>{if(typeof window<"u")window.history.pushState(null,"",Y)}})},m$=pH;var v$=require("clsx"),h$=require("tailwind-merge");function p$(...Z){return h$.twMerge(v$.clsx(Z))}var g$=()=>{vU(),N.submitGlobalForm()};var u$=(Z,U)=>`${Z}${NZ}${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 vJ}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 vJ(()=>{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),mJ=($)=>{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 _$($){let J=mJ($);return m.set(J.name,J),J.component}var gJ=($)=>{$.forEach((J)=>_$(J))},pJ=($)=>{m.delete($)},cJ=($)=>{return m.has($)},dJ=($)=>{return m.get($)?.metadata},X$=($)=>{return m.get($)},uJ=()=>{return Array.from(m.keys())},lJ=()=>{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,sJ=()=>{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 wJ}from"react";import{Linking as vZ,Pressable as mZ,View as gZ}from"react-native";import{useContext as R$,useEffect as V$,useRef as y$}from"react";import{createContext as oJ,useContext as iJ}from"react";var d=O("@swarm.ing/pieui:context:pieConfig",()=>oJ(null)),u=()=>{let $=iJ(d);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},o=()=>{let{apiServer:$}=u();return $},B$=o,n=()=>{let{centrifugeServer:$}=u();return $};var C=()=>{let{enableRenderingLog:$}=u();return $},XJ=C;var H$=()=>{let{onLinkLost:$}=u();return $},q$=()=>{let{onLinkRestored:$}=u();return $},N$="__piedemo__";import{createContext as aJ}from"react";import{Centrifuge as YJ}from"centrifuge";var WJ=O("@swarm.ing/pieui:centrifuge-cache",()=>new Map),r=($,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},nJ=O("@swarm.ing/pieui:context:centrifuge",()=>aJ(null)),f=nJ;import{io as rJ}from"socket.io-client";import{createContext as tJ}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},eJ=O("@swarm.ing/pieui:context:socket",()=>tJ(null)),h=eJ;import $Z from"mitt";import{createContext as JZ,useCallback as ZZ,useContext as XZ}from"react";function l(){return O("@swarm.ing/pieui:mitt-emitter",()=>$Z())}var GJ=O("@swarm.ing/pieui:context:mitt",()=>JZ(null));function YZ($){let J=XZ(GJ);return ZZ((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 WZ=($)=>{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},zZ={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:WZ,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=zZ;var K$={};function GZ($){K$={...K$,...$}}function E(){return K$}function QZ(){K$={}}var T$=new Map,i=($,J)=>{T$.set($,J)},a=($)=>{T$.delete($)},j$=($)=>{return T$.has($)?T$.get($):null};var qJ,_Z={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?.()}},KJ=_Z;var BZ=typeof navigator<"u"&&navigator.product==="ReactNative",HZ=BZ?KJ:HJ,w=HZ;var Y$=O("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function TJ(){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 qZ=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],KZ=new Set(["telegram:cloud","telegram:secure"]),W$=new Map,VJ=($,J)=>{W$.set($,J)},UJ=($)=>{W$.delete($)},FJ=($="piedata_global_form")=>{let J;if(typeof $==="string"){if(typeof document>"u")return;J=document.getElementById($)}else J=$;if(!J)return;let Z=J.ownerDocument;for(let X of Array.from(J.getElementsByTagName("input")))if(X.getAttribute("data-pie-stored")!==null)X.remove();for(let[X,Y]of W$){let W=Y();if(W instanceof Promise)continue;for(let z of W){if(typeof z!=="string")continue;let Q=Z.createElement("input");Q.type="hidden",Q.name=X,Q.value=z,Q.setAttribute("data-pie-stored","1"),J.appendChild(Q)}}},D$=($)=>{if($==="sid")return{source:"sid",key:"sid"};for(let J of qZ){let Z=J+":";if($.startsWith(Z))return{source:J,key:$.slice(Z.length)}}return{source:"dom",key:$}},MJ=($,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(KZ.has(Z)){if(J)console.warn(`Source ${Z} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let Y=W$.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([])}})},OJ=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=W$.get(X);if(Y)return Y()}return MJ($,J)},AJ=($,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 K=Y?.apiServer;if(!K){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 OJ(q,W))D.append(M,A)}let P=K+"api/ajax_content"+X;$(null);let V;for(let q=0;q<=G;q++){if(q>0){let T=_*2**(q-1);if(W)console.log(`AJAX retry ${q}/${G} after ${T}ms`);await new Promise((H)=>setTimeout(H,T))}let M=z!=null?new AbortController:null,A=M&&setTimeout(()=>M.abort(),z);try{let T=await fetch(P,{method:"POST",body:D,signal:M?.signal});if(A)clearTimeout(A);if(!T.ok&&B.includes(T.status)&&q<G){V=Error(`HTTP ${T.status}`);continue}let U=(T.headers.get("content-type")||"").includes("application/json");if(!!T.body?.getReader&&!U){let x=T.body.getReader(),Q$=new TextDecoder,p="";while(!0){let{done:c,value:CJ}=await x.read();if(c)break;p+=Q$.decode(CJ,{stream:!0});let r$=p.split(`
|
|
3
|
+
`);p=r$.pop()??"";for(let fJ of r$){let P$=fJ.trim();if(!P$)continue;try{let hJ=JSON.parse(P$);$([hJ])}catch{if(W)console.warn("Failed to parse streamed line:",P$)}}}if(p.trim())try{let c=JSON.parse(p);$([c])}catch{if(W)console.warn("Failed to parse final streamed line:",p)}return{}}else{let x=await T.json();return $(x),x}}catch(T){if(A)clearTimeout(A);if(V=T,q<G)continue;if(W)console.error("AJAX request failed:",T);return $(null),T}}if(W)console.error("AJAX request failed after retries:",V);return $(null),V}},DZ=($,J={},Z=[],X,Y)=>{let{apiServer:W,enableRenderingLog:z}=u(),Q=JSON.stringify(J),G=JSON.stringify(Z),_=JSON.stringify(Y);return DJ(()=>AJ($,J,Z,X,{apiServer:W,renderingLogEnabled:z,timeout:Y?.timeout,retryPolicy:Y?.retryPolicy}),[$,Q,G,X,W,z,_])},IJ=($={})=>{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},VZ=($={},J,Z)=>{let{apiServer:X,enableRenderingLog:Y}=u(),W=JSON.stringify($??{}),z=JSON.stringify(Z);return DJ(()=>{let Q={};for(let G of IJ($??{}))Q[G.key]=AJ(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 MZ,jsxs as OZ,Fragment as FZ}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 K=y$(_);K.current=_;let D=y$(G);D.current=G;let P=typeof G==="function";if(V$(()=>{if(!P)return;let A=J.name;return VJ(A,()=>[JSON.stringify(D.current())]),()=>UJ(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 V=R$(h),q=R$(f),M=R$(v);if(V$(()=>{if(!V||!X||!F.current||!J.name){if(B&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!V,useSocketioSupport:X,hasMethods:!!F.current,hasDataName:!!J?.name});return}let T=Object.keys(F.current??{}).map((H)=>{let U=`pie${H}_${J.name}`;if(B)console.log(`[PieCard] Socket.IO registering event: ${U}`);let R=(x)=>{F.current?.[H]?.(x)};return V.on(U,R),[U,R]});return()=>{T.forEach(([H,U])=>{if(B)console.log(`[PieCard] Socket.IO unregistering event: ${H}`);V.off(H,U)})}},[V,J.name,X]),V$(()=>{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 T=Object.keys(F.current??{}).map((H)=>{let U=`pie${H}_${J.name}_${z}`;if(B)console.log(`[PieCard] Centrifuge subscribing to channel: ${U}`);let{subscription:R,createdHere:x}=BJ(q,U,{recoverable:!0,positioned:!0}),Q$=(c)=>{if(B)console.log(`[PieCard] Centrifuge received data on ${U}:`,c.data);F.current?.[H]?.(c.data)},p=(c)=>{if(_J(c))console.warn(`[PieCard] Centrifuge channel ${U} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(QJ(c)){if(B)console.log(`[PieCard] Centrifuge recovery gap on ${U}; requesting resync`);K.current?.({channel:U,reason:"gap"})}};return R.on("publication",Q$),R.on("subscribed",p),R.subscribe(),{subscription:R,createdHere:x,onPublication:Q$,onSubscribed:p}});return()=>{T.forEach(({subscription:H,createdHere:U,onPublication:R,onSubscribed:x})=>{if(B)console.log("[PieCard] Centrifuge unsubscribing from channel");if(H.off("publication",R),H.off("subscribed",x),U)H.unsubscribe(),q.removeSubscription(H)})}},[q,z,J.name,Y]),V$(()=>{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??{}),T={};return A.forEach((H)=>{let U=`pie${H}_${J.name}`,R=(x)=>{if(B)console.log(`[PieCard] Mitt registering event: ${U}`);F.current?.[H]?.(x)};T[U]=R,M.on(U,R)}),()=>{Object.entries(T).forEach(([H,U])=>{if(B)console.log(`[PieCard] Mitt unregistering event: ${H}`);M.off(H,U)})}},[M,J.name,W]),B)console.log("[PieCard] Rendering complete, returning children");if(G!==void 0&&!P)return OZ(FZ,{children:[MZ("input",{type:"hidden",name:J.name,value:JSON.stringify(G)}),Z]});return Z},I=UZ;import{useContext as PJ,memo as bZ}from"react";import{createContext as AZ}from"react";import{jsx as wZ,Fragment as PZ}from"react/jsx-runtime";var IZ=O("@swarm.ing/pieui:context:fallback",()=>AZ(wZ(PZ,{}))),N=IZ;import{createContext as LZ}from"react";var NZ=O("@swarm.ing/pieui:context:lazyError",()=>LZ(void 0)),g=NZ;import{Component as jZ,Suspense as EZ}from"react";import{jsx as kZ}from"react/jsx-runtime";var RZ=2,yZ=400;class e extends jZ{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<RZ){let J=yZ*(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 kZ(EZ,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as k$}from"react/jsx-runtime";function xZ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=PJ(N),X=PJ(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=bZ(xZ);import{createContext as SZ}from"react";var CZ=O("@swarm.ing/pieui:context:navigate",()=>SZ(void 0)),S=CZ;import{createContext as fZ}from"react";var hZ=O("@swarm.ing/pieui:context:uiRenderer",()=>fZ(null)),y=hZ;import{jsx as U$}from"react/jsx-runtime";var pZ=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),cZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,url:Y,sx:W}=$,z=wJ(S),Q=wJ(y)??L,G=()=>{if(!Y)return;if(pZ(Y))vZ.openURL(Y).catch(()=>{});else z?.(Y)},_=U$(Q,{setUiAjaxConfiguration:Z,uiConfig:J});return U$(I,{card:X,data:$,children:Y?U$(mZ,{onPress:G,style:W,children:_}):U$(gZ,{style:W,children:_})})},b$=cZ;import{useContext as dZ}from"react";import{View as uZ}from"react-native";import{jsx as x$}from"react/jsx-runtime";var lZ=({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$=lZ;import{useContext as sZ}from"react";import{View as oZ}from"react-native";import{jsx as C$}from"react/jsx-runtime";var iZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=sZ(y)??L;return C$(I,{card:X,data:$,children:C$(oZ,{style:Y,children:J.map((z,Q)=>C$(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},f$=iZ;import{useEffect as LJ,useState as aZ}from"react";import{jsx as rZ}from"react/jsx-runtime";var nZ=({data:$})=>{let{name:J,value:Z,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z}=$,[Q,G]=aZ(Z);return LJ(()=>{G(Z)},[Z]),LJ(()=>{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$=nZ;import{useEffect as NJ,useState as tZ}from"react";import{jsx as $0}from"react/jsx-runtime";var eZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q}=$,[G,_]=tZ(X);return NJ(()=>{_(X)},[X]),NJ(()=>{return E().storage?.setItem?.(Z,G),i(J,[G]),()=>a(J)},[Z,J,G]),$0(I,{card:"DeviceStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:B})=>{_(B)},remove:()=>{E().storage?.removeItem?.(Z),_("")}}})},v$=eZ;import{useEffect as jJ,useState as J0}from"react";import{jsx as X0}from"react/jsx-runtime";var Z0=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q}=$,[G,_]=J0(X);return jJ(()=>{_(X)},[X]),jJ(()=>{return E().sessionStorage?.setItem?.(Z,G),i(J,[G]),()=>a(J)},[Z,J,G]),X0(I,{card:"SessionStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:B})=>{_(B)},remove:()=>{E().sessionStorage?.removeItem?.(Z),_("")}}})},m$=Z0;import{useContext as Y0,useMemo as W0,useRef as z0}from"react";import{Alert as G0,Linking as Q0}from"react-native";import{jsx as H0}from"react/jsx-runtime";var _0=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),B0=({data:$})=>{let{useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y}=$,W=Y0(S),z=z0(W);z.current=W;let Q=W0(()=>{let G=(_)=>{if(!_)return;if(_0(_))Q0.openURL(_).catch(()=>{});else z.current?.(_)};return{alert:(_)=>G0.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 H0(I,{card:"IOEventsCard",data:$,useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y,methods:Q})},g$=B0;import{useEffect as q0,useState as K0}from"react";import{Text as T0}from"react-native";import{jsx as EJ}from"react/jsx-runtime";var D0=($)=>($??"").replace(/<[^>]*>/g,"").replace(/ /g," ").replace(/\s+/g," ").trim(),V0=({data:$})=>{let{html:J,useSocketioSupport:Z,useCentrifugeSupport:X,useMittSupport:Y,centrifugeChannel:W}=$,[z,Q]=K0(J);return q0(()=>{Q(J)},[J]),EJ(I,{card:"HTMLEmbedCard",data:$,methods:{update:(G)=>Q(G.value)},useCentrifugeSupport:X,useSocketioSupport:Z,useMittSupport:Y,centrifugeChannel:W,children:EJ(T0,{children:D0(z)})})},p$=V0;import{useContext as RJ,useEffect as U0}from"react";import{Linking as F0}from"react-native";import{jsx as A0,Fragment as O0}from"react/jsx-runtime";var M0=({data:$})=>{let{url:J}=$,Z=RJ(S),X=RJ(N);return U0(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(J))F0.openURL(J).catch(()=>{});else Z?.(J)},[J,Z]),A0(O0,{children:X})},c$=M0;import{useContext as I0}from"react";import{jsx as yJ}from"react/jsx-runtime";var P0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X}=$,Y=I0(y)??L;return yJ(I,{card:X,data:$,children:J.map((W,z)=>{return yJ(Y,{uiConfig:W,setUiAjaxConfiguration:Z},`children-${z}`)})})},d$=P0;import{useCallback as u$,useContext as l$,useEffect as w0,useRef as L0,useState as kJ}from"react";import{jsx as bJ}from"react/jsx-runtime";var N0=({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,K]=kJ(!1),[D,P]=kJ(null),V=L0(J),q=l$(v),M=u$((H)=>{if(H===null)K(!0);else if(K(!1),!X)V.current=H;if(!X)P(H)},[X]),A=u$((H)=>{V.current=H.content,P(H.content)},[]),T=u$((H)=>{if(H===null)K(!0);else if(K(!1),!X)for(let U of H)q?.emit(U.name,U.data)},[X,q]);if(w0(()=>{P(J),K(!1)},[J]),!D&&Z)return _;return bJ(I,{card:"AjaxGroupCard",data:$,methods:{changeContent:A},useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:Q,centrifugeChannel:G,children:bJ(B,{uiConfig:D??V.current,setUiAjaxConfiguration:Y==="events"?T:M})})},s$=N0;var j0=[{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:c$},{name:"UnionCard",component:d$},{name:"AjaxGroupCard",component:s$}];for(let $ of j0)_$($);import{useMemo as z$}from"react";import{QueryClient as h0,QueryClientProvider as v0,useQuery as m0}from"@tanstack/react-query";import{createAxiosDateTransformer as g0}from"axios-date-transformer";import{Platform as p0}from"react-native";import{useContext as y0,useEffect as k0,useRef as o$}from"react";import{useEffect as E0,useState as R0}from"react";var F$=new Map,M$=new Map;function O$($,J){let Z=`${$}::${J}`,X=$?F$.get(Z):void 0,[Y,W]=R0(X??null);return E0(()=>{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 b0=({children:$})=>{let J=y0(h),Z=B$(),X=O$(Z,"socketIO"),Y=H$(),W=q$(),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),TJ(),console.log(`SocketIO initialized: ${w.readSid()}`)};return k0(()=>{if(!J||!X)return;let B=()=>{let{state:K,signal:D}=$$(G.current,"up");if(G.current=K,D==="restored")Q.current?.("socketio");console.log("SocketIO connected")},F=(K)=>{if(console.log(`SocketIO disconnected: ${K}`),J.connect(),K==="io client disconnect")return;let{state:D,signal:P}=$$(G.current,"down");if(G.current=D,P==="lost")z.current?.("socketio",K)};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$=b0;import{useContext as x0,useEffect as S0,useRef as i$}from"react";var C0=({children:$})=>{let J=x0(f),Z=B$(),X=O$(Z,"centrifuge"),Y=H$(),W=q$(),z=i$(Y);z.current=Y;let Q=i$(W);Q.current=W;let G=i$("initial");return S0(()=>{if(!J||!X)return;let _=(K)=>{let{state:D,signal:P}=$$(G.current,"down");if(G.current=D,P==="lost")z.current?.("centrifuge",K)},B=()=>{let{state:K,signal:D}=$$(G.current,"up");if(G.current=K,D==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},F=(K)=>{console.log("Centrifuge disconnected:",K),_(K)};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$=C0;import{useContext as xJ}from"react";import{jsx as A$}from"react/jsx-runtime";function SJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=xJ(N),X=xJ(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:SJ,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$=SJ;import{jsx as f0}from"react/jsx-runtime";function I$($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),Y=J[X];if(!Y)return Z;return f0(a$,{uiConfig:Y})}import{jsx as k,Fragment as u0}from"react/jsx-runtime";var c0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y})=>{let W=o(),z=n(),Q=C(),G=z$(()=>g0({baseURL:W||""}),[W]),_=z$(()=>l(),[]),B=z$(()=>W?t(W):null,[W]),F=z$(()=>W?r(W,z):null,[W,z]),{data:K,isLoading:D,error:P}=m0({queryKey:["uiConfig",$.pathname+$.search,W],enabled:!!W,queryFn:async()=>{let q=new URLSearchParams($.search);q.set("__pieroot",p0.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}),V=I$($.pathname,Z,J);if(!W)return V??null;if(P){if(Q)console.error("[PieNativeRoot] Error fetching UI configuration:",P);return X?.(P),V}if(D||!K)return V;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:K})})})})})})})},d0=($)=>{let J=z$(()=>new h0,[]),Z=$.queryClient??J;return k(S.Provider,{value:$.onNavigate,children:k(d.Provider,{value:$.config,children:k(g.Provider,{value:$.onError,children:k(v0,{client:Z,children:k(c0,{...$})})})})})},l0=d0;import{useMemo as n$,useState as s0}from"react";import{QueryClient as o0,QueryClientProvider as i0}from"@tanstack/react-query";import{jsx as b,Fragment as r0}from"react/jsx-runtime";var a0=({location:$,fallback:J,children:Z,disableGlobalForm:X})=>{let Y=o(),W=n(),z=C(),Q=n$(()=>l(),[]),G=n$(()=>Y?t(Y):null,[Y]),_=n$(()=>Y?r(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})})})})})})})},n0=($)=>{let[J]=s0(()=>new o0),Z=$.queryClient??J;return b(S.Provider,{value:$.onNavigate,children:b(d.Provider,{value:$.config,children:b(g.Provider,{value:$.onError,children:b(i0,{client:Z,children:b(a0,{...$})})})})})},t0=n0;import{useMemo as G$}from"react";import{QueryClient as e0,QueryClientProvider as $1,useQuery as J1}from"@tanstack/react-query";import{createAxiosDateTransformer as Z1}from"axios-date-transformer";import{jsx as j,Fragment as W1}from"react/jsx-runtime";var X1=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,disableGlobalForm:W})=>{let z=o(),Q=n(),G=C(),_=G$(()=>Z1({baseURL:z||""}),[z]),B=G$(()=>l(),[]),F=G$(()=>z?t(z):null,[z]),K=G$(()=>z?r(z,Q):null,[z,Q]),{data:D,isLoading:P,error:V}=J1({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 T=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:",T.data);return T.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(V){if(G)console.error("[PieRoot] Error fetching UI configuration:",V),console.error("[PieRoot] Error details:",{message:V.message,status:V.response?.status,data:V.response?.data});return X?.(V),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:K,children:j(N.Provider,{value:J??j(W1,{}),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})})})})})})})})},Y1=($)=>{let J=G$(()=>new e0,[]),Z=$.queryClient??J;return j(S.Provider,{value:$.onNavigate,children:j(d.Provider,{value:$.config,children:j(g.Provider,{value:$.onError,children:j($1,{client:Z,children:j(X1,{...$})})})})})},z1=Y1;var G1=()=>{FJ(),w.submitGlobalForm()};var Q1=($,J)=>`${$}${N$}${J}`;export{YZ as usePieEmit,VZ as useAjaxSubmits,DZ as useAjaxSubmit,pJ as unregisterComponent,w$ as trackLazy,G1 as submitGlobalForm,i as setNativeField,QZ as resetNativeClientSources,m as registry,_$ as registerPieComponent,gJ as registerMultipleComponents,j$ as readNativeField,OJ as readAjaxKeyAsync,MJ as readAjaxKey,ZJ as preloadComponent,sJ as prefetchLazyComponents,Q1 as pieName,D$ as parseDepName,cJ as hasComponent,lJ as getRegistrySize,X$ as getRegistryEntry,E as getNativeClientConfig,JJ as getLazyComponentNames,l as getEmitter,dJ as getComponentMeta,uJ as getAllRegisteredComponents,IJ as discoverAjaxEndpoints,GZ as configureNativeClientSources,a as clearNativeField,d$ as UnionCard,y as UIRendererContext,a$ as UILoading,L as UI,h as SocketIOContext,m$ as SessionStorageCard,S$ as SequenceCard,z1 as PieRoot,l0 as PieNativeRoot,d as PieConfigContext,I as PieCard,t0 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,c$ 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 gZ=Object.create;var{getPrototypeOf:pZ,defineProperty:U$,getOwnPropertyNames:EJ,getOwnPropertyDescriptor:cZ}=Object,RJ=Object.prototype.hasOwnProperty;var dZ=($,J,Z)=>{Z=$!=null?gZ(pZ($)):{};let X=J||!$||!$.__esModule?U$(Z,"default",{value:$,enumerable:!0}):Z;for(let Y of EJ($))if(!RJ.call(X,Y))U$(X,Y,{get:()=>$[Y],enumerable:!0});return X},jJ=new WeakMap,uZ=($)=>{var J=jJ.get($),Z;if(J)return J;if(J=U$({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")EJ($).map((X)=>!RJ.call(J,X)&&U$(J,X,{get:()=>$[X],enumerable:!(Z=cZ($,X))||Z.enumerable}));return jJ.set($,J),J};var lZ=($,J)=>{for(var Z in J)U$($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(X)=>J[Z]=()=>X})};var S0={};lZ(S0,{usePieEmit:()=>aJ,useAjaxSubmits:()=>BZ,useAjaxSubmit:()=>_Z,unregisterComponent:()=>CJ,trackLazy:()=>y$,submitGlobalForm:()=>CZ,setNativeField:()=>i,resetNativeClientSources:()=>JZ,registry:()=>g,registerPieComponent:()=>F$,registerMultipleComponents:()=>SJ,readNativeField:()=>v$,readAjaxKeyAsync:()=>MJ,readAjaxKey:()=>FJ,preloadComponent:()=>TJ,prefetchLazyComponents:()=>gJ,pieName:()=>fZ,parseDepName:()=>A$,hasComponent:()=>fJ,getRegistrySize:()=>mJ,getRegistryEntry:()=>$$,getNativeClientConfig:()=>y,getLazyComponentNames:()=>KJ,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:()=>u$,PieRoot:()=>SZ,PieNativeRoot:()=>kZ,PieConfigContext:()=>l,PieCard:()=>A,PieBaseRoot:()=>bZ,PIEBREAK:()=>C$,OneOfCard:()=>s$,MittContext:()=>v,IOEventsCard:()=>r$,HiddenCard:()=>o$,HTMLEmbedCard:()=>e$,FallbackContext:()=>j,DeviceStorageCard:()=>i$,CentrifugeIOContext:()=>f,BoxCard:()=>c$,AutoRedirectCard:()=>$J,AjaxGroupCard:()=>XJ});module.exports=uZ(S0);var yJ=require("react"),t=new Map;function kJ($,J){return J.catch(()=>{if(t.get($)===J)t.delete($)}),t.set($,J),J}function y$($,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),sZ=($)=>{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=y$(J.loader,$.name),J.isLazy=!0;return J};function F$($){let J=sZ($);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},KJ=()=>Array.from(g.values()).filter(($)=>$.isLazy&&typeof $.loader==="function").map(($)=>$.name),TJ=($)=>{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=KJ(),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(()=>TJ(J[Y])).catch(()=>{}).finally(()=>X(Y+1))})};X(0)};var AJ=require("react"),G$=require("react-native");var S=require("react");var k$=require("react");var l=O("@swarm.ing/pieui:context:pieConfig",()=>k$.createContext(null)),o=()=>{let $=k$.useContext(l);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},e=()=>{let{apiServer:$}=o();return $},b$=e,J$=()=>{let{centrifugeServer:$}=o();return $};var p=()=>{let{enableRenderingLog:$}=o();return $},pJ=p;var x$=()=>{let{onLinkLost:$}=o();return $},S$=()=>{let{onLinkRestored:$}=o();return $},C$="__piedemo__";var dJ=require("react"),DJ=require("centrifuge");var cJ=O("@swarm.ing/pieui:centrifuge-cache",()=>new Map),Z$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,X=cJ.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 cJ.set(Z,W),W},oZ=O("@swarm.ing/pieui:context:centrifuge",()=>dJ.createContext(null)),f=oZ;var lJ=require("socket.io-client"),sJ=require("react");var uJ=O("@swarm.ing/pieui:socket-cache",()=>new Map),X$=($)=>{let J=uJ.get($);if(J)return J;let Z=lJ.io($,{autoConnect:!1,transports:["websocket"]});return uJ.set($,Z),Z},iZ=O("@swarm.ing/pieui:context:socket",()=>sJ.createContext(null)),h=iZ;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 nJ($){return $.wasRecovering===!0&&$.recovered===!1}function rJ($){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 aZ=($)=>{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},nZ={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:aZ,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=nZ;var f$={};function $Z($){f$={...f$,...$}}function y(){return f$}function JZ(){f$={}}var h$=new Map,i=($,J)=>{h$.set($,J)},a=($)=>{h$.delete($)},v$=($)=>{return h$.has($)?h$.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($):v$($)},submitGlobalForm(){y().submitForm?.()}},XZ=rZ;var tZ=typeof navigator<"u"&&navigator.product==="ReactNative",eZ=tZ?XZ:eJ,w=eZ;var M$=O("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function YZ(){M$.resolve?.()}function VJ(){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 UJ=require("react");var $0=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],J0=new Set(["telegram:cloud","telegram:secure"]),O$=new Map,WZ=($,J)=>{O$.set($,J)},zZ=($)=>{O$.delete($)},GZ=($="piedata_global_form")=>{let J;if(typeof $==="string"){if(typeof document>"u")return;J=document.getElementById($)}else J=$;if(!J)return;let Z=J.ownerDocument;for(let X of Array.from(J.getElementsByTagName("input")))if(X.getAttribute("data-pie-stored")!==null)X.remove();for(let[X,Y]of O$){let W=Y();if(W instanceof Promise)continue;for(let z of W){if(typeof z!=="string")continue;let Q=Z.createElement("input");Q.type="hidden",Q.name=X,Q.value=z,Q.setAttribute("data-pie-stored","1"),J.appendChild(Q)}}},A$=($)=>{if($==="sid")return{source:"sid",key:"sid"};for(let J of $0){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}=A$($);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(J0.has(Z)){if(J)console.warn(`Source ${Z} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let Y=O$.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},Z0=($,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}=A$($);if(Z==="telegram:cloud"||Z==="telegram:secure")return Z0(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=O$.get(X);if(Y)return Y()}return FJ($,J)},QZ=($,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 K=Y?.apiServer;if(!K){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 VJ();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}=A$(q);for(let I of await MJ(q,W))D.append(M,I)}let P=K+"api/ajax_content"+X;$(null);let V;for(let q=0;q<=G;q++){if(q>0){let T=_*2**(q-1);if(W)console.log(`AJAX retry ${q}/${G} after ${T}ms`);await new Promise((H)=>setTimeout(H,T))}let M=z!=null?new AbortController:null,I=M&&setTimeout(()=>M.abort(),z);try{let T=await fetch(P,{method:"POST",body:D,signal:M?.signal});if(I)clearTimeout(I);if(!T.ok&&B.includes(T.status)&&q<G){V=Error(`HTTP ${T.status}`);continue}let U=(T.headers.get("content-type")||"").includes("application/json");if(!!T.body?.getReader&&!U){let C=T.body.getReader(),R$=new TextDecoder,d="";while(!0){let{done:u,value:hZ}=await C.read();if(u)break;d+=R$.decode(hZ,{stream:!0});let NJ=d.split(`
|
|
3
|
+
`);d=NJ.pop()??"";for(let vZ of NJ){let HJ=vZ.trim();if(!HJ)continue;try{let mZ=JSON.parse(HJ);$([mZ])}catch{if(W)console.warn("Failed to parse streamed line:",HJ)}}}if(d.trim())try{let u=JSON.parse(d);$([u])}catch{if(W)console.warn("Failed to parse final streamed line:",d)}return{}}else{let C=await T.json();return $(C),C}}catch(T){if(I)clearTimeout(I);if(V=T,q<G)continue;if(W)console.error("AJAX request failed:",T);return $(null),T}}if(W)console.error("AJAX request failed after retries:",V);return $(null),V}},_Z=($,J={},Z=[],X,Y)=>{let{apiServer:W,enableRenderingLog:z}=o(),Q=JSON.stringify(J),G=JSON.stringify(Z),_=JSON.stringify(Y);return UJ.useMemo(()=>QZ($,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},BZ=($={},J,Z)=>{let{apiServer:X,enableRenderingLog:Y}=o(),W=JSON.stringify($??{}),z=JSON.stringify(Z);return UJ.useMemo(()=>{let Q={};for(let G of OJ($??{}))Q[G.key]=QZ(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"),X0=({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 K=S.useRef(_);K.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 V=S.useContext(h),q=S.useContext(f),M=S.useContext(v);if(S.useEffect(()=>{if(!V||!X||!F.current||!J.name){if(B&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!V,useSocketioSupport:X,hasMethods:!!F.current,hasDataName:!!J?.name});return}let T=Object.keys(F.current??{}).map((H)=>{let U=`pie${H}_${J.name}`;if(B)console.log(`[PieCard] Socket.IO registering event: ${U}`);let x=(C)=>{F.current?.[H]?.(C)};return V.on(U,x),[U,x]});return()=>{T.forEach(([H,U])=>{if(B)console.log(`[PieCard] Socket.IO unregistering event: ${H}`);V.off(H,U)})}},[V,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 T=Object.keys(F.current??{}).map((H)=>{let U=`pie${H}_${J.name}_${z}`;if(B)console.log(`[PieCard] Centrifuge subscribing to channel: ${U}`);let{subscription:x,createdHere:C}=tJ(q,U,{recoverable:!0,positioned:!0}),R$=(u)=>{if(B)console.log(`[PieCard] Centrifuge received data on ${U}:`,u.data);F.current?.[H]?.(u.data)},d=(u)=>{if(rJ(u))console.warn(`[PieCard] Centrifuge channel ${U} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(nJ(u)){if(B)console.log(`[PieCard] Centrifuge recovery gap on ${U}; requesting resync`);K.current?.({channel:U,reason:"gap"})}};return x.on("publication",R$),x.on("subscribed",d),x.subscribe(),{subscription:x,createdHere:C,onPublication:R$,onSubscribed:d}});return()=>{T.forEach(({subscription:H,createdHere:U,onPublication:x,onSubscribed:C})=>{if(B)console.log("[PieCard] Centrifuge unsubscribing from channel");if(H.off("publication",x),H.off("subscribed",C),U)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??{}),T={};return I.forEach((H)=>{let U=`pie${H}_${J.name}`,x=(C)=>{if(B)console.log(`[PieCard] Mitt registering event: ${U}`);F.current?.[H]?.(C)};T[U]=x,M.on(U,x)}),()=>{Object.entries(T).forEach(([H,U])=>{if(B)console.log(`[PieCard] Mitt unregistering event: ${H}`);M.off(H,U)})}},[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=X0;var I$=require("react");var HZ=require("react");var m$=require("react/jsx-runtime"),Y0=O("@swarm.ing/pieui:context:fallback",()=>HZ.createContext(m$.jsx(m$.Fragment,{}))),j=Y0;var qZ=require("react");var W0=O("@swarm.ing/pieui:context:lazyError",()=>qZ.createContext(void 0)),c=W0;var g$=require("react"),KZ=require("react/jsx-runtime"),z0=2,G0=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<z0){let J=G0*(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 KZ.jsx(g$.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var p$=require("react/jsx-runtime");function Q0({uiConfig:$,setUiAjaxConfiguration:J}){let Z=I$.useContext(j),X=I$.useContext(c),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=I$.memo(Q0);var TZ=require("react");var _0=O("@swarm.ing/pieui:context:navigate",()=>TZ.createContext(void 0)),m=_0;var DZ=require("react");var B0=O("@swarm.ing/pieui:context:uiRenderer",()=>DZ.createContext(null)),b=B0;var P$=require("react/jsx-runtime"),H0=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),q0=({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(H0(Y))G$.Linking.openURL(Y).catch(()=>{});else z?.(Y)},_=P$.jsx(Q,{setUiAjaxConfiguration:Z,uiConfig:J});return P$.jsx(A,{card:X,data:$,children:Y?P$.jsx(G$.Pressable,{onPress:G,style:W,children:_}):P$.jsx(G$.View,{style:W,children:_})})},c$=q0;var VZ=require("react"),UZ=require("react-native");var d$=require("react/jsx-runtime"),K0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=VZ.useContext(b)??N;return d$.jsx(A,{card:X,data:$,children:d$.jsx(UZ.View,{style:Y,children:J.map((z,Q)=>d$.jsx(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},u$=K0;var FZ=require("react"),MZ=require("react-native");var l$=require("react/jsx-runtime"),T0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=FZ.useContext(b)??N;return l$.jsx(A,{card:X,data:$,children:l$.jsx(MZ.View,{style:Y,children:J.map((z,Q)=>l$.jsx(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},s$=T0;var w$=require("react");var OZ=require("react/jsx-runtime"),D0=({data:$})=>{let{name:J,value:Z,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z}=$,[Q,G]=w$.useState(Z);return w$.useEffect(()=>{G(Z)},[Z]),w$.useEffect(()=>{return i(J,[Q]),()=>a(J)},[J,Q]),OZ.jsx(A,{card:"HiddenCard",data:$,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z,methods:{update:({value:_})=>{G(_)}}})},o$=D0;var L$=require("react");var AZ=require("react/jsx-runtime"),V0=({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().storage?.setItem?.(Z,G),i(J,[G]),()=>a(J)},[Z,J,G]),AZ.jsx(A,{card:"DeviceStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:B})=>{_(B)},remove:()=>{y().storage?.removeItem?.(Z),_("")}}})},i$=V0;var N$=require("react");var IZ=require("react/jsx-runtime"),U0=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q}=$,[G,_]=N$.useState(X);return N$.useEffect(()=>{_(X)},[X]),N$.useEffect(()=>{return y().sessionStorage?.setItem?.(Z,G),i(J,[G]),()=>a(J)},[Z,J,G]),IZ.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"),n$=require("react-native");var PZ=require("react/jsx-runtime"),F0=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),M0=({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(F0(_))n$.Linking.openURL(_).catch(()=>{});else z.current?.(_)};return{alert:(_)=>n$.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 PZ.jsx(A,{card:"IOEventsCard",data:$,useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y,methods:Q})},r$=M0;var t$=require("react"),wZ=require("react-native");var IJ=require("react/jsx-runtime"),O0=($)=>($??"").replace(/<[^>]*>/g,"").replace(/ /g," ").replace(/\s+/g," ").trim(),A0=({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(wZ.Text,{children:O0(z)})})},e$=A0;var j$=require("react"),LZ=require("react-native");var JJ=require("react/jsx-runtime"),I0=({data:$})=>{let{url:J}=$,Z=j$.useContext(m),X=j$.useContext(j);return j$.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(J))LZ.Linking.openURL(J).catch(()=>{});else Z?.(J)},[J,Z]),JJ.jsx(JJ.Fragment,{children:X})},$J=I0;var NZ=require("react");var PJ=require("react/jsx-runtime"),P0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X}=$,Y=NZ.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=P0;var k=require("react");var wJ=require("react/jsx-runtime"),w0=({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,K]=k.useState(!1),[D,P]=k.useState(null),V=k.useRef(J),q=k.useContext(v),M=k.useCallback((H)=>{if(H===null)K(!0);else if(K(!1),!X)V.current=H;if(!X)P(H)},[X]),I=k.useCallback((H)=>{V.current=H.content,P(H.content)},[]),T=k.useCallback((H)=>{if(H===null)K(!0);else if(K(!1),!X)for(let U of H)q?.emit(U.name,U.data)},[X,q]);if(k.useEffect(()=>{P(J),K(!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??V.current,setUiAjaxConfiguration:Y==="events"?T:M})})},XJ=w0;var L0=[{name:"BoxCard",component:c$},{name:"SequenceCard",component:u$},{name:"OneOfCard",component:s$},{name:"HiddenCard",component:o$},{name:"DeviceStorageCard",component:i$},{name:"SessionStorageCard",component:a$},{name:"IOEventsCard",component:r$},{name:"HTMLEmbedCard",component:e$},{name:"AutoRedirectCard",component:$J},{name:"UnionCard",component:ZJ},{name:"AjaxGroupCard",component:XJ}];for(let $ of L0)F$($);var q$=require("react"),K$=require("@tanstack/react-query"),RZ=require("axios-date-transformer"),yZ=require("react-native");var n=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 N0=({children:$})=>{let J=n.useContext(h),Z=b$(),X=GJ(Z,"socketIO"),Y=x$(),W=S$(),z=n.useRef(Y);z.current=Y;let Q=n.useRef(W);Q.current=W;let G=n.useRef("initial"),_=(B)=>{if(w.isClient())w.setSid(B.sid),YZ(),console.log(`SocketIO initialized: ${w.readSid()}`)};return n.useEffect(()=>{if(!J||!X)return;let B=()=>{let{state:K,signal:D}=_$(G.current,"up");if(G.current=K,D==="restored")Q.current?.("socketio");console.log("SocketIO connected")},F=(K)=>{if(console.log(`SocketIO disconnected: ${K}`),J.connect(),K==="io client disconnect")return;let{state:D,signal:P}=_$(G.current,"down");if(G.current=D,P==="lost")z.current?.("socketio",K)};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$=N0;var r=require("react");var j0=({children:$})=>{let J=r.useContext(f),Z=b$(),X=GJ(Z,"centrifuge"),Y=x$(),W=S$(),z=r.useRef(Y);z.current=Y;let Q=r.useRef(W);Q.current=W;let G=r.useRef("initial");return r.useEffect(()=>{if(!J||!X)return;let _=(K)=>{let{state:D,signal:P}=_$(G.current,"down");if(G.current=D,P==="lost")z.current?.("centrifuge",K)},B=()=>{let{state:K,signal:D}=_$(G.current,"up");if(G.current=K,D==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},F=(K)=>{console.log("Centrifuge disconnected:",K),_(K)};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$=j0;var LJ=require("react");var E$=require("react/jsx-runtime");function jZ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=LJ.useContext(j),X=LJ.useContext(c),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 E$.jsx(G,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",W.name);let z=W.component,Q=E$.jsx(b.Provider,{value:jZ,children:E$.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(W.isLazy)return E$.jsx(z$,{name:W.name,fallback:Z,onError:X,children:Q});return Q}var QJ=jZ;var EZ=require("react/jsx-runtime");function _J($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),Y=J[X];if(!Y)return Z;return EZ.jsx(QJ,{uiConfig:Y})}var E=require("react/jsx-runtime"),E0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y})=>{let W=e(),z=J$(),Q=p(),G=q$.useMemo(()=>RZ.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:K,isLoading:D,error:P}=K$.useQuery({queryKey:["uiConfig",$.pathname+$.search,W],enabled:!!W,queryFn:async()=>{let q=new URLSearchParams($.search);q.set("__pieroot",yZ.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}),V=_J($.pathname,Z,J);if(!W)return V??null;if(P){if(Q)console.error("[PieNativeRoot] Error fetching UI configuration:",P);return X?.(P),V}if(D||!K)return V;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:K})})})})})})})},R0=($)=>{let J=q$.useMemo(()=>new K$.QueryClient,[]),Z=$.queryClient??J;return E.jsx(m.Provider,{value:$.onNavigate,children:E.jsx(l.Provider,{value:$.config,children:E.jsx(c.Provider,{value:$.onError,children:E.jsx(K$.QueryClientProvider,{client:Z,children:E.jsx(E0,{...$})})})})})},kZ=R0;var T$=require("react"),BJ=require("@tanstack/react-query");var R=require("react/jsx-runtime"),y0=({location:$,fallback:J,children:Z,disableGlobalForm:X})=>{let Y=e(),W=J$(),z=p(),Q=T$.useMemo(()=>s(),[]),G=T$.useMemo(()=>Y?X$(Y):null,[Y]),_=T$.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})})})})})})})},k0=($)=>{let[J]=T$.useState(()=>new BJ.QueryClient),Z=$.queryClient??J;return R.jsx(m.Provider,{value:$.onNavigate,children:R.jsx(l.Provider,{value:$.config,children:R.jsx(c.Provider,{value:$.onError,children:R.jsx(BJ.QueryClientProvider,{client:Z,children:R.jsx(y0,{...$})})})})})},bZ=k0;var D$=require("react"),V$=require("@tanstack/react-query");var xZ=require("axios-date-transformer");var L=require("react/jsx-runtime"),b0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,disableGlobalForm:W})=>{let z=e(),Q=J$(),G=p(),_=D$.useMemo(()=>xZ.createAxiosDateTransformer({baseURL:z||""}),[z]),B=D$.useMemo(()=>s(),[]),F=D$.useMemo(()=>z?X$(z):null,[z]),K=D$.useMemo(()=>z?Z$(z,Q):null,[z,Q]),{data:D,isLoading:P,error:V}=V$.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 T=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:",T.data);return T.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(V){if(G)console.error("[PieRoot] Error fetching UI configuration:",V),console.error("[PieRoot] Error details:",{message:V.message,status:V.response?.status,data:V.response?.data});return X?.(V),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:K,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})})})})})})})})},x0=($)=>{let J=D$.useMemo(()=>new V$.QueryClient,[]),Z=$.queryClient??J;return L.jsx(m.Provider,{value:$.onNavigate,children:L.jsx(l.Provider,{value:$.config,children:L.jsx(c.Provider,{value:$.onError,children:L.jsx(V$.QueryClientProvider,{client:Z,children:L.jsx(b0,{...$})})})})})},SZ=x0;var CZ=()=>{GZ(),w.submitGlobalForm()};var fZ=($,J)=>`${$}${C$}${J}`;
|