piral-core 1.6.0-beta.7142 → 1.6.0-beta.7147
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/esm/RootListener.js +14 -4
- package/esm/RootListener.js.map +1 -1
- package/esm/components/ExtensionSlot.js +1 -1
- package/esm/components/ExtensionSlot.js.map +1 -1
- package/esm/types/extension.d.ts +1 -1
- package/lib/RootListener.js +14 -4
- package/lib/RootListener.js.map +1 -1
- package/lib/components/ExtensionSlot.js +1 -1
- package/lib/components/ExtensionSlot.js.map +1 -1
- package/lib/types/extension.d.ts +1 -1
- package/package.json +4 -4
- package/src/RootListener.tsx +15 -4
- package/src/components/ExtensionSlot.tsx +1 -1
- package/src/types/extension.ts +1 -1
package/esm/RootListener.js
CHANGED
|
@@ -2,6 +2,9 @@ import * as React from 'react';
|
|
|
2
2
|
import { createPortal } from 'react-dom';
|
|
3
3
|
import { useGlobalStateContext } from './hooks';
|
|
4
4
|
import { renderElement } from './modules';
|
|
5
|
+
const renderHtmlEvent = 'render-html';
|
|
6
|
+
const renderContentEvent = 'render-content';
|
|
7
|
+
const forwardEventEvent = 'forward-event';
|
|
5
8
|
export const RootListener = () => {
|
|
6
9
|
const context = useGlobalStateContext();
|
|
7
10
|
React.useLayoutEffect(() => {
|
|
@@ -21,11 +24,18 @@ export const RootListener = () => {
|
|
|
21
24
|
context.showPortal(portalId, portal);
|
|
22
25
|
target.dispose = dispose;
|
|
23
26
|
};
|
|
24
|
-
|
|
25
|
-
|
|
27
|
+
const forwardEvent = (ev) => {
|
|
28
|
+
ev.stopPropagation();
|
|
29
|
+
const { type, args } = ev.detail;
|
|
30
|
+
context.emit(type, args);
|
|
31
|
+
};
|
|
32
|
+
document.body.addEventListener(renderHtmlEvent, renderHtml, false);
|
|
33
|
+
document.body.addEventListener(forwardEventEvent, forwardEvent, false);
|
|
34
|
+
window.addEventListener(renderContentEvent, renderContent, false);
|
|
26
35
|
return () => {
|
|
27
|
-
document.body.removeEventListener(
|
|
28
|
-
|
|
36
|
+
document.body.removeEventListener(renderHtmlEvent, renderHtml, false);
|
|
37
|
+
document.body.removeEventListener(forwardEventEvent, forwardEvent, false);
|
|
38
|
+
window.removeEventListener(renderContentEvent, renderContent, false);
|
|
29
39
|
};
|
|
30
40
|
}
|
|
31
41
|
}, [context]);
|
package/esm/RootListener.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RootListener.js","sourceRoot":"","sources":["../src/RootListener.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,CAAC,MAAM,YAAY,GAAa,GAAG,EAAE;IACzC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IAExC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACnC,MAAM,UAAU,GAAG,CAAC,EAAe,EAAE,EAAE;gBACrC,EAAE,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;gBACpC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAChE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC,CAAC;YACF,MAAM,aAAa,GAAG,CAAC,EAAe,EAAE,EAAE;gBACxC,EAAE,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;gBAChD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC3D,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACrC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,CAAC,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"RootListener.js","sourceRoot":"","sources":["../src/RootListener.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,eAAe,GAAG,aAAa,CAAC;AACtC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAC5C,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C,MAAM,CAAC,MAAM,YAAY,GAAa,GAAG,EAAE;IACzC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IAExC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACnC,MAAM,UAAU,GAAG,CAAC,EAAe,EAAE,EAAE;gBACrC,EAAE,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;gBACpC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAChE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC,CAAC;YACF,MAAM,aAAa,GAAG,CAAC,EAAe,EAAE,EAAE;gBACxC,EAAE,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;gBAChD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC3D,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACrC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,CAAC,CAAC;YACF,MAAM,YAAY,GAAG,CAAC,EAAe,EAAE,EAAE;gBACvC,EAAE,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAElE,OAAO,GAAG,EAAE;gBACV,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBACtE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC1E,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACvE,CAAC,CAAC;SACH;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -15,7 +15,7 @@ export function ExtensionSlot(props) {
|
|
|
15
15
|
const extensions = useGlobalState((s) => s.registry.extensions[name] || none);
|
|
16
16
|
const isEmpty = extensions.length === 0 && isfunc(empty);
|
|
17
17
|
const content = isEmpty
|
|
18
|
-
? [defaultRender(empty(), 'empty')]
|
|
18
|
+
? [defaultRender(empty(params), 'empty')]
|
|
19
19
|
: order(extensions).map(({ component: Component, reference, defaults = {} }, i) => (React.createElement(Component, { key: `${reference?.displayName || '_'}${i}`, children: children, params: {
|
|
20
20
|
...defaults,
|
|
21
21
|
...params,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionSlot.js","sourceRoot":"","sources":["../../src/components/ExtensionSlot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAG/C,SAAS,YAAY,CAAC,UAAwC;IAC5D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAmB,KAA4B;IAC1E,MAAM,EACJ,IAAI,EACJ,MAAM,GAAG,aAAa,EACtB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,KAAK,GAAG,YAAY,GACrB,GAAG,KAAK,CAAC;IACV,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"ExtensionSlot.js","sourceRoot":"","sources":["../../src/components/ExtensionSlot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAG/C,SAAS,YAAY,CAAC,UAAwC;IAC5D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAmB,KAA4B;IAC1E,MAAM,EACJ,IAAI,EACJ,MAAM,GAAG,aAAa,EACtB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,KAAK,GAAG,YAAY,GACrB,GAAG,KAAK,CAAC;IACV,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAC/E,oBAAC,SAAS,IACR,GAAG,EAAE,GAAG,SAAS,EAAE,WAAW,IAAI,GAAG,GAAG,CAAC,EAAE,EAC3C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE;gBACN,GAAG,QAAQ;gBACX,GAAG,MAAM;aACV,GACD,CACH,CAAC,CAAC;IAEP,IAAI,OAAO,IAAI,gBAAgB,EAAE;QAC/B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC"}
|
package/esm/types/extension.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export interface BaseExtensionSlotProps<TName, TParams> {
|
|
|
18
18
|
* Defines what should be rendered when no components are available
|
|
19
19
|
* for the specified extension.
|
|
20
20
|
*/
|
|
21
|
-
empty?(): ReactNode;
|
|
21
|
+
empty?(props: TParams): ReactNode;
|
|
22
22
|
/**
|
|
23
23
|
* Determines if the `render` function should be called in case no
|
|
24
24
|
* components are available for the specified extension.
|
package/lib/RootListener.js
CHANGED
|
@@ -6,6 +6,9 @@ const React = tslib_1.__importStar(require("react"));
|
|
|
6
6
|
const react_dom_1 = require("react-dom");
|
|
7
7
|
const hooks_1 = require("./hooks");
|
|
8
8
|
const modules_1 = require("./modules");
|
|
9
|
+
const renderHtmlEvent = 'render-html';
|
|
10
|
+
const renderContentEvent = 'render-content';
|
|
11
|
+
const forwardEventEvent = 'forward-event';
|
|
9
12
|
const RootListener = () => {
|
|
10
13
|
const context = (0, hooks_1.useGlobalStateContext)();
|
|
11
14
|
React.useLayoutEffect(() => {
|
|
@@ -25,11 +28,18 @@ const RootListener = () => {
|
|
|
25
28
|
context.showPortal(portalId, portal);
|
|
26
29
|
target.dispose = dispose;
|
|
27
30
|
};
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
const forwardEvent = (ev) => {
|
|
32
|
+
ev.stopPropagation();
|
|
33
|
+
const { type, args } = ev.detail;
|
|
34
|
+
context.emit(type, args);
|
|
35
|
+
};
|
|
36
|
+
document.body.addEventListener(renderHtmlEvent, renderHtml, false);
|
|
37
|
+
document.body.addEventListener(forwardEventEvent, forwardEvent, false);
|
|
38
|
+
window.addEventListener(renderContentEvent, renderContent, false);
|
|
30
39
|
return () => {
|
|
31
|
-
document.body.removeEventListener(
|
|
32
|
-
|
|
40
|
+
document.body.removeEventListener(renderHtmlEvent, renderHtml, false);
|
|
41
|
+
document.body.removeEventListener(forwardEventEvent, forwardEvent, false);
|
|
42
|
+
window.removeEventListener(renderContentEvent, renderContent, false);
|
|
33
43
|
};
|
|
34
44
|
}
|
|
35
45
|
}, [context]);
|
package/lib/RootListener.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RootListener.js","sourceRoot":"","sources":["../src/RootListener.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,yCAAyC;AACzC,mCAAgD;AAChD,uCAA0C;AAEnC,MAAM,YAAY,GAAa,GAAG,EAAE;IACzC,MAAM,OAAO,GAAG,IAAA,6BAAqB,GAAE,CAAC;IAExC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACnC,MAAM,UAAU,GAAG,CAAC,EAAe,EAAE,EAAE;gBACrC,EAAE,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;gBACpC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAA,uBAAa,EAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAChE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC,CAAC;YACF,MAAM,aAAa,GAAG,CAAC,EAAe,EAAE,EAAE;gBACxC,EAAE,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;gBAChD,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC3D,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACrC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,CAAC,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"RootListener.js","sourceRoot":"","sources":["../src/RootListener.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,yCAAyC;AACzC,mCAAgD;AAChD,uCAA0C;AAE1C,MAAM,eAAe,GAAG,aAAa,CAAC;AACtC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAC5C,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEnC,MAAM,YAAY,GAAa,GAAG,EAAE;IACzC,MAAM,OAAO,GAAG,IAAA,6BAAqB,GAAE,CAAC;IAExC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACnC,MAAM,UAAU,GAAG,CAAC,EAAe,EAAE,EAAE;gBACrC,EAAE,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;gBACpC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAA,uBAAa,EAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAChE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC,CAAC;YACF,MAAM,aAAa,GAAG,CAAC,EAAe,EAAE,EAAE;gBACxC,EAAE,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;gBAChD,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC3D,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACrC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,CAAC,CAAC;YACF,MAAM,YAAY,GAAG,CAAC,EAAe,EAAE,EAAE;gBACvC,EAAE,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAElE,OAAO,GAAG,EAAE;gBACV,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBACtE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC1E,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACvE,CAAC,CAAC;SACH;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAtCW,QAAA,YAAY,gBAsCvB"}
|
|
@@ -19,7 +19,7 @@ function ExtensionSlot(props) {
|
|
|
19
19
|
const extensions = (0, hooks_1.useGlobalState)((s) => s.registry.extensions[name] || utils_1.none);
|
|
20
20
|
const isEmpty = extensions.length === 0 && (0, piral_base_1.isfunc)(empty);
|
|
21
21
|
const content = isEmpty
|
|
22
|
-
? [(0, utils_1.defaultRender)(empty(), 'empty')]
|
|
22
|
+
? [(0, utils_1.defaultRender)(empty(params), 'empty')]
|
|
23
23
|
: order(extensions).map(({ component: Component, reference, defaults = {} }, i) => (React.createElement(Component, { key: `${reference?.displayName || '_'}${i}`, children: children, params: {
|
|
24
24
|
...defaults,
|
|
25
25
|
...params,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionSlot.js","sourceRoot":"","sources":["../../src/components/ExtensionSlot.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,2CAAoC;AACpC,oCAA0C;AAC1C,oCAA+C;AAG/C,SAAS,YAAY,CAAC,UAAwC;IAC5D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAmB,KAA4B;IAC1E,MAAM,EACJ,IAAI,EACJ,MAAM,GAAG,qBAAa,EACtB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,KAAK,GAAG,YAAY,GACrB,GAAG,KAAK,CAAC;IACV,MAAM,UAAU,GAAG,IAAA,sBAAc,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,YAAI,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,IAAA,mBAAM,EAAC,KAAK,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"ExtensionSlot.js","sourceRoot":"","sources":["../../src/components/ExtensionSlot.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,2CAAoC;AACpC,oCAA0C;AAC1C,oCAA+C;AAG/C,SAAS,YAAY,CAAC,UAAwC;IAC5D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAmB,KAA4B;IAC1E,MAAM,EACJ,IAAI,EACJ,MAAM,GAAG,qBAAa,EACtB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,KAAK,GAAG,YAAY,GACrB,GAAG,KAAK,CAAC;IACV,MAAM,UAAU,GAAG,IAAA,sBAAc,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,YAAI,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,IAAA,mBAAM,EAAC,KAAK,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAC/E,oBAAC,SAAS,IACR,GAAG,EAAE,GAAG,SAAS,EAAE,WAAW,IAAI,GAAG,GAAG,CAAC,EAAE,EAC3C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE;gBACN,GAAG,QAAQ;gBACX,GAAG,MAAM;aACV,GACD,CACH,CAAC,CAAC;IAEP,IAAI,OAAO,IAAI,gBAAgB,EAAE;QAC/B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AA9BD,sCA8BC;AAED,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC"}
|
package/lib/types/extension.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export interface BaseExtensionSlotProps<TName, TParams> {
|
|
|
18
18
|
* Defines what should be rendered when no components are available
|
|
19
19
|
* for the specified extension.
|
|
20
20
|
*/
|
|
21
|
-
empty?(): ReactNode;
|
|
21
|
+
empty?(props: TParams): ReactNode;
|
|
22
22
|
/**
|
|
23
23
|
* Determines if the `render` function should be called in case no
|
|
24
24
|
* components are available for the specified extension.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-core",
|
|
3
|
-
"version": "1.6.0-beta.
|
|
3
|
+
"version": "1.6.0-beta.7147",
|
|
4
4
|
"description": "The core library for creating a Piral instance.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"portal",
|
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
75
|
"path-to-regexp": "^1.8.0",
|
|
76
|
-
"piral-base": "1.6.0-beta.
|
|
77
|
-
"piral-debug-utils": "1.6.0-beta.
|
|
76
|
+
"piral-base": "1.6.0-beta.7147",
|
|
77
|
+
"piral-debug-utils": "1.6.0-beta.7147",
|
|
78
78
|
"zustand": "^3.0.0"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
@@ -94,5 +94,5 @@
|
|
|
94
94
|
"react-router-dom",
|
|
95
95
|
"tslib"
|
|
96
96
|
],
|
|
97
|
-
"gitHead": "
|
|
97
|
+
"gitHead": "d626400cfcbc7585f89f3678f45a2211a35af2b0"
|
|
98
98
|
}
|
package/src/RootListener.tsx
CHANGED
|
@@ -3,6 +3,10 @@ import { createPortal } from 'react-dom';
|
|
|
3
3
|
import { useGlobalStateContext } from './hooks';
|
|
4
4
|
import { renderElement } from './modules';
|
|
5
5
|
|
|
6
|
+
const renderHtmlEvent = 'render-html';
|
|
7
|
+
const renderContentEvent = 'render-content';
|
|
8
|
+
const forwardEventEvent = 'forward-event';
|
|
9
|
+
|
|
6
10
|
export const RootListener: React.FC = () => {
|
|
7
11
|
const context = useGlobalStateContext();
|
|
8
12
|
|
|
@@ -23,12 +27,19 @@ export const RootListener: React.FC = () => {
|
|
|
23
27
|
context.showPortal(portalId, portal);
|
|
24
28
|
target.dispose = dispose;
|
|
25
29
|
};
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
const forwardEvent = (ev: CustomEvent) => {
|
|
31
|
+
ev.stopPropagation();
|
|
32
|
+
const { type, args } = ev.detail;
|
|
33
|
+
context.emit(type, args);
|
|
34
|
+
};
|
|
35
|
+
document.body.addEventListener(renderHtmlEvent, renderHtml, false);
|
|
36
|
+
document.body.addEventListener(forwardEventEvent, forwardEvent, false);
|
|
37
|
+
window.addEventListener(renderContentEvent, renderContent, false);
|
|
28
38
|
|
|
29
39
|
return () => {
|
|
30
|
-
document.body.removeEventListener(
|
|
31
|
-
|
|
40
|
+
document.body.removeEventListener(renderHtmlEvent, renderHtml, false);
|
|
41
|
+
document.body.removeEventListener(forwardEventEvent, forwardEvent, false);
|
|
42
|
+
window.removeEventListener(renderContentEvent, renderContent, false);
|
|
32
43
|
};
|
|
33
44
|
}
|
|
34
45
|
}, [context]);
|
|
@@ -26,7 +26,7 @@ export function ExtensionSlot<T extends string>(props: ExtensionSlotProps<T>) {
|
|
|
26
26
|
const extensions = useGlobalState((s) => s.registry.extensions[name] || none);
|
|
27
27
|
const isEmpty = extensions.length === 0 && isfunc(empty);
|
|
28
28
|
const content = isEmpty
|
|
29
|
-
? [defaultRender(empty(), 'empty')]
|
|
29
|
+
? [defaultRender(empty(params), 'empty')]
|
|
30
30
|
: order(extensions).map(({ component: Component, reference, defaults = {} }, i) => (
|
|
31
31
|
<Component
|
|
32
32
|
key={`${reference?.displayName || '_'}${i}`}
|
package/src/types/extension.ts
CHANGED
|
@@ -19,7 +19,7 @@ export interface BaseExtensionSlotProps<TName, TParams> {
|
|
|
19
19
|
* Defines what should be rendered when no components are available
|
|
20
20
|
* for the specified extension.
|
|
21
21
|
*/
|
|
22
|
-
empty?(): ReactNode;
|
|
22
|
+
empty?(props: TParams): ReactNode;
|
|
23
23
|
/**
|
|
24
24
|
* Determines if the `render` function should be called in case no
|
|
25
25
|
* components are available for the specified extension.
|