@swarm.ing/pieui 3.0.10 → 3.0.11

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 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};
2
+ import{lazy as pJ}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 pJ(()=>{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,M=($,J)=>{let Z=Symbol.for($);if(!(Z in N$))N$[Z]=J();return N$[Z]};var m=M("@swarm.ing/pieui:component-registry",()=>new Map),dJ=($)=>{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=dJ($);return m.set(J.name,J),J.component}var cJ=($)=>{$.forEach((J)=>_$(J))},uJ=($)=>{m.delete($)},lJ=($)=>{return m.has($)},sJ=($)=>{return m.get($)?.metadata},X$=($)=>{return m.get($)},oJ=()=>{return Array.from(m.keys())},iJ=()=>{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,aJ=()=>{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 uZ,Pressable as lZ,View as sZ}from"react-native";import{useContext as y$,useEffect as D$,useRef as k$}from"react";import{createContext as nJ,useContext as rJ}from"react";var d=M("@swarm.ing/pieui:context:pieConfig",()=>nJ(null)),c=()=>{let $=rJ(d);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},o=()=>{let{apiServer:$}=c();return $},B$=o,n=()=>{let{centrifugeServer:$}=c();return $};var C=()=>{let{enableRenderingLog:$}=c();return $},YJ=C;var H$=()=>{let{onLinkLost:$}=c();return $},q$=()=>{let{onLinkRestored:$}=c();return $},j$="__piedemo__";import{createContext as tJ}from"react";import{Centrifuge as WJ}from"centrifuge";var zJ=M("@swarm.ing/pieui:centrifuge-cache",()=>new Map),r=($,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},eJ=M("@swarm.ing/pieui:context:centrifuge",()=>tJ(null)),f=eJ;import{io as $Z}from"socket.io-client";import{createContext as JZ}from"react";var GJ=M("@swarm.ing/pieui:socket-cache",()=>new Map),t=($)=>{let J=GJ.get($);if(J)return J;let Z=$Z($,{autoConnect:!1,transports:["websocket"]});return GJ.set($,Z),Z},ZZ=M("@swarm.ing/pieui:context:socket",()=>JZ(null)),h=ZZ;import XZ from"mitt";import{createContext as YZ,useCallback as WZ,useContext as zZ}from"react";function u(){return M("@swarm.ing/pieui:mitt-emitter",()=>XZ())}var QJ=M("@swarm.ing/pieui:context:mitt",()=>YZ(null));function GZ($){let J=zZ(QJ);return WZ((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 QZ=($)=>{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},_Z={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:QZ,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=_Z;var K$={};function BZ($){K$={...K$,...$}}function R(){return K$}function HZ(){K$={}}var T$=new Map,i=($,J)=>{T$.set($,J)},a=($)=>{T$.delete($)},E$=($)=>{return T$.has($)?T$.get($):null};var KJ,qZ={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=qZ;var KZ=typeof navigator<"u"&&navigator.product==="ReactNative",TZ=KZ?TJ:qJ,w=TZ;var Y$=M("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function VJ(){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 DJ}from"react";var VZ=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],DZ=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 G=Z.createElement("input");G.type="hidden",G.name=X,G.value=z,G.setAttribute("data-pie-stored","1"),J.appendChild(G)}}},V$=($)=>{if($==="sid")return{source:"sid",key:"sid"};for(let J of VZ){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}=V$($);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(DZ.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},UZ=($,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,(G,Q)=>{if(G){if(Z)console.warn(`Failed to read ${W} key ${J}:`,G);z([]);return}if(Q==null||Q===""){if(Z)console.warn(`No ${W} value found for key ${J}`);z([]);return}z([Q])})}catch(G){if(Z)console.warn(`Failed to read ${W} key ${J}:`,G);z([])}})},OJ=async($,J=!1)=>{let{source:Z,key:X}=V$($);if(Z==="telegram:cloud"||Z==="telegram:secure")return UZ(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)},FZ=($)=>{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($)},MZ=($)=>{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},AZ=($,J,Z)=>{let X={method:"POST",credentials:"include"},Y={},W=[J];for(let G of Z){if(!G)continue;let{headers:Q,signal:_,body:H,...T}=G;Object.assign(X,T);for(let[q,A]of FZ(Q))Y[q.toLowerCase()]=A;W.push(_)}if(X.body=$,Object.keys(Y).length>0)X.headers=Y;let z=MZ(W);if(z)X.signal=z;return X},IJ=($,J={},Z=[],X,Y)=>{let W=Y?.renderingLogEnabled??!1,z=Y?.timeout,G=Y?.retryPolicy,Q=G?.maxRetries??0,_=G?.baseDelay??1000,H=G?.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 A=Y?.apiServer;if(!A){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 D=new FormData;for(let[K,F]of Object.entries({...J,...T}))D.append(K,F);for(let K of Z){let{key:F}=V$(K);for(let P of await OJ(K,W))D.append(F,P)}let I=A+"api/ajax_content"+X;$(null);let U;for(let K=0;K<=Q;K++){if(K>0){let B=_*2**(K-1);if(W)console.log(`AJAX retry ${K}/${Q} after ${B}ms`);await new Promise((V)=>setTimeout(V,B))}let F=z!=null?new AbortController:null,P=F&&setTimeout(()=>F.abort(),z);try{let B=await fetch(I,AZ(D,F?.signal,[Y?.fetchOptions,q]));if(P)clearTimeout(P);if(!B.ok&&H.includes(B.status)&&K<Q){U=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:vJ}=await l.read();if(P$)break;x+=Q$.decode(vJ,{stream:!0});let t$=x.split(`
3
+ `);x=t$.pop()??"";for(let mJ of t$){let w$=mJ.trim();if(!w$)continue;try{let gJ=JSON.parse(w$);$([gJ])}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(U=B,K<Q)continue;if(W)console.error("AJAX request failed:",B);return $(null),B}}if(W)console.error("AJAX request failed after retries:",U);return $(null),U}},OZ=($,J={},Z=[],X,Y)=>{let{apiServer:W,enableRenderingLog:z}=c(),G=JSON.stringify(J),Q=JSON.stringify(Z),_=JSON.stringify(Y);return DJ(()=>IJ($,J,Z,X,{apiServer:W,renderingLogEnabled:z,timeout:Y?.timeout,retryPolicy:Y?.retryPolicy,fetchOptions:Y?.fetchOptions}),[$,G,Q,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},IZ=($={},J,Z)=>{let{apiServer:X,enableRenderingLog:Y}=c(),W=JSON.stringify($??{}),z=JSON.stringify(Z);return DJ(()=>{let G={};for(let Q of PJ($??{}))G[Q.key]=IJ(J,Q.kwargs,Q.depsNames,Q.pathname,{apiServer:X,renderingLogEnabled:Y,timeout:Z?.timeout,retryPolicy:Z?.retryPolicy,fetchOptions:Z?.fetchOptions});return G},[W,J,X,Y,z])};import{jsx as LZ,jsxs as NZ,Fragment as wZ}from"react/jsx-runtime";var PZ=({card:$,data:J,children:Z,useSocketioSupport:X=!1,useCentrifugeSupport:Y=!1,useMittSupport:W=!1,centrifugeChannel:z=void 0,methods:G=void 0,stored:Q=void 0,onResync:_=void 0})=>{let H=YJ(),T=k$(G);T.current=G;let q=k$(_);q.current=_;let A=k$(Q);A.current=Q;let D=typeof Q==="function";if(D$(()=>{if(!D)return;let F=J.name;return UJ(F,()=>[JSON.stringify(A.current())]),()=>FJ(F)},[D,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:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!Z);let I=y$(h),U=y$(f),K=y$(v);if(D$(()=>{if(!I||!X||!T.current||!J.name){if(H&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!I,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 I.on(V,E),[V,E]});return()=>{P.forEach(([B,V])=>{if(H)console.log(`[PieCard] Socket.IO unregistering event: ${B}`);I.off(B,V)})}},[I,J.name,X]),D$(()=>{if(!U||!Y||!z||!J.name){if(H&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!U,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(U,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(),U.removeSubscription(B)})}},[U,z,J.name,Y]),D$(()=>{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 F=Object.keys(T.current??{}),P={};return F.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(Q!==void 0&&!D)return NZ(wZ,{children:[LZ("input",{type:"hidden",name:J.name,value:JSON.stringify(Q)}),Z]});return Z},O=PZ;import{useContext as wJ,memo as vZ}from"react";import{createContext as jZ}from"react";import{jsx as yZ,Fragment as RZ}from"react/jsx-runtime";var EZ=M("@swarm.ing/pieui:context:fallback",()=>jZ(yZ(RZ,{}))),N=EZ;import{createContext as kZ}from"react";var bZ=M("@swarm.ing/pieui:context:lazyError",()=>kZ(void 0)),g=bZ;import{Component as xZ,Suspense as SZ}from"react";import{jsx as hZ}from"react/jsx-runtime";var CZ=2,fZ=400;class e extends xZ{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<CZ){let J=fZ*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((Z)=>({failed:!1,attempt:Z.attempt+1}))},J)}}componentDidUpdate($){if($.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return hZ(SZ,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as b$}from"react/jsx-runtime";function mZ({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,G=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:G})}if(Y)console.log("[UI] Rendering component directly:",W.name);return G}var L=vZ(mZ);import{createContext as gZ}from"react";var pZ=M("@swarm.ing/pieui:context:navigate",()=>gZ(void 0)),S=pZ;import{createContext as dZ}from"react";var cZ=M("@swarm.ing/pieui:context:uiRenderer",()=>dZ(null)),y=cZ;import{jsx as U$}from"react/jsx-runtime";var oZ=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),iZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,url:Y,sx:W}=$,z=LJ(S),G=LJ(y)??L,Q=()=>{if(!Y)return;if(oZ(Y))uZ.openURL(Y).catch(()=>{});else z?.(Y)},_=U$(G,{setUiAjaxConfiguration:Z,uiConfig:J});return U$(O,{card:X,data:$,children:Y?U$(lZ,{onPress:Q,style:W,children:_}):U$(sZ,{style:W,children:_})})},x$=iZ;import{useContext as aZ}from"react";import{View as nZ}from"react-native";import{jsx as S$}from"react/jsx-runtime";var rZ=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=aZ(y)??L;return S$(O,{card:X,data:$,children:S$(nZ,{style:Y,children:J.map((z,G)=>S$(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${G}`))})})},C$=rZ;import{useContext as tZ}from"react";import{View as eZ}from"react-native";import{jsx as f$}from"react/jsx-runtime";var $0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=tZ(y)??L;return f$(O,{card:X,data:$,children:f$(eZ,{style:Y,children:J.map((z,G)=>f$(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${G}`))})})},h$=$0;import{useEffect as NJ,useState as J0}from"react";import{jsx as X0}from"react/jsx-runtime";var Z0=({data:$})=>{let{name:J,value:Z,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z}=$,[G,Q]=J0(Z);return NJ(()=>{Q(Z)},[Z]),NJ(()=>{return i(J,[G]),()=>a(J)},[J,G]),X0(O,{card:"HiddenCard",data:$,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z,methods:{update:({value:_})=>{Q(_)}}})},v$=Z0;import{useEffect as jJ,useState as Y0}from"react";import{jsx as z0}from"react/jsx-runtime";var W0=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:G}=$,[Q,_]=Y0(X);return jJ(()=>{_(X)},[X]),jJ(()=>{return R().storage?.setItem?.(Z,Q),i(J,[Q]),()=>a(J)},[Z,J,Q]),z0(O,{card:"DeviceStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:G,methods:{update:({value:H})=>{_(H)},remove:()=>{R().storage?.removeItem?.(Z),_("")}}})},m$=W0;import{useEffect as EJ,useState as G0}from"react";import{jsx as _0}from"react/jsx-runtime";var Q0=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:G}=$,[Q,_]=G0(X);return EJ(()=>{_(X)},[X]),EJ(()=>{return R().sessionStorage?.setItem?.(Z,Q),i(J,[Q]),()=>a(J)},[Z,J,Q]),_0(O,{card:"SessionStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:G,methods:{update:({value:H})=>{_(H)},remove:()=>{R().sessionStorage?.removeItem?.(Z),_("")}}})},g$=Q0;import{useContext as B0,useMemo as H0,useRef as q0}from"react";import{Alert as K0,Linking as T0}from"react-native";import{jsx as U0}from"react/jsx-runtime";var V0=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),D0=({data:$})=>{let{useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y}=$,W=B0(S),z=q0(W);z.current=W;let G=H0(()=>{let Q=(_)=>{if(!_)return;if(V0(_))T0.openURL(_).catch(()=>{});else z.current?.(_)};return{alert:(_)=>K0.alert(String(_.title??""),String(_.message??"")),log:(_)=>console.log("Log event",_),push:(_)=>console.warn("[IOEventsCard] push notifications are not supported on native",_?.title),redirect:(_)=>Q(_.to),reload:(_)=>Q(_.to)}},[]);return U0(O,{card:"IOEventsCard",data:$,useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y,methods:G})},p$=D0;import{useEffect as F0,useState as M0}from"react";import{Text as A0}from"react-native";import{jsx as RJ}from"react/jsx-runtime";var O0=($)=>($??"").replace(/<[^>]*>/g,"").replace(/&nbsp;/g," ").replace(/\s+/g," ").trim(),I0=({data:$})=>{let{html:J,useSocketioSupport:Z,useCentrifugeSupport:X,useMittSupport:Y,centrifugeChannel:W}=$,[z,G]=M0(J);return F0(()=>{G(J)},[J]),RJ(O,{card:"HTMLEmbedCard",data:$,methods:{update:(Q)=>G(Q.value)},useCentrifugeSupport:X,useSocketioSupport:Z,useMittSupport:Y,centrifugeChannel:W,children:RJ(A0,{children:O0(z)})})},d$=I0;import{useContext as yJ,useEffect as P0}from"react";import{Linking as w0}from"react-native";import{jsx as j0,Fragment as N0}from"react/jsx-runtime";var L0=({data:$})=>{let{url:J}=$,Z=yJ(S),X=yJ(N);return P0(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(J))w0.openURL(J).catch(()=>{});else Z?.(J)},[J,Z]),j0(N0,{children:X})},c$=L0;import{useContext as E0}from"react";import{jsx as kJ}from"react/jsx-runtime";var R0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X}=$,Y=E0(y)??L;return kJ(O,{card:X,data:$,children:J.map((W,z)=>{return kJ(Y,{uiConfig:W,setUiAjaxConfiguration:Z},`children-${z}`)})})},u$=R0;import{useCallback as l$,useContext as s$,useEffect as y0,useRef as k0,useState as bJ}from"react";import{jsx as xJ}from"react/jsx-runtime";var b0=({data:$,content:J})=>{let{useLoader:Z,noReturn:X,returnType:Y,useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:G,centrifugeChannel:Q}=$,_=s$(N),H=s$(y)??L,[T,q]=bJ(!1),[A,D]=bJ(null),I=k0(J),U=s$(v),K=l$((B)=>{if(B===null)q(!0);else if(q(!1),!X)I.current=B;if(!X)D(B)},[X]),F=l$((B)=>{I.current=B.content,D(B.content)},[]),P=l$((B)=>{if(B===null)q(!0);else if(q(!1),!X)for(let V of B)U?.emit(V.name,V.data)},[X,U]);if(y0(()=>{D(J),q(!1)},[J]),!A&&Z)return _;return xJ(O,{card:"AjaxGroupCard",data:$,methods:{changeContent:F},useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:G,centrifugeChannel:Q,children:xJ(H,{uiConfig:A??I.current,setUiAjaxConfiguration:Y==="events"?P:K})})},o$=b0;var x0=[{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:d$},{name:"AutoRedirectCard",component:c$},{name:"UnionCard",component:u$},{name:"AjaxGroupCard",component:o$}];for(let $ of x0)_$($);import{useMemo as z$}from"react";import{QueryClient as c0,QueryClientProvider as u0,useQuery as l0}from"@tanstack/react-query";import{createAxiosDateTransformer as s0}from"axios-date-transformer";import{Platform as o0}from"react-native";import{useContext as f0,useEffect as h0,useRef as i$}from"react";import{useEffect as S0,useState as C0}from"react";var F$=new Map,M$=new Map;function A$($,J){let Z=`${$}::${J}`,X=$?F$.get(Z):void 0,[Y,W]=C0(X??null);return S0(()=>{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((Q)=>Q.json()).then((Q)=>{return F$.set(Z,Q),M$.delete(Z),Q}).catch((Q)=>{throw M$.delete(Z),Q}),M$.set(Z,z);let G=!1;return z.then((Q)=>{if(!G)W(Q)}).catch(()=>{}),()=>{G=!0}},[$,J,Z]),Y}function $$($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var v0=({children:$})=>{let J=f0(h),Z=B$(),X=A$(Z,"socketIO"),Y=H$(),W=q$(),z=i$(Y);z.current=Y;let G=i$(W);G.current=W;let Q=i$("initial"),_=(H)=>{if(w.isClient())w.setSid(H.sid),VJ(),console.log(`SocketIO initialized: ${w.readSid()}`)};return h0(()=>{if(!J||!X)return;let H=()=>{let{state:q,signal:A}=$$(Q.current,"up");if(Q.current=q,A==="restored")G.current?.("socketio");console.log("SocketIO connected")},T=(q)=>{if(console.log(`SocketIO disconnected: ${q}`),J.connect(),q==="io client disconnect")return;let{state:A,signal:D}=$$(Q.current,"down");if(Q.current=A,D==="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$=v0;import{useContext as m0,useEffect as g0,useRef as a$}from"react";var p0=({children:$})=>{let J=m0(f),Z=B$(),X=A$(Z,"centrifuge"),Y=H$(),W=q$(),z=a$(Y);z.current=Y;let G=a$(W);G.current=W;let Q=a$("initial");return g0(()=>{if(!J||!X)return;let _=(q)=>{let{state:A,signal:D}=$$(Q.current,"down");if(Q.current=A,D==="lost")z.current?.("centrifuge",q)},H=()=>{let{state:q,signal:A}=$$(Q.current,"up");if(Q.current=q,A==="restored")G.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$=p0;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 Q=W.fallback;return O$(Q,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",W.name);let z=W.component,G=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:G});return G}var n$=CJ;import{jsx as d0}from"react/jsx-runtime";function I$($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),Y=J[X];if(!Y)return Z;return d0(n$,{uiConfig:Y})}import{jsx as k,Fragment as n0}from"react/jsx-runtime";var i0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y})=>{let W=o(),z=n(),G=C(),Q=z$(()=>s0({baseURL:W||""}),[W]),_=z$(()=>u(),[]),H=z$(()=>W?t(W):null,[W]),T=z$(()=>W?r(W,z):null,[W,z]),{data:q,isLoading:A,error:D}=l0({queryKey:["uiConfig",$.pathname+$.search,W],enabled:!!W,queryFn:async()=>{let U=new URLSearchParams($.search);U.set("__pieroot",o0.OS);let K="/api/content"+$.pathname+"?"+U.toString();if(G)console.log("[PieNativeRoot] Fetching UI configuration from:",K);let F=await Q.get(K,{headers:{"Content-type":"application/json"},withCredentials:!0});if(G)console.log("[PieNativeRoot] Received UI configuration:",F.data);return F.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(U)=>Math.min(1000*2**U,30000),...Y}),I=I$($.pathname,Z,J);if(!W)return I??null;if(D){if(G)console.error("[PieNativeRoot] Error fetching UI configuration:",D);return X?.(D),I}if(A||!q)return I;return k(v.Provider,{value:_,children:k(h.Provider,{value:H,children:k(f.Provider,{value:T,children:k(N.Provider,{value:J??k(n0,{}),children:k(J$,{children:k(Z$,{children:k(L,{uiConfig:q})})})})})})})},a0=($)=>{let J=z$(()=>new c0,[]),Z=$.queryClient??J;return k(S.Provider,{value:$.onNavigate,children:k(d.Provider,{value:$.config,children:k(g.Provider,{value:$.onError,children:k(u0,{client:Z,children:k(i0,{...$})})})})})},r0=a0;import{useMemo as r$,useState as t0}from"react";import{QueryClient as e0,QueryClientProvider as $1}from"@tanstack/react-query";import{jsx as b,Fragment as X1}from"react/jsx-runtime";var J1=({location:$,fallback:J,children:Z,disableGlobalForm:X})=>{let Y=o(),W=n(),z=C(),G=r$(()=>u(),[]),Q=r$(()=>Y?t(Y):null,[Y]),_=r$(()=>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:G,children:b(h.Provider,{value:Q,children:b(f.Provider,{value:_,children:b(N.Provider,{value:J??b(X1,{}),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})})})})})})})},Z1=($)=>{let[J]=t0(()=>new e0),Z=$.queryClient??J;return b(S.Provider,{value:$.onNavigate,children:b(d.Provider,{value:$.config,children:b(g.Provider,{value:$.onError,children:b($1,{client:Z,children:b(J1,{...$})})})})})},Y1=Z1;import{useMemo as G$}from"react";import{QueryClient as W1,QueryClientProvider as z1,useQuery as G1}from"@tanstack/react-query";import{createAxiosDateTransformer as Q1}from"axios-date-transformer";function fJ({apiServer:$,pathname:J,search:Z,root:X,initData:Y}){let W=new URLSearchParams(Z);if(W.set("__pieroot",X),Y)W.set("initData",Y);return`${$.replace(/\/$/,"")}/api/content${J}?${W.toString()}`}async function hJ($,J){if(!$||$.used||$.url!==J)return null;$.used=!0;try{return await $.promise}catch{return null}}import{jsx as j,Fragment as H1}from"react/jsx-runtime";var _1=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,configPrefetch:W,disableGlobalForm:z})=>{let G=o(),Q=n(),_=C(),H=G$(()=>Q1({baseURL:G||""}),[G]),T=G$(()=>u(),[]),q=G$(()=>G?t(G):null,[G]),A=G$(()=>G?r(G,Q):null,[G,Q]),{data:D,isLoading:I,error:U}=G1({queryKey:["uiConfig",$.pathname+$.search,G],enabled:!!G,queryFn:async()=>{let F=fJ({apiServer:G,pathname:$.pathname,search:$.search,root:"web"}),P=await hJ(W,F);if(P){if(_)console.log("[PieRoot] Using prefetched UI configuration");return P}if(_)console.log("[PieRoot] Fetching UI configuration from:",F);let B=await H.get(F,{withCredentials:!0});if(_)console.log("[PieRoot] Received UI configuration:",B.data);return B.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(F)=>Math.min(1000*2**F,30000),...Y}),K=I$($.pathname,Z,J);if(!G)return K??null;if(_)console.log("[PieRoot] Rendering with location:",$),console.log("[PieRoot] API_SERVER:",G),console.log("[PieRoot] CENTRIFUGE_SERVER:",Q),console.log("[PieRoot] Fallback provided:",!!J),console.log("[PieRoot] Piecache provided:",!!Z);if(U){if(_)console.error("[PieRoot] Error fetching UI configuration:",U),console.error("[PieRoot] Error details:",{message:U.message,status:U.response?.status,data:U.response?.data});return X?.(U),K}if(I||!D){if(_)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!D});return K}if(_)console.log("[PieRoot] UI configuration loaded successfully:",D),console.log("[PieRoot] Rendering UI with configuration");return j(v.Provider,{value:T,children:j(h.Provider,{value:q,children:j(f.Provider,{value:A,children:j(N.Provider,{value:J??j(H1,{}),children:j(J$,{children:j(Z$,{children:z?j(L,{uiConfig:D}):j("form",{id:"piedata_global_form",action:G+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:j(L,{uiConfig:D})})})})})})})})},B1=($)=>{let J=G$(()=>new W1,[]),Z=$.queryClient??J;return j(S.Provider,{value:$.onNavigate,children:j(d.Provider,{value:$.config,children:j(g.Provider,{value:$.onError,children:j(z1,{client:Z,children:j(_1,{...$})})})})})},q1=B1;var K1=()=>{MJ(),w.submitGlobalForm()};var T1=($,J)=>`${$}${j$}${J}`;export{GZ as usePieEmit,IZ as useAjaxSubmits,OZ as useAjaxSubmit,uJ as unregisterComponent,L$ as trackLazy,K1 as submitGlobalForm,i as setNativeField,HZ as resetNativeClientSources,m as registry,_$ as registerPieComponent,cJ as registerMultipleComponents,E$ as readNativeField,OJ as readAjaxKeyAsync,AJ as readAjaxKey,XJ as preloadComponent,aJ as prefetchLazyComponents,T1 as pieName,V$ as parseDepName,lJ as hasComponent,iJ as getRegistrySize,X$ as getRegistryEntry,R as getNativeClientConfig,ZJ as getLazyComponentNames,u as getEmitter,sJ as getComponentMeta,oJ as getAllRegisteredComponents,PJ as discoverAjaxEndpoints,BZ as configureNativeClientSources,a as clearNativeField,u$ as UnionCard,y as UIRendererContext,n$ as UILoading,L as UI,h as SocketIOContext,g$ as SessionStorageCard,C$ as SequenceCard,q1 as PieRoot,r0 as PieNativeRoot,d as PieConfigContext,O as PieCard,Y1 as PieBaseRoot,j$ as PIEBREAK,h$ as OneOfCard,v as MittContext,p$ as IOEventsCard,v$ as HiddenCard,d$ as HTMLEmbedCard,N as FallbackContext,m$ as DeviceStorageCard,f as CentrifugeIOContext,x$ as BoxCard,c$ as AutoRedirectCard,o$ as AjaxGroupCard};
@@ -1,3 +1,3 @@
1
1
  "use client";
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}`;
2
+ var cZ=Object.create;var{getPrototypeOf:uZ,defineProperty:U$,getOwnPropertyNames:RJ,getOwnPropertyDescriptor:lZ}=Object,yJ=Object.prototype.hasOwnProperty;var sZ=($,J,Z)=>{Z=$!=null?cZ(uZ($)):{};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,oZ=($)=>{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=lZ($,X))||Z.enumerable}));return EJ.set($,J),J};var iZ=($,J)=>{for(var Z in J)U$($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(X)=>J[Z]=()=>X})};var g0={};iZ(g0,{usePieEmit:()=>nJ,useAjaxSubmits:()=>HZ,useAjaxSubmit:()=>BZ,unregisterComponent:()=>fJ,trackLazy:()=>y$,submitGlobalForm:()=>vZ,setNativeField:()=>o,resetNativeClientSources:()=>ZZ,registry:()=>g,registerPieComponent:()=>F$,registerMultipleComponents:()=>CJ,readNativeField:()=>v$,readAjaxKeyAsync:()=>AJ,readAjaxKey:()=>MJ,preloadComponent:()=>VJ,prefetchLazyComponents:()=>pJ,pieName:()=>mZ,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:()=>hZ,PieNativeRoot:()=>bZ,PieConfigContext:()=>c,PieCard:()=>O,PieBaseRoot:()=>xZ,PIEBREAK:()=>C$,OneOfCard:()=>s$,MittContext:()=>v,IOEventsCard:()=>r$,HiddenCard:()=>o$,HTMLEmbedCard:()=>e$,FallbackContext:()=>j,DeviceStorageCard:()=>i$,CentrifugeIOContext:()=>f,BoxCard:()=>d$,AutoRedirectCard:()=>$J,AjaxGroupCard:()=>XJ});module.exports=oZ(g0);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,M=($,J)=>{let Z=Symbol.for($);if(!(Z in KJ))KJ[Z]=J();return KJ[Z]};var g=M("@swarm.ing/pieui:component-registry",()=>new Map),aZ=($)=>{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=aZ($);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),VJ=($)=>{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(()=>VJ(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 c=M("@swarm.ing/pieui:context:pieConfig",()=>k$.createContext(null)),s=()=>{let $=k$.useContext(c);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 $},dJ=p;var x$=()=>{let{onLinkLost:$}=s();return $},S$=()=>{let{onLinkRestored:$}=s();return $},C$="__piedemo__";var uJ=require("react"),DJ=require("centrifuge");var cJ=M("@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},nZ=M("@swarm.ing/pieui:context:centrifuge",()=>uJ.createContext(null)),f=nZ;var sJ=require("socket.io-client"),oJ=require("react");var lJ=M("@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},rZ=M("@swarm.ing/pieui:context:socket",()=>oJ.createContext(null)),h=rZ;var iJ=sZ(require("mitt")),Y$=require("react");function u(){return M("@swarm.ing/pieui:mitt-emitter",()=>iJ.default())}var aJ=M("@swarm.ing/pieui:context:mitt",()=>Y$.createContext(null));function nJ($){let J=Y$.useContext(aJ);return Y$.useCallback((Z,X)=>{(J??u()).emit(`pie${Z}_${$}`,X)},[$,J])}var v=aJ;function rJ($){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 tZ=($)=>{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},eZ={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:tZ,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=eZ;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,$0={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=$0;var J0=typeof navigator<"u"&&navigator.product==="ReactNative",Z0=J0?YZ:$Z,w=Z0;var M$=M("@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 X0=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],Y0=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 G=Z.createElement("input");G.type="hidden",G.name=X,G.value=z,G.setAttribute("data-pie-stored","1"),J.appendChild(G)}}},O$=($)=>{if($==="sid")return{source:"sid",key:"sid"};for(let J of X0){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(Y0.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},W0=($,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,(G,Q)=>{if(G){if(Z)console.warn(`Failed to read ${W} key ${J}:`,G);z([]);return}if(Q==null||Q===""){if(Z)console.warn(`No ${W} value found for key ${J}`);z([]);return}z([Q])})}catch(G){if(Z)console.warn(`Failed to read ${W} key ${J}:`,G);z([])}})},AJ=async($,J=!1)=>{let{source:Z,key:X}=O$($);if(Z==="telegram:cloud"||Z==="telegram:secure")return W0(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)},z0=($)=>{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($)},G0=($)=>{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},Q0=($,J,Z)=>{let X={method:"POST",credentials:"include"},Y={},W=[J];for(let G of Z){if(!G)continue;let{headers:Q,signal:_,body:H,...T}=G;Object.assign(X,T);for(let[q,A]of z0(Q))Y[q.toLowerCase()]=A;W.push(_)}if(X.body=$,Object.keys(Y).length>0)X.headers=Y;let z=G0(W);if(z)X.signal=z;return X},_Z=($,J={},Z=[],X,Y)=>{let W=Y?.renderingLogEnabled??!1,z=Y?.timeout,G=Y?.retryPolicy,Q=G?.maxRetries??0,_=G?.baseDelay??1000,H=G?.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 A=Y?.apiServer;if(!A){if(W)console.warn("AJAX skipped: apiServer is missing");return}if(!X||!$){if(W)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(Z.includes("sid"))await UJ();let D=new FormData;for(let[K,F]of Object.entries({...J,...T}))D.append(K,F);for(let K of Z){let{key:F}=O$(K);for(let P of await AJ(K,W))D.append(F,P)}let I=A+"api/ajax_content"+X;$(null);let U;for(let K=0;K<=Q;K++){if(K>0){let B=_*2**(K-1);if(W)console.log(`AJAX retry ${K}/${Q} after ${B}ms`);await new Promise((V)=>setTimeout(V,B))}let F=z!=null?new AbortController:null,P=F&&setTimeout(()=>F.abort(),z);try{let B=await fetch(I,Q0(D,F?.signal,[Y?.fetchOptions,q]));if(P)clearTimeout(P);if(!B.ok&&H.includes(B.status)&&K<Q){U=Error(`HTTP ${B.status}`);continue}let b=(B.headers.get("content-type")||"").includes("application/json");if(!!B.body?.getReader&&!b){let r=B.body.getReader(),R$=new TextDecoder,C="";while(!0){let{done:HJ,value:gZ}=await r.read();if(HJ)break;C+=R$.decode(gZ,{stream:!0});let jJ=C.split(`
3
+ `);C=jJ.pop()??"";for(let pZ of jJ){let qJ=pZ.trim();if(!qJ)continue;try{let dZ=JSON.parse(qJ);$([dZ])}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 r=await B.json();return $(r),r}}catch(B){if(P)clearTimeout(P);if(U=B,K<Q)continue;if(W)console.error("AJAX request failed:",B);return $(null),B}}if(W)console.error("AJAX request failed after retries:",U);return $(null),U}},BZ=($,J={},Z=[],X,Y)=>{let{apiServer:W,enableRenderingLog:z}=s(),G=JSON.stringify(J),Q=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}),[$,G,Q,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 G={};for(let Q of OJ($??{}))G[Q.key]=_Z(J,Q.kwargs,Q.depsNames,Q.pathname,{apiServer:X,renderingLogEnabled:Y,timeout:Z?.timeout,retryPolicy:Z?.retryPolicy,fetchOptions:Z?.fetchOptions});return G},[W,J,X,Y,z])};var W$=require("react/jsx-runtime"),_0=({card:$,data:J,children:Z,useSocketioSupport:X=!1,useCentrifugeSupport:Y=!1,useMittSupport:W=!1,centrifugeChannel:z=void 0,methods:G=void 0,stored:Q=void 0,onResync:_=void 0})=>{let H=dJ(),T=S.useRef(G);T.current=G;let q=S.useRef(_);q.current=_;let A=S.useRef(Q);A.current=Q;let D=typeof Q==="function";if(S.useEffect(()=>{if(!D)return;let F=J.name;return zZ(F,()=>[JSON.stringify(A.current())]),()=>GZ(F)},[D,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:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!Z);let I=S.useContext(h),U=S.useContext(f),K=S.useContext(v);if(S.useEffect(()=>{if(!I||!X||!T.current||!J.name){if(H&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!I,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 I.on(V,b),[V,b]});return()=>{P.forEach(([B,V])=>{if(H)console.log(`[PieCard] Socket.IO unregistering event: ${B}`);I.off(B,V)})}},[I,J.name,X]),S.useEffect(()=>{if(!U||!Y||!z||!J.name){if(H&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!U,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(U,V,{recoverable:!0,positioned:!0}),r=(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(rJ(C)){if(H)console.log(`[PieCard] Centrifuge recovery gap on ${V}; requesting resync`);q.current?.({channel:V,reason:"gap"})}};return b.on("publication",r),b.on("subscribed",R$),b.subscribe(),{subscription:b,createdHere:l,onPublication:r,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(),U.removeSubscription(B)})}},[U,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 F=Object.keys(T.current??{}),P={};return F.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(Q!==void 0&&!D)return W$.jsxs(W$.Fragment,{children:[W$.jsx("input",{type:"hidden",name:J.name,value:JSON.stringify(Q)}),Z]});return Z},O=_0;var I$=require("react");var qZ=require("react");var m$=require("react/jsx-runtime"),B0=M("@swarm.ing/pieui:context:fallback",()=>qZ.createContext(m$.jsx(m$.Fragment,{}))),j=B0;var KZ=require("react");var H0=M("@swarm.ing/pieui:context:lazyError",()=>KZ.createContext(void 0)),d=H0;var g$=require("react"),TZ=require("react/jsx-runtime"),q0=2,K0=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<q0){let J=K0*(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 T0({uiConfig:$,setUiAjaxConfiguration:J}){let Z=I$.useContext(j),X=I$.useContext(d),Y=p();if(Y)console.log("[UI] Rendering component:",$.card),console.log("[UI] Component data:",$.data),console.log("[UI] Component content:",$.content),console.log("[UI] Has setUiAjaxConfiguration:",!!J);let W=$$($.card);if(!W?.component){if(Y)console.warn(`[UI] Component not found in registry: ${$.card}`),console.log("[UI] Returning fallback component");return Z}if(Y)console.log("[UI] Found component in registry:",{name:W.name,isLazy:W.isLazy,hasMetadata:!!W.metadata});let z=W.component,G=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:G})}if(Y)console.log("[UI] Rendering component directly:",W.name);return G}var N=I$.memo(T0);var VZ=require("react");var V0=M("@swarm.ing/pieui:context:navigate",()=>VZ.createContext(void 0)),m=V0;var DZ=require("react");var D0=M("@swarm.ing/pieui:context:uiRenderer",()=>DZ.createContext(null)),x=D0;var P$=require("react/jsx-runtime"),U0=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),F0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,url:Y,sx:W}=$,z=IJ.useContext(m),G=IJ.useContext(x)??N,Q=()=>{if(!Y)return;if(U0(Y))G$.Linking.openURL(Y).catch(()=>{});else z?.(Y)},_=P$.jsx(G,{setUiAjaxConfiguration:Z,uiConfig:J});return P$.jsx(O,{card:X,data:$,children:Y?P$.jsx(G$.Pressable,{onPress:Q,style:W,children:_}):P$.jsx(G$.View,{style:W,children:_})})},d$=F0;var UZ=require("react"),FZ=require("react-native");var c$=require("react/jsx-runtime"),M0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=UZ.useContext(x)??N;return c$.jsx(O,{card:X,data:$,children:c$.jsx(FZ.View,{style:Y,children:J.map((z,G)=>c$.jsx(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${G}`))})})},u$=M0;var MZ=require("react"),AZ=require("react-native");var l$=require("react/jsx-runtime"),A0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X,sx:Y}=$,W=MZ.useContext(x)??N;return l$.jsx(O,{card:X,data:$,children:l$.jsx(AZ.View,{style:Y,children:J.map((z,G)=>l$.jsx(W,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${G}`))})})},s$=A0;var w$=require("react");var OZ=require("react/jsx-runtime"),O0=({data:$})=>{let{name:J,value:Z,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z}=$,[G,Q]=w$.useState(Z);return w$.useEffect(()=>{Q(Z)},[Z]),w$.useEffect(()=>{return o(J,[G]),()=>i(J)},[J,G]),OZ.jsx(O,{card:"HiddenCard",data:$,useSocketioSupport:X,useCentrifugeSupport:Y,useMittSupport:W,centrifugeChannel:z,methods:{update:({value:_})=>{Q(_)}}})},o$=O0;var L$=require("react");var IZ=require("react/jsx-runtime"),I0=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:G}=$,[Q,_]=L$.useState(X);return L$.useEffect(()=>{_(X)},[X]),L$.useEffect(()=>{return y().storage?.setItem?.(Z,Q),o(J,[Q]),()=>i(J)},[Z,J,Q]),IZ.jsx(O,{card:"DeviceStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:G,methods:{update:({value:H})=>{_(H)},remove:()=>{y().storage?.removeItem?.(Z),_("")}}})},i$=I0;var N$=require("react");var PZ=require("react/jsx-runtime"),P0=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:G}=$,[Q,_]=N$.useState(X);return N$.useEffect(()=>{_(X)},[X]),N$.useEffect(()=>{return y().sessionStorage?.setItem?.(Z,Q),o(J,[Q]),()=>i(J)},[Z,J,Q]),PZ.jsx(O,{card:"SessionStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:W,useMittSupport:z,centrifugeChannel:G,methods:{update:({value:H})=>{_(H)},remove:()=>{y().sessionStorage?.removeItem?.(Z),_("")}}})},a$=P0;var Q$=require("react"),n$=require("react-native");var wZ=require("react/jsx-runtime"),w0=($)=>/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($),L0=({data:$})=>{let{useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y}=$,W=Q$.useContext(m),z=Q$.useRef(W);z.current=W;let G=Q$.useMemo(()=>{let Q=(_)=>{if(!_)return;if(w0(_))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:(_)=>Q(_.to),reload:(_)=>Q(_.to)}},[]);return wZ.jsx(O,{card:"IOEventsCard",data:$,useCentrifugeSupport:J,useSocketioSupport:Z,useMittSupport:X,centrifugeChannel:Y,methods:G})},r$=L0;var t$=require("react"),LZ=require("react-native");var PJ=require("react/jsx-runtime"),N0=($)=>($??"").replace(/<[^>]*>/g,"").replace(/&nbsp;/g," ").replace(/\s+/g," ").trim(),j0=({data:$})=>{let{html:J,useSocketioSupport:Z,useCentrifugeSupport:X,useMittSupport:Y,centrifugeChannel:W}=$,[z,G]=t$.useState(J);return t$.useEffect(()=>{G(J)},[J]),PJ.jsx(O,{card:"HTMLEmbedCard",data:$,methods:{update:(Q)=>G(Q.value)},useCentrifugeSupport:X,useSocketioSupport:Z,useMittSupport:Y,centrifugeChannel:W,children:PJ.jsx(LZ.Text,{children:N0(z)})})},e$=j0;var j$=require("react"),NZ=require("react-native");var JJ=require("react/jsx-runtime"),E0=({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=E0;var jZ=require("react");var wJ=require("react/jsx-runtime"),R0=({data:$,content:J,setUiAjaxConfiguration:Z})=>{let{name:X}=$,Y=jZ.useContext(x)??N;return wJ.jsx(O,{card:X,data:$,children:J.map((W,z)=>{return wJ.jsx(Y,{uiConfig:W,setUiAjaxConfiguration:Z},`children-${z}`)})})},ZJ=R0;var k=require("react");var LJ=require("react/jsx-runtime"),y0=({data:$,content:J})=>{let{useLoader:Z,noReturn:X,returnType:Y,useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:G,centrifugeChannel:Q}=$,_=k.useContext(j),H=k.useContext(x)??N,[T,q]=k.useState(!1),[A,D]=k.useState(null),I=k.useRef(J),U=k.useContext(v),K=k.useCallback((B)=>{if(B===null)q(!0);else if(q(!1),!X)I.current=B;if(!X)D(B)},[X]),F=k.useCallback((B)=>{I.current=B.content,D(B.content)},[]),P=k.useCallback((B)=>{if(B===null)q(!0);else if(q(!1),!X)for(let V of B)U?.emit(V.name,V.data)},[X,U]);if(k.useEffect(()=>{D(J),q(!1)},[J]),!A&&Z)return _;return LJ.jsx(O,{card:"AjaxGroupCard",data:$,methods:{changeContent:F},useSocketioSupport:W,useCentrifugeSupport:z,useMittSupport:G,centrifugeChannel:Q,children:LJ.jsx(H,{uiConfig:A??I.current,setUiAjaxConfiguration:Y==="events"?P:K})})},XJ=y0;var k0=[{name:"BoxCard",component:d$},{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 k0)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((Q)=>Q.json()).then((Q)=>{return YJ.set(Z,Q),WJ.delete(Z),Q}).catch((Q)=>{throw WJ.delete(Z),Q}),WJ.set(Z,z);let G=!1;return z.then((Q)=>{if(!G)W(Q)}).catch(()=>{}),()=>{G=!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=a.useContext(h),Z=b$(),X=GJ(Z,"socketIO"),Y=x$(),W=S$(),z=a.useRef(Y);z.current=Y;let G=a.useRef(W);G.current=W;let Q=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:A}=_$(Q.current,"up");if(Q.current=q,A==="restored")G.current?.("socketio");console.log("SocketIO connected")},T=(q)=>{if(console.log(`SocketIO disconnected: ${q}`),J.connect(),q==="io client disconnect")return;let{state:A,signal:D}=_$(Q.current,"down");if(Q.current=A,D==="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$=b0;var n=require("react");var x0=({children:$})=>{let J=n.useContext(f),Z=b$(),X=GJ(Z,"centrifuge"),Y=x$(),W=S$(),z=n.useRef(Y);z.current=Y;let G=n.useRef(W);G.current=W;let Q=n.useRef("initial");return n.useEffect(()=>{if(!J||!X)return;let _=(q)=>{let{state:A,signal:D}=_$(Q.current,"down");if(Q.current=A,D==="lost")z.current?.("centrifuge",q)},H=()=>{let{state:q,signal:A}=_$(Q.current,"up");if(Q.current=q,A==="restored")G.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$=x0;var NJ=require("react");var E$=require("react/jsx-runtime");function EZ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=NJ.useContext(j),X=NJ.useContext(d),Y=p();if(Y)console.log("[UILoading] Rendering fallback for:",$.card),console.log("[UILoading] Component data:",$.data),console.log("[UILoading] Component content:",$.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!J);let W=$$($.card);if(!W?.component){if(Y)console.warn(`[UILoading] Component not found in registry: ${$.card}`),console.log("[UILoading] Returning fallback component");return Z}if(Y)console.log("[UILoading] Found component in registry:",{name:W.name,isLazy:W.isLazy,hasMetadata:!!W.metadata,hasFallback:!!W.fallback});if(W.fallback){if(Y)console.log("[UILoading] Rendering fallback for:",W.name);let Q=W.fallback;return E$.jsx(Q,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",W.name);let z=W.component,G=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:G});return G}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"),S0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y})=>{let W=e(),z=J$(),G=p(),Q=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:A,error:D}=K$.useQuery({queryKey:["uiConfig",$.pathname+$.search,W],enabled:!!W,queryFn:async()=>{let U=new URLSearchParams($.search);U.set("__pieroot",kZ.Platform.OS);let K="/api/content"+$.pathname+"?"+U.toString();if(G)console.log("[PieNativeRoot] Fetching UI configuration from:",K);let F=await Q.get(K,{headers:{"Content-type":"application/json"},withCredentials:!0});if(G)console.log("[PieNativeRoot] Received UI configuration:",F.data);return F.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(U)=>Math.min(1000*2**U,30000),...Y}),I=_J($.pathname,Z,J);if(!W)return I??null;if(D){if(G)console.error("[PieNativeRoot] Error fetching UI configuration:",D);return X?.(D),I}if(A||!q)return I;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})})})})})})})},C0=($)=>{let J=q$.useMemo(()=>new K$.QueryClient,[]),Z=$.queryClient??J;return E.jsx(m.Provider,{value:$.onNavigate,children:E.jsx(c.Provider,{value:$.config,children:E.jsx(d.Provider,{value:$.onError,children:E.jsx(K$.QueryClientProvider,{client:Z,children:E.jsx(S0,{...$})})})})})},bZ=C0;var T$=require("react"),BJ=require("@tanstack/react-query");var R=require("react/jsx-runtime"),f0=({location:$,fallback:J,children:Z,disableGlobalForm:X})=>{let Y=e(),W=J$(),z=p(),G=T$.useMemo(()=>u(),[]),Q=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:G,children:R.jsx(h.Provider,{value:Q,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})})})})})})})},h0=($)=>{let[J]=T$.useState(()=>new BJ.QueryClient),Z=$.queryClient??J;return R.jsx(m.Provider,{value:$.onNavigate,children:R.jsx(c.Provider,{value:$.config,children:R.jsx(d.Provider,{value:$.onError,children:R.jsx(BJ.QueryClientProvider,{client:Z,children:R.jsx(f0,{...$})})})})})},xZ=h0;var V$=require("react"),D$=require("@tanstack/react-query");var fZ=require("axios-date-transformer");function SZ({apiServer:$,pathname:J,search:Z,root:X,initData:Y}){let W=new URLSearchParams(Z);if(W.set("__pieroot",X),Y)W.set("initData",Y);return`${$.replace(/\/$/,"")}/api/content${J}?${W.toString()}`}async function CZ($,J){if(!$||$.used||$.url!==J)return null;$.used=!0;try{return await $.promise}catch{return null}}var L=require("react/jsx-runtime"),v0=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,configPrefetch:W,disableGlobalForm:z})=>{let G=e(),Q=J$(),_=p(),H=V$.useMemo(()=>fZ.createAxiosDateTransformer({baseURL:G||""}),[G]),T=V$.useMemo(()=>u(),[]),q=V$.useMemo(()=>G?X$(G):null,[G]),A=V$.useMemo(()=>G?Z$(G,Q):null,[G,Q]),{data:D,isLoading:I,error:U}=D$.useQuery({queryKey:["uiConfig",$.pathname+$.search,G],enabled:!!G,queryFn:async()=>{let F=SZ({apiServer:G,pathname:$.pathname,search:$.search,root:"web"}),P=await CZ(W,F);if(P){if(_)console.log("[PieRoot] Using prefetched UI configuration");return P}if(_)console.log("[PieRoot] Fetching UI configuration from:",F);let B=await H.get(F,{withCredentials:!0});if(_)console.log("[PieRoot] Received UI configuration:",B.data);return B.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(F)=>Math.min(1000*2**F,30000),...Y}),K=_J($.pathname,Z,J);if(!G)return K??null;if(_)console.log("[PieRoot] Rendering with location:",$),console.log("[PieRoot] API_SERVER:",G),console.log("[PieRoot] CENTRIFUGE_SERVER:",Q),console.log("[PieRoot] Fallback provided:",!!J),console.log("[PieRoot] Piecache provided:",!!Z);if(U){if(_)console.error("[PieRoot] Error fetching UI configuration:",U),console.error("[PieRoot] Error details:",{message:U.message,status:U.response?.status,data:U.response?.data});return X?.(U),K}if(I||!D){if(_)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!D});return K}if(_)console.log("[PieRoot] UI configuration loaded successfully:",D),console.log("[PieRoot] Rendering UI with configuration");return L.jsx(v.Provider,{value:T,children:L.jsx(h.Provider,{value:q,children:L.jsx(f.Provider,{value:A,children:L.jsx(j.Provider,{value:J??L.jsx(L.Fragment,{}),children:L.jsx(B$,{children:L.jsx(H$,{children:z?L.jsx(N,{uiConfig:D}):L.jsx("form",{id:"piedata_global_form",action:G+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:L.jsx(N,{uiConfig:D})})})})})})})})},m0=($)=>{let J=V$.useMemo(()=>new D$.QueryClient,[]),Z=$.queryClient??J;return L.jsx(m.Provider,{value:$.onNavigate,children:L.jsx(c.Provider,{value:$.config,children:L.jsx(d.Provider,{value:$.onError,children:L.jsx(D$.QueryClientProvider,{client:Z,children:L.jsx(v0,{...$})})})})})},hZ=m0;var vZ=()=>{QZ(),w.submitGlobalForm()};var mZ=($,J)=>`${$}${C$}${J}`;
@@ -1,2 +1,2 @@
1
1
  "use client";
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};
2
+ import{useMemo as f}from"react";import{QueryClient as dJ,QueryClientProvider as lJ,useQuery as sJ}from"@tanstack/react-query";import a$ from"mitt";import{createContext as n$,useCallback as WZ,useContext as qZ}from"react";var t=globalThis,W=($,J)=>{let Z=Symbol.for($);if(!(Z in t))t[Z]=J();return t[Z]};function H$(){return W("@swarm.ing/pieui:mitt-emitter",()=>a$())}var r$=W("@swarm.ing/pieui:context:mitt",()=>n$(null));var h=r$;import{io as t$}from"socket.io-client";import{createContext as e$}from"react";var T$=W("@swarm.ing/pieui:socket-cache",()=>new Map),_$=($)=>{let J=T$.get($);if(J)return J;let Z=t$($,{autoConnect:!1,transports:["websocket"]});return T$.set($,Z),Z},$J=W("@swarm.ing/pieui:context:socket",()=>e$(null)),w=$J;import{createContext as JJ}from"react";import{Centrifuge as W$}from"centrifuge";var q$=W("@swarm.ing/pieui:centrifuge-cache",()=>new Map),U$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,X=q$.get(Z);if(X)return X;async function Y(){let H=await fetch($+"api/centrifuge/gen_token",{credentials:"include"});if(!H.ok){if(H.status===401||H.status===403)throw new W$.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${H.status}`)}return(await H.json()).token}let G=new W$(J,{getToken:Y});return q$.set(Z,G),G},ZJ=W("@swarm.ing/pieui:context:centrifuge",()=>JJ(null)),E=ZJ;import{useContext as UJ,useEffect as FJ,useRef as J$}from"react";import{useEffect as GJ,useState as XJ}from"react";var m=new Map,g=new Map;function p($,J){let Z=`${$}::${J}`,X=$?m.get(Z):void 0,[Y,G]=XJ(X??null);return GJ(()=>{if(!$)return;if(m.has(Z)){G(m.get(Z));return}let H=g.get(Z);if(!H)H=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,H);let Q=!1;return H.then((B)=>{if(!Q)G(B)}).catch(()=>{}),()=>{Q=!0}},[$,J,Z]),Y}import{createContext as YJ,useContext as zJ}from"react";var e=W("@swarm.ing/pieui:context:pieConfig",()=>YJ(null)),x=()=>{let $=zJ(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,K$=()=>{let{pageProcessor:$}=x();return $};var u=()=>{let{onLinkLost:$}=x();return $},d=()=>{let{onLinkRestored:$}=x();return $};var BJ=($)=>{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},QJ={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:BJ,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()}},D$=QJ;var HJ={};function R(){return HJ}var M$=new Map;var I$=($)=>{return M$.has($)?M$.get($):null};var O$,TJ={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$=TJ;var _J=typeof navigator<"u"&&navigator.product==="ReactNative",WJ=_J?P$:D$,l=WJ;var qJ=W("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function A$(){qJ.resolve?.()}function C($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var VJ=({children:$})=>{let J=UJ(w),Z=c(),X=p(Z,"socketIO"),Y=u(),G=d(),H=J$(Y);H.current=Y;let Q=J$(G);Q.current=G;let B=J$("initial"),T=(z)=>{if(l.isClient())l.setSid(z.sid),A$(),console.log(`SocketIO initialized: ${l.readSid()}`)};return FJ(()=>{if(!J||!X)return;let z=()=>{let{state:F,signal:K}=C(B.current,"up");if(B.current=F,K==="restored")Q.current?.("socketio");console.log("SocketIO connected")},U=(F)=>{if(console.log(`SocketIO disconnected: ${F}`),J.connect(),F==="io client disconnect")return;let{state:K,signal:O}=C(B.current,"down");if(B.current=K,O==="lost")H.current?.("socketio",F)};return J.on("pieinit",T),J.on("connect",z),J.on("disconnect",U),J.connect(),()=>{J.off("pieinit",T),J.off("connect",z),J.off("disconnect",U),J.disconnect()}},[J,X]),$},j$=VJ;import{useContext as KJ,useEffect as DJ,useRef as Z$}from"react";var MJ=({children:$})=>{let J=KJ(E),Z=c(),X=p(Z,"centrifuge"),Y=u(),G=d(),H=Z$(Y);H.current=Y;let Q=Z$(G);Q.current=G;let B=Z$("initial");return DJ(()=>{if(!J||!X)return;let T=(F)=>{let{state:K,signal:O}=C(B.current,"down");if(B.current=K,O==="lost")H.current?.("centrifuge",F)},z=()=>{let{state:F,signal:K}=C(B.current,"up");if(B.current=F,K==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},U=(F)=>{console.log("Centrifuge disconnected:",F),T(F)};return J.on("connecting",T),J.on("connected",z),J.on("disconnected",U),J.connect(),()=>{J.off("connecting",T),J.off("connected",z),J.off("disconnected",U),J.disconnect()}},[J,X]),$},N$=MJ;import{createContext as IJ}from"react";import{jsx as AJ,Fragment as PJ}from"react/jsx-runtime";var OJ=W("@swarm.ing/pieui:context:fallback",()=>IJ(AJ(PJ,{}))),y=OJ;import{createContext as jJ}from"react";var NJ=W("@swarm.ing/pieui:context:lazyError",()=>jJ(void 0)),b=NJ;import{lazy as LJ}from"react";var v=new Map;function RJ($,J){return J.catch(()=>{if(v.get($)===J)v.delete($)}),v.set($,J),J}function L$($,J){return LJ(()=>{if(v.has(J))return v.get(J);return RJ(J,$().then((Z)=>Z))})}var R$=W("@swarm.ing/pieui:component-registry",()=>new Map),wJ=($)=>{if(!$.name)throw Error("Component registration requires a name");if(!$.component&&!$.loader)throw Error(`Component "${$.name}" requires component or loader`);let J={name:$.name,component:$.component,loader:$.loader,metadata:$.metadata,fallback:$.fallback,isLazy:!1};if(!J.component&&J.loader)J.component=L$(J.loader,$.name),J.isLazy=!0;return J};function s($){let J=wJ($);return R$.set(J.name,J),J.component}var o=($)=>{return R$.get($)};import{useContext as w$,memo as kJ}from"react";import{Component as EJ,Suspense as xJ}from"react";import{jsx as bJ}from"react/jsx-runtime";var CJ=2,yJ=400;class k extends EJ{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<CJ){let J=yJ*(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 bJ(xJ,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as G$}from"react/jsx-runtime";function SJ({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 H=G.component,Q=G$(H,{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$=kJ(SJ);import{createAxiosDateTransformer as oJ}from"axios-date-transformer";import{useEffect as vJ,useState as fJ}from"react";var i=({onError:$}={})=>{let[J,Z]=fJ(null),X=K$();return vJ(()=>{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},hJ=()=>{let $=i();return[$?.initDataUnsafe,$?.initData]};import{createContext as mJ}from"react";var gJ=W("@swarm.ing/pieui:context:navigate",()=>mJ(void 0)),E$=gJ;import{useContext as C$}from"react";import{createContext as pJ}from"react";var cJ=W("@swarm.ing/pieui:context:uiRenderer",()=>pJ(null)),x$=cJ;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 H=G.component,Q=a(x$.Provider,{value:y$,children:a(H,{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$=y$;import{jsx as uJ}from"react/jsx-runtime";function k$($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),Y=J[X];if(!Y)return Z;return uJ(b$,{uiConfig:Y})}function S$({apiServer:$,pathname:J,search:Z,root:X,initData:Y}){let G=new URLSearchParams(Z);if(G.set("__pieroot",X),Y)G.set("initData",Y);return`${$.replace(/\/$/,"")}/api/content${J}?${G.toString()}`}async function v$($,J){if(!$||$.used||$.url!==J)return null;$.used=!0;try{return await $.promise}catch{return null}}import{jsx as V,Fragment as nJ}from"react/jsx-runtime";var iJ=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,configPrefetch:G,disableGlobalForm:H})=>{let Q=$$(),B=F$(),T=L(),z=f(()=>oJ({baseURL:Q}),[Q]),U=f(()=>H$(),[]),F=f(()=>Q?_$(Q):null,[Q]),K=f(()=>Q?U$(Q,B):null,[Q,B]),O=i({onError:X}),{data:P,isLoading:j,error:D}=sJ({queryKey:["uiConfig",$.pathname+$.search,O?.initData],enabled:!!O?.initData,queryFn:async()=>{let M=S$({apiServer:Q,pathname:$.pathname,search:$.search,root:"telegram",initData:O?.initData}),q=await v$(G,M);if(q){if(T)console.log("[PieRoot] Using prefetched UI configuration");return q}if(T)console.log("[PieRoot] Fetching UI configuration from:",M);let _=await z.get(M,{withCredentials:!0});if(T)console.log("[PieRoot] Received UI configuration:",_.data);return _.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(M)=>Math.min(1000*2**M,30000),...Y}),A=k$($.pathname,Z,J);if(!Q)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(D&&T)return console.error("[PieRoot] Error fetching UI configuration:",D),console.error("[PieRoot] Error details:",{message:D.message,status:D.response?.status,data:D.response?.data}),X?.(D),A;if(j||!P){if(T)console.log("[PieRoot] Loading state:",{isLoading:j,hasUiConfiguration:!!P});return A}if(T)console.log("[PieRoot] UI configuration loaded successfully:",P),console.log("[PieRoot] Rendering UI with configuration");return V(h.Provider,{value:U,children:V(w.Provider,{value:F,children:V(E.Provider,{value:K,children:V(y.Provider,{value:J??V(nJ,{}),children:V(j$,{children:V(N$,{children:H?V(X$,{uiConfig:P}):V("form",{id:"piedata_global_form",action:Q+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:V(X$,{uiConfig:P})})})})})})})})},aJ=($)=>{let J=f(()=>new dJ,[]),Z=$.queryClient??J;return V(E$.Provider,{value:$.onNavigate,children:V(e.Provider,{value:$.config,children:V(b.Provider,{value:$.onError,children:V(lJ,{client:Z,children:V(iJ,{...$})})})})})},rJ=aJ;import{useEffect as u$,useState as ZZ}from"react";import{useContext as Y$,useEffect as n,useRef as z$}from"react";function f$($){return $.wasRecovering===!0&&$.recovered===!1}function h$($){return $.recoverable===!1}function m$($,J,Z){let X=$.getSubscription(J);if(X)return{subscription:X,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}import{useMemo as N1}from"react";var g$=new Map,p$=($,J)=>{g$.set($,J)},c$=($)=>{g$.delete($)};import{jsx as $Z,jsxs as JZ,Fragment as eJ}from"react/jsx-runtime";var tJ=({card:$,data:J,children:Z,useSocketioSupport:X=!1,useCentrifugeSupport:Y=!1,useMittSupport:G=!1,centrifugeChannel:H=void 0,methods:Q=void 0,stored:B=void 0,onResync:T=void 0})=>{let z=V$(),U=z$(Q);U.current=Q;let F=z$(T);F.current=T;let K=z$(B);K.current=B;let O=typeof B==="function";if(n(()=>{if(!O)return;let A=J.name;return p$(A,()=>[JSON.stringify(K.current())]),()=>c$(A)},[O,J.name]),z)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:H}),console.log("[PieCard] Methods:",Q?Object.keys(Q):"none"),console.log("[PieCard] Has children:",!!Z);let P=Y$(w),j=Y$(E),D=Y$(h);if(n(()=>{if(!P||!X||!U.current||!J.name){if(z&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!P,useSocketioSupport:X,hasMethods:!!U.current,hasDataName:!!J?.name});return}let M=Object.keys(U.current??{}).map((q)=>{let _=`pie${q}_${J.name}`;if(z)console.log(`[PieCard] Socket.IO registering event: ${_}`);let I=(N)=>{U.current?.[q]?.(N)};return P.on(_,I),[_,I]});return()=>{M.forEach(([q,_])=>{if(z)console.log(`[PieCard] Socket.IO unregistering event: ${q}`);P.off(q,_)})}},[P,J.name,X]),n(()=>{if(!j||!Y||!H||!J.name){if(z&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!j,useCentrifugeSupport:Y,hasCentrifugeChannel:!!H,hasMethods:!!U.current,hasDataName:!!J?.name});return}let M=Object.keys(U.current??{}).map((q)=>{let _=`pie${q}_${J.name}_${H}`;if(z)console.log(`[PieCard] Centrifuge subscribing to channel: ${_}`);let{subscription:I,createdHere:N}=m$(j,_,{recoverable:!0,positioned:!0}),B$=(S)=>{if(z)console.log(`[PieCard] Centrifuge received data on ${_}:`,S.data);U.current?.[q]?.(S.data)},Q$=(S)=>{if(h$(S))console.warn(`[PieCard] Centrifuge channel ${_} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(f$(S)){if(z)console.log(`[PieCard] Centrifuge recovery gap on ${_}; requesting resync`);F.current?.({channel:_,reason:"gap"})}};return I.on("publication",B$),I.on("subscribed",Q$),I.subscribe(),{subscription:I,createdHere:N,onPublication:B$,onSubscribed:Q$}});return()=>{M.forEach(({subscription:q,createdHere:_,onPublication:I,onSubscribed:N})=>{if(z)console.log("[PieCard] Centrifuge unsubscribing from channel");if(q.off("publication",I),q.off("subscribed",N),_)q.unsubscribe(),j.removeSubscription(q)})}},[j,H,J.name,Y]),n(()=>{if(!D||!G||!J.name){if(z&&G)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!D,useMittSupport:G,hasMethods:!!U.current,hasDataName:!!J?.name});return}let A=Object.keys(U.current??{}),M={};return A.forEach((q)=>{let _=`pie${q}_${J.name}`,I=(N)=>{if(z)console.log(`[PieCard] Mitt registering event: ${_}`);U.current?.[q]?.(N)};M[_]=I,D.on(_,I)}),()=>{Object.entries(M).forEach(([q,_])=>{if(z)console.log(`[PieCard] Mitt unregistering event: ${q}`);D.off(q,_)})}},[D,J.name,G]),z)console.log("[PieCard] Rendering complete, returning children");if(B!==void 0&&!O)return JZ(eJ,{children:[$Z("input",{type:"hidden",name:J.name,value:JSON.stringify(B)}),Z]});return Z},r=tJ;import{jsx as d$}from"react/jsx-runtime";var GZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:H,centrifugeChannel:Q}=$,[B,T]=ZZ(X);return u$(()=>{T(X)},[X]),u$(()=>{if(typeof window>"u")return;let z=window.Telegram?.WebApp?.CloudStorage;if(!z)return;z.setItem(Z,B)},[Z,B]),d$(r,{card:"CloudStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:H,centrifugeChannel:Q,methods:{update:({value:z})=>{T(z)},remove:()=>{let z=window.Telegram?.WebApp?.CloudStorage;if(z)z.removeItem(Z);T("")}},children:d$("input",{type:"hidden",id:J,name:J,value:B})})},l$=GZ;var XZ=s({name:"CloudStorageCard",component:l$,metadata:{author:"PieData"}});import{useEffect as s$,useState as YZ}from"react";import{jsx as o$}from"react/jsx-runtime";var zZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:H,centrifugeChannel:Q}=$,[B,T]=YZ(X);return s$(()=>{T(X)},[X]),s$(()=>{if(typeof window>"u")return;let z=window.Telegram?.WebApp?.SecureStorage;if(!z)return;z.setItem(Z,B)},[Z,B]),o$(r,{card:"SecureStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:H,centrifugeChannel:Q,methods:{update:({value:z})=>{T(z)},remove:()=>{let z=window.Telegram?.WebApp?.SecureStorage;if(z)z.removeItem(Z);T("")}},children:o$("input",{type:"hidden",id:J,name:J,value:B})})},i$=zZ;var BZ=s({name:"SecureStorageCard",component:i$,metadata:{author:"PieData"}});export{i as useWebApp,hJ as useInitData,BZ as SecureStorageCard,rJ as PieTelegramRoot,XZ 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:()=>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"}});
2
+ var OJ=Object.create;var{getPrototypeOf:PJ,defineProperty:c,getOwnPropertyNames:j$,getOwnPropertyDescriptor:AJ}=Object,N$=Object.prototype.hasOwnProperty;var jJ=($,J,Z)=>{Z=$!=null?OJ(PJ($)):{};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,NJ=($)=>{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=AJ($,G))||Z.enumerable}));return A$.set($,J),J};var LJ=($,J)=>{for(var Z in J)c($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(G)=>J[Z]=()=>G})};var $Z={};LJ($Z,{useWebApp:()=>l,useInitData:()=>t$,SecureStorageCard:()=>IJ,PieTelegramRoot:()=>TJ,CloudStorageCard:()=>DJ});module.exports=NJ($Z);var h=require("react"),m=require("@tanstack/react-query");var L$=jJ(require("mitt")),a=require("react");var q$=globalThis,W=($,J)=>{let Z=Symbol.for($);if(!(Z in q$))q$[Z]=J();return q$[Z]};function R$(){return W("@swarm.ing/pieui:mitt-emitter",()=>L$.default())}var RJ=W("@swarm.ing/pieui:context:mitt",()=>a.createContext(null));var n=RJ;var E$=require("socket.io-client"),x$=require("react");var w$=W("@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},wJ=W("@swarm.ing/pieui:context:socket",()=>x$.createContext(null)),C=wJ;var b$=require("react"),U$=require("centrifuge");var y$=W("@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 H=await fetch($+"api/centrifuge/gen_token",{credentials:"include"});if(!H.ok){if(H.status===401||H.status===403)throw new U$.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${H.status}`)}return(await H.json()).token}let X=new U$.Centrifuge(J,{getToken:Y});return y$.set(Z,X),X},EJ=W("@swarm.ing/pieui:context:centrifuge",()=>b$.createContext(null)),y=EJ;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 H=t.get(Z);if(!H)H=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,H);let Q=!1;return H.then((B)=>{if(!Q)X(B)}).catch(()=>{}),()=>{Q=!0}},[$,J,Z]),Y}var J$=require("react");var F$=W("@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 xJ=($)=>{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},CJ={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:xJ,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$=CJ;var yJ={};function x(){return yJ}var m$=new Map;var g$=($)=>{return m$.has($)?m$.get($):null};var p$,bJ={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$=bJ;var kJ=typeof navigator<"u"&&navigator.product==="ReactNative",SJ=kJ?c$:h$,Y$=SJ;var vJ=W("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function u$(){vJ.resolve?.()}function k($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var fJ=({children:$})=>{let J=L.useContext(C),Z=Z$(),G=$$(Z,"socketIO"),Y=G$(),X=X$(),H=L.useRef(Y);H.current=Y;let Q=L.useRef(X);Q.current=X;let B=L.useRef("initial"),T=(z)=>{if(Y$.isClient())Y$.setSid(z.sid),u$(),console.log(`SocketIO initialized: ${Y$.readSid()}`)};return L.useEffect(()=>{if(!J||!G)return;let z=()=>{let{state:V,signal:D}=k(B.current,"up");if(B.current=V,D==="restored")Q.current?.("socketio");console.log("SocketIO connected")},U=(V)=>{if(console.log(`SocketIO disconnected: ${V}`),J.connect(),V==="io client disconnect")return;let{state:D,signal:P}=k(B.current,"down");if(B.current=D,P==="lost")H.current?.("socketio",V)};return J.on("pieinit",T),J.on("connect",z),J.on("disconnect",U),J.connect(),()=>{J.off("pieinit",T),J.off("connect",z),J.off("disconnect",U),J.disconnect()}},[J,G]),$},d$=fJ;var R=require("react");var hJ=({children:$})=>{let J=R.useContext(y),Z=Z$(),G=$$(Z,"centrifuge"),Y=G$(),X=X$(),H=R.useRef(Y);H.current=Y;let Q=R.useRef(X);Q.current=X;let B=R.useRef("initial");return R.useEffect(()=>{if(!J||!G)return;let T=(V)=>{let{state:D,signal:P}=k(B.current,"down");if(B.current=D,P==="lost")H.current?.("centrifuge",V)},z=()=>{let{state:V,signal:D}=k(B.current,"up");if(B.current=V,D==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},U=(V)=>{console.log("Centrifuge disconnected:",V),T(V)};return J.on("connecting",T),J.on("connected",z),J.on("disconnected",U),J.connect(),()=>{J.off("connecting",T),J.off("connected",z),J.off("disconnected",U),J.disconnect()}},[J,G]),$},l$=hJ;var s$=require("react");var z$=require("react/jsx-runtime"),mJ=W("@swarm.ing/pieui:context:fallback",()=>s$.createContext(z$.jsx(z$.Fragment,{}))),S=mJ;var o$=require("react");var gJ=W("@swarm.ing/pieui:context:lazyError",()=>o$.createContext(void 0)),v=gJ;var i$=require("react"),u=new Map;function pJ($,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 pJ(J,$().then((Z)=>Z))})}var n$=W("@swarm.ing/pieui:component-registry",()=>new Map),cJ=($)=>{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=cJ($);return n$.set(J.name,J),J.component}var Q$=($)=>{return n$.get($)};var d=require("react");var H$=require("react"),r$=require("react/jsx-runtime"),uJ=2,dJ=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<uJ){let J=dJ*(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(H$.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=d.useContext(S),G=d.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 H=X.component,Q=T$.jsx(H,{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 K$=d.memo(lJ);var HJ=require("axios-date-transformer");var _$=require("react");var l=({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 $=l();return[$?.initDataUnsafe,$?.initData]};var e$=require("react");var sJ=W("@swarm.ing/pieui:context:navigate",()=>e$.createContext(void 0)),$J=sJ;var D$=require("react");var JJ=require("react");var oJ=W("@swarm.ing/pieui:context:uiRenderer",()=>JJ.createContext(null)),ZJ=oJ;var s=require("react/jsx-runtime");function GJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=D$.useContext(S),G=D$.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 H=X.component,Q=s.jsx(ZJ.Provider,{value:GJ,children:s.jsx(H,{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})}function BJ({apiServer:$,pathname:J,search:Z,root:G,initData:Y}){let X=new URLSearchParams(Z);if(X.set("__pieroot",G),Y)X.set("initData",Y);return`${$.replace(/\/$/,"")}/api/content${J}?${X.toString()}`}async function QJ($,J){if(!$||$.used||$.url!==J)return null;$.used=!0;try{return await $.promise}catch{return null}}var F=require("react/jsx-runtime"),iJ=({location:$,fallback:J,piecache:Z,onError:G,queryOptions:Y,configPrefetch:X,disableGlobalForm:H})=>{let Q=V$(),B=S$(),T=E(),z=h.useMemo(()=>HJ.createAxiosDateTransformer({baseURL:Q}),[Q]),U=h.useMemo(()=>R$(),[]),V=h.useMemo(()=>Q?C$(Q):null,[Q]),D=h.useMemo(()=>Q?k$(Q,B):null,[Q,B]),P=l({onError:G}),{data:A,isLoading:N,error:M}=m.useQuery({queryKey:["uiConfig",$.pathname+$.search,P?.initData],enabled:!!P?.initData,queryFn:async()=>{let I=BJ({apiServer:Q,pathname:$.pathname,search:$.search,root:"telegram",initData:P?.initData}),q=await QJ(X,I);if(q){if(T)console.log("[PieRoot] Using prefetched UI configuration");return q}if(T)console.log("[PieRoot] Fetching UI configuration from:",I);let _=await z.get(I,{withCredentials:!0});if(T)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=YJ($.pathname,Z,J);if(!Q)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(M&&T)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}),G?.(M),j;if(N||!A){if(T)console.log("[PieRoot] Loading state:",{isLoading:N,hasUiConfiguration:!!A});return j}if(T)console.log("[PieRoot] UI configuration loaded successfully:",A),console.log("[PieRoot] Rendering UI with configuration");return F.jsx(n.Provider,{value:U,children:F.jsx(C.Provider,{value:V,children:F.jsx(y.Provider,{value:D,children:F.jsx(S.Provider,{value:J??F.jsx(F.Fragment,{}),children:F.jsx(d$,{children:F.jsx(l$,{children:H?F.jsx(K$,{uiConfig:A}):F.jsx("form",{id:"piedata_global_form",action:Q+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:F.jsx(K$,{uiConfig:A})})})})})})})})},aJ=($)=>{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(iJ,{...$})})})})})},TJ=aJ;var o=require("react");var K=require("react");function _J($){return $.wasRecovering===!0&&$.recovered===!1}function WJ($){return $.recoverable===!1}function qJ($,J,Z){let G=$.getSubscription(J);if(G)return{subscription:G,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}var nJ=require("react");var UJ=new Map,FJ=($,J)=>{UJ.set($,J)},VJ=($)=>{UJ.delete($)};var g=require("react/jsx-runtime"),rJ=({card:$,data:J,children:Z,useSocketioSupport:G=!1,useCentrifugeSupport:Y=!1,useMittSupport:X=!1,centrifugeChannel:H=void 0,methods:Q=void 0,stored:B=void 0,onResync:T=void 0})=>{let z=v$(),U=K.useRef(Q);U.current=Q;let V=K.useRef(T);V.current=T;let D=K.useRef(B);D.current=B;let P=typeof B==="function";if(K.useEffect(()=>{if(!P)return;let j=J.name;return FJ(j,()=>[JSON.stringify(D.current())]),()=>VJ(j)},[P,J.name]),z)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:H}),console.log("[PieCard] Methods:",Q?Object.keys(Q):"none"),console.log("[PieCard] Has children:",!!Z);let A=K.useContext(C),N=K.useContext(y),M=K.useContext(n);if(K.useEffect(()=>{if(!A||!G||!U.current||!J.name){if(z&&G)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!A,useSocketioSupport:G,hasMethods:!!U.current,hasDataName:!!J?.name});return}let I=Object.keys(U.current??{}).map((q)=>{let _=`pie${q}_${J.name}`;if(z)console.log(`[PieCard] Socket.IO registering event: ${_}`);let O=(w)=>{U.current?.[q]?.(w)};return A.on(_,O),[_,O]});return()=>{I.forEach(([q,_])=>{if(z)console.log(`[PieCard] Socket.IO unregistering event: ${q}`);A.off(q,_)})}},[A,J.name,G]),K.useEffect(()=>{if(!N||!Y||!H||!J.name){if(z&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!N,useCentrifugeSupport:Y,hasCentrifugeChannel:!!H,hasMethods:!!U.current,hasDataName:!!J?.name});return}let I=Object.keys(U.current??{}).map((q)=>{let _=`pie${q}_${J.name}_${H}`;if(z)console.log(`[PieCard] Centrifuge subscribing to channel: ${_}`);let{subscription:O,createdHere:w}=qJ(N,_,{recoverable:!0,positioned:!0}),O$=(p)=>{if(z)console.log(`[PieCard] Centrifuge received data on ${_}:`,p.data);U.current?.[q]?.(p.data)},P$=(p)=>{if(WJ(p))console.warn(`[PieCard] Centrifuge channel ${_} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(_J(p)){if(z)console.log(`[PieCard] Centrifuge recovery gap on ${_}; requesting resync`);V.current?.({channel:_,reason:"gap"})}};return O.on("publication",O$),O.on("subscribed",P$),O.subscribe(),{subscription:O,createdHere:w,onPublication:O$,onSubscribed:P$}});return()=>{I.forEach(({subscription:q,createdHere:_,onPublication:O,onSubscribed:w})=>{if(z)console.log("[PieCard] Centrifuge unsubscribing from channel");if(q.off("publication",O),q.off("subscribed",w),_)q.unsubscribe(),N.removeSubscription(q)})}},[N,H,J.name,Y]),K.useEffect(()=>{if(!M||!X||!J.name){if(z&&X)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!M,useMittSupport:X,hasMethods:!!U.current,hasDataName:!!J?.name});return}let j=Object.keys(U.current??{}),I={};return j.forEach((q)=>{let _=`pie${q}_${J.name}`,O=(w)=>{if(z)console.log(`[PieCard] Mitt registering event: ${_}`);U.current?.[q]?.(w)};I[_]=O,M.on(_,O)}),()=>{Object.entries(I).forEach(([q,_])=>{if(z)console.log(`[PieCard] Mitt unregistering event: ${q}`);M.off(q,_)})}},[M,J.name,X]),z)console.log("[PieCard] Rendering complete, returning children");if(B!==void 0&&!P)return g.jsxs(g.Fragment,{children:[g.jsx("input",{type:"hidden",name:J.name,value:JSON.stringify(B)}),Z]});return Z},W$=rJ;var M$=require("react/jsx-runtime"),tJ=({data:$})=>{let{name:J,key:Z,value:G,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:H,centrifugeChannel:Q}=$,[B,T]=o.useState(G);return o.useEffect(()=>{T(G)},[G]),o.useEffect(()=>{if(typeof window>"u")return;let z=window.Telegram?.WebApp?.CloudStorage;if(!z)return;z.setItem(Z,B)},[Z,B]),M$.jsx(W$,{card:"CloudStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:H,centrifugeChannel:Q,methods:{update:({value:z})=>{T(z)},remove:()=>{let z=window.Telegram?.WebApp?.CloudStorage;if(z)z.removeItem(Z);T("")}},children:M$.jsx("input",{type:"hidden",id:J,name:J,value:B})})},KJ=tJ;var DJ=B$({name:"CloudStorageCard",component:KJ,metadata:{author:"PieData"}});var i=require("react");var I$=require("react/jsx-runtime"),eJ=({data:$})=>{let{name:J,key:Z,value:G,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:H,centrifugeChannel:Q}=$,[B,T]=i.useState(G);return i.useEffect(()=>{T(G)},[G]),i.useEffect(()=>{if(typeof window>"u")return;let z=window.Telegram?.WebApp?.SecureStorage;if(!z)return;z.setItem(Z,B)},[Z,B]),I$.jsx(W$,{card:"SecureStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:H,centrifugeChannel:Q,methods:{update:({value:z})=>{T(z)},remove:()=>{let z=window.Telegram?.WebApp?.SecureStorage;if(z)z.removeItem(Z);T("")}},children:I$.jsx("input",{type:"hidden",id:J,name:J,value:B})})},MJ=eJ;var IJ=B$({name:"SecureStorageCard",component:MJ,metadata:{author:"PieData"}});
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Unit tests for `util/contentRequest.ts`.
3
+ *
4
+ * Two things here are worth guarding with tests.
5
+ *
6
+ * `buildContentUrl` is the single rule for assembling the page-config URL, and
7
+ * the whole prefetch mechanism hinges on it: the host warms a URL before the
8
+ * bundle loads and the root matches it by exact string. Any drift — parameter
9
+ * order, a stray slash, encoding — silently costs a second round trip instead
10
+ * of failing loudly, so the exact output is asserted rather than merely parsed.
11
+ *
12
+ * `consumeConfigPrefetch` guards a cache: it must hand the warmed response over
13
+ * exactly once and never substitute it for a different URL or a refetch.
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=contentRequest.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentRequest.test.d.ts","sourceRoot":"","sources":["../../src/tests/contentRequest.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}