@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
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
1
|
import _classPrivateMethodInitSpec from "@babel/runtime/helpers/classPrivateMethodInitSpec";
|
|
4
2
|
import _classPrivateFieldInitSpec from "@babel/runtime/helpers/classPrivateFieldInitSpec";
|
|
5
3
|
import _classPrivateFieldGet from "@babel/runtime/helpers/classPrivateFieldGet2";
|
|
@@ -60,9 +58,9 @@ export class Router {
|
|
|
60
58
|
_classPrivateFieldInitSpec(this, _previousApp, void 0);
|
|
61
59
|
_classPrivateFieldInitSpec(this, _navConfig, void 0);
|
|
62
60
|
_classPrivateFieldSet(_storyboards, this, storyboards);
|
|
63
|
-
|
|
61
|
+
const _history = getHistory();
|
|
64
62
|
window.addEventListener("beforeunload", event => {
|
|
65
|
-
|
|
63
|
+
const message = _assertClassBrand(_Router_brand, this, _getBlockMessageBeforePageLave).call(this, {});
|
|
66
64
|
// See examples in https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload
|
|
67
65
|
if (message) {
|
|
68
66
|
// Cancel the event
|
|
@@ -96,83 +94,83 @@ export class Router {
|
|
|
96
94
|
return _classPrivateFieldGet(_navConfig, this);
|
|
97
95
|
}
|
|
98
96
|
bootstrap() {
|
|
99
|
-
var _this = this;
|
|
100
97
|
initAbortController();
|
|
101
|
-
|
|
98
|
+
const history = getHistory();
|
|
102
99
|
_classPrivateFieldSet(_prevLocation, this, history.location);
|
|
103
|
-
|
|
104
|
-
history.listen(
|
|
105
|
-
var
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
100
|
+
let renderId = 0;
|
|
101
|
+
history.listen(async (location, action) => {
|
|
102
|
+
var _classPrivateFieldGet2, _location$state, _location$state2, _classPrivateFieldGet4;
|
|
103
|
+
const currentRenderId = ++renderId;
|
|
104
|
+
let ignoreRendering;
|
|
105
|
+
const omittedLocationProps = {
|
|
106
|
+
hash: undefined,
|
|
107
|
+
state: undefined
|
|
108
|
+
};
|
|
109
|
+
// Omit the "key" when checking whether locations are equal in certain situations.
|
|
110
|
+
if (
|
|
111
|
+
// When current location is triggered by browser action of hash link.
|
|
112
|
+
location.key === undefined ||
|
|
113
|
+
// When current location is triggered by browser action of non-push-or-replace,
|
|
114
|
+
// such as goBack or goForward,
|
|
115
|
+
action === "POP" && (
|
|
116
|
+
// and the previous location was triggered by hash link,
|
|
117
|
+
_classPrivateFieldGet(_prevLocation, this).key === undefined ||
|
|
118
|
+
// or the previous location specified notify false.
|
|
119
|
+
((_classPrivateFieldGet2 = _classPrivateFieldGet(_prevLocation, this).state) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.notify) === false)) {
|
|
120
|
+
omittedLocationProps.key = undefined;
|
|
121
|
+
}
|
|
122
|
+
if (locationsAreEqual({
|
|
123
|
+
..._classPrivateFieldGet(_prevLocation, this),
|
|
124
|
+
...omittedLocationProps
|
|
125
|
+
}, {
|
|
126
|
+
...location,
|
|
127
|
+
...omittedLocationProps
|
|
128
|
+
}) || action !== "POP" && ((_location$state = location.state) === null || _location$state === void 0 ? void 0 : _location$state.notify) === false) {
|
|
129
|
+
// Ignore rendering if location not changed except hash, state and optional key.
|
|
130
|
+
// Ignore rendering if notify is `false`.
|
|
131
|
+
ignoreRendering = true;
|
|
132
|
+
}
|
|
133
|
+
if (!ignoreRendering && !((_location$state2 = location.state) !== null && _location$state2 !== void 0 && _location$state2.noIncremental)) {
|
|
134
|
+
var _classPrivateFieldGet3;
|
|
135
|
+
ignoreRendering = await ((_classPrivateFieldGet3 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.didPerformIncrementalRender(location, _classPrivateFieldGet(_prevLocation, this)));
|
|
136
|
+
}
|
|
135
137
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
// Ignore stale renders
|
|
139
|
+
if (renderId !== currentRenderId) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (ignoreRendering) {
|
|
143
|
+
_classPrivateFieldSet(_prevLocation, this, location);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
abortPendingRequest();
|
|
147
|
+
_classPrivateFieldSet(_prevLocation, this, location);
|
|
148
|
+
(_classPrivateFieldGet4 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.dispatchPageLeave();
|
|
149
|
+
if (action === "POP") {
|
|
150
|
+
const storyboard = matchStoryboard(_classPrivateFieldGet(_storyboards, this), location.pathname);
|
|
151
|
+
// When a browser action of goBack or goForward is performing,
|
|
152
|
+
// force reload when the target page is a page of an outside app.
|
|
153
|
+
if (isOutsideApp(storyboard)) {
|
|
154
|
+
window.location.reload();
|
|
142
155
|
return;
|
|
143
156
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
(
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
window.location.reload();
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
if (_classPrivateFieldGet(_rendering, _this)) {
|
|
157
|
-
_classPrivateFieldSet(_nextLocation, _this, location);
|
|
158
|
-
} else {
|
|
159
|
-
devtoolsHookEmit("locationChange");
|
|
160
|
-
_assertClassBrand(_Router_brand, _this, _queuedRender).call(_this, location).catch(handleHttpError);
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
return function (_x, _x2) {
|
|
164
|
-
return _ref.apply(this, arguments);
|
|
165
|
-
};
|
|
166
|
-
}());
|
|
157
|
+
}
|
|
158
|
+
if (_classPrivateFieldGet(_rendering, this)) {
|
|
159
|
+
_classPrivateFieldSet(_nextLocation, this, location);
|
|
160
|
+
} else {
|
|
161
|
+
devtoolsHookEmit("locationChange");
|
|
162
|
+
_assertClassBrand(_Router_brand, this, _queuedRender).call(this, location).catch(handleHttpError);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
167
165
|
return _assertClassBrand(_Router_brand, this, _queuedRender).call(this, history.location);
|
|
168
166
|
}
|
|
169
167
|
}
|
|
170
168
|
function _getBlockMessageBeforePageLave(detail) {
|
|
171
169
|
var _classPrivateFieldGet5;
|
|
172
|
-
|
|
173
|
-
|
|
170
|
+
const history = getHistory();
|
|
171
|
+
const previousMessage = history.getBlockMessage();
|
|
174
172
|
(_classPrivateFieldGet5 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet5 === void 0 || _classPrivateFieldGet5.dispatchBeforePageLeave(detail);
|
|
175
|
-
|
|
173
|
+
const message = history.getBlockMessage();
|
|
176
174
|
if (!previousMessage && message) {
|
|
177
175
|
// Auto unblock only if new block was introduced by `onBeforePageLeave`.
|
|
178
176
|
history.unblock();
|
|
@@ -182,7 +180,7 @@ function _getBlockMessageBeforePageLave(detail) {
|
|
|
182
180
|
function _safeRedirect(to, state, from) {
|
|
183
181
|
var _this$redirectCount, _this$redirectCount2;
|
|
184
182
|
if ((_classPrivateFieldSet(_redirectCount, this, (_this$redirectCount = _classPrivateFieldGet(_redirectCount, this), _this$redirectCount2 = _this$redirectCount++, _this$redirectCount)), _this$redirectCount2) > 10) {
|
|
185
|
-
|
|
183
|
+
const message = `Infinite redirect detected: from "${from.pathname}${from.search}${from.hash}" to "${to}"`;
|
|
186
184
|
// istanbul ignore else: error cannot be caught in test
|
|
187
185
|
if (process.env.NODE_ENV === "test") {
|
|
188
186
|
// eslint-disable-next-line no-console
|
|
@@ -194,304 +192,288 @@ function _safeRedirect(to, state, from) {
|
|
|
194
192
|
}
|
|
195
193
|
getHistory().replace(to, state);
|
|
196
194
|
}
|
|
197
|
-
function _queuedRender(
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
_classPrivateFieldSet(_rendering, this,
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
if (_classPrivateFieldGet(_nextLocation, this)) {
|
|
208
|
-
var nextLocation = _classPrivateFieldGet(_nextLocation, this);
|
|
209
|
-
_classPrivateFieldSet(_nextLocation, this, undefined);
|
|
210
|
-
yield _assertClassBrand(_Router_brand, this, _queuedRender).call(this, nextLocation);
|
|
211
|
-
}
|
|
195
|
+
async function _queuedRender(location) {
|
|
196
|
+
_classPrivateFieldSet(_rendering, this, true);
|
|
197
|
+
try {
|
|
198
|
+
await _assertClassBrand(_Router_brand, this, _render).call(this, location);
|
|
199
|
+
} finally {
|
|
200
|
+
_classPrivateFieldSet(_rendering, this, false);
|
|
201
|
+
if (_classPrivateFieldGet(_nextLocation, this)) {
|
|
202
|
+
const nextLocation = _classPrivateFieldGet(_nextLocation, this);
|
|
203
|
+
_classPrivateFieldSet(_nextLocation, this, undefined);
|
|
204
|
+
await _assertClassBrand(_Router_brand, this, _queuedRender).call(this, nextLocation);
|
|
212
205
|
}
|
|
213
|
-
}
|
|
214
|
-
return _queuedRender2.apply(this, arguments);
|
|
215
|
-
}
|
|
216
|
-
function _render(_x4) {
|
|
217
|
-
return _render2.apply(this, arguments);
|
|
206
|
+
}
|
|
218
207
|
}
|
|
219
|
-
function
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
resetAllComputedMarks();
|
|
228
|
-
clearResolveCache();
|
|
229
|
-
hooks === null || hooks === void 0 || (_hooks$flowApi = hooks.flowApi) === null || _hooks$flowApi === void 0 || _hooks$flowApi.clearCollectWidgetContract();
|
|
230
|
-
var history = getHistory();
|
|
231
|
-
history.unblock();
|
|
208
|
+
async function _render(location) {
|
|
209
|
+
var _hooks$flowApi, _hooks$pageView, _classPrivateFieldGet6, _storyboard$app;
|
|
210
|
+
const renderId = _classPrivateFieldSet(_renderId, this, uniqueId("render-id-"));
|
|
211
|
+
resetAllComputedMarks();
|
|
212
|
+
clearResolveCache();
|
|
213
|
+
hooks === null || hooks === void 0 || (_hooks$flowApi = hooks.flowApi) === null || _hooks$flowApi === void 0 || _hooks$flowApi.clearCollectWidgetContract();
|
|
214
|
+
const history = getHistory();
|
|
215
|
+
history.unblock();
|
|
232
216
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
217
|
+
// const renderStartTime = performance.now();
|
|
218
|
+
const finishPageView = hooks === null || hooks === void 0 || (_hooks$pageView = hooks.pageView) === null || _hooks$pageView === void 0 ? void 0 : _hooks$pageView.create();
|
|
219
|
+
const storyboard = matchStoryboard(_classPrivateFieldGet(_storyboards, this), location.pathname);
|
|
220
|
+
const previousApp = (_classPrivateFieldGet6 = _classPrivateFieldGet(_runtimeContext, this)) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.app;
|
|
221
|
+
const currentAppId = storyboard === null || storyboard === void 0 || (_storyboard$app = storyboard.app) === null || _storyboard$app === void 0 ? void 0 : _storyboard$app.id;
|
|
222
|
+
// dynamically change the value of the APP variable, if it's union app
|
|
223
|
+
if (window.BOOTSTRAP_UNION_FILE && currentAppId && currentAppId !== (previousApp === null || previousApp === void 0 ? void 0 : previousApp.id)) {
|
|
224
|
+
setAppVariable({
|
|
225
|
+
appId: currentAppId,
|
|
226
|
+
version: storyboard.app.currentVersion
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
if (storyboard !== null && storyboard !== void 0 && storyboard.app) {
|
|
230
|
+
await fulfilStoryboard(storyboard);
|
|
231
|
+
}
|
|
232
|
+
const currentApp = _classPrivateFieldSet(_currentApp, this, storyboard === null || storyboard === void 0 ? void 0 : storyboard.app);
|
|
233
|
+
setWatermark();
|
|
250
234
|
|
|
251
|
-
|
|
252
|
-
|
|
235
|
+
// Storyboard maybe re-assigned, e.g. when open launchpad.
|
|
236
|
+
const appChanged = previousApp && currentApp ? previousApp.id !== currentApp.id : previousApp !== currentApp;
|
|
253
237
|
|
|
254
|
-
|
|
238
|
+
// TODO: handle favicon
|
|
255
239
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
240
|
+
// Set `Router::#currentApp` before calling `getFeatureFlags()`
|
|
241
|
+
const flags = getRuntime().getFeatureFlags();
|
|
242
|
+
const prevRendererContext = _classPrivateFieldGet(_rendererContext, this);
|
|
243
|
+
const redirectTo = (to, state) => {
|
|
244
|
+
finishPageView === null || finishPageView === void 0 || finishPageView({
|
|
245
|
+
status: "redirected"
|
|
246
|
+
});
|
|
247
|
+
_classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
|
|
248
|
+
_assertClassBrand(_Router_brand, this, _safeRedirect).call(this, to, state, location);
|
|
249
|
+
};
|
|
250
|
+
const redirectToLogin = () => {
|
|
251
|
+
const to = flags["sso-enabled"] ? "/sso-auth/login" : "/auth/login";
|
|
252
|
+
setLoginStateCookie(location);
|
|
253
|
+
redirectTo(to, {
|
|
254
|
+
from: location
|
|
255
|
+
});
|
|
256
|
+
};
|
|
257
|
+
const main = document.querySelector("#main-mount-point");
|
|
258
|
+
const portal = document.querySelector("#portal-mount-point");
|
|
259
|
+
const renderRoot = {
|
|
260
|
+
tag: RenderTag.ROOT,
|
|
261
|
+
container: main,
|
|
262
|
+
createPortal: portal
|
|
263
|
+
};
|
|
264
|
+
const cleanUpPreviousRender = () => {
|
|
265
|
+
var _hooks$messageDispatc;
|
|
266
|
+
unmountTree(main);
|
|
267
|
+
unmountTree(portal);
|
|
284
268
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
_classPrivateFieldGet(_rendererContextTrashCan, this).clear();
|
|
294
|
-
hooks === null || hooks === void 0 || (_hooks$messageDispatc = hooks.messageDispatcher) === null || _hooks$messageDispatc === void 0 || _hooks$messageDispatc.reset();
|
|
295
|
-
if (appChanged) {
|
|
296
|
-
_classPrivateFieldSet(_previousApp, this, previousApp);
|
|
297
|
-
window.dispatchEvent(new CustomEvent("app.change", {
|
|
298
|
-
detail: {
|
|
299
|
-
previousApp,
|
|
300
|
-
currentApp
|
|
301
|
-
}
|
|
302
|
-
}));
|
|
269
|
+
// Note: redirects can lead to multiple trash renderer contexts.
|
|
270
|
+
_classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
|
|
271
|
+
for (const item of _classPrivateFieldGet(_rendererContextTrashCan, this)) {
|
|
272
|
+
if (item) {
|
|
273
|
+
item.dispatchOnUnmount();
|
|
274
|
+
item.dispose();
|
|
303
275
|
}
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
if (
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
redirectToLogin();
|
|
314
|
-
return true;
|
|
315
|
-
}
|
|
316
|
-
if (output.redirect) {
|
|
317
|
-
redirectTo(output.redirect.path, output.redirect.state);
|
|
318
|
-
return true;
|
|
319
|
-
}
|
|
320
|
-
// Reset redirect count if no redirect is set.
|
|
321
|
-
_classPrivateFieldSet(_redirectCount, this, 0);
|
|
322
|
-
},
|
|
323
|
-
mergeMenus: function () {
|
|
324
|
-
var _ref2 = _asyncToGenerator(function* (menuRequests) {
|
|
325
|
-
var menuConfs = yield Promise.all(menuRequests);
|
|
326
|
-
_classPrivateFieldSet(_navConfig, _this2, mergeMenuConfs(menuConfs));
|
|
327
|
-
window.dispatchEvent(new CustomEvent("navConfig.change", {
|
|
328
|
-
detail: _classPrivateFieldGet(_navConfig, _this2)
|
|
329
|
-
}));
|
|
330
|
-
});
|
|
331
|
-
return function mergeMenus(_x5) {
|
|
332
|
-
return _ref2.apply(this, arguments);
|
|
333
|
-
};
|
|
334
|
-
}(),
|
|
335
|
-
catch: (error, returnNode) => {
|
|
336
|
-
if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {
|
|
337
|
-
redirectToLogin();
|
|
338
|
-
return;
|
|
339
|
-
} else if (error instanceof HttpAbortError) {
|
|
340
|
-
_classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
|
|
341
|
-
return;
|
|
342
|
-
} else {
|
|
343
|
-
var noAuthGuardLoginPath = getRuntime().getMiscSettings().noAuthGuardLoginPath;
|
|
344
|
-
if (isUnauthenticatedError(error) && noAuthGuardLoginPath) {
|
|
345
|
-
redirectTo(noAuthGuardLoginPath, {
|
|
346
|
-
from: location
|
|
347
|
-
});
|
|
348
|
-
return;
|
|
349
|
-
}
|
|
350
|
-
return {
|
|
351
|
-
failed: true,
|
|
352
|
-
output: {
|
|
353
|
-
node: {
|
|
354
|
-
tag: RenderTag.BRICK,
|
|
355
|
-
type: "div",
|
|
356
|
-
properties: {
|
|
357
|
-
textContent: httpErrorToString(error),
|
|
358
|
-
style: {
|
|
359
|
-
color: "var(--color-error)"
|
|
360
|
-
}
|
|
361
|
-
},
|
|
362
|
-
runtimeContext: null,
|
|
363
|
-
return: returnNode
|
|
364
|
-
},
|
|
365
|
-
blockingList: []
|
|
366
|
-
}
|
|
367
|
-
};
|
|
368
|
-
}
|
|
276
|
+
}
|
|
277
|
+
_classPrivateFieldGet(_rendererContextTrashCan, this).clear();
|
|
278
|
+
hooks === null || hooks === void 0 || (_hooks$messageDispatc = hooks.messageDispatcher) === null || _hooks$messageDispatc === void 0 || _hooks$messageDispatc.reset();
|
|
279
|
+
if (appChanged) {
|
|
280
|
+
_classPrivateFieldSet(_previousApp, this, previousApp);
|
|
281
|
+
window.dispatchEvent(new CustomEvent("app.change", {
|
|
282
|
+
detail: {
|
|
283
|
+
previousApp,
|
|
284
|
+
currentApp
|
|
369
285
|
}
|
|
370
|
-
};
|
|
371
|
-
var rendererContext = _classPrivateFieldSet(_rendererContext, this, new RendererContext("page", {
|
|
372
|
-
routeHelper,
|
|
373
|
-
renderId
|
|
374
286
|
}));
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
registerCustomTemplates(storyboard);
|
|
392
|
-
registerStoryboardFunctions((_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.functions, currentApp);
|
|
393
|
-
hooks === null || hooks === void 0 || (_hooks$flowApi2 = hooks.flowApi) === null || _hooks$flowApi2 === void 0 || _hooks$flowApi2.collectContract((_storyboard$meta2 = storyboard.meta) === null || _storyboard$meta2 === void 0 ? void 0 : _storyboard$meta2.contracts);
|
|
394
|
-
var failed = false;
|
|
395
|
-
var output;
|
|
396
|
-
var stores = [];
|
|
397
|
-
try {
|
|
398
|
-
var rootMenuRequestNode = {};
|
|
399
|
-
output = yield renderRoutes(renderRoot, insertPreviewRoutes(storyboard.routes), runtimeContext, rendererContext, [], rootMenuRequestNode);
|
|
400
|
-
if (routeHelper.bailout(output)) {
|
|
401
|
-
return;
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
setTheme(currentApp && (getLocalAppsTheme()[currentApp.id] || currentApp.theme) || "light");
|
|
290
|
+
setMode("default");
|
|
291
|
+
if (currentApp) {
|
|
292
|
+
var _hooks$checkInstalled, _hooks$auth, _hooks$checkPermissio, _storyboard$meta, _hooks$flowApi2, _storyboard$meta2;
|
|
293
|
+
hooks === null || hooks === void 0 || (_hooks$checkInstalled = hooks.checkInstalledApps) === null || _hooks$checkInstalled === void 0 || _hooks$checkInstalled.preCheckInstalledApps(storyboard, appId => !!_internalApiGetAppInBootstrapData(appId));
|
|
294
|
+
const routeHelper = {
|
|
295
|
+
bailout: output => {
|
|
296
|
+
if (output.unauthenticated) {
|
|
297
|
+
redirectToLogin();
|
|
298
|
+
return true;
|
|
299
|
+
}
|
|
300
|
+
if (output.redirect) {
|
|
301
|
+
redirectTo(output.redirect.path, output.redirect.state);
|
|
302
|
+
return true;
|
|
402
303
|
}
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
304
|
+
// Reset redirect count if no redirect is set.
|
|
305
|
+
_classPrivateFieldSet(_redirectCount, this, 0);
|
|
306
|
+
},
|
|
307
|
+
mergeMenus: async menuRequests => {
|
|
308
|
+
const menuConfs = await Promise.all(menuRequests);
|
|
309
|
+
_classPrivateFieldSet(_navConfig, this, mergeMenuConfs(menuConfs));
|
|
310
|
+
window.dispatchEvent(new CustomEvent("navConfig.change", {
|
|
311
|
+
detail: _classPrivateFieldGet(_navConfig, this)
|
|
312
|
+
}));
|
|
313
|
+
},
|
|
314
|
+
catch: (error, returnNode) => {
|
|
315
|
+
if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {
|
|
316
|
+
redirectToLogin();
|
|
317
|
+
return;
|
|
318
|
+
} else if (error instanceof HttpAbortError) {
|
|
319
|
+
_classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
|
|
413
320
|
return;
|
|
321
|
+
} else {
|
|
322
|
+
const noAuthGuardLoginPath = getRuntime().getMiscSettings().noAuthGuardLoginPath;
|
|
323
|
+
if (isUnauthenticatedError(error) && noAuthGuardLoginPath) {
|
|
324
|
+
redirectTo(noAuthGuardLoginPath, {
|
|
325
|
+
from: location
|
|
326
|
+
});
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
return {
|
|
330
|
+
failed: true,
|
|
331
|
+
output: {
|
|
332
|
+
node: {
|
|
333
|
+
tag: RenderTag.BRICK,
|
|
334
|
+
type: "div",
|
|
335
|
+
properties: {
|
|
336
|
+
textContent: httpErrorToString(error),
|
|
337
|
+
dataset: {
|
|
338
|
+
errorBoundary: ""
|
|
339
|
+
},
|
|
340
|
+
style: {
|
|
341
|
+
color: "var(--color-error)"
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
runtimeContext: null,
|
|
345
|
+
return: returnNode
|
|
346
|
+
},
|
|
347
|
+
blockingList: []
|
|
348
|
+
}
|
|
349
|
+
};
|
|
414
350
|
}
|
|
415
|
-
({
|
|
416
|
-
failed,
|
|
417
|
-
output
|
|
418
|
-
} = result);
|
|
419
351
|
}
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
352
|
+
};
|
|
353
|
+
const rendererContext = _classPrivateFieldSet(_rendererContext, this, new RendererContext("page", {
|
|
354
|
+
routeHelper,
|
|
355
|
+
renderId
|
|
356
|
+
}));
|
|
357
|
+
const runtimeContext = _classPrivateFieldSet(_runtimeContext, this, {
|
|
358
|
+
app: currentApp,
|
|
359
|
+
location,
|
|
360
|
+
query: new URLSearchParams(location.search),
|
|
361
|
+
flags,
|
|
362
|
+
sys: {
|
|
363
|
+
...(hooks === null || hooks === void 0 || (_hooks$auth = hooks.auth) === null || _hooks$auth === void 0 ? void 0 : _hooks$auth.getAuth()),
|
|
364
|
+
...getPageInfo(),
|
|
365
|
+
settings: {
|
|
366
|
+
brand: getRuntime().getBrandSettings()
|
|
426
367
|
}
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
368
|
+
},
|
|
369
|
+
ctxStore: new DataStore("CTX", undefined, rendererContext),
|
|
370
|
+
pendingPermissionsPreCheck: [hooks === null || hooks === void 0 || (_hooks$checkPermissio = hooks.checkPermissions) === null || _hooks$checkPermissio === void 0 ? void 0 : _hooks$checkPermissio.preCheckPermissions(storyboard)],
|
|
371
|
+
tplStateStoreMap: new Map(),
|
|
372
|
+
formStateStoreMap: new Map()
|
|
373
|
+
});
|
|
374
|
+
_classPrivateFieldSet(_navConfig, this, undefined);
|
|
375
|
+
registerCustomTemplates(storyboard);
|
|
376
|
+
registerStoryboardFunctions((_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.functions, currentApp);
|
|
377
|
+
hooks === null || hooks === void 0 || (_hooks$flowApi2 = hooks.flowApi) === null || _hooks$flowApi2 === void 0 || _hooks$flowApi2.collectContract((_storyboard$meta2 = storyboard.meta) === null || _storyboard$meta2 === void 0 ? void 0 : _storyboard$meta2.contracts);
|
|
378
|
+
let failed = false;
|
|
379
|
+
let output;
|
|
380
|
+
let stores = [];
|
|
381
|
+
try {
|
|
382
|
+
const rootMenuRequestNode = {};
|
|
383
|
+
output = await renderRoutes(renderRoot, insertPreviewRoutes(storyboard.routes), runtimeContext, rendererContext, [], rootMenuRequestNode);
|
|
384
|
+
if (routeHelper.bailout(output)) {
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
stores = getDataStores(runtimeContext);
|
|
388
|
+
await postAsyncRender(output, runtimeContext, stores);
|
|
389
|
+
rootMenuRequestNode.child = output.menuRequestNode;
|
|
390
|
+
rendererContext.setInitialMenuRequestNode(rootMenuRequestNode);
|
|
391
|
+
await routeHelper.mergeMenus(rendererContext.getMenuRequests());
|
|
392
|
+
} catch (error) {
|
|
393
|
+
// eslint-disable-next-line no-console
|
|
394
|
+
console.error("Router failed:", error);
|
|
395
|
+
const result = routeHelper.catch(error, renderRoot);
|
|
396
|
+
if (!result) {
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
({
|
|
400
|
+
failed,
|
|
401
|
+
output
|
|
402
|
+
} = result);
|
|
403
|
+
}
|
|
404
|
+
renderRoot.child = output.node;
|
|
405
|
+
cleanUpPreviousRender();
|
|
406
|
+
if (output.route && output.route.type !== "routes" || failed) {
|
|
407
|
+
if (!failed) {
|
|
408
|
+
// There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.
|
|
409
|
+
rendererContext.dispatchBeforePageLoad();
|
|
410
|
+
}
|
|
411
|
+
applyTheme();
|
|
412
|
+
applyMode();
|
|
413
|
+
setUIVersion(currentApp === null || currentApp === void 0 ? void 0 : currentApp.uiVersion);
|
|
414
|
+
mountTree(renderRoot);
|
|
431
415
|
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
}
|
|
445
|
-
finishPageView === null || finishPageView === void 0 || finishPageView({
|
|
446
|
-
status: "ok",
|
|
447
|
-
path: output.path,
|
|
448
|
-
pageTitle: document.title
|
|
449
|
-
});
|
|
450
|
-
} else {
|
|
451
|
-
finishPageView === null || finishPageView === void 0 || finishPageView({
|
|
452
|
-
status: "failed"
|
|
453
|
-
});
|
|
416
|
+
// Scroll to top after each rendering.
|
|
417
|
+
// See https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/guides/scroll-restoration.md
|
|
418
|
+
window.scrollTo(0, 0);
|
|
419
|
+
if (!failed) {
|
|
420
|
+
rendererContext.dispatchPageLoad();
|
|
421
|
+
rendererContext.dispatchAnchorLoad();
|
|
422
|
+
rendererContext.dispatchOnMount();
|
|
423
|
+
rendererContext.initializeScrollIntoView();
|
|
424
|
+
rendererContext.initializeMediaChange();
|
|
425
|
+
rendererContext.initializeMessageDispatcher();
|
|
426
|
+
for (const store of stores) {
|
|
427
|
+
store.mountAsyncData();
|
|
454
428
|
}
|
|
455
|
-
|
|
456
|
-
|
|
429
|
+
finishPageView === null || finishPageView === void 0 || finishPageView({
|
|
430
|
+
status: "ok",
|
|
431
|
+
path: output.path,
|
|
432
|
+
pageTitle: document.title
|
|
433
|
+
});
|
|
434
|
+
} else {
|
|
435
|
+
finishPageView === null || finishPageView === void 0 || finishPageView({
|
|
436
|
+
status: "failed"
|
|
437
|
+
});
|
|
457
438
|
}
|
|
458
|
-
|
|
459
|
-
// Todo(steve): refine after api-gateway supports fetching storyboards before logged in.
|
|
460
|
-
// Redirect to login if no storyboard is matched.
|
|
461
|
-
redirectToLogin();
|
|
439
|
+
devtoolsHookEmit("rendered");
|
|
462
440
|
return;
|
|
463
|
-
} else {
|
|
464
|
-
cleanUpPreviousRender();
|
|
465
441
|
}
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
442
|
+
} else if (!window.NO_AUTH_GUARD && hooks !== null && hooks !== void 0 && hooks.auth && !hooks.auth.isLoggedIn()) {
|
|
443
|
+
// Todo(steve): refine after api-gateway supports fetching storyboards before logged in.
|
|
444
|
+
// Redirect to login if no storyboard is matched.
|
|
445
|
+
redirectToLogin();
|
|
446
|
+
return;
|
|
447
|
+
} else {
|
|
448
|
+
cleanUpPreviousRender();
|
|
449
|
+
}
|
|
450
|
+
applyTheme();
|
|
451
|
+
applyMode();
|
|
452
|
+
const node = {
|
|
453
|
+
tag: RenderTag.BRICK,
|
|
454
|
+
type: "div",
|
|
455
|
+
properties: {
|
|
456
|
+
textContent: "Page not found"
|
|
457
|
+
},
|
|
458
|
+
runtimeContext: null,
|
|
459
|
+
return: renderRoot
|
|
460
|
+
};
|
|
461
|
+
renderRoot.child = node;
|
|
462
|
+
mountTree(renderRoot);
|
|
479
463
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
});
|
|
485
|
-
devtoolsHookEmit("rendered");
|
|
464
|
+
// Scroll to top after each rendering.
|
|
465
|
+
window.scrollTo(0, 0);
|
|
466
|
+
finishPageView === null || finishPageView === void 0 || finishPageView({
|
|
467
|
+
status: "not-found"
|
|
486
468
|
});
|
|
487
|
-
|
|
469
|
+
devtoolsHookEmit("rendered");
|
|
488
470
|
}
|
|
489
471
|
function mergeMenuConfs(menuConfs) {
|
|
490
|
-
|
|
472
|
+
const navConfig = {
|
|
491
473
|
breadcrumb: []
|
|
492
474
|
};
|
|
493
|
-
for (
|
|
494
|
-
|
|
475
|
+
for (const menuConf of menuConfs) {
|
|
476
|
+
const {
|
|
495
477
|
breadcrumb
|
|
496
478
|
} = menuConf;
|
|
497
479
|
if (breadcrumb) {
|