@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.
Files changed (219) hide show
  1. package/dist/cjs/CustomProcessors.js.map +1 -1
  2. package/dist/cjs/CustomTemplates.js +7 -11
  3. package/dist/cjs/CustomTemplates.js.map +1 -1
  4. package/dist/cjs/createRoot.js +11 -5
  5. package/dist/cjs/createRoot.js.map +1 -1
  6. package/dist/cjs/getPageInfo.js.map +1 -1
  7. package/dist/cjs/handleHttpError.js.map +1 -1
  8. package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js +4 -5
  9. package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
  10. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +4 -7
  11. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  12. package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js +21 -24
  13. package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
  14. package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js +4 -7
  15. package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
  16. package/dist/cjs/internal/CustomTemplates/utils.js +3 -3
  17. package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -1
  18. package/dist/cjs/internal/FormRenderer/expandFormRenderer.js +3 -3
  19. package/dist/cjs/internal/FormRenderer/expandFormRenderer.js.map +1 -1
  20. package/dist/cjs/internal/FormRenderer/utils.js +2 -2
  21. package/dist/cjs/internal/FormRenderer/utils.js.map +1 -1
  22. package/dist/cjs/internal/Renderer.js +11 -14
  23. package/dist/cjs/internal/Renderer.js.map +1 -1
  24. package/dist/cjs/internal/RendererContext.js +8 -10
  25. package/dist/cjs/internal/RendererContext.js.map +1 -1
  26. package/dist/cjs/internal/Router.js +3 -0
  27. package/dist/cjs/internal/Router.js.map +1 -1
  28. package/dist/cjs/internal/Runtime.js +14 -14
  29. package/dist/cjs/internal/Runtime.js.map +1 -1
  30. package/dist/cjs/internal/bindListeners.js +2 -3
  31. package/dist/cjs/internal/bindListeners.js.map +1 -1
  32. package/dist/cjs/internal/compute/WidgetFunctions.js.map +1 -1
  33. package/dist/cjs/internal/compute/evaluate.js +4 -4
  34. package/dist/cjs/internal/compute/evaluate.js.map +1 -1
  35. package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -1
  36. package/dist/cjs/internal/compute/getStorageItem.js +1 -2
  37. package/dist/cjs/internal/compute/getStorageItem.js.map +1 -1
  38. package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -1
  39. package/dist/cjs/internal/compute/setRealProperties.js.map +1 -1
  40. package/dist/cjs/internal/data/DataStore.js.map +1 -1
  41. package/dist/cjs/internal/data/getProviderBrick.js.map +1 -1
  42. package/dist/cjs/internal/data/realTimeDataInspect.js.map +1 -1
  43. package/dist/cjs/internal/data/resolveData.js.map +1 -1
  44. package/dist/cjs/internal/data/resolveDataStore.js +2 -4
  45. package/dist/cjs/internal/data/resolveDataStore.js.map +1 -1
  46. package/dist/cjs/internal/hasInstalledApp.js.map +1 -1
  47. package/dist/cjs/internal/historyExtended.js.map +1 -1
  48. package/dist/cjs/internal/matchPath.js.map +1 -1
  49. package/dist/cjs/internal/matchRoutes.js.map +1 -1
  50. package/dist/cjs/internal/matchStoryboard.js +2 -2
  51. package/dist/cjs/internal/matchStoryboard.js.map +1 -1
  52. package/dist/cjs/internal/mediaQuery.js.map +1 -1
  53. package/dist/cjs/internal/mount.js.map +1 -1
  54. package/dist/cjs/internal/poll.js +3 -3
  55. package/dist/cjs/internal/poll.js.map +1 -1
  56. package/dist/cjs/internal/registerAppI18n.js.map +1 -1
  57. package/dist/cjs/internal/registerCustomTemplates.js.map +1 -1
  58. package/dist/cjs/internal/secret_internals.js +4 -4
  59. package/dist/cjs/internal/secret_internals.js.map +1 -1
  60. package/dist/cjs/internal/setupRootRuntimeContext.js +2 -3
  61. package/dist/cjs/internal/setupRootRuntimeContext.js.map +1 -1
  62. package/dist/cjs/isStrictMode.js.map +1 -1
  63. package/dist/cjs/setLoginStateCookie.js.map +1 -1
  64. package/dist/cjs/setWatermark.js +4 -4
  65. package/dist/cjs/setWatermark.js.map +1 -1
  66. package/dist/cjs/themeAndMode.js +1 -2
  67. package/dist/cjs/themeAndMode.js.map +1 -1
  68. package/dist/esm/CustomProcessors.js +5 -5
  69. package/dist/esm/CustomProcessors.js.map +1 -1
  70. package/dist/esm/CustomTemplates.js +48 -58
  71. package/dist/esm/CustomTemplates.js.map +1 -1
  72. package/dist/esm/Dialog.js +3 -3
  73. package/dist/esm/Dialog.js.map +1 -1
  74. package/dist/esm/Notification.js +2 -2
  75. package/dist/esm/Notification.js.map +1 -1
  76. package/dist/esm/StoryboardFunctionRegistry.js +18 -18
  77. package/dist/esm/StoryboardFunctionRegistry.js.map +1 -1
  78. package/dist/esm/createRoot.js +125 -123
  79. package/dist/esm/createRoot.js.map +1 -1
  80. package/dist/esm/fetchByProvider.js +3 -10
  81. package/dist/esm/fetchByProvider.js.map +1 -1
  82. package/dist/esm/getBasePath.js +2 -2
  83. package/dist/esm/getBasePath.js.map +1 -1
  84. package/dist/esm/getPageInfo.js +5 -5
  85. package/dist/esm/getPageInfo.js.map +1 -1
  86. package/dist/esm/getRealValue.js +7 -6
  87. package/dist/esm/getRealValue.js.map +1 -1
  88. package/dist/esm/getV2RuntimeFromDll.js +1 -1
  89. package/dist/esm/getV2RuntimeFromDll.js.map +1 -1
  90. package/dist/esm/handleHttpError.js +11 -11
  91. package/dist/esm/handleHttpError.js.map +1 -1
  92. package/dist/esm/history.js +4 -4
  93. package/dist/esm/history.js.map +1 -1
  94. package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +13 -17
  95. package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
  96. package/dist/esm/internal/CustomTemplates/constants.js +5 -5
  97. package/dist/esm/internal/CustomTemplates/constants.js.map +1 -1
  98. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +41 -42
  99. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  100. package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +43 -46
  101. package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
  102. package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js +16 -18
  103. package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
  104. package/dist/esm/internal/CustomTemplates/utils.js +8 -8
  105. package/dist/esm/internal/CustomTemplates/utils.js.map +1 -1
  106. package/dist/esm/internal/FormRenderer/constants.js +2 -2
  107. package/dist/esm/internal/FormRenderer/constants.js.map +1 -1
  108. package/dist/esm/internal/FormRenderer/expandFormRenderer.js +28 -23
  109. package/dist/esm/internal/FormRenderer/expandFormRenderer.js.map +1 -1
  110. package/dist/esm/internal/FormRenderer/getDefaultProperties.js +45 -22
  111. package/dist/esm/internal/FormRenderer/getDefaultProperties.js.map +1 -1
  112. package/dist/esm/internal/FormRenderer/utils.js +4 -4
  113. package/dist/esm/internal/FormRenderer/utils.js.map +1 -1
  114. package/dist/esm/internal/Renderer.js +517 -577
  115. package/dist/esm/internal/Renderer.js.map +1 -1
  116. package/dist/esm/internal/RendererContext.js +132 -148
  117. package/dist/esm/internal/RendererContext.js.map +1 -1
  118. package/dist/esm/internal/Router.js +325 -343
  119. package/dist/esm/internal/Router.js.map +1 -1
  120. package/dist/esm/internal/Runtime.js +53 -51
  121. package/dist/esm/internal/Runtime.js.map +1 -1
  122. package/dist/esm/internal/abortController.js +7 -6
  123. package/dist/esm/internal/abortController.js.map +1 -1
  124. package/dist/esm/internal/bindListeners.js +136 -156
  125. package/dist/esm/internal/bindListeners.js.map +1 -1
  126. package/dist/esm/internal/compute/StoryboardFunctions.js +1 -1
  127. package/dist/esm/internal/compute/StoryboardFunctions.js.map +1 -1
  128. package/dist/esm/internal/compute/WidgetFunctions.js +6 -6
  129. package/dist/esm/internal/compute/WidgetFunctions.js.map +1 -1
  130. package/dist/esm/internal/compute/WidgetI18n.js +4 -4
  131. package/dist/esm/internal/compute/WidgetI18n.js.map +1 -1
  132. package/dist/esm/internal/compute/checkIf.js +10 -23
  133. package/dist/esm/internal/compute/checkIf.js.map +1 -1
  134. package/dist/esm/internal/compute/computeRealProperties.js +22 -35
  135. package/dist/esm/internal/compute/computeRealProperties.js.map +1 -1
  136. package/dist/esm/internal/compute/computeRealValue.js +42 -49
  137. package/dist/esm/internal/compute/computeRealValue.js.map +1 -1
  138. package/dist/esm/internal/compute/evaluate.js +71 -75
  139. package/dist/esm/internal/compute/evaluate.js.map +1 -1
  140. package/dist/esm/internal/compute/getGeneralGlobals.js +5 -5
  141. package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -1
  142. package/dist/esm/internal/compute/getNextStateOfUseBrick.js +1 -1
  143. package/dist/esm/internal/compute/getStorageItem.js +2 -3
  144. package/dist/esm/internal/compute/getStorageItem.js.map +1 -1
  145. package/dist/esm/internal/compute/getTracks.js +5 -5
  146. package/dist/esm/internal/compute/getTracks.js.map +1 -1
  147. package/dist/esm/internal/compute/listenOnTrackingContext.js +8 -11
  148. package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
  149. package/dist/esm/internal/compute/markAsComputed.js +2 -2
  150. package/dist/esm/internal/compute/markAsComputed.js.map +1 -1
  151. package/dist/esm/internal/compute/setProperties.js +1 -1
  152. package/dist/esm/internal/compute/setProperties.js.map +1 -1
  153. package/dist/esm/internal/compute/setRealProperties.js +3 -3
  154. package/dist/esm/internal/compute/setRealProperties.js.map +1 -1
  155. package/dist/esm/internal/customizeColorTheme.js +15 -13
  156. package/dist/esm/internal/customizeColorTheme.js.map +1 -1
  157. package/dist/esm/internal/data/DataStore.js +161 -177
  158. package/dist/esm/internal/data/DataStore.js.map +1 -1
  159. package/dist/esm/internal/data/getProviderBrick.js +21 -28
  160. package/dist/esm/internal/data/getProviderBrick.js.map +1 -1
  161. package/dist/esm/internal/data/realTimeDataInspect.js +5 -5
  162. package/dist/esm/internal/data/realTimeDataInspect.js.map +1 -1
  163. package/dist/esm/internal/data/resolveData.js +89 -103
  164. package/dist/esm/internal/data/resolveData.js.map +1 -1
  165. package/dist/esm/internal/data/resolveDataStore.js +53 -67
  166. package/dist/esm/internal/data/resolveDataStore.js.map +1 -1
  167. package/dist/esm/internal/devtools.js +9 -9
  168. package/dist/esm/internal/devtools.js.map +1 -1
  169. package/dist/esm/internal/enums.js +1 -1
  170. package/dist/esm/internal/fulfilStoryboard.js +15 -28
  171. package/dist/esm/internal/fulfilStoryboard.js.map +1 -1
  172. package/dist/esm/internal/hasInstalledApp.js +3 -3
  173. package/dist/esm/internal/hasInstalledApp.js.map +1 -1
  174. package/dist/esm/internal/historyExtended.js +40 -37
  175. package/dist/esm/internal/historyExtended.js.map +1 -1
  176. package/dist/esm/internal/i18n.js +5 -5
  177. package/dist/esm/internal/i18n.js.map +1 -1
  178. package/dist/esm/internal/injected.js +1 -1
  179. package/dist/esm/internal/injected.js.map +1 -1
  180. package/dist/esm/internal/insertPreviewRoutes.js +3 -3
  181. package/dist/esm/internal/insertPreviewRoutes.js.map +1 -1
  182. package/dist/esm/internal/matchPath.js +17 -17
  183. package/dist/esm/internal/matchPath.js.map +1 -1
  184. package/dist/esm/internal/matchRoutes.js +18 -25
  185. package/dist/esm/internal/matchRoutes.js.map +1 -1
  186. package/dist/esm/internal/matchStoryboard.js +6 -6
  187. package/dist/esm/internal/matchStoryboard.js.map +1 -1
  188. package/dist/esm/internal/mediaQuery.js +11 -11
  189. package/dist/esm/internal/mediaQuery.js.map +1 -1
  190. package/dist/esm/internal/mount.js +7 -7
  191. package/dist/esm/internal/mount.js.map +1 -1
  192. package/dist/esm/internal/poll.js +53 -60
  193. package/dist/esm/internal/poll.js.map +1 -1
  194. package/dist/esm/internal/proxyFactories.js +4 -4
  195. package/dist/esm/internal/proxyFactories.js.map +1 -1
  196. package/dist/esm/internal/registerAppI18n.js +6 -6
  197. package/dist/esm/internal/registerAppI18n.js.map +1 -1
  198. package/dist/esm/internal/registerCustomTemplates.js +3 -3
  199. package/dist/esm/internal/registerCustomTemplates.js.map +1 -1
  200. package/dist/esm/internal/secret_internals.js +140 -146
  201. package/dist/esm/internal/secret_internals.js.map +1 -1
  202. package/dist/esm/internal/setupRootRuntimeContext.js +6 -7
  203. package/dist/esm/internal/setupRootRuntimeContext.js.map +1 -1
  204. package/dist/esm/internal/sse.js +24 -53
  205. package/dist/esm/internal/sse.js.map +1 -1
  206. package/dist/esm/internal/test_only.js +1 -1
  207. package/dist/esm/isStrictMode.js +3 -3
  208. package/dist/esm/isStrictMode.js.map +1 -1
  209. package/dist/esm/setAppVariable.js +1 -1
  210. package/dist/esm/setAppVariable.js.map +1 -1
  211. package/dist/esm/setLoginStateCookie.js +5 -5
  212. package/dist/esm/setLoginStateCookie.js.map +1 -1
  213. package/dist/esm/setUIVersion.js +1 -1
  214. package/dist/esm/setWatermark.js +13 -13
  215. package/dist/esm/setWatermark.js.map +1 -1
  216. package/dist/esm/themeAndMode.js +14 -13
  217. package/dist/esm/themeAndMode.js.map +1 -1
  218. package/dist/types/tsdoc-metadata.json +1 -1
  219. package/package.json +12 -12
