@swarm.ing/pieui 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/index.esm.js +2 -2
- package/dist/index.js +2 -2
- package/dist/native/index.esm.js +2 -2
- package/dist/native/index.js +2 -2
- package/dist/telegram/index.esm.js +1 -1
- package/dist/telegram/index.js +1 -1
- package/dist/tests/flushStoredResolversToForm.test.d.ts +9 -0
- package/dist/tests/flushStoredResolversToForm.test.d.ts.map +1 -0
- package/dist/util/ajaxCommonUtils.d.ts +21 -0
- package/dist/util/ajaxCommonUtils.d.ts.map +1 -1
- package/dist/util/globalForm.d.ts +5 -0
- package/dist/util/globalForm.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{useMemo as f}from"react";import{QueryClient as lJ,QueryClientProvider as cJ,useQuery as uJ}from"@tanstack/react-query";import o$ from"mitt";import{createContext as i$,useCallback as TZ,useContext as _Z}from"react";var t=globalThis,T=($,J)=>{let Z=Symbol.for($);if(!(Z in t))t[Z]=J();return t[Z]};function Q$(){return T("@swarm.ing/pieui:mitt-emitter",()=>o$())}var a$=T("@swarm.ing/pieui:context:mitt",()=>i$(null));var h=a$;import{io as n$}from"socket.io-client";import{createContext as r$}from"react";var T$=T("@swarm.ing/pieui:socket-cache",()=>new Map),_$=($)=>{let J=T$.get($);if(J)return J;let Z=n$($,{autoConnect:!1,transports:["websocket"]});return T$.set($,Z),Z},t$=T("@swarm.ing/pieui:context:socket",()=>r$(null)),w=t$;import{createContext as e$}from"react";import{Centrifuge as q$}from"centrifuge";var U$=T("@swarm.ing/pieui:centrifuge-cache",()=>new Map),W$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,X=U$.get(Z);if(X)return X;async function Y(){let z=await fetch($+"api/centrifuge/gen_token",{credentials:"include"});if(!z.ok){if(z.status===401||z.status===403)throw new q$.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let G=new q$(J,{getToken:Y});return U$.set(Z,G),G},$J=T("@swarm.ing/pieui:context:centrifuge",()=>e$(null)),E=$J;import{useContext as qJ,useEffect as UJ,useRef as J$}from"react";import{useEffect as JJ,useState as ZJ}from"react";var m=new Map,g=new Map;function p($,J){let Z=`${$}::${J}`,X=$?m.get(Z):void 0,[Y,G]=ZJ(X??null);return JJ(()=>{if(!$)return;if(m.has(Z)){G(m.get(Z));return}let z=g.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((B)=>B.json()).then((B)=>{return m.set(Z,B),g.delete(Z),B}).catch((B)=>{throw g.delete(Z),B}),g.set(Z,z);let Q=!1;return z.then((B)=>{if(!Q)G(B)}).catch(()=>{}),()=>{Q=!0}},[$,J,Z]),Y}import{createContext as GJ,useContext as XJ}from"react";var e=T("@swarm.ing/pieui:context:pieConfig",()=>GJ(null)),x=()=>{let $=XJ(e);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},$$=()=>{let{apiServer:$}=x();return $},l=$$,F$=()=>{let{centrifugeServer:$}=x();return $};var L=()=>{let{enableRenderingLog:$}=x();return $},V$=L,D$=()=>{let{pageProcessor:$}=x();return $};var c=()=>{let{onLinkLost:$}=x();return $},u=()=>{let{onLinkRestored:$}=x();return $};var YJ=($)=>{let J=document.cookie?document.cookie.split(";"):[];for(let Z of J){let X=Z.indexOf("=");if((X===-1?Z:Z.slice(0,X)).trim()===$){let G=X===-1?"":Z.slice(X+1).trim();try{return decodeURIComponent(G)}catch{return G}}}return null},zJ={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid($){if(typeof window<"u")window.sid=$},readWebStorage($,J){return($==="local"?window.localStorage:window.sessionStorage).getItem(J)},readCookie:YJ,readUrlParams($){return new URLSearchParams(window.location.search).getAll($)},readDomInput($){let J=document.getElementsByName($);if(!J.length)return null;let Z=J[0];if(Z instanceof HTMLInputElement){if(Z.type==="file"&&Z.files)return Array.from(Z.files);return[Z.value]}if(Z instanceof HTMLTextAreaElement)return[Z.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let $=document.getElementById("piedata_global_form");$&&$.submit()}},K$=zJ;var BJ={};function R(){return BJ}var M$=new Map;var I$=($)=>{return M$.has($)?M$.get($):null};var O$,HJ={isClient(){return!0},readSid(){return O$},setSid($){O$=$},readWebStorage($,J){let Z=R(),X=$==="local"?Z.storage:Z.sessionStorage;return X?X.getItem(J):null},async readWebStorageAsync($,J){let Z=R(),X=$==="local"?Z.asyncStorage:Z.asyncSessionStorage;if(X)return X.getItem(J);let Y=$==="local"?Z.storage:Z.sessionStorage;return Y?Y.getItem(J):null},readCookie($){let J=R();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=R();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=R();return J.getInput?J.getInput($):I$($)},submitGlobalForm(){R().submitForm?.()}},P$=HJ;var QJ=typeof navigator<"u"&&navigator.product==="ReactNative",TJ=QJ?P$:K$,d=TJ;var _J=T("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function A$(){_J.resolve?.()}function y($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var WJ=({children:$})=>{let J=qJ(w),Z=l(),X=p(Z,"socketIO"),Y=c(),G=u(),z=J$(Y);z.current=Y;let Q=J$(G);Q.current=G;let B=J$("initial"),U=(H)=>{if(d.isClient())d.setSid(H.sid),A$(),console.log(`SocketIO initialized: ${d.readSid()}`)};return UJ(()=>{if(!J||!X)return;let H=()=>{let{state:F,signal:V}=y(B.current,"up");if(B.current=F,V==="restored")Q.current?.("socketio");console.log("SocketIO connected")},W=(F)=>{if(console.log(`SocketIO disconnected: ${F}`),J.connect(),F==="io client disconnect")return;let{state:V,signal:K}=y(B.current,"down");if(B.current=V,K==="lost")z.current?.("socketio",F)};return J.on("pieinit",U),J.on("connect",H),J.on("disconnect",W),J.connect(),()=>{J.off("pieinit",U),J.off("connect",H),J.off("disconnect",W),J.disconnect()}},[J,X]),$},j$=WJ;import{useContext as FJ,useEffect as VJ,useRef as Z$}from"react";var DJ=({children:$})=>{let J=FJ(E),Z=l(),X=p(Z,"centrifuge"),Y=c(),G=u(),z=Z$(Y);z.current=Y;let Q=Z$(G);Q.current=G;let B=Z$("initial");return VJ(()=>{if(!J||!X)return;let U=(F)=>{let{state:V,signal:K}=y(B.current,"down");if(B.current=V,K==="lost")z.current?.("centrifuge",F)},H=()=>{let{state:F,signal:V}=y(B.current,"up");if(B.current=F,V==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},W=(F)=>{console.log("Centrifuge disconnected:",F),U(F)};return J.on("connecting",U),J.on("connected",H),J.on("disconnected",W),J.connect(),()=>{J.off("connecting",U),J.off("connected",H),J.off("disconnected",W),J.disconnect()}},[J,X]),$},N$=DJ;import{createContext as KJ}from"react";import{jsx as OJ,Fragment as IJ}from"react/jsx-runtime";var MJ=T("@swarm.ing/pieui:context:fallback",()=>KJ(OJ(IJ,{}))),C=MJ;import{createContext as PJ}from"react";var AJ=T("@swarm.ing/pieui:context:lazyError",()=>PJ(void 0)),b=AJ;import{lazy as jJ}from"react";var S=new Map;function NJ($,J){return J.catch(()=>{if(S.get($)===J)S.delete($)}),S.set($,J),J}function L$($,J){return jJ(()=>{if(S.has(J))return S.get(J);return NJ(J,$().then((Z)=>Z))})}var R$=T("@swarm.ing/pieui:component-registry",()=>new Map),LJ=($)=>{if(!$.name)throw Error("Component registration requires a name");if(!$.component&&!$.loader)throw Error(`Component "${$.name}" requires component or loader`);let J={name:$.name,component:$.component,loader:$.loader,metadata:$.metadata,fallback:$.fallback,isLazy:!1};if(!J.component&&J.loader)J.component=L$(J.loader,$.name),J.isLazy=!0;return J};function s($){let J=LJ($);return R$.set(J.name,J),J.component}var o=($)=>{return R$.get($)};import{useContext as w$,memo as CJ}from"react";import{Component as RJ,Suspense as wJ}from"react";import{jsx as yJ}from"react/jsx-runtime";var EJ=2,xJ=400;class k extends RJ{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<EJ){let J=xJ*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((Z)=>({failed:!1,attempt:Z.attempt+1}))},J)}}componentDidUpdate($){if($.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return yJ(wJ,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as G$}from"react/jsx-runtime";function bJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=w$(C),X=w$(b),Y=L();if(Y)console.log("[UI] Rendering component:",$.card),console.log("[UI] Component data:",$.data),console.log("[UI] Component content:",$.content),console.log("[UI] Has setUiAjaxConfiguration:",!!J);let G=o($.card);if(!G?.component){if(Y)console.warn(`[UI] Component not found in registry: ${$.card}`),console.log("[UI] Returning fallback component");return Z}if(Y)console.log("[UI] Found component in registry:",{name:G.name,isLazy:G.isLazy,hasMetadata:!!G.metadata});let z=G.component,Q=G$(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(G.isLazy){if(Y)console.log("[UI] Rendering lazy component with Suspense:",G.name);return G$(k,{name:G.name,fallback:G.fallback?G$(G.fallback,{}):Z,onError:X,children:Q})}if(Y)console.log("[UI] Rendering component directly:",G.name);return Q}var X$=CJ(bJ);import{createAxiosDateTransformer as dJ}from"axios-date-transformer";import{useEffect as kJ,useState as vJ}from"react";var i=({onError:$}={})=>{let[J,Z]=vJ(null),X=D$();return kJ(()=>{if(typeof window>"u")return;let Y=window.Telegram?.WebApp;if(!Y)return;try{Y.ready?.()}catch(G){$?.()}if(X==="telegram_expanded"&&(Y.platform==="ios"||Y.platform==="android"))Y.expand();Z(Y)},[]),J},SJ=()=>{let $=i();return[$?.initDataUnsafe,$?.initData]};import{createContext as fJ}from"react";var hJ=T("@swarm.ing/pieui:context:navigate",()=>fJ(void 0)),E$=hJ;import{useContext as y$}from"react";import{createContext as mJ}from"react";var gJ=T("@swarm.ing/pieui:context:uiRenderer",()=>mJ(null)),x$=gJ;import{jsx as a}from"react/jsx-runtime";function C$({uiConfig:$,setUiAjaxConfiguration:J}){let Z=y$(C),X=y$(b),Y=L();if(Y)console.log("[UILoading] Rendering fallback for:",$.card),console.log("[UILoading] Component data:",$.data),console.log("[UILoading] Component content:",$.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!J);let G=o($.card);if(!G?.component){if(Y)console.warn(`[UILoading] Component not found in registry: ${$.card}`),console.log("[UILoading] Returning fallback component");return Z}if(Y)console.log("[UILoading] Found component in registry:",{name:G.name,isLazy:G.isLazy,hasMetadata:!!G.metadata,hasFallback:!!G.fallback});if(G.fallback){if(Y)console.log("[UILoading] Rendering fallback for:",G.name);let B=G.fallback;return a(B,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",G.name);let z=G.component,Q=a(x$.Provider,{value:C$,children:a(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(G.isLazy)return a(k,{name:G.name,fallback:Z,onError:X,children:Q});return Q}var b$=C$;import{jsx as pJ}from"react/jsx-runtime";function k$($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),Y=J[X];if(!Y)return Z;return pJ(b$,{uiConfig:Y})}import{jsx as D,Fragment as iJ}from"react/jsx-runtime";var sJ=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,disableGlobalForm:G})=>{let z=$$(),Q=F$(),B=L(),U=f(()=>dJ({baseURL:z}),[z]),H=f(()=>Q$(),[]),W=f(()=>z?_$(z):null,[z]),F=f(()=>z?W$(z,Q):null,[z,Q]),V=i({onError:X}),{data:K,isLoading:A,error:M}=uJ({queryKey:["uiConfig",$.pathname+$.search,V?.initData],enabled:!!V?.initData,queryFn:async()=>{let I=new URLSearchParams($.search);if(I.set("__pieroot","telegram"),V?.initData)I.set("initData",V.initData);let P="/api/content"+$.pathname+"?"+I.toString();if(B)console.log("[PieRoot] Fetching UI configuration from:",P);let _=await U.get(P,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(B)console.log("[PieRoot] Received UI configuration:",_.data);return _.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(I)=>Math.min(1000*2**I,30000),...Y}),j=k$($.pathname,Z,J);if(!z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(M&&B)return console.error("[PieRoot] Error fetching UI configuration:",M),console.error("[PieRoot] Error details:",{message:M.message,status:M.response?.status,data:M.response?.data}),X?.(M),j;if(A||!K){if(B)console.log("[PieRoot] Loading state:",{isLoading:A,hasUiConfiguration:!!K});return j}if(B)console.log("[PieRoot] UI configuration loaded successfully:",K),console.log("[PieRoot] Rendering UI with configuration");return D(h.Provider,{value:H,children:D(w.Provider,{value:W,children:D(E.Provider,{value:F,children:D(C.Provider,{value:J??D(iJ,{}),children:D(j$,{children:D(N$,{children:G?D(X$,{uiConfig:K}):D("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:D(X$,{uiConfig:K})})})})})})})})},oJ=($)=>{let J=f(()=>new lJ,[]),Z=$.queryClient??J;return D(E$.Provider,{value:$.onNavigate,children:D(e.Provider,{value:$.config,children:D(b.Provider,{value:$.onError,children:D(cJ,{client:Z,children:D(sJ,{...$})})})})})},aJ=oJ;import{useEffect as p$,useState as $Z}from"react";import{useContext as Y$,useEffect as n,useRef as z$}from"react";function v$($){return $.wasRecovering===!0&&$.recovered===!1}function S$($){return $.recoverable===!1}function f$($,J,Z){let X=$.getSubscription(J);if(X)return{subscription:X,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}import{useMemo as O1}from"react";var h$=new Map,m$=($,J)=>{h$.set($,J)},g$=($)=>{h$.delete($)};import{jsx as tJ,jsxs as eJ,Fragment as rJ}from"react/jsx-runtime";var nJ=({card:$,data:J,children:Z,useSocketioSupport:X=!1,useCentrifugeSupport:Y=!1,useMittSupport:G=!1,centrifugeChannel:z=void 0,methods:Q=void 0,stored:B=void 0,onResync:U=void 0})=>{let H=V$(),W=z$(Q);W.current=Q;let F=z$(U);F.current=U;let V=z$(B);V.current=B;let K=typeof B==="function";if(n(()=>{if(!K)return;let I=J.name;return m$(I,()=>[JSON.stringify(V.current())]),()=>g$(I)},[K,J.name]),H)console.log("[PieCard] Rendering card:",$),console.log("[PieCard] Card data:",J),console.log("[PieCard] Component name:",J?.name),console.log("[PieCard] Real-time support:",{socketio:X,centrifuge:Y,mitt:G,centrifugeChannel:z}),console.log("[PieCard] Methods:",Q?Object.keys(Q):"none"),console.log("[PieCard] Has children:",!!Z);let A=Y$(w),M=Y$(E),j=Y$(h);if(n(()=>{if(!A||!X||!W.current||!J.name){if(H&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!A,useSocketioSupport:X,hasMethods:!!W.current,hasDataName:!!J?.name});return}let P=Object.keys(W.current??{}).map((_)=>{let q=`pie${_}_${J.name}`;if(H)console.log(`[PieCard] Socket.IO registering event: ${q}`);let O=(N)=>{W.current?.[_]?.(N)};return A.on(q,O),[q,O]});return()=>{P.forEach(([_,q])=>{if(H)console.log(`[PieCard] Socket.IO unregistering event: ${_}`);A.off(_,q)})}},[A,J.name,X]),n(()=>{if(!M||!Y||!z||!J.name){if(H&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!M,useCentrifugeSupport:Y,hasCentrifugeChannel:!!z,hasMethods:!!W.current,hasDataName:!!J?.name});return}let P=Object.keys(W.current??{}).map((_)=>{let q=`pie${_}_${J.name}_${z}`;if(H)console.log(`[PieCard] Centrifuge subscribing to channel: ${q}`);let{subscription:O,createdHere:N}=f$(M,q,{recoverable:!0,positioned:!0}),B$=(v)=>{if(H)console.log(`[PieCard] Centrifuge received data on ${q}:`,v.data);W.current?.[_]?.(v.data)},H$=(v)=>{if(S$(v))console.warn(`[PieCard] Centrifuge channel ${q} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(v$(v)){if(H)console.log(`[PieCard] Centrifuge recovery gap on ${q}; requesting resync`);F.current?.({channel:q,reason:"gap"})}};return O.on("publication",B$),O.on("subscribed",H$),O.subscribe(),{subscription:O,createdHere:N,onPublication:B$,onSubscribed:H$}});return()=>{P.forEach(({subscription:_,createdHere:q,onPublication:O,onSubscribed:N})=>{if(H)console.log("[PieCard] Centrifuge unsubscribing from channel");if(_.off("publication",O),_.off("subscribed",N),q)_.unsubscribe(),M.removeSubscription(_)})}},[M,z,J.name,Y]),n(()=>{if(!j||!G||!J.name){if(H&&G)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!j,useMittSupport:G,hasMethods:!!W.current,hasDataName:!!J?.name});return}let I=Object.keys(W.current??{}),P={};return I.forEach((_)=>{let q=`pie${_}_${J.name}`,O=(N)=>{if(H)console.log(`[PieCard] Mitt registering event: ${q}`);W.current?.[_]?.(N)};P[q]=O,j.on(q,O)}),()=>{Object.entries(P).forEach(([_,q])=>{if(H)console.log(`[PieCard] Mitt unregistering event: ${_}`);j.off(_,q)})}},[j,J.name,G]),H)console.log("[PieCard] Rendering complete, returning children");if(B!==void 0&&!K)return eJ(rJ,{children:[tJ("input",{type:"hidden",name:J.name,value:JSON.stringify(B)}),Z]});return Z},r=nJ;import{jsx as l$}from"react/jsx-runtime";var JZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:Q}=$,[B,U]=$Z(X);return p$(()=>{U(X)},[X]),p$(()=>{if(typeof window>"u")return;let H=window.Telegram?.WebApp?.CloudStorage;if(!H)return;H.setItem(Z,B)},[Z,B]),l$(r,{card:"CloudStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{U(H)},remove:()=>{let H=window.Telegram?.WebApp?.CloudStorage;if(H)H.removeItem(Z);U("")}},children:l$("input",{type:"hidden",id:J,name:J,value:B})})},c$=JZ;var ZZ=s({name:"CloudStorageCard",component:c$,metadata:{author:"PieData"}});import{useEffect as u$,useState as GZ}from"react";import{jsx as d$}from"react/jsx-runtime";var XZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:Q}=$,[B,U]=GZ(X);return u$(()=>{U(X)},[X]),u$(()=>{if(typeof window>"u")return;let H=window.Telegram?.WebApp?.SecureStorage;if(!H)return;H.setItem(Z,B)},[Z,B]),d$(r,{card:"SecureStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{U(H)},remove:()=>{let H=window.Telegram?.WebApp?.SecureStorage;if(H)H.removeItem(Z);U("")}},children:d$("input",{type:"hidden",id:J,name:J,value:B})})},s$=XZ;var YZ=s({name:"SecureStorageCard",component:s$,metadata:{author:"PieData"}});export{i as useWebApp,SJ as useInitData,YZ as SecureStorageCard,aJ as PieTelegramRoot,ZZ as CloudStorageCard};
|
|
2
|
+
import{useMemo as f}from"react";import{QueryClient as cJ,QueryClientProvider as lJ,useQuery as uJ}from"@tanstack/react-query";import o$ from"mitt";import{createContext as i$,useCallback as TZ,useContext as _Z}from"react";var t=globalThis,T=($,J)=>{let Z=Symbol.for($);if(!(Z in t))t[Z]=J();return t[Z]};function Q$(){return T("@swarm.ing/pieui:mitt-emitter",()=>o$())}var a$=T("@swarm.ing/pieui:context:mitt",()=>i$(null));var h=a$;import{io as n$}from"socket.io-client";import{createContext as r$}from"react";var T$=T("@swarm.ing/pieui:socket-cache",()=>new Map),_$=($)=>{let J=T$.get($);if(J)return J;let Z=n$($,{autoConnect:!1,transports:["websocket"]});return T$.set($,Z),Z},t$=T("@swarm.ing/pieui:context:socket",()=>r$(null)),w=t$;import{createContext as e$}from"react";import{Centrifuge as q$}from"centrifuge";var U$=T("@swarm.ing/pieui:centrifuge-cache",()=>new Map),W$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,X=U$.get(Z);if(X)return X;async function Y(){let z=await fetch($+"api/centrifuge/gen_token",{credentials:"include"});if(!z.ok){if(z.status===401||z.status===403)throw new q$.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let G=new q$(J,{getToken:Y});return U$.set(Z,G),G},$J=T("@swarm.ing/pieui:context:centrifuge",()=>e$(null)),E=$J;import{useContext as qJ,useEffect as UJ,useRef as J$}from"react";import{useEffect as JJ,useState as ZJ}from"react";var m=new Map,g=new Map;function p($,J){let Z=`${$}::${J}`,X=$?m.get(Z):void 0,[Y,G]=ZJ(X??null);return JJ(()=>{if(!$)return;if(m.has(Z)){G(m.get(Z));return}let z=g.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((B)=>B.json()).then((B)=>{return m.set(Z,B),g.delete(Z),B}).catch((B)=>{throw g.delete(Z),B}),g.set(Z,z);let Q=!1;return z.then((B)=>{if(!Q)G(B)}).catch(()=>{}),()=>{Q=!0}},[$,J,Z]),Y}import{createContext as GJ,useContext as XJ}from"react";var e=T("@swarm.ing/pieui:context:pieConfig",()=>GJ(null)),x=()=>{let $=XJ(e);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},$$=()=>{let{apiServer:$}=x();return $},c=$$,F$=()=>{let{centrifugeServer:$}=x();return $};var L=()=>{let{enableRenderingLog:$}=x();return $},V$=L,D$=()=>{let{pageProcessor:$}=x();return $};var l=()=>{let{onLinkLost:$}=x();return $},u=()=>{let{onLinkRestored:$}=x();return $};var YJ=($)=>{let J=document.cookie?document.cookie.split(";"):[];for(let Z of J){let X=Z.indexOf("=");if((X===-1?Z:Z.slice(0,X)).trim()===$){let G=X===-1?"":Z.slice(X+1).trim();try{return decodeURIComponent(G)}catch{return G}}}return null},zJ={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid($){if(typeof window<"u")window.sid=$},readWebStorage($,J){return($==="local"?window.localStorage:window.sessionStorage).getItem(J)},readCookie:YJ,readUrlParams($){return new URLSearchParams(window.location.search).getAll($)},readDomInput($){let J=document.getElementsByName($);if(!J.length)return null;let Z=J[0];if(Z instanceof HTMLInputElement){if(Z.type==="file"&&Z.files)return Array.from(Z.files);return[Z.value]}if(Z instanceof HTMLTextAreaElement)return[Z.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let $=document.getElementById("piedata_global_form");$&&$.submit()}},K$=zJ;var BJ={};function R(){return BJ}var M$=new Map;var I$=($)=>{return M$.has($)?M$.get($):null};var O$,HJ={isClient(){return!0},readSid(){return O$},setSid($){O$=$},readWebStorage($,J){let Z=R(),X=$==="local"?Z.storage:Z.sessionStorage;return X?X.getItem(J):null},async readWebStorageAsync($,J){let Z=R(),X=$==="local"?Z.asyncStorage:Z.asyncSessionStorage;if(X)return X.getItem(J);let Y=$==="local"?Z.storage:Z.sessionStorage;return Y?Y.getItem(J):null},readCookie($){let J=R();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=R();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=R();return J.getInput?J.getInput($):I$($)},submitGlobalForm(){R().submitForm?.()}},P$=HJ;var QJ=typeof navigator<"u"&&navigator.product==="ReactNative",TJ=QJ?P$:K$,d=TJ;var _J=T("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function A$(){_J.resolve?.()}function y($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var WJ=({children:$})=>{let J=qJ(w),Z=c(),X=p(Z,"socketIO"),Y=l(),G=u(),z=J$(Y);z.current=Y;let Q=J$(G);Q.current=G;let B=J$("initial"),U=(H)=>{if(d.isClient())d.setSid(H.sid),A$(),console.log(`SocketIO initialized: ${d.readSid()}`)};return UJ(()=>{if(!J||!X)return;let H=()=>{let{state:F,signal:V}=y(B.current,"up");if(B.current=F,V==="restored")Q.current?.("socketio");console.log("SocketIO connected")},W=(F)=>{if(console.log(`SocketIO disconnected: ${F}`),J.connect(),F==="io client disconnect")return;let{state:V,signal:K}=y(B.current,"down");if(B.current=V,K==="lost")z.current?.("socketio",F)};return J.on("pieinit",U),J.on("connect",H),J.on("disconnect",W),J.connect(),()=>{J.off("pieinit",U),J.off("connect",H),J.off("disconnect",W),J.disconnect()}},[J,X]),$},j$=WJ;import{useContext as FJ,useEffect as VJ,useRef as Z$}from"react";var DJ=({children:$})=>{let J=FJ(E),Z=c(),X=p(Z,"centrifuge"),Y=l(),G=u(),z=Z$(Y);z.current=Y;let Q=Z$(G);Q.current=G;let B=Z$("initial");return VJ(()=>{if(!J||!X)return;let U=(F)=>{let{state:V,signal:K}=y(B.current,"down");if(B.current=V,K==="lost")z.current?.("centrifuge",F)},H=()=>{let{state:F,signal:V}=y(B.current,"up");if(B.current=F,V==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},W=(F)=>{console.log("Centrifuge disconnected:",F),U(F)};return J.on("connecting",U),J.on("connected",H),J.on("disconnected",W),J.connect(),()=>{J.off("connecting",U),J.off("connected",H),J.off("disconnected",W),J.disconnect()}},[J,X]),$},N$=DJ;import{createContext as KJ}from"react";import{jsx as OJ,Fragment as IJ}from"react/jsx-runtime";var MJ=T("@swarm.ing/pieui:context:fallback",()=>KJ(OJ(IJ,{}))),C=MJ;import{createContext as PJ}from"react";var AJ=T("@swarm.ing/pieui:context:lazyError",()=>PJ(void 0)),b=AJ;import{lazy as jJ}from"react";var S=new Map;function NJ($,J){return J.catch(()=>{if(S.get($)===J)S.delete($)}),S.set($,J),J}function L$($,J){return jJ(()=>{if(S.has(J))return S.get(J);return NJ(J,$().then((Z)=>Z))})}var R$=T("@swarm.ing/pieui:component-registry",()=>new Map),LJ=($)=>{if(!$.name)throw Error("Component registration requires a name");if(!$.component&&!$.loader)throw Error(`Component "${$.name}" requires component or loader`);let J={name:$.name,component:$.component,loader:$.loader,metadata:$.metadata,fallback:$.fallback,isLazy:!1};if(!J.component&&J.loader)J.component=L$(J.loader,$.name),J.isLazy=!0;return J};function s($){let J=LJ($);return R$.set(J.name,J),J.component}var o=($)=>{return R$.get($)};import{useContext as w$,memo as CJ}from"react";import{Component as RJ,Suspense as wJ}from"react";import{jsx as yJ}from"react/jsx-runtime";var EJ=2,xJ=400;class k extends RJ{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<EJ){let J=xJ*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((Z)=>({failed:!1,attempt:Z.attempt+1}))},J)}}componentDidUpdate($){if($.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return yJ(wJ,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as G$}from"react/jsx-runtime";function bJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=w$(C),X=w$(b),Y=L();if(Y)console.log("[UI] Rendering component:",$.card),console.log("[UI] Component data:",$.data),console.log("[UI] Component content:",$.content),console.log("[UI] Has setUiAjaxConfiguration:",!!J);let G=o($.card);if(!G?.component){if(Y)console.warn(`[UI] Component not found in registry: ${$.card}`),console.log("[UI] Returning fallback component");return Z}if(Y)console.log("[UI] Found component in registry:",{name:G.name,isLazy:G.isLazy,hasMetadata:!!G.metadata});let z=G.component,Q=G$(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(G.isLazy){if(Y)console.log("[UI] Rendering lazy component with Suspense:",G.name);return G$(k,{name:G.name,fallback:G.fallback?G$(G.fallback,{}):Z,onError:X,children:Q})}if(Y)console.log("[UI] Rendering component directly:",G.name);return Q}var X$=CJ(bJ);import{createAxiosDateTransformer as dJ}from"axios-date-transformer";import{useEffect as kJ,useState as vJ}from"react";var i=({onError:$}={})=>{let[J,Z]=vJ(null),X=D$();return kJ(()=>{if(typeof window>"u")return;let Y=window.Telegram?.WebApp;if(!Y)return;try{Y.ready?.()}catch(G){$?.()}if(X==="telegram_expanded"&&(Y.platform==="ios"||Y.platform==="android"))Y.expand();Z(Y)},[]),J},SJ=()=>{let $=i();return[$?.initDataUnsafe,$?.initData]};import{createContext as fJ}from"react";var hJ=T("@swarm.ing/pieui:context:navigate",()=>fJ(void 0)),E$=hJ;import{useContext as y$}from"react";import{createContext as mJ}from"react";var gJ=T("@swarm.ing/pieui:context:uiRenderer",()=>mJ(null)),x$=gJ;import{jsx as a}from"react/jsx-runtime";function C$({uiConfig:$,setUiAjaxConfiguration:J}){let Z=y$(C),X=y$(b),Y=L();if(Y)console.log("[UILoading] Rendering fallback for:",$.card),console.log("[UILoading] Component data:",$.data),console.log("[UILoading] Component content:",$.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!J);let G=o($.card);if(!G?.component){if(Y)console.warn(`[UILoading] Component not found in registry: ${$.card}`),console.log("[UILoading] Returning fallback component");return Z}if(Y)console.log("[UILoading] Found component in registry:",{name:G.name,isLazy:G.isLazy,hasMetadata:!!G.metadata,hasFallback:!!G.fallback});if(G.fallback){if(Y)console.log("[UILoading] Rendering fallback for:",G.name);let B=G.fallback;return a(B,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",G.name);let z=G.component,Q=a(x$.Provider,{value:C$,children:a(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(G.isLazy)return a(k,{name:G.name,fallback:Z,onError:X,children:Q});return Q}var b$=C$;import{jsx as pJ}from"react/jsx-runtime";function k$($,J,Z){if(!J)return Z;let X=$.replace(/^\//,""),Y=J[X];if(!Y)return Z;return pJ(b$,{uiConfig:Y})}import{jsx as D,Fragment as iJ}from"react/jsx-runtime";var sJ=({location:$,fallback:J,piecache:Z,onError:X,queryOptions:Y,disableGlobalForm:G})=>{let z=$$(),Q=F$(),B=L(),U=f(()=>dJ({baseURL:z}),[z]),H=f(()=>Q$(),[]),W=f(()=>z?_$(z):null,[z]),F=f(()=>z?W$(z,Q):null,[z,Q]),V=i({onError:X}),{data:K,isLoading:A,error:M}=uJ({queryKey:["uiConfig",$.pathname+$.search,V?.initData],enabled:!!V?.initData,queryFn:async()=>{let I=new URLSearchParams($.search);if(I.set("__pieroot","telegram"),V?.initData)I.set("initData",V.initData);let P="/api/content"+$.pathname+"?"+I.toString();if(B)console.log("[PieRoot] Fetching UI configuration from:",P);let _=await U.get(P,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(B)console.log("[PieRoot] Received UI configuration:",_.data);return _.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(I)=>Math.min(1000*2**I,30000),...Y}),j=k$($.pathname,Z,J);if(!z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(M&&B)return console.error("[PieRoot] Error fetching UI configuration:",M),console.error("[PieRoot] Error details:",{message:M.message,status:M.response?.status,data:M.response?.data}),X?.(M),j;if(A||!K){if(B)console.log("[PieRoot] Loading state:",{isLoading:A,hasUiConfiguration:!!K});return j}if(B)console.log("[PieRoot] UI configuration loaded successfully:",K),console.log("[PieRoot] Rendering UI with configuration");return D(h.Provider,{value:H,children:D(w.Provider,{value:W,children:D(E.Provider,{value:F,children:D(C.Provider,{value:J??D(iJ,{}),children:D(j$,{children:D(N$,{children:G?D(X$,{uiConfig:K}):D("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:D(X$,{uiConfig:K})})})})})})})})},oJ=($)=>{let J=f(()=>new cJ,[]),Z=$.queryClient??J;return D(E$.Provider,{value:$.onNavigate,children:D(e.Provider,{value:$.config,children:D(b.Provider,{value:$.onError,children:D(lJ,{client:Z,children:D(sJ,{...$})})})})})},aJ=oJ;import{useEffect as p$,useState as $Z}from"react";import{useContext as Y$,useEffect as n,useRef as z$}from"react";function v$($){return $.wasRecovering===!0&&$.recovered===!1}function S$($){return $.recoverable===!1}function f$($,J,Z){let X=$.getSubscription(J);if(X)return{subscription:X,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}import{useMemo as O1}from"react";var h$=new Map,m$=($,J)=>{h$.set($,J)},g$=($)=>{h$.delete($)};import{jsx as tJ,jsxs as eJ,Fragment as rJ}from"react/jsx-runtime";var nJ=({card:$,data:J,children:Z,useSocketioSupport:X=!1,useCentrifugeSupport:Y=!1,useMittSupport:G=!1,centrifugeChannel:z=void 0,methods:Q=void 0,stored:B=void 0,onResync:U=void 0})=>{let H=V$(),W=z$(Q);W.current=Q;let F=z$(U);F.current=U;let V=z$(B);V.current=B;let K=typeof B==="function";if(n(()=>{if(!K)return;let I=J.name;return m$(I,()=>[JSON.stringify(V.current())]),()=>g$(I)},[K,J.name]),H)console.log("[PieCard] Rendering card:",$),console.log("[PieCard] Card data:",J),console.log("[PieCard] Component name:",J?.name),console.log("[PieCard] Real-time support:",{socketio:X,centrifuge:Y,mitt:G,centrifugeChannel:z}),console.log("[PieCard] Methods:",Q?Object.keys(Q):"none"),console.log("[PieCard] Has children:",!!Z);let A=Y$(w),M=Y$(E),j=Y$(h);if(n(()=>{if(!A||!X||!W.current||!J.name){if(H&&X)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!A,useSocketioSupport:X,hasMethods:!!W.current,hasDataName:!!J?.name});return}let P=Object.keys(W.current??{}).map((_)=>{let q=`pie${_}_${J.name}`;if(H)console.log(`[PieCard] Socket.IO registering event: ${q}`);let O=(N)=>{W.current?.[_]?.(N)};return A.on(q,O),[q,O]});return()=>{P.forEach(([_,q])=>{if(H)console.log(`[PieCard] Socket.IO unregistering event: ${_}`);A.off(_,q)})}},[A,J.name,X]),n(()=>{if(!M||!Y||!z||!J.name){if(H&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!M,useCentrifugeSupport:Y,hasCentrifugeChannel:!!z,hasMethods:!!W.current,hasDataName:!!J?.name});return}let P=Object.keys(W.current??{}).map((_)=>{let q=`pie${_}_${J.name}_${z}`;if(H)console.log(`[PieCard] Centrifuge subscribing to channel: ${q}`);let{subscription:O,createdHere:N}=f$(M,q,{recoverable:!0,positioned:!0}),B$=(v)=>{if(H)console.log(`[PieCard] Centrifuge received data on ${q}:`,v.data);W.current?.[_]?.(v.data)},H$=(v)=>{if(S$(v))console.warn(`[PieCard] Centrifuge channel ${q} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(v$(v)){if(H)console.log(`[PieCard] Centrifuge recovery gap on ${q}; requesting resync`);F.current?.({channel:q,reason:"gap"})}};return O.on("publication",B$),O.on("subscribed",H$),O.subscribe(),{subscription:O,createdHere:N,onPublication:B$,onSubscribed:H$}});return()=>{P.forEach(({subscription:_,createdHere:q,onPublication:O,onSubscribed:N})=>{if(H)console.log("[PieCard] Centrifuge unsubscribing from channel");if(_.off("publication",O),_.off("subscribed",N),q)_.unsubscribe(),M.removeSubscription(_)})}},[M,z,J.name,Y]),n(()=>{if(!j||!G||!J.name){if(H&&G)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!j,useMittSupport:G,hasMethods:!!W.current,hasDataName:!!J?.name});return}let I=Object.keys(W.current??{}),P={};return I.forEach((_)=>{let q=`pie${_}_${J.name}`,O=(N)=>{if(H)console.log(`[PieCard] Mitt registering event: ${q}`);W.current?.[_]?.(N)};P[q]=O,j.on(q,O)}),()=>{Object.entries(P).forEach(([_,q])=>{if(H)console.log(`[PieCard] Mitt unregistering event: ${_}`);j.off(_,q)})}},[j,J.name,G]),H)console.log("[PieCard] Rendering complete, returning children");if(B!==void 0&&!K)return eJ(rJ,{children:[tJ("input",{type:"hidden",name:J.name,value:JSON.stringify(B)}),Z]});return Z},r=nJ;import{jsx as c$}from"react/jsx-runtime";var JZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:Q}=$,[B,U]=$Z(X);return p$(()=>{U(X)},[X]),p$(()=>{if(typeof window>"u")return;let H=window.Telegram?.WebApp?.CloudStorage;if(!H)return;H.setItem(Z,B)},[Z,B]),c$(r,{card:"CloudStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{U(H)},remove:()=>{let H=window.Telegram?.WebApp?.CloudStorage;if(H)H.removeItem(Z);U("")}},children:c$("input",{type:"hidden",id:J,name:J,value:B})})},l$=JZ;var ZZ=s({name:"CloudStorageCard",component:l$,metadata:{author:"PieData"}});import{useEffect as u$,useState as GZ}from"react";import{jsx as d$}from"react/jsx-runtime";var XZ=({data:$})=>{let{name:J,key:Z,value:X,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:Q}=$,[B,U]=GZ(X);return u$(()=>{U(X)},[X]),u$(()=>{if(typeof window>"u")return;let H=window.Telegram?.WebApp?.SecureStorage;if(!H)return;H.setItem(Z,B)},[Z,B]),d$(r,{card:"SecureStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:G,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{U(H)},remove:()=>{let H=window.Telegram?.WebApp?.SecureStorage;if(H)H.removeItem(Z);U("")}},children:d$("input",{type:"hidden",id:J,name:J,value:B})})},s$=XZ;var YZ=s({name:"SecureStorageCard",component:s$,metadata:{author:"PieData"}});export{i as useWebApp,SJ as useInitData,YZ as SecureStorageCard,aJ as PieTelegramRoot,ZZ as CloudStorageCard};
|
package/dist/telegram/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var MJ=Object.create;var{getPrototypeOf:IJ,defineProperty:l,getOwnPropertyNames:j$,getOwnPropertyDescriptor:OJ}=Object,N$=Object.prototype.hasOwnProperty;var PJ=($,J,Z)=>{Z=$!=null?MJ(IJ($)):{};let G=J||!$||!$.__esModule?l(Z,"default",{value:$,enumerable:!0}):Z;for(let Y of j$($))if(!N$.call(G,Y))l(G,Y,{get:()=>$[Y],enumerable:!0});return G},A$=new WeakMap,AJ=($)=>{var J=A$.get($),Z;if(J)return J;if(J=l({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")j$($).map((G)=>!N$.call(J,G)&&l(J,G,{get:()=>$[G],enumerable:!(Z=OJ($,G))||Z.enumerable}));return A$.set($,J),J};var jJ=($,J)=>{for(var Z in J)l($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(G)=>J[Z]=()=>G})};var tJ={};jJ(tJ,{useWebApp:()=>d,useInitData:()=>t$,SecureStorageCard:()=>KJ,PieTelegramRoot:()=>HJ,CloudStorageCard:()=>VJ});module.exports=AJ(tJ);var h=require("react"),m=require("@tanstack/react-query");var L$=PJ(require("mitt")),a=require("react");var U$=globalThis,T=($,J)=>{let Z=Symbol.for($);if(!(Z in U$))U$[Z]=J();return U$[Z]};function R$(){return T("@swarm.ing/pieui:mitt-emitter",()=>L$.default())}var NJ=T("@swarm.ing/pieui:context:mitt",()=>a.createContext(null));var n=NJ;var E$=require("socket.io-client"),x$=require("react");var w$=T("@swarm.ing/pieui:socket-cache",()=>new Map),y$=($)=>{let J=w$.get($);if(J)return J;let Z=E$.io($,{autoConnect:!1,transports:["websocket"]});return w$.set($,Z),Z},LJ=T("@swarm.ing/pieui:context:socket",()=>x$.createContext(null)),y=LJ;var b$=require("react"),W$=require("centrifuge");var C$=T("@swarm.ing/pieui:centrifuge-cache",()=>new Map),k$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,G=C$.get(Z);if(G)return G;async function Y(){let z=await fetch($+"api/centrifuge/gen_token",{credentials:"include"});if(!z.ok){if(z.status===401||z.status===403)throw new W$.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let X=new W$.Centrifuge(J,{getToken:Y});return C$.set(Z,X),X},RJ=T("@swarm.ing/pieui:context:centrifuge",()=>b$.createContext(null)),C=RJ;var L=require("react");var e=require("react"),r=new Map,t=new Map;function $$($,J){let Z=`${$}::${J}`,G=$?r.get(Z):void 0,[Y,X]=e.useState(G??null);return e.useEffect(()=>{if(!$)return;if(r.has(Z)){X(r.get(Z));return}let z=t.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((B)=>B.json()).then((B)=>{return r.set(Z,B),t.delete(Z),B}).catch((B)=>{throw t.delete(Z),B}),t.set(Z,z);let Q=!1;return z.then((B)=>{if(!Q)X(B)}).catch(()=>{}),()=>{Q=!0}},[$,J,Z]),Y}var J$=require("react");var F$=T("@swarm.ing/pieui:context:pieConfig",()=>J$.createContext(null)),b=()=>{let $=J$.useContext(F$);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},V$=()=>{let{apiServer:$}=b();return $},Z$=V$,v$=()=>{let{centrifugeServer:$}=b();return $};var E=()=>{let{enableRenderingLog:$}=b();return $},S$=E,f$=()=>{let{pageProcessor:$}=b();return $};var G$=()=>{let{onLinkLost:$}=b();return $},X$=()=>{let{onLinkRestored:$}=b();return $};var wJ=($)=>{let J=document.cookie?document.cookie.split(";"):[];for(let Z of J){let G=Z.indexOf("=");if((G===-1?Z:Z.slice(0,G)).trim()===$){let X=G===-1?"":Z.slice(G+1).trim();try{return decodeURIComponent(X)}catch{return X}}}return null},EJ={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid($){if(typeof window<"u")window.sid=$},readWebStorage($,J){return($==="local"?window.localStorage:window.sessionStorage).getItem(J)},readCookie:wJ,readUrlParams($){return new URLSearchParams(window.location.search).getAll($)},readDomInput($){let J=document.getElementsByName($);if(!J.length)return null;let Z=J[0];if(Z instanceof HTMLInputElement){if(Z.type==="file"&&Z.files)return Array.from(Z.files);return[Z.value]}if(Z instanceof HTMLTextAreaElement)return[Z.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let $=document.getElementById("piedata_global_form");$&&$.submit()}},h$=EJ;var xJ={};function x(){return xJ}var m$=new Map;var g$=($)=>{return m$.has($)?m$.get($):null};var p$,yJ={isClient(){return!0},readSid(){return p$},setSid($){p$=$},readWebStorage($,J){let Z=x(),G=$==="local"?Z.storage:Z.sessionStorage;return G?G.getItem(J):null},async readWebStorageAsync($,J){let Z=x(),G=$==="local"?Z.asyncStorage:Z.asyncSessionStorage;if(G)return G.getItem(J);let Y=$==="local"?Z.storage:Z.sessionStorage;return Y?Y.getItem(J):null},readCookie($){let J=x();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=x();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=x();return J.getInput?J.getInput($):g$($)},submitGlobalForm(){x().submitForm?.()}},l$=yJ;var CJ=typeof navigator<"u"&&navigator.product==="ReactNative",bJ=CJ?l$:h$,Y$=bJ;var kJ=T("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function c$(){kJ.resolve?.()}function k($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var vJ=({children:$})=>{let J=L.useContext(y),Z=Z$(),G=$$(Z,"socketIO"),Y=G$(),X=X$(),z=L.useRef(Y);z.current=Y;let Q=L.useRef(X);Q.current=X;let B=L.useRef("initial"),U=(H)=>{if(Y$.isClient())Y$.setSid(H.sid),c$(),console.log(`SocketIO initialized: ${Y$.readSid()}`)};return L.useEffect(()=>{if(!J||!G)return;let H=()=>{let{state:V,signal:D}=k(B.current,"up");if(B.current=V,D==="restored")Q.current?.("socketio");console.log("SocketIO connected")},W=(V)=>{if(console.log(`SocketIO disconnected: ${V}`),J.connect(),V==="io client disconnect")return;let{state:D,signal:K}=k(B.current,"down");if(B.current=D,K==="lost")z.current?.("socketio",V)};return J.on("pieinit",U),J.on("connect",H),J.on("disconnect",W),J.connect(),()=>{J.off("pieinit",U),J.off("connect",H),J.off("disconnect",W),J.disconnect()}},[J,G]),$},u$=vJ;var R=require("react");var SJ=({children:$})=>{let J=R.useContext(C),Z=Z$(),G=$$(Z,"centrifuge"),Y=G$(),X=X$(),z=R.useRef(Y);z.current=Y;let Q=R.useRef(X);Q.current=X;let B=R.useRef("initial");return R.useEffect(()=>{if(!J||!G)return;let U=(V)=>{let{state:D,signal:K}=k(B.current,"down");if(B.current=D,K==="lost")z.current?.("centrifuge",V)},H=()=>{let{state:V,signal:D}=k(B.current,"up");if(B.current=V,D==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},W=(V)=>{console.log("Centrifuge disconnected:",V),U(V)};return J.on("connecting",U),J.on("connected",H),J.on("disconnected",W),J.connect(),()=>{J.off("connecting",U),J.off("connected",H),J.off("disconnected",W),J.disconnect()}},[J,G]),$},d$=SJ;var s$=require("react");var z$=require("react/jsx-runtime"),fJ=T("@swarm.ing/pieui:context:fallback",()=>s$.createContext(z$.jsx(z$.Fragment,{}))),v=fJ;var o$=require("react");var hJ=T("@swarm.ing/pieui:context:lazyError",()=>o$.createContext(void 0)),S=hJ;var i$=require("react"),c=new Map;function mJ($,J){return J.catch(()=>{if(c.get($)===J)c.delete($)}),c.set($,J),J}function a$($,J){return i$.lazy(()=>{if(c.has(J))return c.get(J);return mJ(J,$().then((Z)=>Z))})}var n$=T("@swarm.ing/pieui:component-registry",()=>new Map),gJ=($)=>{if(!$.name)throw Error("Component registration requires a name");if(!$.component&&!$.loader)throw Error(`Component "${$.name}" requires component or loader`);let J={name:$.name,component:$.component,loader:$.loader,metadata:$.metadata,fallback:$.fallback,isLazy:!1};if(!J.component&&J.loader)J.component=a$(J.loader,$.name),J.isLazy=!0;return J};function B$($){let J=gJ($);return n$.set(J.name,J),J.component}var H$=($)=>{return n$.get($)};var u=require("react");var Q$=require("react"),r$=require("react/jsx-runtime"),pJ=2,lJ=400;class f extends Q$.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<pJ){let J=lJ*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((Z)=>({failed:!1,attempt:Z.attempt+1}))},J)}}componentDidUpdate($){if($.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return r$.jsx(Q$.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var T$=require("react/jsx-runtime");function cJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=u.useContext(v),G=u.useContext(S),Y=E();if(Y)console.log("[UI] Rendering component:",$.card),console.log("[UI] Component data:",$.data),console.log("[UI] Component content:",$.content),console.log("[UI] Has setUiAjaxConfiguration:",!!J);let X=H$($.card);if(!X?.component){if(Y)console.warn(`[UI] Component not found in registry: ${$.card}`),console.log("[UI] Returning fallback component");return Z}if(Y)console.log("[UI] Found component in registry:",{name:X.name,isLazy:X.isLazy,hasMetadata:!!X.metadata});let z=X.component,Q=T$.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(X.isLazy){if(Y)console.log("[UI] Rendering lazy component with Suspense:",X.name);return T$.jsx(f,{name:X.name,fallback:X.fallback?T$.jsx(X.fallback,{}):Z,onError:G,children:Q})}if(Y)console.log("[UI] Rendering component directly:",X.name);return Q}var D$=u.memo(cJ);var BJ=require("axios-date-transformer");var _$=require("react");var d=({onError:$}={})=>{let[J,Z]=_$.useState(null),G=f$();return _$.useEffect(()=>{if(typeof window>"u")return;let Y=window.Telegram?.WebApp;if(!Y)return;try{Y.ready?.()}catch(X){$?.()}if(G==="telegram_expanded"&&(Y.platform==="ios"||Y.platform==="android"))Y.expand();Z(Y)},[]),J},t$=()=>{let $=d();return[$?.initDataUnsafe,$?.initData]};var e$=require("react");var uJ=T("@swarm.ing/pieui:context:navigate",()=>e$.createContext(void 0)),$J=uJ;var K$=require("react");var JJ=require("react");var dJ=T("@swarm.ing/pieui:context:uiRenderer",()=>JJ.createContext(null)),ZJ=dJ;var s=require("react/jsx-runtime");function GJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=K$.useContext(v),G=K$.useContext(S),Y=E();if(Y)console.log("[UILoading] Rendering fallback for:",$.card),console.log("[UILoading] Component data:",$.data),console.log("[UILoading] Component content:",$.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!J);let X=H$($.card);if(!X?.component){if(Y)console.warn(`[UILoading] Component not found in registry: ${$.card}`),console.log("[UILoading] Returning fallback component");return Z}if(Y)console.log("[UILoading] Found component in registry:",{name:X.name,isLazy:X.isLazy,hasMetadata:!!X.metadata,hasFallback:!!X.fallback});if(X.fallback){if(Y)console.log("[UILoading] Rendering fallback for:",X.name);let B=X.fallback;return s.jsx(B,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",X.name);let z=X.component,Q=s.jsx(ZJ.Provider,{value:GJ,children:s.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(X.isLazy)return s.jsx(f,{name:X.name,fallback:Z,onError:G,children:Q});return Q}var XJ=GJ;var zJ=require("react/jsx-runtime");function YJ($,J,Z){if(!J)return Z;let G=$.replace(/^\//,""),Y=J[G];if(!Y)return Z;return zJ.jsx(XJ,{uiConfig:Y})}var F=require("react/jsx-runtime"),sJ=({location:$,fallback:J,piecache:Z,onError:G,queryOptions:Y,disableGlobalForm:X})=>{let z=V$(),Q=v$(),B=E(),U=h.useMemo(()=>BJ.createAxiosDateTransformer({baseURL:z}),[z]),H=h.useMemo(()=>R$(),[]),W=h.useMemo(()=>z?y$(z):null,[z]),V=h.useMemo(()=>z?k$(z,Q):null,[z,Q]),D=d({onError:G}),{data:K,isLoading:j,error:I}=m.useQuery({queryKey:["uiConfig",$.pathname+$.search,D?.initData],enabled:!!D?.initData,queryFn:async()=>{let O=new URLSearchParams($.search);if(O.set("__pieroot","telegram"),D?.initData)O.set("initData",D.initData);let A="/api/content"+$.pathname+"?"+O.toString();if(B)console.log("[PieRoot] Fetching UI configuration from:",A);let _=await U.get(A,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(B)console.log("[PieRoot] Received UI configuration:",_.data);return _.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(O)=>Math.min(1000*2**O,30000),...Y}),N=YJ($.pathname,Z,J);if(!z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(I&&B)return console.error("[PieRoot] Error fetching UI configuration:",I),console.error("[PieRoot] Error details:",{message:I.message,status:I.response?.status,data:I.response?.data}),G?.(I),N;if(j||!K){if(B)console.log("[PieRoot] Loading state:",{isLoading:j,hasUiConfiguration:!!K});return N}if(B)console.log("[PieRoot] UI configuration loaded successfully:",K),console.log("[PieRoot] Rendering UI with configuration");return F.jsx(n.Provider,{value:H,children:F.jsx(y.Provider,{value:W,children:F.jsx(C.Provider,{value:V,children:F.jsx(v.Provider,{value:J??F.jsx(F.Fragment,{}),children:F.jsx(u$,{children:F.jsx(d$,{children:X?F.jsx(D$,{uiConfig:K}):F.jsx("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:F.jsx(D$,{uiConfig:K})})})})})})})})},oJ=($)=>{let J=h.useMemo(()=>new m.QueryClient,[]),Z=$.queryClient??J;return F.jsx($J.Provider,{value:$.onNavigate,children:F.jsx(F$.Provider,{value:$.config,children:F.jsx(S.Provider,{value:$.onError,children:F.jsx(m.QueryClientProvider,{client:Z,children:F.jsx(sJ,{...$})})})})})},HJ=oJ;var o=require("react");var M=require("react");function QJ($){return $.wasRecovering===!0&&$.recovered===!1}function TJ($){return $.recoverable===!1}function _J($,J,Z){let G=$.getSubscription(J);if(G)return{subscription:G,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}var iJ=require("react");var qJ=new Map,UJ=($,J)=>{qJ.set($,J)},WJ=($)=>{qJ.delete($)};var g=require("react/jsx-runtime"),aJ=({card:$,data:J,children:Z,useSocketioSupport:G=!1,useCentrifugeSupport:Y=!1,useMittSupport:X=!1,centrifugeChannel:z=void 0,methods:Q=void 0,stored:B=void 0,onResync:U=void 0})=>{let H=S$(),W=M.useRef(Q);W.current=Q;let V=M.useRef(U);V.current=U;let D=M.useRef(B);D.current=B;let K=typeof B==="function";if(M.useEffect(()=>{if(!K)return;let O=J.name;return UJ(O,()=>[JSON.stringify(D.current())]),()=>WJ(O)},[K,J.name]),H)console.log("[PieCard] Rendering card:",$),console.log("[PieCard] Card data:",J),console.log("[PieCard] Component name:",J?.name),console.log("[PieCard] Real-time support:",{socketio:G,centrifuge:Y,mitt:X,centrifugeChannel:z}),console.log("[PieCard] Methods:",Q?Object.keys(Q):"none"),console.log("[PieCard] Has children:",!!Z);let j=M.useContext(y),I=M.useContext(C),N=M.useContext(n);if(M.useEffect(()=>{if(!j||!G||!W.current||!J.name){if(H&&G)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!j,useSocketioSupport:G,hasMethods:!!W.current,hasDataName:!!J?.name});return}let A=Object.keys(W.current??{}).map((_)=>{let q=`pie${_}_${J.name}`;if(H)console.log(`[PieCard] Socket.IO registering event: ${q}`);let P=(w)=>{W.current?.[_]?.(w)};return j.on(q,P),[q,P]});return()=>{A.forEach(([_,q])=>{if(H)console.log(`[PieCard] Socket.IO unregistering event: ${_}`);j.off(_,q)})}},[j,J.name,G]),M.useEffect(()=>{if(!I||!Y||!z||!J.name){if(H&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!I,useCentrifugeSupport:Y,hasCentrifugeChannel:!!z,hasMethods:!!W.current,hasDataName:!!J?.name});return}let A=Object.keys(W.current??{}).map((_)=>{let q=`pie${_}_${J.name}_${z}`;if(H)console.log(`[PieCard] Centrifuge subscribing to channel: ${q}`);let{subscription:P,createdHere:w}=_J(I,q,{recoverable:!0,positioned:!0}),O$=(p)=>{if(H)console.log(`[PieCard] Centrifuge received data on ${q}:`,p.data);W.current?.[_]?.(p.data)},P$=(p)=>{if(TJ(p))console.warn(`[PieCard] Centrifuge channel ${q} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(QJ(p)){if(H)console.log(`[PieCard] Centrifuge recovery gap on ${q}; requesting resync`);V.current?.({channel:q,reason:"gap"})}};return P.on("publication",O$),P.on("subscribed",P$),P.subscribe(),{subscription:P,createdHere:w,onPublication:O$,onSubscribed:P$}});return()=>{A.forEach(({subscription:_,createdHere:q,onPublication:P,onSubscribed:w})=>{if(H)console.log("[PieCard] Centrifuge unsubscribing from channel");if(_.off("publication",P),_.off("subscribed",w),q)_.unsubscribe(),I.removeSubscription(_)})}},[I,z,J.name,Y]),M.useEffect(()=>{if(!N||!X||!J.name){if(H&&X)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!N,useMittSupport:X,hasMethods:!!W.current,hasDataName:!!J?.name});return}let O=Object.keys(W.current??{}),A={};return O.forEach((_)=>{let q=`pie${_}_${J.name}`,P=(w)=>{if(H)console.log(`[PieCard] Mitt registering event: ${q}`);W.current?.[_]?.(w)};A[q]=P,N.on(q,P)}),()=>{Object.entries(A).forEach(([_,q])=>{if(H)console.log(`[PieCard] Mitt unregistering event: ${_}`);N.off(_,q)})}},[N,J.name,X]),H)console.log("[PieCard] Rendering complete, returning children");if(B!==void 0&&!K)return g.jsxs(g.Fragment,{children:[g.jsx("input",{type:"hidden",name:J.name,value:JSON.stringify(B)}),Z]});return Z},q$=aJ;var M$=require("react/jsx-runtime"),nJ=({data:$})=>{let{name:J,key:Z,value:G,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q}=$,[B,U]=o.useState(G);return o.useEffect(()=>{U(G)},[G]),o.useEffect(()=>{if(typeof window>"u")return;let H=window.Telegram?.WebApp?.CloudStorage;if(!H)return;H.setItem(Z,B)},[Z,B]),M$.jsx(q$,{card:"CloudStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{U(H)},remove:()=>{let H=window.Telegram?.WebApp?.CloudStorage;if(H)H.removeItem(Z);U("")}},children:M$.jsx("input",{type:"hidden",id:J,name:J,value:B})})},FJ=nJ;var VJ=B$({name:"CloudStorageCard",component:FJ,metadata:{author:"PieData"}});var i=require("react");var I$=require("react/jsx-runtime"),rJ=({data:$})=>{let{name:J,key:Z,value:G,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q}=$,[B,U]=i.useState(G);return i.useEffect(()=>{U(G)},[G]),i.useEffect(()=>{if(typeof window>"u")return;let H=window.Telegram?.WebApp?.SecureStorage;if(!H)return;H.setItem(Z,B)},[Z,B]),I$.jsx(q$,{card:"SecureStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{U(H)},remove:()=>{let H=window.Telegram?.WebApp?.SecureStorage;if(H)H.removeItem(Z);U("")}},children:I$.jsx("input",{type:"hidden",id:J,name:J,value:B})})},DJ=rJ;var KJ=B$({name:"SecureStorageCard",component:DJ,metadata:{author:"PieData"}});
|
|
2
|
+
var MJ=Object.create;var{getPrototypeOf:IJ,defineProperty:c,getOwnPropertyNames:j$,getOwnPropertyDescriptor:OJ}=Object,N$=Object.prototype.hasOwnProperty;var PJ=($,J,Z)=>{Z=$!=null?MJ(IJ($)):{};let G=J||!$||!$.__esModule?c(Z,"default",{value:$,enumerable:!0}):Z;for(let Y of j$($))if(!N$.call(G,Y))c(G,Y,{get:()=>$[Y],enumerable:!0});return G},A$=new WeakMap,AJ=($)=>{var J=A$.get($),Z;if(J)return J;if(J=c({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")j$($).map((G)=>!N$.call(J,G)&&c(J,G,{get:()=>$[G],enumerable:!(Z=OJ($,G))||Z.enumerable}));return A$.set($,J),J};var jJ=($,J)=>{for(var Z in J)c($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(G)=>J[Z]=()=>G})};var tJ={};jJ(tJ,{useWebApp:()=>d,useInitData:()=>t$,SecureStorageCard:()=>KJ,PieTelegramRoot:()=>HJ,CloudStorageCard:()=>VJ});module.exports=AJ(tJ);var h=require("react"),m=require("@tanstack/react-query");var L$=PJ(require("mitt")),a=require("react");var U$=globalThis,T=($,J)=>{let Z=Symbol.for($);if(!(Z in U$))U$[Z]=J();return U$[Z]};function R$(){return T("@swarm.ing/pieui:mitt-emitter",()=>L$.default())}var NJ=T("@swarm.ing/pieui:context:mitt",()=>a.createContext(null));var n=NJ;var E$=require("socket.io-client"),x$=require("react");var w$=T("@swarm.ing/pieui:socket-cache",()=>new Map),y$=($)=>{let J=w$.get($);if(J)return J;let Z=E$.io($,{autoConnect:!1,transports:["websocket"]});return w$.set($,Z),Z},LJ=T("@swarm.ing/pieui:context:socket",()=>x$.createContext(null)),y=LJ;var b$=require("react"),W$=require("centrifuge");var C$=T("@swarm.ing/pieui:centrifuge-cache",()=>new Map),k$=($,J)=>{if(!J)return null;let Z=`${$}::${J}`,G=C$.get(Z);if(G)return G;async function Y(){let z=await fetch($+"api/centrifuge/gen_token",{credentials:"include"});if(!z.ok){if(z.status===401||z.status===403)throw new W$.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let X=new W$.Centrifuge(J,{getToken:Y});return C$.set(Z,X),X},RJ=T("@swarm.ing/pieui:context:centrifuge",()=>b$.createContext(null)),C=RJ;var L=require("react");var e=require("react"),r=new Map,t=new Map;function $$($,J){let Z=`${$}::${J}`,G=$?r.get(Z):void 0,[Y,X]=e.useState(G??null);return e.useEffect(()=>{if(!$)return;if(r.has(Z)){X(r.get(Z));return}let z=t.get(Z);if(!z)z=fetch($+`api/support/${J}`,{method:"GET"}).then((B)=>B.json()).then((B)=>{return r.set(Z,B),t.delete(Z),B}).catch((B)=>{throw t.delete(Z),B}),t.set(Z,z);let Q=!1;return z.then((B)=>{if(!Q)X(B)}).catch(()=>{}),()=>{Q=!0}},[$,J,Z]),Y}var J$=require("react");var F$=T("@swarm.ing/pieui:context:pieConfig",()=>J$.createContext(null)),b=()=>{let $=J$.useContext(F$);if(!$)throw Error("usePieConfig must be used within PieConfigProvider");return $},V$=()=>{let{apiServer:$}=b();return $},Z$=V$,v$=()=>{let{centrifugeServer:$}=b();return $};var E=()=>{let{enableRenderingLog:$}=b();return $},S$=E,f$=()=>{let{pageProcessor:$}=b();return $};var G$=()=>{let{onLinkLost:$}=b();return $},X$=()=>{let{onLinkRestored:$}=b();return $};var wJ=($)=>{let J=document.cookie?document.cookie.split(";"):[];for(let Z of J){let G=Z.indexOf("=");if((G===-1?Z:Z.slice(0,G)).trim()===$){let X=G===-1?"":Z.slice(G+1).trim();try{return decodeURIComponent(X)}catch{return X}}}return null},EJ={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid($){if(typeof window<"u")window.sid=$},readWebStorage($,J){return($==="local"?window.localStorage:window.sessionStorage).getItem(J)},readCookie:wJ,readUrlParams($){return new URLSearchParams(window.location.search).getAll($)},readDomInput($){let J=document.getElementsByName($);if(!J.length)return null;let Z=J[0];if(Z instanceof HTMLInputElement){if(Z.type==="file"&&Z.files)return Array.from(Z.files);return[Z.value]}if(Z instanceof HTMLTextAreaElement)return[Z.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let $=document.getElementById("piedata_global_form");$&&$.submit()}},h$=EJ;var xJ={};function x(){return xJ}var m$=new Map;var g$=($)=>{return m$.has($)?m$.get($):null};var p$,yJ={isClient(){return!0},readSid(){return p$},setSid($){p$=$},readWebStorage($,J){let Z=x(),G=$==="local"?Z.storage:Z.sessionStorage;return G?G.getItem(J):null},async readWebStorageAsync($,J){let Z=x(),G=$==="local"?Z.asyncStorage:Z.asyncSessionStorage;if(G)return G.getItem(J);let Y=$==="local"?Z.storage:Z.sessionStorage;return Y?Y.getItem(J):null},readCookie($){let J=x();return J.getCookie?J.getCookie($):null},readUrlParams($){let J=x();return J.getRouteParams?J.getRouteParams($):[]},readDomInput($){let J=x();return J.getInput?J.getInput($):g$($)},submitGlobalForm(){x().submitForm?.()}},c$=yJ;var CJ=typeof navigator<"u"&&navigator.product==="ReactNative",bJ=CJ?c$:h$,Y$=bJ;var kJ=T("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function l$(){kJ.resolve?.()}function k($,J){if(J==="up")return{state:"up",signal:$==="down"?"restored":null};return{state:"down",signal:$==="up"?"lost":null}}var vJ=({children:$})=>{let J=L.useContext(y),Z=Z$(),G=$$(Z,"socketIO"),Y=G$(),X=X$(),z=L.useRef(Y);z.current=Y;let Q=L.useRef(X);Q.current=X;let B=L.useRef("initial"),U=(H)=>{if(Y$.isClient())Y$.setSid(H.sid),l$(),console.log(`SocketIO initialized: ${Y$.readSid()}`)};return L.useEffect(()=>{if(!J||!G)return;let H=()=>{let{state:V,signal:D}=k(B.current,"up");if(B.current=V,D==="restored")Q.current?.("socketio");console.log("SocketIO connected")},W=(V)=>{if(console.log(`SocketIO disconnected: ${V}`),J.connect(),V==="io client disconnect")return;let{state:D,signal:K}=k(B.current,"down");if(B.current=D,K==="lost")z.current?.("socketio",V)};return J.on("pieinit",U),J.on("connect",H),J.on("disconnect",W),J.connect(),()=>{J.off("pieinit",U),J.off("connect",H),J.off("disconnect",W),J.disconnect()}},[J,G]),$},u$=vJ;var R=require("react");var SJ=({children:$})=>{let J=R.useContext(C),Z=Z$(),G=$$(Z,"centrifuge"),Y=G$(),X=X$(),z=R.useRef(Y);z.current=Y;let Q=R.useRef(X);Q.current=X;let B=R.useRef("initial");return R.useEffect(()=>{if(!J||!G)return;let U=(V)=>{let{state:D,signal:K}=k(B.current,"down");if(B.current=D,K==="lost")z.current?.("centrifuge",V)},H=()=>{let{state:V,signal:D}=k(B.current,"up");if(B.current=V,D==="restored")Q.current?.("centrifuge");console.log("Centrifuge connected")},W=(V)=>{console.log("Centrifuge disconnected:",V),U(V)};return J.on("connecting",U),J.on("connected",H),J.on("disconnected",W),J.connect(),()=>{J.off("connecting",U),J.off("connected",H),J.off("disconnected",W),J.disconnect()}},[J,G]),$},d$=SJ;var s$=require("react");var z$=require("react/jsx-runtime"),fJ=T("@swarm.ing/pieui:context:fallback",()=>s$.createContext(z$.jsx(z$.Fragment,{}))),v=fJ;var o$=require("react");var hJ=T("@swarm.ing/pieui:context:lazyError",()=>o$.createContext(void 0)),S=hJ;var i$=require("react"),l=new Map;function mJ($,J){return J.catch(()=>{if(l.get($)===J)l.delete($)}),l.set($,J),J}function a$($,J){return i$.lazy(()=>{if(l.has(J))return l.get(J);return mJ(J,$().then((Z)=>Z))})}var n$=T("@swarm.ing/pieui:component-registry",()=>new Map),gJ=($)=>{if(!$.name)throw Error("Component registration requires a name");if(!$.component&&!$.loader)throw Error(`Component "${$.name}" requires component or loader`);let J={name:$.name,component:$.component,loader:$.loader,metadata:$.metadata,fallback:$.fallback,isLazy:!1};if(!J.component&&J.loader)J.component=a$(J.loader,$.name),J.isLazy=!0;return J};function B$($){let J=gJ($);return n$.set(J.name,J),J.component}var H$=($)=>{return n$.get($)};var u=require("react");var Q$=require("react"),r$=require("react/jsx-runtime"),pJ=2,cJ=400;class f extends Q$.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch($){if(this.props.onError?.($),this.state.attempt<pJ){let J=cJ*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((Z)=>({failed:!1,attempt:Z.attempt+1}))},J)}}componentDidUpdate($){if($.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return r$.jsx(Q$.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var T$=require("react/jsx-runtime");function lJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=u.useContext(v),G=u.useContext(S),Y=E();if(Y)console.log("[UI] Rendering component:",$.card),console.log("[UI] Component data:",$.data),console.log("[UI] Component content:",$.content),console.log("[UI] Has setUiAjaxConfiguration:",!!J);let X=H$($.card);if(!X?.component){if(Y)console.warn(`[UI] Component not found in registry: ${$.card}`),console.log("[UI] Returning fallback component");return Z}if(Y)console.log("[UI] Found component in registry:",{name:X.name,isLazy:X.isLazy,hasMetadata:!!X.metadata});let z=X.component,Q=T$.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J});if(X.isLazy){if(Y)console.log("[UI] Rendering lazy component with Suspense:",X.name);return T$.jsx(f,{name:X.name,fallback:X.fallback?T$.jsx(X.fallback,{}):Z,onError:G,children:Q})}if(Y)console.log("[UI] Rendering component directly:",X.name);return Q}var D$=u.memo(lJ);var BJ=require("axios-date-transformer");var _$=require("react");var d=({onError:$}={})=>{let[J,Z]=_$.useState(null),G=f$();return _$.useEffect(()=>{if(typeof window>"u")return;let Y=window.Telegram?.WebApp;if(!Y)return;try{Y.ready?.()}catch(X){$?.()}if(G==="telegram_expanded"&&(Y.platform==="ios"||Y.platform==="android"))Y.expand();Z(Y)},[]),J},t$=()=>{let $=d();return[$?.initDataUnsafe,$?.initData]};var e$=require("react");var uJ=T("@swarm.ing/pieui:context:navigate",()=>e$.createContext(void 0)),$J=uJ;var K$=require("react");var JJ=require("react");var dJ=T("@swarm.ing/pieui:context:uiRenderer",()=>JJ.createContext(null)),ZJ=dJ;var s=require("react/jsx-runtime");function GJ({uiConfig:$,setUiAjaxConfiguration:J}){let Z=K$.useContext(v),G=K$.useContext(S),Y=E();if(Y)console.log("[UILoading] Rendering fallback for:",$.card),console.log("[UILoading] Component data:",$.data),console.log("[UILoading] Component content:",$.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!J);let X=H$($.card);if(!X?.component){if(Y)console.warn(`[UILoading] Component not found in registry: ${$.card}`),console.log("[UILoading] Returning fallback component");return Z}if(Y)console.log("[UILoading] Found component in registry:",{name:X.name,isLazy:X.isLazy,hasMetadata:!!X.metadata,hasFallback:!!X.fallback});if(X.fallback){if(Y)console.log("[UILoading] Rendering fallback for:",X.name);let B=X.fallback;return s.jsx(B,{})}if(Y)console.log("[UILoading] No fallback, rendering full component:",X.name);let z=X.component,Q=s.jsx(ZJ.Provider,{value:GJ,children:s.jsx(z,{data:$.data,content:$.content,setUiAjaxConfiguration:J})});if(X.isLazy)return s.jsx(f,{name:X.name,fallback:Z,onError:G,children:Q});return Q}var XJ=GJ;var zJ=require("react/jsx-runtime");function YJ($,J,Z){if(!J)return Z;let G=$.replace(/^\//,""),Y=J[G];if(!Y)return Z;return zJ.jsx(XJ,{uiConfig:Y})}var F=require("react/jsx-runtime"),sJ=({location:$,fallback:J,piecache:Z,onError:G,queryOptions:Y,disableGlobalForm:X})=>{let z=V$(),Q=v$(),B=E(),U=h.useMemo(()=>BJ.createAxiosDateTransformer({baseURL:z}),[z]),H=h.useMemo(()=>R$(),[]),W=h.useMemo(()=>z?y$(z):null,[z]),V=h.useMemo(()=>z?k$(z,Q):null,[z,Q]),D=d({onError:G}),{data:K,isLoading:j,error:I}=m.useQuery({queryKey:["uiConfig",$.pathname+$.search,D?.initData],enabled:!!D?.initData,queryFn:async()=>{let O=new URLSearchParams($.search);if(O.set("__pieroot","telegram"),D?.initData)O.set("initData",D.initData);let A="/api/content"+$.pathname+"?"+O.toString();if(B)console.log("[PieRoot] Fetching UI configuration from:",A);let _=await U.get(A,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(B)console.log("[PieRoot] Received UI configuration:",_.data);return _.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(O)=>Math.min(1000*2**O,30000),...Y}),N=YJ($.pathname,Z,J);if(!z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(I&&B)return console.error("[PieRoot] Error fetching UI configuration:",I),console.error("[PieRoot] Error details:",{message:I.message,status:I.response?.status,data:I.response?.data}),G?.(I),N;if(j||!K){if(B)console.log("[PieRoot] Loading state:",{isLoading:j,hasUiConfiguration:!!K});return N}if(B)console.log("[PieRoot] UI configuration loaded successfully:",K),console.log("[PieRoot] Rendering UI with configuration");return F.jsx(n.Provider,{value:H,children:F.jsx(y.Provider,{value:W,children:F.jsx(C.Provider,{value:V,children:F.jsx(v.Provider,{value:J??F.jsx(F.Fragment,{}),children:F.jsx(u$,{children:F.jsx(d$,{children:X?F.jsx(D$,{uiConfig:K}):F.jsx("form",{id:"piedata_global_form",action:z+"api/process"+$.pathname,method:"post",encType:"multipart/form-data",children:F.jsx(D$,{uiConfig:K})})})})})})})})},oJ=($)=>{let J=h.useMemo(()=>new m.QueryClient,[]),Z=$.queryClient??J;return F.jsx($J.Provider,{value:$.onNavigate,children:F.jsx(F$.Provider,{value:$.config,children:F.jsx(S.Provider,{value:$.onError,children:F.jsx(m.QueryClientProvider,{client:Z,children:F.jsx(sJ,{...$})})})})})},HJ=oJ;var o=require("react");var M=require("react");function QJ($){return $.wasRecovering===!0&&$.recovered===!1}function TJ($){return $.recoverable===!1}function _J($,J,Z){let G=$.getSubscription(J);if(G)return{subscription:G,createdHere:!1};return{subscription:$.newSubscription(J,Z),createdHere:!0}}var iJ=require("react");var qJ=new Map,UJ=($,J)=>{qJ.set($,J)},WJ=($)=>{qJ.delete($)};var g=require("react/jsx-runtime"),aJ=({card:$,data:J,children:Z,useSocketioSupport:G=!1,useCentrifugeSupport:Y=!1,useMittSupport:X=!1,centrifugeChannel:z=void 0,methods:Q=void 0,stored:B=void 0,onResync:U=void 0})=>{let H=S$(),W=M.useRef(Q);W.current=Q;let V=M.useRef(U);V.current=U;let D=M.useRef(B);D.current=B;let K=typeof B==="function";if(M.useEffect(()=>{if(!K)return;let O=J.name;return UJ(O,()=>[JSON.stringify(D.current())]),()=>WJ(O)},[K,J.name]),H)console.log("[PieCard] Rendering card:",$),console.log("[PieCard] Card data:",J),console.log("[PieCard] Component name:",J?.name),console.log("[PieCard] Real-time support:",{socketio:G,centrifuge:Y,mitt:X,centrifugeChannel:z}),console.log("[PieCard] Methods:",Q?Object.keys(Q):"none"),console.log("[PieCard] Has children:",!!Z);let j=M.useContext(y),I=M.useContext(C),N=M.useContext(n);if(M.useEffect(()=>{if(!j||!G||!W.current||!J.name){if(H&&G)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!j,useSocketioSupport:G,hasMethods:!!W.current,hasDataName:!!J?.name});return}let A=Object.keys(W.current??{}).map((_)=>{let q=`pie${_}_${J.name}`;if(H)console.log(`[PieCard] Socket.IO registering event: ${q}`);let P=(w)=>{W.current?.[_]?.(w)};return j.on(q,P),[q,P]});return()=>{A.forEach(([_,q])=>{if(H)console.log(`[PieCard] Socket.IO unregistering event: ${_}`);j.off(_,q)})}},[j,J.name,G]),M.useEffect(()=>{if(!I||!Y||!z||!J.name){if(H&&Y)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!I,useCentrifugeSupport:Y,hasCentrifugeChannel:!!z,hasMethods:!!W.current,hasDataName:!!J?.name});return}let A=Object.keys(W.current??{}).map((_)=>{let q=`pie${_}_${J.name}_${z}`;if(H)console.log(`[PieCard] Centrifuge subscribing to channel: ${q}`);let{subscription:P,createdHere:w}=_J(I,q,{recoverable:!0,positioned:!0}),O$=(p)=>{if(H)console.log(`[PieCard] Centrifuge received data on ${q}:`,p.data);W.current?.[_]?.(p.data)},P$=(p)=>{if(TJ(p))console.warn(`[PieCard] Centrifuge channel ${q} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(QJ(p)){if(H)console.log(`[PieCard] Centrifuge recovery gap on ${q}; requesting resync`);V.current?.({channel:q,reason:"gap"})}};return P.on("publication",O$),P.on("subscribed",P$),P.subscribe(),{subscription:P,createdHere:w,onPublication:O$,onSubscribed:P$}});return()=>{A.forEach(({subscription:_,createdHere:q,onPublication:P,onSubscribed:w})=>{if(H)console.log("[PieCard] Centrifuge unsubscribing from channel");if(_.off("publication",P),_.off("subscribed",w),q)_.unsubscribe(),I.removeSubscription(_)})}},[I,z,J.name,Y]),M.useEffect(()=>{if(!N||!X||!J.name){if(H&&X)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!N,useMittSupport:X,hasMethods:!!W.current,hasDataName:!!J?.name});return}let O=Object.keys(W.current??{}),A={};return O.forEach((_)=>{let q=`pie${_}_${J.name}`,P=(w)=>{if(H)console.log(`[PieCard] Mitt registering event: ${q}`);W.current?.[_]?.(w)};A[q]=P,N.on(q,P)}),()=>{Object.entries(A).forEach(([_,q])=>{if(H)console.log(`[PieCard] Mitt unregistering event: ${_}`);N.off(_,q)})}},[N,J.name,X]),H)console.log("[PieCard] Rendering complete, returning children");if(B!==void 0&&!K)return g.jsxs(g.Fragment,{children:[g.jsx("input",{type:"hidden",name:J.name,value:JSON.stringify(B)}),Z]});return Z},q$=aJ;var M$=require("react/jsx-runtime"),nJ=({data:$})=>{let{name:J,key:Z,value:G,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q}=$,[B,U]=o.useState(G);return o.useEffect(()=>{U(G)},[G]),o.useEffect(()=>{if(typeof window>"u")return;let H=window.Telegram?.WebApp?.CloudStorage;if(!H)return;H.setItem(Z,B)},[Z,B]),M$.jsx(q$,{card:"CloudStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{U(H)},remove:()=>{let H=window.Telegram?.WebApp?.CloudStorage;if(H)H.removeItem(Z);U("")}},children:M$.jsx("input",{type:"hidden",id:J,name:J,value:B})})},FJ=nJ;var VJ=B$({name:"CloudStorageCard",component:FJ,metadata:{author:"PieData"}});var i=require("react");var I$=require("react/jsx-runtime"),rJ=({data:$})=>{let{name:J,key:Z,value:G,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q}=$,[B,U]=i.useState(G);return i.useEffect(()=>{U(G)},[G]),i.useEffect(()=>{if(typeof window>"u")return;let H=window.Telegram?.WebApp?.SecureStorage;if(!H)return;H.setItem(Z,B)},[Z,B]),I$.jsx(q$,{card:"SecureStorageCard",data:$,useSocketioSupport:Y,useCentrifugeSupport:X,useMittSupport:z,centrifugeChannel:Q,methods:{update:({value:H})=>{U(H)},remove:()=>{let H=window.Telegram?.WebApp?.SecureStorage;if(H)H.removeItem(Z);U("")}},children:I$.jsx("input",{type:"hidden",id:J,name:J,value:B})})},DJ=rJ;var KJ=B$({name:"SecureStorageCard",component:DJ,metadata:{author:"PieData"}});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `flushStoredResolversToForm` mirrors function-`stored` resolvers into a form's
|
|
3
|
+
* DOM as hidden inputs so a native `form.submit()` serializes their current
|
|
4
|
+
* values. These tests exercise the DOM side-effects against an isolated
|
|
5
|
+
* happy-dom form passed by element — no global `document` is swapped, so the
|
|
6
|
+
* suite-wide test environment (and its globals) is left untouched.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=flushStoredResolversToForm.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flushStoredResolversToForm.test.d.ts","sourceRoot":"","sources":["../../src/tests/flushStoredResolversToForm.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -43,6 +43,27 @@ export type StoredResolver = () => Array<string | File> | Promise<Array<string |
|
|
|
43
43
|
export declare const registerStoredResolver: (name: string, resolver: StoredResolver) => void;
|
|
44
44
|
/** Remove a card's `stored` resolver (on unmount / when it stops being a fn). */
|
|
45
45
|
export declare const unregisterStoredResolver: (name: string) => void;
|
|
46
|
+
/**
|
|
47
|
+
* Resolve every function-`stored` and mirror it into the global form's DOM as
|
|
48
|
+
* hidden inputs, so a native `form.submit()` serializes them. Called once, at
|
|
49
|
+
* submit time — each (possibly expensive) resolver runs exactly once here,
|
|
50
|
+
* which is why we don't render a live hidden input per render.
|
|
51
|
+
*
|
|
52
|
+
* `HTMLFormElement.submit()` fires no `submit`/`formdata` event, so this cannot
|
|
53
|
+
* hook browser events; it is an explicit step in {@link submitGlobalForm}.
|
|
54
|
+
*
|
|
55
|
+
* Async resolvers and File values are skipped: a native submit cannot await and
|
|
56
|
+
* a hidden `<input>` cannot carry a File. In practice `PieCard` registers a
|
|
57
|
+
* synchronous resolver that yields a single JSON string, which this handles
|
|
58
|
+
* fully; the ajax submit path still resolves async/File values via
|
|
59
|
+
* {@link readAjaxKeyAsync}. Plain-value `stored` registers no resolver and is
|
|
60
|
+
* untouched here — its own static hidden input remains the only one.
|
|
61
|
+
*
|
|
62
|
+
* `target` is the form's element id (default `piedata_global_form`, resolved via
|
|
63
|
+
* the global `document`) or the form element itself. No-op when the id is not
|
|
64
|
+
* found, or when `document` is undefined (SSR / React Native).
|
|
65
|
+
*/
|
|
66
|
+
export declare const flushStoredResolversToForm: (target?: string | HTMLElement) => void;
|
|
46
67
|
/**
|
|
47
68
|
* Splits a dep name into its source and bare key, following the magic-name
|
|
48
69
|
* convention used by Ajax cards.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ajaxCommonUtils.d.ts","sourceRoot":"","sources":["../../src/util/ajaxCommonUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ajaxCommonUtils.d.ts","sourceRoot":"","sources":["../../src/util/ajaxCommonUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
* `ClientSources` implementation, which no-ops when the form is not mounted
|
|
5
5
|
* (and on the server). On React Native there is no HTML form; the native
|
|
6
6
|
* implementation supplies its own submission strategy.
|
|
7
|
+
*
|
|
8
|
+
* Before delegating, function-valued `stored` resolvers are flushed into the
|
|
9
|
+
* form's DOM as hidden inputs ({@link flushStoredResolversToForm}) so the
|
|
10
|
+
* native `form.submit()` serializes their current values — the resolvers run
|
|
11
|
+
* exactly once, here at submit time.
|
|
7
12
|
*/
|
|
8
13
|
export declare const submitGlobalForm: () => void;
|
|
9
14
|
//# sourceMappingURL=globalForm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalForm.d.ts","sourceRoot":"","sources":["../../src/util/globalForm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"globalForm.d.ts","sourceRoot":"","sources":["../../src/util/globalForm.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,YAG5B,CAAA"}
|