@swarm.ing/pieui 2.0.20 → 2.0.22
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/README.md +6 -2
- package/dist/cli.js +19558 -15325
- package/dist/components/Containers/OneOfCard/index.d.ts +3 -0
- package/dist/components/Containers/OneOfCard/index.d.ts.map +1 -0
- package/dist/components/Containers/OneOfCard/types/index.d.ts +9 -0
- package/dist/components/Containers/OneOfCard/types/index.d.ts.map +1 -0
- package/dist/components/Containers/OneOfCard/ui/OneOfCard.d.ts +4 -0
- package/dist/components/Containers/OneOfCard/ui/OneOfCard.d.ts.map +1 -0
- package/dist/components/PieBaseRoot/index.d.ts.map +1 -1
- package/dist/components/PieMaxRoot/index.d.ts.map +1 -1
- package/dist/components/PieRoot/index.d.ts.map +1 -1
- package/dist/components/PieRoot/types/index.d.ts +7 -0
- package/dist/components/PieRoot/types/index.d.ts.map +1 -1
- package/dist/components/PieTelegramRoot/index.d.ts.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +2 -2
- package/dist/index.js +2 -2
- package/dist/pieui.components.json +21 -0
- package/dist/tests/ajaxCommonUtils.test.d.ts +15 -0
- package/dist/tests/ajaxCommonUtils.test.d.ts.map +1 -0
- package/dist/tests/lazy.test.d.ts +14 -0
- package/dist/tests/lazy.test.d.ts.map +1 -0
- package/dist/tests/pieName.test.d.ts +12 -0
- package/dist/tests/pieName.test.d.ts.map +1 -0
- package/dist/tests/waitForSidAvailable.test.d.ts +20 -0
- package/dist/tests/waitForSidAvailable.test.d.ts.map +1 -0
- package/dist/util/ajaxCommonUtils.d.ts +18 -0
- package/dist/util/ajaxCommonUtils.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Containers/OneOfCard/index.ts"],"names":[],"mappings":";AAGA,wBAOE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
import { PieComplexContainerComponentProps } from '../../../../types';
|
|
3
|
+
export interface OneOfCardData {
|
|
4
|
+
name: string;
|
|
5
|
+
sx: CSSProperties;
|
|
6
|
+
}
|
|
7
|
+
export interface OneOfCardProps extends PieComplexContainerComponentProps<OneOfCardData> {
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Containers/OneOfCard/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAA;AAErE,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,aAAa,CAAA;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,iCAAiC,CAAC,aAAa,CAAC;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OneOfCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Containers/OneOfCard/ui/OneOfCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAKzC,QAAA,MAAM,SAAS,GAAI,4CAIhB,cAAc,4CAkBhB,CAAA;AAED,eAAe,SAAS,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieBaseRoot/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieBaseRoot/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AA6D1C;;;;;;;;;;GAUG;AACH,QAAA,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CAY3C,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieMaxRoot/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAOtC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieMaxRoot/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAOtC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAmL/C;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAYtC,CAAA;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieRoot/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieRoot/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAmLtC;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,OAAO,GAAI,OAAO,YAAY,4CAYnC,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -45,5 +45,12 @@ export interface PieRootProps {
|
|
|
45
45
|
config: PieConfig;
|
|
46
46
|
/** Optional react-query overrides; see {@link PieQueryOptions}. */
|
|
47
47
|
queryOptions?: PieQueryOptions;
|
|
48
|
+
/**
|
|
49
|
+
* When `true`, the implicit `<form id="piedata_global_form">` wrapper is
|
|
50
|
+
* not rendered. Use this when the host application owns its own form
|
|
51
|
+
* element or when PieUI is embedded inside another form and a nested
|
|
52
|
+
* `<form>` would be invalid HTML.
|
|
53
|
+
*/
|
|
54
|
+
disableGlobalForm?: boolean;
|
|
48
55
|
}
|
|
49
56
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/PieRoot/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAElC;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAC9B,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,EACzC,UAAU,GAAG,SAAS,GAAG,SAAS,CACrC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;;;;OAKG;IACH,QAAQ,EAAE;QACN,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;KACjB,CAAA;IACD;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvC,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,oEAAoE;IACpE,MAAM,EAAE,SAAS,CAAA;IACjB,mEAAmE;IACnE,YAAY,CAAC,EAAE,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/PieRoot/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAElC;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAC9B,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,EACzC,UAAU,GAAG,SAAS,GAAG,SAAS,CACrC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;;;;OAKG;IACH,QAAQ,EAAE;QACN,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;KACjB,CAAA;IACD;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvC,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,oEAAoE;IACpE,MAAM,EAAE,SAAS,CAAA;IACjB,mEAAmE;IACnE,YAAY,CAAC,EAAE,eAAe,CAAA;IAC9B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieTelegramRoot/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAOtC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieTelegramRoot/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAOtC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAqL/C;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAY3C,CAAA;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -13,4 +13,5 @@ export { default as CloudStorageCard } from './Common/CloudStorageCard';
|
|
|
13
13
|
export { default as SecureStorageCard } from './Common/SecureStorageCard';
|
|
14
14
|
export { default as AjaxGroupCard } from './Containers/AjaxGroupCard';
|
|
15
15
|
export { default as BoxCard } from './Containers/BoxCard';
|
|
16
|
+
export { default as OneOfCard } from './Containers/OneOfCard';
|
|
16
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{useContext as Q,useEffect as W,useRef as Wo}from"react";import{createContext as Bo,useContext as Vo}from"react";var qo=Bo(null),$o=()=>{let o=Vo(qo);if(!o)throw new Error("usePieConfig must be used within PieConfigProvider");return o};var $=()=>{let{enableRenderingLog:o}=$o();return o},a=$;import{createContext as Go}from"react";import{Centrifuge as df}from"centrifuge";var Fo=Go(null),b=Fo;import{io as Sf}from"socket.io-client";import{createContext as Oo}from"react";var Jo=Oo(null),N=Jo;import Af from"mitt";import{createContext as Xo,useCallback as Hf,useContext as Df}from"react";var Qo=Xo(null);var G=Qo;var Yo=({card:o,data:r,children:C,useSocketioSupport:f=!1,useCentrifugeSupport:p=!1,useMittSupport:U=!1,centrifugeChannel:m=void 0,methods:I=void 0})=>{let d=a(),u=Wo(I);if(u.current=I,d)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:f,centrifuge:p,mitt:U,centrifugeChannel:m}),console.log("[PieCard] Methods:",I?Object.keys(I):"none"),console.log("[PieCard] Has children:",!!C);let S=Q(N),w=Q(b),T=Q(G);if(W(()=>{if(!S||!f||!u.current||!r.name){if(d&&f)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!S,useSocketioSupport:f,hasMethods:!!u.current,hasDataName:!!r?.name});return}let i=Object.keys(u.current??{}).map((l)=>{let H=`pie${l}_${r.name}`;if(d)console.log(`[PieCard] Socket.IO registering event: ${H}`);let Z=(z)=>{u.current?.[l]?.(z)};return S.on(H,Z),[H,Z]});return()=>{i.forEach(([l,H])=>{if(d)console.log(`[PieCard] Socket.IO unregistering event: ${l}`);S.off(l,H)})}},[S,r.name,f]),W(()=>{if(!w||!p||!m||!r.name){if(d&&p)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!w,useCentrifugeSupport:p,hasCentrifugeChannel:!!m,hasMethods:!!u.current,hasDataName:!!r?.name});return}let i=Object.keys(u.current??{}).map((l)=>{let H=`pie${l}_${r.name}_${m}`;if(d)console.log(`[PieCard] Centrifuge subscribing to channel: ${H}`);let Z=w.newSubscription(H);return Z.on("publication",(z)=>{if(d)console.log(`[PieCard] Centrifuge received data on ${H}:`,z.data);u.current?.[l]?.(z.data)}),Z.subscribe(),Z});return()=>{i.forEach((l)=>{if(d)console.log("[PieCard] Centrifuge unsubscribing from channel");l.unsubscribe(),w.removeSubscription(l)})}},[w,m,r.name,p]),W(()=>{if(!T||!U||!r.name){if(d&&U)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!T,useMittSupport:U,hasMethods:!!u.current,hasDataName:!!r?.name});return}let P=Object.keys(u.current??{}),i={};return P.forEach((l)=>{let H=`pie${l}_${r.name}`,Z=(z)=>{if(d)console.log(`[PieCard] Mitt registering event: ${H}`);u.current?.[l]?.(z)};i[H]=Z,T.on(H,Z)}),()=>{Object.entries(i).forEach(([l,H])=>{if(d)console.log(`[PieCard] Mitt unregistering event: ${l}`);T.off(l,H)})}},[T,r.name,U]),d)console.log("[PieCard] Rendering complete, returning children");return C},g=Yo;import{lazy as no}from"react";var Y=new Map;function c(o,r){return no(()=>{if(Y.has(r))return Y.get(r);let C=o().then((f)=>f);return Y.set(r,C),C})}var j=new Map,Mo=(o)=>{if(!o.name)throw new Error("Component registration requires a name");if(!o.component&&!o.loader)throw new Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=c(r.loader,o.name),r.loader=void 0,r.isLazy=!0;return r};function A(o){let r=Mo(o);return j.set(r.name,r),r.component}var F=(o)=>{return j.get(o)};import{Suspense as xo,useContext as ko,memo as Eo}from"react";import{createContext as Ko}from"react";import{jsx as _o,Fragment as yo}from"react/jsx-runtime";var Ro=Ko(_o(yo,{})),V=Ro;import{jsx as n}from"react/jsx-runtime";function ao({uiConfig:o,setUiAjaxConfiguration:r}){let C=ko(V),f=$();if(f)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let p=F(o.card);if(!p?.component){if(f)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return C}if(f)console.log("[UI] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata});let U=p.component,m=n(U,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(p.isLazy){if(f)console.log("[UI] Rendering lazy component with Suspense:",p.name);return n(xo,{fallback:p.fallback?n(p.fallback,{}):C,children:m},`${p.name}`)}if(f)console.log("[UI] Rendering component directly:",p.name);return m}var B=Eo(ao);import{Suspense as co,useContext as jo}from"react";import{createContext as bo}from"react";var No=bo(null),L=No;import{jsx as O}from"react/jsx-runtime";function t({uiConfig:o,setUiAjaxConfiguration:r}){let C=jo(V),f=$();if(f)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let p=F(o.card);if(!p?.component){if(f)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return C}if(f)console.log("[UILoading] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata,hasFallback:!!p.fallback});if(p.fallback){if(f)console.log("[UILoading] Rendering fallback for:",p.name);let I=p.fallback;return O(I,{})}if(f)console.log("[UILoading] No fallback, rendering full component:",p.name);let U=p.component,m=O(L.Provider,{value:t,children:O(U,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(p.isLazy)return O(co,{fallback:C,children:m},`${p.name}`);return m}var to=t;import{useContext as vo}from"react";import{jsx as M}from"react/jsx-runtime";var so=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,U=vo(L)??B;return M(g,{card:f,data:o,children:M("div",{style:p,id:f,children:r.map((m,I)=>{return M(U,{uiConfig:m,setUiAjaxConfiguration:C},`children-${I}`)})})})},v=so;var ho=A({name:"SequenceCard",component:v,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as eo}from"react";import{jsx as s}from"react/jsx-runtime";var or=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f}=o,p=eo(L)??B;return s(g,{card:f,data:o,children:r.map((U,m)=>{return s(p,{uiConfig:U,setUiAjaxConfiguration:C},`children-${m}`)})})},h=or;var rr=A({name:"UnionCard",component:h,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as ur,useState as dr}from"react";import mr from"html-react-parser";import{useCallback as J,useEffect as fr,useRef as K,useState as pr}from"react";function Cr(){let o=new AudioContext,r=o.createOscillator(),C=r.connect(o.createMediaStreamDestination());r.start();let f=C.stream.getAudioTracks()[0];return f.enabled=!1,f}function R(o=null,r){let[C,f]=pr(!1),p=K(null),U=K(null),m=K(null),I=J(async(w,T=!0)=>{if(p.current)d();let P=new RTCPeerConnection;if(P.onconnectionstatechange=()=>{if(P.connectionState==="connected")f(!0);else if(["disconnected","failed","closed"].includes(P.connectionState))f(!1)},P.ontrack=(D)=>{if(o)o.srcObject=D.streams[0]},T){let D=await navigator.mediaDevices.getUserMedia({audio:!0});P.addTrack(D.getTracks()[0],D)}else{let D=Cr();P.addTrack(D)}let i=P.createDataChannel("oai-events");U.current=i,m.current=new Promise((D)=>{i.addEventListener("open",()=>{D()})});let l=await P.createOffer();await P.setLocalDescription(l);let X=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:l.sdp,headers:{Authorization:`Bearer ${w}`,"Content-Type":"application/sdp"}})).text();await P.setRemoteDescription({type:"answer",sdp:X}),p.current=P,await m.current},[o]),d=J(()=>{let w=U.current;if(w)w.close();p.current?.getSenders()?.forEach((T)=>T.track?.stop()),p.current?.close(),f(!1),p.current=null,U.current=null,m.current=null},[o]),u=J((w)=>{let T=U.current;if(!T){console.error("Data channel is not ready",w);return}let P=new Date().toLocaleTimeString();if(w.event_id=w.event_id||crypto.randomUUID(),T.send(JSON.stringify(w)),!w.timestamp)w.timestamp=P;r?.(w)},[r,o]),S=J((w)=>{if(!U.current){console.error("Data channel is not ready");return}let P=()=>{u({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:w}]}}),u({type:"response.create"})};if(m.current)m.current.then(P);else P()},[r,o]);return fr(()=>{let w=U.current;if(!w)return;let T=(P)=>{let i=JSON.parse(P.data);if(!i.timestamp)i.timestamp=new Date().toLocaleTimeString();r?.(i)};return w.addEventListener("message",T),()=>{w.removeEventListener("message",T)}},[r,o]),{isSessionActive:C,startSession:I,stopSession:d,sendTextMessage:S}}import{jsx as Sr}from"react/jsx-runtime";var Ur=({data:o})=>{let{html:r,useSocketioSupport:C,useCentrifugeSupport:f,useMittSupport:p,centrifugeChannel:U}=o,[m,I]=dr(r),{isSessionActive:d,startSession:u,sendTextMessage:S}=R(null,(i)=>{if(console.log(i.type,i.type==="response.output_text.delta"&&i.delta),i.type==="response.output_text.delta"&&i.delta)I((l)=>l+i.delta)});return ur(()=>{I(r)},[r]),Sr(g,{card:"HTMLEmbedCard",data:o,methods:{update:(i)=>{I(i.value)},generateUsingAI:async(i)=>{try{if(!d&&i.token)await u(i.token,!1);S(i.prompt)}catch(l){console.error("Failed to generate using AI",l)}},initializeAI:async(i)=>{if(!d&&i.token)await u(i.token,!1)}},useCentrifugeSupport:f,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:U,children:mr(m)})},e=Ur;var ir=A({name:"HTMLEmbedCard",component:e,metadata:{author:"Swarm.ing"}});import{useEffect as Ir,useState as lr}from"react";import{jsx as oo}from"react/jsx-runtime";var wr=({data:o})=>{let{name:r,value:C,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:U,centrifugeChannel:m}=o,[I,d]=lr(C);return Ir(()=>{d(C)},[C]),oo(g,{card:"HiddenCard",data:o,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:U,centrifugeChannel:m,methods:{update:({value:u})=>{d(u)}},children:oo("input",{type:"hidden",id:r,name:r,value:I})})},ro=wr;var Pr=A({name:"HiddenCard",component:ro,metadata:{author:"Swarm.ing"}});import{useContext as fo,useEffect as gr}from"react";import{createContext as Ar}from"react";var Tr=Ar(void 0),q=Tr;import{jsx as Zr,Fragment as Dr}from"react/jsx-runtime";var Hr=({data:o})=>{let{url:r}=o,C=fo(q),f=fo(V);return gr(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else C?.(r)},[r,C]),Zr(Dr,{children:f})},po=Hr;var Lr=A({name:"AutoRedirectCard",component:po,metadata:{author:"Swarm.ing"}});import{Bounce as zr,Slide as Br,Zoom as Vr,Flip as qr}from"react-toastify";import{toast as $r,ToastContainer as Gr}from"react-toastify";import{useContext as Fr,useMemo as Or,useRef as Jr}from"react";import{jsx as y,Fragment as Mr}from"react/jsx-runtime";var Xr={bounce:zr,slide:Br,zoom:Vr,flip:qr},Qr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?Xr[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};$r(o.message,r)},Wr=(o)=>{console.log("Log event",o)},Yr=(o)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(f){console.error("[IOEventsCard] Failed to show notification",f)}},C=window.Notification.permission;if(C==="granted"){r();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((f)=>{if(f==="granted")r()})},nr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p}=o,U=Fr(q),m=Jr(U);m.current=U;let I=Or(()=>({alert:Qr,log:Wr,push:Yr,redirect:(d)=>{if(d.to){let u=d.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else m.current?.(u)}else window.location.reload()},reload:(d)=>{if(d.to){let u=d.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else m.current?.(u)}else window.location.reload()}}),[]);return y(Mr,{children:y(g,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p,methods:I,children:y(Gr,{})})})},Co=nr;var Kr=A({name:"IOEventsCard",component:Co,metadata:{author:"Swarm.ing"}});import{useEffect as uo,useState as Rr}from"react";import{jsx as mo}from"react/jsx-runtime";var yr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I}=o,[d,u]=Rr(f);return uo(()=>{u(f)},[f]),uo(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(C,d)},[C,d]),mo(g,{card:"SessionStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I,methods:{update:({value:S})=>{u(S)},remove:()=>{sessionStorage.removeItem(C),u("")}},children:mo("input",{type:"hidden",id:r,name:r,value:d})})},Uo=yr;var _r=A({name:"SessionStorageCard",component:Uo,metadata:{author:"PieData"}});import{useEffect as So,useState as xr}from"react";import{jsx as io}from"react/jsx-runtime";var kr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I}=o,[d,u]=xr(f);return So(()=>{u(f)},[f]),So(()=>{if(typeof window==="undefined")return;localStorage.setItem(C,d)},[C,d]),io(g,{card:"DeviceStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I,methods:{update:({value:S})=>{u(S)},remove:()=>{localStorage.removeItem(C),u("")}},children:io("input",{type:"hidden",id:r,name:r,value:d})})},Io=kr;var Er=A({name:"DeviceStorageCard",component:Io,metadata:{author:"PieData"}});import{useEffect as lo,useState as ar}from"react";import{jsx as wo}from"react/jsx-runtime";var br=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I}=o,[d,u]=ar(f);return lo(()=>{u(f)},[f]),lo(()=>{if(typeof window==="undefined")return;let S=window.Telegram?.WebApp?.CloudStorage;if(!S)return;S.setItem(C,d)},[C,d]),wo(g,{card:"CloudStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I,methods:{update:({value:S})=>{u(S)},remove:()=>{let S=window.Telegram?.WebApp?.CloudStorage;if(S)S.removeItem(C);u("")}},children:wo("input",{type:"hidden",id:r,name:r,value:d})})},Po=br;var Nr=A({name:"CloudStorageCard",component:Po,metadata:{author:"PieData"}});import{useEffect as Ao,useState as cr}from"react";import{jsx as To}from"react/jsx-runtime";var jr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I}=o,[d,u]=cr(f);return Ao(()=>{u(f)},[f]),Ao(()=>{if(typeof window==="undefined")return;let S=window.Telegram?.WebApp?.SecureStorage;if(!S)return;S.setItem(C,d)},[C,d]),To(g,{card:"SecureStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I,methods:{update:({value:S})=>{u(S)},remove:()=>{let S=window.Telegram?.WebApp?.SecureStorage;if(S)S.removeItem(C);u("")}},children:To("input",{type:"hidden",id:r,name:r,value:d})})},go=jr;var tr=A({name:"SecureStorageCard",component:go,metadata:{author:"PieData"}});import{useCallback as _,useContext as x,useEffect as vr,useRef as sr,useState as Ho}from"react";import{jsx as Do}from"react/jsx-runtime";var hr=({data:o,content:r})=>{let{useLoader:C,noReturn:f,returnType:p,useSocketioSupport:U,useCentrifugeSupport:m,useMittSupport:I,centrifugeChannel:d}=o,u=x(V),S=x(L)??B,[w,T]=Ho(!1),[P,i]=Ho(null),l=sr(r),H=x(G),Z=_((D)=>{if(D===null)T(!0);else if(T(!1),!f)l.current=D;if(!f)i(D)},[f]),z=_((D)=>{l.current=D.content,i(D.content)},[]),X=_((D)=>{if(D===null)T(!0);else if(T(!1),!f)for(let E of D)H?.emit(E.name,E.data)},[f,H]);if(vr(()=>{i(r),T(!1)},[r]),!P&&C)return u;return Do(g,{card:"AjaxGroupCard",data:o,methods:{changeContent:z},useSocketioSupport:U,useCentrifugeSupport:m,useMittSupport:I,centrifugeChannel:d,children:Do(S,{uiConfig:P??l.current,setUiAjaxConfiguration:p==="events"?X:Z})})},Zo=hr;var er=A({name:"AjaxGroupCard",component:Zo,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as Lo}from"react";import{jsx as k}from"react/jsx-runtime";var of=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,url:p,sx:U}=o,m=Lo(q),I=Lo(L)??B;return k(g,{card:f,data:o,children:k("div",{style:U,id:f,onClick:(u)=>{if(p)if(u.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(p))window.location.href=p;else m?.(p)},children:k(I,{setUiAjaxConfiguration:C,uiConfig:r})})})},zo=of;var rf=A({name:"BoxCard",component:zo,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});export{rr as UnionCard,to as UILoading,B as UI,_r as SessionStorageCard,ho as SequenceCard,tr as SecureStorageCard,g as PieCard,Kr as IOEventsCard,Pr as HiddenCard,ir as HTMLEmbedCard,Er as DeviceStorageCard,Nr as CloudStorageCard,rf as BoxCard,Lr as AutoRedirectCard,er as AjaxGroupCard};
|
|
2
|
+
import{useContext as J,useEffect as X,useRef as Wo}from"react";import{createContext as zo,useContext as Bo}from"react";var Vo=zo(null),$o=()=>{let o=Bo(Vo);if(!o)throw new Error("usePieConfig must be used within PieConfigProvider");return o};var B=()=>{let{enableRenderingLog:o}=$o();return o},E=B;import{createContext as qo}from"react";import{Centrifuge as lf}from"centrifuge";var Go=qo(null),b=Go;import{io as nf}from"socket.io-client";import{createContext as Fo}from"react";var Jo=Fo(null),N=Jo;import Of from"mitt";import{createContext as Xo,useCallback as Zf,useContext as Lf}from"react";var Qo=Xo(null);var V=Qo;var Yo=({card:o,data:r,children:C,useSocketioSupport:f=!1,useCentrifugeSupport:p=!1,useMittSupport:u=!1,centrifugeChannel:i=void 0,methods:I=void 0})=>{let m=E(),d=Wo(I);if(d.current=I,m)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:f,centrifuge:p,mitt:u,centrifugeChannel:i}),console.log("[PieCard] Methods:",I?Object.keys(I):"none"),console.log("[PieCard] Has children:",!!C);let U=J(N),P=J(b),g=J(V);if(X(()=>{if(!U||!f||!d.current||!r.name){if(m&&f)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!U,useSocketioSupport:f,hasMethods:!!d.current,hasDataName:!!r?.name});return}let S=Object.keys(d.current??{}).map((l)=>{let T=`pie${l}_${r.name}`;if(m)console.log(`[PieCard] Socket.IO registering event: ${T}`);let O=(Z)=>{d.current?.[l]?.(Z)};return U.on(T,O),[T,O]});return()=>{S.forEach(([l,T])=>{if(m)console.log(`[PieCard] Socket.IO unregistering event: ${l}`);U.off(l,T)})}},[U,r.name,f]),X(()=>{if(!P||!p||!i||!r.name){if(m&&p)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!P,useCentrifugeSupport:p,hasCentrifugeChannel:!!i,hasMethods:!!d.current,hasDataName:!!r?.name});return}let S=Object.keys(d.current??{}).map((l)=>{let T=`pie${l}_${r.name}_${i}`;if(m)console.log(`[PieCard] Centrifuge subscribing to channel: ${T}`);let O=P.newSubscription(T);return O.on("publication",(Z)=>{if(m)console.log(`[PieCard] Centrifuge received data on ${T}:`,Z.data);d.current?.[l]?.(Z.data)}),O.subscribe(),O});return()=>{S.forEach((l)=>{if(m)console.log("[PieCard] Centrifuge unsubscribing from channel");l.unsubscribe(),P.removeSubscription(l)})}},[P,i,r.name,p]),X(()=>{if(!g||!u||!r.name){if(m&&u)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!g,useMittSupport:u,hasMethods:!!d.current,hasDataName:!!r?.name});return}let w=Object.keys(d.current??{}),S={};return w.forEach((l)=>{let T=`pie${l}_${r.name}`,O=(Z)=>{if(m)console.log(`[PieCard] Mitt registering event: ${T}`);d.current?.[l]?.(Z)};S[T]=O,g.on(T,O)}),()=>{Object.entries(S).forEach(([l,T])=>{if(m)console.log(`[PieCard] Mitt unregistering event: ${l}`);g.off(l,T)})}},[g,r.name,u]),m)console.log("[PieCard] Rendering complete, returning children");return C},A=Yo;import{lazy as to}from"react";var Q=new Map;function c(o,r){return to(()=>{if(Q.has(r))return Q.get(r);let C=o().then((f)=>f);return Q.set(r,C),C})}var j=new Map,yo=(o)=>{if(!o.name)throw new Error("Component registration requires a name");if(!o.component&&!o.loader)throw new Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=c(r.loader,o.name),r.loader=void 0,r.isLazy=!0;return r};function n(o){let r=yo(o);return j.set(r.name,r),r.component}var $=(o)=>{return j.get(o)};import{Suspense as _o,useContext as ko,memo as Eo}from"react";import{createContext as Mo}from"react";import{jsx as xo,Fragment as Ko}from"react/jsx-runtime";var Ro=Mo(xo(Ko,{})),L=Ro;import{jsx as W}from"react/jsx-runtime";function bo({uiConfig:o,setUiAjaxConfiguration:r}){let C=ko(L),f=B();if(f)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let p=$(o.card);if(!p?.component){if(f)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return C}if(f)console.log("[UI] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata});let u=p.component,i=W(u,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(p.isLazy){if(f)console.log("[UI] Rendering lazy component with Suspense:",p.name);return W(_o,{fallback:p.fallback?W(p.fallback,{}):C,children:i},`${p.name}`)}if(f)console.log("[UI] Rendering component directly:",p.name);return i}var D=Eo(bo);import{Suspense as jo,useContext as vo}from"react";import{createContext as No}from"react";var co=No(null),a=co;import{jsx as q}from"react/jsx-runtime";function v({uiConfig:o,setUiAjaxConfiguration:r}){let C=vo(L),f=B();if(f)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let p=$(o.card);if(!p?.component){if(f)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return C}if(f)console.log("[UILoading] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata,hasFallback:!!p.fallback});if(p.fallback){if(f)console.log("[UILoading] Rendering fallback for:",p.name);let I=p.fallback;return q(I,{})}if(f)console.log("[UILoading] No fallback, rendering full component:",p.name);let u=p.component,i=q(a.Provider,{value:v,children:q(u,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(p.isLazy)return q(jo,{fallback:C,children:i},`${p.name}`);return i}var so=v;import{useContext as ho}from"react";import{jsx as Y}from"react/jsx-runtime";var eo=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,u=ho(a)??D;return Y(A,{card:f,data:o,children:Y("div",{style:p,id:f,children:r.map((i,I)=>{return Y(u,{uiConfig:i,setUiAjaxConfiguration:C},`children-${I}`)})})})},s=eo;var or=n({name:"SequenceCard",component:s,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as rr}from"react";import{jsx as h}from"react/jsx-runtime";var fr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f}=o,p=rr(a)??D;return h(A,{card:f,data:o,children:r.map((u,i)=>{return h(p,{uiConfig:u,setUiAjaxConfiguration:C},`children-${i}`)})})},e=fr;var pr=n({name:"UnionCard",component:e,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as ir,useState as ur}from"react";import Ur from"html-react-parser";import{useCallback as G,useEffect as Cr,useRef as t,useState as dr}from"react";function mr(){let o=new AudioContext,r=o.createOscillator(),C=r.connect(o.createMediaStreamDestination());r.start();let f=C.stream.getAudioTracks()[0];return f.enabled=!1,f}function y(o=null,r){let[C,f]=dr(!1),p=t(null),u=t(null),i=t(null),I=G(async(P,g=!0)=>{if(p.current)m();let w=new RTCPeerConnection;if(w.onconnectionstatechange=()=>{if(w.connectionState==="connected")f(!0);else if(["disconnected","failed","closed"].includes(w.connectionState))f(!1)},w.ontrack=(H)=>{if(o)o.srcObject=H.streams[0]},g){let H=await navigator.mediaDevices.getUserMedia({audio:!0});w.addTrack(H.getTracks()[0],H)}else{let H=mr();w.addTrack(H)}let S=w.createDataChannel("oai-events");u.current=S,i.current=new Promise((H)=>{S.addEventListener("open",()=>{H()})});let l=await w.createOffer();await w.setLocalDescription(l);let F=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:l.sdp,headers:{Authorization:`Bearer ${P}`,"Content-Type":"application/sdp"}})).text();await w.setRemoteDescription({type:"answer",sdp:F}),p.current=w,await i.current},[o]),m=G(()=>{let P=u.current;if(P)P.close();p.current?.getSenders()?.forEach((g)=>g.track?.stop()),p.current?.close(),f(!1),p.current=null,u.current=null,i.current=null},[o]),d=G((P)=>{let g=u.current;if(!g){console.error("Data channel is not ready",P);return}let w=new Date().toLocaleTimeString();if(P.event_id=P.event_id||crypto.randomUUID(),g.send(JSON.stringify(P)),!P.timestamp)P.timestamp=w;r?.(P)},[r,o]),U=G((P)=>{if(!u.current){console.error("Data channel is not ready");return}let w=()=>{d({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:P}]}}),d({type:"response.create"})};if(i.current)i.current.then(w);else w()},[r,o]);return Cr(()=>{let P=u.current;if(!P)return;let g=(w)=>{let S=JSON.parse(w.data);if(!S.timestamp)S.timestamp=new Date().toLocaleTimeString();r?.(S)};return P.addEventListener("message",g),()=>{P.removeEventListener("message",g)}},[r,o]),{isSessionActive:C,startSession:I,stopSession:m,sendTextMessage:U}}import{jsx as Ir}from"react/jsx-runtime";var Sr=({data:o})=>{let{html:r,useSocketioSupport:C,useCentrifugeSupport:f,useMittSupport:p,centrifugeChannel:u}=o,[i,I]=ur(r),{isSessionActive:m,startSession:d,sendTextMessage:U}=y(null,(S)=>{if(console.log(S.type,S.type==="response.output_text.delta"&&S.delta),S.type==="response.output_text.delta"&&S.delta)I((l)=>l+S.delta)});return ir(()=>{I(r)},[r]),Ir(A,{card:"HTMLEmbedCard",data:o,methods:{update:(S)=>{I(S.value)},generateUsingAI:async(S)=>{try{if(!m&&S.token)await d(S.token,!1);U(S.prompt)}catch(l){console.error("Failed to generate using AI",l)}},initializeAI:async(S)=>{if(!m&&S.token)await d(S.token,!1)}},useCentrifugeSupport:f,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:u,children:Ur(i)})},oo=Sr;var lr=n({name:"HTMLEmbedCard",component:oo,metadata:{author:"Swarm.ing"}});import{useEffect as Pr,useState as wr}from"react";import{jsx as ro}from"react/jsx-runtime";var nr=({data:o})=>{let{name:r,value:C,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:u,centrifugeChannel:i}=o,[I,m]=wr(C);return Pr(()=>{m(C)},[C]),ro(A,{card:"HiddenCard",data:o,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:u,centrifugeChannel:i,methods:{update:({value:d})=>{m(d)}},children:ro("input",{type:"hidden",id:r,name:r,value:I})})},fo=nr;var Ar=n({name:"HiddenCard",component:fo,metadata:{author:"Swarm.ing"}});import{useContext as po,useEffect as Hr}from"react";import{createContext as gr}from"react";var Tr=gr(void 0),z=Tr;import{jsx as Dr,Fragment as ar}from"react/jsx-runtime";var Or=({data:o})=>{let{url:r}=o,C=po(z),f=po(L);return Hr(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else C?.(r)},[r,C]),Dr(ar,{children:f})},Co=Or;var Zr=n({name:"AutoRedirectCard",component:Co,metadata:{author:"Swarm.ing"}});import{Bounce as Lr,Slide as zr,Zoom as Br,Flip as Vr}from"react-toastify";import{toast as $r,ToastContainer as qr}from"react-toastify";import{useContext as Gr,useMemo as Fr,useRef as Jr}from"react";import{jsx as M,Fragment as yr}from"react/jsx-runtime";var Xr={bounce:Lr,slide:zr,zoom:Br,flip:Vr},Qr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?Xr[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};$r(o.message,r)},Wr=(o)=>{console.log("Log event",o)},Yr=(o)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(f){console.error("[IOEventsCard] Failed to show notification",f)}},C=window.Notification.permission;if(C==="granted"){r();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((f)=>{if(f==="granted")r()})},tr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p}=o,u=Gr(z),i=Jr(u);i.current=u;let I=Fr(()=>({alert:Qr,log:Wr,push:Yr,redirect:(m)=>{if(m.to){let d=m.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(d))window.location.href=d;else i.current?.(d)}else window.location.reload()},reload:(m)=>{if(m.to){let d=m.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(d))window.location.href=d;else i.current?.(d)}else window.location.reload()}}),[]);return M(yr,{children:M(A,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p,methods:I,children:M(qr,{})})})},mo=tr;var Mr=n({name:"IOEventsCard",component:mo,metadata:{author:"Swarm.ing"}});import{useEffect as io,useState as Rr}from"react";import{jsx as uo}from"react/jsx-runtime";var Kr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=Rr(f);return io(()=>{d(f)},[f]),io(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(C,m)},[C,m]),uo(A,{card:"SessionStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{sessionStorage.removeItem(C),d("")}},children:uo("input",{type:"hidden",id:r,name:r,value:m})})},Uo=Kr;var xr=n({name:"SessionStorageCard",component:Uo,metadata:{author:"PieData"}});import{useEffect as So,useState as _r}from"react";import{jsx as Io}from"react/jsx-runtime";var kr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=_r(f);return So(()=>{d(f)},[f]),So(()=>{if(typeof window==="undefined")return;localStorage.setItem(C,m)},[C,m]),Io(A,{card:"DeviceStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{localStorage.removeItem(C),d("")}},children:Io("input",{type:"hidden",id:r,name:r,value:m})})},lo=kr;var Er=n({name:"DeviceStorageCard",component:lo,metadata:{author:"PieData"}});import{useEffect as Po,useState as br}from"react";import{jsx as wo}from"react/jsx-runtime";var Nr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=br(f);return Po(()=>{d(f)},[f]),Po(()=>{if(typeof window==="undefined")return;let U=window.Telegram?.WebApp?.CloudStorage;if(!U)return;U.setItem(C,m)},[C,m]),wo(A,{card:"CloudStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{let U=window.Telegram?.WebApp?.CloudStorage;if(U)U.removeItem(C);d("")}},children:wo("input",{type:"hidden",id:r,name:r,value:m})})},no=Nr;var cr=n({name:"CloudStorageCard",component:no,metadata:{author:"PieData"}});import{useEffect as Ao,useState as jr}from"react";import{jsx as go}from"react/jsx-runtime";var vr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=jr(f);return Ao(()=>{d(f)},[f]),Ao(()=>{if(typeof window==="undefined")return;let U=window.Telegram?.WebApp?.SecureStorage;if(!U)return;U.setItem(C,m)},[C,m]),go(A,{card:"SecureStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{let U=window.Telegram?.WebApp?.SecureStorage;if(U)U.removeItem(C);d("")}},children:go("input",{type:"hidden",id:r,name:r,value:m})})},To=vr;var sr=n({name:"SecureStorageCard",component:To,metadata:{author:"PieData"}});import{useCallback as R,useContext as K,useEffect as hr,useRef as er,useState as Ho}from"react";import{jsx as Oo}from"react/jsx-runtime";var of=({data:o,content:r})=>{let{useLoader:C,noReturn:f,returnType:p,useSocketioSupport:u,useCentrifugeSupport:i,useMittSupport:I,centrifugeChannel:m}=o,d=K(L),U=K(a)??D,[P,g]=Ho(!1),[w,S]=Ho(null),l=er(r),T=K(V),O=R((H)=>{if(H===null)g(!0);else if(g(!1),!f)l.current=H;if(!f)S(H)},[f]),Z=R((H)=>{l.current=H.content,S(H.content)},[]),F=R((H)=>{if(H===null)g(!0);else if(g(!1),!f)for(let k of H)T?.emit(k.name,k.data)},[f,T]);if(hr(()=>{S(r),g(!1)},[r]),!w&&C)return d;return Oo(A,{card:"AjaxGroupCard",data:o,methods:{changeContent:Z},useSocketioSupport:u,useCentrifugeSupport:i,useMittSupport:I,centrifugeChannel:m,children:Oo(U,{uiConfig:w??l.current,setUiAjaxConfiguration:p==="events"?F:O})})},ao=of;var rf=n({name:"AjaxGroupCard",component:ao,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as Do}from"react";import{jsx as x}from"react/jsx-runtime";var ff=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,url:p,sx:u}=o,i=Do(z),I=Do(a)??D;return x(A,{card:f,data:o,children:x("div",{style:u,id:f,onClick:(d)=>{if(p)if(d.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(p))window.location.href=p;else i?.(p)},children:x(I,{setUiAjaxConfiguration:C,uiConfig:r})})})},Zo=ff;var pf=n({name:"BoxCard",component:Zo,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as Cf}from"react";import{jsx as _}from"react/jsx-runtime";var df=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,u=Cf(a)??D;return _(A,{card:f,data:o,children:_("div",{style:p,id:f,children:r.map((i,I)=>{return _(u,{uiConfig:i,setUiAjaxConfiguration:C},`children-${I}`)})})})},Lo=df;var mf=n({name:"OneOfCard",component:Lo,metadata:{author:"Swarm.ing",description:"Different variants"}});export{pr as UnionCard,so as UILoading,D as UI,xr as SessionStorageCard,or as SequenceCard,sr as SecureStorageCard,A as PieCard,mf as OneOfCard,Mr as IOEventsCard,Ar as HiddenCard,lr as HTMLEmbedCard,Er as DeviceStorageCard,cr as CloudStorageCard,pf as BoxCard,Zr as AutoRedirectCard,rf as AjaxGroupCard};
|
package/dist/components/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var Cr=Object.create;var{getPrototypeOf:ur,defineProperty:W,getOwnPropertyNames:Po,getOwnPropertyDescriptor:dr}=Object,Ao=Object.prototype.hasOwnProperty;var To=(o,r,C)=>{C=o!=null?Cr(ur(o)):{};let f=r||!o||!o.__esModule?W(C,"default",{value:o,enumerable:!0}):C;for(let p of Po(o))if(!Ao.call(f,p))W(f,p,{get:()=>o[p],enumerable:!0});return f},wo=new WeakMap,mr=(o)=>{var r=wo.get(o),C;if(r)return r;if(r=W({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function")Po(o).map((f)=>!Ao.call(r,f)&&W(r,f,{get:()=>o[f],enumerable:!(C=dr(o,f))||C.enumerable}));return wo.set(o,r),r};var Ur=(o,r)=>{for(var C in r)W(o,C,{get:r[C],enumerable:!0,configurable:!0,set:(f)=>r[C]=()=>f})};var _r={};Ur(_r,{UnionCard:()=>Yo,UILoading:()=>Fo,UI:()=>V,SessionStorageCard:()=>co,SequenceCard:()=>Xo,SecureStorageCard:()=>eo,PieCard:()=>A,IOEventsCard:()=>bo,HiddenCard:()=>_o,HTMLEmbedCard:()=>Ro,DeviceStorageCard:()=>to,CloudStorageCard:()=>so,BoxCard:()=>pr,AutoRedirectCard:()=>Eo,AjaxGroupCard:()=>rr});module.exports=mr(_r);var B=require("react");var x=require("react"),Sr=x.createContext(null),ir=()=>{let o=x.useContext(Sr);if(!o)throw new Error("usePieConfig must be used within PieConfigProvider");return o};var Y=()=>{let{enableRenderingLog:o}=ir();return o},go=Y;var Ho=require("react"),Ir=require("centrifuge");var lr=Ho.createContext(null),Do=lr;var wr=require("socket.io-client"),Zo=require("react");var Pr=Zo.createContext(null),Lo=Pr;var Ar=To(require("mitt")),k=require("react");var Tr=k.createContext(null);var E=Tr;var gr=({card:o,data:r,children:C,useSocketioSupport:f=!1,useCentrifugeSupport:p=!1,useMittSupport:U=!1,centrifugeChannel:m=void 0,methods:I=void 0})=>{let d=go(),u=B.useRef(I);if(u.current=I,d)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:f,centrifuge:p,mitt:U,centrifugeChannel:m}),console.log("[PieCard] Methods:",I?Object.keys(I):"none"),console.log("[PieCard] Has children:",!!C);let S=B.useContext(Lo),w=B.useContext(Do),g=B.useContext(E);if(B.useEffect(()=>{if(!S||!f||!u.current||!r.name){if(d&&f)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!S,useSocketioSupport:f,hasMethods:!!u.current,hasDataName:!!r?.name});return}let i=Object.keys(u.current??{}).map((l)=>{let H=`pie${l}_${r.name}`;if(d)console.log(`[PieCard] Socket.IO registering event: ${H}`);let z=($)=>{u.current?.[l]?.($)};return S.on(H,z),[H,z]});return()=>{i.forEach(([l,H])=>{if(d)console.log(`[PieCard] Socket.IO unregistering event: ${l}`);S.off(l,H)})}},[S,r.name,f]),B.useEffect(()=>{if(!w||!p||!m||!r.name){if(d&&p)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!w,useCentrifugeSupport:p,hasCentrifugeChannel:!!m,hasMethods:!!u.current,hasDataName:!!r?.name});return}let i=Object.keys(u.current??{}).map((l)=>{let H=`pie${l}_${r.name}_${m}`;if(d)console.log(`[PieCard] Centrifuge subscribing to channel: ${H}`);let z=w.newSubscription(H);return z.on("publication",($)=>{if(d)console.log(`[PieCard] Centrifuge received data on ${H}:`,$.data);u.current?.[l]?.($.data)}),z.subscribe(),z});return()=>{i.forEach((l)=>{if(d)console.log("[PieCard] Centrifuge unsubscribing from channel");l.unsubscribe(),w.removeSubscription(l)})}},[w,m,r.name,p]),B.useEffect(()=>{if(!g||!U||!r.name){if(d&&U)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!g,useMittSupport:U,hasMethods:!!u.current,hasDataName:!!r?.name});return}let P=Object.keys(u.current??{}),i={};return P.forEach((l)=>{let H=`pie${l}_${r.name}`,z=($)=>{if(d)console.log(`[PieCard] Mitt registering event: ${H}`);u.current?.[l]?.($)};i[H]=z,g.on(H,z)}),()=>{Object.entries(i).forEach(([l,H])=>{if(d)console.log(`[PieCard] Mitt unregistering event: ${l}`);g.off(l,H)})}},[g,r.name,U]),d)console.log("[PieCard] Rendering complete, returning children");return C},A=gr;var zo=require("react"),ro=new Map;function Bo(o,r){return zo.lazy(()=>{if(ro.has(r))return ro.get(r);let C=o().then((f)=>f);return ro.set(r,C),C})}var Vo=new Map,Hr=(o)=>{if(!o.name)throw new Error("Component registration requires a name");if(!o.component&&!o.loader)throw new Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=Bo(r.loader,o.name),r.loader=void 0,r.isLazy=!0;return r};function T(o){let r=Hr(o);return Vo.set(r.name,r),r.component}var a=(o)=>{return Vo.get(o)};var O=require("react");var qo=require("react"),b=require("react/jsx-runtime"),Dr=qo.createContext(b.jsx(b.Fragment,{})),G=Dr;var N=require("react/jsx-runtime");function Zr({uiConfig:o,setUiAjaxConfiguration:r}){let C=O.useContext(G),f=Y();if(f)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let p=a(o.card);if(!p?.component){if(f)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return C}if(f)console.log("[UI] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata});let U=p.component,m=N.jsx(U,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(p.isLazy){if(f)console.log("[UI] Rendering lazy component with Suspense:",p.name);return N.jsx(O.Suspense,{fallback:p.fallback?N.jsx(p.fallback,{}):C,children:m},`${p.name}`)}if(f)console.log("[UI] Rendering component directly:",p.name);return m}var V=O.memo(Zr);var c=require("react");var $o=require("react"),Lr=$o.createContext(null),q=Lr;var n=require("react/jsx-runtime");function Go({uiConfig:o,setUiAjaxConfiguration:r}){let C=c.useContext(G),f=Y();if(f)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let p=a(o.card);if(!p?.component){if(f)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return C}if(f)console.log("[UILoading] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata,hasFallback:!!p.fallback});if(p.fallback){if(f)console.log("[UILoading] Rendering fallback for:",p.name);let I=p.fallback;return n.jsx(I,{})}if(f)console.log("[UILoading] No fallback, rendering full component:",p.name);let U=p.component,m=n.jsx(q.Provider,{value:Go,children:n.jsx(U,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(p.isLazy)return n.jsx(c.Suspense,{fallback:C,children:m},`${p.name}`);return m}var Fo=Go;var Oo=require("react");var j=require("react/jsx-runtime"),zr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,U=Oo.useContext(q)??V;return j.jsx(A,{card:f,data:o,children:j.jsx("div",{style:p,id:f,children:r.map((m,I)=>{return j.jsx(U,{uiConfig:m,setUiAjaxConfiguration:C},`children-${I}`)})})})},Jo=zr;var Xo=T({name:"SequenceCard",component:Jo,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var Qo=require("react");var fo=require("react/jsx-runtime"),Br=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f}=o,p=Qo.useContext(q)??V;return fo.jsx(A,{card:f,data:o,children:r.map((U,m)=>{return fo.jsx(p,{uiConfig:U,setUiAjaxConfiguration:C},`children-${m}`)})})},Wo=Br;var Yo=T({name:"UnionCard",component:Wo,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var t=require("react"),no=To(require("html-react-parser"));var L=require("react");function Vr(){let o=new AudioContext,r=o.createOscillator(),C=r.connect(o.createMediaStreamDestination());r.start();let f=C.stream.getAudioTracks()[0];return f.enabled=!1,f}function po(o=null,r){let[C,f]=L.useState(!1),p=L.useRef(null),U=L.useRef(null),m=L.useRef(null),I=L.useCallback(async(w,g=!0)=>{if(p.current)d();let P=new RTCPeerConnection;if(P.onconnectionstatechange=()=>{if(P.connectionState==="connected")f(!0);else if(["disconnected","failed","closed"].includes(P.connectionState))f(!1)},P.ontrack=(D)=>{if(o)o.srcObject=D.streams[0]},g){let D=await navigator.mediaDevices.getUserMedia({audio:!0});P.addTrack(D.getTracks()[0],D)}else{let D=Vr();P.addTrack(D)}let i=P.createDataChannel("oai-events");U.current=i,m.current=new Promise((D)=>{i.addEventListener("open",()=>{D()})});let l=await P.createOffer();await P.setLocalDescription(l);let oo=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:l.sdp,headers:{Authorization:`Bearer ${w}`,"Content-Type":"application/sdp"}})).text();await P.setRemoteDescription({type:"answer",sdp:oo}),p.current=P,await m.current},[o]),d=L.useCallback(()=>{let w=U.current;if(w)w.close();p.current?.getSenders()?.forEach((g)=>g.track?.stop()),p.current?.close(),f(!1),p.current=null,U.current=null,m.current=null},[o]),u=L.useCallback((w)=>{let g=U.current;if(!g){console.error("Data channel is not ready",w);return}let P=new Date().toLocaleTimeString();if(w.event_id=w.event_id||crypto.randomUUID(),g.send(JSON.stringify(w)),!w.timestamp)w.timestamp=P;r?.(w)},[r,o]),S=L.useCallback((w)=>{if(!U.current){console.error("Data channel is not ready");return}let P=()=>{u({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:w}]}}),u({type:"response.create"})};if(m.current)m.current.then(P);else P()},[r,o]);return L.useEffect(()=>{let w=U.current;if(!w)return;let g=(P)=>{let i=JSON.parse(P.data);if(!i.timestamp)i.timestamp=new Date().toLocaleTimeString();r?.(i)};return w.addEventListener("message",g),()=>{w.removeEventListener("message",g)}},[r,o]),{isSessionActive:C,startSession:I,stopSession:d,sendTextMessage:S}}var Ko=require("react/jsx-runtime"),qr=({data:o})=>{let{html:r,useSocketioSupport:C,useCentrifugeSupport:f,useMittSupport:p,centrifugeChannel:U}=o,[m,I]=t.useState(r),{isSessionActive:d,startSession:u,sendTextMessage:S}=po(null,(i)=>{if(console.log(i.type,i.type==="response.output_text.delta"&&i.delta),i.type==="response.output_text.delta"&&i.delta)I((l)=>l+i.delta)});return t.useEffect(()=>{I(r)},[r]),Ko.jsx(A,{card:"HTMLEmbedCard",data:o,methods:{update:(i)=>{I(i.value)},generateUsingAI:async(i)=>{try{if(!d&&i.token)await u(i.token,!1);S(i.prompt)}catch(l){console.error("Failed to generate using AI",l)}},initializeAI:async(i)=>{if(!d&&i.token)await u(i.token,!1)}},useCentrifugeSupport:f,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:U,children:no.default(m)})},Mo=qr;var Ro=T({name:"HTMLEmbedCard",component:Mo,metadata:{author:"Swarm.ing"}});var v=require("react");var Co=require("react/jsx-runtime"),$r=({data:o})=>{let{name:r,value:C,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:U,centrifugeChannel:m}=o,[I,d]=v.useState(C);return v.useEffect(()=>{d(C)},[C]),Co.jsx(A,{card:"HiddenCard",data:o,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:U,centrifugeChannel:m,methods:{update:({value:u})=>{d(u)}},children:Co.jsx("input",{type:"hidden",id:r,name:r,value:I})})},yo=$r;var _o=T({name:"HiddenCard",component:yo,metadata:{author:"Swarm.ing"}});var M=require("react");var xo=require("react"),Gr=xo.createContext(void 0),J=Gr;var s=require("react/jsx-runtime"),Fr=({data:o})=>{let{url:r}=o,C=M.useContext(J),f=M.useContext(G);return M.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else C?.(r)},[r,C]),s.jsx(s.Fragment,{children:f})},ko=Fr;var Eo=T({name:"AutoRedirectCard",component:ko,metadata:{author:"Swarm.ing"}});var F=require("react-toastify"),h=require("react-toastify");var Q=require("react");var X=require("react/jsx-runtime"),Or={bounce:F.Bounce,slide:F.Slide,zoom:F.Zoom,flip:F.Flip},Jr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?Or[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};h.toast(o.message,r)},Xr=(o)=>{console.log("Log event",o)},Qr=(o)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(f){console.error("[IOEventsCard] Failed to show notification",f)}},C=window.Notification.permission;if(C==="granted"){r();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((f)=>{if(f==="granted")r()})},Wr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p}=o,U=Q.useContext(J),m=Q.useRef(U);m.current=U;let I=Q.useMemo(()=>({alert:Jr,log:Xr,push:Qr,redirect:(d)=>{if(d.to){let u=d.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else m.current?.(u)}else window.location.reload()},reload:(d)=>{if(d.to){let u=d.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else m.current?.(u)}else window.location.reload()}}),[]);return X.jsx(X.Fragment,{children:X.jsx(A,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p,methods:I,children:X.jsx(h.ToastContainer,{})})})},ao=Wr;var bo=T({name:"IOEventsCard",component:ao,metadata:{author:"Swarm.ing"}});var K=require("react");var uo=require("react/jsx-runtime"),Yr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I}=o,[d,u]=K.useState(f);return K.useEffect(()=>{u(f)},[f]),K.useEffect(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(C,d)},[C,d]),uo.jsx(A,{card:"SessionStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I,methods:{update:({value:S})=>{u(S)},remove:()=>{sessionStorage.removeItem(C),u("")}},children:uo.jsx("input",{type:"hidden",id:r,name:r,value:d})})},No=Yr;var co=T({name:"SessionStorageCard",component:No,metadata:{author:"PieData"}});var R=require("react");var mo=require("react/jsx-runtime"),nr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I}=o,[d,u]=R.useState(f);return R.useEffect(()=>{u(f)},[f]),R.useEffect(()=>{if(typeof window==="undefined")return;localStorage.setItem(C,d)},[C,d]),mo.jsx(A,{card:"DeviceStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I,methods:{update:({value:S})=>{u(S)},remove:()=>{localStorage.removeItem(C),u("")}},children:mo.jsx("input",{type:"hidden",id:r,name:r,value:d})})},jo=nr;var to=T({name:"DeviceStorageCard",component:jo,metadata:{author:"PieData"}});var y=require("react");var Uo=require("react/jsx-runtime"),Mr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I}=o,[d,u]=y.useState(f);return y.useEffect(()=>{u(f)},[f]),y.useEffect(()=>{if(typeof window==="undefined")return;let S=window.Telegram?.WebApp?.CloudStorage;if(!S)return;S.setItem(C,d)},[C,d]),Uo.jsx(A,{card:"CloudStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I,methods:{update:({value:S})=>{u(S)},remove:()=>{let S=window.Telegram?.WebApp?.CloudStorage;if(S)S.removeItem(C);u("")}},children:Uo.jsx("input",{type:"hidden",id:r,name:r,value:d})})},vo=Mr;var so=T({name:"CloudStorageCard",component:vo,metadata:{author:"PieData"}});var _=require("react");var So=require("react/jsx-runtime"),Kr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I}=o,[d,u]=_.useState(f);return _.useEffect(()=>{u(f)},[f]),_.useEffect(()=>{if(typeof window==="undefined")return;let S=window.Telegram?.WebApp?.SecureStorage;if(!S)return;S.setItem(C,d)},[C,d]),So.jsx(A,{card:"SecureStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:U,useMittSupport:m,centrifugeChannel:I,methods:{update:({value:S})=>{u(S)},remove:()=>{let S=window.Telegram?.WebApp?.SecureStorage;if(S)S.removeItem(C);u("")}},children:So.jsx("input",{type:"hidden",id:r,name:r,value:d})})},ho=Kr;var eo=T({name:"SecureStorageCard",component:ho,metadata:{author:"PieData"}});var Z=require("react");var io=require("react/jsx-runtime"),Rr=({data:o,content:r})=>{let{useLoader:C,noReturn:f,returnType:p,useSocketioSupport:U,useCentrifugeSupport:m,useMittSupport:I,centrifugeChannel:d}=o,u=Z.useContext(G),S=Z.useContext(q)??V,[w,g]=Z.useState(!1),[P,i]=Z.useState(null),l=Z.useRef(r),H=Z.useContext(E),z=Z.useCallback((D)=>{if(D===null)g(!0);else if(g(!1),!f)l.current=D;if(!f)i(D)},[f]),$=Z.useCallback((D)=>{l.current=D.content,i(D.content)},[]),oo=Z.useCallback((D)=>{if(D===null)g(!0);else if(g(!1),!f)for(let lo of D)H?.emit(lo.name,lo.data)},[f,H]);if(Z.useEffect(()=>{i(r),g(!1)},[r]),!P&&C)return u;return io.jsx(A,{card:"AjaxGroupCard",data:o,methods:{changeContent:$},useSocketioSupport:U,useCentrifugeSupport:m,useMittSupport:I,centrifugeChannel:d,children:io.jsx(S,{uiConfig:P??l.current,setUiAjaxConfiguration:p==="events"?oo:z})})},or=Rr;var rr=T({name:"AjaxGroupCard",component:or,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var Io=require("react");var e=require("react/jsx-runtime"),yr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,url:p,sx:U}=o,m=Io.useContext(J),I=Io.useContext(q)??V;return e.jsx(A,{card:f,data:o,children:e.jsx("div",{style:U,id:f,onClick:(u)=>{if(p)if(u.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(p))window.location.href=p;else m?.(p)},children:e.jsx(I,{setUiAjaxConfiguration:C,uiConfig:r})})})},fr=yr;var pr=T({name:"BoxCard",component:fr,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});
|
|
2
|
+
var ur=Object.create;var{getPrototypeOf:Ur,defineProperty:X,getOwnPropertyNames:no,getOwnPropertyDescriptor:Sr}=Object,Ao=Object.prototype.hasOwnProperty;var go=(o,r,C)=>{C=o!=null?ur(Ur(o)):{};let f=r||!o||!o.__esModule?X(C,"default",{value:o,enumerable:!0}):C;for(let p of no(o))if(!Ao.call(f,p))X(f,p,{get:()=>o[p],enumerable:!0});return f},wo=new WeakMap,Ir=(o)=>{var r=wo.get(o),C;if(r)return r;if(r=X({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function")no(o).map((f)=>!Ao.call(r,f)&&X(r,f,{get:()=>o[f],enumerable:!(C=Sr(o,f))||C.enumerable}));return wo.set(o,r),r};var lr=(o,r)=>{for(var C in r)X(o,C,{get:r[C],enumerable:!0,configurable:!0,set:(f)=>r[C]=()=>f})};var Er={};lr(Er,{UnionCard:()=>Wo,UILoading:()=>qo,UI:()=>Z,SessionStorageCard:()=>co,SequenceCard:()=>Jo,SecureStorageCard:()=>or,PieCard:()=>n,OneOfCard:()=>ir,IOEventsCard:()=>bo,HiddenCard:()=>Ko,HTMLEmbedCard:()=>Mo,DeviceStorageCard:()=>vo,CloudStorageCard:()=>ho,BoxCard:()=>Cr,AutoRedirectCard:()=>ko,AjaxGroupCard:()=>fr});module.exports=Ir(Er);var z=require("react");var K=require("react"),Pr=K.createContext(null),wr=()=>{let o=K.useContext(Pr);if(!o)throw new Error("usePieConfig must be used within PieConfigProvider");return o};var Q=()=>{let{enableRenderingLog:o}=wr();return o},To=Q;var Ho=require("react"),nr=require("centrifuge");var Ar=Ho.createContext(null),Oo=Ar;var gr=require("socket.io-client"),ao=require("react");var Tr=ao.createContext(null),Do=Tr;var Hr=go(require("mitt")),x=require("react");var Or=x.createContext(null);var _=Or;var ar=({card:o,data:r,children:C,useSocketioSupport:f=!1,useCentrifugeSupport:p=!1,useMittSupport:u=!1,centrifugeChannel:i=void 0,methods:I=void 0})=>{let m=To(),d=z.useRef(I);if(d.current=I,m)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:f,centrifuge:p,mitt:u,centrifugeChannel:i}),console.log("[PieCard] Methods:",I?Object.keys(I):"none"),console.log("[PieCard] Has children:",!!C);let U=z.useContext(Do),P=z.useContext(Oo),g=z.useContext(_);if(z.useEffect(()=>{if(!U||!f||!d.current||!r.name){if(m&&f)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!U,useSocketioSupport:f,hasMethods:!!d.current,hasDataName:!!r?.name});return}let S=Object.keys(d.current??{}).map((l)=>{let T=`pie${l}_${r.name}`;if(m)console.log(`[PieCard] Socket.IO registering event: ${T}`);let D=(B)=>{d.current?.[l]?.(B)};return U.on(T,D),[T,D]});return()=>{S.forEach(([l,T])=>{if(m)console.log(`[PieCard] Socket.IO unregistering event: ${l}`);U.off(l,T)})}},[U,r.name,f]),z.useEffect(()=>{if(!P||!p||!i||!r.name){if(m&&p)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!P,useCentrifugeSupport:p,hasCentrifugeChannel:!!i,hasMethods:!!d.current,hasDataName:!!r?.name});return}let S=Object.keys(d.current??{}).map((l)=>{let T=`pie${l}_${r.name}_${i}`;if(m)console.log(`[PieCard] Centrifuge subscribing to channel: ${T}`);let D=P.newSubscription(T);return D.on("publication",(B)=>{if(m)console.log(`[PieCard] Centrifuge received data on ${T}:`,B.data);d.current?.[l]?.(B.data)}),D.subscribe(),D});return()=>{S.forEach((l)=>{if(m)console.log("[PieCard] Centrifuge unsubscribing from channel");l.unsubscribe(),P.removeSubscription(l)})}},[P,i,r.name,p]),z.useEffect(()=>{if(!g||!u||!r.name){if(m&&u)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!g,useMittSupport:u,hasMethods:!!d.current,hasDataName:!!r?.name});return}let w=Object.keys(d.current??{}),S={};return w.forEach((l)=>{let T=`pie${l}_${r.name}`,D=(B)=>{if(m)console.log(`[PieCard] Mitt registering event: ${T}`);d.current?.[l]?.(B)};S[T]=D,g.on(T,D)}),()=>{Object.entries(S).forEach(([l,T])=>{if(m)console.log(`[PieCard] Mitt unregistering event: ${l}`);g.off(l,T)})}},[g,r.name,u]),m)console.log("[PieCard] Rendering complete, returning children");return C},n=ar;var Zo=require("react"),fo=new Map;function Lo(o,r){return Zo.lazy(()=>{if(fo.has(r))return fo.get(r);let C=o().then((f)=>f);return fo.set(r,C),C})}var zo=new Map,Dr=(o)=>{if(!o.name)throw new Error("Component registration requires a name");if(!o.component&&!o.loader)throw new Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=Lo(r.loader,o.name),r.loader=void 0,r.isLazy=!0;return r};function A(o){let r=Dr(o);return zo.set(r.name,r),r.component}var k=(o)=>{return zo.get(o)};var q=require("react");var Bo=require("react"),E=require("react/jsx-runtime"),Zr=Bo.createContext(E.jsx(E.Fragment,{})),V=Zr;var b=require("react/jsx-runtime");function Lr({uiConfig:o,setUiAjaxConfiguration:r}){let C=q.useContext(V),f=Q();if(f)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let p=k(o.card);if(!p?.component){if(f)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return C}if(f)console.log("[UI] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata});let u=p.component,i=b.jsx(u,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(p.isLazy){if(f)console.log("[UI] Rendering lazy component with Suspense:",p.name);return b.jsx(q.Suspense,{fallback:p.fallback?b.jsx(p.fallback,{}):C,children:i},`${p.name}`)}if(f)console.log("[UI] Rendering component directly:",p.name);return i}var Z=q.memo(Lr);var N=require("react");var Vo=require("react"),zr=Vo.createContext(null),L=zr;var W=require("react/jsx-runtime");function $o({uiConfig:o,setUiAjaxConfiguration:r}){let C=N.useContext(V),f=Q();if(f)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let p=k(o.card);if(!p?.component){if(f)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return C}if(f)console.log("[UILoading] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata,hasFallback:!!p.fallback});if(p.fallback){if(f)console.log("[UILoading] Rendering fallback for:",p.name);let I=p.fallback;return W.jsx(I,{})}if(f)console.log("[UILoading] No fallback, rendering full component:",p.name);let u=p.component,i=W.jsx(L.Provider,{value:$o,children:W.jsx(u,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(p.isLazy)return W.jsx(N.Suspense,{fallback:C,children:i},`${p.name}`);return i}var qo=$o;var Go=require("react");var c=require("react/jsx-runtime"),Br=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,u=Go.useContext(L)??Z;return c.jsx(n,{card:f,data:o,children:c.jsx("div",{style:p,id:f,children:r.map((i,I)=>{return c.jsx(u,{uiConfig:i,setUiAjaxConfiguration:C},`children-${I}`)})})})},Fo=Br;var Jo=A({name:"SequenceCard",component:Fo,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var Xo=require("react");var po=require("react/jsx-runtime"),Vr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f}=o,p=Xo.useContext(L)??Z;return po.jsx(n,{card:f,data:o,children:r.map((u,i)=>{return po.jsx(p,{uiConfig:u,setUiAjaxConfiguration:C},`children-${i}`)})})},Qo=Vr;var Wo=A({name:"UnionCard",component:Qo,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var j=require("react"),Yo=go(require("html-react-parser"));var a=require("react");function $r(){let o=new AudioContext,r=o.createOscillator(),C=r.connect(o.createMediaStreamDestination());r.start();let f=C.stream.getAudioTracks()[0];return f.enabled=!1,f}function Co(o=null,r){let[C,f]=a.useState(!1),p=a.useRef(null),u=a.useRef(null),i=a.useRef(null),I=a.useCallback(async(P,g=!0)=>{if(p.current)m();let w=new RTCPeerConnection;if(w.onconnectionstatechange=()=>{if(w.connectionState==="connected")f(!0);else if(["disconnected","failed","closed"].includes(w.connectionState))f(!1)},w.ontrack=(H)=>{if(o)o.srcObject=H.streams[0]},g){let H=await navigator.mediaDevices.getUserMedia({audio:!0});w.addTrack(H.getTracks()[0],H)}else{let H=$r();w.addTrack(H)}let S=w.createDataChannel("oai-events");u.current=S,i.current=new Promise((H)=>{S.addEventListener("open",()=>{H()})});let l=await w.createOffer();await w.setLocalDescription(l);let ro=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:l.sdp,headers:{Authorization:`Bearer ${P}`,"Content-Type":"application/sdp"}})).text();await w.setRemoteDescription({type:"answer",sdp:ro}),p.current=w,await i.current},[o]),m=a.useCallback(()=>{let P=u.current;if(P)P.close();p.current?.getSenders()?.forEach((g)=>g.track?.stop()),p.current?.close(),f(!1),p.current=null,u.current=null,i.current=null},[o]),d=a.useCallback((P)=>{let g=u.current;if(!g){console.error("Data channel is not ready",P);return}let w=new Date().toLocaleTimeString();if(P.event_id=P.event_id||crypto.randomUUID(),g.send(JSON.stringify(P)),!P.timestamp)P.timestamp=w;r?.(P)},[r,o]),U=a.useCallback((P)=>{if(!u.current){console.error("Data channel is not ready");return}let w=()=>{d({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:P}]}}),d({type:"response.create"})};if(i.current)i.current.then(w);else w()},[r,o]);return a.useEffect(()=>{let P=u.current;if(!P)return;let g=(w)=>{let S=JSON.parse(w.data);if(!S.timestamp)S.timestamp=new Date().toLocaleTimeString();r?.(S)};return P.addEventListener("message",g),()=>{P.removeEventListener("message",g)}},[r,o]),{isSessionActive:C,startSession:I,stopSession:m,sendTextMessage:U}}var yo=require("react/jsx-runtime"),qr=({data:o})=>{let{html:r,useSocketioSupport:C,useCentrifugeSupport:f,useMittSupport:p,centrifugeChannel:u}=o,[i,I]=j.useState(r),{isSessionActive:m,startSession:d,sendTextMessage:U}=Co(null,(S)=>{if(console.log(S.type,S.type==="response.output_text.delta"&&S.delta),S.type==="response.output_text.delta"&&S.delta)I((l)=>l+S.delta)});return j.useEffect(()=>{I(r)},[r]),yo.jsx(n,{card:"HTMLEmbedCard",data:o,methods:{update:(S)=>{I(S.value)},generateUsingAI:async(S)=>{try{if(!m&&S.token)await d(S.token,!1);U(S.prompt)}catch(l){console.error("Failed to generate using AI",l)}},initializeAI:async(S)=>{if(!m&&S.token)await d(S.token,!1)}},useCentrifugeSupport:f,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:u,children:Yo.default(i)})},to=qr;var Mo=A({name:"HTMLEmbedCard",component:to,metadata:{author:"Swarm.ing"}});var v=require("react");var mo=require("react/jsx-runtime"),Gr=({data:o})=>{let{name:r,value:C,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:u,centrifugeChannel:i}=o,[I,m]=v.useState(C);return v.useEffect(()=>{m(C)},[C]),mo.jsx(n,{card:"HiddenCard",data:o,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:u,centrifugeChannel:i,methods:{update:({value:d})=>{m(d)}},children:mo.jsx("input",{type:"hidden",id:r,name:r,value:I})})},Ro=Gr;var Ko=A({name:"HiddenCard",component:Ro,metadata:{author:"Swarm.ing"}});var Y=require("react");var xo=require("react"),Fr=xo.createContext(void 0),G=Fr;var s=require("react/jsx-runtime"),Jr=({data:o})=>{let{url:r}=o,C=Y.useContext(G),f=Y.useContext(V);return Y.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else C?.(r)},[r,C]),s.jsx(s.Fragment,{children:f})},_o=Jr;var ko=A({name:"AutoRedirectCard",component:_o,metadata:{author:"Swarm.ing"}});var $=require("react-toastify"),h=require("react-toastify");var J=require("react");var F=require("react/jsx-runtime"),Xr={bounce:$.Bounce,slide:$.Slide,zoom:$.Zoom,flip:$.Flip},Qr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?Xr[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};h.toast(o.message,r)},Wr=(o)=>{console.log("Log event",o)},Yr=(o)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(f){console.error("[IOEventsCard] Failed to show notification",f)}},C=window.Notification.permission;if(C==="granted"){r();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((f)=>{if(f==="granted")r()})},tr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p}=o,u=J.useContext(G),i=J.useRef(u);i.current=u;let I=J.useMemo(()=>({alert:Qr,log:Wr,push:Yr,redirect:(m)=>{if(m.to){let d=m.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(d))window.location.href=d;else i.current?.(d)}else window.location.reload()},reload:(m)=>{if(m.to){let d=m.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(d))window.location.href=d;else i.current?.(d)}else window.location.reload()}}),[]);return F.jsx(F.Fragment,{children:F.jsx(n,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p,methods:I,children:F.jsx(h.ToastContainer,{})})})},Eo=tr;var bo=A({name:"IOEventsCard",component:Eo,metadata:{author:"Swarm.ing"}});var t=require("react");var io=require("react/jsx-runtime"),yr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=t.useState(f);return t.useEffect(()=>{d(f)},[f]),t.useEffect(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(C,m)},[C,m]),io.jsx(n,{card:"SessionStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{sessionStorage.removeItem(C),d("")}},children:io.jsx("input",{type:"hidden",id:r,name:r,value:m})})},No=yr;var co=A({name:"SessionStorageCard",component:No,metadata:{author:"PieData"}});var y=require("react");var uo=require("react/jsx-runtime"),Mr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=y.useState(f);return y.useEffect(()=>{d(f)},[f]),y.useEffect(()=>{if(typeof window==="undefined")return;localStorage.setItem(C,m)},[C,m]),uo.jsx(n,{card:"DeviceStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{localStorage.removeItem(C),d("")}},children:uo.jsx("input",{type:"hidden",id:r,name:r,value:m})})},jo=Mr;var vo=A({name:"DeviceStorageCard",component:jo,metadata:{author:"PieData"}});var M=require("react");var Uo=require("react/jsx-runtime"),Rr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=M.useState(f);return M.useEffect(()=>{d(f)},[f]),M.useEffect(()=>{if(typeof window==="undefined")return;let U=window.Telegram?.WebApp?.CloudStorage;if(!U)return;U.setItem(C,m)},[C,m]),Uo.jsx(n,{card:"CloudStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{let U=window.Telegram?.WebApp?.CloudStorage;if(U)U.removeItem(C);d("")}},children:Uo.jsx("input",{type:"hidden",id:r,name:r,value:m})})},so=Rr;var ho=A({name:"CloudStorageCard",component:so,metadata:{author:"PieData"}});var R=require("react");var So=require("react/jsx-runtime"),Kr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=R.useState(f);return R.useEffect(()=>{d(f)},[f]),R.useEffect(()=>{if(typeof window==="undefined")return;let U=window.Telegram?.WebApp?.SecureStorage;if(!U)return;U.setItem(C,m)},[C,m]),So.jsx(n,{card:"SecureStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{let U=window.Telegram?.WebApp?.SecureStorage;if(U)U.removeItem(C);d("")}},children:So.jsx("input",{type:"hidden",id:r,name:r,value:m})})},eo=Kr;var or=A({name:"SecureStorageCard",component:eo,metadata:{author:"PieData"}});var O=require("react");var Io=require("react/jsx-runtime"),xr=({data:o,content:r})=>{let{useLoader:C,noReturn:f,returnType:p,useSocketioSupport:u,useCentrifugeSupport:i,useMittSupport:I,centrifugeChannel:m}=o,d=O.useContext(V),U=O.useContext(L)??Z,[P,g]=O.useState(!1),[w,S]=O.useState(null),l=O.useRef(r),T=O.useContext(_),D=O.useCallback((H)=>{if(H===null)g(!0);else if(g(!1),!f)l.current=H;if(!f)S(H)},[f]),B=O.useCallback((H)=>{l.current=H.content,S(H.content)},[]),ro=O.useCallback((H)=>{if(H===null)g(!0);else if(g(!1),!f)for(let Po of H)T?.emit(Po.name,Po.data)},[f,T]);if(O.useEffect(()=>{S(r),g(!1)},[r]),!w&&C)return d;return Io.jsx(n,{card:"AjaxGroupCard",data:o,methods:{changeContent:B},useSocketioSupport:u,useCentrifugeSupport:i,useMittSupport:I,centrifugeChannel:m,children:Io.jsx(U,{uiConfig:w??l.current,setUiAjaxConfiguration:p==="events"?ro:D})})},rr=xr;var fr=A({name:"AjaxGroupCard",component:rr,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var lo=require("react");var e=require("react/jsx-runtime"),_r=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,url:p,sx:u}=o,i=lo.useContext(G),I=lo.useContext(L)??Z;return e.jsx(n,{card:f,data:o,children:e.jsx("div",{style:u,id:f,onClick:(d)=>{if(p)if(d.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(p))window.location.href=p;else i?.(p)},children:e.jsx(I,{setUiAjaxConfiguration:C,uiConfig:r})})})},pr=_r;var Cr=A({name:"BoxCard",component:pr,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var dr=require("react");var oo=require("react/jsx-runtime"),kr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,u=dr.useContext(L)??Z;return oo.jsx(n,{card:f,data:o,children:oo.jsx("div",{style:p,id:f,children:r.map((i,I)=>{return oo.jsx(u,{uiConfig:i,setUiAjaxConfiguration:C},`children-${I}`)})})})},mr=kr;var ir=A({name:"OneOfCard",component:mr,metadata:{author:"Swarm.ing",description:"Different variants"}});
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export { default as PieCard } from './components/PieCard';
|
|
|
10
10
|
export { registerPieComponent, getAllRegisteredComponents, getRegistrySize, registry, hasComponent, getRegistryEntry, getComponentMeta, registerMultipleComponents, unregisterComponent, } from './util/registry';
|
|
11
11
|
export type { PieComponentProps, PieSimpleComponentProps, PieComplexComponentProps, PieContainerComponentProps, PieComplexContainerComponentProps, PieConfig, UIConfigType, SetUiAjaxConfigurationType, } from './types';
|
|
12
12
|
export type { PieQueryOptions } from './components/PieRoot/types';
|
|
13
|
-
export { useAjaxSubmit } from './util/ajaxCommonUtils';
|
|
13
|
+
export { useAjaxSubmit, readAjaxKey } from './util/ajaxCommonUtils';
|
|
14
14
|
export type { RetryPolicy } from './util/ajaxCommonUtils';
|
|
15
15
|
export { usePieEmit } from './util/mitt';
|
|
16
16
|
export { getMittAgentTools, usePieMittAgentTools, type MittAgentTool, type MittAgentToolDescriptor, type MittAgentToolsOptions, } from './util/mittAgentTools';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,GACtB,MAAM,iBAAiB,CAAA;AAExB,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,SAAS,EACT,YAAY,EACZ,0BAA0B,GAC7B,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,GACtB,MAAM,iBAAiB,CAAA;AAExB,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,SAAS,EACT,YAAY,EACZ,0BAA0B,GAC7B,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EACH,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC7B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACH,OAAO,IAAI,eAAe,EAC1B,KAAK,WAAW,EAChB,KAAK,qBAAqB,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{useContext as Vf,useEffect as If,useRef as MU}from"react";import{createContext as BU,useContext as WU}from"react";var j=BU(null),h=()=>{let f=WU(j);if(!f)throw new Error("usePieConfig must be used within PieConfigProvider");return f},x=()=>{let{apiServer:f}=h();return f},e=x,d=()=>{let{centrifugeServer:f}=h();return f};var L=()=>{let{enableRenderingLog:f}=h();return f},Lf=L,Mf=()=>{let{pageProcessor:f}=h();return f};var Gf="__piedemo__";import{createContext as QU}from"react";import{Centrifuge as Af}from"centrifuge";var Nf=new Map,u=(f,U)=>{if(!U)return null;let D=`${f}::${U}`,H=Nf.get(D);if(H)return H;async function z(){let $=await fetch(f+"api/centrifuge/gen_token");if(!$.ok){if($.status===403)throw new Af.UnauthorizedError("Backend is not answering");throw new Error(`Unexpected status code ${$.status}`)}return(await $.json()).token}let Z=new Af(U,{getToken:z});return Nf.set(D,Z),Z},CU=QU(null),y=CU;import{io as OU}from"socket.io-client";import{createContext as _U}from"react";var yf=new Map,b=(f)=>{let U=yf.get(f);if(U)return U;let D=OU(f,{autoConnect:!1,transports:["websocket"]});return yf.set(f,D),D},RU=_U(null),o=RU;import wU from"mitt";import{createContext as FU,useCallback as KU,useContext as SU}from"react";var Pf=null;function E(){if(!Pf)Pf=wU();return Pf}var of=FU(null);function LU(f){let U=SU(of);return KU((D,H)=>{(U??E()).emit(`pie${D}_${f}`,H)},[f,U])}var K=of;var AU=({card:f,data:U,children:D,useSocketioSupport:H=!1,useCentrifugeSupport:z=!1,useMittSupport:Z=!1,centrifugeChannel:$=void 0,methods:G=void 0})=>{let T=Lf(),P=MU(G);if(P.current=G,T)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:H,centrifuge:z,mitt:Z,centrifugeChannel:$}),console.log("[PieCard] Methods:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!D);let X=Vf(o),B=Vf(y),q=Vf(K);if(If(()=>{if(!X||!H||!P.current||!U.name){if(T&&H)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!X,useSocketioSupport:H,hasMethods:!!P.current,hasDataName:!!U?.name});return}let I=Object.keys(P.current??{}).map((V)=>{let J=`pie${V}_${U.name}`;if(T)console.log(`[PieCard] Socket.IO registering event: ${J}`);let W=(Q)=>{P.current?.[V]?.(Q)};return X.on(J,W),[J,W]});return()=>{I.forEach(([V,J])=>{if(T)console.log(`[PieCard] Socket.IO unregistering event: ${V}`);X.off(V,J)})}},[X,U.name,H]),If(()=>{if(!B||!z||!$||!U.name){if(T&&z)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!B,useCentrifugeSupport:z,hasCentrifugeChannel:!!$,hasMethods:!!P.current,hasDataName:!!U?.name});return}let I=Object.keys(P.current??{}).map((V)=>{let J=`pie${V}_${U.name}_${$}`;if(T)console.log(`[PieCard] Centrifuge subscribing to channel: ${J}`);let W=B.newSubscription(J);return W.on("publication",(Q)=>{if(T)console.log(`[PieCard] Centrifuge received data on ${J}:`,Q.data);P.current?.[V]?.(Q.data)}),W.subscribe(),W});return()=>{I.forEach((V)=>{if(T)console.log("[PieCard] Centrifuge unsubscribing from channel");V.unsubscribe(),B.removeSubscription(V)})}},[B,$,U.name,z]),If(()=>{if(!q||!Z||!U.name){if(T&&Z)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!q,useMittSupport:Z,hasMethods:!!P.current,hasDataName:!!U?.name});return}let Y=Object.keys(P.current??{}),I={};return Y.forEach((V)=>{let J=`pie${V}_${U.name}`,W=(Q)=>{if(T)console.log(`[PieCard] Mitt registering event: ${J}`);P.current?.[V]?.(Q)};I[J]=W,q.on(J,W)}),()=>{Object.entries(I).forEach(([V,J])=>{if(T)console.log(`[PieCard] Mitt unregistering event: ${V}`);q.off(V,J)})}},[q,U.name,Z]),T)console.log("[PieCard] Rendering complete, returning children");return D},_=AU;import{lazy as NU}from"react";var Jf=new Map;function Ef(f,U){return NU(()=>{if(Jf.has(U))return Jf.get(U);let D=f().then((H)=>H);return Jf.set(U,D),D})}var g=new Map,yU=(f)=>{if(!f.name)throw new Error("Component registration requires a name");if(!f.component&&!f.loader)throw new Error(`Component "${f.name}" requires component or loader`);let U={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=Ef(U.loader,f.name),U.loader=void 0,U.isLazy=!0;return U};function O(f){let U=yU(f);return g.set(U.name,U),U.component}var oU=(f)=>{f.forEach((U)=>O(U))},EU=(f)=>{g.delete(f)},mU=(f)=>{return g.has(f)},kU=(f)=>{return g.get(f)?.metadata},r=(f)=>{return g.get(f)},jU=()=>{return Array.from(g.keys())},xU=()=>{return g.size};import{Suspense as vU,useContext as pU,memo as cU}from"react";import{createContext as dU}from"react";import{jsx as gU,Fragment as bU}from"react/jsx-runtime";var uU=dU(gU(bU,{})),w=uU;import{jsx as Yf}from"react/jsx-runtime";function hU({uiConfig:f,setUiAjaxConfiguration:U}){let D=pU(w),H=L();if(H)console.log("[UI] Rendering component:",f.card),console.log("[UI] Component data:",f.data),console.log("[UI] Component content:",f.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let z=r(f.card);if(!z?.component){if(H)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return D}if(H)console.log("[UI] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata});let Z=z.component,$=Yf(Z,{data:f.data,content:f.content,setUiAjaxConfiguration:U});if(z.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",z.name);return Yf(vU,{fallback:z.fallback?Yf(z.fallback,{}):D,children:$},`${z.name}`)}if(H)console.log("[UI] Rendering component directly:",z.name);return $}var F=cU(hU);import{Suspense as nU,useContext as sU}from"react";import{createContext as lU}from"react";var rU=lU(null),k=rU;import{jsx as ff}from"react/jsx-runtime";function mf({uiConfig:f,setUiAjaxConfiguration:U}){let D=sU(w),H=L();if(H)console.log("[UILoading] Rendering fallback for:",f.card),console.log("[UILoading] Component data:",f.data),console.log("[UILoading] Component content:",f.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let z=r(f.card);if(!z?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return D}if(H)console.log("[UILoading] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata,hasFallback:!!z.fallback});if(z.fallback){if(H)console.log("[UILoading] Rendering fallback for:",z.name);let G=z.fallback;return ff(G,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",z.name);let Z=z.component,$=ff(k.Provider,{value:mf,children:ff(Z,{data:f.data,content:f.content,setUiAjaxConfiguration:U})});if(z.isLazy)return ff(nU,{fallback:D,children:$},`${z.name}`);return $}var Xf=mf;import{useContext as iU}from"react";import{jsx as qf}from"react/jsx-runtime";var tU=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H,sx:z}=f,Z=iU(k)??F;return qf(_,{card:H,data:f,children:qf("div",{style:z,id:H,children:U.map(($,G)=>{return qf(Z,{uiConfig:$,setUiAjaxConfiguration:D},`children-${G}`)})})})},kf=tU;var aU=O({name:"SequenceCard",component:kf,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as eU}from"react";import{jsx as jf}from"react/jsx-runtime";var fH=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H}=f,z=eU(k)??F;return jf(_,{card:H,data:f,children:U.map((Z,$)=>{return jf(z,{uiConfig:Z,setUiAjaxConfiguration:D},`children-${$}`)})})},xf=fH;var UH=O({name:"UnionCard",component:xf,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as DH,useState as $H}from"react";import TH from"html-react-parser";import{useCallback as Uf,useEffect as HH,useRef as Bf,useState as ZH}from"react";function zH(){let f=new AudioContext,U=f.createOscillator(),D=U.connect(f.createMediaStreamDestination());U.start();let H=D.stream.getAudioTracks()[0];return H.enabled=!1,H}function Hf(f=null,U){let[D,H]=ZH(!1),z=Bf(null),Z=Bf(null),$=Bf(null),G=Uf(async(B,q=!0)=>{if(z.current)T();let Y=new RTCPeerConnection;if(Y.onconnectionstatechange=()=>{if(Y.connectionState==="connected")H(!0);else if(["disconnected","failed","closed"].includes(Y.connectionState))H(!1)},Y.ontrack=(R)=>{if(f)f.srcObject=R.streams[0]},q){let R=await navigator.mediaDevices.getUserMedia({audio:!0});Y.addTrack(R.getTracks()[0],R)}else{let R=zH();Y.addTrack(R)}let I=Y.createDataChannel("oai-events");Z.current=I,$.current=new Promise((R)=>{I.addEventListener("open",()=>{R()})});let V=await Y.createOffer();await Y.setLocalDescription(V);let C=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:V.sdp,headers:{Authorization:`Bearer ${B}`,"Content-Type":"application/sdp"}})).text();await Y.setRemoteDescription({type:"answer",sdp:C}),z.current=Y,await $.current},[f]),T=Uf(()=>{let B=Z.current;if(B)B.close();z.current?.getSenders()?.forEach((q)=>q.track?.stop()),z.current?.close(),H(!1),z.current=null,Z.current=null,$.current=null},[f]),P=Uf((B)=>{let q=Z.current;if(!q){console.error("Data channel is not ready",B);return}let Y=new Date().toLocaleTimeString();if(B.event_id=B.event_id||crypto.randomUUID(),q.send(JSON.stringify(B)),!B.timestamp)B.timestamp=Y;U?.(B)},[U,f]),X=Uf((B)=>{if(!Z.current){console.error("Data channel is not ready");return}let Y=()=>{P({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:B}]}}),P({type:"response.create"})};if($.current)$.current.then(Y);else Y()},[U,f]);return HH(()=>{let B=Z.current;if(!B)return;let q=(Y)=>{let I=JSON.parse(Y.data);if(!I.timestamp)I.timestamp=new Date().toLocaleTimeString();U?.(I)};return B.addEventListener("message",q),()=>{B.removeEventListener("message",q)}},[U,f]),{isSessionActive:D,startSession:G,stopSession:T,sendTextMessage:X}}import{jsx as PH}from"react/jsx-runtime";var GH=({data:f})=>{let{html:U,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:Z}=f,[$,G]=$H(U),{isSessionActive:T,startSession:P,sendTextMessage:X}=Hf(null,(I)=>{if(console.log(I.type,I.type==="response.output_text.delta"&&I.delta),I.type==="response.output_text.delta"&&I.delta)G((V)=>V+I.delta)});return DH(()=>{G(U)},[U]),PH(_,{card:"HTMLEmbedCard",data:f,methods:{update:(I)=>{G(I.value)},generateUsingAI:async(I)=>{try{if(!T&&I.token)await P(I.token,!1);X(I.prompt)}catch(V){console.error("Failed to generate using AI",V)}},initializeAI:async(I)=>{if(!T&&I.token)await P(I.token,!1)}},useCentrifugeSupport:H,useSocketioSupport:D,useMittSupport:z,centrifugeChannel:Z,children:TH($)})},df=GH;var VH=O({name:"HTMLEmbedCard",component:df,metadata:{author:"Swarm.ing"}});import{useEffect as IH,useState as JH}from"react";import{jsx as uf}from"react/jsx-runtime";var YH=({data:f})=>{let{name:U,value:D,useSocketioSupport:H,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:$}=f,[G,T]=JH(D);return IH(()=>{T(D)},[D]),uf(_,{card:"HiddenCard",data:f,useSocketioSupport:H,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:$,methods:{update:({value:P})=>{T(P)}},children:uf("input",{type:"hidden",id:U,name:U,value:G})})},bf=YH;var XH=O({name:"HiddenCard",component:bf,metadata:{author:"Swarm.ing"}});import{useContext as gf,useEffect as WH}from"react";import{createContext as qH}from"react";var BH=qH(void 0),S=BH;import{jsx as OH,Fragment as CH}from"react/jsx-runtime";var QH=({data:f})=>{let{url:U}=f,D=gf(S),H=gf(w);return WH(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else D?.(U)},[U,D]),OH(CH,{children:H})},vf=QH;var _H=O({name:"AutoRedirectCard",component:vf,metadata:{author:"Swarm.ing"}});import{Bounce as RH,Slide as wH,Zoom as FH,Flip as KH}from"react-toastify";import{toast as SH,ToastContainer as LH}from"react-toastify";import{useContext as MH,useMemo as AH,useRef as NH}from"react";import{jsx as Wf,Fragment as jH}from"react/jsx-runtime";var yH={bounce:RH,slide:wH,zoom:FH,flip:KH},oH=(f)=>{let U={...f,type:f.alertType,transition:f.transition?yH[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};SH(f.message,U)},EH=(f)=>{console.log("Log event",f)},mH=(f)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(H){console.error("[IOEventsCard] Failed to show notification",H)}},D=window.Notification.permission;if(D==="granted"){U();return}if(D==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((H)=>{if(H==="granted")U()})},kH=({data:f})=>{let{useCentrifugeSupport:U,useSocketioSupport:D,useMittSupport:H,centrifugeChannel:z}=f,Z=MH(S),$=NH(Z);$.current=Z;let G=AH(()=>({alert:oH,log:EH,push:mH,redirect:(T)=>{if(T.to){let P=T.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(P))window.location.href=P;else $.current?.(P)}else window.location.reload()},reload:(T)=>{if(T.to){let P=T.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(P))window.location.href=P;else $.current?.(P)}else window.location.reload()}}),[]);return Wf(jH,{children:Wf(_,{card:"IOEventsCard",data:f,useCentrifugeSupport:U,useSocketioSupport:D,useMittSupport:H,centrifugeChannel:z,methods:G,children:Wf(LH,{})})})},pf=kH;var xH=O({name:"IOEventsCard",component:pf,metadata:{author:"Swarm.ing"}});import{useEffect as cf,useState as dH}from"react";import{jsx as hf}from"react/jsx-runtime";var uH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:G}=f,[T,P]=dH(H);return cf(()=>{P(H)},[H]),cf(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(D,T)},[D,T]),hf(_,{card:"SessionStorageCard",data:f,useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:G,methods:{update:({value:X})=>{P(X)},remove:()=>{sessionStorage.removeItem(D),P("")}},children:hf("input",{type:"hidden",id:U,name:U,value:T})})},lf=uH;var bH=O({name:"SessionStorageCard",component:lf,metadata:{author:"PieData"}});import{useEffect as rf,useState as gH}from"react";import{jsx as nf}from"react/jsx-runtime";var vH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:G}=f,[T,P]=gH(H);return rf(()=>{P(H)},[H]),rf(()=>{if(typeof window==="undefined")return;localStorage.setItem(D,T)},[D,T]),nf(_,{card:"DeviceStorageCard",data:f,useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:G,methods:{update:({value:X})=>{P(X)},remove:()=>{localStorage.removeItem(D),P("")}},children:nf("input",{type:"hidden",id:U,name:U,value:T})})},sf=vH;var pH=O({name:"DeviceStorageCard",component:sf,metadata:{author:"PieData"}});import{useEffect as tf,useState as cH}from"react";import{jsx as af}from"react/jsx-runtime";var hH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:G}=f,[T,P]=cH(H);return tf(()=>{P(H)},[H]),tf(()=>{if(typeof window==="undefined")return;let X=window.Telegram?.WebApp?.CloudStorage;if(!X)return;X.setItem(D,T)},[D,T]),af(_,{card:"CloudStorageCard",data:f,useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:G,methods:{update:({value:X})=>{P(X)},remove:()=>{let X=window.Telegram?.WebApp?.CloudStorage;if(X)X.removeItem(D);P("")}},children:af("input",{type:"hidden",id:U,name:U,value:T})})},ef=hH;var lH=O({name:"CloudStorageCard",component:ef,metadata:{author:"PieData"}});import{useEffect as fU,useState as rH}from"react";import{jsx as UU}from"react/jsx-runtime";var nH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:G}=f,[T,P]=rH(H);return fU(()=>{P(H)},[H]),fU(()=>{if(typeof window==="undefined")return;let X=window.Telegram?.WebApp?.SecureStorage;if(!X)return;X.setItem(D,T)},[D,T]),UU(_,{card:"SecureStorageCard",data:f,useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:G,methods:{update:({value:X})=>{P(X)},remove:()=>{let X=window.Telegram?.WebApp?.SecureStorage;if(X)X.removeItem(D);P("")}},children:UU("input",{type:"hidden",id:U,name:U,value:T})})},HU=nH;var sH=O({name:"SecureStorageCard",component:HU,metadata:{author:"PieData"}});import{useCallback as Qf,useContext as Cf,useEffect as iH,useRef as tH,useState as ZU}from"react";import{jsx as zU}from"react/jsx-runtime";var aH=({data:f,content:U})=>{let{useLoader:D,noReturn:H,returnType:z,useSocketioSupport:Z,useCentrifugeSupport:$,useMittSupport:G,centrifugeChannel:T}=f,P=Cf(w),X=Cf(k)??F,[B,q]=ZU(!1),[Y,I]=ZU(null),V=tH(U),J=Cf(K),W=Qf((R)=>{if(R===null)q(!0);else if(q(!1),!H)V.current=R;if(!H)I(R)},[H]),Q=Qf((R)=>{V.current=R.content,I(R.content)},[]),C=Qf((R)=>{if(R===null)q(!0);else if(q(!1),!H)for(let t of R)J?.emit(t.name,t.data)},[H,J]);if(iH(()=>{I(U),q(!1)},[U]),!Y&&D)return P;return zU(_,{card:"AjaxGroupCard",data:f,methods:{changeContent:Q},useSocketioSupport:Z,useCentrifugeSupport:$,useMittSupport:G,centrifugeChannel:T,children:zU(X,{uiConfig:Y??V.current,setUiAjaxConfiguration:z==="events"?C:W})})},DU=aH;var eH=O({name:"AjaxGroupCard",component:DU,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as $U}from"react";import{jsx as Of}from"react/jsx-runtime";var fZ=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H,url:z,sx:Z}=f,$=$U(S),G=$U(k)??F;return Of(_,{card:H,data:f,children:Of("div",{style:Z,id:H,onClick:(P)=>{if(z)if(P.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(z))window.location.href=z;else $?.(z)},children:Of(G,{setUiAjaxConfiguration:D,uiConfig:U})})})},TU=fZ;var UZ=O({name:"BoxCard",component:TU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useMemo as n}from"react";import{QueryClient as IZ,QueryClientProvider as JZ,useQuery as YZ}from"@tanstack/react-query";import{useContext as zZ,useEffect as DZ}from"react";import{useEffect as HZ,useState as ZZ}from"react";var Zf=new Map,zf=new Map;function Df(f,U){let D=`${f}::${U}`,H=f?Zf.get(D):void 0,[z,Z]=ZZ(H??null);return HZ(()=>{if(!f)return;if(Zf.has(D)){Z(Zf.get(D));return}let $=zf.get(D);if(!$)$=fetch(f+`api/support/${U}`,{method:"GET"}).then((T)=>T.json()).then((T)=>{return Zf.set(D,T),zf.delete(D),T}).catch((T)=>{throw zf.delete(D),T}),zf.set(D,$);let G=!1;return $.then((T)=>{if(!G)Z(T)}).catch(()=>{}),()=>{G=!0}},[f,U,D]),z}var _f=null,GU=null;function PU(){GU?.()}function Rf(){if(typeof window==="undefined")return Promise.resolve();if(typeof window.sid!=="undefined")return Promise.resolve();if(!_f)_f=new Promise((f)=>{GU=()=>{f()}});return _f}var $Z=({children:f})=>{let U=zZ(o),D=e(),H=Df(D,"socketIO"),z=(Z)=>{if(typeof window!=="undefined")window.sid=Z.sid,PU(),console.log(`SocketIO initialized: ${window.sid}`)};return DZ(()=>{if(!U)return;let Z=()=>{console.log("SocketIO connected")},$=(G)=>{console.log(`SocketIO disconnected: ${G}`),U.connect()};if(H)U.on("pieinit",z),U.on("connect",Z),U.on("disconnect",$),U.connect();return()=>{if(H)U.off("pieinit",z),U.off("connect",Z),U.off("disconnect",$),U.disconnect()}},[U,H]),f},v=$Z;import{useContext as TZ,useEffect as GZ}from"react";var PZ=({children:f})=>{let U=TZ(y),D=e(),H=Df(D,"centrifuge");return GZ(()=>{if(!U)return;let z=()=>{console.log("Centrifuge connected")},Z=($)=>{console.log("Centrifuge disconnected:",$)};if(H)U.on("connected",z),U.on("disconnected",Z),U.connect();return()=>{if(H)U.disconnect()}},[U,H]),f},p=PZ;import{createAxiosDateTransformer as XZ}from"axios-date-transformer";import{jsx as VZ}from"react/jsx-runtime";function l(f,U,D){if(!U)return D;let H=f.replace(/^\//,""),z=U[H];if(!z)return D;return VZ(Xf,{uiConfig:z})}import{jsx as M,Fragment as WZ}from"react/jsx-runtime";var qZ=({location:f,fallback:U,piecache:D,onError:H,queryOptions:z})=>{let Z=x(),$=d(),G=L(),T=n(()=>XZ({baseURL:Z||""}),[Z]),P=n(()=>E(),[]),X=n(()=>Z?b(Z):null,[Z]),B=n(()=>Z?u(Z,$):null,[Z,$]),{data:q,isLoading:Y,error:I}=YZ({queryKey:["uiConfig",f.pathname+f.search,Z],enabled:!!Z,queryFn:async()=>{let J=new URLSearchParams(f.search);J.set("__pieroot","web");let W="/api/content"+f.pathname+"?"+J.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",W);let Q=await T.get(W,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(G)console.log("[PieRoot] Received UI configuration:",Q.data);return Q.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(J)=>Math.min(1000*2**J,30000),...z}),V=l(f.pathname,D,U);if(!Z)return V??null;if(G)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",Z),console.log("[PieRoot] CENTRIFUGE_SERVER:",$),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!D);if(I){if(G)console.error("[PieRoot] Error fetching UI configuration:",I),console.error("[PieRoot] Error details:",{message:I.message,status:I.response?.status,data:I.response?.data});return H?.(),V}if(Y||!q){if(G)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!q});return V}if(G)console.log("[PieRoot] UI configuration loaded successfully:",q),console.log("[PieRoot] Rendering UI with configuration");return M(K.Provider,{value:P,children:M(o.Provider,{value:X,children:M(y.Provider,{value:B,children:M(w.Provider,{value:U??M(WZ,{}),children:M(v,{children:M(p,{children:M("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:M(F,{uiConfig:q})})})})})})})})},BZ=(f)=>{let U=n(()=>new IZ,[]);return M(S.Provider,{value:f.onNavigate,children:M(j.Provider,{value:f.config,children:M(JZ,{client:U,children:M(qZ,{...f})})})})},QZ=BZ;import{useMemo as s}from"react";import{QueryClient as _Z,QueryClientProvider as RZ,useQuery as wZ}from"@tanstack/react-query";import{createAxiosDateTransformer as FZ}from"axios-date-transformer";import{useEffect as CZ,useState as OZ}from"react";var wf=({onError:f}={})=>{let[U,D]=OZ(null),H=Mf();return CZ(()=>{if(typeof window==="undefined")return;let z=window.Telegram?.WebApp;if(!z)return;try{z.ready?.()}catch(Z){f?.()}if(H==="telegram_expanded"&&(z.platform==="ios"||z.platform==="android"))z.expand();D(z)},[]),U};import{jsx as A,Fragment as LZ}from"react/jsx-runtime";var KZ=({location:f,fallback:U,piecache:D,onError:H,queryOptions:z})=>{let Z=x(),$=d(),G=L(),T=s(()=>FZ({baseURL:Z}),[Z]),P=s(()=>E(),[]),X=s(()=>Z?b(Z):null,[Z]),B=s(()=>Z?u(Z,$):null,[Z,$]),q=wf({onError:H}),{data:Y,isLoading:I,error:V}=wZ({queryKey:["uiConfig",f.pathname+f.search,q?.initData],enabled:!!q?.initData,queryFn:async()=>{let W=new URLSearchParams(f.search);if(W.set("__pieroot","telegram"),q?.initData)W.set("initData",q.initData);let Q="/api/content"+f.pathname+"?"+W.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",Q);let C=await T.get(Q,{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:",C.data);return C.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(W)=>Math.min(1000*2**W,30000),...z}),J=l(f.pathname,D,U);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(V&&G)return console.error("[PieRoot] Error fetching UI configuration:",V),console.error("[PieRoot] Error details:",{message:V.message,status:V.response?.status,data:V.response?.data}),H?.(),J;if(I||!Y){if(G)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!Y});return J}if(G)console.log("[PieRoot] UI configuration loaded successfully:",Y),console.log("[PieRoot] Rendering UI with configuration");return A(K.Provider,{value:P,children:A(o.Provider,{value:X,children:A(y.Provider,{value:B,children:A(w.Provider,{value:U??A(LZ,{}),children:A(v,{children:A(p,{children:A("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:A(F,{uiConfig:Y})})})})})})})})},SZ=(f)=>{let U=s(()=>new _Z,[]);return A(S.Provider,{value:f.onNavigate,children:A(j.Provider,{value:f.config,children:A(RZ,{client:U,children:A(KZ,{...f})})})})},MZ=SZ;import{useMemo as Ff,useState as AZ}from"react";import{QueryClient as NZ,QueryClientProvider as yZ}from"@tanstack/react-query";import{jsx as m,Fragment as mZ}from"react/jsx-runtime";var oZ=({location:f,fallback:U,children:D})=>{let H=x(),z=d(),Z=L(),$=Ff(()=>E(),[]),G=Ff(()=>H?b(H):null,[H]),T=Ff(()=>H?u(H,z):null,[H,z]);if(Z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",H),console.log("[PieRoot] CENTRIFUGE_SERVER:",z),console.log("[PieRoot] Fallback provided:",!!U);return m(K.Provider,{value:$,children:m(o.Provider,{value:G,children:m(y.Provider,{value:T,children:m(w.Provider,{value:U??m(mZ,{}),children:m(v,{children:m(p,{children:m("form",{id:"piedata_global_form",action:H+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:D})})})})})})})},EZ=(f)=>{let[U]=AZ(()=>new NZ);return m(S.Provider,{value:f.onNavigate,children:m(j.Provider,{value:f.config,children:m(yZ,{client:U,children:m(oZ,{...f})})})})},kZ=EZ;import{useMemo as i}from"react";import{QueryClient as dZ,QueryClientProvider as uZ,useQuery as bZ}from"@tanstack/react-query";import{createAxiosDateTransformer as gZ}from"axios-date-transformer";import{useEffect as jZ,useState as xZ}from"react";var Kf=()=>{let[f,U]=xZ(null);return jZ(()=>{if(typeof window==="undefined")return;let D=window.WebApp;if(!D)return;D.ready(),U(D)},[]),f};import{jsx as N,Fragment as cZ}from"react/jsx-runtime";var vZ=({location:f,fallback:U,piecache:D,onError:H,queryOptions:z})=>{let Z=x(),$=d(),G=L(),T=i(()=>gZ({baseURL:Z}),[Z]),P=i(()=>E(),[]),X=i(()=>Z?b(Z):null,[Z]),B=i(()=>Z?u(Z,$):null,[Z,$]),q=Kf(),{data:Y,isLoading:I,error:V}=bZ({queryKey:["uiConfig",f.pathname+f.search,q?.initData],queryFn:async()=>{let W=new URLSearchParams(f.search);if(W.set("__pieroot","max"),q?.initData)W.set("initData",q.initData);let Q="/api/content"+f.pathname+"?"+W.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",Q);let C=await T.get(Q,{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:",C.data);return C.data},enabled:!!q?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(W)=>Math.min(1000*2**W,30000),...z}),J=l(f.pathname,D,U);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(V&&G)return console.error("[PieRoot] Error fetching UI configuration:",V),console.error("[PieRoot] Error details:",{message:V.message,status:V.response?.status,data:V.response?.data}),H?.(),J;if(I||!Y){if(G)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!Y});return J}if(G)console.log("[PieRoot] UI configuration loaded successfully:",Y),console.log("[PieRoot] Rendering UI with configuration");return N(K.Provider,{value:P,children:N(o.Provider,{value:X,children:N(y.Provider,{value:B,children:N(w.Provider,{value:U??N(cZ,{}),children:N(v,{children:N(p,{children:N("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:N(F,{uiConfig:Y})})})})})})})})},pZ=(f)=>{let U=i(()=>new dZ,[]);return N(S.Provider,{value:f.onNavigate,children:N(j.Provider,{value:f.config,children:N(uZ,{client:U,children:N(vZ,{...f})})})})},hZ=pZ;import{useMemo as lZ}from"react";var rZ=(f,U={},D=[],H,z)=>{let Z=z?.renderingLogEnabled??!1,$=z?.timeout,G=z?.retryPolicy,T=G?.maxRetries??0,P=G?.baseDelay??1000,X=G?.retryOn??[502,503,504];if(Z)console.log("Registering AJAX: ",H,U,D);return async(B={})=>{if(typeof window==="undefined"||typeof document==="undefined"){if(Z)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let q=z?.apiServer;if(!q){if(Z)console.warn("AJAX skipped: apiServer is missing");return}if(!H||!f){if(Z)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(D.includes("sid"))await Rf();let Y=new FormData;for(let[J,W]of Object.entries({...U,...B}))Y.append(J,W);for(let J of D)if(J==="sid"){if(!window.sid)throw new Error("SocketIO isn't initialized properly");Y.append("sid",window.sid)}else{let W=document.getElementsByName(J);if(!W.length){if(Z)console.warn(`No input found with name ${J}`);continue}let Q=W[0];if(Q instanceof HTMLInputElement)if(Q.type==="file"&&Q.files)Array.from(Q.files).forEach((C)=>Y.append(J,C));else Y.append(J,Q.value);else if(Q instanceof HTMLTextAreaElement)Y.append(J,Q.value)}let I=q+"api/ajax_content"+H;f(null);let V;for(let J=0;J<=T;J++){if(J>0){let C=P*2**(J-1);if(Z)console.log(`AJAX retry ${J}/${T} after ${C}ms`);await new Promise((R)=>setTimeout(R,C))}let W=$!=null?new AbortController:null,Q=W&&setTimeout(()=>W.abort(),$);try{let C=await fetch(I,{method:"POST",body:Y,signal:W?.signal});if(Q)clearTimeout(Q);if(!C.ok&&X.includes(C.status)&&J<T){V=new Error(`HTTP ${C.status}`);continue}let t=(C.headers.get("content-type")||"").includes("application/json");if(!!C.body?.getReader&&!t){let a=C.body.getReader(),JU=new TextDecoder,c="";while(!0){let{done:$f,value:YU}=await a.read();if($f)break;c+=JU.decode(YU,{stream:!0});let Sf=c.split(`
|
|
3
|
-
`);c=
|
|
2
|
+
import{useContext as If,useEffect as Cf,useRef as oU}from"react";import{createContext as WU,useContext as QU}from"react";var j=WU(null),h=()=>{let f=QU(j);if(!f)throw new Error("usePieConfig must be used within PieConfigProvider");return f},x=()=>{let{apiServer:f}=h();return f},e=x,d=()=>{let{centrifugeServer:f}=h();return f};var N=()=>{let{enableRenderingLog:f}=h();return f},Lf=N,Af=()=>{let{pageProcessor:f}=h();return f};var Tf="__piedemo__";import{createContext as RU}from"react";import{Centrifuge as Nf}from"centrifuge";var of=new Map,u=(f,U)=>{if(!U)return null;let D=`${f}::${U}`,H=of.get(D);if(H)return H;async function P(){let Z=await fetch(f+"api/centrifuge/gen_token");if(!Z.ok){if(Z.status===403)throw new Nf.UnauthorizedError("Backend is not answering");throw new Error(`Unexpected status code ${Z.status}`)}return(await Z.json()).token}let z=new Nf(U,{getToken:P});return of.set(D,z),z},_U=RU(null),y=_U;import{io as wU}from"socket.io-client";import{createContext as KU}from"react";var yf=new Map,b=(f)=>{let U=yf.get(f);if(U)return U;let D=wU(f,{autoConnect:!1,transports:["websocket"]});return yf.set(f,D),D},SU=KU(null),m=SU;import FU from"mitt";import{createContext as MU,useCallback as LU,useContext as AU}from"react";var Vf=null;function E(){if(!Vf)Vf=FU();return Vf}var mf=MU(null);function NU(f){let U=AU(mf);return LU((D,H)=>{(U??E()).emit(`pie${D}_${f}`,H)},[f,U])}var S=mf;var yU=({card:f,data:U,children:D,useSocketioSupport:H=!1,useCentrifugeSupport:P=!1,useMittSupport:z=!1,centrifugeChannel:Z=void 0,methods:T=void 0})=>{let $=Lf(),V=oU(T);if(V.current=T,$)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:H,centrifuge:P,mitt:z,centrifugeChannel:Z}),console.log("[PieCard] Methods:",T?Object.keys(T):"none"),console.log("[PieCard] Has children:",!!D);let O=If(m),X=If(y),G=If(S);if(Cf(()=>{if(!O||!H||!V.current||!U.name){if($&&H)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!O,useSocketioSupport:H,hasMethods:!!V.current,hasDataName:!!U?.name});return}let I=Object.keys(V.current??{}).map((Y)=>{let C=`pie${Y}_${U.name}`;if($)console.log(`[PieCard] Socket.IO registering event: ${C}`);let q=(B)=>{V.current?.[Y]?.(B)};return O.on(C,q),[C,q]});return()=>{I.forEach(([Y,C])=>{if($)console.log(`[PieCard] Socket.IO unregistering event: ${Y}`);O.off(Y,C)})}},[O,U.name,H]),Cf(()=>{if(!X||!P||!Z||!U.name){if($&&P)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!X,useCentrifugeSupport:P,hasCentrifugeChannel:!!Z,hasMethods:!!V.current,hasDataName:!!U?.name});return}let I=Object.keys(V.current??{}).map((Y)=>{let C=`pie${Y}_${U.name}_${Z}`;if($)console.log(`[PieCard] Centrifuge subscribing to channel: ${C}`);let q=X.newSubscription(C);return q.on("publication",(B)=>{if($)console.log(`[PieCard] Centrifuge received data on ${C}:`,B.data);V.current?.[Y]?.(B.data)}),q.subscribe(),q});return()=>{I.forEach((Y)=>{if($)console.log("[PieCard] Centrifuge unsubscribing from channel");Y.unsubscribe(),X.removeSubscription(Y)})}},[X,Z,U.name,P]),Cf(()=>{if(!G||!z||!U.name){if($&&z)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!G,useMittSupport:z,hasMethods:!!V.current,hasDataName:!!U?.name});return}let J=Object.keys(V.current??{}),I={};return J.forEach((Y)=>{let C=`pie${Y}_${U.name}`,q=(B)=>{if($)console.log(`[PieCard] Mitt registering event: ${C}`);V.current?.[Y]?.(B)};I[C]=q,G.on(C,q)}),()=>{Object.entries(I).forEach(([Y,C])=>{if($)console.log(`[PieCard] Mitt unregistering event: ${Y}`);G.off(Y,C)})}},[G,U.name,z]),$)console.log("[PieCard] Rendering complete, returning children");return D},_=yU;import{lazy as mU}from"react";var Jf=new Map;function Ef(f,U){return mU(()=>{if(Jf.has(U))return Jf.get(U);let D=f().then((H)=>H);return Jf.set(U,D),D})}var g=new Map,EU=(f)=>{if(!f.name)throw new Error("Component registration requires a name");if(!f.component&&!f.loader)throw new Error(`Component "${f.name}" requires component or loader`);let U={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=Ef(U.loader,f.name),U.loader=void 0,U.isLazy=!0;return U};function W(f){let U=EU(f);return g.set(U.name,U),U.component}var kU=(f)=>{f.forEach((U)=>W(U))},jU=(f)=>{g.delete(f)},xU=(f)=>{return g.has(f)},dU=(f)=>{return g.get(f)?.metadata},r=(f)=>{return g.get(f)},uU=()=>{return Array.from(g.keys())},bU=()=>{return g.size};import{Suspense as hU,useContext as lU,memo as rU}from"react";import{createContext as gU}from"react";import{jsx as cU,Fragment as pU}from"react/jsx-runtime";var vU=gU(cU(pU,{})),K=vU;import{jsx as Yf}from"react/jsx-runtime";function nU({uiConfig:f,setUiAjaxConfiguration:U}){let D=lU(K),H=N();if(H)console.log("[UI] Rendering component:",f.card),console.log("[UI] Component data:",f.data),console.log("[UI] Component content:",f.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let P=r(f.card);if(!P?.component){if(H)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return D}if(H)console.log("[UI] Found component in registry:",{name:P.name,isLazy:P.isLazy,hasMetadata:!!P.metadata});let z=P.component,Z=Yf(z,{data:f.data,content:f.content,setUiAjaxConfiguration:U});if(P.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",P.name);return Yf(hU,{fallback:P.fallback?Yf(P.fallback,{}):D,children:Z},`${P.name}`)}if(H)console.log("[UI] Rendering component directly:",P.name);return Z}var w=rU(nU);import{Suspense as sU,useContext as aU}from"react";import{createContext as iU}from"react";var tU=iU(null),o=tU;import{jsx as ff}from"react/jsx-runtime";function kf({uiConfig:f,setUiAjaxConfiguration:U}){let D=aU(K),H=N();if(H)console.log("[UILoading] Rendering fallback for:",f.card),console.log("[UILoading] Component data:",f.data),console.log("[UILoading] Component content:",f.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let P=r(f.card);if(!P?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return D}if(H)console.log("[UILoading] Found component in registry:",{name:P.name,isLazy:P.isLazy,hasMetadata:!!P.metadata,hasFallback:!!P.fallback});if(P.fallback){if(H)console.log("[UILoading] Rendering fallback for:",P.name);let T=P.fallback;return ff(T,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",P.name);let z=P.component,Z=ff(o.Provider,{value:kf,children:ff(z,{data:f.data,content:f.content,setUiAjaxConfiguration:U})});if(P.isLazy)return ff(sU,{fallback:D,children:Z},`${P.name}`);return Z}var Of=kf;import{useContext as eU}from"react";import{jsx as Xf}from"react/jsx-runtime";var fH=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H,sx:P}=f,z=eU(o)??w;return Xf(_,{card:H,data:f,children:Xf("div",{style:P,id:H,children:U.map((Z,T)=>{return Xf(z,{uiConfig:Z,setUiAjaxConfiguration:D},`children-${T}`)})})})},jf=fH;var UH=W({name:"SequenceCard",component:jf,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as HH}from"react";import{jsx as xf}from"react/jsx-runtime";var PH=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H}=f,P=HH(o)??w;return xf(_,{card:H,data:f,children:U.map((z,Z)=>{return xf(P,{uiConfig:z,setUiAjaxConfiguration:D},`children-${Z}`)})})},df=PH;var DH=W({name:"UnionCard",component:df,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as TH,useState as VH}from"react";import IH from"html-react-parser";import{useCallback as Uf,useEffect as ZH,useRef as Gf,useState as $H}from"react";function zH(){let f=new AudioContext,U=f.createOscillator(),D=U.connect(f.createMediaStreamDestination());U.start();let H=D.stream.getAudioTracks()[0];return H.enabled=!1,H}function Hf(f=null,U){let[D,H]=$H(!1),P=Gf(null),z=Gf(null),Z=Gf(null),T=Uf(async(X,G=!0)=>{if(P.current)$();let J=new RTCPeerConnection;if(J.onconnectionstatechange=()=>{if(J.connectionState==="connected")H(!0);else if(["disconnected","failed","closed"].includes(J.connectionState))H(!1)},J.ontrack=(R)=>{if(f)f.srcObject=R.streams[0]},G){let R=await navigator.mediaDevices.getUserMedia({audio:!0});J.addTrack(R.getTracks()[0],R)}else{let R=zH();J.addTrack(R)}let I=J.createDataChannel("oai-events");z.current=I,Z.current=new Promise((R)=>{I.addEventListener("open",()=>{R()})});let Y=await J.createOffer();await J.setLocalDescription(Y);let Q=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:Y.sdp,headers:{Authorization:`Bearer ${X}`,"Content-Type":"application/sdp"}})).text();await J.setRemoteDescription({type:"answer",sdp:Q}),P.current=J,await Z.current},[f]),$=Uf(()=>{let X=z.current;if(X)X.close();P.current?.getSenders()?.forEach((G)=>G.track?.stop()),P.current?.close(),H(!1),P.current=null,z.current=null,Z.current=null},[f]),V=Uf((X)=>{let G=z.current;if(!G){console.error("Data channel is not ready",X);return}let J=new Date().toLocaleTimeString();if(X.event_id=X.event_id||crypto.randomUUID(),G.send(JSON.stringify(X)),!X.timestamp)X.timestamp=J;U?.(X)},[U,f]),O=Uf((X)=>{if(!z.current){console.error("Data channel is not ready");return}let J=()=>{V({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:X}]}}),V({type:"response.create"})};if(Z.current)Z.current.then(J);else J()},[U,f]);return ZH(()=>{let X=z.current;if(!X)return;let G=(J)=>{let I=JSON.parse(J.data);if(!I.timestamp)I.timestamp=new Date().toLocaleTimeString();U?.(I)};return X.addEventListener("message",G),()=>{X.removeEventListener("message",G)}},[U,f]),{isSessionActive:D,startSession:T,stopSession:$,sendTextMessage:O}}import{jsx as JH}from"react/jsx-runtime";var CH=({data:f})=>{let{html:U,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:P,centrifugeChannel:z}=f,[Z,T]=VH(U),{isSessionActive:$,startSession:V,sendTextMessage:O}=Hf(null,(I)=>{if(console.log(I.type,I.type==="response.output_text.delta"&&I.delta),I.type==="response.output_text.delta"&&I.delta)T((Y)=>Y+I.delta)});return TH(()=>{T(U)},[U]),JH(_,{card:"HTMLEmbedCard",data:f,methods:{update:(I)=>{T(I.value)},generateUsingAI:async(I)=>{try{if(!$&&I.token)await V(I.token,!1);O(I.prompt)}catch(Y){console.error("Failed to generate using AI",Y)}},initializeAI:async(I)=>{if(!$&&I.token)await V(I.token,!1)}},useCentrifugeSupport:H,useSocketioSupport:D,useMittSupport:P,centrifugeChannel:z,children:IH(Z)})},uf=CH;var YH=W({name:"HTMLEmbedCard",component:uf,metadata:{author:"Swarm.ing"}});import{useEffect as OH,useState as XH}from"react";import{jsx as bf}from"react/jsx-runtime";var GH=({data:f})=>{let{name:U,value:D,useSocketioSupport:H,useCentrifugeSupport:P,useMittSupport:z,centrifugeChannel:Z}=f,[T,$]=XH(D);return OH(()=>{$(D)},[D]),bf(_,{card:"HiddenCard",data:f,useSocketioSupport:H,useCentrifugeSupport:P,useMittSupport:z,centrifugeChannel:Z,methods:{update:({value:V})=>{$(V)}},children:bf("input",{type:"hidden",id:U,name:U,value:T})})},gf=GH;var qH=W({name:"HiddenCard",component:gf,metadata:{author:"Swarm.ing"}});import{useContext as vf,useEffect as QH}from"react";import{createContext as BH}from"react";var WH=BH(void 0),F=WH;import{jsx as wH,Fragment as _H}from"react/jsx-runtime";var RH=({data:f})=>{let{url:U}=f,D=vf(F),H=vf(K);return QH(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else D?.(U)},[U,D]),wH(_H,{children:H})},pf=RH;var KH=W({name:"AutoRedirectCard",component:pf,metadata:{author:"Swarm.ing"}});import{Bounce as SH,Slide as FH,Zoom as MH,Flip as LH}from"react-toastify";import{toast as AH,ToastContainer as NH}from"react-toastify";import{useContext as oH,useMemo as yH,useRef as mH}from"react";import{jsx as qf,Fragment as uH}from"react/jsx-runtime";var EH={bounce:SH,slide:FH,zoom:MH,flip:LH},kH=(f)=>{let U={...f,type:f.alertType,transition:f.transition?EH[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};AH(f.message,U)},jH=(f)=>{console.log("Log event",f)},xH=(f)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(H){console.error("[IOEventsCard] Failed to show notification",H)}},D=window.Notification.permission;if(D==="granted"){U();return}if(D==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((H)=>{if(H==="granted")U()})},dH=({data:f})=>{let{useCentrifugeSupport:U,useSocketioSupport:D,useMittSupport:H,centrifugeChannel:P}=f,z=oH(F),Z=mH(z);Z.current=z;let T=yH(()=>({alert:kH,log:jH,push:xH,redirect:($)=>{if($.to){let V=$.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(V))window.location.href=V;else Z.current?.(V)}else window.location.reload()},reload:($)=>{if($.to){let V=$.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(V))window.location.href=V;else Z.current?.(V)}else window.location.reload()}}),[]);return qf(uH,{children:qf(_,{card:"IOEventsCard",data:f,useCentrifugeSupport:U,useSocketioSupport:D,useMittSupport:H,centrifugeChannel:P,methods:T,children:qf(NH,{})})})},cf=dH;var bH=W({name:"IOEventsCard",component:cf,metadata:{author:"Swarm.ing"}});import{useEffect as hf,useState as gH}from"react";import{jsx as lf}from"react/jsx-runtime";var vH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T}=f,[$,V]=gH(H);return hf(()=>{V(H)},[H]),hf(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(D,$)},[D,$]),lf(_,{card:"SessionStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T,methods:{update:({value:O})=>{V(O)},remove:()=>{sessionStorage.removeItem(D),V("")}},children:lf("input",{type:"hidden",id:U,name:U,value:$})})},rf=vH;var pH=W({name:"SessionStorageCard",component:rf,metadata:{author:"PieData"}});import{useEffect as nf,useState as cH}from"react";import{jsx as tf}from"react/jsx-runtime";var hH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T}=f,[$,V]=cH(H);return nf(()=>{V(H)},[H]),nf(()=>{if(typeof window==="undefined")return;localStorage.setItem(D,$)},[D,$]),tf(_,{card:"DeviceStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T,methods:{update:({value:O})=>{V(O)},remove:()=>{localStorage.removeItem(D),V("")}},children:tf("input",{type:"hidden",id:U,name:U,value:$})})},sf=hH;var lH=W({name:"DeviceStorageCard",component:sf,metadata:{author:"PieData"}});import{useEffect as af,useState as rH}from"react";import{jsx as ef}from"react/jsx-runtime";var nH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T}=f,[$,V]=rH(H);return af(()=>{V(H)},[H]),af(()=>{if(typeof window==="undefined")return;let O=window.Telegram?.WebApp?.CloudStorage;if(!O)return;O.setItem(D,$)},[D,$]),ef(_,{card:"CloudStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T,methods:{update:({value:O})=>{V(O)},remove:()=>{let O=window.Telegram?.WebApp?.CloudStorage;if(O)O.removeItem(D);V("")}},children:ef("input",{type:"hidden",id:U,name:U,value:$})})},fU=nH;var iH=W({name:"CloudStorageCard",component:fU,metadata:{author:"PieData"}});import{useEffect as UU,useState as tH}from"react";import{jsx as HU}from"react/jsx-runtime";var sH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T}=f,[$,V]=tH(H);return UU(()=>{V(H)},[H]),UU(()=>{if(typeof window==="undefined")return;let O=window.Telegram?.WebApp?.SecureStorage;if(!O)return;O.setItem(D,$)},[D,$]),HU(_,{card:"SecureStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T,methods:{update:({value:O})=>{V(O)},remove:()=>{let O=window.Telegram?.WebApp?.SecureStorage;if(O)O.removeItem(D);V("")}},children:HU("input",{type:"hidden",id:U,name:U,value:$})})},PU=sH;var aH=W({name:"SecureStorageCard",component:PU,metadata:{author:"PieData"}});import{useCallback as Bf,useContext as Wf,useEffect as eH,useRef as fP,useState as DU}from"react";import{jsx as ZU}from"react/jsx-runtime";var UP=({data:f,content:U})=>{let{useLoader:D,noReturn:H,returnType:P,useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:T,centrifugeChannel:$}=f,V=Wf(K),O=Wf(o)??w,[X,G]=DU(!1),[J,I]=DU(null),Y=fP(U),C=Wf(S),q=Bf((R)=>{if(R===null)G(!0);else if(G(!1),!H)Y.current=R;if(!H)I(R)},[H]),B=Bf((R)=>{Y.current=R.content,I(R.content)},[]),Q=Bf((R)=>{if(R===null)G(!0);else if(G(!1),!H)for(let s of R)C?.emit(s.name,s.data)},[H,C]);if(eH(()=>{I(U),G(!1)},[U]),!J&&D)return V;return ZU(_,{card:"AjaxGroupCard",data:f,methods:{changeContent:B},useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:T,centrifugeChannel:$,children:ZU(O,{uiConfig:J??Y.current,setUiAjaxConfiguration:P==="events"?Q:q})})},$U=UP;var HP=W({name:"AjaxGroupCard",component:$U,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as zU}from"react";import{jsx as Qf}from"react/jsx-runtime";var PP=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H,url:P,sx:z}=f,Z=zU(F),T=zU(o)??w;return Qf(_,{card:H,data:f,children:Qf("div",{style:z,id:H,onClick:(V)=>{if(P)if(V.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(P))window.location.href=P;else Z?.(P)},children:Qf(T,{setUiAjaxConfiguration:D,uiConfig:U})})})},TU=PP;var DP=W({name:"BoxCard",component:TU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as ZP}from"react";import{jsx as Rf}from"react/jsx-runtime";var $P=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H,sx:P}=f,z=ZP(o)??w;return Rf(_,{card:H,data:f,children:Rf("div",{style:P,id:H,children:U.map((Z,T)=>{return Rf(z,{uiConfig:Z,setUiAjaxConfiguration:D},`children-${T}`)})})})},VU=$P;var zP=W({name:"OneOfCard",component:VU,metadata:{author:"Swarm.ing",description:"Different variants"}});import{useMemo as n}from"react";import{QueryClient as qP,QueryClientProvider as BP,useQuery as WP}from"@tanstack/react-query";import{useContext as IP,useEffect as CP}from"react";import{useEffect as TP,useState as VP}from"react";var Pf=new Map,Df=new Map;function Zf(f,U){let D=`${f}::${U}`,H=f?Pf.get(D):void 0,[P,z]=VP(H??null);return TP(()=>{if(!f)return;if(Pf.has(D)){z(Pf.get(D));return}let Z=Df.get(D);if(!Z)Z=fetch(f+`api/support/${U}`,{method:"GET"}).then(($)=>$.json()).then(($)=>{return Pf.set(D,$),Df.delete(D),$}).catch(($)=>{throw Df.delete(D),$}),Df.set(D,Z);let T=!1;return Z.then(($)=>{if(!T)z($)}).catch(()=>{}),()=>{T=!0}},[f,U,D]),P}var _f=null,IU=null;function CU(){IU?.()}function wf(){if(typeof window==="undefined")return Promise.resolve();if(typeof window.sid!=="undefined")return Promise.resolve();if(!_f)_f=new Promise((f)=>{IU=()=>{f()}});return _f}var JP=({children:f})=>{let U=IP(m),D=e(),H=Zf(D,"socketIO"),P=(z)=>{if(typeof window!=="undefined")window.sid=z.sid,CU(),console.log(`SocketIO initialized: ${window.sid}`)};return CP(()=>{if(!U)return;let z=()=>{console.log("SocketIO connected")},Z=(T)=>{console.log(`SocketIO disconnected: ${T}`),U.connect()};if(H)U.on("pieinit",P),U.on("connect",z),U.on("disconnect",Z),U.connect();return()=>{if(H)U.off("pieinit",P),U.off("connect",z),U.off("disconnect",Z),U.disconnect()}},[U,H]),f},v=JP;import{useContext as YP,useEffect as OP}from"react";var XP=({children:f})=>{let U=YP(y),D=e(),H=Zf(D,"centrifuge");return OP(()=>{if(!U)return;let P=()=>{console.log("Centrifuge connected")},z=(Z)=>{console.log("Centrifuge disconnected:",Z)};if(H)U.on("connected",P),U.on("disconnected",z),U.connect();return()=>{if(H)U.disconnect()}},[U,H]),f},p=XP;import{createAxiosDateTransformer as QP}from"axios-date-transformer";import{jsx as GP}from"react/jsx-runtime";function l(f,U,D){if(!U)return D;let H=f.replace(/^\//,""),P=U[H];if(!P)return D;return GP(Of,{uiConfig:P})}import{jsx as M,Fragment as wP}from"react/jsx-runtime";var RP=({location:f,fallback:U,piecache:D,onError:H,queryOptions:P,disableGlobalForm:z})=>{let Z=x(),T=d(),$=N(),V=n(()=>QP({baseURL:Z||""}),[Z]),O=n(()=>E(),[]),X=n(()=>Z?b(Z):null,[Z]),G=n(()=>Z?u(Z,T):null,[Z,T]),{data:J,isLoading:I,error:Y}=WP({queryKey:["uiConfig",f.pathname+f.search,Z],enabled:!!Z,queryFn:async()=>{let q=new URLSearchParams(f.search);q.set("__pieroot","web");let B="/api/content"+f.pathname+"?"+q.toString();if($)console.log("[PieRoot] Fetching UI configuration from:",B);let Q=await V.get(B,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if($)console.log("[PieRoot] Received UI configuration:",Q.data);return Q.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(q)=>Math.min(1000*2**q,30000),...P}),C=l(f.pathname,D,U);if(!Z)return C??null;if($)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",Z),console.log("[PieRoot] CENTRIFUGE_SERVER:",T),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!D);if(Y){if($)console.error("[PieRoot] Error fetching UI configuration:",Y),console.error("[PieRoot] Error details:",{message:Y.message,status:Y.response?.status,data:Y.response?.data});return H?.(),C}if(I||!J){if($)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!J});return C}if($)console.log("[PieRoot] UI configuration loaded successfully:",J),console.log("[PieRoot] Rendering UI with configuration");return M(S.Provider,{value:O,children:M(m.Provider,{value:X,children:M(y.Provider,{value:G,children:M(K.Provider,{value:U??M(wP,{}),children:M(v,{children:M(p,{children:z?M(w,{uiConfig:J}):M("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:M(w,{uiConfig:J})})})})})})})})},_P=(f)=>{let U=n(()=>new qP,[]);return M(F.Provider,{value:f.onNavigate,children:M(j.Provider,{value:f.config,children:M(BP,{client:U,children:M(RP,{...f})})})})},KP=_P;import{useMemo as i}from"react";import{QueryClient as MP,QueryClientProvider as LP,useQuery as AP}from"@tanstack/react-query";import{createAxiosDateTransformer as NP}from"axios-date-transformer";import{useEffect as SP,useState as FP}from"react";var Kf=({onError:f}={})=>{let[U,D]=FP(null),H=Af();return SP(()=>{if(typeof window==="undefined")return;let P=window.Telegram?.WebApp;if(!P)return;try{P.ready?.()}catch(z){f?.()}if(H==="telegram_expanded"&&(P.platform==="ios"||P.platform==="android"))P.expand();D(P)},[]),U};import{jsx as L,Fragment as mP}from"react/jsx-runtime";var oP=({location:f,fallback:U,piecache:D,onError:H,queryOptions:P,disableGlobalForm:z})=>{let Z=x(),T=d(),$=N(),V=i(()=>NP({baseURL:Z}),[Z]),O=i(()=>E(),[]),X=i(()=>Z?b(Z):null,[Z]),G=i(()=>Z?u(Z,T):null,[Z,T]),J=Kf({onError:H}),{data:I,isLoading:Y,error:C}=AP({queryKey:["uiConfig",f.pathname+f.search,J?.initData],enabled:!!J?.initData,queryFn:async()=>{let B=new URLSearchParams(f.search);if(B.set("__pieroot","telegram"),J?.initData)B.set("initData",J.initData);let Q="/api/content"+f.pathname+"?"+B.toString();if($)console.log("[PieRoot] Fetching UI configuration from:",Q);let R=await V.get(Q,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if($)console.log("[PieRoot] Received UI configuration:",R.data);return R.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(B)=>Math.min(1000*2**B,30000),...P}),q=l(f.pathname,D,U);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(C&&$)return console.error("[PieRoot] Error fetching UI configuration:",C),console.error("[PieRoot] Error details:",{message:C.message,status:C.response?.status,data:C.response?.data}),H?.(),q;if(Y||!I){if($)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!I});return q}if($)console.log("[PieRoot] UI configuration loaded successfully:",I),console.log("[PieRoot] Rendering UI with configuration");return L(S.Provider,{value:O,children:L(m.Provider,{value:X,children:L(y.Provider,{value:G,children:L(K.Provider,{value:U??L(mP,{}),children:L(v,{children:L(p,{children:z?L(w,{uiConfig:I}):L("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:L(w,{uiConfig:I})})})})})})})})},yP=(f)=>{let U=i(()=>new MP,[]);return L(F.Provider,{value:f.onNavigate,children:L(j.Provider,{value:f.config,children:L(LP,{client:U,children:L(oP,{...f})})})})},EP=yP;import{useMemo as Sf,useState as kP}from"react";import{QueryClient as jP,QueryClientProvider as xP}from"@tanstack/react-query";import{jsx as k,Fragment as bP}from"react/jsx-runtime";var dP=({location:f,fallback:U,children:D,disableGlobalForm:H})=>{let P=x(),z=d(),Z=N(),T=Sf(()=>E(),[]),$=Sf(()=>P?b(P):null,[P]),V=Sf(()=>P?u(P,z):null,[P,z]);if(Z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",P),console.log("[PieRoot] CENTRIFUGE_SERVER:",z),console.log("[PieRoot] Fallback provided:",!!U);return k(S.Provider,{value:T,children:k(m.Provider,{value:$,children:k(y.Provider,{value:V,children:k(K.Provider,{value:U??k(bP,{}),children:k(v,{children:k(p,{children:H?D:k("form",{id:"piedata_global_form",action:P+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:D})})})})})})})},uP=(f)=>{let[U]=kP(()=>new jP);return k(F.Provider,{value:f.onNavigate,children:k(j.Provider,{value:f.config,children:k(xP,{client:U,children:k(dP,{...f})})})})},gP=uP;import{useMemo as t}from"react";import{QueryClient as cP,QueryClientProvider as hP,useQuery as lP}from"@tanstack/react-query";import{createAxiosDateTransformer as rP}from"axios-date-transformer";import{useEffect as vP,useState as pP}from"react";var Ff=()=>{let[f,U]=pP(null);return vP(()=>{if(typeof window==="undefined")return;let D=window.WebApp;if(!D)return;D.ready(),U(D)},[]),f};import{jsx as A,Fragment as tP}from"react/jsx-runtime";var nP=({location:f,fallback:U,piecache:D,onError:H,queryOptions:P,disableGlobalForm:z})=>{let Z=x(),T=d(),$=N(),V=t(()=>rP({baseURL:Z}),[Z]),O=t(()=>E(),[]),X=t(()=>Z?b(Z):null,[Z]),G=t(()=>Z?u(Z,T):null,[Z,T]),J=Ff(),{data:I,isLoading:Y,error:C}=lP({queryKey:["uiConfig",f.pathname+f.search,J?.initData],queryFn:async()=>{let B=new URLSearchParams(f.search);if(B.set("__pieroot","max"),J?.initData)B.set("initData",J.initData);let Q="/api/content"+f.pathname+"?"+B.toString();if($)console.log("[PieRoot] Fetching UI configuration from:",Q);let R=await V.get(Q,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if($)console.log("[PieRoot] Received UI configuration:",R.data);return R.data},enabled:!!J?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(B)=>Math.min(1000*2**B,30000),...P}),q=l(f.pathname,D,U);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(C&&$)return console.error("[PieRoot] Error fetching UI configuration:",C),console.error("[PieRoot] Error details:",{message:C.message,status:C.response?.status,data:C.response?.data}),H?.(),q;if(Y||!I){if($)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!I});return q}if($)console.log("[PieRoot] UI configuration loaded successfully:",I),console.log("[PieRoot] Rendering UI with configuration");return A(S.Provider,{value:O,children:A(m.Provider,{value:X,children:A(y.Provider,{value:G,children:A(K.Provider,{value:U??A(tP,{}),children:A(v,{children:A(p,{children:z?A(w,{uiConfig:I}):A("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:A(w,{uiConfig:I})})})})})})})})},iP=(f)=>{let U=t(()=>new cP,[]);return A(F.Provider,{value:f.onNavigate,children:A(j.Provider,{value:f.config,children:A(hP,{client:U,children:A(nP,{...f})})})})},sP=iP;import{useMemo as aP}from"react";var JU=(f,U=!1)=>{if(f==="sid"){if(!window.sid)throw new Error("SocketIO isn't initialized properly");return[window.sid]}let D=document.getElementsByName(f);if(!D.length){if(U)console.warn(`No input found with name ${f}`);return[]}let H=D[0];if(H instanceof HTMLInputElement){if(H.type==="file"&&H.files)return Array.from(H.files);return[H.value]}if(H instanceof HTMLTextAreaElement)return[H.value];return[]},eP=(f,U={},D=[],H,P)=>{let z=P?.renderingLogEnabled??!1,Z=P?.timeout,T=P?.retryPolicy,$=T?.maxRetries??0,V=T?.baseDelay??1000,O=T?.retryOn??[502,503,504];if(z)console.log("Registering AJAX: ",H,U,D);return async(X={})=>{if(typeof window==="undefined"||typeof document==="undefined"){if(z)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let G=P?.apiServer;if(!G){if(z)console.warn("AJAX skipped: apiServer is missing");return}if(!H||!f){if(z)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(D.includes("sid"))await wf();let J=new FormData;for(let[C,q]of Object.entries({...U,...X}))J.append(C,q);for(let C of D)for(let q of JU(C,z))J.append(C,q);let I=G+"api/ajax_content"+H;f(null);let Y;for(let C=0;C<=$;C++){if(C>0){let Q=V*2**(C-1);if(z)console.log(`AJAX retry ${C}/${$} after ${Q}ms`);await new Promise((R)=>setTimeout(R,Q))}let q=Z!=null?new AbortController:null,B=q&&setTimeout(()=>q.abort(),Z);try{let Q=await fetch(I,{method:"POST",body:J,signal:q?.signal});if(B)clearTimeout(B);if(!Q.ok&&O.includes(Q.status)&&C<$){Y=new Error(`HTTP ${Q.status}`);continue}let s=(Q.headers.get("content-type")||"").includes("application/json");if(!!Q.body?.getReader&&!s){let a=Q.body.getReader(),XU=new TextDecoder,c="";while(!0){let{done:$f,value:GU}=await a.read();if($f)break;c+=XU.decode(GU,{stream:!0});let Mf=c.split(`
|
|
3
|
+
`);c=Mf.pop()??"";for(let qU of Mf){let zf=qU.trim();if(!zf)continue;try{let BU=JSON.parse(zf);f([BU])}catch{if(z)console.warn("Failed to parse streamed line:",zf)}}}if(c.trim())try{let $f=JSON.parse(c);f([$f])}catch{if(z)console.warn("Failed to parse final streamed line:",c)}return{}}else{let a=await Q.json();return f(a),a}}catch(Q){if(B)clearTimeout(B);if(Y=Q,C<$)continue;if(z)console.error("AJAX request failed:",Q);return f(null),Q}}if(z)console.error("AJAX request failed after retries:",Y);return f(null),Y}},fD=(f,U={},D=[],H,P)=>{let{apiServer:z,enableRenderingLog:Z}=h(),T=JSON.stringify(U),$=JSON.stringify(D),V=JSON.stringify(P);return aP(()=>eP(f,U,D,H,{apiServer:z,renderingLogEnabled:Z,timeout:P?.timeout,retryPolicy:P?.retryPolicy}),[f,T,$,H,z,Z,V])};import{tool as UD}from"@openai/agents";import{useContext as HD,useMemo as PD}from"react";var YU=/^pie(.+?)_(.+)$/;function OU(f=E(),U={}){let D=[],H=new Set;for(let P of f.all.keys()){if(typeof P!=="string")continue;let z=P.match(YU);if(!z)continue;let[,Z,T]=z,$={methodName:Z,cardName:T,eventName:P};if(U.filter&&!U.filter($))continue;let V=U.nameFor?.($)??`${T}_${Z}`;if(H.has(V))continue;H.add(V);let O=U.describe?.($)??`Invokes the "${Z}" method on the PieCard "${T}" by emitting the in-process mitt event "${P}". The optional "payload" argument is forwarded verbatim to the card's handler.`;D.push(UD({name:V,description:O,strict:!1,parameters:{type:"object",properties:{payload:{description:"Arbitrary JSON payload forwarded to the PieCard method handler. Omit for fire-and-forget calls."}},required:[],additionalProperties:!0},execute:async(X)=>{let G=X?.payload;return f.emit(P,G),`Emitted "${P}"`}}))}return D}function DD(f={}){let D=HD(S)??E(),H=[];for(let $ of D.all.keys())if(typeof $==="string"&&YU.test($))H.push($);H.sort();let P=H.join("|"),{filter:z,describe:Z,nameFor:T}=f;return PD(()=>OU(D,{filter:z,describe:Z,nameFor:T}),[D,P,z,Z,T])}import{clsx as ZD}from"clsx";import{twMerge as $D}from"tailwind-merge";function zD(...f){return $D(ZD(f))}var TD=()=>{if(typeof document==="undefined")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var VD=(f,U)=>`${f}${Tf}${U}`;export{Kf as useWebApp,DD as usePieMittAgentTools,NU as usePieEmit,Hf as useOpenAIWebRTC,Ff as useMaxWebApp,fD as useAjaxSubmit,jU as unregisterComponent,TD as submitGlobalForm,g as registry,W as registerPieComponent,kU as registerMultipleComponents,JU as readAjaxKey,VD as pieName,xU as hasComponent,bU as getRegistrySize,r as getRegistryEntry,OU as getMittAgentTools,dU as getComponentMeta,uU as getAllRegisteredComponents,zD as cn,DH as UnionCard,o as UIRendererContext,Of as UILoading,w as UI,pH as SessionStorageCard,UH as SequenceCard,aH as SecureStorageCard,EP as PieTelegramRoot,KP as PieRoot,sP as PieMaxRoot,_ as PieCard,gP as PieBaseRoot,Tf as PIEBREAK,zP as OneOfCard,bH as IOEventsCard,qH as HiddenCard,YH as HTMLEmbedCard,lH as DeviceStorageCard,iH as CloudStorageCard,DP as BoxCard,KH as AutoRedirectCard,HP as AjaxGroupCard};
|