@@ -1,11 +1,3 @@
1
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
4
- var _excluded = ["blockingList", "node", "menuRequestNode", "hasTrackingControls"],
5
- _excluded2 = ["if", "permissionsPreCheck"],
6
- _excluded3 = ["formData"],
7
- _excluded4 = ["src"],
8
- _excluded5 = ["href"];
9
1
  import { enqueueStableLoadBricks, flushStableLoadBricks, loadBricksImperatively, loadProcessorsImperatively, loadScript, loadStyle } from "@next-core/loader";
10
2
  import { isTrackAll } from "@next-core/cook";
11
3
  import { hasOwnProperty } from "@next-core/utils/general";
@@ -33,581 +25,534 @@ import { matchHomepage } from "./matchStoryboard.js";
33
25
  import { listenerFactory } from "./bindListeners.js";
34
26
  import { setupRootRuntimeContext } from "./setupRootRuntimeContext.js";
35
27
  import { httpErrorToString } from "../handleHttpError.js";
36
- export function renderRoutes(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8) {
37
- return _renderRoutes.apply(this, arguments);
38
- }
39
- function _renderRoutes() {
40
- _renderRoutes = _asyncToGenerator(function* (returnNode, routes, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, isIncremental) {
41
- var matched = yield matchRoutes(routes, _runtimeContext);
42
- var output = getEmptyRenderOutput();
43
- var menuRequestNode = output.menuRequestNode = {
44
- return: menuRequestReturnNode
45
- };
46
- switch (matched) {
47
- case "missed":
48
- break;
49
- case "unauthenticated":
50
- output.unauthenticated = true;
51
- break;
52
- default:
53
- {
54
- var _hooks$checkPermissio;
55
- var route = output.route = matched.route;
56
- output.path = matched.match.path;
57
- var runtimeContext = _objectSpread(_objectSpread({}, _runtimeContext), {}, {
58
- match: matched.match
59
- });
60
- if (isIncremental) {
61
- runtimeContext.ctxStore.disposeDataInRoutes(routes);
62
- }
63
- var routePath = parentRoutes.concat(route);
64
- runtimeContext.ctxStore.define(route.context, runtimeContext, undefined, routePath);
65
- runtimeContext.pendingPermissionsPreCheck.push(hooks === null || hooks === void 0 || (_hooks$checkPermissio = hooks.checkPermissions) === null || _hooks$checkPermissio === void 0 ? void 0 : _hooks$checkPermissio.preCheckPermissionsForBrickOrRoute(route, value => asyncComputeRealValue(value, runtimeContext)));
28
+ export async function renderRoutes(returnNode, routes, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, isIncremental) {
29
+ const matched = await matchRoutes(routes, _runtimeContext);
30
+ const output = getEmptyRenderOutput();
31
+ const menuRequestNode = output.menuRequestNode = {
32
+ return: menuRequestReturnNode
33
+ };
34
+ switch (matched) {
35
+ case "missed":
36
+ break;
37
+ case "unauthenticated":
38
+ output.unauthenticated = true;
39
+ break;
40
+ default:
41
+ {
42
+ var _hooks$checkPermissio;
43
+ const route = output.route = matched.route;
44
+ output.path = matched.match.path;
45
+ const runtimeContext = {
46
+ ..._runtimeContext,
47
+ match: matched.match
48
+ };
49
+ if (isIncremental) {
50
+ runtimeContext.ctxStore.disposeDataInRoutes(routes);
51
+ }
52
+ const routePath = parentRoutes.concat(route);
53
+ runtimeContext.ctxStore.define(route.context, runtimeContext, undefined, routePath);
54
+ runtimeContext.pendingPermissionsPreCheck.push(hooks === null || hooks === void 0 || (_hooks$checkPermissio = hooks.checkPermissions) === null || _hooks$checkPermissio === void 0 ? void 0 : _hooks$checkPermissio.preCheckPermissionsForBrickOrRoute(route, value => asyncComputeRealValue(value, runtimeContext)));
66
55
 
67
- // Currently, this is only used for brick size-checking: these bricks
68
- // will be loaded before page rendering, but they will NOT be rendered.
69
- var {
70
- preLoadBricks
71
- } = route;
72
- if (Array.isArray(preLoadBricks)) {
73
- output.blockingList.push(loadBricksImperatively(preLoadBricks, getBrickPackages()));
56
+ // Currently, this is only used for brick size-checking: these bricks
57
+ // will be loaded before page rendering, but they will NOT be rendered.
58
+ const {
59
+ preLoadBricks
60
+ } = route;
61
+ if (Array.isArray(preLoadBricks)) {
62
+ output.blockingList.push(loadBricksImperatively(preLoadBricks, getBrickPackages()));
63
+ }
64
+ if (route.type === "redirect") {
65
+ let redirectTo;
66
+ if (typeof route.redirect === "string") {
67
+ redirectTo = await asyncComputeRealValue(route.redirect, runtimeContext);
68
+ } else {
69
+ const resolved = await resolveData({
70
+ transform: "redirect",
71
+ ...route.redirect
72
+ }, runtimeContext);
73
+ redirectTo = resolved.redirect;
74
74
  }
75
- if (route.type === "redirect") {
76
- var redirectTo;
77
- if (typeof route.redirect === "string") {
78
- redirectTo = yield asyncComputeRealValue(route.redirect, runtimeContext);
79
- } else {
80
- var resolved = yield resolveData(_objectSpread({
81
- transform: "redirect"
82
- }, route.redirect), runtimeContext);
83
- redirectTo = resolved.redirect;
84
- }
85
- if (typeof redirectTo !== "string") {
86
- // eslint-disable-next-line no-console
87
- console.error("Unexpected redirect result:", redirectTo);
88
- throw new Error("Unexpected type of redirect result: ".concat(typeof redirectTo));
89
- }
90
- output.redirect = {
91
- path: redirectTo
92
- };
75
+ if (typeof redirectTo !== "string") {
76
+ // eslint-disable-next-line no-console
77
+ console.error("Unexpected redirect result:", redirectTo);
78
+ throw new Error(`Unexpected type of redirect result: ${typeof redirectTo}`);
79
+ }
80
+ output.redirect = {
81
+ path: redirectTo
82
+ };
83
+ } else {
84
+ const menuRequest = loadMenu(route.menu, runtimeContext);
85
+ if (menuRequest) {
86
+ menuRequestNode.request = menuRequest;
87
+ }
88
+ if (!isIncremental) {
89
+ rendererContext.memoizeMenuRequestNode(routes, menuRequestNode);
90
+ }
91
+ let newOutput;
92
+ if (route.type === "routes") {
93
+ newOutput = await renderRoutes(returnNode, route.routes, runtimeContext, rendererContext, routePath, menuRequestNode, slotId);
93
94
  } else {
94
- var menuRequest = loadMenu(route.menu, runtimeContext);
95
- if (menuRequest) {
96
- menuRequestNode.request = menuRequest;
97
- }
98
- if (!isIncremental) {
99
- rendererContext.memoizeMenuRequestNode(routes, menuRequestNode);
100
- }
101
- var newOutput;
102
- if (route.type === "routes") {
103
- newOutput = yield renderRoutes(returnNode, route.routes, runtimeContext, rendererContext, routePath, menuRequestNode, slotId);
104
- } else {
105
- newOutput = yield renderBricks(returnNode, route.bricks, runtimeContext, rendererContext, routePath, menuRequestNode, slotId);
106
- }
107
- mergeRenderOutput(output, newOutput);
108
- appendMenuRequestNode(menuRequestNode, newOutput.menuRequestNode);
95
+ newOutput = await renderBricks(returnNode, route.bricks, runtimeContext, rendererContext, routePath, menuRequestNode, slotId);
109
96
  }
97
+ mergeRenderOutput(output, newOutput);
98
+ appendMenuRequestNode(menuRequestNode, newOutput.menuRequestNode);
110
99
  }
111
- }
112
- return output;
113
- });
114
- return _renderRoutes.apply(this, arguments);
115
- }
116
- export function renderBricks(_x9, _x10, _x11, _x12, _x13, _x14, _x15, _x16, _x17) {
117
- return _renderBricks.apply(this, arguments);
118
- }
119
- function _renderBricks() {
120
- _renderBricks = _asyncToGenerator(function* (returnNode, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, keyPath) {
121
- setupRootRuntimeContext(bricks, runtimeContext, true);
122
- var output = getEmptyRenderOutput();
123
- var kPath = keyPath !== null && keyPath !== void 0 ? keyPath : [];
124
- // 多个构件并行异步转换,但转换的结果按原顺序串行合并。
125
- var rendered = yield Promise.all(bricks.map((brickConf, index) => renderBrick(returnNode, brickConf, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, kPath.concat(index), tplStack && new Map(tplStack))));
126
- rendered.forEach((item, index) => {
127
- if (item.hasTrackingControls) {
128
- // Memoize a render node before it's been merged.
129
- rendererContext.memoize(slotId, kPath.concat(index), item.node, returnNode);
130
100
  }
131
- mergeRenderOutput(output, item);
132
- });
133
- return output;
134
- });
135
- return _renderBricks.apply(this, arguments);
101
+ }
102
+ return output;
136
103
  }
137
- export function renderBrick(_x18, _x19, _x20, _x21, _x22, _x23, _x24) {
138
- return _renderBrick.apply(this, arguments);
104
+ export async function renderBricks(returnNode, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, keyPath) {
105
+ setupRootRuntimeContext(bricks, runtimeContext, true);
106
+ const output = getEmptyRenderOutput();
107
+ const kPath = keyPath ?? [];
108
+ // 多个构件并行异步转换,但转换的结果按原顺序串行合并。
109
+ const rendered = await Promise.all(bricks.map((brickConf, index) => renderBrick(returnNode, brickConf, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, kPath.concat(index), tplStack && new Map(tplStack))));
110
+ rendered.forEach((item, index) => {
111
+ if (item.hasTrackingControls) {
112
+ // Memoize a render node before it's been merged.
113
+ rendererContext.memoize(slotId, kPath.concat(index), item.node, returnNode);
114
+ }
115
+ mergeRenderOutput(output, item);
116
+ });
117
+ return output;
139
118
  }
140
- function _renderBrick() {
141
- _renderBrick = _asyncToGenerator(function* (returnNode, brickConf, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId) {
142
- var keyPath = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : [];
143
- var tplStack = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : new Map();
144
- try {
145
- return yield legacyRenderBrick(returnNode, brickConf, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, keyPath, tplStack);
146
- } catch (error) {
147
- if (brickConf.errorBoundary) {
148
- // eslint-disable-next-line no-console
149
- console.error("Error caught by error boundary:", error);
150
- return {
151
- node: {
152
- tag: RenderTag.BRICK,
153
- type: "div",
154
- properties: {
155
- textContent: httpErrorToString(error),
156
- style: {
157
- color: "var(--color-error)"
158
- }
119
+ export async function renderBrick(returnNode, brickConf, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId) {
120
+ let keyPath = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : [];
121
+ let tplStack = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : new Map();
122
+ try {
123
+ return await legacyRenderBrick(returnNode, brickConf, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, keyPath, tplStack);
124
+ } catch (error) {
125
+ if (brickConf.errorBoundary) {
126
+ // eslint-disable-next-line no-console
127
+ console.error("Error caught by error boundary:", error);
128
+ return {
129
+ node: {
130
+ tag: RenderTag.BRICK,
131
+ type: "div",
132
+ properties: {
133
+ textContent: httpErrorToString(error),
134
+ dataset: {
135
+ errorBoundary: ""
159
136
  },
160
- runtimeContext: null,
161
- return: returnNode
137
+ style: {
138
+ color: "var(--color-error)"
139
+ }
162
140
  },
163
- blockingList: []
164
- };
165
- } else {
166
- throw error;
167
- }
141
+ runtimeContext: null,
142
+ return: returnNode
143
+ },
144
+ blockingList: []
145
+ };
146
+ } else {
147
+ throw error;
168
148
  }
169
- });
170
- return _renderBrick.apply(this, arguments);
171
- }
172
- function legacyRenderBrick(_x25, _x26, _x27, _x28, _x29, _x30, _x31, _x32, _x33) {
173
- return _legacyRenderBrick.apply(this, arguments);
149
+ }
174
150
  }
175
- function _legacyRenderBrick() {
176
- _legacyRenderBrick = _asyncToGenerator(function* (returnNode, brickConf, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, keyPath, tplStack) {
177
- var _hooks$checkPermissio2, _runtimeContext$app;
178
- var output = getEmptyRenderOutput();
179
- if (!brickConf.brick) {
180
- if (brickConf.template) {
181
- // eslint-disable-next-line no-console
182
- console.error("Legacy templates are dropped in v3:", brickConf);
183
- } else {
184
- // eslint-disable-next-line no-console
185
- console.error("Invalid brick:", brickConf);
186
- }
187
- return output;
151
+ async function legacyRenderBrick(returnNode, brickConf, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, keyPath, tplStack) {
152
+ var _hooks$checkPermissio2, _runtimeContext$app;
153
+ const output = getEmptyRenderOutput();
154
+ if (!brickConf.brick) {
155
+ if (brickConf.template) {
156
+ // eslint-disable-next-line no-console
157
+ console.error("Legacy templates are dropped in v3:", brickConf);
158
+ } else {
159
+ // eslint-disable-next-line no-console
160
+ console.error("Invalid brick:", brickConf);
188
161
  }
162
+ return output;
163
+ }
189
164
 
190
- // Translate `if: "<%= ... %>"` to `brick: ":if", dataSource: "<%= ... %>"`.
191
- // In other words, translate tracking if expressions to tracking control nodes of `:if`.
192
- var {
193
- if: brickIf,
194
- permissionsPreCheck
195
- } = brickConf,
196
- restBrickConf = _objectWithoutProperties(brickConf, _excluded2);
197
- if (isGeneralizedTrackAll(brickIf)) {
198
- return renderBrick(returnNode, _objectSpread({
199
- brick: ":if",
200
- dataSource: brickIf,
201
- // `permissionsPreCheck` maybe required before computing `if`.
202
- permissionsPreCheck,
203
- slots: {
204
- "": {
205
- type: "bricks",
206
- bricks: [restBrickConf]
207
- }
165
+ // Translate `if: "<%= ... %>"` to `brick: ":if", dataSource: "<%= ... %>"`.
166
+ // In other words, translate tracking if expressions to tracking control nodes of `:if`.
167
+ const {
168
+ if: brickIf,
169
+ permissionsPreCheck,
170
+ ...restBrickConf
171
+ } = brickConf;
172
+ if (isGeneralizedTrackAll(brickIf)) {
173
+ return renderBrick(returnNode, {
174
+ brick: ":if",
175
+ dataSource: brickIf,
176
+ // `permissionsPreCheck` maybe required before computing `if`.
177
+ permissionsPreCheck,
178
+ slots: {
179
+ "": {
180
+ type: "bricks",
181
+ bricks: [restBrickConf]
208
182
  }
209
- }, Object.getOwnPropertySymbols(brickConf).reduce((acc, symbol) => _objectSpread(_objectSpread({}, acc), {}, {
183
+ },
184
+ // These symbols have to be copied to the new brick conf.
185
+ ...Object.getOwnPropertySymbols(brickConf).reduce((acc, symbol) => ({
186
+ ...acc,
210
187
  [symbol]: brickConf[symbol]
211
- }), {})), _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, keyPath, tplStack);
212
- }
213
- var tplStateStoreId = brickConf[symbolForTplStateStoreId];
214
- var formStateStoreId = brickConf[symbolForFormStateStoreId];
215
- var runtimeContext = _objectSpread(_objectSpread({}, _runtimeContext), {}, {
216
- tplStateStoreId,
217
- formStateStoreId
218
- });
219
- if (hasOwnProperty(brickConf, symbolForTPlExternalForEachItem)) {
220
- // The external bricks of a template should restore their `forEachItem` and
221
- // `forEachIndex` from their host.
222
- runtimeContext.forEachItem = brickConf[symbolForTPlExternalForEachItem];
223
- runtimeContext.forEachIndex = brickConf[symbolForTPlExternalForEachIndex];
224
- } else if (brickConf[symbolForTPlExternalNoForEach]) {
225
- delete runtimeContext.forEachItem;
226
- delete runtimeContext.forEachIndex;
188
+ }), {})
189
+ }, _runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, keyPath, tplStack);
190
+ }
191
+ const tplStateStoreId = brickConf[symbolForTplStateStoreId];
192
+ const formStateStoreId = brickConf[symbolForFormStateStoreId];
193
+ const runtimeContext = {
194
+ ..._runtimeContext,
195
+ tplStateStoreId,
196
+ formStateStoreId
197
+ };
198
+ if (hasOwnProperty(brickConf, symbolForTPlExternalForEachItem)) {
199
+ // The external bricks of a template should restore their `forEachItem` and
200
+ // `forEachIndex` from their host.
201
+ runtimeContext.forEachItem = brickConf[symbolForTPlExternalForEachItem];
202
+ runtimeContext.forEachIndex = brickConf[symbolForTPlExternalForEachIndex];
203
+ } else if (brickConf[symbolForTPlExternalNoForEach]) {
204
+ delete runtimeContext.forEachItem;
205
+ delete runtimeContext.forEachIndex;
206
+ }
207
+ const {
208
+ context
209
+ } = brickConf;
210
+ // istanbul ignore next
211
+ if (Array.isArray(context) && context.length > 0) {
212
+ const strict = isStrictMode(runtimeContext);
213
+ warnAboutStrictMode(strict, "Defining context on bricks", "check your brick:", brickConf);
214
+ if (!strict) {
215
+ runtimeContext.ctxStore.define(context, runtimeContext);
227
216
  }
228
- var {
229
- context
217
+ }
218
+ runtimeContext.pendingPermissionsPreCheck.push(hooks === null || hooks === void 0 || (_hooks$checkPermissio2 = hooks.checkPermissions) === null || _hooks$checkPermissio2 === void 0 ? void 0 : _hooks$checkPermissio2.preCheckPermissionsForBrickOrRoute(brickConf, value => asyncComputeRealValue(value, runtimeContext)));
219
+ if (!(await asyncCheckBrickIf(brickConf, runtimeContext))) {
220
+ return output;
221
+ }
222
+ const brickName = brickConf.brick;
223
+ if (brickName.startsWith(":")) {
224
+ ensureValidControlBrick(brickName);
225
+ const {
226
+ dataSource
230
227
  } = brickConf;
231
- // istanbul ignore next
232
- if (Array.isArray(context) && context.length > 0) {
233
- var strict = isStrictMode(runtimeContext);
234
- warnAboutStrictMode(strict, "Defining context on bricks", "check your brick:", brickConf);
235
- if (!strict) {
236
- runtimeContext.ctxStore.define(context, runtimeContext);
237
- }
238
- }
239
- runtimeContext.pendingPermissionsPreCheck.push(hooks === null || hooks === void 0 || (_hooks$checkPermissio2 = hooks.checkPermissions) === null || _hooks$checkPermissio2 === void 0 ? void 0 : _hooks$checkPermissio2.preCheckPermissionsForBrickOrRoute(brickConf, value => asyncComputeRealValue(value, runtimeContext)));
240
- if (!(yield asyncCheckBrickIf(brickConf, runtimeContext))) {
241
- return output;
242
- }
243
- var brickName = brickConf.brick;
244
- if (brickName.startsWith(":")) {
245
- var _brickConf$lifeCycle;
246
- ensureValidControlBrick(brickName);
247
- var {
248
- dataSource
249
- } = brickConf;
250
- var lowerLevelRenderControlNode = /*#__PURE__*/function () {
251
- var _ref = _asyncToGenerator(function* (runtimeContext) {
252
- var _slots$slot;
253
- // First, compute the `dataSource`
254
- var computedDataSource = yield asyncComputeRealValue(dataSource, runtimeContext);
228
+ const lowerLevelRenderControlNode = async runtimeContext => {
229
+ var _slots$slot;
230
+ // First, compute the `dataSource`
231
+ const computedDataSource = await asyncComputeRealValue(dataSource, runtimeContext);
255
232
 
256
- // Then, get the matched slot.
257
- var slot = brickName === ":forEach" ? "" : brickName === ":switch" ? String(computedDataSource) : computedDataSource ? "" : "else";
233
+ // Then, get the matched slot.
234
+ const slot = brickName === ":forEach" ? "" : brickName === ":switch" ? String(computedDataSource) : computedDataSource ? "" : "else";
258
235
 
259
- // Don't forget to transpile children to slots.
260
- var slots = childrenToSlots(brickConf.children, brickConf.slots);
236
+ // Don't forget to transpile children to slots.
237
+ const slots = childrenToSlots(brickConf.children, brickConf.slots);
261
238
 
262
- // Then, get the bricks in that matched slot.
263
- var bricks = slots && hasOwnProperty(slots, slot) && ((_slots$slot = slots[slot]) === null || _slots$slot === void 0 ? void 0 : _slots$slot.bricks);
264
- if (!Array.isArray(bricks)) {
265
- return getEmptyRenderOutput();
239
+ // Then, get the bricks in that matched slot.
240
+ const bricks = slots && hasOwnProperty(slots, slot) && ((_slots$slot = slots[slot]) === null || _slots$slot === void 0 ? void 0 : _slots$slot.bricks);
241
+ if (!Array.isArray(bricks)) {
242
+ return getEmptyRenderOutput();
243
+ }
244
+ switch (brickName) {
245
+ case ":forEach":
246
+ {
247
+ if (!Array.isArray(computedDataSource)) {
248
+ return getEmptyRenderOutput();
249
+ }
250
+ return renderForEach(returnNode, computedDataSource, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, keyPath);
266
251
  }
267
- switch (brickName) {
268
- case ":forEach":
269
- {
270
- if (!Array.isArray(computedDataSource)) {
271
- return getEmptyRenderOutput();
272
- }
273
- return renderForEach(returnNode, computedDataSource, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, keyPath);
274
- }
275
- case ":if":
276
- case ":switch":
277
- {
278
- return renderBricks(returnNode, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, keyPath);
279
- }
252
+ case ":if":
253
+ case ":switch":
254
+ {
255
+ return renderBricks(returnNode, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, keyPath);
280
256
  }
281
- });
282
- return function lowerLevelRenderControlNode(_x44) {
283
- return _ref.apply(this, arguments);
284
- };
285
- }();
286
- var renderControlNode = /*#__PURE__*/function () {
287
- var _ref2 = _asyncToGenerator(function* (runtimeContext) {
288
- var _rawOutput$node;
289
- var rawOutput = yield lowerLevelRenderControlNode(runtimeContext);
290
- (_rawOutput$node = rawOutput.node) !== null && _rawOutput$node !== void 0 ? _rawOutput$node : rawOutput.node = {
291
- tag: RenderTag.PLACEHOLDER,
292
- return: returnNode
293
- };
294
- return rawOutput;
295
- });
296
- return function renderControlNode(_x45) {
297
- return _ref2.apply(this, arguments);
298
- };
299
- }();
300
- var controlledOutput = yield renderControlNode(runtimeContext);
301
- var {
302
- onMount,
303
- onUnmount
304
- } = (_brickConf$lifeCycle = brickConf.lifeCycle) !== null && _brickConf$lifeCycle !== void 0 ? _brickConf$lifeCycle : {};
305
- var {
306
- contextNames,
307
- stateNames
308
- } = getTracks(dataSource);
309
- if (contextNames || stateNames) {
310
- controlledOutput.hasTrackingControls = true;
311
- var renderId = 0;
312
- var listener = /*#__PURE__*/function () {
313
- var _ref3 = _asyncToGenerator(function* () {
314
- var currentRenderId = ++renderId;
315
- var [scopedRuntimeContext, tplStateStoreScope, formStateStoreScope] = createScopedRuntimeContext(runtimeContext);
316
- var reControlledOutput = yield renderControlNode(scopedRuntimeContext);
317
- var scopedStores = [...tplStateStoreScope, ...formStateStoreScope];
318
- yield postAsyncRender(reControlledOutput, scopedRuntimeContext, scopedStores);
257
+ }
258
+ };
259
+ const renderControlNode = async runtimeContext => {
260
+ const rawOutput = await lowerLevelRenderControlNode(runtimeContext);
261
+ rawOutput.node ?? (rawOutput.node = {
262
+ tag: RenderTag.PLACEHOLDER,
263
+ return: returnNode
264
+ });
265
+ return rawOutput;
266
+ };
267
+ const controlledOutput = await renderControlNode(runtimeContext);
268
+ const {
269
+ onMount,
270
+ onUnmount
271
+ } = brickConf.lifeCycle ?? {};
272
+ const {
273
+ contextNames,
274
+ stateNames
275
+ } = getTracks(dataSource);
276
+ if (contextNames || stateNames) {
277
+ controlledOutput.hasTrackingControls = true;
278
+ let renderId = 0;
279
+ const listener = async () => {
280
+ const currentRenderId = ++renderId;
281
+ const [scopedRuntimeContext, tplStateStoreScope, formStateStoreScope] = createScopedRuntimeContext(runtimeContext);
282
+ const reControlledOutput = await renderControlNode(scopedRuntimeContext);
283
+ const scopedStores = [...tplStateStoreScope, ...formStateStoreScope];
284
+ await postAsyncRender(reControlledOutput, scopedRuntimeContext, scopedStores);
319
285
 
320
- // Ignore stale renders
321
- if (renderId === currentRenderId) {
322
- if (onUnmount) {
323
- listenerFactory(onUnmount, runtimeContext)(new CustomEvent("unmount", {
324
- detail: {
325
- rerender: true
326
- }
327
- }));
286
+ // Ignore stale renders
287
+ if (renderId === currentRenderId) {
288
+ if (onUnmount) {
289
+ listenerFactory(onUnmount, runtimeContext)(new CustomEvent("unmount", {
290
+ detail: {
291
+ rerender: true
328
292
  }
329
- rendererContext.reRender(slotId, keyPath, reControlledOutput.node, returnNode);
330
- if (onMount) {
331
- listenerFactory(onMount, scopedRuntimeContext)(new CustomEvent("mount", {
332
- detail: {
333
- rerender: true
334
- }
335
- }));
336
- }
337
- for (var store of scopedStores) {
338
- store.mountAsyncData();
293
+ }));
294
+ }
295
+ rendererContext.reRender(slotId, keyPath, reControlledOutput.node, returnNode);
296
+ if (onMount) {
297
+ listenerFactory(onMount, scopedRuntimeContext)(new CustomEvent("mount", {
298
+ detail: {
299
+ rerender: true
339
300
  }
340
- }
341
- });
342
- return function listener() {
343
- return _ref3.apply(this, arguments);
344
- };
345
- }();
346
- var debouncedListener = debounce(listener);
347
- if (contextNames) {
348
- for (var contextName of contextNames) {
349
- runtimeContext.ctxStore.onChange(contextName, debouncedListener);
301
+ }));
350
302
  }
351
- }
352
- if (stateNames) {
353
- for (var _contextName of stateNames) {
354
- var tplStateStore = getTplStateStore(runtimeContext, "STATE", ": \"".concat(dataSource, "\""));
355
- tplStateStore.onChange(_contextName, debouncedListener);
303
+ for (const store of scopedStores) {
304
+ store.mountAsyncData();
356
305
  }
357
306
  }
307
+ };
308
+ const debouncedListener = debounce(listener);
309
+ if (contextNames) {
310
+ for (const contextName of contextNames) {
311
+ runtimeContext.ctxStore.onChange(contextName, debouncedListener);
312
+ }
358
313
  }
359
- if (onMount) {
360
- rendererContext.registerArbitraryLifeCycle("onMount", () => {
361
- listenerFactory(onMount, runtimeContext)(new CustomEvent("mount", {
362
- detail: {
363
- rerender: false
364
- }
365
- }));
366
- });
367
- }
368
- if (onUnmount) {
369
- rendererContext.registerArbitraryLifeCycle("onUnmount", () => {
370
- listenerFactory(onUnmount, runtimeContext)(new CustomEvent("unmount", {
371
- detail: {
372
- rerender: false
373
- }
374
- }));
375
- });
314
+ if (stateNames) {
315
+ for (const contextName of stateNames) {
316
+ const tplStateStore = getTplStateStore(runtimeContext, "STATE", `: "${dataSource}"`);
317
+ tplStateStore.onChange(contextName, debouncedListener);
318
+ }
376
319
  }
377
- return controlledOutput;
378
320
  }
379
-
380
- // Widgets need to be defined before rendering.
381
- if (/\.tpl-/.test(brickName) && !customTemplates.get(brickName)) {
382
- yield catchLoad(loadBricksImperatively([brickName], getBrickPackages()), "brick", brickName, rendererContext.unknownBricks);
321
+ if (onMount) {
322
+ rendererContext.registerArbitraryLifeCycle("onMount", () => {
323
+ listenerFactory(onMount, runtimeContext)(new CustomEvent("mount", {
324
+ detail: {
325
+ rerender: false
326
+ }
327
+ }));
328
+ });
383
329
  }
384
- var tplTagName = getTagNameOfCustomTemplate(brickName, (_runtimeContext$app = runtimeContext.app) === null || _runtimeContext$app === void 0 ? void 0 : _runtimeContext$app.id);
385
- if (tplTagName) {
386
- var _tplStack$get;
387
- var tplCount = (_tplStack$get = tplStack.get(tplTagName)) !== null && _tplStack$get !== void 0 ? _tplStack$get : 0;
388
- if (tplCount >= 10) {
389
- throw new Error("Maximum custom template stack overflowed: \"".concat(tplTagName, "\""));
390
- }
391
- tplStack.set(tplTagName, tplCount + 1);
392
- } else if (brickName.includes("-") && !customElements.get(brickName)) {
393
- if (brickName === FORM_RENDERER) {
394
- customElements.define(FORM_RENDERER, class FormRendererElement extends HTMLElement {
395
- get $$typeof() {
396
- return "form-renderer";
330
+ if (onUnmount) {
331
+ rendererContext.registerArbitraryLifeCycle("onUnmount", () => {
332
+ listenerFactory(onUnmount, runtimeContext)(new CustomEvent("unmount", {
333
+ detail: {
334
+ rerender: false
397
335
  }
398
- });
399
- } else {
400
- output.blockingList.push(catchLoad(enqueueStableLoadBricks([brickName], getBrickPackages()), "brick", brickName, rendererContext.unknownBricks));
401
- }
336
+ }));
337
+ });
338
+ }
339
+ return controlledOutput;
340
+ }
341
+
342
+ // Widgets need to be defined before rendering.
343
+ if (/\.tpl-/.test(brickName) && !customTemplates.get(brickName)) {
344
+ await catchLoad(loadBricksImperatively([brickName], getBrickPackages()), "brick", brickName, rendererContext.unknownBricks);
345
+ }
346
+ const tplTagName = getTagNameOfCustomTemplate(brickName, (_runtimeContext$app = runtimeContext.app) === null || _runtimeContext$app === void 0 ? void 0 : _runtimeContext$app.id);
347
+ if (tplTagName) {
348
+ const tplCount = tplStack.get(tplTagName) ?? 0;
349
+ if (tplCount >= 10) {
350
+ throw new Error(`Maximum custom template stack overflowed: "${tplTagName}"`);
402
351
  }
403
- var formData;
404
- var confProps;
352
+ tplStack.set(tplTagName, tplCount + 1);
353
+ } else if (brickName.includes("-") && !customElements.get(brickName)) {
405
354
  if (brickName === FORM_RENDERER) {
406
- var _brickConf$properties;
407
- var _ref4 = (_brickConf$properties = brickConf.properties) !== null && _brickConf$properties !== void 0 ? _brickConf$properties : {};
408
- ({
409
- formData
410
- } = _ref4);
411
- confProps = _objectWithoutProperties(_ref4, _excluded3);
412
- _ref4;
355
+ customElements.define(FORM_RENDERER, class FormRendererElement extends HTMLElement {
356
+ get $$typeof() {
357
+ return "form-renderer";
358
+ }
359
+ });
413
360
  } else {
414
- confProps = brickConf.properties;
415
- }
416
- var trackingContextList = [];
417
- var asyncPropertyEntries = asyncComputeRealPropertyEntries(confProps, runtimeContext, trackingContextList);
418
- var computedPropsFromHost = brickConf[symbolForAsyncComputedPropsFromHost];
419
- if (computedPropsFromHost) {
420
- asyncPropertyEntries.push(...computedPropsFromHost);
361
+ output.blockingList.push(catchLoad(enqueueStableLoadBricks([brickName], getBrickPackages()), "brick", brickName, rendererContext.unknownBricks));
421
362
  }
422
- var isScript = brickName === "script";
423
- if (isScript || brickName === "link") {
424
- var props = yield constructAsyncProperties(asyncPropertyEntries);
425
- if (isScript ? props.src : props.rel === "stylesheet" && props.href) {
426
- var _window$PUBLIC_ROOT;
427
- var prefix = (_window$PUBLIC_ROOT = window.PUBLIC_ROOT) !== null && _window$PUBLIC_ROOT !== void 0 ? _window$PUBLIC_ROOT : "";
428
- if (isScript) {
429
- var {
430
- src
431
- } = props,
432
- attrs = _objectWithoutProperties(props, _excluded4);
433
- yield catchLoad(loadScript(src, prefix, attrs), "script", src, "silent");
434
- } else {
435
- var {
436
- href
437
- } = props,
438
- attrs = _objectWithoutProperties(props, _excluded5);
439
- yield catchLoad(loadStyle(href, prefix, attrs), "stylesheet", href, "silent");
440
- }
441
- return output;
363
+ }
364
+ let formData;
365
+ let confProps;
366
+ if (brickName === FORM_RENDERER) {
367
+ ({
368
+ formData,
369
+ ...confProps
370
+ } = brickConf.properties ?? {});
371
+ } else {
372
+ confProps = brickConf.properties;
373
+ }
374
+ const trackingContextList = [];
375
+ const asyncPropertyEntries = asyncComputeRealPropertyEntries(confProps, runtimeContext, trackingContextList);
376
+ const computedPropsFromHost = brickConf[symbolForAsyncComputedPropsFromHost];
377
+ if (computedPropsFromHost) {
378
+ asyncPropertyEntries.push(...computedPropsFromHost);
379
+ }
380
+ const isScript = brickName === "script";
381
+ if (isScript || brickName === "link") {
382
+ const props = await constructAsyncProperties(asyncPropertyEntries);
383
+ if (isScript ? props.src : props.rel === "stylesheet" && props.href) {
384
+ const prefix = window.PUBLIC_ROOT ?? "";
385
+ if (isScript) {
386
+ const {
387
+ src,
388
+ ...attrs
389
+ } = props;
390
+ await catchLoad(loadScript(src, prefix, attrs), "script", src, "silent");
391
+ } else {
392
+ const {
393
+ href,
394
+ ...attrs
395
+ } = props;
396
+ await catchLoad(loadStyle(href, prefix, attrs), "stylesheet", href, "silent");
442
397
  }
398
+ return output;
443
399
  }
444
- var brick = {
445
- tag: RenderTag.BRICK,
446
- type: tplTagName || brickName,
447
- return: returnNode,
448
- slotId,
449
- events: brickConf.events,
450
- runtimeContext,
451
- portal: brickConf.portal,
452
- iid: brickConf.iid,
453
- ref: brickConf.ref
454
- };
455
- output.node = brick;
400
+ }
401
+ const brick = {
402
+ tag: RenderTag.BRICK,
403
+ type: tplTagName || brickName,
404
+ return: returnNode,
405
+ slotId,
406
+ events: brickConf.events,
407
+ runtimeContext,
408
+ portal: brickConf.portal,
409
+ iid: brickConf.iid,
410
+ ref: brickConf.ref
411
+ };
412
+ output.node = brick;
456
413
 
457
- // 在最终挂载前,先加载所有可能用到的 processors。
458
- var usedProcessors = strictCollectMemberUsage([brickConf.events, brickConf.lifeCycle], "PROCESSORS", 2);
459
- if (usedProcessors.size > 0) {
460
- output.blockingList.push(catchLoad(loadProcessorsImperatively(usedProcessors, getBrickPackages()), "processors", [...usedProcessors].join(", "), rendererContext.unknownBricks));
461
- }
414
+ // 在最终挂载前,先加载所有可能用到的 processors。
415
+ const usedProcessors = strictCollectMemberUsage([brickConf.events, brickConf.lifeCycle], "PROCESSORS", 2);
416
+ if (usedProcessors.size > 0) {
417
+ output.blockingList.push(catchLoad(loadProcessorsImperatively(usedProcessors, getBrickPackages()), "processors", [...usedProcessors].join(", "), rendererContext.unknownBricks));
418
+ }
462
419
 
463
- // 加载构件属性和加载子构件等任务,可以并行。
464
- var blockingList = [];
465
- var loadProperties = /*#__PURE__*/function () {
466
- var _ref5 = _asyncToGenerator(function* () {
467
- brick.properties = yield constructAsyncProperties(asyncPropertyEntries);
468
- listenOnTrackingContext(brick, trackingContextList);
469
- });
470
- return function loadProperties() {
471
- return _ref5.apply(this, arguments);
472
- };
473
- }();
474
- blockingList.push(loadProperties());
475
- rendererContext.registerBrickLifeCycle(brick, brickConf.lifeCycle);
476
- var expandedBrickConf = brickConf;
477
- if (tplTagName) {
478
- expandedBrickConf = expandCustomTemplate(tplTagName, brickConf, brick, asyncPropertyEntries, rendererContext);
479
- } else if (brickName === FORM_RENDERER) {
480
- expandedBrickConf = expandFormRenderer(formData, brickConf, brick, asyncPropertyEntries, rendererContext);
481
- }
482
- if (expandedBrickConf.portal) {
483
- // A portal brick has no slotId.
484
- brick.slotId = undefined;
485
- }
486
- var childRuntimeContext;
487
- if (tplTagName) {
488
- // There is a boundary for `forEachItem` between template internals and externals.
489
- childRuntimeContext = _objectSpread({}, runtimeContext);
490
- delete childRuntimeContext.forEachItem;
491
- delete childRuntimeContext.forEachIndex;
492
- } else {
493
- childRuntimeContext = runtimeContext;
420
+ // 加载构件属性和加载子构件等任务,可以并行。
421
+ const blockingList = [];
422
+ const loadProperties = async () => {
423
+ brick.properties = await constructAsyncProperties(asyncPropertyEntries);
424
+ listenOnTrackingContext(brick, trackingContextList);
425
+ };
426
+ blockingList.push(loadProperties());
427
+ rendererContext.registerBrickLifeCycle(brick, brickConf.lifeCycle);
428
+ let expandedBrickConf = brickConf;
429
+ if (tplTagName) {
430
+ expandedBrickConf = expandCustomTemplate(tplTagName, brickConf, brick, asyncPropertyEntries, rendererContext);
431
+ } else if (brickName === FORM_RENDERER) {
432
+ expandedBrickConf = expandFormRenderer(formData, brickConf, brick, asyncPropertyEntries, rendererContext);
433
+ }
434
+ if (expandedBrickConf.portal) {
435
+ // A portal brick has no slotId.
436
+ brick.slotId = undefined;
437
+ }
438
+ let childRuntimeContext;
439
+ if (tplTagName) {
440
+ // There is a boundary for `forEachItem` between template internals and externals.
441
+ childRuntimeContext = {
442
+ ...runtimeContext
443
+ };
444
+ delete childRuntimeContext.forEachItem;
445
+ delete childRuntimeContext.forEachIndex;
446
+ } else {
447
+ childRuntimeContext = runtimeContext;
448
+ }
449
+ const loadChildren = async () => {
450
+ const slots = childrenToSlots(expandedBrickConf.children, expandedBrickConf.slots);
451
+ if (!slots) {
452
+ return;
494
453
  }
495
- var loadChildren = /*#__PURE__*/function () {
496
- var _ref6 = _asyncToGenerator(function* () {
497
- var slots = childrenToSlots(expandedBrickConf.children, expandedBrickConf.slots);
498
- if (!slots) {
499
- return;
500
- }
501
- var routeSlotFromIndexToSlotId = new Map();
502
- var rendered = yield Promise.all(Object.entries(slots).map((_ref7, index) => {
503
- var [childSlotId, slotConf] = _ref7;
504
- if (slotConf.type !== "routes") {
505
- return renderBricks(brick, slotConf.bricks, childRuntimeContext, rendererContext, parentRoutes, menuRequestReturnNode, childSlotId, tplStack);
454
+ const routeSlotFromIndexToSlotId = new Map();
455
+ const rendered = await Promise.all(Object.entries(slots).map((_ref, index) => {
456
+ let [childSlotId, slotConf] = _ref;
457
+ if (slotConf.type !== "routes") {
458
+ return renderBricks(brick, slotConf.bricks, childRuntimeContext, rendererContext, parentRoutes, menuRequestReturnNode, childSlotId, tplStack);
459
+ }
460
+ const parentRoute = parentRoutes[parentRoutes.length - 1];
461
+ if (parentRoute !== null && parentRoute !== void 0 && parentRoute.incrementalSubRoutes) {
462
+ routeSlotFromIndexToSlotId.set(index, childSlotId);
463
+ rendererContext.performIncrementalRender(slotConf, parentRoutes, async (location, prevLocation) => {
464
+ const {
465
+ homepage
466
+ } = childRuntimeContext.app;
467
+ const {
468
+ pathname
469
+ } = location;
470
+ // Ignore if any one of homepage and parent routes not matched.
471
+ if (!matchHomepage(homepage, pathname) || !parentRoutes.every(route => {
472
+ let prevMatch;
473
+ let newMatch;
474
+ return (prevMatch = matchRoute(route, homepage, prevLocation.pathname)) && (newMatch = matchRoute(route, homepage, pathname)) && (route !== parentRoute || isEqual(prevMatch.params, newMatch.params));
475
+ })) {
476
+ return false;
506
477
  }
507
- var parentRoute = parentRoutes[parentRoutes.length - 1];
508
- if (parentRoute !== null && parentRoute !== void 0 && parentRoute.incrementalSubRoutes) {
509
- routeSlotFromIndexToSlotId.set(index, childSlotId);
510
- rendererContext.performIncrementalRender(slotConf, parentRoutes, /*#__PURE__*/function () {
511
- var _ref8 = _asyncToGenerator(function* (location, prevLocation) {
512
- var {
513
- homepage
514
- } = childRuntimeContext.app;
515
- var {
516
- pathname
517
- } = location;
518
- // Ignore if any one of homepage and parent routes not matched.
519
- if (!matchHomepage(homepage, pathname) || !parentRoutes.every(route => {
520
- var prevMatch;
521
- var newMatch;
522
- return (prevMatch = matchRoute(route, homepage, prevLocation.pathname)) && (newMatch = matchRoute(route, homepage, pathname)) && (route !== parentRoute || isEqual(prevMatch.params, newMatch.params));
523
- })) {
524
- return false;
525
- }
526
- var [scopedRuntimeContext, tplStateStoreScope, formStateStoreScope] = createScopedRuntimeContext(_objectSpread(_objectSpread({}, childRuntimeContext), {}, {
527
- location,
528
- query: new URLSearchParams(location.search)
529
- }));
530
- var failed = false;
531
- var incrementalOutput;
532
- var scopedStores = [];
533
- try {
534
- incrementalOutput = yield renderRoutes(brick, slotConf.routes, scopedRuntimeContext, rendererContext, parentRoutes, menuRequestReturnNode, childSlotId, true);
535
-
536
- // Do not ignore incremental rendering even if all sub-routes are missed.
537
- // Since parent route is matched.
538
- if (incrementalOutput.route) {
539
- // Bailout if redirect or unauthenticated is set
540
- if (rendererContext.reBailout(incrementalOutput)) {
541
- return true;
542
- }
543
- scopedStores = [...tplStateStoreScope, ...formStateStoreScope];
544
- yield postAsyncRender(incrementalOutput, scopedRuntimeContext, [scopedRuntimeContext.ctxStore, ...scopedStores]);
545
- }
546
- yield rendererContext.reMergeMenuRequestNodes(menuRequestReturnNode, slotConf.routes, incrementalOutput.menuRequestNode);
547
- } catch (error) {
548
- // eslint-disable-next-line no-console
549
- console.error("Incremental sub-router failed:", error);
550
- var result = rendererContext.reCatch(error, brick);
551
- if (!result) {
552
- return true;
553
- }
554
- ({
555
- failed,
556
- output: incrementalOutput
557
- } = result);
478
+ const [scopedRuntimeContext, tplStateStoreScope, formStateStoreScope] = createScopedRuntimeContext({
479
+ ...childRuntimeContext,
480
+ location,
481
+ query: new URLSearchParams(location.search)
482
+ });
483
+ let failed = false;
484
+ let incrementalOutput;
485
+ let scopedStores = [];
486
+ try {
487
+ incrementalOutput = await renderRoutes(brick, slotConf.routes, scopedRuntimeContext, rendererContext, parentRoutes, menuRequestReturnNode, childSlotId, true);
558
488
 
559
- // Assert: no errors will be throw
560
- yield rendererContext.reMergeMenuRequestNodes(menuRequestReturnNode, slotConf.routes, incrementalOutput.menuRequestNode);
561
- }
562
- rendererContext.reRender(childSlotId, [], incrementalOutput.node, brick);
563
- if (!failed) {
564
- scopedRuntimeContext.ctxStore.mountAsyncData(incrementalOutput.route);
565
- for (var store of scopedStores) {
566
- store.mountAsyncData();
567
- }
568
- }
489
+ // Do not ignore incremental rendering even if all sub-routes are missed.
490
+ // Since parent route is matched.
491
+ if (incrementalOutput.route) {
492
+ // Bailout if redirect or unauthenticated is set
493
+ if (rendererContext.reBailout(incrementalOutput)) {
494
+ return true;
495
+ }
496
+ scopedStores = [...tplStateStoreScope, ...formStateStoreScope];
497
+ await postAsyncRender(incrementalOutput, scopedRuntimeContext, [scopedRuntimeContext.ctxStore, ...scopedStores]);
498
+ }
499
+ await rendererContext.reMergeMenuRequestNodes(menuRequestReturnNode, slotConf.routes, incrementalOutput.menuRequestNode);
500
+ } catch (error) {
501
+ // eslint-disable-next-line no-console
502
+ console.error("Incremental sub-router failed:", error);
503
+ const result = rendererContext.reCatch(error, brick);
504
+ if (!result) {
505
+ return true;
506
+ }
507
+ ({
508
+ failed,
509
+ output: incrementalOutput
510
+ } = result);
569
511
 
570
- // When result is null, it means the incremental rendering is tried but routes missed.
571
- // In this case, we should continue to re-render the parent routes.
572
- return incrementalOutput.route ? true : null;
573
- });
574
- return function (_x46, _x47) {
575
- return _ref8.apply(this, arguments);
576
- };
577
- }());
512
+ // Assert: no errors will be throw
513
+ await rendererContext.reMergeMenuRequestNodes(menuRequestReturnNode, slotConf.routes, incrementalOutput.menuRequestNode);
578
514
  }
579
- return renderRoutes(brick, slotConf.routes, childRuntimeContext, rendererContext, parentRoutes, menuRequestReturnNode, childSlotId);
580
- }));
581
- var childrenOutput = _objectSpread(_objectSpread({}, output), {}, {
582
- node: undefined,
583
- blockingList: [],
584
- menuRequestNode: undefined
585
- });
586
- rendered.forEach((item, index) => {
587
- if (routeSlotFromIndexToSlotId.has(index)) {
588
- // Memoize a render node before it's been merged.
589
- rendererContext.memoize(routeSlotFromIndexToSlotId.get(index), [], item.node, brick);
515
+ rendererContext.reRender(childSlotId, [], incrementalOutput.node, brick);
516
+ if (!failed) {
517
+ scopedRuntimeContext.ctxStore.mountAsyncData(incrementalOutput.route);
518
+ for (const store of scopedStores) {
519
+ store.mountAsyncData();
520
+ }
590
521
  }
591
- mergeRenderOutput(childrenOutput, item);
592
- mergeSiblingRenderMenuRequest(childrenOutput, item);
522
+
523
+ // When result is null, it means the incremental rendering is tried but routes missed.
524
+ // In this case, we should continue to re-render the parent routes.
525
+ return incrementalOutput.route ? true : null;
593
526
  });
594
- if (childrenOutput.node) {
595
- brick.child = childrenOutput.node;
596
- }
597
- mergeRenderOutput(output, _objectSpread(_objectSpread({}, childrenOutput), {}, {
598
- node: undefined
599
- }));
600
- appendMenuRequestNode(menuRequestReturnNode, output.menuRequestNode = childrenOutput.menuRequestNode);
601
- });
602
- return function loadChildren() {
603
- return _ref6.apply(this, arguments);
604
- };
605
- }();
606
- blockingList.push(loadChildren());
607
- yield Promise.all(blockingList);
608
- return output;
609
- });
610
- return _legacyRenderBrick.apply(this, arguments);
527
+ }
528
+ return renderRoutes(brick, slotConf.routes, childRuntimeContext, rendererContext, parentRoutes, menuRequestReturnNode, childSlotId);
529
+ }));
530
+ const childrenOutput = {
531
+ ...output,
532
+ node: undefined,
533
+ blockingList: [],
534
+ menuRequestNode: undefined
535
+ };
536
+ rendered.forEach((item, index) => {
537
+ if (routeSlotFromIndexToSlotId.has(index)) {
538
+ // Memoize a render node before it's been merged.
539
+ rendererContext.memoize(routeSlotFromIndexToSlotId.get(index), [], item.node, brick);
540
+ }
541
+ mergeRenderOutput(childrenOutput, item);
542
+ mergeSiblingRenderMenuRequest(childrenOutput, item);
543
+ });
544
+ if (childrenOutput.node) {
545
+ brick.child = childrenOutput.node;
546
+ }
547
+ mergeRenderOutput(output, {
548
+ ...childrenOutput,
549
+ node: undefined
550
+ });
551
+ appendMenuRequestNode(menuRequestReturnNode, output.menuRequestNode = childrenOutput.menuRequestNode);
552
+ };
553
+ blockingList.push(loadChildren());
554
+ await Promise.all(blockingList);
555
+ return output;
611
556
  }
612
557
  function isGeneralizedTrackAll(brickIf) {
613
558
  return typeof brickIf === "string" ? isTrackAll(brickIf) : isPreEvaluated(brickIf) &&
@@ -616,32 +561,27 @@ function isGeneralizedTrackAll(brickIf) {
616
561
  }
617
562
  function ensureValidControlBrick(brick) {
618
563
  if (brick !== ":forEach" && brick !== ":if" && brick !== ":switch") {
619
- throw new Error("Unknown storyboard control node: \"".concat(brick, "\""));
564
+ throw new Error(`Unknown storyboard control node: "${brick}"`);
620
565
  }
621
566
  }
622
- function renderForEach(_x34, _x35, _x36, _x37, _x38, _x39, _x40, _x41, _x42, _x43) {
623
- return _renderForEach.apply(this, arguments);
624
- }
625
- function _renderForEach() {
626
- _renderForEach = _asyncToGenerator(function* (returnNode, dataSource, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, keyPath) {
627
- var output = getEmptyRenderOutput();
628
- var rows = dataSource.length;
629
- var rendered = yield Promise.all(dataSource.map((item, i) => Promise.all(bricks.map((brickConf, j) => renderBrick(returnNode, brickConf, _objectSpread(_objectSpread({}, runtimeContext), {}, {
630
- forEachItem: item,
631
- forEachIndex: i
632
- }), rendererContext, parentRoutes, menuRequestReturnNode, slotId, keyPath.concat(i * rows + j), tplStack && new Map(tplStack))))));
567
+ async function renderForEach(returnNode, dataSource, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, keyPath) {
568
+ const output = getEmptyRenderOutput();
569
+ const rows = dataSource.length;
570
+ const rendered = await Promise.all(dataSource.map((item, i) => Promise.all(bricks.map((brickConf, j) => renderBrick(returnNode, brickConf, {
571
+ ...runtimeContext,
572
+ forEachItem: item,
573
+ forEachIndex: i
574
+ }, rendererContext, parentRoutes, menuRequestReturnNode, slotId, keyPath.concat(i * rows + j), tplStack && new Map(tplStack))))));
633
575
 
634
- // 多层构件并行异步转换,但转换的结果按原顺序串行合并。
635
- rendered.flat().forEach((item, index) => {
636
- if (item.hasTrackingControls) {
637
- // Memoize a render node before it's been merged.
638
- rendererContext.memoize(slotId, keyPath.concat(index), item.node, returnNode);
639
- }
640
- mergeRenderOutput(output, item);
641
- });
642
- return output;
576
+ // 多层构件并行异步转换,但转换的结果按原顺序串行合并。
577
+ rendered.flat().forEach((item, index) => {
578
+ if (item.hasTrackingControls) {
579
+ // Memoize a render node before it's been merged.
580
+ rendererContext.memoize(slotId, keyPath.concat(index), item.node, returnNode);
581
+ }
582
+ mergeRenderOutput(output, item);
643
583
  });
644
- return _renderForEach.apply(this, arguments);
584
+ return output;
645
585
  }
646
586
  export function getDataStores(runtimeContext) {
647
587
  return [runtimeContext.ctxStore, ...runtimeContext.tplStateStoreMap.values(), ...runtimeContext.formStateStoreMap.values()];
@@ -651,12 +591,13 @@ export function postAsyncRender(output, runtimeContext, stores) {
651
591
  return Promise.all([...output.blockingList, ...stores.map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck]);
652
592
  }
653
593
  export function createScopedRuntimeContext(runtimeContext) {
654
- var tplStateStoreScope = [];
655
- var formStateStoreScope = [];
656
- var scopedRuntimeContext = _objectSpread(_objectSpread({}, runtimeContext), {}, {
594
+ const tplStateStoreScope = [];
595
+ const formStateStoreScope = [];
596
+ const scopedRuntimeContext = {
597
+ ...runtimeContext,
657
598
  tplStateStoreScope,
658
599
  formStateStoreScope
659
- });
600
+ };
660
601
  return [scopedRuntimeContext, tplStateStoreScope, formStateStoreScope];
661
602
  }
662
603
  function loadMenu(menuConf, runtimeContext) {
@@ -681,17 +622,17 @@ function loadMenu(menuConf, runtimeContext) {
681
622
  }
682
623
  function mergeRenderOutput(output, newOutput) {
683
624
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
684
- var {
685
- blockingList,
686
- node,
687
- menuRequestNode,
688
- hasTrackingControls
689
- } = newOutput,
690
- rest = _objectWithoutProperties(newOutput, _excluded);
625
+ const {
626
+ blockingList,
627
+ node,
628
+ menuRequestNode,
629
+ hasTrackingControls,
630
+ ...rest
631
+ } = newOutput;
691
632
  output.blockingList.push(...blockingList);
692
633
  if (node) {
693
634
  if (output.node) {
694
- var last = output.node;
635
+ let last = output.node;
695
636
  while (last.sibling) {
696
637
  last = last.sibling;
697
638
  }
@@ -703,10 +644,10 @@ function mergeRenderOutput(output, newOutput) {
703
644
  Object.assign(output, rest);
704
645
  }
705
646
  function mergeSiblingRenderMenuRequest(output, newOutput) {
706
- var menuRequestNode = newOutput.menuRequestNode;
647
+ const menuRequestNode = newOutput.menuRequestNode;
707
648
  if (menuRequestNode) {
708
649
  if (output.menuRequestNode) {
709
- var last = output.menuRequestNode;
650
+ let last = output.menuRequestNode;
710
651
  while (last.sibling) {
711
652
  last = last.sibling;
712
653
  }
@@ -721,7 +662,7 @@ function appendMenuRequestNode(menuRequestReturnNode, menuRequestNode) {
721
662
  return;
722
663
  }
723
664
  if (menuRequestReturnNode.child) {
724
- var last = menuRequestReturnNode.child;
665
+ let last = menuRequestReturnNode.child;
725
666
  while (last.sibling) {
726
667
  last = last.sibling;
727
668
  }
@@ -736,17 +677,16 @@ function getEmptyRenderOutput() {
736
677
  };
737
678
  }
738
679
  export function childrenToSlots(children, originalSlots) {
739
- var newSlots = originalSlots;
680
+ let newSlots = originalSlots;
740
681
  // istanbul ignore next
741
682
  if (process.env.NODE_ENV === "development" && children && !Array.isArray(children)) {
742
683
  // eslint-disable-next-line no-console
743
- console.warn("Specified brick children but not array:", "<".concat(typeof children, ">"), children);
684
+ console.warn("Specified brick children but not array:", `<${typeof children}>`, children);
744
685
  }
745
686
  if (Array.isArray(children) && !newSlots) {
746
687
  newSlots = {};
747
- for (var child of children) {
748
- var _child$slot;
749
- var slot = (_child$slot = child.slot) !== null && _child$slot !== void 0 ? _child$slot : "";
688
+ for (const child of children) {
689
+ const slot = child.slot ?? "";
750
690
  if (!hasOwnProperty(newSlots, slot)) {
751
691
  newSlots[slot] = {
752
692
  type: "bricks",
@@ -761,7 +701,7 @@ export function childrenToSlots(children, originalSlots) {
761
701
  function catchLoad(promise, type, name, unknownPolicy) {
762
702
  return unknownPolicy === "silent" ? promise.catch(e => {
763
703
  // eslint-disable-next-line no-console
764
- console.error("Load %s \"%s\" failed:", type, name, e);
704
+ console.error(`Load %s "%s" failed:`, type, name, e);
765
705
  }) : promise;
766
706
  }
767
707
  //# sourceMappingURL=Renderer.js.map