@next-core/runtime 1.44.1 → 1.44.3
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/dist/cjs/CustomProcessors.js.map +1 -1
- package/dist/cjs/CustomTemplates.js +7 -11
- package/dist/cjs/CustomTemplates.js.map +1 -1
- package/dist/cjs/createRoot.js +11 -5
- package/dist/cjs/createRoot.js.map +1 -1
- package/dist/cjs/getPageInfo.js.map +1 -1
- package/dist/cjs/handleHttpError.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js +4 -5
- package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +4 -7
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js +21 -24
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js +4 -7
- package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/utils.js +3 -3
- package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js +3 -3
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js.map +1 -1
- package/dist/cjs/internal/FormRenderer/utils.js +2 -2
- package/dist/cjs/internal/FormRenderer/utils.js.map +1 -1
- package/dist/cjs/internal/Renderer.js +11 -14
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/RendererContext.js +8 -10
- package/dist/cjs/internal/RendererContext.js.map +1 -1
- package/dist/cjs/internal/Router.js +3 -0
- package/dist/cjs/internal/Router.js.map +1 -1
- package/dist/cjs/internal/Runtime.js +14 -14
- package/dist/cjs/internal/Runtime.js.map +1 -1
- package/dist/cjs/internal/bindListeners.js +2 -3
- package/dist/cjs/internal/bindListeners.js.map +1 -1
- package/dist/cjs/internal/compute/WidgetFunctions.js.map +1 -1
- package/dist/cjs/internal/compute/evaluate.js +4 -4
- package/dist/cjs/internal/compute/evaluate.js.map +1 -1
- package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -1
- package/dist/cjs/internal/compute/getStorageItem.js +1 -2
- package/dist/cjs/internal/compute/getStorageItem.js.map +1 -1
- package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/cjs/internal/compute/setRealProperties.js.map +1 -1
- package/dist/cjs/internal/data/DataStore.js.map +1 -1
- package/dist/cjs/internal/data/getProviderBrick.js.map +1 -1
- package/dist/cjs/internal/data/realTimeDataInspect.js.map +1 -1
- package/dist/cjs/internal/data/resolveData.js.map +1 -1
- package/dist/cjs/internal/data/resolveDataStore.js +2 -4
- package/dist/cjs/internal/data/resolveDataStore.js.map +1 -1
- package/dist/cjs/internal/hasInstalledApp.js.map +1 -1
- package/dist/cjs/internal/historyExtended.js.map +1 -1
- package/dist/cjs/internal/matchPath.js.map +1 -1
- package/dist/cjs/internal/matchRoutes.js.map +1 -1
- package/dist/cjs/internal/matchStoryboard.js +2 -2
- package/dist/cjs/internal/matchStoryboard.js.map +1 -1
- package/dist/cjs/internal/mediaQuery.js.map +1 -1
- package/dist/cjs/internal/mount.js.map +1 -1
- package/dist/cjs/internal/poll.js +3 -3
- package/dist/cjs/internal/poll.js.map +1 -1
- package/dist/cjs/internal/registerAppI18n.js.map +1 -1
- package/dist/cjs/internal/registerCustomTemplates.js.map +1 -1
- package/dist/cjs/internal/secret_internals.js +4 -4
- package/dist/cjs/internal/secret_internals.js.map +1 -1
- package/dist/cjs/internal/setupRootRuntimeContext.js +2 -3
- package/dist/cjs/internal/setupRootRuntimeContext.js.map +1 -1
- package/dist/cjs/isStrictMode.js.map +1 -1
- package/dist/cjs/setLoginStateCookie.js.map +1 -1
- package/dist/cjs/setWatermark.js +4 -4
- package/dist/cjs/setWatermark.js.map +1 -1
- package/dist/cjs/themeAndMode.js +1 -2
- package/dist/cjs/themeAndMode.js.map +1 -1
- package/dist/esm/CustomProcessors.js +5 -5
- package/dist/esm/CustomProcessors.js.map +1 -1
- package/dist/esm/CustomTemplates.js +48 -58
- package/dist/esm/CustomTemplates.js.map +1 -1
- package/dist/esm/Dialog.js +3 -3
- package/dist/esm/Dialog.js.map +1 -1
- package/dist/esm/Notification.js +2 -2
- package/dist/esm/Notification.js.map +1 -1
- package/dist/esm/StoryboardFunctionRegistry.js +18 -18
- package/dist/esm/StoryboardFunctionRegistry.js.map +1 -1
- package/dist/esm/createRoot.js +125 -123
- package/dist/esm/createRoot.js.map +1 -1
- package/dist/esm/fetchByProvider.js +3 -10
- package/dist/esm/fetchByProvider.js.map +1 -1
- package/dist/esm/getBasePath.js +2 -2
- package/dist/esm/getBasePath.js.map +1 -1
- package/dist/esm/getPageInfo.js +5 -5
- package/dist/esm/getPageInfo.js.map +1 -1
- package/dist/esm/getRealValue.js +7 -6
- package/dist/esm/getRealValue.js.map +1 -1
- package/dist/esm/getV2RuntimeFromDll.js +1 -1
- package/dist/esm/getV2RuntimeFromDll.js.map +1 -1
- package/dist/esm/handleHttpError.js +11 -11
- package/dist/esm/handleHttpError.js.map +1 -1
- package/dist/esm/history.js +4 -4
- package/dist/esm/history.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +13 -17
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/constants.js +5 -5
- package/dist/esm/internal/CustomTemplates/constants.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +41 -42
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +43 -46
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js +16 -18
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/utils.js +8 -8
- package/dist/esm/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/esm/internal/FormRenderer/constants.js +2 -2
- package/dist/esm/internal/FormRenderer/constants.js.map +1 -1
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js +28 -23
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js.map +1 -1
- package/dist/esm/internal/FormRenderer/getDefaultProperties.js +45 -22
- package/dist/esm/internal/FormRenderer/getDefaultProperties.js.map +1 -1
- package/dist/esm/internal/FormRenderer/utils.js +4 -4
- package/dist/esm/internal/FormRenderer/utils.js.map +1 -1
- package/dist/esm/internal/Renderer.js +517 -577
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/RendererContext.js +132 -148
- package/dist/esm/internal/RendererContext.js.map +1 -1
- package/dist/esm/internal/Router.js +325 -343
- package/dist/esm/internal/Router.js.map +1 -1
- package/dist/esm/internal/Runtime.js +53 -51
- package/dist/esm/internal/Runtime.js.map +1 -1
- package/dist/esm/internal/abortController.js +7 -6
- package/dist/esm/internal/abortController.js.map +1 -1
- package/dist/esm/internal/bindListeners.js +136 -156
- package/dist/esm/internal/bindListeners.js.map +1 -1
- package/dist/esm/internal/compute/StoryboardFunctions.js +1 -1
- package/dist/esm/internal/compute/StoryboardFunctions.js.map +1 -1
- package/dist/esm/internal/compute/WidgetFunctions.js +6 -6
- package/dist/esm/internal/compute/WidgetFunctions.js.map +1 -1
- package/dist/esm/internal/compute/WidgetI18n.js +4 -4
- package/dist/esm/internal/compute/WidgetI18n.js.map +1 -1
- package/dist/esm/internal/compute/checkIf.js +10 -23
- package/dist/esm/internal/compute/checkIf.js.map +1 -1
- package/dist/esm/internal/compute/computeRealProperties.js +22 -35
- package/dist/esm/internal/compute/computeRealProperties.js.map +1 -1
- package/dist/esm/internal/compute/computeRealValue.js +42 -49
- package/dist/esm/internal/compute/computeRealValue.js.map +1 -1
- package/dist/esm/internal/compute/evaluate.js +71 -75
- package/dist/esm/internal/compute/evaluate.js.map +1 -1
- package/dist/esm/internal/compute/getGeneralGlobals.js +5 -5
- package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -1
- package/dist/esm/internal/compute/getNextStateOfUseBrick.js +1 -1
- package/dist/esm/internal/compute/getStorageItem.js +2 -3
- package/dist/esm/internal/compute/getStorageItem.js.map +1 -1
- package/dist/esm/internal/compute/getTracks.js +5 -5
- package/dist/esm/internal/compute/getTracks.js.map +1 -1
- package/dist/esm/internal/compute/listenOnTrackingContext.js +8 -11
- package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/esm/internal/compute/markAsComputed.js +2 -2
- package/dist/esm/internal/compute/markAsComputed.js.map +1 -1
- package/dist/esm/internal/compute/setProperties.js +1 -1
- package/dist/esm/internal/compute/setProperties.js.map +1 -1
- package/dist/esm/internal/compute/setRealProperties.js +3 -3
- package/dist/esm/internal/compute/setRealProperties.js.map +1 -1
- package/dist/esm/internal/customizeColorTheme.js +15 -13
- package/dist/esm/internal/customizeColorTheme.js.map +1 -1
- package/dist/esm/internal/data/DataStore.js +161 -177
- package/dist/esm/internal/data/DataStore.js.map +1 -1
- package/dist/esm/internal/data/getProviderBrick.js +21 -28
- package/dist/esm/internal/data/getProviderBrick.js.map +1 -1
- package/dist/esm/internal/data/realTimeDataInspect.js +5 -5
- package/dist/esm/internal/data/realTimeDataInspect.js.map +1 -1
- package/dist/esm/internal/data/resolveData.js +89 -103
- package/dist/esm/internal/data/resolveData.js.map +1 -1
- package/dist/esm/internal/data/resolveDataStore.js +53 -67
- package/dist/esm/internal/data/resolveDataStore.js.map +1 -1
- package/dist/esm/internal/devtools.js +9 -9
- package/dist/esm/internal/devtools.js.map +1 -1
- package/dist/esm/internal/enums.js +1 -1
- package/dist/esm/internal/fulfilStoryboard.js +15 -28
- package/dist/esm/internal/fulfilStoryboard.js.map +1 -1
- package/dist/esm/internal/hasInstalledApp.js +3 -3
- package/dist/esm/internal/hasInstalledApp.js.map +1 -1
- package/dist/esm/internal/historyExtended.js +40 -37
- package/dist/esm/internal/historyExtended.js.map +1 -1
- package/dist/esm/internal/i18n.js +5 -5
- package/dist/esm/internal/i18n.js.map +1 -1
- package/dist/esm/internal/injected.js +1 -1
- package/dist/esm/internal/injected.js.map +1 -1
- package/dist/esm/internal/insertPreviewRoutes.js +3 -3
- package/dist/esm/internal/insertPreviewRoutes.js.map +1 -1
- package/dist/esm/internal/matchPath.js +17 -17
- package/dist/esm/internal/matchPath.js.map +1 -1
- package/dist/esm/internal/matchRoutes.js +18 -25
- package/dist/esm/internal/matchRoutes.js.map +1 -1
- package/dist/esm/internal/matchStoryboard.js +6 -6
- package/dist/esm/internal/matchStoryboard.js.map +1 -1
- package/dist/esm/internal/mediaQuery.js +11 -11
- package/dist/esm/internal/mediaQuery.js.map +1 -1
- package/dist/esm/internal/mount.js +7 -7
- package/dist/esm/internal/mount.js.map +1 -1
- package/dist/esm/internal/poll.js +53 -60
- package/dist/esm/internal/poll.js.map +1 -1
- package/dist/esm/internal/proxyFactories.js +4 -4
- package/dist/esm/internal/proxyFactories.js.map +1 -1
- package/dist/esm/internal/registerAppI18n.js +6 -6
- package/dist/esm/internal/registerAppI18n.js.map +1 -1
- package/dist/esm/internal/registerCustomTemplates.js +3 -3
- package/dist/esm/internal/registerCustomTemplates.js.map +1 -1
- package/dist/esm/internal/secret_internals.js +140 -146
- package/dist/esm/internal/secret_internals.js.map +1 -1
- package/dist/esm/internal/setupRootRuntimeContext.js +6 -7
- package/dist/esm/internal/setupRootRuntimeContext.js.map +1 -1
- package/dist/esm/internal/sse.js +24 -53
- package/dist/esm/internal/sse.js.map +1 -1
- package/dist/esm/internal/test_only.js +1 -1
- package/dist/esm/isStrictMode.js +3 -3
- package/dist/esm/isStrictMode.js.map +1 -1
- package/dist/esm/setAppVariable.js +1 -1
- package/dist/esm/setAppVariable.js.map +1 -1
- package/dist/esm/setLoginStateCookie.js +5 -5
- package/dist/esm/setLoginStateCookie.js.map +1 -1
- package/dist/esm/setUIVersion.js +1 -1
- package/dist/esm/setWatermark.js +13 -13
- package/dist/esm/setWatermark.js.map +1 -1
- package/dist/esm/themeAndMode.js +14 -13
- package/dist/esm/themeAndMode.js.map +1 -1
- package/dist/types/tsdoc-metadata.json +1 -1
- package/package.json +12 -12
package/dist/esm/createRoot.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
1
|
import { uniqueId } from "lodash";
|
|
3
2
|
import { getDataStores, postAsyncRender, renderBricks } from "./internal/Renderer.js";
|
|
4
3
|
import { RendererContext } from "./internal/RendererContext.js";
|
|
@@ -12,13 +11,13 @@ import { registerAppI18n } from "./internal/registerAppI18n.js";
|
|
|
12
11
|
import { registerCustomTemplates } from "./internal/registerCustomTemplates.js";
|
|
13
12
|
import { setUIVersion } from "./setUIVersion.js";
|
|
14
13
|
export function unstable_createRoot(container) {
|
|
15
|
-
|
|
14
|
+
let {
|
|
16
15
|
portal: _portal,
|
|
17
16
|
scope = "fragment",
|
|
18
17
|
unknownBricks
|
|
19
18
|
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
let portal = _portal;
|
|
20
|
+
let createPortal;
|
|
22
21
|
if (_portal) {
|
|
23
22
|
createPortal = _portal;
|
|
24
23
|
} else {
|
|
@@ -31,137 +30,140 @@ export function unstable_createRoot(container) {
|
|
|
31
30
|
return portal;
|
|
32
31
|
};
|
|
33
32
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
let unmounted = false;
|
|
34
|
+
let rendererContext;
|
|
35
|
+
let clearI18nBundles;
|
|
37
36
|
return {
|
|
38
|
-
render(brick) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
37
|
+
async render(brick) {
|
|
38
|
+
let {
|
|
39
|
+
theme,
|
|
40
|
+
uiVersion,
|
|
41
|
+
context,
|
|
42
|
+
functions,
|
|
43
|
+
templates,
|
|
44
|
+
i18n: i18nData,
|
|
45
|
+
url,
|
|
46
|
+
app
|
|
47
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
48
|
+
if (unmounted) {
|
|
49
|
+
throw new Error("The root is unmounted and cannot be rendered any more");
|
|
50
|
+
}
|
|
51
|
+
const bricks = [].concat(brick);
|
|
52
|
+
const previousRendererContext = rendererContext;
|
|
53
|
+
const renderId = uniqueId("render-id-");
|
|
54
|
+
rendererContext = new RendererContext(scope, {
|
|
55
|
+
unknownBricks,
|
|
56
|
+
renderId
|
|
57
|
+
});
|
|
58
|
+
const runtimeContext = {
|
|
59
|
+
ctxStore: new DataStore("CTX", undefined, rendererContext),
|
|
60
|
+
pendingPermissionsPreCheck: [],
|
|
61
|
+
tplStateStoreMap: new Map(),
|
|
62
|
+
formStateStoreMap: new Map()
|
|
63
|
+
};
|
|
64
|
+
if (url) {
|
|
65
|
+
const urlObj = new URL(url);
|
|
66
|
+
runtimeContext.query = urlObj.searchParams;
|
|
67
|
+
runtimeContext.location = {
|
|
68
|
+
pathname: urlObj.pathname,
|
|
69
|
+
search: urlObj.search,
|
|
70
|
+
hash: urlObj.hash,
|
|
71
|
+
state: undefined
|
|
66
72
|
};
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
73
|
+
}
|
|
74
|
+
const renderRoot = {
|
|
75
|
+
tag: RenderTag.ROOT,
|
|
76
|
+
container,
|
|
77
|
+
createPortal
|
|
78
|
+
};
|
|
79
|
+
if (scope === "page") {
|
|
80
|
+
var _clearI18nBundles;
|
|
81
|
+
setTheme(theme ?? "light");
|
|
82
|
+
setMode("default");
|
|
83
|
+
setUIVersion(uiVersion);
|
|
84
|
+
app ?? (app = {
|
|
85
|
+
id: "demo",
|
|
86
|
+
homepage: "/demo"
|
|
87
|
+
});
|
|
88
|
+
runtimeContext.app = app;
|
|
89
|
+
const demoStoryboard = {
|
|
90
|
+
app,
|
|
91
|
+
meta: {
|
|
92
|
+
i18n: i18nData,
|
|
93
|
+
customTemplates: templates
|
|
94
|
+
}
|
|
81
95
|
};
|
|
82
|
-
if (scope === "page") {
|
|
83
|
-
var _app, _clearI18nBundles;
|
|
84
|
-
setTheme(theme !== null && theme !== void 0 ? theme : "light");
|
|
85
|
-
setMode("default");
|
|
86
|
-
setUIVersion(uiVersion);
|
|
87
|
-
(_app = app) !== null && _app !== void 0 ? _app : app = {
|
|
88
|
-
id: "demo",
|
|
89
|
-
homepage: "/demo"
|
|
90
|
-
};
|
|
91
|
-
runtimeContext.app = app;
|
|
92
|
-
var demoStoryboard = {
|
|
93
|
-
app,
|
|
94
|
-
meta: {
|
|
95
|
-
i18n: i18nData,
|
|
96
|
-
customTemplates: templates
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
96
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
97
|
+
// Register i18n.
|
|
98
|
+
(_clearI18nBundles = clearI18nBundles) === null || _clearI18nBundles === void 0 || _clearI18nBundles();
|
|
99
|
+
clearI18nBundles = registerAppI18n(demoStoryboard);
|
|
103
100
|
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
// Register custom templates.
|
|
102
|
+
registerCustomTemplates(demoStoryboard);
|
|
106
103
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
104
|
+
// Register functions.
|
|
105
|
+
registerStoryboardFunctions(functions, app);
|
|
106
|
+
}
|
|
107
|
+
runtimeContext.ctxStore.define(context, runtimeContext);
|
|
108
|
+
let failed = false;
|
|
109
|
+
let output;
|
|
110
|
+
let stores = [];
|
|
111
|
+
try {
|
|
112
|
+
output = await renderBricks(renderRoot, bricks, runtimeContext, rendererContext, [], {});
|
|
113
|
+
stores = getDataStores(runtimeContext);
|
|
114
|
+
await postAsyncRender(output, runtimeContext, stores);
|
|
115
|
+
} catch (error) {
|
|
116
|
+
failed = true;
|
|
117
|
+
output = {
|
|
118
|
+
node: {
|
|
119
|
+
tag: RenderTag.BRICK,
|
|
120
|
+
type: "div",
|
|
121
|
+
properties: {
|
|
122
|
+
textContent: httpErrorToString(error),
|
|
123
|
+
dataset: {
|
|
124
|
+
errorBoundary: ""
|
|
126
125
|
},
|
|
127
|
-
|
|
128
|
-
|
|
126
|
+
style: {
|
|
127
|
+
color: "var(--color-error)"
|
|
128
|
+
}
|
|
129
129
|
},
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
130
|
+
return: renderRoot,
|
|
131
|
+
runtimeContext: null
|
|
132
|
+
},
|
|
133
|
+
blockingList: []
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
renderRoot.child = output.node;
|
|
137
|
+
previousRendererContext === null || previousRendererContext === void 0 || previousRendererContext.dispatchOnUnmount();
|
|
138
|
+
previousRendererContext === null || previousRendererContext === void 0 || previousRendererContext.dispose();
|
|
139
|
+
unmountTree(container);
|
|
140
|
+
if (portal) {
|
|
141
|
+
unmountTree(portal);
|
|
142
|
+
}
|
|
143
|
+
if (scope === "page") {
|
|
144
|
+
if (!failed) {
|
|
145
|
+
rendererContext.dispatchBeforePageLoad();
|
|
139
146
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
147
|
+
applyTheme();
|
|
148
|
+
applyMode();
|
|
149
|
+
}
|
|
150
|
+
mountTree(renderRoot);
|
|
151
|
+
if (scope === "page") {
|
|
152
|
+
window.scrollTo(0, 0);
|
|
153
|
+
}
|
|
154
|
+
if (!failed) {
|
|
155
|
+
for (const store of stores) {
|
|
156
|
+
store.mountAsyncData();
|
|
146
157
|
}
|
|
147
|
-
mountTree(renderRoot);
|
|
148
158
|
if (scope === "page") {
|
|
149
|
-
|
|
159
|
+
rendererContext.dispatchPageLoad();
|
|
160
|
+
// rendererContext.dispatchAnchorLoad();
|
|
150
161
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
rendererContext.dispatchPageLoad();
|
|
157
|
-
// rendererContext.dispatchAnchorLoad();
|
|
158
|
-
}
|
|
159
|
-
rendererContext.dispatchOnMount();
|
|
160
|
-
rendererContext.initializeScrollIntoView();
|
|
161
|
-
rendererContext.initializeMediaChange();
|
|
162
|
-
rendererContext.initializeMessageDispatcher();
|
|
163
|
-
}
|
|
164
|
-
})();
|
|
162
|
+
rendererContext.dispatchOnMount();
|
|
163
|
+
rendererContext.initializeScrollIntoView();
|
|
164
|
+
rendererContext.initializeMediaChange();
|
|
165
|
+
rendererContext.initializeMessageDispatcher();
|
|
166
|
+
}
|
|
165
167
|
},
|
|
166
168
|
unmount() {
|
|
167
169
|
if (unmounted) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createRoot.js","names":["uniqueId","getDataStores","postAsyncRender","renderBricks","RendererContext","DataStore","mountTree","unmountTree","httpErrorToString","applyMode","applyTheme","setMode","setTheme","RenderTag","registerStoryboardFunctions","registerAppI18n","registerCustomTemplates","setUIVersion","unstable_createRoot","container","portal","_portal","scope","unknownBricks","arguments","length","undefined","createPortal","document","createElement","style","position","width","height","body","append","unmounted","rendererContext","clearI18nBundles","render","brick","_arguments","_asyncToGenerator","theme","uiVersion","context","functions","templates","i18n","i18nData","url","app","Error","bricks","concat","previousRendererContext","renderId","runtimeContext","ctxStore","pendingPermissionsPreCheck","tplStateStoreMap","Map","formStateStoreMap","urlObj","URL","query","searchParams","location","pathname","search","hash","state","renderRoot","tag","ROOT","_app","_clearI18nBundles","id","homepage","demoStoryboard","meta","customTemplates","define","failed","output","stores","error","node","BRICK","type","properties","textContent","return","blockingList","child","dispatchOnUnmount","dispose","dispatchBeforePageLoad","window","scrollTo","store","mountAsyncData","dispatchPageLoad","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","initializeMessageDispatcher","unmount","remove"],"sources":["../../src/createRoot.ts"],"sourcesContent":["import type {\n BrickConf,\n ContextConf,\n CustomTemplate,\n MetaI18n,\n MicroApp,\n SiteTheme,\n Storyboard,\n StoryboardFunction,\n} from \"@next-core/types\";\nimport { uniqueId } from \"lodash\";\nimport {\n RenderOutput,\n getDataStores,\n postAsyncRender,\n renderBricks,\n} from \"./internal/Renderer.js\";\nimport { RendererContext } from \"./internal/RendererContext.js\";\nimport { DataStore } from \"./internal/data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./internal/interfaces.js\";\nimport { mountTree, unmountTree } from \"./internal/mount.js\";\nimport { httpErrorToString } from \"./handleHttpError.js\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"./themeAndMode.js\";\nimport { RenderTag } from \"./internal/enums.js\";\nimport { registerStoryboardFunctions } from \"./internal/compute/StoryboardFunctions.js\";\nimport { registerAppI18n } from \"./internal/registerAppI18n.js\";\nimport { registerCustomTemplates } from \"./internal/registerCustomTemplates.js\";\nimport { setUIVersion } from \"./setUIVersion.js\";\n\nexport interface CreateRootOptions {\n portal?: HTMLElement;\n /**\n * Defaults to \"fragment\", only set it to \"page\" when the root is in a standalone iframe.\n * - page: render as whole page, triggering page life cycles, and enable register of functions/templates/i18n.\n * - fragment: render as fragment, not triggering page life cycles, and disable register of functions/templates/i18n.\n */\n scope?: \"page\" | \"fragment\";\n\n /**\n * Whether to throw error when encountering unknown bricks.\n *\n * Defaults to \"throw\".\n */\n unknownBricks?: \"silent\" | \"throw\";\n}\n\nexport interface RenderOptions {\n theme?: SiteTheme;\n uiVersion?: string;\n context?: ContextConf[];\n functions?: StoryboardFunction[];\n templates?: CustomTemplate[];\n i18n?: MetaI18n;\n url?: string;\n app?: MicroApp;\n}\n\nexport function unstable_createRoot(\n container: HTMLElement | DocumentFragment,\n { portal: _portal, scope = \"fragment\", unknownBricks }: CreateRootOptions = {}\n) {\n let portal = _portal;\n let createPortal: RenderRoot[\"createPortal\"];\n if (_portal) {\n createPortal = _portal;\n } else {\n // Create portal container when necessary.\n createPortal = () => {\n portal = document.createElement(\"div\");\n portal.style.position = \"absolute\";\n portal.style.width = portal.style.height = \"0\";\n document.body.append(portal);\n return portal;\n };\n }\n let unmounted = false;\n let rendererContext: RendererContext | undefined;\n let clearI18nBundles: Function | undefined;\n\n return {\n async render(\n brick: BrickConf | BrickConf[],\n {\n theme,\n uiVersion,\n context,\n functions,\n templates,\n i18n: i18nData,\n url,\n app,\n }: RenderOptions = {}\n ) {\n if (unmounted) {\n throw new Error(\n \"The root is unmounted and cannot be rendered any more\"\n );\n }\n const bricks = ([] as BrickConf[]).concat(brick);\n\n const previousRendererContext = rendererContext;\n const renderId = uniqueId(\"render-id-\");\n rendererContext = new RendererContext(scope, { unknownBricks, renderId });\n\n const runtimeContext = {\n ctxStore: new DataStore(\"CTX\", undefined, rendererContext),\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n formStateStoreMap: new Map<string, DataStore<\"FORM_STATE\">>(),\n } as Partial<RuntimeContext> as RuntimeContext;\n\n if (url) {\n const urlObj = new URL(url);\n runtimeContext.query = urlObj.searchParams;\n runtimeContext.location = {\n pathname: urlObj.pathname,\n search: urlObj.search,\n hash: urlObj.hash,\n state: undefined,\n };\n }\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container,\n createPortal,\n };\n\n if (scope === \"page\") {\n setTheme(theme ?? \"light\");\n setMode(\"default\");\n setUIVersion(uiVersion);\n\n app ??= {\n id: \"demo\",\n homepage: \"/demo\",\n } as MicroApp;\n runtimeContext.app = app;\n const demoStoryboard = {\n app,\n meta: {\n i18n: i18nData,\n customTemplates: templates,\n },\n } as Storyboard;\n\n // Register i18n.\n clearI18nBundles?.();\n clearI18nBundles = registerAppI18n(demoStoryboard);\n\n // Register custom templates.\n registerCustomTemplates(demoStoryboard);\n\n // Register functions.\n registerStoryboardFunctions(functions, app);\n }\n\n runtimeContext.ctxStore.define(context, runtimeContext);\n\n let failed = false;\n let output: RenderOutput;\n let stores: DataStore<\"CTX\" | \"STATE\" | \"FORM_STATE\">[] = [];\n\n try {\n output = await renderBricks(\n renderRoot,\n bricks,\n runtimeContext,\n rendererContext,\n [],\n {}\n );\n\n stores = getDataStores(runtimeContext);\n await postAsyncRender(output, runtimeContext, stores);\n } catch (error) {\n failed = true;\n output = {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n },\n return: renderRoot,\n runtimeContext: null!,\n },\n blockingList: [],\n };\n }\n\n renderRoot.child = output.node;\n\n previousRendererContext?.dispatchOnUnmount();\n previousRendererContext?.dispose();\n unmountTree(container);\n if (portal) {\n unmountTree(portal);\n }\n\n if (scope === \"page\") {\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n\n applyTheme();\n applyMode();\n }\n\n mountTree(renderRoot);\n\n if (scope === \"page\") {\n window.scrollTo(0, 0);\n }\n\n if (!failed) {\n for (const store of stores) {\n store.mountAsyncData();\n }\n\n if (scope === \"page\") {\n rendererContext.dispatchPageLoad();\n // rendererContext.dispatchAnchorLoad();\n }\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n rendererContext.initializeMessageDispatcher();\n }\n },\n unmount() {\n if (unmounted) {\n return;\n }\n unmounted = true;\n unmountTree(container);\n if (portal) {\n unmountTree(portal);\n // Only remove the portal from its parent when it's dynamic created.\n if (!_portal) {\n portal.remove();\n }\n }\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"createRoot.js","names":["uniqueId","getDataStores","postAsyncRender","renderBricks","RendererContext","DataStore","mountTree","unmountTree","httpErrorToString","applyMode","applyTheme","setMode","setTheme","RenderTag","registerStoryboardFunctions","registerAppI18n","registerCustomTemplates","setUIVersion","unstable_createRoot","container","portal","_portal","scope","unknownBricks","arguments","length","undefined","createPortal","document","createElement","style","position","width","height","body","append","unmounted","rendererContext","clearI18nBundles","render","brick","theme","uiVersion","context","functions","templates","i18n","i18nData","url","app","Error","bricks","concat","previousRendererContext","renderId","runtimeContext","ctxStore","pendingPermissionsPreCheck","tplStateStoreMap","Map","formStateStoreMap","urlObj","URL","query","searchParams","location","pathname","search","hash","state","renderRoot","tag","ROOT","_clearI18nBundles","id","homepage","demoStoryboard","meta","customTemplates","define","failed","output","stores","error","node","BRICK","type","properties","textContent","dataset","errorBoundary","color","return","blockingList","child","dispatchOnUnmount","dispose","dispatchBeforePageLoad","window","scrollTo","store","mountAsyncData","dispatchPageLoad","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","initializeMessageDispatcher","unmount","remove"],"sources":["../../src/createRoot.ts"],"sourcesContent":["import type {\n BrickConf,\n ContextConf,\n CustomTemplate,\n MetaI18n,\n MicroApp,\n SiteTheme,\n Storyboard,\n StoryboardFunction,\n} from \"@next-core/types\";\nimport { uniqueId } from \"lodash\";\nimport {\n RenderOutput,\n getDataStores,\n postAsyncRender,\n renderBricks,\n} from \"./internal/Renderer.js\";\nimport { RendererContext } from \"./internal/RendererContext.js\";\nimport { DataStore } from \"./internal/data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./internal/interfaces.js\";\nimport { mountTree, unmountTree } from \"./internal/mount.js\";\nimport { httpErrorToString } from \"./handleHttpError.js\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"./themeAndMode.js\";\nimport { RenderTag } from \"./internal/enums.js\";\nimport { registerStoryboardFunctions } from \"./internal/compute/StoryboardFunctions.js\";\nimport { registerAppI18n } from \"./internal/registerAppI18n.js\";\nimport { registerCustomTemplates } from \"./internal/registerCustomTemplates.js\";\nimport { setUIVersion } from \"./setUIVersion.js\";\n\nexport interface CreateRootOptions {\n portal?: HTMLElement;\n /**\n * Defaults to \"fragment\", only set it to \"page\" when the root is in a standalone iframe.\n * - page: render as whole page, triggering page life cycles, and enable register of functions/templates/i18n.\n * - fragment: render as fragment, not triggering page life cycles, and disable register of functions/templates/i18n.\n */\n scope?: \"page\" | \"fragment\";\n\n /**\n * Whether to throw error when encountering unknown bricks.\n *\n * Defaults to \"throw\".\n */\n unknownBricks?: \"silent\" | \"throw\";\n}\n\nexport interface RenderOptions {\n theme?: SiteTheme;\n uiVersion?: string;\n context?: ContextConf[];\n functions?: StoryboardFunction[];\n templates?: CustomTemplate[];\n i18n?: MetaI18n;\n url?: string;\n app?: MicroApp;\n}\n\nexport function unstable_createRoot(\n container: HTMLElement | DocumentFragment,\n { portal: _portal, scope = \"fragment\", unknownBricks }: CreateRootOptions = {}\n) {\n let portal = _portal;\n let createPortal: RenderRoot[\"createPortal\"];\n if (_portal) {\n createPortal = _portal;\n } else {\n // Create portal container when necessary.\n createPortal = () => {\n portal = document.createElement(\"div\");\n portal.style.position = \"absolute\";\n portal.style.width = portal.style.height = \"0\";\n document.body.append(portal);\n return portal;\n };\n }\n let unmounted = false;\n let rendererContext: RendererContext | undefined;\n let clearI18nBundles: Function | undefined;\n\n return {\n async render(\n brick: BrickConf | BrickConf[],\n {\n theme,\n uiVersion,\n context,\n functions,\n templates,\n i18n: i18nData,\n url,\n app,\n }: RenderOptions = {}\n ) {\n if (unmounted) {\n throw new Error(\n \"The root is unmounted and cannot be rendered any more\"\n );\n }\n const bricks = ([] as BrickConf[]).concat(brick);\n\n const previousRendererContext = rendererContext;\n const renderId = uniqueId(\"render-id-\");\n rendererContext = new RendererContext(scope, { unknownBricks, renderId });\n\n const runtimeContext = {\n ctxStore: new DataStore(\"CTX\", undefined, rendererContext),\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n formStateStoreMap: new Map<string, DataStore<\"FORM_STATE\">>(),\n } as Partial<RuntimeContext> as RuntimeContext;\n\n if (url) {\n const urlObj = new URL(url);\n runtimeContext.query = urlObj.searchParams;\n runtimeContext.location = {\n pathname: urlObj.pathname,\n search: urlObj.search,\n hash: urlObj.hash,\n state: undefined,\n };\n }\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container,\n createPortal,\n };\n\n if (scope === \"page\") {\n setTheme(theme ?? \"light\");\n setMode(\"default\");\n setUIVersion(uiVersion);\n\n app ??= {\n id: \"demo\",\n homepage: \"/demo\",\n } as MicroApp;\n runtimeContext.app = app;\n const demoStoryboard = {\n app,\n meta: {\n i18n: i18nData,\n customTemplates: templates,\n },\n } as Storyboard;\n\n // Register i18n.\n clearI18nBundles?.();\n clearI18nBundles = registerAppI18n(demoStoryboard);\n\n // Register custom templates.\n registerCustomTemplates(demoStoryboard);\n\n // Register functions.\n registerStoryboardFunctions(functions, app);\n }\n\n runtimeContext.ctxStore.define(context, runtimeContext);\n\n let failed = false;\n let output: RenderOutput;\n let stores: DataStore<\"CTX\" | \"STATE\" | \"FORM_STATE\">[] = [];\n\n try {\n output = await renderBricks(\n renderRoot,\n bricks,\n runtimeContext,\n rendererContext,\n [],\n {}\n );\n\n stores = getDataStores(runtimeContext);\n await postAsyncRender(output, runtimeContext, stores);\n } catch (error) {\n failed = true;\n output = {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n dataset: {\n errorBoundary: \"\",\n },\n style: {\n color: \"var(--color-error)\",\n },\n },\n return: renderRoot,\n runtimeContext: null!,\n },\n blockingList: [],\n };\n }\n\n renderRoot.child = output.node;\n\n previousRendererContext?.dispatchOnUnmount();\n previousRendererContext?.dispose();\n unmountTree(container);\n if (portal) {\n unmountTree(portal);\n }\n\n if (scope === \"page\") {\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n\n applyTheme();\n applyMode();\n }\n\n mountTree(renderRoot);\n\n if (scope === \"page\") {\n window.scrollTo(0, 0);\n }\n\n if (!failed) {\n for (const store of stores) {\n store.mountAsyncData();\n }\n\n if (scope === \"page\") {\n rendererContext.dispatchPageLoad();\n // rendererContext.dispatchAnchorLoad();\n }\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n rendererContext.initializeMessageDispatcher();\n }\n },\n unmount() {\n if (unmounted) {\n return;\n }\n unmounted = true;\n unmountTree(container);\n if (portal) {\n unmountTree(portal);\n // Only remove the portal from its parent when it's dynamic created.\n if (!_portal) {\n portal.remove();\n }\n }\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
1
|
import { getProviderBrick } from "./internal/data/getProviderBrick.js";
|
|
3
2
|
import { resolveByProvider } from "./internal/data/resolveData.js";
|
|
4
|
-
export function fetchByProvider(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
function _fetchByProvider() {
|
|
8
|
-
_fetchByProvider = _asyncToGenerator(function* (provider, args, options) {
|
|
9
|
-
var providerBrick = yield getProviderBrick(provider);
|
|
10
|
-
return resolveByProvider(providerBrick, provider, "resolve", args, options);
|
|
11
|
-
});
|
|
12
|
-
return _fetchByProvider.apply(this, arguments);
|
|
3
|
+
export async function fetchByProvider(provider, args, options) {
|
|
4
|
+
const providerBrick = await getProviderBrick(provider);
|
|
5
|
+
return resolveByProvider(providerBrick, provider, "resolve", args, options);
|
|
13
6
|
}
|
|
14
7
|
//# sourceMappingURL=fetchByProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchByProvider.js","names":["getProviderBrick","resolveByProvider","fetchByProvider","
|
|
1
|
+
{"version":3,"file":"fetchByProvider.js","names":["getProviderBrick","resolveByProvider","fetchByProvider","provider","args","options","providerBrick"],"sources":["../../src/fetchByProvider.ts"],"sourcesContent":["import { getProviderBrick } from \"./internal/data/getProviderBrick.js\";\nimport {\n ResolveOptions,\n resolveByProvider,\n} from \"./internal/data/resolveData.js\";\n\nexport async function fetchByProvider(\n provider: string,\n args: unknown[],\n options?: ResolveOptions\n) {\n const providerBrick = (await getProviderBrick(provider)) as unknown as Record<\n string,\n Function\n >;\n return resolveByProvider(providerBrick, provider, \"resolve\", args, options);\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,qCAAqC;AACtE,SAEEC,iBAAiB,QACZ,gCAAgC;AAEvC,OAAO,eAAeC,eAAeA,CACnCC,QAAgB,EAChBC,IAAe,EACfC,OAAwB,EACxB;EACA,MAAMC,aAAa,GAAI,MAAMN,gBAAgB,CAACG,QAAQ,CAGrD;EACD,OAAOF,iBAAiB,CAACK,aAAa,EAAEH,QAAQ,EAAE,SAAS,EAAEC,IAAI,EAAEC,OAAO,CAAC;AAC7E","ignoreList":[]}
|
package/dist/esm/getBasePath.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Get site's base path, generally will be `/next/` or `/`.
|
|
3
3
|
*/
|
|
4
4
|
export function getBasePath() {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const base = document.querySelector("base");
|
|
6
|
+
const basePath = base ? base.getAttribute("href") : "/";
|
|
7
7
|
return basePath;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=getBasePath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBasePath.js","names":["getBasePath","base","document","querySelector","basePath","getAttribute"],"sources":["../../src/getBasePath.ts"],"sourcesContent":["/**\n * Get site's base path, generally will be `/next/` or `/`.\n */\nexport function getBasePath(): string {\n const base = document.querySelector(\"base\");\n const basePath = base ? (base.getAttribute(\"href\") as string) : \"/\";\n return basePath;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,SAASA,WAAWA,CAAA,EAAW;EACpC,
|
|
1
|
+
{"version":3,"file":"getBasePath.js","names":["getBasePath","base","document","querySelector","basePath","getAttribute"],"sources":["../../src/getBasePath.ts"],"sourcesContent":["/**\n * Get site's base path, generally will be `/next/` or `/`.\n */\nexport function getBasePath(): string {\n const base = document.querySelector(\"base\");\n const basePath = base ? (base.getAttribute(\"href\") as string) : \"/\";\n return basePath;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,SAASA,WAAWA,CAAA,EAAW;EACpC,MAAMC,IAAI,GAAGC,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;EAC3C,MAAMC,QAAQ,GAAGH,IAAI,GAAIA,IAAI,CAACI,YAAY,CAAC,MAAM,CAAC,GAAc,GAAG;EACnE,OAAOD,QAAQ;AACjB","ignoreList":[]}
|
package/dist/esm/getPageInfo.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getBasePath } from "./getBasePath.js";
|
|
2
|
-
|
|
2
|
+
let misc;
|
|
3
3
|
|
|
4
4
|
/** 运行时页面信息。*/
|
|
5
5
|
|
|
@@ -21,11 +21,11 @@ export function getPageInfo() {
|
|
|
21
21
|
// - Nesting console in next.
|
|
22
22
|
if (window.origin === window.parent.origin) {
|
|
23
23
|
misc.isInIframeOfSameSite = true;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
const selfIsNext = getBasePath() === "/next/";
|
|
25
|
+
const parentPathname = window.parent.location.pathname;
|
|
26
|
+
const parentIsNext = parentPathname.startsWith("/next/");
|
|
27
27
|
misc.isInIframeOfNext = (Number(selfIsNext) ^ Number(parentIsNext)) === 0;
|
|
28
|
-
misc.isInIframeOfVisualBuilder = parentPathname.startsWith(
|
|
28
|
+
misc.isInIframeOfVisualBuilder = parentPathname.startsWith(`${parentIsNext ? "/next" : ""}/visual-builder/`);
|
|
29
29
|
misc.isInIframeOfLegacyConsole = selfIsNext && !parentIsNext;
|
|
30
30
|
}
|
|
31
31
|
} catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPageInfo.js","names":["getBasePath","misc","getPageInfo","isInIframe","isInIframeOfSameSite","isInIframeOfNext","isInIframeOfVisualBuilder","isInIframeOfLegacyConsole","window","parent","origin","selfIsNext","parentPathname","location","pathname","parentIsNext","startsWith","Number","
|
|
1
|
+
{"version":3,"file":"getPageInfo.js","names":["getBasePath","misc","getPageInfo","isInIframe","isInIframeOfSameSite","isInIframeOfNext","isInIframeOfVisualBuilder","isInIframeOfLegacyConsole","window","parent","origin","selfIsNext","parentPathname","location","pathname","parentIsNext","startsWith","Number","e","Object","freeze"],"sources":["../../src/getPageInfo.ts"],"sourcesContent":["import { getBasePath } from \"./getBasePath.js\";\n\nlet misc: PageInfo;\n\n/** 运行时页面信息。*/\nexport interface PageInfo {\n /** 当前是否处于 iframe 模式。 */\n isInIframe: boolean;\n\n /** 当前是否处于同域的 iframe 模式。 */\n isInIframeOfSameSite: boolean;\n\n /** 当前是否处于新框架下的 iframe 模式。 */\n isInIframeOfNext: boolean;\n\n /** 当前是否处于 Visual Builder 预览的 iframe 模式。 */\n isInIframeOfVisualBuilder: boolean;\n\n /** 当前是否处于老 console 下的 iframe 模式。 */\n isInIframeOfLegacyConsole: boolean;\n}\n\nexport function getPageInfo(): PageInfo {\n if (!misc) {\n misc = {\n isInIframe: false,\n isInIframeOfSameSite: false,\n isInIframeOfNext: false,\n isInIframeOfVisualBuilder: false,\n isInIframeOfLegacyConsole: false,\n };\n\n if (window !== window.parent) {\n misc.isInIframe = true;\n try {\n // Handle:\n // - Previewing in visual builder by iframe.\n // - Nesting next in next.\n // - Nesting console in next.\n if (window.origin === window.parent.origin) {\n misc.isInIframeOfSameSite = true;\n const selfIsNext = getBasePath() === \"/next/\";\n const parentPathname = window.parent.location.pathname;\n const parentIsNext = parentPathname.startsWith(\"/next/\");\n misc.isInIframeOfNext =\n (Number(selfIsNext) ^ Number(parentIsNext)) === 0;\n misc.isInIframeOfVisualBuilder = parentPathname.startsWith(\n `${parentIsNext ? \"/next\" : \"\"}/visual-builder/`\n );\n misc.isInIframeOfLegacyConsole = selfIsNext && !parentIsNext;\n }\n } catch (e) {\n // do nothing\n }\n }\n\n Object.freeze(misc);\n }\n\n return misc;\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,kBAAkB;AAE9C,IAAIC,IAAc;;AAElB;;AAkBA,OAAO,SAASC,WAAWA,CAAA,EAAa;EACtC,IAAI,CAACD,IAAI,EAAE;IACTA,IAAI,GAAG;MACLE,UAAU,EAAE,KAAK;MACjBC,oBAAoB,EAAE,KAAK;MAC3BC,gBAAgB,EAAE,KAAK;MACvBC,yBAAyB,EAAE,KAAK;MAChCC,yBAAyB,EAAE;IAC7B,CAAC;IAED,IAAIC,MAAM,KAAKA,MAAM,CAACC,MAAM,EAAE;MAC5BR,IAAI,CAACE,UAAU,GAAG,IAAI;MACtB,IAAI;QACF;QACA;QACA;QACA;QACA,IAAIK,MAAM,CAACE,MAAM,KAAKF,MAAM,CAACC,MAAM,CAACC,MAAM,EAAE;UAC1CT,IAAI,CAACG,oBAAoB,GAAG,IAAI;UAChC,MAAMO,UAAU,GAAGX,WAAW,CAAC,CAAC,KAAK,QAAQ;UAC7C,MAAMY,cAAc,GAAGJ,MAAM,CAACC,MAAM,CAACI,QAAQ,CAACC,QAAQ;UACtD,MAAMC,YAAY,GAAGH,cAAc,CAACI,UAAU,CAAC,QAAQ,CAAC;UACxDf,IAAI,CAACI,gBAAgB,GACnB,CAACY,MAAM,CAACN,UAAU,CAAC,GAAGM,MAAM,CAACF,YAAY,CAAC,MAAM,CAAC;UACnDd,IAAI,CAACK,yBAAyB,GAAGM,cAAc,CAACI,UAAU,CACxD,GAAGD,YAAY,GAAG,OAAO,GAAG,EAAE,kBAChC,CAAC;UACDd,IAAI,CAACM,yBAAyB,GAAGI,UAAU,IAAI,CAACI,YAAY;QAC9D;MACF,CAAC,CAAC,OAAOG,CAAC,EAAE;QACV;MAAA;IAEJ;IAEAC,MAAM,CAACC,MAAM,CAACnB,IAAI,CAAC;EACrB;EAEA,OAAOA,IAAI;AACb","ignoreList":[]}
|
package/dist/esm/getRealValue.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
1
|
import { isEvaluable } from "@next-core/cook";
|
|
3
2
|
import { inject } from "@next-core/inject";
|
|
4
3
|
import { isObject } from "@next-core/utils/general";
|
|
@@ -15,17 +14,19 @@ import { hasBeenComputed, markAsComputed } from "./internal/compute/markAsComput
|
|
|
15
14
|
* @returns Computed real value.
|
|
16
15
|
*/
|
|
17
16
|
export function getRealValue(value) {
|
|
18
|
-
|
|
17
|
+
let {
|
|
19
18
|
useRealTimeQuery
|
|
20
19
|
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
21
|
-
|
|
20
|
+
const ctx = {
|
|
21
|
+
..._internalApiGetRuntimeContext()
|
|
22
|
+
};
|
|
22
23
|
if (useRealTimeQuery) {
|
|
23
24
|
ctx.query = new URLSearchParams(getHistory().location.search);
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
+
const compute = data => {
|
|
26
27
|
if (typeof data === "string") {
|
|
27
28
|
if (isEvaluable(data)) {
|
|
28
|
-
|
|
29
|
+
const result = evaluate(data, ctx);
|
|
29
30
|
markAsComputed(result);
|
|
30
31
|
return result;
|
|
31
32
|
}
|
|
@@ -38,7 +39,7 @@ export function getRealValue(value) {
|
|
|
38
39
|
return data.map(v => compute(v));
|
|
39
40
|
}
|
|
40
41
|
return Object.fromEntries(Object.entries(data).map(_ref => {
|
|
41
|
-
|
|
42
|
+
let [k, v] = _ref;
|
|
42
43
|
return [compute(k), compute(v)];
|
|
43
44
|
}));
|
|
44
45
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRealValue.js","names":["isEvaluable","inject","isObject","getHistory","_internalApiGetRuntimeContext","evaluate","hasBeenComputed","markAsComputed","getRealValue","value","useRealTimeQuery","arguments","length","undefined","ctx","
|
|
1
|
+
{"version":3,"file":"getRealValue.js","names":["isEvaluable","inject","isObject","getHistory","_internalApiGetRuntimeContext","evaluate","hasBeenComputed","markAsComputed","getRealValue","value","useRealTimeQuery","arguments","length","undefined","ctx","query","URLSearchParams","location","search","compute","data","result","Array","isArray","map","v","Object","fromEntries","entries","_ref","k"],"sources":["../../src/getRealValue.ts"],"sourcesContent":["import { isEvaluable } from \"@next-core/cook\";\nimport { inject } from \"@next-core/inject\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { getHistory } from \"./index.js\";\nimport { _internalApiGetRuntimeContext } from \"./internal/Runtime.js\";\nimport { evaluate } from \"./internal/compute/evaluate.js\";\nimport type { RuntimeContext } from \"./internal/interfaces.js\";\nimport {\n hasBeenComputed,\n markAsComputed,\n} from \"./internal/compute/markAsComputed.js\";\n\n/**\n * An equivalent of `computeRealValue` but for external usages, with no custom\n * context or options.\n *\n * @param value - Any value which may contains evaluations or placeholders.\n * @returns Computed real value.\n */\nexport function getRealValue(\n value: unknown,\n {\n useRealTimeQuery,\n }: {\n useRealTimeQuery?: boolean;\n } = {}\n): unknown {\n const ctx: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n };\n if (useRealTimeQuery) {\n ctx.query = new URLSearchParams(getHistory().location.search);\n }\n\n const compute = (data: unknown): unknown => {\n if (typeof data === \"string\") {\n if (isEvaluable(data)) {\n const result = evaluate(data, ctx);\n markAsComputed(result);\n return result;\n }\n return inject(data, ctx);\n }\n\n if (!isObject(data) || hasBeenComputed(value)) {\n return data;\n }\n\n if (Array.isArray(data)) {\n return data.map((v) => compute(v));\n }\n\n return Object.fromEntries(\n Object.entries(data).map(([k, v]) => [compute(k), compute(v)])\n );\n };\n\n return compute(value);\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,UAAU,QAAQ,YAAY;AACvC,SAASC,6BAA6B,QAAQ,uBAAuB;AACrE,SAASC,QAAQ,QAAQ,gCAAgC;AAEzD,SACEC,eAAe,EACfC,cAAc,QACT,sCAAsC;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAC1BC,KAAc,EAML;EAAA,IALT;IACEC;EAGF,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEN,MAAMG,GAAmB,GAAG;IAC1B,GAAGV,6BAA6B,CAAC;EACnC,CAAC;EACD,IAAIM,gBAAgB,EAAE;IACpBI,GAAG,CAACC,KAAK,GAAG,IAAIC,eAAe,CAACb,UAAU,CAAC,CAAC,CAACc,QAAQ,CAACC,MAAM,CAAC;EAC/D;EAEA,MAAMC,OAAO,GAAIC,IAAa,IAAc;IAC1C,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MAC5B,IAAIpB,WAAW,CAACoB,IAAI,CAAC,EAAE;QACrB,MAAMC,MAAM,GAAGhB,QAAQ,CAACe,IAAI,EAAEN,GAAG,CAAC;QAClCP,cAAc,CAACc,MAAM,CAAC;QACtB,OAAOA,MAAM;MACf;MACA,OAAOpB,MAAM,CAACmB,IAAI,EAAEN,GAAG,CAAC;IAC1B;IAEA,IAAI,CAACZ,QAAQ,CAACkB,IAAI,CAAC,IAAId,eAAe,CAACG,KAAK,CAAC,EAAE;MAC7C,OAAOW,IAAI;IACb;IAEA,IAAIE,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,EAAE;MACvB,OAAOA,IAAI,CAACI,GAAG,CAAEC,CAAC,IAAKN,OAAO,CAACM,CAAC,CAAC,CAAC;IACpC;IAEA,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACR,IAAI,CAAC,CAACI,GAAG,CAACK,IAAA;MAAA,IAAC,CAACC,CAAC,EAAEL,CAAC,CAAC,GAAAI,IAAA;MAAA,OAAK,CAACV,OAAO,CAACW,CAAC,CAAC,EAAEX,OAAO,CAACM,CAAC,CAAC,CAAC;IAAA,EAC/D,CAAC;EACH,CAAC;EAED,OAAON,OAAO,CAACV,KAAK,CAAC;AACvB","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function getV2RuntimeFromDll() {
|
|
2
2
|
var _window$BRICK_NEXT_VE;
|
|
3
|
-
|
|
3
|
+
const {
|
|
4
4
|
dll
|
|
5
5
|
} = window;
|
|
6
6
|
if (dll && (_window$BRICK_NEXT_VE = window.BRICK_NEXT_VERSIONS) !== null && _window$BRICK_NEXT_VE !== void 0 && (_window$BRICK_NEXT_VE = _window$BRICK_NEXT_VE["brick-container"]) !== null && _window$BRICK_NEXT_VE !== void 0 && _window$BRICK_NEXT_VE.startsWith("2.")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getV2RuntimeFromDll.js","names":["getV2RuntimeFromDll","_window$BRICK_NEXT_VE","dll","window","BRICK_NEXT_VERSIONS","startsWith"],"sources":["../../src/getV2RuntimeFromDll.ts"],"sourcesContent":["import type {\n CustomTemplateConstructor,\n MetaI18n,\n StoryboardFunction,\n} from \"@next-core/types\";\nimport type { NextHistory } from \"./history.js\";\nimport type { IfContainer } from \"./internal/compute/checkIf.js\";\n\ninterface DLL {\n (moduleId: \"tYg3\"): Kit;\n}\n\ninterface Kit {\n getRuntime(): {\n registerCustomTemplate(\n tagName: string,\n constructor: CustomTemplateConstructor\n ): void;\n registerCustomProcessor(\n processorFullName: string,\n processorFunc: Function\n ): void;\n registerWidgetFunctions(\n widgetId: string,\n functions: StoryboardFunction[],\n widgetVersion?: string\n ): void;\n registerWidgetI18n(widgetId: string, i18nData: MetaI18n): void;\n };\n getHistory(): NextHistory;\n looseCheckIfByTransform(ifContainer: IfContainer, data: unknown): boolean;\n SingleBrickAsComponentFactory: any;\n BrickAsComponentFactory: any;\n authenticate: any;\n getAuth: any;\n isLoggedIn: any;\n logout: any;\n}\n\nexport function getV2RuntimeFromDll() {\n const { dll } = window as { dll?: DLL };\n if (\n dll &&\n window.BRICK_NEXT_VERSIONS?.[\"brick-container\"]?.startsWith(\"2.\")\n ) {\n return dll(\"tYg3\");\n }\n}\n"],"mappings":"AAuCA,OAAO,SAASA,mBAAmBA,CAAA,EAAG;EAAA,IAAAC,qBAAA;EACpC,
|
|
1
|
+
{"version":3,"file":"getV2RuntimeFromDll.js","names":["getV2RuntimeFromDll","_window$BRICK_NEXT_VE","dll","window","BRICK_NEXT_VERSIONS","startsWith"],"sources":["../../src/getV2RuntimeFromDll.ts"],"sourcesContent":["import type {\n CustomTemplateConstructor,\n MetaI18n,\n StoryboardFunction,\n} from \"@next-core/types\";\nimport type { NextHistory } from \"./history.js\";\nimport type { IfContainer } from \"./internal/compute/checkIf.js\";\n\ninterface DLL {\n (moduleId: \"tYg3\"): Kit;\n}\n\ninterface Kit {\n getRuntime(): {\n registerCustomTemplate(\n tagName: string,\n constructor: CustomTemplateConstructor\n ): void;\n registerCustomProcessor(\n processorFullName: string,\n processorFunc: Function\n ): void;\n registerWidgetFunctions(\n widgetId: string,\n functions: StoryboardFunction[],\n widgetVersion?: string\n ): void;\n registerWidgetI18n(widgetId: string, i18nData: MetaI18n): void;\n };\n getHistory(): NextHistory;\n looseCheckIfByTransform(ifContainer: IfContainer, data: unknown): boolean;\n SingleBrickAsComponentFactory: any;\n BrickAsComponentFactory: any;\n authenticate: any;\n getAuth: any;\n isLoggedIn: any;\n logout: any;\n}\n\nexport function getV2RuntimeFromDll() {\n const { dll } = window as { dll?: DLL };\n if (\n dll &&\n window.BRICK_NEXT_VERSIONS?.[\"brick-container\"]?.startsWith(\"2.\")\n ) {\n return dll(\"tYg3\");\n }\n}\n"],"mappings":"AAuCA,OAAO,SAASA,mBAAmBA,CAAA,EAAG;EAAA,IAAAC,qBAAA;EACpC,MAAM;IAAEC;EAAI,CAAC,GAAGC,MAAuB;EACvC,IACED,GAAG,KAAAD,qBAAA,GACHE,MAAM,CAACC,mBAAmB,cAAAH,qBAAA,gBAAAA,qBAAA,GAA1BA,qBAAA,CAA6B,iBAAiB,CAAC,cAAAA,qBAAA,eAA/CA,qBAAA,CAAiDI,UAAU,CAAC,IAAI,CAAC,EACjE;IACA,OAAOH,GAAG,CAAC,MAAM,CAAC;EACpB;AACF","ignoreList":[]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
1
|
import { HttpAbortError, HttpFetchError, HttpResponseError } from "@next-core/http";
|
|
3
2
|
import { i18n } from "@next-core/i18n";
|
|
4
3
|
import { getRuntime } from "./internal/Runtime.js";
|
|
@@ -23,7 +22,7 @@ export function httpErrorToString(error) {
|
|
|
23
22
|
return error.target.src;
|
|
24
23
|
}
|
|
25
24
|
if (error instanceof HttpFetchError) {
|
|
26
|
-
return i18n.t(
|
|
25
|
+
return i18n.t(`${NS}:${K.NETWORK_ERROR}`);
|
|
27
26
|
}
|
|
28
27
|
if (error instanceof HttpResponseError) {
|
|
29
28
|
if (error.responseJson) {
|
|
@@ -42,8 +41,8 @@ export function httpErrorToString(error) {
|
|
|
42
41
|
export function isUnauthenticatedError(error) {
|
|
43
42
|
return error instanceof HttpResponseError && error.response.status === 401 && !!error.responseJson && error.responseJson.code === 100003;
|
|
44
43
|
}
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
let unauthenticatedConfirming = false;
|
|
45
|
+
let lastErrorMessage;
|
|
47
46
|
|
|
48
47
|
/**
|
|
49
48
|
* 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。
|
|
@@ -64,7 +63,7 @@ export function handleHttpError(error) {
|
|
|
64
63
|
unauthenticatedConfirming = true;
|
|
65
64
|
Dialog.show({
|
|
66
65
|
type: "confirm",
|
|
67
|
-
content: i18n.t(
|
|
66
|
+
content: i18n.t(`${NS}:${K.LOGIN_TIMEOUT_MESSAGE}`)
|
|
68
67
|
}).then(() => {
|
|
69
68
|
redirectToLogin();
|
|
70
69
|
unauthenticatedConfirming = false;
|
|
@@ -76,12 +75,12 @@ export function handleHttpError(error) {
|
|
|
76
75
|
|
|
77
76
|
// eslint-disable-next-line no-console
|
|
78
77
|
console.error(error);
|
|
79
|
-
|
|
78
|
+
const message = httpErrorToString(error);
|
|
80
79
|
if (message !== lastErrorMessage) {
|
|
81
80
|
lastErrorMessage = message;
|
|
82
81
|
Dialog.show({
|
|
83
82
|
type: "error",
|
|
84
|
-
title: i18n.t(
|
|
83
|
+
title: i18n.t(`${NS}:${K.REQUEST_FAILED}`),
|
|
85
84
|
content: message,
|
|
86
85
|
contentStyle: {
|
|
87
86
|
whiteSpace: "pre-wrap",
|
|
@@ -94,13 +93,14 @@ export function handleHttpError(error) {
|
|
|
94
93
|
return;
|
|
95
94
|
}
|
|
96
95
|
function redirectToLogin() {
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
const ssoEnabled = getRuntime().getFeatureFlags()["sso-enabled"];
|
|
97
|
+
const history = getHistory();
|
|
99
98
|
setLoginStateCookie(history.location);
|
|
100
99
|
history.push(ssoEnabled ? "/sso-auth/login" : "/auth/login", {
|
|
101
|
-
from:
|
|
100
|
+
from: {
|
|
101
|
+
...history.location,
|
|
102
102
|
state: undefined
|
|
103
|
-
}
|
|
103
|
+
}
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
106
|
//# sourceMappingURL=handleHttpError.js.map
|