@common-stack/components-pro 7.0.4-alpha.28 → 7.1.1-alpha.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
+ import { ILoadedPlugin } from '../slot-fill/interfaces';
2
3
  export interface IFillRenderContext {
3
- loadedPlugins: any;
4
+ loadedPlugins: ILoadedPlugin[];
4
5
  }
5
6
  declare const FillRenderContext: React.Context<IFillRenderContext>;
6
7
  export default FillRenderContext;
@@ -1 +1 @@
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
+ {"version":3,"file":"context.js","sources":["../../src/plugin/context.tsx"],"sourcesContent":[null],"names":[],"mappings":"4BAOM,MAAA,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAA4B,IAAI"}
@@ -1,4 +1,4 @@
1
- import { IAppLoadContext, IResourceParams } from "@common-stack/client-core";
1
+ import { IAppLoadContext, IResourceParams } from '@common-stack/client-core';
2
2
  export declare function PluginsLoader(plugins: any[], loaderContext: {
3
3
  request: Request;
4
4
  context: IAppLoadContext;
@@ -1 +1 @@
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;;;;;gBAMzC,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
+ {"version":3,"file":"loader.js","sources":["../../src/plugin/loader.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,eAAe,aAAa,CAC/B,OAAc,EACd,aAAsF,EAAA;AAEtF,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;;;;;gBAMzC,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,6 +1,13 @@
1
1
  import React from 'react';
2
+ import { ILoadedPlugin, Name } from '../slot-fill/interfaces';
3
+ interface IPluginRenderProps {
4
+ fills: ILoadedPlugin[];
5
+ name: Name;
6
+ [key: string]: any;
7
+ }
2
8
  export declare const ChildrenRender: ({ children, ...props }: {
3
9
  [x: string]: any;
4
10
  children: any;
5
11
  }) => React.JSX.Element;
6
- export declare const PluginRender: (props: any) => React.JSX.Element;
12
+ export declare const PluginRender: (props: IPluginRenderProps) => React.JSX.Element;
13
+ export {};
@@ -3,13 +3,12 @@ import React__default,{useContext}from'react';import {DynamicRender}from'./dynam
3
3
  };
4
4
  const PluginRender = (props) => {
5
5
  const context = useContext(FillRenderContext);
6
- if (!context) {
6
+ if (!context?.loadedPlugins) {
7
7
  throw new Error('PluginRender must be used within a FillRenderContext.Provider');
8
8
  }
9
- const { loadedPlugins } = context;
10
9
  const FillRender = ({ fill, ...props }) => {
11
- const plugin = loadedPlugins.find((plugin) => plugin.index === fill.index);
12
- const loaderData = plugin ? plugin.loaderData : {};
10
+ const plugin = context.loadedPlugins.find((plugin) => plugin.index === fill.index);
11
+ const loaderData = plugin?.loaderData || {};
13
12
  if (plugin?.Component) {
14
13
  return React__default.createElement(plugin.Component, { ...props, loaderData: loaderData });
15
14
  }
@@ -19,8 +18,11 @@ const PluginRender = (props) => {
19
18
  else if (plugin?.render) {
20
19
  let children = null;
21
20
  try {
22
- const FillComponent = plugin.render();
23
- children = FillComponent.props?.children;
21
+ const FillComponent = plugin.render(props);
22
+ if (React__default.isValidElement(FillComponent)) {
23
+ const element = FillComponent;
24
+ children = element.props?.children;
25
+ }
24
26
  }
25
27
  catch (error) {
26
28
  console.error('Error in PluginRender', error);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-render.js","sources":["../../src/plugin/plugin-render.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-render.js","sources":["../../src/plugin/plugin-render.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
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);
2
+ const loaderData = useLoaderData();
3
+ const loadedPlugins = loaderData?.loadedPlugins || [];
4
+ return React__default.createElement(FillRenderContext.Provider, { value: { loadedPlugins } }, children);
4
5
  };export{FillRenderProvider as default};//# sourceMappingURL=provider.js.map
@@ -1 +1 @@
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
+ {"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,UAAU,GAAQ,aAAa,EAAE,CAAC;AACxC,IAAA,MAAM,aAAa,GAAG,UAAU,EAAE,aAAa,IAAI,EAAE,CAAC;AAEtD,IAAA,OAAOA,cAAC,CAAA,aAAA,CAAA,iBAAiB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,EAAE,aAAa,EAAE,EAAG,EAAA,QAAQ,CAA8B,CAAC;AACzG"}
@@ -1 +1 @@
1
- import 'jest';
1
+ import '@testing-library/jest-dom';
@@ -1 +1 @@
1
- import 'jest';
1
+ import '@testing-library/jest-dom';
@@ -1,10 +1,11 @@
1
1
  import*as React from'react';const SlotFillContext = React.createContext({
2
+ // need to add default value otherwise it will fail
2
3
  registerSlot: () => { },
3
4
  unregisterSlot: () => { },
4
5
  registerFill: () => { },
5
6
  unregisterFill: () => { },
6
7
  getSlot: () => ({}),
7
- getFills: () => ([]),
8
+ getFills: () => [],
8
9
  hasFills: () => false,
9
10
  subscribe: () => { },
10
11
  });
@@ -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;;AAEzD,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,MAAM,EAAE;AAClB,IAAA,QAAQ,EAAE,MAAM,KAAK;AACrB,IAAA,SAAS,EAAE,MAAK,GAAG;AACtB,CAAA,EAAE;AACH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG"}
@@ -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":"yHAUM,MAAA,gBAAgB,GAAoC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAI;AAChF,IAAA,MAAM,KAAK,GAAG,MAAM,CAA2B,EAAE,CAAC,CAAC;AACnD,IAAA,MAAM,KAAK,GAAG,MAAM,CAA6B,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,SAAS,GAAG,MAAM,CAAiB,EAAE,CAAC,CAAC;AAC7C,IAAA,MAAM,WAAW,GAAG,MAAM,CAAM,OAAO,CAAC,CAAC;AAEzC,IAAA,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,IAAY,KAAI;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;YAChD,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;KACJ,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAK;AACtC,QAAA,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC,CAAC;KACvD,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,WAAW,CAC5B,CAAC,IAAY,EAAE,IAAW,KAAI;QAC1B,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,QAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC3B,QAAA,gBAAgB,EAAE,CAAC;;;QAInB,eAAe,CAAC,IAAI,CAAC,CAAC;;;;;QAMtB,IAAI,YAAY,IAAI,OAAO,YAAY,CAAC,WAAW,KAAK,UAAU,EAAE;YAChE,YAAY,CAAC,WAAW,EAAE,CAAC;SAC9B;AACL,KAAC,EACD,CAAC,eAAe,EAAE,gBAAgB,CAAC,CACtC,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC5B,CAAC,IAAY,EAAE,QAAe,KAAI;QAC9B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjE,eAAe,CAAC,IAAI,CAAC,CAAC;AAC1B,KAAC,EACD,CAAC,eAAe,CAAC,CACpB,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAC9B,CAAC,IAAY,EAAE,QAAe,KAAI;;;;QAI9B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;YAClC,OAAO;SACV;AACD,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,gBAAgB,EAAE,CAAC;AACvB,KAAC,EACD,CAAC,gBAAgB,CAAC,CACrB,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAC9B,CAAC,IAAY,EAAE,QAAe,KAAI;QAC9B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrF,eAAe,CAAC,IAAI,CAAC,CAAC;AAC1B,KAAC,EACD,CAAC,eAAe,CAAC,CACpB,CAAC;AAEF,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,IAAY,KAAI;AACzC,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC9B,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,IAAY,EAAE,YAAmB,KAAI;QAC/D,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;KACtC,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,IAAY,KAAI;AAC1C,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;KAC9D,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,QAAoB,KAAI;AACnD,QAAA,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,QAAA,OAAO,MAAK;AACR,YAAA,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC;AACxE,SAAC,CAAC;KACL,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,YAAY,GAAmB;QACjC,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,cAAc;QACd,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;KACZ,CAAC;IAEF,IAAI,OAAO,EAAE;AACT,QAAA,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,WAAW,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;KAC7C;IAED,OAAOA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,YAAY,EAAA,EAAG,QAAQ,CAAY,CAAC;AAChE"}
@@ -1,62 +1,85 @@
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;
3
- const nodeRef = useRef(null);
4
- const isUnmountedRef = useRef(false);
5
- const [_, setState] = useState({});
6
- useEffect(() => {
1
+ import React__default,{Component,Children,cloneElement}from'react';import {Consumer}from'./context.js';import {isFunction}from'../utils/index.js';import {PluginRender}from'../../plugin/plugin-render.js';import {isEmptyElement}from'../utils/isEmptyElement.js';class SlotComponent extends Component {
2
+ node;
3
+ isUnmounted;
4
+ constructor(props) {
5
+ super(props);
6
+ this.isUnmounted = false;
7
+ this.bindNode = this.bindNode.bind(this);
8
+ }
9
+ componentDidMount() {
10
+ const { registerSlot, serverMode } = this.props;
7
11
  if (!serverMode) {
8
- registerSlot(name, nodeRef.current);
12
+ registerSlot(this.props.name, this);
9
13
  }
10
- return () => {
11
- isUnmountedRef.current = true;
12
- unregisterSlot(name, nodeRef.current);
13
- };
14
- }, [name, registerSlot, unregisterSlot, serverMode]);
15
- useCallback(() => {
16
- if (isUnmountedRef.current) {
14
+ }
15
+ componentWillUnmount() {
16
+ const { unregisterSlot } = this.props;
17
+ this.isUnmounted = true;
18
+ unregisterSlot(this.props.name, this);
19
+ }
20
+ componentDidUpdate(prevProps) {
21
+ this.props;
22
+ // Commented following as we need the Slot to render at multiple places
23
+ // if (prevProps.name !== name) {
24
+ // unregisterSlot(prevProps.name);
25
+ // registerSlot(name, this);
26
+ // }
27
+ }
28
+ bindNode(node) {
29
+ this.node = node;
30
+ }
31
+ forceUpdate() {
32
+ if (this.isUnmounted) {
17
33
  return;
18
34
  }
19
- if (!serverMode) {
20
- // Trigger re-render
21
- console.log(`The slot ${name} is being updated`);
22
- setState({});
35
+ if (!this.props.serverMode) {
36
+ super.forceUpdate();
37
+ }
38
+ }
39
+ render() {
40
+ const { children, name, fillProps = {}, getFills, serverMode } = this.props;
41
+ const fills = getFills(name).filter((element) => !isEmptyElement(element));
42
+ if (fills.length > 0) {
43
+ if (isFunction(children)) {
44
+ const childrenFills = fills.map((fill) => {
45
+ const fillChildren = isFunction(fill.children)
46
+ ? fill.children(fillProps)
47
+ : fill.children;
48
+ return Children.map(fillChildren, (child, childIndex) => {
49
+ if (!child || typeof child === 'string') {
50
+ return child;
51
+ }
52
+ const childKey = child.key || childIndex;
53
+ return cloneElement(child, { key: childKey });
54
+ });
55
+ });
56
+ return React__default.createElement(React__default.Fragment, null, children(childrenFills));
57
+ }
58
+ else {
59
+ return React__default.createElement(PluginRender, { ...fillProps, name: name, fills: fills });
60
+ }
61
+ }
62
+ /*
63
+ if (serverMode) {
64
+ const fills = (getFills(name, this) ?? [])
65
+ .map((fill: any, i) => {
66
+ // unregisterFill(name, fill);
67
+ if (typeof fill === 'function') {
68
+ const child = fill({...fillProps, key: i});
69
+ return <div data-slot-name={`slot-${name}`}>{child}</div>;
70
+ }
71
+ return null;
72
+ });
73
+ return fills;
23
74
  }
24
- }, [serverMode]);
25
- // const fills = (getFills(name) ?? [])
26
- // .map((fill: any, i) => {
27
- // if (serverMode) {
28
- // if (typeof fill === 'function') {
29
- // const child = fill({...fillProps, key: i});
30
- // return <div data-slot-name={`slot-${name}`}>{child}</div>;
31
- // }
32
- // return null;
33
- // } else {
34
- // const fillChildren: ReactElement = isFunction(fill.children) ? fill.children(fillProps) : fill.children;
35
- // return Children.map(fillChildren, (child, childIndex) => {
36
- // if (!child || typeof child === 'string') {
37
- // return child;
38
- // }
39
- // const childKey = child.key || childIndex;
40
- // return cloneElement(child, { key: childKey });
41
- // });
42
- // }
43
- // })
44
- // .filter(
45
- // // In some cases fills are rendered only when some conditions apply.
46
- // // This ensures that we only use non-empty fills when rendering, i.e.,
47
- // // it allows us to render wrappers only when the fills are actually present.
48
- // (element) => !isEmptyElement(element),
49
- // );
50
- const fills = getFills(name);
51
- if (fills.length > 0) {
52
- return React__default.createElement(PluginRender, { ...fillProps, name: name, fills: fills });
75
+ */
76
+ return null;
53
77
  }
54
- return null;
55
- };
78
+ }
56
79
  const Slot = (props) => {
57
- const serverMode = (typeof window === 'undefined');
80
+ const serverMode = typeof window === 'undefined';
58
81
  return (React__default.createElement(Consumer, null, ({ registerSlot, unregisterSlot, getFills }) => (React__default.createElement(SlotComponent, { ...props,
59
- // We need to add id to fillProps with slot name,
82
+ // We need to add id to fillProps with slot name,
60
83
  // so that we can use it when remove the component during hydration.
61
84
  getFills: getFills, registerSlot: registerSlot, unregisterSlot: unregisterSlot, serverMode: serverMode }))));
62
85
  };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":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ReactNode, Component } from 'react';
2
+ import { IPlugin } from '@common-stack/client-core';
2
3
  export type Name = string | Symbol;
3
4
  export interface IFillProps {
4
5
  name: Name;
@@ -82,3 +83,8 @@ export interface ISlotProps {
82
83
  */
83
84
  serverMode?: boolean;
84
85
  }
86
+ export interface ILoadedPlugin extends IPlugin {
87
+ index?: number;
88
+ Component?: React.ComponentType<any>;
89
+ loaderData?: Record<string, any>;
90
+ }
@@ -4,4 +4,4 @@
4
4
  * @param element React Component to check.
5
5
  * @returns True when an element is considered empty.
6
6
  */
7
- export declare const isEmptyElement: (element: any) => boolean;
7
+ export declare const isEmptyElement: (element: any) => any;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Checks if the provided element to check.
3
+ *
4
+ * @param element React Component to check.
5
+ * @returns True when an element is considered empty.
6
+ */
7
+ const isEmptyElement = (element) => {
8
+ if (typeof element === 'number') {
9
+ return false;
10
+ }
11
+ if (typeof element?.valueOf() === 'string' || Array.isArray(element)) {
12
+ return !element.length;
13
+ }
14
+ if (typeof element === 'object' && element !== null) {
15
+ return Object.keys(element).length === 0 || Object.values(element).every((value) => isEmptyElement(value));
16
+ }
17
+ return !element;
18
+ };export{isEmptyElement};//# sourceMappingURL=isEmptyElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isEmptyElement.js","sources":["../../../src/slot-fill/utils/isEmptyElement.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;AAKG;AAEU,MAAA,cAAc,GAAG,CAAC,OAAO,KAAI;AACtC,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK,CAAC;KAChB;AAED,IAAA,IAAI,OAAO,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAClE,QAAA,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;KAC1B;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;AACjD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9G;IAED,OAAO,CAAC,OAAO,CAAC;AACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@common-stack/components-pro",
3
- "version": "7.0.4-alpha.28",
3
+ "version": "7.1.1-alpha.14",
4
4
  "description": "browser plugin for git",
5
5
  "homepage": "https://github.com/cdmbase/fullstack-pro#readme",
6
6
  "bugs": {
@@ -24,13 +24,13 @@
24
24
  "build:lib:watch": "npm run build:lib -- --watch",
25
25
  "jest": "./node_modules/.bin/jest",
26
26
  "prepublish": "npm run build",
27
- "test": "jest",
27
+ "test": "vitest",
28
28
  "test:debug": "npm test -- --runInBand",
29
29
  "test:watch": "npm test -- --watch",
30
30
  "watch": "npm run build:lib:watch"
31
31
  },
32
32
  "dependencies": {
33
- "@common-stack/client-core": "7.0.4-alpha.17",
33
+ "@common-stack/client-core": "7.1.1-alpha.14",
34
34
  "@wordpress/element": "^5.30.0",
35
35
  "@wordpress/hooks": "^3.53.0",
36
36
  "@wordpress/is-shallow-equal": "^4.53.0",
@@ -50,8 +50,8 @@
50
50
  "publishConfig": {
51
51
  "access": "public"
52
52
  },
53
+ "gitHead": "7786ecfaab0098f0bbd2f0ee6979ae1cb2da89e1",
53
54
  "typescript": {
54
55
  "definition": "lib/index.d.ts"
55
- },
56
- "gitHead": "cd5e2a90eada6a941cead717336f4184cf432b01"
56
+ }
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,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"}