@common-stack/components-pro 7.0.4-alpha.27 → 7.1.1-alpha.0

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.
Files changed (37) hide show
  1. package/lib/index.js +1 -1
  2. package/lib/plugin/dynamic-render.d.ts +4 -1
  3. package/lib/plugin/dynamic-render.js +29 -16
  4. package/lib/plugin/dynamic-render.js.map +1 -1
  5. package/lib/plugin/index.d.ts +1 -2
  6. package/lib/plugin/plugin-render.d.ts +14 -6
  7. package/lib/plugin/plugin-render.js +26 -17
  8. package/lib/plugin/plugin-render.js.map +1 -1
  9. package/lib/plugin/reset-rendered-fills.d.ts +2 -0
  10. package/lib/plugin/reset-rendered-fills.js +4 -0
  11. package/lib/plugin/reset-rendered-fills.js.map +1 -0
  12. package/lib/slot-fill/base/context.js +3 -0
  13. package/lib/slot-fill/base/context.js.map +1 -1
  14. package/lib/slot-fill/base/provider.d.ts +3 -0
  15. package/lib/slot-fill/base/provider.js +37 -1
  16. package/lib/slot-fill/base/provider.js.map +1 -1
  17. package/lib/slot-fill/base/slot.js +4 -4
  18. package/lib/slot-fill/base/slot.js.map +1 -1
  19. package/lib/slot-fill/interfaces/index.d.ts +8 -0
  20. package/package.json +2 -2
  21. package/lib/index.server.d.ts +0 -1
  22. package/lib/index.server.js +0 -1
  23. package/lib/index.server.js.map +0 -1
  24. package/lib/plugin/context.d.ts +0 -6
  25. package/lib/plugin/context.js +0 -1
  26. package/lib/plugin/context.js.map +0 -1
  27. package/lib/plugin/loader.d.ts +0 -6
  28. package/lib/plugin/loader.js +0 -20
  29. package/lib/plugin/loader.js.map +0 -1
  30. package/lib/plugin/middleware.d.ts +0 -3
  31. package/lib/plugin/middleware.js +0 -19
  32. package/lib/plugin/middleware.js.map +0 -1
  33. package/lib/plugin/provider.d.ts +0 -6
  34. package/lib/plugin/provider.js +0 -4
  35. package/lib/plugin/provider.js.map +0 -1
  36. package/lib/slot-fill/utils/index.js +0 -9
  37. package/lib/slot-fill/utils/index.js.map +0 -1
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- export{Fill,Slot,Provider as SlotFillProvider,createSlotFill}from'./slot-fill/index.js';export{removeUniversalPortals}from'./slot-fill/utils/removeUniversalPortals.js';export{default as FillRenderProvider}from'./plugin/provider.js';export{PluginsLoader}from'./plugin/loader.js';export{default as __experimentalUseSlot}from'./slot-fill/bubbles-virtually/use-slot.js';//# sourceMappingURL=index.js.map
1
+ export{Fill,Slot,Provider as SlotFillProvider,createSlotFill}from'./slot-fill/index.js';export{removeUniversalPortals}from'./slot-fill/utils/removeUniversalPortals.js';export{renderedFillsPath,resetRenderedFills}from'./plugin/reset-rendered-fills.js';export{default as __experimentalUseSlot}from'./slot-fill/bubbles-virtually/use-slot.js';//# sourceMappingURL=index.js.map
@@ -1,5 +1,8 @@
1
1
  import React from 'react';
