@blocklet/pages-kit 0.4.31 → 0.4.33
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/lib/cjs/api/call.js +7 -18
- package/lib/cjs/api/pages-kit.js +5 -17
- package/lib/cjs/builtin/async/react-scroll-to-bottom.js +5 -1
- package/lib/cjs/builtin/components/LanguageField/index.js +6 -18
- package/lib/cjs/builtin/iconify/react.js +1 -1
- package/lib/cjs/builtin/page/header.js +8 -5
- package/lib/cjs/builtin/session.js +6 -0
- package/lib/cjs/builtin/stream.js +1 -1
- package/lib/cjs/builtin/utils.js +3 -5
- package/lib/cjs/components/CustomComponentRenderer/BlockletReactComponentRenderer.js +5 -19
- package/lib/cjs/components/CustomComponentRenderer/DevProvider.js +2 -14
- package/lib/cjs/components/CustomComponentRenderer/ErrorComponent.js +2 -14
- package/lib/cjs/components/CustomComponentRenderer/index.js +12 -27
- package/lib/cjs/components/CustomComponentRenderer/state.js +121 -151
- package/lib/cjs/components/ResponsiveImage/index.js +3 -16
- package/lib/cjs/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/utils/inject-es-module-shims-options.js +1 -2
- package/lib/cjs/utils/inject-global-components-dump-json.js +1 -1
- package/lib/cjs/utils/inject-global-components.js +29 -20
- package/lib/cjs/utils/preload.js +1 -15
- package/lib/cjs/utils/property.js +31 -25
- package/lib/cjs/utils/typescript/builtin-module-transformer.js +12 -9
- package/lib/esm/api/call.js +7 -18
- package/lib/esm/api/pages-kit.js +5 -17
- package/lib/esm/builtin/async/react-scroll-to-bottom.js +5 -1
- package/lib/esm/builtin/components/LanguageField/index.js +6 -18
- package/lib/esm/builtin/iconify/react.js +1 -1
- package/lib/esm/builtin/page/header.js +8 -5
- package/lib/esm/builtin/session.js +5 -0
- package/lib/esm/builtin/stream.js +1 -1
- package/lib/esm/builtin/utils.js +3 -5
- package/lib/esm/components/CustomComponentRenderer/BlockletReactComponentRenderer.js +5 -19
- package/lib/esm/components/CustomComponentRenderer/DevProvider.js +2 -14
- package/lib/esm/components/CustomComponentRenderer/ErrorComponent.js +2 -14
- package/lib/esm/components/CustomComponentRenderer/index.js +12 -27
- package/lib/esm/components/CustomComponentRenderer/state.js +121 -151
- package/lib/esm/components/ResponsiveImage/index.js +3 -16
- package/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/lib/esm/utils/inject-es-module-shims-options.js +1 -2
- package/lib/esm/utils/inject-global-components-dump-json.js +1 -1
- package/lib/esm/utils/inject-global-components.js +29 -20
- package/lib/esm/utils/preload.js +1 -15
- package/lib/esm/utils/property.js +30 -25
- package/lib/esm/utils/typescript/builtin-module-transformer.js +10 -8
- package/lib/types/builtin/session.d.ts +13 -0
- package/lib/types/tsconfig.tsbuildinfo +1 -1
- package/lib/types/types/core.d.ts +11 -2
- package/lib/types/utils/property.d.ts +1 -0
- package/lib/types/utils/typescript/builtin-module-transformer.d.ts +1 -0
- package/package.json +3 -3
package/lib/cjs/api/call.js
CHANGED
|
@@ -1,23 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.preloadComponents = preloadComponents;
|
|
13
4
|
const component_1 = require("@blocklet/sdk/lib/component");
|
|
14
|
-
function preloadComponents(input) {
|
|
15
|
-
return
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}).then((res) => res.data);
|
|
22
|
-
});
|
|
5
|
+
async function preloadComponents(input) {
|
|
6
|
+
return (0, component_1.call)({
|
|
7
|
+
name: 'pages-kit',
|
|
8
|
+
method: 'POST',
|
|
9
|
+
path: '/api/components/preload',
|
|
10
|
+
data: input,
|
|
11
|
+
}).then((res) => res.data);
|
|
23
12
|
}
|
package/lib/cjs/api/pages-kit.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -16,12 +7,9 @@ exports.preloadComponents = preloadComponents;
|
|
|
16
7
|
const axios_1 = __importDefault(require("axios"));
|
|
17
8
|
const ufo_1 = require("ufo");
|
|
18
9
|
const PAGES_KIT_DID = 'z8iZiDFg3vkkrPwsiba1TLXy3H9XHzFERsP8o';
|
|
19
|
-
function preloadComponents(input) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
'/';
|
|
25
|
-
return axios_1.default.post((0, ufo_1.joinURL)(prefix, '/api/components/preload'), input).then((res) => res.data);
|
|
26
|
-
});
|
|
10
|
+
async function preloadComponents(input) {
|
|
11
|
+
const prefix = window.blocklet?.componentMountPoints.find((i) => i.did === PAGES_KIT_DID && i.status === 'running')?.mountPoint ||
|
|
12
|
+
window?.blocklet?.prefix ||
|
|
13
|
+
'/';
|
|
14
|
+
return axios_1.default.post((0, ufo_1.joinURL)(prefix, '/api/components/preload'), input).then((res) => res.data);
|
|
27
15
|
}
|
|
@@ -29,4 +29,8 @@ exports.default = () => Promise.all([
|
|
|
29
29
|
? // @ts-ignore
|
|
30
30
|
Promise.resolve().then(() => __importStar(require('react-scroll-to-bottom/lib/esm/hooks/internal/useInternalContext'))) : // @ts-ignore
|
|
31
31
|
Promise.resolve().then(() => __importStar(require('react-scroll-to-bottom/lib/hooks/internal/useInternalContext'))),
|
|
32
|
-
]).then(([mod, { default: useInternalContext }]) => (
|
|
32
|
+
]).then(([mod, { default: useInternalContext }]) => ({
|
|
33
|
+
...mod,
|
|
34
|
+
Composer: mod.Composer,
|
|
35
|
+
useInternalContext,
|
|
36
|
+
}));
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
@@ -30,18 +19,17 @@ const filter = (options, state) => {
|
|
|
30
19
|
return true;
|
|
31
20
|
});
|
|
32
21
|
};
|
|
33
|
-
const LanguageField = (0, react_2.forwardRef)((
|
|
34
|
-
var { readOnly, parameter, onChange } = _a, props = __rest(_a, ["readOnly", "parameter", "onChange"]);
|
|
22
|
+
const LanguageField = (0, react_2.forwardRef)(({ readOnly, parameter, onChange, ...props }, ref) => {
|
|
35
23
|
const { locale } = (0, context_1.useLocaleContext)();
|
|
36
|
-
const value =
|
|
37
|
-
return ((0, jsx_runtime_1.jsx)(material_1.Autocomplete,
|
|
24
|
+
const value = props?.value ? languages_1.languages.find((o) => o.en === props.value) : null;
|
|
25
|
+
return ((0, jsx_runtime_1.jsx)(material_1.Autocomplete, { size: "small", ref: ref, ...(0, pick_1.default)(props, 'autoFocus', 'fullWidth', 'sx', 'className', 'style'), renderInput: (params) => ((0, jsx_runtime_1.jsx)(material_1.TextField, { ...(0, pick_1.default)(props, 'inputRef', 'size', 'hiddenLabel', 'helperText', 'error', 'placeholder', 'InputProps', 'inputProps'), ...params })), options: languages_1.languages, getOptionKey: (i) => i.en, getOptionLabel: (o) => {
|
|
38
26
|
return locale === 'zh' ? o.cn : o.en;
|
|
39
27
|
}, autoHighlight: true, value: value, filterOptions: filter, onChange: (_e, newValue) => {
|
|
40
|
-
onChange
|
|
28
|
+
onChange?.(newValue?.en);
|
|
41
29
|
}, renderOption: (props, option) => {
|
|
42
|
-
return ((0, react_1.createElement)(material_1.MenuItem,
|
|
30
|
+
return ((0, react_1.createElement)(material_1.MenuItem, { ...props, key: option.name },
|
|
43
31
|
(0, jsx_runtime_1.jsx)(material_1.ListItemIcon, { children: (0, jsx_runtime_1.jsx)(option.flag, {}) }),
|
|
44
32
|
(0, jsx_runtime_1.jsx)(material_1.ListItemText, { primary: `${option.name} ${locale === 'zh' ? option.cn : option.en} (${option.abbr})` })));
|
|
45
|
-
} }))
|
|
33
|
+
} }));
|
|
46
34
|
});
|
|
47
35
|
exports.default = LanguageField;
|
|
@@ -5,6 +5,6 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("@iconify/react");
|
|
6
6
|
const material_1 = require("@mui/material");
|
|
7
7
|
function Icon(props) {
|
|
8
|
-
return (0, jsx_runtime_1.jsx)(material_1.Box,
|
|
8
|
+
return (0, jsx_runtime_1.jsx)(material_1.Box, { component: react_1.Icon, ...props });
|
|
9
9
|
}
|
|
10
10
|
exports.default = Icon;
|
|
@@ -26,12 +26,15 @@ exports.useHeaderState = (0, zustand_1.create)()((0, immer_2.immer)((set, get) =
|
|
|
26
26
|
for (const i of get().stack) {
|
|
27
27
|
widgets.push(i());
|
|
28
28
|
}
|
|
29
|
-
const r = widgets.reduce((res, i) => (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
const r = widgets.reduce((res, i) => ({
|
|
30
|
+
...res,
|
|
31
|
+
...i,
|
|
32
|
+
addons: (exists) => {
|
|
33
|
+
const a = res.addons?.(exists) ?? exists;
|
|
34
|
+
const b = i.addons?.(a) ?? a;
|
|
33
35
|
return b;
|
|
34
|
-
}
|
|
36
|
+
},
|
|
37
|
+
}), {});
|
|
35
38
|
set((state) => {
|
|
36
39
|
state.logo = r.logo;
|
|
37
40
|
state.description = r.description;
|
|
@@ -14,4 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.useSessionContext = useSessionContext;
|
|
18
|
+
const Session_1 = require("@arcblock/did-connect/lib/Session");
|
|
19
|
+
const react_1 = require("react");
|
|
17
20
|
__exportStar(require("@arcblock/did-connect/lib/Session"), exports);
|
|
21
|
+
function useSessionContext() {
|
|
22
|
+
return (0, react_1.useContext)(Session_1.SessionContext);
|
|
23
|
+
}
|
package/lib/cjs/builtin/utils.js
CHANGED
|
@@ -9,18 +9,16 @@ Object.defineProperty(exports, "joinURL", { enumerable: true, get: function () {
|
|
|
9
9
|
Object.defineProperty(exports, "withQuery", { enumerable: true, get: function () { return ufo_2.withQuery; } });
|
|
10
10
|
Object.defineProperty(exports, "getQuery", { enumerable: true, get: function () { return ufo_2.getQuery; } });
|
|
11
11
|
function getComponentMountPoint(name) {
|
|
12
|
-
var _a, _b;
|
|
13
12
|
if (typeof window === 'undefined') {
|
|
14
13
|
// eslint-disable-next-line global-require
|
|
15
14
|
return require('@blocklet/sdk/lib/component').getComponentMountPoint(name);
|
|
16
15
|
}
|
|
17
|
-
return
|
|
16
|
+
return globalThis.blocklet?.componentMountPoints.find((i) => i.name === name || i.did === name)?.mountPoint;
|
|
18
17
|
}
|
|
19
18
|
function getMediaKitAbsoluteUrl(url) {
|
|
20
|
-
|
|
21
|
-
const PREFIX = ((_a = window.blocklet) === null || _a === void 0 ? void 0 : _a.prefix) || '/';
|
|
19
|
+
const PREFIX = window.blocklet?.prefix || '/';
|
|
22
20
|
const IMAGE_BIN_DID = 'z8ia1mAXo8ZE7ytGF36L5uBf9kD2kenhqFGp9';
|
|
23
|
-
const IMAGE_BIN_PREFIX =
|
|
21
|
+
const IMAGE_BIN_PREFIX = blocklet?.componentMountPoints.find((i) => i.did === IMAGE_BIN_DID)?.mountPoint || (0, ufo_1.joinURL)(PREFIX, '/image-bin');
|
|
24
22
|
if (url && url.startsWith('mediakit://')) {
|
|
25
23
|
return window.location.origin + (0, ufo_1.joinURL)(IMAGE_BIN_PREFIX, 'uploads', url.replace('mediakit://', ''));
|
|
26
24
|
}
|
|
@@ -22,28 +22,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
26
|
-
var t = {};
|
|
27
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
28
|
-
t[p] = s[p];
|
|
29
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
30
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
31
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
32
|
-
t[p[i]] = s[p[i]];
|
|
33
|
-
}
|
|
34
|
-
return t;
|
|
35
|
-
};
|
|
36
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
26
|
exports.default = BlockletReactComponentRenderer;
|
|
38
27
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
28
|
const react_1 = __importStar(require("react"));
|
|
40
29
|
const utils_1 = require("../../builtin/utils");
|
|
41
|
-
function BlockletReactComponentRenderer(
|
|
42
|
-
var props = __rest(_a, []);
|
|
30
|
+
function BlockletReactComponentRenderer({ ...props }) {
|
|
43
31
|
const url = (0, react_1.useMemo)(() => {
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
const path = (_d = (_c = props.properties) === null || _c === void 0 ? void 0 : _c.componentPath) === null || _d === void 0 ? void 0 : _d.value;
|
|
32
|
+
const did = props.properties?.blockletDid?.value;
|
|
33
|
+
const path = props.properties?.componentPath?.value;
|
|
47
34
|
if (!did || !path)
|
|
48
35
|
return null;
|
|
49
36
|
return (0, utils_1.joinURL)(window.location.origin, (0, utils_1.getComponentMountPoint)(did), path);
|
|
@@ -52,11 +39,10 @@ function BlockletReactComponentRenderer(_a) {
|
|
|
52
39
|
throw new Error('Missing required properties `blockletDid` or `componentPath`');
|
|
53
40
|
}
|
|
54
41
|
const C = loadComponent(url);
|
|
55
|
-
return (0, jsx_runtime_1.jsx)(C,
|
|
42
|
+
return (0, jsx_runtime_1.jsx)(C, { ...props.props });
|
|
56
43
|
}
|
|
57
44
|
const COMPONENTS_CACHE = {};
|
|
58
45
|
function loadComponent(url) {
|
|
59
|
-
|
|
60
|
-
(_a = COMPONENTS_CACHE[url]) !== null && _a !== void 0 ? _a : (COMPONENTS_CACHE[url] = react_1.default.lazy(() => Promise.resolve(`${url}`).then(s => __importStar(require(s)))));
|
|
46
|
+
COMPONENTS_CACHE[url] ??= react_1.default.lazy(() => Promise.resolve(`${url}`).then(s => __importStar(require(s))));
|
|
61
47
|
return COMPONENTS_CACHE[url];
|
|
62
48
|
}
|
|
@@ -1,24 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.DevProvider = DevProvider;
|
|
15
4
|
exports.useDev = useDev;
|
|
16
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
17
6
|
const react_1 = require("react");
|
|
18
7
|
const devContext = (0, react_1.createContext)(undefined);
|
|
19
|
-
function DevProvider(
|
|
20
|
-
|
|
21
|
-
return (0, jsx_runtime_1.jsx)(devContext.Provider, Object.assign({ value: dev }, props));
|
|
8
|
+
function DevProvider({ dev, ...props }) {
|
|
9
|
+
return (0, jsx_runtime_1.jsx)(devContext.Provider, { value: dev, ...props });
|
|
22
10
|
}
|
|
23
11
|
function useDev() {
|
|
24
12
|
return (0, react_1.useContext)(devContext);
|
|
@@ -1,21 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.ComponentError = void 0;
|
|
15
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
5
|
const material_1 = require("@mui/material");
|
|
17
|
-
const ComponentError = (
|
|
18
|
-
var { title = 'Component Failed to Load', message, componentId, componentName, blockletId, blockletTitle, showHints = false, error, resetErrorBoundary } = _a, rest = __rest(_a, ["title", "message", "componentId", "componentName", "blockletId", "blockletTitle", "showHints", "error", "resetErrorBoundary"]);
|
|
6
|
+
const ComponentError = ({ title = 'Component Failed to Load', message, componentId, componentName, blockletId, blockletTitle, showHints = false, error, resetErrorBoundary, ...rest }) => {
|
|
19
7
|
// 如果提供了error但没有message,使用error.message
|
|
20
8
|
const displayMessage = message || (error ? error.message : 'Unknown error');
|
|
21
9
|
console.warn(rest);
|
|
@@ -35,6 +23,6 @@ const ComponentError = (_a) => {
|
|
|
35
23
|
fontSize: '0.75rem',
|
|
36
24
|
overflow: 'auto',
|
|
37
25
|
maxHeight: '200px',
|
|
38
|
-
}, children: error.stack })), showHints && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "body2", sx: { color: 'text.secondary' }, children: "Please try the following:" }), (0, jsx_runtime_1.jsxs)(material_1.Box, { component: "ul", sx: { m: 0, pl: 2 }, children: [componentId && ((0, jsx_runtime_1.jsxs)(material_1.Typography, { component: "li", variant: "body2", sx: { color: 'text.secondary' }, children: ["Select component", ' ', (0, jsx_runtime_1.jsx)(material_1.Box, { component: "span", sx: { fontWeight: 500 }, children: componentName
|
|
26
|
+
}, children: error.stack })), showHints && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "body2", sx: { color: 'text.secondary' }, children: "Please try the following:" }), (0, jsx_runtime_1.jsxs)(material_1.Box, { component: "ul", sx: { m: 0, pl: 2 }, children: [componentId && ((0, jsx_runtime_1.jsxs)(material_1.Typography, { component: "li", variant: "body2", sx: { color: 'text.secondary' }, children: ["Select component", ' ', (0, jsx_runtime_1.jsx)(material_1.Box, { component: "span", sx: { fontWeight: 500 }, children: componentName ?? componentId }), ' ', "in settings or create this component."] })), (blockletId || blockletTitle) && ((0, jsx_runtime_1.jsxs)(material_1.Typography, { component: "li", variant: "body2", sx: { color: 'text.secondary' }, children: ["Contact administrator to install", ' ', (0, jsx_runtime_1.jsx)(material_1.Box, { component: "span", sx: { fontWeight: 500 }, children: blockletTitle ?? blockletId }), ' ', "Blocklet"] }))] })] })), resetErrorBoundary && ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: { mt: 2 }, children: (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "outlined", color: "error", size: "small", onClick: resetErrorBoundary, children: "Try Again" }) }))] }));
|
|
39
27
|
};
|
|
40
28
|
exports.ComponentError = ComponentError;
|
|
@@ -13,17 +13,6 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
13
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
17
|
-
var t = {};
|
|
18
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
19
|
-
t[p] = s[p];
|
|
20
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
21
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
22
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
23
|
-
t[p[i]] = s[p[i]];
|
|
24
|
-
}
|
|
25
|
-
return t;
|
|
26
|
-
};
|
|
27
16
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
28
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
18
|
};
|
|
@@ -40,40 +29,36 @@ const state_1 = require("./state");
|
|
|
40
29
|
__exportStar(require("./state"), exports);
|
|
41
30
|
__exportStar(require("./context"), exports);
|
|
42
31
|
const MAXIMUM_RENDER_STACK_SIZE = 20;
|
|
43
|
-
function CustomComponentRenderer(
|
|
44
|
-
var _b;
|
|
45
|
-
var { dev } = _a, props = __rest(_a, ["dev"]);
|
|
32
|
+
function CustomComponentRenderer({ dev, ...props }) {
|
|
46
33
|
const inheritedDev = (0, DevProvider_1.useDev)();
|
|
47
34
|
const BuiltinComponent = BuiltinComponents[props.componentId];
|
|
48
|
-
return ((0, jsx_runtime_1.jsx)(react_error_boundary_1.ErrorBoundary, { FallbackComponent:
|
|
35
|
+
return ((0, jsx_runtime_1.jsx)(react_error_boundary_1.ErrorBoundary, { FallbackComponent: props?.fallbackRender || ErrorComponent_1.ComponentError, resetKeys: [Date.now()], children: (0, jsx_runtime_1.jsx)(DevProvider_1.DevProvider, { dev: dev ?? inheritedDev, children: BuiltinComponent ? ((0, jsx_runtime_1.jsx)(BuiltinComponent, { ...props })) : ((0, jsx_runtime_1.jsx)(ComponentRenderer, { ...props, instanceId: props.instanceId ?? props.componentId, renderType: props.renderType })) }) }));
|
|
49
36
|
}
|
|
50
37
|
const BuiltinComponents = {
|
|
51
38
|
'blocklet-react-component': BlockletReactComponentRenderer_1.default,
|
|
52
39
|
};
|
|
53
|
-
function ComponentRenderer(
|
|
54
|
-
var _b;
|
|
55
|
-
var { renderCount = 0, blockletId, blockletTitle, componentName, renderType = 'view' } = _a, props = __rest(_a, ["renderCount", "blockletId", "blockletTitle", "componentName", "renderType"]);
|
|
40
|
+
function ComponentRenderer({ renderCount = 0, blockletId, blockletTitle, componentName, renderType = 'view', ...props }) {
|
|
56
41
|
const dev = (0, DevProvider_1.useDev)();
|
|
57
42
|
if (renderCount > MAXIMUM_RENDER_STACK_SIZE) {
|
|
58
43
|
throw new Error('Maximum render stack size exceeded');
|
|
59
44
|
}
|
|
60
|
-
const component = (0, state_1.useComponent)(
|
|
45
|
+
const component = (0, state_1.useComponent)({ ...props, dev });
|
|
61
46
|
const ctx = (0, context_1.useCustomComponentRenderer)();
|
|
62
|
-
if (component
|
|
47
|
+
if (component?.error) {
|
|
63
48
|
throw component.error;
|
|
64
49
|
}
|
|
65
50
|
const renderComponentChildren = (Component) => {
|
|
66
|
-
const children = ((0, jsx_runtime_1.jsx)(Renderer,
|
|
67
|
-
return
|
|
51
|
+
const children = ((0, jsx_runtime_1.jsx)(Renderer, { renderCount: renderCount + 1, ...props, Component: Component, props: { ...component?.props, ...props.props } }));
|
|
52
|
+
return ctx?.customRendererComponent ? ((0, jsx_runtime_1.jsx)(ctx.customRendererComponent, { Component: Component, children: children })) : (children);
|
|
68
53
|
};
|
|
69
|
-
if (
|
|
54
|
+
if (component?.Component && renderType === 'view') {
|
|
70
55
|
return renderComponentChildren(component.Component);
|
|
71
56
|
}
|
|
72
|
-
if (
|
|
57
|
+
if (component?.EditComponent && renderType === 'setting') {
|
|
73
58
|
return renderComponentChildren(component.EditComponent);
|
|
74
59
|
}
|
|
75
60
|
// if the component is not in the dev.components, it means the component is not loaded
|
|
76
|
-
if (
|
|
61
|
+
if (dev?.mode === 'draft' && dev && dev.components?.[props.componentId] === undefined) {
|
|
77
62
|
return ((0, jsx_runtime_1.jsx)(ErrorComponent_1.ComponentError, { componentId: props.componentId, componentName: componentName, blockletId: blockletId, blockletTitle: blockletTitle, message: "Component not found in available components", showHints: true }));
|
|
78
63
|
}
|
|
79
64
|
return null;
|
|
@@ -82,8 +67,8 @@ function Renderer({ renderCount, Component, locale, props, }) {
|
|
|
82
67
|
const componentProps = Object.fromEntries(Object.entries(props).map(([key, val]) => {
|
|
83
68
|
return [
|
|
84
69
|
key,
|
|
85
|
-
|
|
70
|
+
val?.type === property_1.RenderNestedComponent ? ((0, jsx_runtime_1.jsx)(ComponentRenderer, { locale: locale, renderCount: renderCount, componentId: val.componentId, properties: val.properties, props: val.props })) : (val),
|
|
86
71
|
];
|
|
87
72
|
}));
|
|
88
|
-
return (0, jsx_runtime_1.jsx)(Component,
|
|
73
|
+
return (0, jsx_runtime_1.jsx)(Component, { locale: locale, ...componentProps });
|
|
89
74
|
}
|