@swarm.ing/pieui 3.0.8 → 3.0.10

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.
@@ -1,3 +1,3 @@
1
1
  "use client";
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};
2
+ import{lazy as mJ}from"react";var s=new Map;function e$($,J){return J.catch(()=>{if(s.get($)===J)s.delete($)}),s.set($,J),J}function L$($,J){return mJ(()=>{if(s.has(J))return s.get(J);return e$(J,$().then((Z)=>Z))})}var $J=async($,J)=>{if(!J)return;if(s.has($))return s.get($);return e$($,J().then((Z)=>Z))};var N$=globalThis,U=($,J)=>{let Z=Symbol.for($);if(!(Z in N$))N$[Z]=J();return N$[Z]};var m=U("@swarm.ing/pieui:component-registry",()=>new Map),gJ=($)=>{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=L$(J.loader,$.name),J.isLazy=!0;return J};function _$($){let J=gJ($);return m.set(J.name,J),J.component}var pJ=($)=>{$.forEach((J)=>_$(J))},cJ=($)=>{m.delete($)},dJ=($)=>{return m.has($)},uJ=($)=>{return m.get($)?.metadata},X$=($)=>{return m.get($)},lJ=()=>{return Array.from(m.keys())},sJ=()=>{return m.size},ZJ=()=>Array.from(m.values()).filter(($)=>$.isLazy&&typeof $.loader==="function").map(($)=>$.name),XJ=($)=>{let J=m.get($);if(!J?.isLazy||typeof J.loader!=="function")return;return $J($,J.loader)},JJ=!1,oJ=()=>{if(JJ||typeof window>"u")return;JJ=!0;let $=navigator.connection;if($?.saveData)return;if($?.effectiveType&&["slow-2g","2g"].includes($.effectiveType))return;let J=ZJ(),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(()=>XJ(J[Y])).catch(()=>{}).finally(()=>X(Y+1))})};X(0)};import{useContext as LJ}from"react";import{Linking as cZ,Pressable as dZ,View as uZ}from"react-native";import{useContext as y$,useEffect as V$,useRef as k$}from"react";import{createContext as iJ,useContext as aJ}from"react";var c=U("@swarm.ing/pieui:context:pieConfig",()=>iJ(null)),d=()=>{let $=aJ(c);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},o=()=>{let{apiServer:$}=d();return $},B$=o,r=()=>{let{centrifugeServer:$}=d();return $};var C=()=>{let{enableRenderingLog:$}=d();return $},YJ=C;var H$=()=>{let{onLinkLost:$}=d();return $},q$=()=>{let{onLinkRestored:$}=d();return $},j$="__piedemo__";import{createContext as rJ}from"react";import{Centrifuge as WJ}from"centrifuge";var zJ=U("@swarm.ing/pieui:centrifuge-cache",()=>new Map),n=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,X=zJ.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 WJ.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let W=new WJ(J,{getToken:Y});return zJ.set(Z,W),W},nJ=U("@swarm.ing/pieui:context:centrifuge",()=>rJ(null)),f=nJ;import{io as tJ}from"socket.io-client";import{createContext as eJ}from"react";var GJ=U("@swarm.ing/pieui:socket-cache",()=>new Map),t=($)=>{let J=GJ.get($);if(J)return J;let Z=tJ($,{autoConnect:!1,transports:["websocket"]});return GJ.set($,Z),Z},$Z=U("@swarm.ing/pieui:context:socket",()=>eJ(null)),h=$Z;import JZ from"mitt";import{createContext as ZZ,useCallback as XZ,useContext as YZ}from"react";function u(){return U("@swarm.ing/pieui:mitt-emitter",()=>JZ())}var QJ=U("@swarm.ing/pieui:context:mitt",()=>ZZ(null));function WZ($){let J=YZ(QJ);return XZ((Z,X)=>{(J??u()).emit(`pie${Z}_${$}`,X)},[$,J])}var v=QJ;function _J($){return $.wasRecovering===!0&&$.recovered===!1}function BJ($){return $.recoverable===!1}function HJ($,J,Z){let X=$.getSubscription(J);if(X)return{subscription:X,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}var zZ=($)=>{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},GZ={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:zZ,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()}},qJ=GZ;var K$={};function QZ($){K$={...K$,...$}}function R(){return K$}function _Z(){K$={}}var T$=new Map,i=($,J)=>{T$.set($,J)},a=($)=>{T$.delete($)},E$=($)=>{return T$.has($)?T$.get($):null};var KJ,BZ={isClient(){return!0},readSid(){return KJ},setSid($){KJ=$},readWebStorage($,J){let Z=R(),X=$==="local"?Z.storage:Z.sessionStorage;return X?X.getItem(J):null},async readWebStorageAsync($,J){let Z=R(),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=R();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=R();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=R();return J.getInput?J.getInput($):E$($)},submitGlobalForm(){R().submitForm?.()}},TJ=BZ;var HZ=typeof navigator<"u"&&navigator.product==="ReactNative",qZ=HZ?TJ:qJ,w=qZ;var Y$=U("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function DJ(){Y$.resolve?.()}function R$(){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 VJ}from"react";var KZ=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],TZ=new Set(["telegram:cloud","telegram:secure"]),W$=new Map,UJ=($,J)=>{W$.set($,J)},FJ=($)=>{W$.delete($)},MJ=($="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 KZ){let Z=J+":";if($.startsWith(Z))return{source:J,key:$.slice(Z.length)}}return{source:"dom",key:$}},AJ=($,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(TZ.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},DZ=($,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 DZ(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 AJ($,J)},VZ=($)=>{if(!$)return[];if(Array.isArray($))return $.map(([J,Z])=>[String(J),String(Z)]);if(typeof $.forEach==="function"){let J=[];return $.forEach((Z,X)=>J.push([X,Z])),J}return Object.entries($)},UZ=($)=>{let J=$.filter(Boolean);if(J.length===0)return;if(J.length===1)return J[0];let Z=AbortSignal.any;if(typeof Z==="function")return Z.call(AbortSignal,J);let X=new AbortController;for(let Y of J){if(Y.aborted){X.abort(Y.reason);break}Y.addEventListener("abort",()=>X.abort(Y.reason),{once:!0})}return X.signal},FZ=($,J,Z)=>{let X={method:"POST",credentials:"include"},Y={},W=[J];for(let Q of Z){if(!Q)continue;let{headers:G,signal:_,body:H,...T}=Q;Object.assign(X,T);for(let[q,D]of VZ(G))Y[q.toLowerCase()]=D;W.push(_)}if(X.body=$,Object.keys(Y).length>0)X.headers=Y;let z=UZ(W);if(z)X.signal=z;return X},IJ=($,J={},Z=[],X,Y)=>{let W=Y?.renderingLogEnabled??!1,z=Y?.timeout,Q=Y?.retryPolicy,G=Q?.maxRetries??0,_=Q?.baseDelay??1000,H=Q?.retryOn??[502,503,504];if(W)console.log("Registering AJAX: ",X,J,Z);return async(T={},q)=>{if(!w.isClient()){if(W)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let D=Y?.apiServer;if(!D){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 R$();let F=new FormData;for(let[K,O]of Object.entries({...J,...T}))F.append(K,O);for(let K of Z){let{key:O}=D$(K);for(let P of await OJ(K,W))F.append(O,P)}let M=D+"api/ajax_content"+X;$(null);let A;for(let K=0;K<=G;K++){if(K>0){let B=_*2**(K-1);if(W)console.log(`AJAX retry ${K}/${G} after ${B}ms`);await new Promise((V)=>setTimeout(V,B))}let O=z!=null?new AbortController:null,P=O&&setTimeout(()=>O.abort(),z);try{let B=await fetch(M,FZ(F,O?.signal,[Y?.fetchOptions,q]));if(P)clearTimeout(P);if(!B.ok&&H.includes(B.status)&&K<G){A=Error(`HTTP ${B.status}`);continue}let E=(B.headers.get("content-type")||"").includes("application/json");if(!!B.body?.getReader&&!E){let l=B.body.getReader(),Q$=new TextDecoder,x="";while(!0){let{done:P$,value:fJ}=await l.read();if(P$)break;x+=Q$.decode(fJ,{stream:!0});let t$=x.split(`
3
+ `);x=t$.pop()??"";for(let hJ of t$){let w$=hJ.trim();if(!w$)continue;try{let vJ=JSON.parse(w$);$([vJ])}catch{if(W)console.warn("Failed to parse streamed line:",w$)}}}if(x.trim())try{let P$=JSON.parse(x);$([P$])}catch{if(W)console.warn("Failed to parse final streamed line:",x)}return{}}else{let l=await B.json();return $(l),l}}catch(B){if(P)clearTimeout(P);if(A=B,K<G)continue;if(W)console.error("AJAX request failed:",B);return $(null),B}}if(W)console.error("AJAX request failed after retries:",A);return $(null),A}},MZ=($,J={},Z=[],X,Y)=>{let{apiServer:W,enableRenderingLog:z}=d(),Q=JSON.stringify(J),G=JSON.stringify(Z),_=JSON.stringify(Y);return VJ(()=>IJ($,J,Z,X,{apiServer:W,renderingLogEnabled:z,timeout:Y?.timeout,retryPolicy:Y?.retryPolicy,fetchOptions:Y?.fetchOptions}),[$,Q,G,X,W,z,_])},PJ=($={})=>{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},AZ=($={},J,Z)=>{let{apiServer:X,enableRenderingLog:Y}=d(),W=JSON.stringify($??{}),z=JSON.stringify(Z);return VJ(()=>{let Q={};for(let G of PJ($??{}))Q[G.key]=IJ(J,G.kwargs,G.depsNames,G.pathname,{apiServer:X,renderingLogEnabled:Y,timeout:Z?.timeout,retryPolicy:Z?.retryPolicy,fetchOptions:Z?.fetchOptions});return Q},[W,J,X,Y,z])};import{jsx as PZ,jsxs as wZ,Fragment as IZ}from"react/jsx-runtime";var OZ=({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 H=YJ(),T=k$(Q);T.current=Q;let q=k$(_);q.current=_;let D=k$(G);D.current=G;let F=typeof G==="function";if(V$(()=>{if(!F)return;let O=J.name;return UJ(O,()=>[JSON.stringify(D.current())]),()=>FJ(O)},[F,J.name]),H)console.log("[PieCard] Rendering card:",$),console.log("[PieCard] Card data:",J),console.log("[PieCard] Component name:",J?.name),console.log("[PieCard] Real-time support:",{socketio:X,centrifuge:Y,mitt:W,centrifugeChannel:z}),console.log("[PieCard] Methods:",Q?Object.keys(Q):"none"),console.log("[PieCard] Has children:",!!Z);let M=y$(h),A=y$(f),K=y$(v);if(V$(()=>{if(!M||!X||!T.current||!J.name){if(H&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!M,useSocketioSupport:X,hasMethods:!!T.current,hasDataName:!!J?.name});return}let P=Object.keys(T.current??{}).map((B)=>{let V=`pie${B}_${J.name}`;if(H)console.log(`[PieCard] Socket.IO registering event: ${V}`);let E=(p)=>{T.current?.[B]?.(p)};return M.on(V,E),[V,E]});return()=>{P.forEach(([B,V])=>{if(H)console.log(`[PieCard] Socket.IO unregistering event: ${B}`);M.off(B,V)})}},[M,J.name,X]),V$(()=>{if(!A||!Y||!z||!J.name){if(H&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!A,useCentrifugeSupport:Y,hasCentrifugeChannel:!!z,hasMethods:!!T.current,hasDataName:!!J?.name});return}let P=Object.keys(T.current??{}).map((B)=>{let V=`pie${B}_${J.name}_${z}`;if(H)console.log(`[PieCard] Centrifuge subscribing to channel: ${V}`);let{subscription:E,createdHere:p}=HJ(A,V,{recoverable:!0,positioned:!0}),l=(x)=>{if(H)console.log(`[PieCard] Centrifuge received data on ${V}:`,x.data);T.current?.[B]?.(x.data)},Q$=(x)=>{if(BJ(x))console.warn(`[PieCard] Centrifuge channel ${V} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(_J(x)){if(H)console.log(`[PieCard] Centrifuge recovery gap on ${V}; requesting resync`);q.current?.({channel:V,reason:"gap"})}};return E.on("publication",l),E.on("subscribed",Q$),E.subscribe(),{subscription:E,createdHere:p,onPublication:l,onSubscribed:Q$}});return()=>{P.forEach(({subscription:B,createdHere:V,onPublication:E,onSubscribed:p})=>{if(H)console.log("[PieCard] Centrifuge unsubscribing from channel");if(B.off("publication",E),B.off("subscribed",p),V)B.unsubscribe(),A.removeSubscription(B)})}},[A,z,J.name,Y]),V$(()=>{if(!K||!W||!J.name){if(H&&W)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!K,useMittSupport:W,hasMethods:!!T.current,hasDataName:!!J?.name});return}let O=Object.keys(T.current??{}),P={};return O.forEach((B)=>{let V=`pie${B}_${J.name}`,E=(p)=>{if(H)console.log(`[PieCard] Mitt registering event: ${V}`);T.current?.[B]?.(p)};P[V]=E,K.on(V,E)}),()=>{Object.entries(P).forEach(([B,V])=>{if(H)console.log(`[PieCard] Mitt unregistering event: ${B}`);K.off(B,V)})}},[K,J.name,W]),H)console.log("[PieCard] Rendering complete, returning children");if(G!==void 0&&!F)return wZ(IZ,{children:[PZ("input",{type:"hidden",name:J.name,value:JSON.stringify(G)}),Z]});return Z},I=OZ;import{useContext as wJ,memo as fZ}from"react";import{createContext as LZ}from"react";import{jsx as EZ,Fragment as jZ}from"react/jsx-runtime";var NZ=U("@swarm.ing/pieui:context:fallback",()=>LZ(EZ(jZ,{}))),N=NZ;import{createContext as RZ}from"react";var yZ=U("@swarm.ing/pieui:context:lazyError",()=>RZ(void 0)),g=yZ;import{Component as kZ,Suspense as bZ}from"react";import{jsx as CZ}from"react/jsx-runtime";var xZ=2,SZ=400;class e extends kZ{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<xZ){let J=SZ*(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 CZ(bZ,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as b$}from"react/jsx-runtime";function hZ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=wJ(N),X=wJ(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=b$(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(W.isLazy){if(Y)console.log("[UI] Rendering lazy component with Suspense:",W.name);return b$(e,{name:W.name,fallback:W.fallback?b$(W.fallback,{}):Z,onError:X,children:Q})}if(Y)console.log("[UI] Rendering component directly:",W.name);return Q}var L=fZ(hZ);import{createContext as vZ}from"react";var mZ=U("@swarm.ing/pieui:context:navigate",()=>vZ(void 0)),S=mZ;import{createContext as gZ}from"react";var pZ=U("@swarm.ing/pieui:context:uiRenderer",()=>gZ(null)),y=pZ;import{jsx as U$}from"react/jsx-runtime";var lZ=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),sZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,url:Y,sx:W}=$,z=LJ(S),Q=LJ(y)??L,G=()=>{if(!Y)return;if(lZ(Y))cZ.openURL(Y).catch(()=>{});else z?.(Y)},_=U$(Q,{setUiAjaxConfiguration:Z,uiConfig:J});return U$(I,{card:X,data:$,children:Y?U$(dZ,{onPress:G,style:W,children:_}):U$(uZ,{style:W,children:_})})},x$=sZ;import{useContext as oZ}from"react";import{View as iZ}from"react-native";import{jsx as S$}from"react/jsx-runtime";var aZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=oZ(y)??L;return S$(I,{card:X,data:$,children:S$(iZ,{style:Y,children:J.map((z,Q)=>S$(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},C$=aZ;import{useContext as rZ}from"react";import{View as nZ}from"react-native";import{jsx as f$}from"react/jsx-runtime";var tZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=rZ(y)??L;return f$(I,{card:X,data:$,children:f$(nZ,{style:Y,children:J.map((z,Q)=>f$(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},h$=tZ;import{useEffect as NJ,useState as eZ}from"react";import{jsx as J0}from"react/jsx-runtime";var $0=({data:$})=>{let{name:J,value:Z,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z}=$,[Q,G]=eZ(Z);return NJ(()=>{G(Z)},[Z]),NJ(()=>{return i(J,[Q]),()=>a(J)},[J,Q]),J0(I,{card:"HiddenCard",data:$,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z,methods:{update:({value:_})=>{G(_)}}})},v$=$0;import{useEffect as jJ,useState as Z0}from"react";import{jsx as Y0}from"react/jsx-runtime";var X0=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q}=$,[G,_]=Z0(X);return jJ(()=>{_(X)},[X]),jJ(()=>{return R().storage?.setItem?.(Z,G),i(J,[G]),()=>a(J)},[Z,J,G]),Y0(I,{card:"DeviceStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{_(H)},remove:()=>{R().storage?.removeItem?.(Z),_("")}}})},m$=X0;import{useEffect as EJ,useState as W0}from"react";import{jsx as G0}from"react/jsx-runtime";var z0=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q}=$,[G,_]=W0(X);return EJ(()=>{_(X)},[X]),EJ(()=>{return R().sessionStorage?.setItem?.(Z,G),i(J,[G]),()=>a(J)},[Z,J,G]),G0(I,{card:"SessionStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{_(H)},remove:()=>{R().sessionStorage?.removeItem?.(Z),_("")}}})},g$=z0;import{useContext as Q0,useMemo as _0,useRef as B0}from"react";import{Alert as H0,Linking as q0}from"react-native";import{jsx as D0}from"react/jsx-runtime";var K0=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),T0=({data:$})=>{let{useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y}=$,W=Q0(S),z=B0(W);z.current=W;let Q=_0(()=>{let G=(_)=>{if(!_)return;if(K0(_))q0.openURL(_).catch(()=>{});else z.current?.(_)};return{alert:(_)=>H0.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 D0(I,{card:"IOEventsCard",data:$,useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y,methods:Q})},p$=T0;import{useEffect as V0,useState as U0}from"react";import{Text as F0}from"react-native";import{jsx as RJ}from"react/jsx-runtime";var M0=($)=>($??"").replace(/<[^>]*>/g,"").replace(/&nbsp;/g," ").replace(/\s+/g," ").trim(),A0=({data:$})=>{let{html:J,useSocketioSupport:Z,useCentrifugeSupport:X,useMittSupport:Y,centrifugeChannel:W}=$,[z,Q]=U0(J);return V0(()=>{Q(J)},[J]),RJ(I,{card:"HTMLEmbedCard",data:$,methods:{update:(G)=>Q(G.value)},useCentrifugeSupport:X,useSocketioSupport:Z,useMittSupport:Y,centrifugeChannel:W,children:RJ(F0,{children:M0(z)})})},c$=A0;import{useContext as yJ,useEffect as O0}from"react";import{Linking as I0}from"react-native";import{jsx as L0,Fragment as w0}from"react/jsx-runtime";var P0=({data:$})=>{let{url:J}=$,Z=yJ(S),X=yJ(N);return O0(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(J))I0.openURL(J).catch(()=>{});else Z?.(J)},[J,Z]),L0(w0,{children:X})},d$=P0;import{useContext as N0}from"react";import{jsx as kJ}from"react/jsx-runtime";var j0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X}=$,Y=N0(y)??L;return kJ(I,{card:X,data:$,children:J.map((W,z)=>{return kJ(Y,{uiConfig:W,setUiAjaxConfiguration:Z},`children-${z}`)})})},u$=j0;import{useCallback as l$,useContext as s$,useEffect as E0,useRef as R0,useState as bJ}from"react";import{jsx as xJ}from"react/jsx-runtime";var y0=({data:$,content:J})=>{let{useLoader:Z,noReturn:X,returnType:Y,useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:Q,centrifugeChannel:G}=$,_=s$(N),H=s$(y)??L,[T,q]=bJ(!1),[D,F]=bJ(null),M=R0(J),A=s$(v),K=l$((B)=>{if(B===null)q(!0);else if(q(!1),!X)M.current=B;if(!X)F(B)},[X]),O=l$((B)=>{M.current=B.content,F(B.content)},[]),P=l$((B)=>{if(B===null)q(!0);else if(q(!1),!X)for(let V of B)A?.emit(V.name,V.data)},[X,A]);if(E0(()=>{F(J),q(!1)},[J]),!D&&Z)return _;return xJ(I,{card:"AjaxGroupCard",data:$,methods:{changeContent:O},useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:Q,centrifugeChannel:G,children:xJ(H,{uiConfig:D??M.current,setUiAjaxConfiguration:Y==="events"?P:K})})},o$=y0;var k0=[{name:"BoxCard",component:x$},{name:"SequenceCard",component:C$},{name:"OneOfCard",component:h$},{name:"HiddenCard",component:v$},{name:"DeviceStorageCard",component:m$},{name:"SessionStorageCard",component:g$},{name:"IOEventsCard",component:p$},{name:"HTMLEmbedCard",component:c$},{name:"AutoRedirectCard",component:d$},{name:"UnionCard",component:u$},{name:"AjaxGroupCard",component:o$}];for(let $ of k0)_$($);import{useMemo as z$}from"react";import{QueryClient as p0,QueryClientProvider as c0,useQuery as d0}from"@tanstack/react-query";import{createAxiosDateTransformer as u0}from"axios-date-transformer";import{Platform as l0}from"react-native";import{useContext as S0,useEffect as C0,useRef as i$}from"react";import{useEffect as b0,useState as x0}from"react";var F$=new Map,M$=new Map;function A$($,J){let Z=`${$}::${J}`,X=$?F$.get(Z):void 0,[Y,W]=x0(X??null);return b0(()=>{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 f0=({children:$})=>{let J=S0(h),Z=B$(),X=A$(Z,"socketIO"),Y=H$(),W=q$(),z=i$(Y);z.current=Y;let Q=i$(W);Q.current=W;let G=i$("initial"),_=(H)=>{if(w.isClient())w.setSid(H.sid),DJ(),console.log(`SocketIO initialized: ${w.readSid()}`)};return C0(()=>{if(!J||!X)return;let H=()=>{let{state:q,signal:D}=$$(G.current,"up");if(G.current=q,D==="restored")Q.current?.("socketio");console.log("SocketIO connected")},T=(q)=>{if(console.log(`SocketIO disconnected: ${q}`),J.connect(),q==="io client disconnect")return;let{state:D,signal:F}=$$(G.current,"down");if(G.current=D,F==="lost")z.current?.("socketio",q)};return J.on("pieinit",_),J.on("connect",H),J.on("disconnect",T),J.connect(),()=>{J.off("pieinit",_),J.off("connect",H),J.off("disconnect",T),J.disconnect()}},[J,X]),$},J$=f0;import{useContext as h0,useEffect as v0,useRef as a$}from"react";var m0=({children:$})=>{let J=h0(f),Z=B$(),X=A$(Z,"centrifuge"),Y=H$(),W=q$(),z=a$(Y);z.current=Y;let Q=a$(W);Q.current=W;let G=a$("initial");return v0(()=>{if(!J||!X)return;let _=(q)=>{let{state:D,signal:F}=$$(G.current,"down");if(G.current=D,F==="lost")z.current?.("centrifuge",q)},H=()=>{let{state:q,signal:D}=$$(G.current,"up");if(G.current=q,D==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},T=(q)=>{console.log("Centrifuge disconnected:",q),_(q)};return J.on("connecting",_),J.on("connected",H),J.on("disconnected",T),J.connect(),()=>{J.off("connecting",_),J.off("connected",H),J.off("disconnected",T),J.disconnect()}},[J,X]),$},Z$=m0;import{useContext as SJ}from"react";import{jsx as O$}from"react/jsx-runtime";function CJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=SJ(N),X=SJ(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 O$(G,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",W.name);let z=W.component,Q=O$(y.Provider,{value:CJ,children:O$(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(W.isLazy)return O$(e,{name:W.name,fallback:Z,onError:X,children:Q});return Q}var r$=CJ;import{jsx as g0}from"react/jsx-runtime";function I$($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),Y=J[X];if(!Y)return Z;return g0(r$,{uiConfig:Y})}import{jsx as k,Fragment as i0}from"react/jsx-runtime";var s0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y})=>{let W=o(),z=r(),Q=C(),G=z$(()=>u0({baseURL:W||""}),[W]),_=z$(()=>u(),[]),H=z$(()=>W?t(W):null,[W]),T=z$(()=>W?n(W,z):null,[W,z]),{data:q,isLoading:D,error:F}=d0({queryKey:["uiConfig",$.pathname+$.search,W],enabled:!!W,queryFn:async()=>{let A=new URLSearchParams($.search);A.set("__pieroot",l0.OS);let K="/api/content"+$.pathname+"?"+A.toString();if(Q)console.log("[PieNativeRoot] Fetching UI configuration from:",K);let O=await G.get(K,{headers:{"Content-type":"application/json"},withCredentials:!0});if(Q)console.log("[PieNativeRoot] Received UI configuration:",O.data);return O.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(A)=>Math.min(1000*2**A,30000),...Y}),M=I$($.pathname,Z,J);if(!W)return M??null;if(F){if(Q)console.error("[PieNativeRoot] Error fetching UI configuration:",F);return X?.(F),M}if(D||!q)return M;return k(v.Provider,{value:_,children:k(h.Provider,{value:H,children:k(f.Provider,{value:T,children:k(N.Provider,{value:J??k(i0,{}),children:k(J$,{children:k(Z$,{children:k(L,{uiConfig:q})})})})})})})},o0=($)=>{let J=z$(()=>new p0,[]),Z=$.queryClient??J;return k(S.Provider,{value:$.onNavigate,children:k(c.Provider,{value:$.config,children:k(g.Provider,{value:$.onError,children:k(c0,{client:Z,children:k(s0,{...$})})})})})},a0=o0;import{useMemo as n$,useState as r0}from"react";import{QueryClient as n0,QueryClientProvider as t0}from"@tanstack/react-query";import{jsx as b,Fragment as J1}from"react/jsx-runtime";var e0=({location:$,fallback:J,children:Z,disableGlobalForm:X})=>{let Y=o(),W=r(),z=C(),Q=n$(()=>u(),[]),G=n$(()=>Y?t(Y):null,[Y]),_=n$(()=>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(J1,{}),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})})})})})})})},$1=($)=>{let[J]=r0(()=>new n0),Z=$.queryClient??J;return b(S.Provider,{value:$.onNavigate,children:b(c.Provider,{value:$.config,children:b(g.Provider,{value:$.onError,children:b(t0,{client:Z,children:b(e0,{...$})})})})})},Z1=$1;import{useMemo as G$}from"react";import{QueryClient as X1,QueryClientProvider as Y1,useQuery as W1}from"@tanstack/react-query";import{createAxiosDateTransformer as z1}from"axios-date-transformer";import{jsx as j,Fragment as _1}from"react/jsx-runtime";var G1=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,disableGlobalForm:W})=>{let z=o(),Q=r(),G=C(),_=G$(()=>z1({baseURL:z||""}),[z]),H=G$(()=>u(),[]),T=G$(()=>z?t(z):null,[z]),q=G$(()=>z?n(z,Q):null,[z,Q]),{data:D,isLoading:F,error:M}=W1({queryKey:["uiConfig",$.pathname+$.search,z],enabled:!!z,queryFn:async()=>{let K=new URLSearchParams($.search);K.set("__pieroot","web");let O="/api/content"+$.pathname+"?"+K.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",O);let P=await _.get(O,{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:",P.data);return P.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(K)=>Math.min(1000*2**K,30000),...Y}),A=I$($.pathname,Z,J);if(!z)return A??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(M){if(G)console.error("[PieRoot] Error fetching UI configuration:",M),console.error("[PieRoot] Error details:",{message:M.message,status:M.response?.status,data:M.response?.data});return X?.(M),A}if(F||!D){if(G)console.log("[PieRoot] Loading state:",{isLoading:F,hasUiConfiguration:!!D});return A}if(G)console.log("[PieRoot] UI configuration loaded successfully:",D),console.log("[PieRoot] Rendering UI with configuration");return j(v.Provider,{value:H,children:j(h.Provider,{value:T,children:j(f.Provider,{value:q,children:j(N.Provider,{value:J??j(_1,{}),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})})})})})})})})},Q1=($)=>{let J=G$(()=>new X1,[]),Z=$.queryClient??J;return j(S.Provider,{value:$.onNavigate,children:j(c.Provider,{value:$.config,children:j(g.Provider,{value:$.onError,children:j(Y1,{client:Z,children:j(G1,{...$})})})})})},B1=Q1;var H1=()=>{MJ(),w.submitGlobalForm()};var q1=($,J)=>`${$}${j$}${J}`;export{WZ as usePieEmit,AZ as useAjaxSubmits,MZ as useAjaxSubmit,cJ as unregisterComponent,L$ as trackLazy,H1 as submitGlobalForm,i as setNativeField,_Z as resetNativeClientSources,m as registry,_$ as registerPieComponent,pJ as registerMultipleComponents,E$ as readNativeField,OJ as readAjaxKeyAsync,AJ as readAjaxKey,XJ as preloadComponent,oJ as prefetchLazyComponents,q1 as pieName,D$ as parseDepName,dJ as hasComponent,sJ as getRegistrySize,X$ as getRegistryEntry,R as getNativeClientConfig,ZJ as getLazyComponentNames,u as getEmitter,uJ as getComponentMeta,lJ as getAllRegisteredComponents,PJ as discoverAjaxEndpoints,QZ as configureNativeClientSources,a as clearNativeField,u$ as UnionCard,y as UIRendererContext,r$ as UILoading,L as UI,h as SocketIOContext,g$ as SessionStorageCard,C$ as SequenceCard,B1 as PieRoot,a0 as PieNativeRoot,c as PieConfigContext,I as PieCard,Z1 as PieBaseRoot,j$ as PIEBREAK,h$ as OneOfCard,v as MittContext,p$ as IOEventsCard,v$ as HiddenCard,c$ as HTMLEmbedCard,N as FallbackContext,m$ as DeviceStorageCard,f as CentrifugeIOContext,x$ as BoxCard,d$ as AutoRedirectCard,o$ as AjaxGroupCard};
@@ -1,3 +1,3 @@
1
1
  "use client";
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}`;
2
+ var pZ=Object.create;var{getPrototypeOf:cZ,defineProperty:U$,getOwnPropertyNames:RJ,getOwnPropertyDescriptor:dZ}=Object,yJ=Object.prototype.hasOwnProperty;var uZ=($,J,Z)=>{Z=$!=null?pZ(cZ($)):{};let X=J||!$||!$.__esModule?U$(Z,"default",{value:$,enumerable:!0}):Z;for(let Y of RJ($))if(!yJ.call(X,Y))U$(X,Y,{get:()=>$[Y],enumerable:!0});return X},EJ=new WeakMap,lZ=($)=>{var J=EJ.get($),Z;if(J)return J;if(J=U$({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")RJ($).map((X)=>!yJ.call(J,X)&&U$(J,X,{get:()=>$[X],enumerable:!(Z=dZ($,X))||Z.enumerable}));return EJ.set($,J),J};var sZ=($,J)=>{for(var Z in J)U$($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(X)=>J[Z]=()=>X})};var v0={};sZ(v0,{usePieEmit:()=>rJ,useAjaxSubmits:()=>HZ,useAjaxSubmit:()=>BZ,unregisterComponent:()=>fJ,trackLazy:()=>y$,submitGlobalForm:()=>fZ,setNativeField:()=>o,resetNativeClientSources:()=>ZZ,registry:()=>g,registerPieComponent:()=>F$,registerMultipleComponents:()=>CJ,readNativeField:()=>v$,readAjaxKeyAsync:()=>AJ,readAjaxKey:()=>MJ,preloadComponent:()=>DJ,prefetchLazyComponents:()=>pJ,pieName:()=>hZ,parseDepName:()=>O$,hasComponent:()=>hJ,getRegistrySize:()=>gJ,getRegistryEntry:()=>$$,getNativeClientConfig:()=>y,getLazyComponentNames:()=>TJ,getEmitter:()=>u,getComponentMeta:()=>vJ,getAllRegisteredComponents:()=>mJ,discoverAjaxEndpoints:()=>OJ,configureNativeClientSources:()=>JZ,clearNativeField:()=>i,UnionCard:()=>ZJ,UIRendererContext:()=>x,UILoading:()=>QJ,UI:()=>N,SocketIOContext:()=>h,SessionStorageCard:()=>a$,SequenceCard:()=>u$,PieRoot:()=>CZ,PieNativeRoot:()=>bZ,PieConfigContext:()=>d,PieCard:()=>I,PieBaseRoot:()=>xZ,PIEBREAK:()=>C$,OneOfCard:()=>s$,MittContext:()=>v,IOEventsCard:()=>n$,HiddenCard:()=>o$,HTMLEmbedCard:()=>e$,FallbackContext:()=>j,DeviceStorageCard:()=>i$,CentrifugeIOContext:()=>f,BoxCard:()=>c$,AutoRedirectCard:()=>$J,AjaxGroupCard:()=>XJ});module.exports=lZ(v0);var kJ=require("react"),t=new Map;function bJ($,J){return J.catch(()=>{if(t.get($)===J)t.delete($)}),t.set($,J),J}function y$($,J){return kJ.lazy(()=>{if(t.has(J))return t.get(J);return bJ(J,$().then((Z)=>Z))})}var xJ=async($,J)=>{if(!J)return;if(t.has($))return t.get($);return bJ($,J().then((Z)=>Z))};var KJ=globalThis,U=($,J)=>{let Z=Symbol.for($);if(!(Z in KJ))KJ[Z]=J();return KJ[Z]};var g=U("@swarm.ing/pieui:component-registry",()=>new Map),oZ=($)=>{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=oZ($);return g.set(J.name,J),J.component}var CJ=($)=>{$.forEach((J)=>F$(J))},fJ=($)=>{g.delete($)},hJ=($)=>{return g.has($)},vJ=($)=>{return g.get($)?.metadata},$$=($)=>{return g.get($)},mJ=()=>{return Array.from(g.keys())},gJ=()=>{return g.size},TJ=()=>Array.from(g.values()).filter(($)=>$.isLazy&&typeof $.loader==="function").map(($)=>$.name),DJ=($)=>{let J=g.get($);if(!J?.isLazy||typeof J.loader!=="function")return;return xJ($,J.loader)},SJ=!1,pJ=()=>{if(SJ||typeof window>"u")return;SJ=!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(()=>DJ(J[Y])).catch(()=>{}).finally(()=>X(Y+1))})};X(0)};var IJ=require("react"),G$=require("react-native");var S=require("react");var k$=require("react");var d=U("@swarm.ing/pieui:context:pieConfig",()=>k$.createContext(null)),s=()=>{let $=k$.useContext(d);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},e=()=>{let{apiServer:$}=s();return $},b$=e,J$=()=>{let{centrifugeServer:$}=s();return $};var p=()=>{let{enableRenderingLog:$}=s();return $},cJ=p;var x$=()=>{let{onLinkLost:$}=s();return $},S$=()=>{let{onLinkRestored:$}=s();return $},C$="__piedemo__";var uJ=require("react"),VJ=require("centrifuge");var dJ=U("@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 VJ.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let W=new VJ.Centrifuge(J,{getToken:Y});return dJ.set(Z,W),W},iZ=U("@swarm.ing/pieui:context:centrifuge",()=>uJ.createContext(null)),f=iZ;var sJ=require("socket.io-client"),oJ=require("react");var lJ=U("@swarm.ing/pieui:socket-cache",()=>new Map),X$=($)=>{let J=lJ.get($);if(J)return J;let Z=sJ.io($,{autoConnect:!1,transports:["websocket"]});return lJ.set($,Z),Z},aZ=U("@swarm.ing/pieui:context:socket",()=>oJ.createContext(null)),h=aZ;var iJ=uZ(require("mitt")),Y$=require("react");function u(){return U("@swarm.ing/pieui:mitt-emitter",()=>iJ.default())}var aJ=U("@swarm.ing/pieui:context:mitt",()=>Y$.createContext(null));function rJ($){let J=Y$.useContext(aJ);return Y$.useCallback((Z,X)=>{(J??u()).emit(`pie${Z}_${$}`,X)},[$,J])}var v=aJ;function nJ($){return $.wasRecovering===!0&&$.recovered===!1}function tJ($){return $.recoverable===!1}function eJ($,J,Z){let X=$.getSubscription(J);if(X)return{subscription:X,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}var rZ=($)=>{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:rZ,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()}},$Z=nZ;var f$={};function JZ($){f$={...f$,...$}}function y(){return f$}function ZZ(){f$={}}var h$=new Map,o=($,J)=>{h$.set($,J)},i=($)=>{h$.delete($)},v$=($)=>{return h$.has($)?h$.get($):null};var XZ,tZ={isClient(){return!0},readSid(){return XZ},setSid($){XZ=$},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?.()}},YZ=tZ;var eZ=typeof navigator<"u"&&navigator.product==="ReactNative",$0=eZ?YZ:$Z,w=$0;var M$=U("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function WZ(){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 FJ=require("react");var J0=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],Z0=new Set(["telegram:cloud","telegram:secure"]),A$=new Map,zZ=($,J)=>{A$.set($,J)},GZ=($)=>{A$.delete($)},QZ=($="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 A$){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)}}},O$=($)=>{if($==="sid")return{source:"sid",key:"sid"};for(let J of J0){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}=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(Z0.has(Z)){if(J)console.warn(`Source ${Z} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let Y=A$.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},X0=($,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([])}})},AJ=async($,J=!1)=>{let{source:Z,key:X}=O$($);if(Z==="telegram:cloud"||Z==="telegram:secure")return X0(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=A$.get(X);if(Y)return Y()}return MJ($,J)},Y0=($)=>{if(!$)return[];if(Array.isArray($))return $.map(([J,Z])=>[String(J),String(Z)]);if(typeof $.forEach==="function"){let J=[];return $.forEach((Z,X)=>J.push([X,Z])),J}return Object.entries($)},W0=($)=>{let J=$.filter(Boolean);if(J.length===0)return;if(J.length===1)return J[0];let Z=AbortSignal.any;if(typeof Z==="function")return Z.call(AbortSignal,J);let X=new AbortController;for(let Y of J){if(Y.aborted){X.abort(Y.reason);break}Y.addEventListener("abort",()=>X.abort(Y.reason),{once:!0})}return X.signal},z0=($,J,Z)=>{let X={method:"POST",credentials:"include"},Y={},W=[J];for(let Q of Z){if(!Q)continue;let{headers:G,signal:_,body:H,...T}=Q;Object.assign(X,T);for(let[q,D]of Y0(G))Y[q.toLowerCase()]=D;W.push(_)}if(X.body=$,Object.keys(Y).length>0)X.headers=Y;let z=W0(W);if(z)X.signal=z;return X},_Z=($,J={},Z=[],X,Y)=>{let W=Y?.renderingLogEnabled??!1,z=Y?.timeout,Q=Y?.retryPolicy,G=Q?.maxRetries??0,_=Q?.baseDelay??1000,H=Q?.retryOn??[502,503,504];if(W)console.log("Registering AJAX: ",X,J,Z);return async(T={},q)=>{if(!w.isClient()){if(W)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let D=Y?.apiServer;if(!D){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 F=new FormData;for(let[K,O]of Object.entries({...J,...T}))F.append(K,O);for(let K of Z){let{key:O}=O$(K);for(let P of await AJ(K,W))F.append(O,P)}let M=D+"api/ajax_content"+X;$(null);let A;for(let K=0;K<=G;K++){if(K>0){let B=_*2**(K-1);if(W)console.log(`AJAX retry ${K}/${G} after ${B}ms`);await new Promise((V)=>setTimeout(V,B))}let O=z!=null?new AbortController:null,P=O&&setTimeout(()=>O.abort(),z);try{let B=await fetch(M,z0(F,O?.signal,[Y?.fetchOptions,q]));if(P)clearTimeout(P);if(!B.ok&&H.includes(B.status)&&K<G){A=Error(`HTTP ${B.status}`);continue}let b=(B.headers.get("content-type")||"").includes("application/json");if(!!B.body?.getReader&&!b){let n=B.body.getReader(),R$=new TextDecoder,C="";while(!0){let{done:HJ,value:vZ}=await n.read();if(HJ)break;C+=R$.decode(vZ,{stream:!0});let jJ=C.split(`
3
+ `);C=jJ.pop()??"";for(let mZ of jJ){let qJ=mZ.trim();if(!qJ)continue;try{let gZ=JSON.parse(qJ);$([gZ])}catch{if(W)console.warn("Failed to parse streamed line:",qJ)}}}if(C.trim())try{let HJ=JSON.parse(C);$([HJ])}catch{if(W)console.warn("Failed to parse final streamed line:",C)}return{}}else{let n=await B.json();return $(n),n}}catch(B){if(P)clearTimeout(P);if(A=B,K<G)continue;if(W)console.error("AJAX request failed:",B);return $(null),B}}if(W)console.error("AJAX request failed after retries:",A);return $(null),A}},BZ=($,J={},Z=[],X,Y)=>{let{apiServer:W,enableRenderingLog:z}=s(),Q=JSON.stringify(J),G=JSON.stringify(Z),_=JSON.stringify(Y);return FJ.useMemo(()=>_Z($,J,Z,X,{apiServer:W,renderingLogEnabled:z,timeout:Y?.timeout,retryPolicy:Y?.retryPolicy,fetchOptions:Y?.fetchOptions}),[$,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},HZ=($={},J,Z)=>{let{apiServer:X,enableRenderingLog:Y}=s(),W=JSON.stringify($??{}),z=JSON.stringify(Z);return FJ.useMemo(()=>{let Q={};for(let G of OJ($??{}))Q[G.key]=_Z(J,G.kwargs,G.depsNames,G.pathname,{apiServer:X,renderingLogEnabled:Y,timeout:Z?.timeout,retryPolicy:Z?.retryPolicy,fetchOptions:Z?.fetchOptions});return Q},[W,J,X,Y,z])};var W$=require("react/jsx-runtime"),G0=({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 H=cJ(),T=S.useRef(Q);T.current=Q;let q=S.useRef(_);q.current=_;let D=S.useRef(G);D.current=G;let F=typeof G==="function";if(S.useEffect(()=>{if(!F)return;let O=J.name;return zZ(O,()=>[JSON.stringify(D.current())]),()=>GZ(O)},[F,J.name]),H)console.log("[PieCard] Rendering card:",$),console.log("[PieCard] Card data:",J),console.log("[PieCard] Component name:",J?.name),console.log("[PieCard] Real-time support:",{socketio:X,centrifuge:Y,mitt:W,centrifugeChannel:z}),console.log("[PieCard] Methods:",Q?Object.keys(Q):"none"),console.log("[PieCard] Has children:",!!Z);let M=S.useContext(h),A=S.useContext(f),K=S.useContext(v);if(S.useEffect(()=>{if(!M||!X||!T.current||!J.name){if(H&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!M,useSocketioSupport:X,hasMethods:!!T.current,hasDataName:!!J?.name});return}let P=Object.keys(T.current??{}).map((B)=>{let V=`pie${B}_${J.name}`;if(H)console.log(`[PieCard] Socket.IO registering event: ${V}`);let b=(l)=>{T.current?.[B]?.(l)};return M.on(V,b),[V,b]});return()=>{P.forEach(([B,V])=>{if(H)console.log(`[PieCard] Socket.IO unregistering event: ${B}`);M.off(B,V)})}},[M,J.name,X]),S.useEffect(()=>{if(!A||!Y||!z||!J.name){if(H&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!A,useCentrifugeSupport:Y,hasCentrifugeChannel:!!z,hasMethods:!!T.current,hasDataName:!!J?.name});return}let P=Object.keys(T.current??{}).map((B)=>{let V=`pie${B}_${J.name}_${z}`;if(H)console.log(`[PieCard] Centrifuge subscribing to channel: ${V}`);let{subscription:b,createdHere:l}=eJ(A,V,{recoverable:!0,positioned:!0}),n=(C)=>{if(H)console.log(`[PieCard] Centrifuge received data on ${V}:`,C.data);T.current?.[B]?.(C.data)},R$=(C)=>{if(tJ(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(nJ(C)){if(H)console.log(`[PieCard] Centrifuge recovery gap on ${V}; requesting resync`);q.current?.({channel:V,reason:"gap"})}};return b.on("publication",n),b.on("subscribed",R$),b.subscribe(),{subscription:b,createdHere:l,onPublication:n,onSubscribed:R$}});return()=>{P.forEach(({subscription:B,createdHere:V,onPublication:b,onSubscribed:l})=>{if(H)console.log("[PieCard] Centrifuge unsubscribing from channel");if(B.off("publication",b),B.off("subscribed",l),V)B.unsubscribe(),A.removeSubscription(B)})}},[A,z,J.name,Y]),S.useEffect(()=>{if(!K||!W||!J.name){if(H&&W)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!K,useMittSupport:W,hasMethods:!!T.current,hasDataName:!!J?.name});return}let O=Object.keys(T.current??{}),P={};return O.forEach((B)=>{let V=`pie${B}_${J.name}`,b=(l)=>{if(H)console.log(`[PieCard] Mitt registering event: ${V}`);T.current?.[B]?.(l)};P[V]=b,K.on(V,b)}),()=>{Object.entries(P).forEach(([B,V])=>{if(H)console.log(`[PieCard] Mitt unregistering event: ${B}`);K.off(B,V)})}},[K,J.name,W]),H)console.log("[PieCard] Rendering complete, returning children");if(G!==void 0&&!F)return W$.jsxs(W$.Fragment,{children:[W$.jsx("input",{type:"hidden",name:J.name,value:JSON.stringify(G)}),Z]});return Z},I=G0;var I$=require("react");var qZ=require("react");var m$=require("react/jsx-runtime"),Q0=U("@swarm.ing/pieui:context:fallback",()=>qZ.createContext(m$.jsx(m$.Fragment,{}))),j=Q0;var KZ=require("react");var _0=U("@swarm.ing/pieui:context:lazyError",()=>KZ.createContext(void 0)),c=_0;var g$=require("react"),TZ=require("react/jsx-runtime"),B0=2,H0=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<B0){let J=H0*(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 TZ.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 DZ=require("react");var K0=U("@swarm.ing/pieui:context:navigate",()=>DZ.createContext(void 0)),m=K0;var VZ=require("react");var T0=U("@swarm.ing/pieui:context:uiRenderer",()=>VZ.createContext(null)),x=T0;var P$=require("react/jsx-runtime"),D0=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),V0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,url:Y,sx:W}=$,z=IJ.useContext(m),Q=IJ.useContext(x)??N,G=()=>{if(!Y)return;if(D0(Y))G$.Linking.openURL(Y).catch(()=>{});else z?.(Y)},_=P$.jsx(Q,{setUiAjaxConfiguration:Z,uiConfig:J});return P$.jsx(I,{card:X,data:$,children:Y?P$.jsx(G$.Pressable,{onPress:G,style:W,children:_}):P$.jsx(G$.View,{style:W,children:_})})},c$=V0;var UZ=require("react"),FZ=require("react-native");var d$=require("react/jsx-runtime"),U0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=UZ.useContext(x)??N;return d$.jsx(I,{card:X,data:$,children:d$.jsx(FZ.View,{style:Y,children:J.map((z,Q)=>d$.jsx(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},u$=U0;var MZ=require("react"),AZ=require("react-native");var l$=require("react/jsx-runtime"),F0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=MZ.useContext(x)??N;return l$.jsx(I,{card:X,data:$,children:l$.jsx(AZ.View,{style:Y,children:J.map((z,Q)=>l$.jsx(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${Q}`))})})},s$=F0;var w$=require("react");var OZ=require("react/jsx-runtime"),M0=({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 o(J,[Q]),()=>i(J)},[J,Q]),OZ.jsx(I,{card:"HiddenCard",data:$,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z,methods:{update:({value:_})=>{G(_)}}})},o$=M0;var L$=require("react");var IZ=require("react/jsx-runtime"),A0=({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),o(J,[G]),()=>i(J)},[Z,J,G]),IZ.jsx(I,{card:"DeviceStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{_(H)},remove:()=>{y().storage?.removeItem?.(Z),_("")}}})},i$=A0;var N$=require("react");var PZ=require("react/jsx-runtime"),O0=({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),o(J,[G]),()=>i(J)},[Z,J,G]),PZ.jsx(I,{card:"SessionStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{_(H)},remove:()=>{y().sessionStorage?.removeItem?.(Z),_("")}}})},a$=O0;var Q$=require("react"),r$=require("react-native");var wZ=require("react/jsx-runtime"),I0=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),P0=({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(I0(_))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 wZ.jsx(I,{card:"IOEventsCard",data:$,useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y,methods:Q})},n$=P0;var t$=require("react"),LZ=require("react-native");var PJ=require("react/jsx-runtime"),w0=($)=>($??"").replace(/<[^>]*>/g,"").replace(/&nbsp;/g," ").replace(/\s+/g," ").trim(),L0=({data:$})=>{let{html:J,useSocketioSupport:Z,useCentrifugeSupport:X,useMittSupport:Y,centrifugeChannel:W}=$,[z,Q]=t$.useState(J);return t$.useEffect(()=>{Q(J)},[J]),PJ.jsx(I,{card:"HTMLEmbedCard",data:$,methods:{update:(G)=>Q(G.value)},useCentrifugeSupport:X,useSocketioSupport:Z,useMittSupport:Y,centrifugeChannel:W,children:PJ.jsx(LZ.Text,{children:w0(z)})})},e$=L0;var j$=require("react"),NZ=require("react-native");var JJ=require("react/jsx-runtime"),N0=({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))NZ.Linking.openURL(J).catch(()=>{});else Z?.(J)},[J,Z]),JJ.jsx(JJ.Fragment,{children:X})},$J=N0;var jZ=require("react");var wJ=require("react/jsx-runtime"),j0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X}=$,Y=jZ.useContext(x)??N;return wJ.jsx(I,{card:X,data:$,children:J.map((W,z)=>{return wJ.jsx(Y,{uiConfig:W,setUiAjaxConfiguration:Z},`children-${z}`)})})},ZJ=j0;var k=require("react");var LJ=require("react/jsx-runtime"),E0=({data:$,content:J})=>{let{useLoader:Z,noReturn:X,returnType:Y,useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:Q,centrifugeChannel:G}=$,_=k.useContext(j),H=k.useContext(x)??N,[T,q]=k.useState(!1),[D,F]=k.useState(null),M=k.useRef(J),A=k.useContext(v),K=k.useCallback((B)=>{if(B===null)q(!0);else if(q(!1),!X)M.current=B;if(!X)F(B)},[X]),O=k.useCallback((B)=>{M.current=B.content,F(B.content)},[]),P=k.useCallback((B)=>{if(B===null)q(!0);else if(q(!1),!X)for(let V of B)A?.emit(V.name,V.data)},[X,A]);if(k.useEffect(()=>{F(J),q(!1)},[J]),!D&&Z)return _;return LJ.jsx(I,{card:"AjaxGroupCard",data:$,methods:{changeContent:O},useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:Q,centrifugeChannel:G,children:LJ.jsx(H,{uiConfig:D??M.current,setUiAjaxConfiguration:Y==="events"?P:K})})},XJ=E0;var R0=[{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:n$},{name:"HTMLEmbedCard",component:e$},{name:"AutoRedirectCard",component:$J},{name:"UnionCard",component:ZJ},{name:"AjaxGroupCard",component:XJ}];for(let $ of R0)F$($);var q$=require("react"),K$=require("@tanstack/react-query"),yZ=require("axios-date-transformer"),kZ=require("react-native");var a=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 y0=({children:$})=>{let J=a.useContext(h),Z=b$(),X=GJ(Z,"socketIO"),Y=x$(),W=S$(),z=a.useRef(Y);z.current=Y;let Q=a.useRef(W);Q.current=W;let G=a.useRef("initial"),_=(H)=>{if(w.isClient())w.setSid(H.sid),WZ(),console.log(`SocketIO initialized: ${w.readSid()}`)};return a.useEffect(()=>{if(!J||!X)return;let H=()=>{let{state:q,signal:D}=_$(G.current,"up");if(G.current=q,D==="restored")Q.current?.("socketio");console.log("SocketIO connected")},T=(q)=>{if(console.log(`SocketIO disconnected: ${q}`),J.connect(),q==="io client disconnect")return;let{state:D,signal:F}=_$(G.current,"down");if(G.current=D,F==="lost")z.current?.("socketio",q)};return J.on("pieinit",_),J.on("connect",H),J.on("disconnect",T),J.connect(),()=>{J.off("pieinit",_),J.off("connect",H),J.off("disconnect",T),J.disconnect()}},[J,X]),$},B$=y0;var r=require("react");var k0=({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 _=(q)=>{let{state:D,signal:F}=_$(G.current,"down");if(G.current=D,F==="lost")z.current?.("centrifuge",q)},H=()=>{let{state:q,signal:D}=_$(G.current,"up");if(G.current=q,D==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},T=(q)=>{console.log("Centrifuge disconnected:",q),_(q)};return J.on("connecting",_),J.on("connected",H),J.on("disconnected",T),J.connect(),()=>{J.off("connecting",_),J.off("connected",H),J.off("disconnected",T),J.disconnect()}},[J,X]),$},H$=k0;var NJ=require("react");var E$=require("react/jsx-runtime");function EZ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=NJ.useContext(j),X=NJ.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(x.Provider,{value:EZ,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=EZ;var RZ=require("react/jsx-runtime");function _J($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),Y=J[X];if(!Y)return Z;return RZ.jsx(QJ,{uiConfig:Y})}var E=require("react/jsx-runtime"),b0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y})=>{let W=e(),z=J$(),Q=p(),G=q$.useMemo(()=>yZ.createAxiosDateTransformer({baseURL:W||""}),[W]),_=q$.useMemo(()=>u(),[]),H=q$.useMemo(()=>W?X$(W):null,[W]),T=q$.useMemo(()=>W?Z$(W,z):null,[W,z]),{data:q,isLoading:D,error:F}=K$.useQuery({queryKey:["uiConfig",$.pathname+$.search,W],enabled:!!W,queryFn:async()=>{let A=new URLSearchParams($.search);A.set("__pieroot",kZ.Platform.OS);let K="/api/content"+$.pathname+"?"+A.toString();if(Q)console.log("[PieNativeRoot] Fetching UI configuration from:",K);let O=await G.get(K,{headers:{"Content-type":"application/json"},withCredentials:!0});if(Q)console.log("[PieNativeRoot] Received UI configuration:",O.data);return O.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(A)=>Math.min(1000*2**A,30000),...Y}),M=_J($.pathname,Z,J);if(!W)return M??null;if(F){if(Q)console.error("[PieNativeRoot] Error fetching UI configuration:",F);return X?.(F),M}if(D||!q)return M;return E.jsx(v.Provider,{value:_,children:E.jsx(h.Provider,{value:H,children:E.jsx(f.Provider,{value:T,children:E.jsx(j.Provider,{value:J??E.jsx(E.Fragment,{}),children:E.jsx(B$,{children:E.jsx(H$,{children:E.jsx(N,{uiConfig:q})})})})})})})},x0=($)=>{let J=q$.useMemo(()=>new K$.QueryClient,[]),Z=$.queryClient??J;return E.jsx(m.Provider,{value:$.onNavigate,children:E.jsx(d.Provider,{value:$.config,children:E.jsx(c.Provider,{value:$.onError,children:E.jsx(K$.QueryClientProvider,{client:Z,children:E.jsx(b0,{...$})})})})})},bZ=x0;var T$=require("react"),BJ=require("@tanstack/react-query");var R=require("react/jsx-runtime"),S0=({location:$,fallback:J,children:Z,disableGlobalForm:X})=>{let Y=e(),W=J$(),z=p(),Q=T$.useMemo(()=>u(),[]),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})})})})})})})},C0=($)=>{let[J]=T$.useState(()=>new BJ.QueryClient),Z=$.queryClient??J;return R.jsx(m.Provider,{value:$.onNavigate,children:R.jsx(d.Provider,{value:$.config,children:R.jsx(c.Provider,{value:$.onError,children:R.jsx(BJ.QueryClientProvider,{client:Z,children:R.jsx(S0,{...$})})})})})},xZ=C0;var D$=require("react"),V$=require("@tanstack/react-query");var SZ=require("axios-date-transformer");var L=require("react/jsx-runtime"),f0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,disableGlobalForm:W})=>{let z=e(),Q=J$(),G=p(),_=D$.useMemo(()=>SZ.createAxiosDateTransformer({baseURL:z||""}),[z]),H=D$.useMemo(()=>u(),[]),T=D$.useMemo(()=>z?X$(z):null,[z]),q=D$.useMemo(()=>z?Z$(z,Q):null,[z,Q]),{data:D,isLoading:F,error:M}=V$.useQuery({queryKey:["uiConfig",$.pathname+$.search,z],enabled:!!z,queryFn:async()=>{let K=new URLSearchParams($.search);K.set("__pieroot","web");let O="/api/content"+$.pathname+"?"+K.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",O);let P=await _.get(O,{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:",P.data);return P.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(K)=>Math.min(1000*2**K,30000),...Y}),A=_J($.pathname,Z,J);if(!z)return A??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(M){if(G)console.error("[PieRoot] Error fetching UI configuration:",M),console.error("[PieRoot] Error details:",{message:M.message,status:M.response?.status,data:M.response?.data});return X?.(M),A}if(F||!D){if(G)console.log("[PieRoot] Loading state:",{isLoading:F,hasUiConfiguration:!!D});return A}if(G)console.log("[PieRoot] UI configuration loaded successfully:",D),console.log("[PieRoot] Rendering UI with configuration");return L.jsx(v.Provider,{value:H,children:L.jsx(h.Provider,{value:T,children:L.jsx(f.Provider,{value:q,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})})})})})})})})},h0=($)=>{let J=D$.useMemo(()=>new V$.QueryClient,[]),Z=$.queryClient??J;return L.jsx(m.Provider,{value:$.onNavigate,children:L.jsx(d.Provider,{value:$.config,children:L.jsx(c.Provider,{value:$.onError,children:L.jsx(V$.QueryClientProvider,{client:Z,children:L.jsx(f0,{...$})})})})})},CZ=h0;var fZ=()=>{QZ(),w.submitGlobalForm()};var hZ=($,J)=>`${$}${C$}${J}`;
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{useMemo as f}from"react";import{QueryClient as cJ,QueryClientProvider as lJ,useQuery as uJ}from"@tanstack/react-query";import o$ from"mitt";import{createContext as i$,useCallback as TZ,useContext as _Z}from"react";var t=globalThis,T=($,J)=>{let Z=Symbol.for($);if(!(Z in t))t[Z]=J();return t[Z]};function Q$(){return T("@swarm.ing/pieui:mitt-emitter",()=>o$())}var a$=T("@swarm.ing/pieui:context:mitt",()=>i$(null));var h=a$;import{io as n$}from"socket.io-client";import{createContext as r$}from"react";var T$=T("@swarm.ing/pieui:socket-cache",()=>new Map),_$=($)=>{let J=T$.get($);if(J)return J;let Z=n$($,{autoConnect:!1,transports:["websocket"]});return T$.set($,Z),Z},t$=T("@swarm.ing/pieui:context:socket",()=>r$(null)),w=t$;import{createContext as e$}from"react";import{Centrifuge as q$}from"centrifuge";var U$=T("@swarm.ing/pieui:centrifuge-cache",()=>new Map),W$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,X=U$.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 q$.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let G=new q$(J,{getToken:Y});return U$.set(Z,G),G},$J=T("@swarm.ing/pieui:context:centrifuge",()=>e$(null)),E=$J;import{useContext as qJ,useEffect as UJ,useRef as J$}from"react";import{useEffect as JJ,useState as ZJ}from"react";var m=new Map,g=new Map;function p($,J){let Z=`${$}::${J}`,X=$?m.get(Z):void 0,[Y,G]=ZJ(X??null);return JJ(()=>{if(!$)return;if(m.has(Z)){G(m.get(Z));return}let z=g.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((B)=>B.json()).then((B)=>{return m.set(Z,B),g.delete(Z),B}).catch((B)=>{throw g.delete(Z),B}),g.set(Z,z);let Q=!1;return z.then((B)=>{if(!Q)G(B)}).catch(()=>{}),()=>{Q=!0}},[$,J,Z]),Y}import{createContext as GJ,useContext as XJ}from"react";var e=T("@swarm.ing/pieui:context:pieConfig",()=>GJ(null)),x=()=>{let $=XJ(e);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},$$=()=>{let{apiServer:$}=x();return $},c=$$,F$=()=>{let{centrifugeServer:$}=x();return $};var L=()=>{let{enableRenderingLog:$}=x();return $},V$=L,D$=()=>{let{pageProcessor:$}=x();return $};var l=()=>{let{onLinkLost:$}=x();return $},u=()=>{let{onLinkRestored:$}=x();return $};var YJ=($)=>{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 G=X===-1?"":Z.slice(X+1).trim();try{return decodeURIComponent(G)}catch{return G}}}return null},zJ={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:YJ,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()}},K$=zJ;var BJ={};function R(){return BJ}var M$=new Map;var I$=($)=>{return M$.has($)?M$.get($):null};var O$,HJ={isClient(){return!0},readSid(){return O$},setSid($){O$=$},readWebStorage($,J){let Z=R(),X=$==="local"?Z.storage:Z.sessionStorage;return X?X.getItem(J):null},async readWebStorageAsync($,J){let Z=R(),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=R();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=R();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=R();return J.getInput?J.getInput($):I$($)},submitGlobalForm(){R().submitForm?.()}},P$=HJ;var QJ=typeof navigator<"u"&&navigator.product==="ReactNative",TJ=QJ?P$:K$,d=TJ;var _J=T("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function A$(){_J.resolve?.()}function y($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var WJ=({children:$})=>{let J=qJ(w),Z=c(),X=p(Z,"socketIO"),Y=l(),G=u(),z=J$(Y);z.current=Y;let Q=J$(G);Q.current=G;let B=J$("initial"),U=(H)=>{if(d.isClient())d.setSid(H.sid),A$(),console.log(`SocketIO initialized: ${d.readSid()}`)};return UJ(()=>{if(!J||!X)return;let H=()=>{let{state:F,signal:V}=y(B.current,"up");if(B.current=F,V==="restored")Q.current?.("socketio");console.log("SocketIO connected")},W=(F)=>{if(console.log(`SocketIO disconnected: ${F}`),J.connect(),F==="io client disconnect")return;let{state:V,signal:K}=y(B.current,"down");if(B.current=V,K==="lost")z.current?.("socketio",F)};return J.on("pieinit",U),J.on("connect",H),J.on("disconnect",W),J.connect(),()=>{J.off("pieinit",U),J.off("connect",H),J.off("disconnect",W),J.disconnect()}},[J,X]),$},j$=WJ;import{useContext as FJ,useEffect as VJ,useRef as Z$}from"react";var DJ=({children:$})=>{let J=FJ(E),Z=c(),X=p(Z,"centrifuge"),Y=l(),G=u(),z=Z$(Y);z.current=Y;let Q=Z$(G);Q.current=G;let B=Z$("initial");return VJ(()=>{if(!J||!X)return;let U=(F)=>{let{state:V,signal:K}=y(B.current,"down");if(B.current=V,K==="lost")z.current?.("centrifuge",F)},H=()=>{let{state:F,signal:V}=y(B.current,"up");if(B.current=F,V==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},W=(F)=>{console.log("Centrifuge disconnected:",F),U(F)};return J.on("connecting",U),J.on("connected",H),J.on("disconnected",W),J.connect(),()=>{J.off("connecting",U),J.off("connected",H),J.off("disconnected",W),J.disconnect()}},[J,X]),$},N$=DJ;import{createContext as KJ}from"react";import{jsx as OJ,Fragment as IJ}from"react/jsx-runtime";var MJ=T("@swarm.ing/pieui:context:fallback",()=>KJ(OJ(IJ,{}))),C=MJ;import{createContext as PJ}from"react";var AJ=T("@swarm.ing/pieui:context:lazyError",()=>PJ(void 0)),b=AJ;import{lazy as jJ}from"react";var S=new Map;function NJ($,J){return J.catch(()=>{if(S.get($)===J)S.delete($)}),S.set($,J),J}function L$($,J){return jJ(()=>{if(S.has(J))return S.get(J);return NJ(J,$().then((Z)=>Z))})}var R$=T("@swarm.ing/pieui:component-registry",()=>new Map),LJ=($)=>{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=L$(J.loader,$.name),J.isLazy=!0;return J};function s($){let J=LJ($);return R$.set(J.name,J),J.component}var o=($)=>{return R$.get($)};import{useContext as w$,memo as CJ}from"react";import{Component as RJ,Suspense as wJ}from"react";import{jsx as yJ}from"react/jsx-runtime";var EJ=2,xJ=400;class k extends RJ{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<EJ){let J=xJ*(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 yJ(wJ,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as G$}from"react/jsx-runtime";function bJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=w$(C),X=w$(b),Y=L();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 G=o($.card);if(!G?.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:G.name,isLazy:G.isLazy,hasMetadata:!!G.metadata});let z=G.component,Q=G$(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(G.isLazy){if(Y)console.log("[UI] Rendering lazy component with Suspense:",G.name);return G$(k,{name:G.name,fallback:G.fallback?G$(G.fallback,{}):Z,onError:X,children:Q})}if(Y)console.log("[UI] Rendering component directly:",G.name);return Q}var X$=CJ(bJ);import{createAxiosDateTransformer as dJ}from"axios-date-transformer";import{useEffect as kJ,useState as vJ}from"react";var i=({onError:$}={})=>{let[J,Z]=vJ(null),X=D$();return kJ(()=>{if(typeof window>"u")return;let Y=window.Telegram?.WebApp;if(!Y)return;try{Y.ready?.()}catch(G){$?.()}if(X==="telegram_expanded"&&(Y.platform==="ios"||Y.platform==="android"))Y.expand();Z(Y)},[]),J},SJ=()=>{let $=i();return[$?.initDataUnsafe,$?.initData]};import{createContext as fJ}from"react";var hJ=T("@swarm.ing/pieui:context:navigate",()=>fJ(void 0)),E$=hJ;import{useContext as y$}from"react";import{createContext as mJ}from"react";var gJ=T("@swarm.ing/pieui:context:uiRenderer",()=>mJ(null)),x$=gJ;import{jsx as a}from"react/jsx-runtime";function C$({uiConfig:$,setUiAjaxConfiguration:J}){let Z=y$(C),X=y$(b),Y=L();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 G=o($.card);if(!G?.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:G.name,isLazy:G.isLazy,hasMetadata:!!G.metadata,hasFallback:!!G.fallback});if(G.fallback){if(Y)console.log("[UILoading] Rendering fallback for:",G.name);let B=G.fallback;return a(B,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",G.name);let z=G.component,Q=a(x$.Provider,{value:C$,children:a(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(G.isLazy)return a(k,{name:G.name,fallback:Z,onError:X,children:Q});return Q}var b$=C$;import{jsx as pJ}from"react/jsx-runtime";function k$($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),Y=J[X];if(!Y)return Z;return pJ(b$,{uiConfig:Y})}import{jsx as D,Fragment as iJ}from"react/jsx-runtime";var sJ=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,disableGlobalForm:G})=>{let z=$$(),Q=F$(),B=L(),U=f(()=>dJ({baseURL:z}),[z]),H=f(()=>Q$(),[]),W=f(()=>z?_$(z):null,[z]),F=f(()=>z?W$(z,Q):null,[z,Q]),V=i({onError:X}),{data:K,isLoading:A,error:M}=uJ({queryKey:["uiConfig",$.pathname+$.search,V?.initData],enabled:!!V?.initData,queryFn:async()=>{let I=new URLSearchParams($.search);if(I.set("__pieroot","telegram"),V?.initData)I.set("initData",V.initData);let P="/api/content"+$.pathname+"?"+I.toString();if(B)console.log("[PieRoot] Fetching UI configuration from:",P);let _=await U.get(P,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(B)console.log("[PieRoot] Received UI configuration:",_.data);return _.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(I)=>Math.min(1000*2**I,30000),...Y}),j=k$($.pathname,Z,J);if(!z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(M&&B)return console.error("[PieRoot] Error fetching UI configuration:",M),console.error("[PieRoot] Error details:",{message:M.message,status:M.response?.status,data:M.response?.data}),X?.(M),j;if(A||!K){if(B)console.log("[PieRoot] Loading state:",{isLoading:A,hasUiConfiguration:!!K});return j}if(B)console.log("[PieRoot] UI configuration loaded successfully:",K),console.log("[PieRoot] Rendering UI with configuration");return D(h.Provider,{value:H,children:D(w.Provider,{value:W,children:D(E.Provider,{value:F,children:D(C.Provider,{value:J??D(iJ,{}),children:D(j$,{children:D(N$,{children:G?D(X$,{uiConfig:K}):D("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:D(X$,{uiConfig:K})})})})})})})})},oJ=($)=>{let J=f(()=>new cJ,[]),Z=$.queryClient??J;return D(E$.Provider,{value:$.onNavigate,children:D(e.Provider,{value:$.config,children:D(b.Provider,{value:$.onError,children:D(lJ,{client:Z,children:D(sJ,{...$})})})})})},aJ=oJ;import{useEffect as p$,useState as $Z}from"react";import{useContext as Y$,useEffect as n,useRef as z$}from"react";function v$($){return $.wasRecovering===!0&&$.recovered===!1}function S$($){return $.recoverable===!1}function f$($,J,Z){let X=$.getSubscription(J);if(X)return{subscription:X,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}import{useMemo as O1}from"react";var h$=new Map,m$=($,J)=>{h$.set($,J)},g$=($)=>{h$.delete($)};import{jsx as tJ,jsxs as eJ,Fragment as rJ}from"react/jsx-runtime";var nJ=({card:$,data:J,children:Z,useSocketioSupport:X=!1,useCentrifugeSupport:Y=!1,useMittSupport:G=!1,centrifugeChannel:z=void 0,methods:Q=void 0,stored:B=void 0,onResync:U=void 0})=>{let H=V$(),W=z$(Q);W.current=Q;let F=z$(U);F.current=U;let V=z$(B);V.current=B;let K=typeof B==="function";if(n(()=>{if(!K)return;let I=J.name;return m$(I,()=>[JSON.stringify(V.current())]),()=>g$(I)},[K,J.name]),H)console.log("[PieCard] Rendering card:",$),console.log("[PieCard] Card data:",J),console.log("[PieCard] Component name:",J?.name),console.log("[PieCard] Real-time support:",{socketio:X,centrifuge:Y,mitt:G,centrifugeChannel:z}),console.log("[PieCard] Methods:",Q?Object.keys(Q):"none"),console.log("[PieCard] Has children:",!!Z);let A=Y$(w),M=Y$(E),j=Y$(h);if(n(()=>{if(!A||!X||!W.current||!J.name){if(H&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!A,useSocketioSupport:X,hasMethods:!!W.current,hasDataName:!!J?.name});return}let P=Object.keys(W.current??{}).map((_)=>{let q=`pie${_}_${J.name}`;if(H)console.log(`[PieCard] Socket.IO registering event: ${q}`);let O=(N)=>{W.current?.[_]?.(N)};return A.on(q,O),[q,O]});return()=>{P.forEach(([_,q])=>{if(H)console.log(`[PieCard] Socket.IO unregistering event: ${_}`);A.off(_,q)})}},[A,J.name,X]),n(()=>{if(!M||!Y||!z||!J.name){if(H&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!M,useCentrifugeSupport:Y,hasCentrifugeChannel:!!z,hasMethods:!!W.current,hasDataName:!!J?.name});return}let P=Object.keys(W.current??{}).map((_)=>{let q=`pie${_}_${J.name}_${z}`;if(H)console.log(`[PieCard] Centrifuge subscribing to channel: ${q}`);let{subscription:O,createdHere:N}=f$(M,q,{recoverable:!0,positioned:!0}),B$=(v)=>{if(H)console.log(`[PieCard] Centrifuge received data on ${q}:`,v.data);W.current?.[_]?.(v.data)},H$=(v)=>{if(S$(v))console.warn(`[PieCard] Centrifuge channel ${q} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(v$(v)){if(H)console.log(`[PieCard] Centrifuge recovery gap on ${q}; requesting resync`);F.current?.({channel:q,reason:"gap"})}};return O.on("publication",B$),O.on("subscribed",H$),O.subscribe(),{subscription:O,createdHere:N,onPublication:B$,onSubscribed:H$}});return()=>{P.forEach(({subscription:_,createdHere:q,onPublication:O,onSubscribed:N})=>{if(H)console.log("[PieCard] Centrifuge unsubscribing from channel");if(_.off("publication",O),_.off("subscribed",N),q)_.unsubscribe(),M.removeSubscription(_)})}},[M,z,J.name,Y]),n(()=>{if(!j||!G||!J.name){if(H&&G)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!j,useMittSupport:G,hasMethods:!!W.current,hasDataName:!!J?.name});return}let I=Object.keys(W.current??{}),P={};return I.forEach((_)=>{let q=`pie${_}_${J.name}`,O=(N)=>{if(H)console.log(`[PieCard] Mitt registering event: ${q}`);W.current?.[_]?.(N)};P[q]=O,j.on(q,O)}),()=>{Object.entries(P).forEach(([_,q])=>{if(H)console.log(`[PieCard] Mitt unregistering event: ${_}`);j.off(_,q)})}},[j,J.name,G]),H)console.log("[PieCard] Rendering complete, returning children");if(B!==void 0&&!K)return eJ(rJ,{children:[tJ("input",{type:"hidden",name:J.name,value:JSON.stringify(B)}),Z]});return Z},r=nJ;import{jsx as c$}from"react/jsx-runtime";var JZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:Q}=$,[B,U]=$Z(X);return p$(()=>{U(X)},[X]),p$(()=>{if(typeof window>"u")return;let H=window.Telegram?.WebApp?.CloudStorage;if(!H)return;H.setItem(Z,B)},[Z,B]),c$(r,{card:"CloudStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{U(H)},remove:()=>{let H=window.Telegram?.WebApp?.CloudStorage;if(H)H.removeItem(Z);U("")}},children:c$("input",{type:"hidden",id:J,name:J,value:B})})},l$=JZ;var ZZ=s({name:"CloudStorageCard",component:l$,metadata:{author:"PieData"}});import{useEffect as u$,useState as GZ}from"react";import{jsx as d$}from"react/jsx-runtime";var XZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:Q}=$,[B,U]=GZ(X);return u$(()=>{U(X)},[X]),u$(()=>{if(typeof window>"u")return;let H=window.Telegram?.WebApp?.SecureStorage;if(!H)return;H.setItem(Z,B)},[Z,B]),d$(r,{card:"SecureStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{U(H)},remove:()=>{let H=window.Telegram?.WebApp?.SecureStorage;if(H)H.removeItem(Z);U("")}},children:d$("input",{type:"hidden",id:J,name:J,value:B})})},s$=XZ;var YZ=s({name:"SecureStorageCard",component:s$,metadata:{author:"PieData"}});export{i as useWebApp,SJ as useInitData,YZ as SecureStorageCard,aJ as PieTelegramRoot,ZZ as CloudStorageCard};
2
+ import{useMemo as f}from"react";import{QueryClient as cJ,QueryClientProvider as uJ,useQuery as lJ}from"@tanstack/react-query";import o$ from"mitt";import{createContext as i$,useCallback as TZ,useContext as _Z}from"react";var t=globalThis,T=($,J)=>{let Z=Symbol.for($);if(!(Z in t))t[Z]=J();return t[Z]};function H$(){return T("@swarm.ing/pieui:mitt-emitter",()=>o$())}var a$=T("@swarm.ing/pieui:context:mitt",()=>i$(null));var h=a$;import{io as r$}from"socket.io-client";import{createContext as n$}from"react";var T$=T("@swarm.ing/pieui:socket-cache",()=>new Map),_$=($)=>{let J=T$.get($);if(J)return J;let Z=r$($,{autoConnect:!1,transports:["websocket"]});return T$.set($,Z),Z},t$=T("@swarm.ing/pieui:context:socket",()=>n$(null)),w=t$;import{createContext as e$}from"react";import{Centrifuge as U$}from"centrifuge";var q$=T("@swarm.ing/pieui:centrifuge-cache",()=>new Map),W$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,X=q$.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 U$.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let G=new U$(J,{getToken:Y});return q$.set(Z,G),G},$J=T("@swarm.ing/pieui:context:centrifuge",()=>e$(null)),E=$J;import{useContext as UJ,useEffect as qJ,useRef as J$}from"react";import{useEffect as JJ,useState as ZJ}from"react";var m=new Map,g=new Map;function p($,J){let Z=`${$}::${J}`,X=$?m.get(Z):void 0,[Y,G]=ZJ(X??null);return JJ(()=>{if(!$)return;if(m.has(Z)){G(m.get(Z));return}let z=g.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((B)=>B.json()).then((B)=>{return m.set(Z,B),g.delete(Z),B}).catch((B)=>{throw g.delete(Z),B}),g.set(Z,z);let H=!1;return z.then((B)=>{if(!H)G(B)}).catch(()=>{}),()=>{H=!0}},[$,J,Z]),Y}import{createContext as GJ,useContext as XJ}from"react";var e=T("@swarm.ing/pieui:context:pieConfig",()=>GJ(null)),x=()=>{let $=XJ(e);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},$$=()=>{let{apiServer:$}=x();return $},c=$$,F$=()=>{let{centrifugeServer:$}=x();return $};var L=()=>{let{enableRenderingLog:$}=x();return $},V$=L,D$=()=>{let{pageProcessor:$}=x();return $};var u=()=>{let{onLinkLost:$}=x();return $},l=()=>{let{onLinkRestored:$}=x();return $};var YJ=($)=>{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 G=X===-1?"":Z.slice(X+1).trim();try{return decodeURIComponent(G)}catch{return G}}}return null},zJ={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:YJ,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()}},K$=zJ;var BJ={};function R(){return BJ}var M$=new Map;var I$=($)=>{return M$.has($)?M$.get($):null};var O$,QJ={isClient(){return!0},readSid(){return O$},setSid($){O$=$},readWebStorage($,J){let Z=R(),X=$==="local"?Z.storage:Z.sessionStorage;return X?X.getItem(J):null},async readWebStorageAsync($,J){let Z=R(),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=R();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=R();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=R();return J.getInput?J.getInput($):I$($)},submitGlobalForm(){R().submitForm?.()}},P$=QJ;var HJ=typeof navigator<"u"&&navigator.product==="ReactNative",TJ=HJ?P$:K$,d=TJ;var _J=T("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function A$(){_J.resolve?.()}function C($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var WJ=({children:$})=>{let J=UJ(w),Z=c(),X=p(Z,"socketIO"),Y=u(),G=l(),z=J$(Y);z.current=Y;let H=J$(G);H.current=G;let B=J$("initial"),q=(Q)=>{if(d.isClient())d.setSid(Q.sid),A$(),console.log(`SocketIO initialized: ${d.readSid()}`)};return qJ(()=>{if(!J||!X)return;let Q=()=>{let{state:F,signal:V}=C(B.current,"up");if(B.current=F,V==="restored")H.current?.("socketio");console.log("SocketIO connected")},W=(F)=>{if(console.log(`SocketIO disconnected: ${F}`),J.connect(),F==="io client disconnect")return;let{state:V,signal:K}=C(B.current,"down");if(B.current=V,K==="lost")z.current?.("socketio",F)};return J.on("pieinit",q),J.on("connect",Q),J.on("disconnect",W),J.connect(),()=>{J.off("pieinit",q),J.off("connect",Q),J.off("disconnect",W),J.disconnect()}},[J,X]),$},j$=WJ;import{useContext as FJ,useEffect as VJ,useRef as Z$}from"react";var DJ=({children:$})=>{let J=FJ(E),Z=c(),X=p(Z,"centrifuge"),Y=u(),G=l(),z=Z$(Y);z.current=Y;let H=Z$(G);H.current=G;let B=Z$("initial");return VJ(()=>{if(!J||!X)return;let q=(F)=>{let{state:V,signal:K}=C(B.current,"down");if(B.current=V,K==="lost")z.current?.("centrifuge",F)},Q=()=>{let{state:F,signal:V}=C(B.current,"up");if(B.current=F,V==="restored")H.current?.("centrifuge");console.log("Centrifuge connected")},W=(F)=>{console.log("Centrifuge disconnected:",F),q(F)};return J.on("connecting",q),J.on("connected",Q),J.on("disconnected",W),J.connect(),()=>{J.off("connecting",q),J.off("connected",Q),J.off("disconnected",W),J.disconnect()}},[J,X]),$},N$=DJ;import{createContext as KJ}from"react";import{jsx as OJ,Fragment as IJ}from"react/jsx-runtime";var MJ=T("@swarm.ing/pieui:context:fallback",()=>KJ(OJ(IJ,{}))),y=MJ;import{createContext as PJ}from"react";var AJ=T("@swarm.ing/pieui:context:lazyError",()=>PJ(void 0)),b=AJ;import{lazy as jJ}from"react";var v=new Map;function NJ($,J){return J.catch(()=>{if(v.get($)===J)v.delete($)}),v.set($,J),J}function L$($,J){return jJ(()=>{if(v.has(J))return v.get(J);return NJ(J,$().then((Z)=>Z))})}var R$=T("@swarm.ing/pieui:component-registry",()=>new Map),LJ=($)=>{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=L$(J.loader,$.name),J.isLazy=!0;return J};function s($){let J=LJ($);return R$.set(J.name,J),J.component}var o=($)=>{return R$.get($)};import{useContext as w$,memo as yJ}from"react";import{Component as RJ,Suspense as wJ}from"react";import{jsx as CJ}from"react/jsx-runtime";var EJ=2,xJ=400;class k extends RJ{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<EJ){let J=xJ*(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 CJ(wJ,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as G$}from"react/jsx-runtime";function bJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=w$(y),X=w$(b),Y=L();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 G=o($.card);if(!G?.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:G.name,isLazy:G.isLazy,hasMetadata:!!G.metadata});let z=G.component,H=G$(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(G.isLazy){if(Y)console.log("[UI] Rendering lazy component with Suspense:",G.name);return G$(k,{name:G.name,fallback:G.fallback?G$(G.fallback,{}):Z,onError:X,children:H})}if(Y)console.log("[UI] Rendering component directly:",G.name);return H}var X$=yJ(bJ);import{createAxiosDateTransformer as dJ}from"axios-date-transformer";import{useEffect as kJ,useState as SJ}from"react";var i=({onError:$}={})=>{let[J,Z]=SJ(null),X=D$();return kJ(()=>{if(typeof window>"u")return;let Y=window.Telegram?.WebApp;if(!Y)return;try{Y.ready?.()}catch(G){$?.()}if(X==="telegram_expanded"&&(Y.platform==="ios"||Y.platform==="android"))Y.expand();Z(Y)},[]),J},vJ=()=>{let $=i();return[$?.initDataUnsafe,$?.initData]};import{createContext as fJ}from"react";var hJ=T("@swarm.ing/pieui:context:navigate",()=>fJ(void 0)),E$=hJ;import{useContext as C$}from"react";import{createContext as mJ}from"react";var gJ=T("@swarm.ing/pieui:context:uiRenderer",()=>mJ(null)),x$=gJ;import{jsx as a}from"react/jsx-runtime";function y$({uiConfig:$,setUiAjaxConfiguration:J}){let Z=C$(y),X=C$(b),Y=L();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 G=o($.card);if(!G?.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:G.name,isLazy:G.isLazy,hasMetadata:!!G.metadata,hasFallback:!!G.fallback});if(G.fallback){if(Y)console.log("[UILoading] Rendering fallback for:",G.name);let B=G.fallback;return a(B,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",G.name);let z=G.component,H=a(x$.Provider,{value:y$,children:a(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(G.isLazy)return a(k,{name:G.name,fallback:Z,onError:X,children:H});return H}var b$=y$;import{jsx as pJ}from"react/jsx-runtime";function k$($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),Y=J[X];if(!Y)return Z;return pJ(b$,{uiConfig:Y})}import{jsx as D,Fragment as iJ}from"react/jsx-runtime";var sJ=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,disableGlobalForm:G})=>{let z=$$(),H=F$(),B=L(),q=f(()=>dJ({baseURL:z}),[z]),Q=f(()=>H$(),[]),W=f(()=>z?_$(z):null,[z]),F=f(()=>z?W$(z,H):null,[z,H]),V=i({onError:X}),{data:K,isLoading:A,error:M}=lJ({queryKey:["uiConfig",$.pathname+$.search,V?.initData],enabled:!!V?.initData,queryFn:async()=>{let I=new URLSearchParams($.search);if(I.set("__pieroot","telegram"),V?.initData)I.set("initData",V.initData);let P="/api/content"+$.pathname+"?"+I.toString();if(B)console.log("[PieRoot] Fetching UI configuration from:",P);let _=await q.get(P,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(B)console.log("[PieRoot] Received UI configuration:",_.data);return _.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(I)=>Math.min(1000*2**I,30000),...Y}),j=k$($.pathname,Z,J);if(!z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(M&&B)return console.error("[PieRoot] Error fetching UI configuration:",M),console.error("[PieRoot] Error details:",{message:M.message,status:M.response?.status,data:M.response?.data}),X?.(M),j;if(A||!K){if(B)console.log("[PieRoot] Loading state:",{isLoading:A,hasUiConfiguration:!!K});return j}if(B)console.log("[PieRoot] UI configuration loaded successfully:",K),console.log("[PieRoot] Rendering UI with configuration");return D(h.Provider,{value:Q,children:D(w.Provider,{value:W,children:D(E.Provider,{value:F,children:D(y.Provider,{value:J??D(iJ,{}),children:D(j$,{children:D(N$,{children:G?D(X$,{uiConfig:K}):D("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:D(X$,{uiConfig:K})})})})})})})})},oJ=($)=>{let J=f(()=>new cJ,[]),Z=$.queryClient??J;return D(E$.Provider,{value:$.onNavigate,children:D(e.Provider,{value:$.config,children:D(b.Provider,{value:$.onError,children:D(uJ,{client:Z,children:D(sJ,{...$})})})})})},aJ=oJ;import{useEffect as p$,useState as $Z}from"react";import{useContext as Y$,useEffect as r,useRef as z$}from"react";function S$($){return $.wasRecovering===!0&&$.recovered===!1}function v$($){return $.recoverable===!1}function f$($,J,Z){let X=$.getSubscription(J);if(X)return{subscription:X,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}import{useMemo as O1}from"react";var h$=new Map,m$=($,J)=>{h$.set($,J)},g$=($)=>{h$.delete($)};import{jsx as tJ,jsxs as eJ,Fragment as nJ}from"react/jsx-runtime";var rJ=({card:$,data:J,children:Z,useSocketioSupport:X=!1,useCentrifugeSupport:Y=!1,useMittSupport:G=!1,centrifugeChannel:z=void 0,methods:H=void 0,stored:B=void 0,onResync:q=void 0})=>{let Q=V$(),W=z$(H);W.current=H;let F=z$(q);F.current=q;let V=z$(B);V.current=B;let K=typeof B==="function";if(r(()=>{if(!K)return;let I=J.name;return m$(I,()=>[JSON.stringify(V.current())]),()=>g$(I)},[K,J.name]),Q)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:G,centrifugeChannel:z}),console.log("[PieCard] Methods:",H?Object.keys(H):"none"),console.log("[PieCard] Has children:",!!Z);let A=Y$(w),M=Y$(E),j=Y$(h);if(r(()=>{if(!A||!X||!W.current||!J.name){if(Q&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!A,useSocketioSupport:X,hasMethods:!!W.current,hasDataName:!!J?.name});return}let P=Object.keys(W.current??{}).map((_)=>{let U=`pie${_}_${J.name}`;if(Q)console.log(`[PieCard] Socket.IO registering event: ${U}`);let O=(N)=>{W.current?.[_]?.(N)};return A.on(U,O),[U,O]});return()=>{P.forEach(([_,U])=>{if(Q)console.log(`[PieCard] Socket.IO unregistering event: ${_}`);A.off(_,U)})}},[A,J.name,X]),r(()=>{if(!M||!Y||!z||!J.name){if(Q&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!M,useCentrifugeSupport:Y,hasCentrifugeChannel:!!z,hasMethods:!!W.current,hasDataName:!!J?.name});return}let P=Object.keys(W.current??{}).map((_)=>{let U=`pie${_}_${J.name}_${z}`;if(Q)console.log(`[PieCard] Centrifuge subscribing to channel: ${U}`);let{subscription:O,createdHere:N}=f$(M,U,{recoverable:!0,positioned:!0}),B$=(S)=>{if(Q)console.log(`[PieCard] Centrifuge received data on ${U}:`,S.data);W.current?.[_]?.(S.data)},Q$=(S)=>{if(v$(S))console.warn(`[PieCard] Centrifuge channel ${U} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(S$(S)){if(Q)console.log(`[PieCard] Centrifuge recovery gap on ${U}; requesting resync`);F.current?.({channel:U,reason:"gap"})}};return O.on("publication",B$),O.on("subscribed",Q$),O.subscribe(),{subscription:O,createdHere:N,onPublication:B$,onSubscribed:Q$}});return()=>{P.forEach(({subscription:_,createdHere:U,onPublication:O,onSubscribed:N})=>{if(Q)console.log("[PieCard] Centrifuge unsubscribing from channel");if(_.off("publication",O),_.off("subscribed",N),U)_.unsubscribe(),M.removeSubscription(_)})}},[M,z,J.name,Y]),r(()=>{if(!j||!G||!J.name){if(Q&&G)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!j,useMittSupport:G,hasMethods:!!W.current,hasDataName:!!J?.name});return}let I=Object.keys(W.current??{}),P={};return I.forEach((_)=>{let U=`pie${_}_${J.name}`,O=(N)=>{if(Q)console.log(`[PieCard] Mitt registering event: ${U}`);W.current?.[_]?.(N)};P[U]=O,j.on(U,O)}),()=>{Object.entries(P).forEach(([_,U])=>{if(Q)console.log(`[PieCard] Mitt unregistering event: ${_}`);j.off(_,U)})}},[j,J.name,G]),Q)console.log("[PieCard] Rendering complete, returning children");if(B!==void 0&&!K)return eJ(nJ,{children:[tJ("input",{type:"hidden",name:J.name,value:JSON.stringify(B)}),Z]});return Z},n=rJ;import{jsx as c$}from"react/jsx-runtime";var JZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:H}=$,[B,q]=$Z(X);return p$(()=>{q(X)},[X]),p$(()=>{if(typeof window>"u")return;let Q=window.Telegram?.WebApp?.CloudStorage;if(!Q)return;Q.setItem(Z,B)},[Z,B]),c$(n,{card:"CloudStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:H,methods:{update:({value:Q})=>{q(Q)},remove:()=>{let Q=window.Telegram?.WebApp?.CloudStorage;if(Q)Q.removeItem(Z);q("")}},children:c$("input",{type:"hidden",id:J,name:J,value:B})})},u$=JZ;var ZZ=s({name:"CloudStorageCard",component:u$,metadata:{author:"PieData"}});import{useEffect as l$,useState as GZ}from"react";import{jsx as d$}from"react/jsx-runtime";var XZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:H}=$,[B,q]=GZ(X);return l$(()=>{q(X)},[X]),l$(()=>{if(typeof window>"u")return;let Q=window.Telegram?.WebApp?.SecureStorage;if(!Q)return;Q.setItem(Z,B)},[Z,B]),d$(n,{card:"SecureStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:H,methods:{update:({value:Q})=>{q(Q)},remove:()=>{let Q=window.Telegram?.WebApp?.SecureStorage;if(Q)Q.removeItem(Z);q("")}},children:d$("input",{type:"hidden",id:J,name:J,value:B})})},s$=XZ;var YZ=s({name:"SecureStorageCard",component:s$,metadata:{author:"PieData"}});export{i as useWebApp,vJ as useInitData,YZ as SecureStorageCard,aJ as PieTelegramRoot,ZZ as CloudStorageCard};
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var MJ=Object.create;var{getPrototypeOf:IJ,defineProperty:c,getOwnPropertyNames:j$,getOwnPropertyDescriptor:OJ}=Object,N$=Object.prototype.hasOwnProperty;var PJ=($,J,Z)=>{Z=$!=null?MJ(IJ($)):{};let G=J||!$||!$.__esModule?c(Z,"default",{value:$,enumerable:!0}):Z;for(let Y of j$($))if(!N$.call(G,Y))c(G,Y,{get:()=>$[Y],enumerable:!0});return G},A$=new WeakMap,AJ=($)=>{var J=A$.get($),Z;if(J)return J;if(J=c({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")j$($).map((G)=>!N$.call(J,G)&&c(J,G,{get:()=>$[G],enumerable:!(Z=OJ($,G))||Z.enumerable}));return A$.set($,J),J};var jJ=($,J)=>{for(var Z in J)c($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(G)=>J[Z]=()=>G})};var tJ={};jJ(tJ,{useWebApp:()=>d,useInitData:()=>t$,SecureStorageCard:()=>KJ,PieTelegramRoot:()=>HJ,CloudStorageCard:()=>VJ});module.exports=AJ(tJ);var h=require("react"),m=require("@tanstack/react-query");var L$=PJ(require("mitt")),a=require("react");var U$=globalThis,T=($,J)=>{let Z=Symbol.for($);if(!(Z in U$))U$[Z]=J();return U$[Z]};function R$(){return T("@swarm.ing/pieui:mitt-emitter",()=>L$.default())}var NJ=T("@swarm.ing/pieui:context:mitt",()=>a.createContext(null));var n=NJ;var E$=require("socket.io-client"),x$=require("react");var w$=T("@swarm.ing/pieui:socket-cache",()=>new Map),y$=($)=>{let J=w$.get($);if(J)return J;let Z=E$.io($,{autoConnect:!1,transports:["websocket"]});return w$.set($,Z),Z},LJ=T("@swarm.ing/pieui:context:socket",()=>x$.createContext(null)),y=LJ;var b$=require("react"),W$=require("centrifuge");var C$=T("@swarm.ing/pieui:centrifuge-cache",()=>new Map),k$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,G=C$.get(Z);if(G)return G;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 W$.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let X=new W$.Centrifuge(J,{getToken:Y});return C$.set(Z,X),X},RJ=T("@swarm.ing/pieui:context:centrifuge",()=>b$.createContext(null)),C=RJ;var L=require("react");var e=require("react"),r=new Map,t=new Map;function $$($,J){let Z=`${$}::${J}`,G=$?r.get(Z):void 0,[Y,X]=e.useState(G??null);return e.useEffect(()=>{if(!$)return;if(r.has(Z)){X(r.get(Z));return}let z=t.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((B)=>B.json()).then((B)=>{return r.set(Z,B),t.delete(Z),B}).catch((B)=>{throw t.delete(Z),B}),t.set(Z,z);let Q=!1;return z.then((B)=>{if(!Q)X(B)}).catch(()=>{}),()=>{Q=!0}},[$,J,Z]),Y}var J$=require("react");var F$=T("@swarm.ing/pieui:context:pieConfig",()=>J$.createContext(null)),b=()=>{let $=J$.useContext(F$);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},V$=()=>{let{apiServer:$}=b();return $},Z$=V$,v$=()=>{let{centrifugeServer:$}=b();return $};var E=()=>{let{enableRenderingLog:$}=b();return $},S$=E,f$=()=>{let{pageProcessor:$}=b();return $};var G$=()=>{let{onLinkLost:$}=b();return $},X$=()=>{let{onLinkRestored:$}=b();return $};var wJ=($)=>{let J=document.cookie?document.cookie.split(";"):[];for(let Z of J){let G=Z.indexOf("=");if((G===-1?Z:Z.slice(0,G)).trim()===$){let X=G===-1?"":Z.slice(G+1).trim();try{return decodeURIComponent(X)}catch{return X}}}return null},EJ={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:wJ,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()}},h$=EJ;var xJ={};function x(){return xJ}var m$=new Map;var g$=($)=>{return m$.has($)?m$.get($):null};var p$,yJ={isClient(){return!0},readSid(){return p$},setSid($){p$=$},readWebStorage($,J){let Z=x(),G=$==="local"?Z.storage:Z.sessionStorage;return G?G.getItem(J):null},async readWebStorageAsync($,J){let Z=x(),G=$==="local"?Z.asyncStorage:Z.asyncSessionStorage;if(G)return G.getItem(J);let Y=$==="local"?Z.storage:Z.sessionStorage;return Y?Y.getItem(J):null},readCookie($){let J=x();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=x();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=x();return J.getInput?J.getInput($):g$($)},submitGlobalForm(){x().submitForm?.()}},c$=yJ;var CJ=typeof navigator<"u"&&navigator.product==="ReactNative",bJ=CJ?c$:h$,Y$=bJ;var kJ=T("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function l$(){kJ.resolve?.()}function k($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var vJ=({children:$})=>{let J=L.useContext(y),Z=Z$(),G=$$(Z,"socketIO"),Y=G$(),X=X$(),z=L.useRef(Y);z.current=Y;let Q=L.useRef(X);Q.current=X;let B=L.useRef("initial"),U=(H)=>{if(Y$.isClient())Y$.setSid(H.sid),l$(),console.log(`SocketIO initialized: ${Y$.readSid()}`)};return L.useEffect(()=>{if(!J||!G)return;let H=()=>{let{state:V,signal:D}=k(B.current,"up");if(B.current=V,D==="restored")Q.current?.("socketio");console.log("SocketIO connected")},W=(V)=>{if(console.log(`SocketIO disconnected: ${V}`),J.connect(),V==="io client disconnect")return;let{state:D,signal:K}=k(B.current,"down");if(B.current=D,K==="lost")z.current?.("socketio",V)};return J.on("pieinit",U),J.on("connect",H),J.on("disconnect",W),J.connect(),()=>{J.off("pieinit",U),J.off("connect",H),J.off("disconnect",W),J.disconnect()}},[J,G]),$},u$=vJ;var R=require("react");var SJ=({children:$})=>{let J=R.useContext(C),Z=Z$(),G=$$(Z,"centrifuge"),Y=G$(),X=X$(),z=R.useRef(Y);z.current=Y;let Q=R.useRef(X);Q.current=X;let B=R.useRef("initial");return R.useEffect(()=>{if(!J||!G)return;let U=(V)=>{let{state:D,signal:K}=k(B.current,"down");if(B.current=D,K==="lost")z.current?.("centrifuge",V)},H=()=>{let{state:V,signal:D}=k(B.current,"up");if(B.current=V,D==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},W=(V)=>{console.log("Centrifuge disconnected:",V),U(V)};return J.on("connecting",U),J.on("connected",H),J.on("disconnected",W),J.connect(),()=>{J.off("connecting",U),J.off("connected",H),J.off("disconnected",W),J.disconnect()}},[J,G]),$},d$=SJ;var s$=require("react");var z$=require("react/jsx-runtime"),fJ=T("@swarm.ing/pieui:context:fallback",()=>s$.createContext(z$.jsx(z$.Fragment,{}))),v=fJ;var o$=require("react");var hJ=T("@swarm.ing/pieui:context:lazyError",()=>o$.createContext(void 0)),S=hJ;var i$=require("react"),l=new Map;function mJ($,J){return J.catch(()=>{if(l.get($)===J)l.delete($)}),l.set($,J),J}function a$($,J){return i$.lazy(()=>{if(l.has(J))return l.get(J);return mJ(J,$().then((Z)=>Z))})}var n$=T("@swarm.ing/pieui:component-registry",()=>new Map),gJ=($)=>{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=a$(J.loader,$.name),J.isLazy=!0;return J};function B$($){let J=gJ($);return n$.set(J.name,J),J.component}var H$=($)=>{return n$.get($)};var u=require("react");var Q$=require("react"),r$=require("react/jsx-runtime"),pJ=2,cJ=400;class f extends Q$.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<pJ){let J=cJ*(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 r$.jsx(Q$.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var T$=require("react/jsx-runtime");function lJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=u.useContext(v),G=u.useContext(S),Y=E();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 X=H$($.card);if(!X?.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:X.name,isLazy:X.isLazy,hasMetadata:!!X.metadata});let z=X.component,Q=T$.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(X.isLazy){if(Y)console.log("[UI] Rendering lazy component with Suspense:",X.name);return T$.jsx(f,{name:X.name,fallback:X.fallback?T$.jsx(X.fallback,{}):Z,onError:G,children:Q})}if(Y)console.log("[UI] Rendering component directly:",X.name);return Q}var D$=u.memo(lJ);var BJ=require("axios-date-transformer");var _$=require("react");var d=({onError:$}={})=>{let[J,Z]=_$.useState(null),G=f$();return _$.useEffect(()=>{if(typeof window>"u")return;let Y=window.Telegram?.WebApp;if(!Y)return;try{Y.ready?.()}catch(X){$?.()}if(G==="telegram_expanded"&&(Y.platform==="ios"||Y.platform==="android"))Y.expand();Z(Y)},[]),J},t$=()=>{let $=d();return[$?.initDataUnsafe,$?.initData]};var e$=require("react");var uJ=T("@swarm.ing/pieui:context:navigate",()=>e$.createContext(void 0)),$J=uJ;var K$=require("react");var JJ=require("react");var dJ=T("@swarm.ing/pieui:context:uiRenderer",()=>JJ.createContext(null)),ZJ=dJ;var s=require("react/jsx-runtime");function GJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=K$.useContext(v),G=K$.useContext(S),Y=E();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 X=H$($.card);if(!X?.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:X.name,isLazy:X.isLazy,hasMetadata:!!X.metadata,hasFallback:!!X.fallback});if(X.fallback){if(Y)console.log("[UILoading] Rendering fallback for:",X.name);let B=X.fallback;return s.jsx(B,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",X.name);let z=X.component,Q=s.jsx(ZJ.Provider,{value:GJ,children:s.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(X.isLazy)return s.jsx(f,{name:X.name,fallback:Z,onError:G,children:Q});return Q}var XJ=GJ;var zJ=require("react/jsx-runtime");function YJ($,J,Z){if(!J)return Z;let G=$.replace(/^\//,""),Y=J[G];if(!Y)return Z;return zJ.jsx(XJ,{uiConfig:Y})}var F=require("react/jsx-runtime"),sJ=({location:$,fallback:J,piecache:Z,onError:G,queryOptions:Y,disableGlobalForm:X})=>{let z=V$(),Q=v$(),B=E(),U=h.useMemo(()=>BJ.createAxiosDateTransformer({baseURL:z}),[z]),H=h.useMemo(()=>R$(),[]),W=h.useMemo(()=>z?y$(z):null,[z]),V=h.useMemo(()=>z?k$(z,Q):null,[z,Q]),D=d({onError:G}),{data:K,isLoading:j,error:I}=m.useQuery({queryKey:["uiConfig",$.pathname+$.search,D?.initData],enabled:!!D?.initData,queryFn:async()=>{let O=new URLSearchParams($.search);if(O.set("__pieroot","telegram"),D?.initData)O.set("initData",D.initData);let A="/api/content"+$.pathname+"?"+O.toString();if(B)console.log("[PieRoot] Fetching UI configuration from:",A);let _=await U.get(A,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(B)console.log("[PieRoot] Received UI configuration:",_.data);return _.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(O)=>Math.min(1000*2**O,30000),...Y}),N=YJ($.pathname,Z,J);if(!z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(I&&B)return console.error("[PieRoot] Error fetching UI configuration:",I),console.error("[PieRoot] Error details:",{message:I.message,status:I.response?.status,data:I.response?.data}),G?.(I),N;if(j||!K){if(B)console.log("[PieRoot] Loading state:",{isLoading:j,hasUiConfiguration:!!K});return N}if(B)console.log("[PieRoot] UI configuration loaded successfully:",K),console.log("[PieRoot] Rendering UI with configuration");return F.jsx(n.Provider,{value:H,children:F.jsx(y.Provider,{value:W,children:F.jsx(C.Provider,{value:V,children:F.jsx(v.Provider,{value:J??F.jsx(F.Fragment,{}),children:F.jsx(u$,{children:F.jsx(d$,{children:X?F.jsx(D$,{uiConfig:K}):F.jsx("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:F.jsx(D$,{uiConfig:K})})})})})})})})},oJ=($)=>{let J=h.useMemo(()=>new m.QueryClient,[]),Z=$.queryClient??J;return F.jsx($J.Provider,{value:$.onNavigate,children:F.jsx(F$.Provider,{value:$.config,children:F.jsx(S.Provider,{value:$.onError,children:F.jsx(m.QueryClientProvider,{client:Z,children:F.jsx(sJ,{...$})})})})})},HJ=oJ;var o=require("react");var M=require("react");function QJ($){return $.wasRecovering===!0&&$.recovered===!1}function TJ($){return $.recoverable===!1}function _J($,J,Z){let G=$.getSubscription(J);if(G)return{subscription:G,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}var iJ=require("react");var qJ=new Map,UJ=($,J)=>{qJ.set($,J)},WJ=($)=>{qJ.delete($)};var g=require("react/jsx-runtime"),aJ=({card:$,data:J,children:Z,useSocketioSupport:G=!1,useCentrifugeSupport:Y=!1,useMittSupport:X=!1,centrifugeChannel:z=void 0,methods:Q=void 0,stored:B=void 0,onResync:U=void 0})=>{let H=S$(),W=M.useRef(Q);W.current=Q;let V=M.useRef(U);V.current=U;let D=M.useRef(B);D.current=B;let K=typeof B==="function";if(M.useEffect(()=>{if(!K)return;let O=J.name;return UJ(O,()=>[JSON.stringify(D.current())]),()=>WJ(O)},[K,J.name]),H)console.log("[PieCard] Rendering card:",$),console.log("[PieCard] Card data:",J),console.log("[PieCard] Component name:",J?.name),console.log("[PieCard] Real-time support:",{socketio:G,centrifuge:Y,mitt:X,centrifugeChannel:z}),console.log("[PieCard] Methods:",Q?Object.keys(Q):"none"),console.log("[PieCard] Has children:",!!Z);let j=M.useContext(y),I=M.useContext(C),N=M.useContext(n);if(M.useEffect(()=>{if(!j||!G||!W.current||!J.name){if(H&&G)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!j,useSocketioSupport:G,hasMethods:!!W.current,hasDataName:!!J?.name});return}let A=Object.keys(W.current??{}).map((_)=>{let q=`pie${_}_${J.name}`;if(H)console.log(`[PieCard] Socket.IO registering event: ${q}`);let P=(w)=>{W.current?.[_]?.(w)};return j.on(q,P),[q,P]});return()=>{A.forEach(([_,q])=>{if(H)console.log(`[PieCard] Socket.IO unregistering event: ${_}`);j.off(_,q)})}},[j,J.name,G]),M.useEffect(()=>{if(!I||!Y||!z||!J.name){if(H&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!I,useCentrifugeSupport:Y,hasCentrifugeChannel:!!z,hasMethods:!!W.current,hasDataName:!!J?.name});return}let A=Object.keys(W.current??{}).map((_)=>{let q=`pie${_}_${J.name}_${z}`;if(H)console.log(`[PieCard] Centrifuge subscribing to channel: ${q}`);let{subscription:P,createdHere:w}=_J(I,q,{recoverable:!0,positioned:!0}),O$=(p)=>{if(H)console.log(`[PieCard] Centrifuge received data on ${q}:`,p.data);W.current?.[_]?.(p.data)},P$=(p)=>{if(TJ(p))console.warn(`[PieCard] Centrifuge channel ${q} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(QJ(p)){if(H)console.log(`[PieCard] Centrifuge recovery gap on ${q}; requesting resync`);V.current?.({channel:q,reason:"gap"})}};return P.on("publication",O$),P.on("subscribed",P$),P.subscribe(),{subscription:P,createdHere:w,onPublication:O$,onSubscribed:P$}});return()=>{A.forEach(({subscription:_,createdHere:q,onPublication:P,onSubscribed:w})=>{if(H)console.log("[PieCard] Centrifuge unsubscribing from channel");if(_.off("publication",P),_.off("subscribed",w),q)_.unsubscribe(),I.removeSubscription(_)})}},[I,z,J.name,Y]),M.useEffect(()=>{if(!N||!X||!J.name){if(H&&X)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!N,useMittSupport:X,hasMethods:!!W.current,hasDataName:!!J?.name});return}let O=Object.keys(W.current??{}),A={};return O.forEach((_)=>{let q=`pie${_}_${J.name}`,P=(w)=>{if(H)console.log(`[PieCard] Mitt registering event: ${q}`);W.current?.[_]?.(w)};A[q]=P,N.on(q,P)}),()=>{Object.entries(A).forEach(([_,q])=>{if(H)console.log(`[PieCard] Mitt unregistering event: ${_}`);N.off(_,q)})}},[N,J.name,X]),H)console.log("[PieCard] Rendering complete, returning children");if(B!==void 0&&!K)return g.jsxs(g.Fragment,{children:[g.jsx("input",{type:"hidden",name:J.name,value:JSON.stringify(B)}),Z]});return Z},q$=aJ;var M$=require("react/jsx-runtime"),nJ=({data:$})=>{let{name:J,key:Z,value:G,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q}=$,[B,U]=o.useState(G);return o.useEffect(()=>{U(G)},[G]),o.useEffect(()=>{if(typeof window>"u")return;let H=window.Telegram?.WebApp?.CloudStorage;if(!H)return;H.setItem(Z,B)},[Z,B]),M$.jsx(q$,{card:"CloudStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{U(H)},remove:()=>{let H=window.Telegram?.WebApp?.CloudStorage;if(H)H.removeItem(Z);U("")}},children:M$.jsx("input",{type:"hidden",id:J,name:J,value:B})})},FJ=nJ;var VJ=B$({name:"CloudStorageCard",component:FJ,metadata:{author:"PieData"}});var i=require("react");var I$=require("react/jsx-runtime"),rJ=({data:$})=>{let{name:J,key:Z,value:G,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q}=$,[B,U]=i.useState(G);return i.useEffect(()=>{U(G)},[G]),i.useEffect(()=>{if(typeof window>"u")return;let H=window.Telegram?.WebApp?.SecureStorage;if(!H)return;H.setItem(Z,B)},[Z,B]),I$.jsx(q$,{card:"SecureStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{U(H)},remove:()=>{let H=window.Telegram?.WebApp?.SecureStorage;if(H)H.removeItem(Z);U("")}},children:I$.jsx("input",{type:"hidden",id:J,name:J,value:B})})},DJ=rJ;var KJ=B$({name:"SecureStorageCard",component:DJ,metadata:{author:"PieData"}});
2
+ var MJ=Object.create;var{getPrototypeOf:IJ,defineProperty:c,getOwnPropertyNames:j$,getOwnPropertyDescriptor:OJ}=Object,N$=Object.prototype.hasOwnProperty;var PJ=($,J,Z)=>{Z=$!=null?MJ(IJ($)):{};let G=J||!$||!$.__esModule?c(Z,"default",{value:$,enumerable:!0}):Z;for(let Y of j$($))if(!N$.call(G,Y))c(G,Y,{get:()=>$[Y],enumerable:!0});return G},A$=new WeakMap,AJ=($)=>{var J=A$.get($),Z;if(J)return J;if(J=c({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")j$($).map((G)=>!N$.call(J,G)&&c(J,G,{get:()=>$[G],enumerable:!(Z=OJ($,G))||Z.enumerable}));return A$.set($,J),J};var jJ=($,J)=>{for(var Z in J)c($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(G)=>J[Z]=()=>G})};var tJ={};jJ(tJ,{useWebApp:()=>d,useInitData:()=>t$,SecureStorageCard:()=>KJ,PieTelegramRoot:()=>QJ,CloudStorageCard:()=>VJ});module.exports=AJ(tJ);var h=require("react"),m=require("@tanstack/react-query");var L$=PJ(require("mitt")),a=require("react");var q$=globalThis,T=($,J)=>{let Z=Symbol.for($);if(!(Z in q$))q$[Z]=J();return q$[Z]};function R$(){return T("@swarm.ing/pieui:mitt-emitter",()=>L$.default())}var NJ=T("@swarm.ing/pieui:context:mitt",()=>a.createContext(null));var r=NJ;var E$=require("socket.io-client"),x$=require("react");var w$=T("@swarm.ing/pieui:socket-cache",()=>new Map),C$=($)=>{let J=w$.get($);if(J)return J;let Z=E$.io($,{autoConnect:!1,transports:["websocket"]});return w$.set($,Z),Z},LJ=T("@swarm.ing/pieui:context:socket",()=>x$.createContext(null)),C=LJ;var b$=require("react"),W$=require("centrifuge");var y$=T("@swarm.ing/pieui:centrifuge-cache",()=>new Map),k$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,G=y$.get(Z);if(G)return G;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 W$.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let X=new W$.Centrifuge(J,{getToken:Y});return y$.set(Z,X),X},RJ=T("@swarm.ing/pieui:context:centrifuge",()=>b$.createContext(null)),y=RJ;var L=require("react");var e=require("react"),n=new Map,t=new Map;function $$($,J){let Z=`${$}::${J}`,G=$?n.get(Z):void 0,[Y,X]=e.useState(G??null);return e.useEffect(()=>{if(!$)return;if(n.has(Z)){X(n.get(Z));return}let z=t.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((B)=>B.json()).then((B)=>{return n.set(Z,B),t.delete(Z),B}).catch((B)=>{throw t.delete(Z),B}),t.set(Z,z);let H=!1;return z.then((B)=>{if(!H)X(B)}).catch(()=>{}),()=>{H=!0}},[$,J,Z]),Y}var J$=require("react");var F$=T("@swarm.ing/pieui:context:pieConfig",()=>J$.createContext(null)),b=()=>{let $=J$.useContext(F$);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},V$=()=>{let{apiServer:$}=b();return $},Z$=V$,S$=()=>{let{centrifugeServer:$}=b();return $};var E=()=>{let{enableRenderingLog:$}=b();return $},v$=E,f$=()=>{let{pageProcessor:$}=b();return $};var G$=()=>{let{onLinkLost:$}=b();return $},X$=()=>{let{onLinkRestored:$}=b();return $};var wJ=($)=>{let J=document.cookie?document.cookie.split(";"):[];for(let Z of J){let G=Z.indexOf("=");if((G===-1?Z:Z.slice(0,G)).trim()===$){let X=G===-1?"":Z.slice(G+1).trim();try{return decodeURIComponent(X)}catch{return X}}}return null},EJ={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:wJ,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()}},h$=EJ;var xJ={};function x(){return xJ}var m$=new Map;var g$=($)=>{return m$.has($)?m$.get($):null};var p$,CJ={isClient(){return!0},readSid(){return p$},setSid($){p$=$},readWebStorage($,J){let Z=x(),G=$==="local"?Z.storage:Z.sessionStorage;return G?G.getItem(J):null},async readWebStorageAsync($,J){let Z=x(),G=$==="local"?Z.asyncStorage:Z.asyncSessionStorage;if(G)return G.getItem(J);let Y=$==="local"?Z.storage:Z.sessionStorage;return Y?Y.getItem(J):null},readCookie($){let J=x();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=x();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=x();return J.getInput?J.getInput($):g$($)},submitGlobalForm(){x().submitForm?.()}},c$=CJ;var yJ=typeof navigator<"u"&&navigator.product==="ReactNative",bJ=yJ?c$:h$,Y$=bJ;var kJ=T("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function u$(){kJ.resolve?.()}function k($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var SJ=({children:$})=>{let J=L.useContext(C),Z=Z$(),G=$$(Z,"socketIO"),Y=G$(),X=X$(),z=L.useRef(Y);z.current=Y;let H=L.useRef(X);H.current=X;let B=L.useRef("initial"),q=(Q)=>{if(Y$.isClient())Y$.setSid(Q.sid),u$(),console.log(`SocketIO initialized: ${Y$.readSid()}`)};return L.useEffect(()=>{if(!J||!G)return;let Q=()=>{let{state:V,signal:D}=k(B.current,"up");if(B.current=V,D==="restored")H.current?.("socketio");console.log("SocketIO connected")},W=(V)=>{if(console.log(`SocketIO disconnected: ${V}`),J.connect(),V==="io client disconnect")return;let{state:D,signal:K}=k(B.current,"down");if(B.current=D,K==="lost")z.current?.("socketio",V)};return J.on("pieinit",q),J.on("connect",Q),J.on("disconnect",W),J.connect(),()=>{J.off("pieinit",q),J.off("connect",Q),J.off("disconnect",W),J.disconnect()}},[J,G]),$},l$=SJ;var R=require("react");var vJ=({children:$})=>{let J=R.useContext(y),Z=Z$(),G=$$(Z,"centrifuge"),Y=G$(),X=X$(),z=R.useRef(Y);z.current=Y;let H=R.useRef(X);H.current=X;let B=R.useRef("initial");return R.useEffect(()=>{if(!J||!G)return;let q=(V)=>{let{state:D,signal:K}=k(B.current,"down");if(B.current=D,K==="lost")z.current?.("centrifuge",V)},Q=()=>{let{state:V,signal:D}=k(B.current,"up");if(B.current=V,D==="restored")H.current?.("centrifuge");console.log("Centrifuge connected")},W=(V)=>{console.log("Centrifuge disconnected:",V),q(V)};return J.on("connecting",q),J.on("connected",Q),J.on("disconnected",W),J.connect(),()=>{J.off("connecting",q),J.off("connected",Q),J.off("disconnected",W),J.disconnect()}},[J,G]),$},d$=vJ;var s$=require("react");var z$=require("react/jsx-runtime"),fJ=T("@swarm.ing/pieui:context:fallback",()=>s$.createContext(z$.jsx(z$.Fragment,{}))),S=fJ;var o$=require("react");var hJ=T("@swarm.ing/pieui:context:lazyError",()=>o$.createContext(void 0)),v=hJ;var i$=require("react"),u=new Map;function mJ($,J){return J.catch(()=>{if(u.get($)===J)u.delete($)}),u.set($,J),J}function a$($,J){return i$.lazy(()=>{if(u.has(J))return u.get(J);return mJ(J,$().then((Z)=>Z))})}var r$=T("@swarm.ing/pieui:component-registry",()=>new Map),gJ=($)=>{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=a$(J.loader,$.name),J.isLazy=!0;return J};function B$($){let J=gJ($);return r$.set(J.name,J),J.component}var Q$=($)=>{return r$.get($)};var l=require("react");var H$=require("react"),n$=require("react/jsx-runtime"),pJ=2,cJ=400;class f extends H$.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<pJ){let J=cJ*(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 n$.jsx(H$.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var T$=require("react/jsx-runtime");function uJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=l.useContext(S),G=l.useContext(v),Y=E();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 X=Q$($.card);if(!X?.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:X.name,isLazy:X.isLazy,hasMetadata:!!X.metadata});let z=X.component,H=T$.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(X.isLazy){if(Y)console.log("[UI] Rendering lazy component with Suspense:",X.name);return T$.jsx(f,{name:X.name,fallback:X.fallback?T$.jsx(X.fallback,{}):Z,onError:G,children:H})}if(Y)console.log("[UI] Rendering component directly:",X.name);return H}var D$=l.memo(uJ);var BJ=require("axios-date-transformer");var _$=require("react");var d=({onError:$}={})=>{let[J,Z]=_$.useState(null),G=f$();return _$.useEffect(()=>{if(typeof window>"u")return;let Y=window.Telegram?.WebApp;if(!Y)return;try{Y.ready?.()}catch(X){$?.()}if(G==="telegram_expanded"&&(Y.platform==="ios"||Y.platform==="android"))Y.expand();Z(Y)},[]),J},t$=()=>{let $=d();return[$?.initDataUnsafe,$?.initData]};var e$=require("react");var lJ=T("@swarm.ing/pieui:context:navigate",()=>e$.createContext(void 0)),$J=lJ;var K$=require("react");var JJ=require("react");var dJ=T("@swarm.ing/pieui:context:uiRenderer",()=>JJ.createContext(null)),ZJ=dJ;var s=require("react/jsx-runtime");function GJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=K$.useContext(S),G=K$.useContext(v),Y=E();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 X=Q$($.card);if(!X?.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:X.name,isLazy:X.isLazy,hasMetadata:!!X.metadata,hasFallback:!!X.fallback});if(X.fallback){if(Y)console.log("[UILoading] Rendering fallback for:",X.name);let B=X.fallback;return s.jsx(B,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",X.name);let z=X.component,H=s.jsx(ZJ.Provider,{value:GJ,children:s.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(X.isLazy)return s.jsx(f,{name:X.name,fallback:Z,onError:G,children:H});return H}var XJ=GJ;var zJ=require("react/jsx-runtime");function YJ($,J,Z){if(!J)return Z;let G=$.replace(/^\//,""),Y=J[G];if(!Y)return Z;return zJ.jsx(XJ,{uiConfig:Y})}var F=require("react/jsx-runtime"),sJ=({location:$,fallback:J,piecache:Z,onError:G,queryOptions:Y,disableGlobalForm:X})=>{let z=V$(),H=S$(),B=E(),q=h.useMemo(()=>BJ.createAxiosDateTransformer({baseURL:z}),[z]),Q=h.useMemo(()=>R$(),[]),W=h.useMemo(()=>z?C$(z):null,[z]),V=h.useMemo(()=>z?k$(z,H):null,[z,H]),D=d({onError:G}),{data:K,isLoading:j,error:I}=m.useQuery({queryKey:["uiConfig",$.pathname+$.search,D?.initData],enabled:!!D?.initData,queryFn:async()=>{let O=new URLSearchParams($.search);if(O.set("__pieroot","telegram"),D?.initData)O.set("initData",D.initData);let A="/api/content"+$.pathname+"?"+O.toString();if(B)console.log("[PieRoot] Fetching UI configuration from:",A);let _=await q.get(A,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(B)console.log("[PieRoot] Received UI configuration:",_.data);return _.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(O)=>Math.min(1000*2**O,30000),...Y}),N=YJ($.pathname,Z,J);if(!z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(I&&B)return console.error("[PieRoot] Error fetching UI configuration:",I),console.error("[PieRoot] Error details:",{message:I.message,status:I.response?.status,data:I.response?.data}),G?.(I),N;if(j||!K){if(B)console.log("[PieRoot] Loading state:",{isLoading:j,hasUiConfiguration:!!K});return N}if(B)console.log("[PieRoot] UI configuration loaded successfully:",K),console.log("[PieRoot] Rendering UI with configuration");return F.jsx(r.Provider,{value:Q,children:F.jsx(C.Provider,{value:W,children:F.jsx(y.Provider,{value:V,children:F.jsx(S.Provider,{value:J??F.jsx(F.Fragment,{}),children:F.jsx(l$,{children:F.jsx(d$,{children:X?F.jsx(D$,{uiConfig:K}):F.jsx("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:F.jsx(D$,{uiConfig:K})})})})})})})})},oJ=($)=>{let J=h.useMemo(()=>new m.QueryClient,[]),Z=$.queryClient??J;return F.jsx($J.Provider,{value:$.onNavigate,children:F.jsx(F$.Provider,{value:$.config,children:F.jsx(v.Provider,{value:$.onError,children:F.jsx(m.QueryClientProvider,{client:Z,children:F.jsx(sJ,{...$})})})})})},QJ=oJ;var o=require("react");var M=require("react");function HJ($){return $.wasRecovering===!0&&$.recovered===!1}function TJ($){return $.recoverable===!1}function _J($,J,Z){let G=$.getSubscription(J);if(G)return{subscription:G,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}var iJ=require("react");var UJ=new Map,qJ=($,J)=>{UJ.set($,J)},WJ=($)=>{UJ.delete($)};var g=require("react/jsx-runtime"),aJ=({card:$,data:J,children:Z,useSocketioSupport:G=!1,useCentrifugeSupport:Y=!1,useMittSupport:X=!1,centrifugeChannel:z=void 0,methods:H=void 0,stored:B=void 0,onResync:q=void 0})=>{let Q=v$(),W=M.useRef(H);W.current=H;let V=M.useRef(q);V.current=q;let D=M.useRef(B);D.current=B;let K=typeof B==="function";if(M.useEffect(()=>{if(!K)return;let O=J.name;return qJ(O,()=>[JSON.stringify(D.current())]),()=>WJ(O)},[K,J.name]),Q)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:G,centrifuge:Y,mitt:X,centrifugeChannel:z}),console.log("[PieCard] Methods:",H?Object.keys(H):"none"),console.log("[PieCard] Has children:",!!Z);let j=M.useContext(C),I=M.useContext(y),N=M.useContext(r);if(M.useEffect(()=>{if(!j||!G||!W.current||!J.name){if(Q&&G)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!j,useSocketioSupport:G,hasMethods:!!W.current,hasDataName:!!J?.name});return}let A=Object.keys(W.current??{}).map((_)=>{let U=`pie${_}_${J.name}`;if(Q)console.log(`[PieCard] Socket.IO registering event: ${U}`);let P=(w)=>{W.current?.[_]?.(w)};return j.on(U,P),[U,P]});return()=>{A.forEach(([_,U])=>{if(Q)console.log(`[PieCard] Socket.IO unregistering event: ${_}`);j.off(_,U)})}},[j,J.name,G]),M.useEffect(()=>{if(!I||!Y||!z||!J.name){if(Q&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!I,useCentrifugeSupport:Y,hasCentrifugeChannel:!!z,hasMethods:!!W.current,hasDataName:!!J?.name});return}let A=Object.keys(W.current??{}).map((_)=>{let U=`pie${_}_${J.name}_${z}`;if(Q)console.log(`[PieCard] Centrifuge subscribing to channel: ${U}`);let{subscription:P,createdHere:w}=_J(I,U,{recoverable:!0,positioned:!0}),O$=(p)=>{if(Q)console.log(`[PieCard] Centrifuge received data on ${U}:`,p.data);W.current?.[_]?.(p.data)},P$=(p)=>{if(TJ(p))console.warn(`[PieCard] Centrifuge channel ${U} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(HJ(p)){if(Q)console.log(`[PieCard] Centrifuge recovery gap on ${U}; requesting resync`);V.current?.({channel:U,reason:"gap"})}};return P.on("publication",O$),P.on("subscribed",P$),P.subscribe(),{subscription:P,createdHere:w,onPublication:O$,onSubscribed:P$}});return()=>{A.forEach(({subscription:_,createdHere:U,onPublication:P,onSubscribed:w})=>{if(Q)console.log("[PieCard] Centrifuge unsubscribing from channel");if(_.off("publication",P),_.off("subscribed",w),U)_.unsubscribe(),I.removeSubscription(_)})}},[I,z,J.name,Y]),M.useEffect(()=>{if(!N||!X||!J.name){if(Q&&X)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!N,useMittSupport:X,hasMethods:!!W.current,hasDataName:!!J?.name});return}let O=Object.keys(W.current??{}),A={};return O.forEach((_)=>{let U=`pie${_}_${J.name}`,P=(w)=>{if(Q)console.log(`[PieCard] Mitt registering event: ${U}`);W.current?.[_]?.(w)};A[U]=P,N.on(U,P)}),()=>{Object.entries(A).forEach(([_,U])=>{if(Q)console.log(`[PieCard] Mitt unregistering event: ${_}`);N.off(_,U)})}},[N,J.name,X]),Q)console.log("[PieCard] Rendering complete, returning children");if(B!==void 0&&!K)return g.jsxs(g.Fragment,{children:[g.jsx("input",{type:"hidden",name:J.name,value:JSON.stringify(B)}),Z]});return Z},U$=aJ;var M$=require("react/jsx-runtime"),rJ=({data:$})=>{let{name:J,key:Z,value:G,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:H}=$,[B,q]=o.useState(G);return o.useEffect(()=>{q(G)},[G]),o.useEffect(()=>{if(typeof window>"u")return;let Q=window.Telegram?.WebApp?.CloudStorage;if(!Q)return;Q.setItem(Z,B)},[Z,B]),M$.jsx(U$,{card:"CloudStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:H,methods:{update:({value:Q})=>{q(Q)},remove:()=>{let Q=window.Telegram?.WebApp?.CloudStorage;if(Q)Q.removeItem(Z);q("")}},children:M$.jsx("input",{type:"hidden",id:J,name:J,value:B})})},FJ=rJ;var VJ=B$({name:"CloudStorageCard",component:FJ,metadata:{author:"PieData"}});var i=require("react");var I$=require("react/jsx-runtime"),nJ=({data:$})=>{let{name:J,key:Z,value:G,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:H}=$,[B,q]=i.useState(G);return i.useEffect(()=>{q(G)},[G]),i.useEffect(()=>{if(typeof window>"u")return;let Q=window.Telegram?.WebApp?.SecureStorage;if(!Q)return;Q.setItem(Z,B)},[Z,B]),I$.jsx(U$,{card:"SecureStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:H,methods:{update:({value:Q})=>{q(Q)},remove:()=>{let Q=window.Telegram?.WebApp?.SecureStorage;if(Q)Q.removeItem(Z);q("")}},children:I$.jsx("input",{type:"hidden",id:J,name:J,value:B})})},DJ=nJ;var KJ=B$({name:"SecureStorageCard",component:DJ,metadata:{author:"PieData"}});