@swarm.ing/pieui 3.0.0 → 3.0.2

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