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