2
- export declare const DynamicRender: ({ renderImporter, ...props }: {
2
+ export declare const DynamicRender: ({ renderImporter, registerPluginData, loadPluginData, loaderContext, ...props }: {
3
3
  [x: string]: any;
4
4
  renderImporter: any;
5
+ registerPluginData: any;
6
+ loadPluginData: any;
7
+ loaderContext: any;
5
8
  }) => React.JSX.Element;
@@ -1,19 +1,32 @@
1
- import React__default,{useState,useEffect}from'react';const DynamicRender = ({ renderImporter, ...props }) => {
2
- const [Component, setComponent] = useState(null);
3
- useEffect(() => {
4
- if (renderImporter) {
5
- renderImporter()
6
- .then((module) => {
7
- const ImportedComponent = module.default;
8
- setComponent(() => ImportedComponent);
9
- })
10
- .catch((error) => {
11
- console.error(`Failed to load component from ${renderImporter}:`, error);
12
- });
13
- }
14
- }, [renderImporter]);
15
- if (!Component) {
1
+ import React__default,{lazy,Suspense}from'react';const DynamicRender = ({ renderImporter, registerPluginData, loadPluginData, loaderContext, ...props }) => {
2
+ if (!renderImporter) {
16
3
  return React__default.createElement(React__default.Fragment, null);
17
4
  }
18
- return React__default.createElement(Component, { ...props });
5
+ // Create a lazy-loaded component from the importer
6
+ const LazyComponent = lazy(async () => {
7
+ try {
8
+ const module = await renderImporter();
9
+ let loaderData = {};
10
+ if (module.loader && typeof module.loader === 'function') {
11
+ if (typeof window === 'undefined' && loaderContext) {
12
+ loaderData = await module.loader(loaderContext);
13
+ registerPluginData(loaderData);
14
+ }
15
+ else {
16
+ loaderData = loadPluginData();
17
+ }
18
+ }
19
+ // Create a wrapper component that includes the loader data
20
+ const WrappedComponent = (componentProps) => {
21
+ return React__default.createElement(module.default, { ...componentProps, loaderData: loaderData });
22
+ };
23
+ return { default: WrappedComponent };
24
+ }
25
+ catch (error) {
26
+ console.error(`Failed to load component from ${renderImporter}:`, error);
27
+ return { default: () => React__default.createElement(React__default.Fragment, null) };
28
+ }
29
+ });
30
+ return (React__default.createElement(Suspense, { fallback: React__default.createElement(React__default.Fragment, null) },
31
+ React__default.createElement(LazyComponent, { ...props })));
19
32
  };export{DynamicRender};//# sourceMappingURL=dynamic-render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-render.js","sources":["../../src/plugin/dynamic-render.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"sDAEO,MAAM,aAAa,GAAG,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,EAAE,KAAI;IAC1D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAkB,IAAI,CAAC,CAAC;IAElE,SAAS,CAAC,MAAK;QACX,IAAI,cAAc,EAAE;AAChB,YAAA,cAAc,EAAE;AACX,iBAAA,IAAI,CAAC,CAAC,MAAM,KAAI;AACb,gBAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC;AACzC,gBAAA,YAAY,CAAC,MAAM,iBAAiB,CAAC,CAAC;AAC1C,aAAC,CAAC;AACD,iBAAA,KAAK,CAAC,CAAC,KAAK,KAAI;gBACb,OAAO,CAAC,KAAK,CAAC,CAAA,8BAAA,EAAiC,cAAc,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;AAC7E,aAAC,CAAC,CAAC;SACV;AACL,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,IAAI,CAAC,SAAS,EAAE;AACZ,QAAA,OAAOA,2DAAK,CAAC;KAChB;AAED,IAAA,OAAOA,cAAC,CAAA,aAAA,CAAA,SAAS,EAAK,EAAA,GAAA,KAAK,GAAI,CAAC;AACpC"}
1
+ {"version":3,"file":"dynamic-render.js","sources":["../../src/plugin/dynamic-render.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"iDAEa,MAAA,aAAa,GAAG,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,KAAI;IAC7G,IAAI,CAAC,cAAc,EAAE;AACjB,QAAA,OAAOA,2DAAK,CAAC;KAChB;;AAGD,IAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAW;AAClC,QAAA,IAAI;AACA,YAAA,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;YACtC,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;AACtD,gBAAA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,aAAa,EAAE;oBAChD,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBAChD,kBAAkB,CAAC,UAAU,CAAC,CAAC;iBAClC;qBAAM;oBACH,UAAU,GAAG,cAAc,EAAE,CAAC;iBACjC;aACJ;;AAGD,YAAA,MAAM,gBAAgB,GAAG,CAAC,cAAc,KAAI;gBACxC,OAAOA,cAAA,CAAA,aAAA,CAAC,MAAM,CAAC,OAAO,EAAA,EAAA,GAAK,cAAc,EAAE,UAAU,EAAE,UAAU,EAAA,CAAI,CAAC;AAC1E,aAAC,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;SACxC;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,CAAA,8BAAA,EAAiC,cAAc,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;YACzE,OAAO,EAAE,OAAO,EAAE,MAAMA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAK,EAAE,CAAC;SACnC;AACL,KAAC,CAAC,CAAC;AAEH,IAAA,QACIA,cAAC,CAAA,aAAA,CAAA,QAAQ,EAAC,EAAA,QAAQ,EAAEA,cAAK,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAA,EAAA;AACrB,QAAAA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAK,EAAA,GAAA,KAAK,EAAI,CAAA,CACrB,EACb;AACN"}
@@ -1,2 +1 @@
1
- export { default as FillRenderProvider } from './provider';
2
- export { PluginsLoader } from './loader';
1
+ export * from './reset-rendered-fills';
@@ -1,6 +1,14 @@
1
- import React from 'react';
2
- export declare const ChildrenRender: ({ children, ...props }: {
3
- [x: string]: any;
4
- children: any;
5
- }) => React.JSX.Element;
6
- export declare const PluginRender: (props: any) => React.JSX.Element;
1
+ import React, { ReactNode } from 'react';
2
+ import { IExtendedFill, IProviderState, Name } from '../slot-fill/interfaces';
3
+ interface ChildrenRenderProps {
4
+ children: ReactNode | ((props: any) => ReactNode);
5
+ [key: string]: any;
6
+ }
7
+ export declare const ChildrenRender: React.FC<ChildrenRenderProps>;
8
+ interface PluginRenderProps extends Partial<IProviderState> {
9
+ fills: IExtendedFill[];
10
+ name: Name;
11
+ [key: string]: any;
12
+ }
13
+ export declare const PluginRender: React.FC<PluginRenderProps>;
14
+ export {};
@@ -1,38 +1,47 @@
1
- import React__default,{useContext}from'react';import {DynamicRender}from'./dynamic-render.js';import {isFunction}from'../slot-fill/utils/index.js';import FillRenderContext from'./context.js';const ChildrenRender = ({ children, ...props }) => {
2
- return React__default.createElement(React__default.Fragment, null, isFunction(children) ? children(props) : children);
1
+ import React__default,{useCallback}from'react';import {DynamicRender}from'./dynamic-render.js';const ChildrenRender = ({ children, ...props }) => {
2
+ const renderChildren = (props) => {
3
+ if (typeof children === 'function') {
4
+ return children(props);
5
+ }
6
+ return children;
7
+ };
8
+ return React__default.createElement(React__default.Fragment, null, renderChildren(props));
3
9
  };
4
10
  const PluginRender = (props) => {
5
- const loadedPlugins = useContext(FillRenderContext);
6
- const FillRender = ({ fill, ...props }) => {
7
- const plugin = loadedPlugins.find((plugin) => plugin.index === fill.index);
8
- const loaderData = plugin ? plugin.loaderData : {};
9
- if (plugin?.Component) {
10
- return React__default.createElement(plugin.Component, { ...props, loaderData: loaderData });
11
- }
12
- else if (fill.renderImporter) {
13
- return React__default.createElement(DynamicRender, { ...props, renderImporter: fill.renderImporter, loaderData: loaderData });
11
+ const FillRender = ({ fill, registerRenderedFill, loadRenderedFill, loaderContext, ...fillProps }) => {
12
+ console.log('FillRender >>>', fillProps.name, fill);
13
+ const registerPluginData = useCallback((loaderData) => {
14
+ registerRenderedFill?.(fillProps.name, fill.index, loaderData);
15
+ }, [registerRenderedFill, fillProps.name, fill.index]);
16
+ const loadPluginData = useCallback(() => {
17
+ return loadRenderedFill?.(fillProps.name, fill.index);
18
+ }, [loadRenderedFill, fillProps.name, fill.index]);
19
+ if (fill.renderImporter) {
20
+ return (React__default.createElement(DynamicRender, { ...fillProps, renderImporter: fill.renderImporter, registerPluginData: registerPluginData, loadPluginData: loadPluginData, loaderContext: loaderContext }));
14
21
  }
15
- else if (plugin?.render) {
22
+ else if (fill.render) {
16
23
  let children = null;
17
24
  try {
18
- const FillComponent = plugin.render();
19
- children = FillComponent.props?.children;
25
+ const FillComponent = fill.render(null);
26
+ if (React__default.isValidElement(FillComponent)) {
27
+ children = FillComponent.props.children;
28
+ }
20
29
  }
21
30
  catch (error) {
22
31
  console.error('Error in PluginRender', error);
23
32
  }
24
33
  if (children) {
25
- return React__default.createElement(ChildrenRender, { ...props, children: children });
34
+ return React__default.createElement(ChildrenRender, { ...fillProps, children: children });
26
35
  }
27
36
  }
28
37
  else if (fill.children) {
29
- return React__default.createElement(ChildrenRender, { ...props, children: fill.children });
38
+ return React__default.createElement(ChildrenRender, { ...fillProps, children: fill.children });
30
39
  }
31
40
  return React__default.createElement(React__default.Fragment, null);
32
41
  };
33
42
  return (React__default.createElement(React__default.Fragment, null, props.fills.map((fill, i) => {
34
43
  if (typeof window === 'undefined') {
35
- return (React__default.createElement("div", { key: i, "data-slot-name": `slot-${props.name}` },
44
+ return (React__default.createElement("div", { key: i, "data-slot-name": `slot-${String(props.name)}` },
36
45
  React__default.createElement(FillRender, { fill: fill, ...props })));
37
46
  }
38
47
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-render.js","sources":["../../src/plugin/plugin-render.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"+LAMO,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,KAAI;AACrD,IAAA,OAAOA,4DAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAI,CAAC;AACpE,EAAE;AAEW,MAAA,YAAY,GAAG,CAAC,KAAK,KAAI;AAClC,IAAA,MAAM,aAAa,GAAQ,UAAU,CAAqB,iBAAiB,CAAC,CAAC;IAE7E,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,KAAI;AACtC,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3E,QAAA,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;AAEnD,QAAA,IAAI,MAAM,EAAE,SAAS,EAAE;YACnB,OAAOA,cAAA,CAAA,aAAA,CAAC,MAAM,CAAC,SAAS,EAAA,EAAA,GAAK,KAAK,EAAE,UAAU,EAAE,UAAU,EAAA,CAAI,CAAC;SAClE;AAAM,aAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AAC5B,YAAA,OAAOA,cAAC,CAAA,aAAA,CAAA,aAAa,EAAK,EAAA,GAAA,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,GAAG,CAAC;SACnG;AAAM,aAAA,IAAI,MAAM,EAAE,MAAM,EAAE;YACvB,IAAI,QAAQ,GAAG,IAAI,CAAC;AACpB,YAAA,IAAI;AACA,gBAAA,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;AACtC,gBAAA,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;aAC5C;YAAC,OAAO,KAAK,EAAE;AACZ,gBAAA,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;aACjD;YACD,IAAI,QAAQ,EAAE;gBACV,OAAOA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAK,EAAA,GAAA,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAA,CAAI,CAAC;aAC5D;SACJ;AAAM,aAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtB,OAAOA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAA,EAAA,GAAK,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA,CAAI,CAAC;SACjE;AACD,QAAA,OAAOA,2DAAK,CAAC;AACjB,KAAC,CAAA;AAED,IAAA,QACIA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EACK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;AACzB,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAC/B,QACIA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,CAAC,oBAAkB,CAAQ,KAAA,EAAA,KAAK,CAAC,IAAI,CAAE,CAAA,EAAA;gBAC7CA,cAAC,CAAA,aAAA,CAAA,UAAU,EAAC,EAAA,IAAI,EAAE,IAAI,KAAM,KAAK,EAAA,CAAI,CACnC,EACR;SACL;aAAM;AACH,YAAA,OAAOA,cAAC,CAAA,aAAA,CAAA,UAAU,EAAC,EAAA,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAM,GAAA,KAAK,GAAI,CAAC;SACxD;KACJ,CAAC,CACH,EACL;AACN"}
1
+ {"version":3,"file":"plugin-render.js","sources":["../../src/plugin/plugin-render.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const renderedFillsPath = "./app/rendered-fills.json";
2
+ export declare const resetRenderedFills: (path: string) => void;
@@ -0,0 +1,4 @@
1
+ import fs from'fs';const renderedFillsPath = './app/rendered-fills.json';
2
+ const resetRenderedFills = (path) => {
3
+ fs.writeFileSync(path, JSON.stringify({}, null, 2));
4
+ };export{renderedFillsPath,resetRenderedFills};//# sourceMappingURL=reset-rendered-fills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset-rendered-fills.js","sources":["../../src/plugin/reset-rendered-fills.ts"],"sourcesContent":[null],"names":[],"mappings":"mBACO,MAAM,iBAAiB,GAAG,4BAA4B;AAEhD,MAAA,kBAAkB,GAAG,CAAC,IAAY,KAAI;AAC/C,IAAA,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD"}
@@ -7,5 +7,8 @@ import*as React from'react';const SlotFillContext = React.createContext({
7
7
  getFills: () => ([]),
8
8
  hasFills: () => false,
9
9
  subscribe: () => { },
10
+ registerRenderedFill: () => { },
11
+ loadRenderedFill: () => { },
12
+ loaderContext: null,
10
13
  });
11
14
  const { Provider, Consumer } = SlotFillContext;export{Consumer,Provider,SlotFillContext as default};//# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../../src/slot-fill/base/context.tsx"],"sourcesContent":[null],"names":[],"mappings":"4BAGA,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAkB;AAC3D,IAAA,YAAY,EAAE,MAAK,GAAG;AACtB,IAAA,cAAc,EAAE,MAAK,GAAG;AACxB,IAAA,YAAY,EAAE,MAAK,GAAG;AACtB,IAAA,cAAc,EAAE,MAAK,GAAG;AACxB,IAAA,OAAO,EAAE,OAAO,EAAE,CAAQ;AAC1B,IAAA,QAAQ,EAAE,OAAO,EAAE,CAAC;AACpB,IAAA,QAAQ,EAAE,MAAM,KAAK;AACrB,IAAA,SAAS,EAAE,MAAK,GAAG;AACpB,CAAA,EAAE;AACH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG"}
1
+ {"version":3,"file":"context.js","sources":["../../../src/slot-fill/base/context.tsx"],"sourcesContent":[null],"names":[],"mappings":"4BAGA,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAkB;AAC3D,IAAA,YAAY,EAAE,MAAK,GAAG;AACtB,IAAA,cAAc,EAAE,MAAK,GAAG;AACxB,IAAA,YAAY,EAAE,MAAK,GAAG;AACtB,IAAA,cAAc,EAAE,MAAK,GAAG;AACxB,IAAA,OAAO,EAAE,OAAO,EAAE,CAAQ;AAC1B,IAAA,QAAQ,EAAE,OAAO,EAAE,CAAC;AACpB,IAAA,QAAQ,EAAE,MAAM,KAAK;AACrB,IAAA,SAAS,EAAE,MAAK,GAAG;AACnB,IAAA,oBAAoB,EAAE,MAAK,GAAG;AAC9B,IAAA,gBAAgB,EAAE,MAAK,GAAG;AAC1B,IAAA,aAAa,EAAE,IAAI;AACpB,CAAA,EAAE;AACH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG"}
@@ -2,6 +2,9 @@ import React, { ReactNode } from 'react';
2
2
  interface SlotFillProviderProps {
3
3
  children: ReactNode;
4
4
  context?: any;
5
+ loaderContext?: any;
6
+ renderedFillsPath?: string;
7
+ renderedFillsJson?: any;
5
8
  }
6
9
  declare const SlotFillProvider: React.FC<SlotFillProviderProps>;
7
10
  export default SlotFillProvider;
@@ -1,8 +1,14 @@
1
- import React__default,{useRef,useCallback}from'react';import {sortBy}from'lodash-es';import {Provider}from'./context.js';const SlotFillProvider = ({ children, context }) => {
1
+ import React__default,{useRef,useEffect,useCallback}from'react';import {sortBy}from'lodash-es';import {Provider}from'./context.js';import fs from'fs';import path from'path';const SlotFillProvider = ({ children, context, loaderContext, renderedFillsPath, renderedFillsJson }) => {
2
2
  const slots = useRef({});
3
3
  const fills = useRef({});
4
4
  const listeners = useRef([]);
5
5
  const returnValue = useRef(context);
6
+ const renderedFills = useRef({});
7
+ // Load renderedFills from file on initialization (server-side only)
8
+ useEffect(() => {
9
+ renderedFills.current = renderedFillsJson;
10
+ console.log('Loaded renderedFills from file:', renderedFills.current);
11
+ }, [renderedFillsJson]);
6
12
  const forceUpdateSlot = useCallback((name) => {
7
13
  const slot = slots.current[name];
8
14
  if (slot && typeof slot.forceUpdate === 'function') {
@@ -60,6 +66,33 @@ import React__default,{useRef,useCallback}from'react';import {sortBy}from'lodash
60
66
  listeners.current = listeners.current.filter((l) => l !== listener);
61
67
  };
62
68
  }, []);
69
+ const registerRenderedFill = useCallback((name, index, loaderData) => {
70
+ renderedFills.current[`${name}-${index}`] = { name, index, loaderData };
71
+ if (typeof window === 'undefined' && fs) {
72
+ try {
73
+ // Ensure directory exists
74
+ const dir = path.dirname(renderedFillsPath);
75
+ if (!fs.existsSync(dir)) {
76
+ fs.mkdirSync(dir, { recursive: true });
77
+ }
78
+ // Write to file
79
+ fs.writeFileSync(renderedFillsPath, JSON.stringify(renderedFills.current, null, 2));
80
+ console.log(`Saved renderedFills to ${renderedFillsPath}`);
81
+ }
82
+ catch (error) {
83
+ console.error('Error writing renderedFills to file:', error);
84
+ }
85
+ }
86
+ triggerListeners();
87
+ }, [triggerListeners, renderedFillsPath]);
88
+ const loadRenderedFill = useCallback((name, index) => {
89
+ // Client-side: first check if we have it in memory
90
+ const key = `${name}-${index}`;
91
+ if (renderedFills.current[key]) {
92
+ return renderedFills.current[key].loaderData;
93
+ }
94
+ return null;
95
+ }, []);
63
96
  const contextValue = {
64
97
  registerSlot,
65
98
  unregisterSlot,
@@ -69,6 +102,9 @@ import React__default,{useRef,useCallback}from'react';import {sortBy}from'lodash
69
102
  getFills,
70
103
  hasFills,
71
104
  subscribe,
105
+ registerRenderedFill,
106
+ loadRenderedFill,
107
+ loaderContext,
72
108
  };
73
109
  if (context) {
74
110
  returnValue.current = context;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":["../../../src/slot-fill/base/provider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sources":["../../../src/slot-fill/base/provider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React__default,{useRef,useState,useEffect,useCallback}from'react';import {Consumer}from'./context.js';import {PluginRender}from'../../plugin/plugin-render.js';const SlotComponent = (props) => {
2
- const { registerSlot, unregisterSlot, getFills, serverMode, name, fillProps = {}, children } = props;
2
+ const { registerSlot, unregisterSlot, getFills, registerRenderedFill, loadRenderedFill, loaderContext, serverMode, name, fillProps = {}, children } = props;
3
3
  const nodeRef = useRef(null);
4
4
  const isUnmountedRef = useRef(false);
5
5
  const [_, setState] = useState({});
@@ -49,14 +49,14 @@ import React__default,{useRef,useState,useEffect,useCallback}from'react';import
49
49
  // );
50
50
  const fills = getFills(name);
51
51
  if (fills.length > 0) {
52
- return React__default.createElement(PluginRender, { ...fillProps, name: name, fills: fills });
52
+ return (React__default.createElement(PluginRender, { ...fillProps, name: name, fills: fills, registerRenderedFill: registerRenderedFill, loadRenderedFill: loadRenderedFill, loaderContext: loaderContext }));
53
53
  }
54
54
  return null;
55
55
  };
56
56
  const Slot = (props) => {
57
57
  const serverMode = (typeof window === 'undefined');
58
- return (React__default.createElement(Consumer, null, ({ registerSlot, unregisterSlot, getFills }) => (React__default.createElement(SlotComponent, { ...props,
58
+ return (React__default.createElement(Consumer, null, ({ registerSlot, unregisterSlot, getFills, registerRenderedFill, loadRenderedFill, loaderContext }) => (React__default.createElement(SlotComponent, { ...props,
59
59
  // We need to add id to fillProps with slot name,
60
60
  // so that we can use it when remove the component during hydration.
61
- getFills: getFills, registerSlot: registerSlot, unregisterSlot: unregisterSlot, serverMode: serverMode }))));
61
+ getFills: getFills, registerSlot: registerSlot, unregisterSlot: unregisterSlot, serverMode: serverMode, registerRenderedFill: registerRenderedFill, loadRenderedFill: loadRenderedFill, loaderContext: loaderContext }))));
62
62
  };export{Slot as default};//# sourceMappingURL=slot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slot.js","sources":["../../../src/slot-fill/base/slot.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"sKAUA,MAAM,aAAa,GAA6B,CAAC,KAAK,KAAI;AACtD,IAAA,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AACrG,IAAA,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;AAC7C,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEnC,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,UAAU,EAAE;AACb,YAAA,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;SACvC;AACD,QAAA,OAAO,MAAK;AACR,YAAA,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,YAAA,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1C,SAAC,CAAC;KACL,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AAErD,IAAoB,WAAW,CAAC,MAAK;AACjC,QAAA,IAAI,cAAc,CAAC,OAAO,EAAE;YACxB,OAAO;SACV;QACD,IAAI,CAAC,UAAU,EAAE;;AAEb,YAAA,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAA,iBAAA,CAAmB,CAAC,CAAC;YACjD,QAAQ,CAAC,EAAE,CAAC,CAAC;SAChB;AACL,KAAC,EAAE,CAAC,UAAU,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCjB,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7B,IAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,QAAA,OAAOA,cAAC,CAAA,aAAA,CAAA,YAAY,EAAK,EAAA,GAAA,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC;KACpE;AAED,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,KAAiB,KAAI;IAC/B,MAAM,UAAU,IAAI,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC;AACnD,IAAA,QACIA,cAAC,CAAA,aAAA,CAAA,QAAQ,QACJ,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MACxCA,cAAC,CAAA,aAAA,CAAA,aAAa,OACN,KAAK;;;AAGT,QAAA,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,GACxB,CACL,CACM,EACb;AACN"}
1
+ {"version":3,"file":"slot.js","sources":["../../../src/slot-fill/base/slot.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"sKAUA,MAAM,aAAa,GAA6B,CAAC,KAAK,KAAI;IACtD,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AAC5J,IAAA,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;AAC7C,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEnC,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,UAAU,EAAE;AACb,YAAA,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;SACvC;AACD,QAAA,OAAO,MAAK;AACR,YAAA,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,YAAA,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1C,SAAC,CAAC;KACL,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AAErD,IAAoB,WAAW,CAAC,MAAK;AACjC,QAAA,IAAI,cAAc,CAAC,OAAO,EAAE;YACxB,OAAO;SACV;QACD,IAAI,CAAC,UAAU,EAAE;;AAEb,YAAA,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAA,iBAAA,CAAmB,CAAC,CAAC;YACjD,QAAQ,CAAC,EAAE,CAAC,CAAC;SAChB;AACL,KAAC,EAAE,CAAC,UAAU,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCjB,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7B,IAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAClB,QACIA,cAAC,CAAA,aAAA,CAAA,YAAY,EACL,EAAA,GAAA,SAAS,EACb,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAwB,EAC/B,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC9B,CAAA,EACJ;KACL;AAED,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,KAAiB,KAAI;IAC/B,MAAM,UAAU,IAAI,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC;IACnD,QACIA,cAAC,CAAA,aAAA,CAAA,QAAQ,EACJ,IAAA,EAAA,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAC/FA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EAAA,GACN,KAAK;;;AAGT,QAAA,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAAA,CAC9B,CACL,CACM,EACb;AACN"}
@@ -1,4 +1,5 @@
1
1
  import { ReactNode, Component } from 'react';
2
+ import { IPlugin } from '@common-stack/client-react';
2
3
  export type Name = string | Symbol;
3
4
  export interface IFillProps {
4
5
  name: Name;
@@ -22,6 +23,9 @@ export interface IProviderState {
22
23
  getFills: (a: Name, b?: any) => IFill[] | [];
23
24
  hasFills: (a: Name) => boolean;
24
25
  subscribe: (listener: any) => void;
26
+ registerRenderedFill: (a: Name, b: number, c: any) => void;
27
+ loadRenderedFill: (a: Name, b: number) => any;
28
+ loaderContext: any;
25
29
  }
26
30
  export type IReactContext = Omit<Partial<IProviderState>, 'registerSlot'> & {
27
31
  slots?: any;
@@ -82,3 +86,7 @@ export interface ISlotProps {
82
86
  */
83
87
  serverMode?: boolean;
84
88
  }
89
+ export interface IExtendedFill extends IPlugin {
90
+ index?: number;
91
+ children?: ReactNode | any;
92
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@common-stack/components-pro",
3
- "version": "7.0.4-alpha.27",
3
+ "version": "7.1.1-alpha.0",
4
4
  "description": "browser plugin for git",
5
5
  "homepage": "https://github.com/cdmbase/fullstack-pro#readme",
6
6
  "bugs": {
@@ -53,5 +53,5 @@
53
53
  "typescript": {
54
54
  "definition": "lib/index.d.ts"
55
55
  },
56
- "gitHead": "84f0e1b86af1e594a58dcb1a3535c4d86474b234"
56
+ "gitHead": "93027005d418b28138e303fe77d1857867564bd8"
57
57
  }
@@ -1 +0,0 @@
1
- export * from './plugin/middleware';
@@ -1 +0,0 @@
1
- export{middleware}from'./plugin/middleware.js';//# sourceMappingURL=index.server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.server.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import * as React from 'react';
2
- export interface IFillRenderContext {
3
- loadedPlugins: any;
4
- }
5
- declare const FillRenderContext: React.Context<IFillRenderContext>;
6
- export default FillRenderContext;
@@ -1 +0,0 @@
1
- import*as React from'react';const FillRenderContext = React.createContext(null);export{FillRenderContext as default};//# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sources":["../../src/plugin/context.tsx"],"sourcesContent":[null],"names":[],"mappings":"4BAMM,MAAA,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAA4B,IAAI"}
@@ -1,6 +0,0 @@
1
- import { IAppLoadContext, IResourceParams } from "@common-stack/client-core";
2
- export declare function PluginsLoader(plugins: any[], loaderContext: {
3
- request: Request;
4
- context: IAppLoadContext;
5
- params: IResourceParams;
6
- }): Promise<any[]>;
@@ -1,20 +0,0 @@
1
- async function PluginsLoader(plugins, loaderContext) {
2
- const loadedPlugins = await Promise.all(plugins.map(async (plugin) => {
3
- try {
4
- if (plugin.renderImporter) {
5
- const module = await plugin.renderImporter();
6
- const ImportedComponent = module.default;
7
- if (module.loader && typeof module.loader === 'function') {
8
- const loaderData = await module.loader(loaderContext);
9
- return { ...plugin, Component: ImportedComponent, loaderData };
10
- }
11
- return { ...plugin, Component: ImportedComponent };
12
- }
13
- }
14
- catch (error) {
15
- console.error('Error in PluginsLoader', error);
16
- }
17
- return plugin;
18
- }));
19
- return loadedPlugins;
20
- }export{PluginsLoader};//# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sources":["../../src/plugin/loader.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,eAAe,aAAa,CAAC,OAAc,EAAE,aAAsF,EAAA;AACtI,IAAA,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAW,KAAI;AAC9B,QAAA,IAAI;AACA,YAAA,IAAI,MAAM,CAAC,cAAc,EAAE;AACvB,gBAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;AAC7C,gBAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC;gBAEzC,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;oBACtD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBACtD,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;iBAClE;gBACD,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;aACtD;SACJ;QAAC,OAAO,KAAK,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;SAClD;AACD,QAAA,OAAO,MAAM,CAAC;KACjB,CAAC,CACL,CAAC;AACF,IAAA,OAAO,aAAa,CAAC;AACzB"}
@@ -1,3 +0,0 @@
1
- export declare const middleware: ({ context }: {
2
- context: any;
3
- }, dataLoader: any, next: any) => Promise<void>;
@@ -1,19 +0,0 @@
1
- const middleware = async ({ context }, dataLoader, next) => {
2
- const { modules } = context;
3
- try {
4
- const plugins = modules.getComponentFillPlugins();
5
- const loadedPlugins = await Promise.all(plugins.map(async (plugin) => {
6
- if (plugin.renderImporter) {
7
- const module = await plugin.renderImporter();
8
- const ImportedComponent = module.default;
9
- return { ...plugin, Component: ImportedComponent };
10
- }
11
- return plugin;
12
- }));
13
- dataLoader.loadedPlugins = loadedPlugins;
14
- }
15
- catch (error) {
16
- console.error(error, 'Error with plugin middleware');
17
- }
18
- await next();
19
- };export{middleware};//# sourceMappingURL=middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.js","sources":["../../src/plugin/middleware.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,MAAM,UAAU,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,KAAI;AAC9D,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,OAA0B,CAAC;AAE/C,IAAA,IAAI;AACA,QAAA,MAAM,OAAO,GAAI,OAAe,CAAC,uBAAuB,EAAE,CAAC;AAC3D,QAAA,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAW,KAAI;AAC9B,YAAA,IAAI,MAAM,CAAC,cAAc,EAAE;AACvB,gBAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;AAC7C,gBAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC;gBACzC,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;aACtD;AACD,YAAA,OAAO,MAAM,CAAC;SACjB,CAAC,CACL,CAAC;AACF,QAAA,UAAU,CAAC,aAAa,GAAG,aAAa,CAAC;KAC5C;IAAC,OAAO,KAAK,EAAE;AACZ,QAAA,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;KACxD;IACD,MAAM,IAAI,EAAE,CAAC;AACjB"}
@@ -1,6 +0,0 @@
1
- import React, { ReactNode } from 'react';
2
- interface FillRenderProviderProps {
3
- children: ReactNode;
4
- }
5
- declare const FillRenderProvider: React.FC<FillRenderProviderProps>;
6
- export default FillRenderProvider;
@@ -1,4 +0,0 @@
1
- import React__default from'react';import {useLoaderData}from'@remix-run/react';import FillRenderContext from'./context.js';const FillRenderProvider = ({ children }) => {
2
- const { loadedPlugins } = useLoaderData();
3
- return React__default.createElement(FillRenderContext.Provider, { value: loadedPlugins }, children);
4
- };export{FillRenderProvider as default};//# sourceMappingURL=provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.js","sources":["../../src/plugin/provider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"2HAQA,MAAM,kBAAkB,GAAsC,CAAC,EAAE,QAAQ,EAAE,KAAI;AAC3E,IAAA,MAAM,EAAE,aAAa,EAAE,GAAQ,aAAa,EAAE,CAAC;IAE/C,OAAOA,cAAA,CAAA,aAAA,CAAC,iBAAiB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAG,aAAa,EAAA,EAAI,QAAQ,CAA8B,CAAC;AACvG"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Whether the argument is a function.
3
- *
4
- * @param {*} maybeFunc The argument to check.
5
- * @returns {boolean} True if the argument is a function, false otherwise.
6
- */
7
- function isFunction(maybeFunc) {
8
- return typeof maybeFunc === 'function';
9
- }export{isFunction};//# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/slot-fill/utils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;AAKG;AACG,SAAU,UAAU,CAAC,SAAc,EAAA;AACrC,IAAA,OAAO,OAAO,SAAS,KAAK,UAAU,CAAC;AAC3C"}