@next-core/runtime 1.0.2

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 (371) hide show
  1. package/dist/cjs/CustomProcessors.js +29 -0
  2. package/dist/cjs/CustomProcessors.js.map +1 -0
  3. package/dist/cjs/CustomTemplates.js +179 -0
  4. package/dist/cjs/CustomTemplates.js.map +1 -0
  5. package/dist/cjs/StoryboardFunctionRegistry.js +118 -0
  6. package/dist/cjs/StoryboardFunctionRegistry.js.map +1 -0
  7. package/dist/cjs/auth.js +67 -0
  8. package/dist/cjs/auth.js.map +1 -0
  9. package/dist/cjs/fetchByProvider.js +13 -0
  10. package/dist/cjs/fetchByProvider.js.map +1 -0
  11. package/dist/cjs/getBasePath.js +15 -0
  12. package/dist/cjs/getBasePath.js.map +1 -0
  13. package/dist/cjs/getPageInfo.js +45 -0
  14. package/dist/cjs/getPageInfo.js.map +1 -0
  15. package/dist/cjs/handleHttpError.js +97 -0
  16. package/dist/cjs/handleHttpError.js.map +1 -0
  17. package/dist/cjs/history.js +27 -0
  18. package/dist/cjs/history.js.map +1 -0
  19. package/dist/cjs/index.js +199 -0
  20. package/dist/cjs/index.js.map +1 -0
  21. package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js +72 -0
  22. package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js.map +1 -0
  23. package/dist/cjs/internal/CustomTemplates/constants.js +13 -0
  24. package/dist/cjs/internal/CustomTemplates/constants.js.map +1 -0
  25. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +122 -0
  26. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -0
  27. package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js +113 -0
  28. package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -0
  29. package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js +44 -0
  30. package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -0
  31. package/dist/cjs/internal/CustomTemplates/utils.js +44 -0
  32. package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -0
  33. package/dist/cjs/internal/Renderer.js +392 -0
  34. package/dist/cjs/internal/Renderer.js.map +1 -0
  35. package/dist/cjs/internal/RendererContext.js +433 -0
  36. package/dist/cjs/internal/RendererContext.js.map +1 -0
  37. package/dist/cjs/internal/Router.js +448 -0
  38. package/dist/cjs/internal/Router.js.map +1 -0
  39. package/dist/cjs/internal/Runtime.js +140 -0
  40. package/dist/cjs/internal/Runtime.js.map +1 -0
  41. package/dist/cjs/internal/abortController.js +32 -0
  42. package/dist/cjs/internal/abortController.js.map +1 -0
  43. package/dist/cjs/internal/bindListeners.js +433 -0
  44. package/dist/cjs/internal/bindListeners.js.map +1 -0
  45. package/dist/cjs/internal/checkInstalledApps.js +105 -0
  46. package/dist/cjs/internal/checkInstalledApps.js.map +1 -0
  47. package/dist/cjs/internal/checkPermissions.js +102 -0
  48. package/dist/cjs/internal/checkPermissions.js.map +1 -0
  49. package/dist/cjs/internal/compute/StoryboardFunctions.js +16 -0
  50. package/dist/cjs/internal/compute/StoryboardFunctions.js.map +1 -0
  51. package/dist/cjs/internal/compute/WidgetFunctions.js +31 -0
  52. package/dist/cjs/internal/compute/WidgetFunctions.js.map +1 -0
  53. package/dist/cjs/internal/compute/WidgetI18n.js +21 -0
  54. package/dist/cjs/internal/compute/WidgetI18n.js.map +1 -0
  55. package/dist/cjs/internal/compute/checkIf.js +36 -0
  56. package/dist/cjs/internal/compute/checkIf.js.map +1 -0
  57. package/dist/cjs/internal/compute/collectMemberCallUsage.js +30 -0
  58. package/dist/cjs/internal/compute/collectMemberCallUsage.js.map +1 -0
  59. package/dist/cjs/internal/compute/computeRealProperties.js +80 -0
  60. package/dist/cjs/internal/compute/computeRealProperties.js.map +1 -0
  61. package/dist/cjs/internal/compute/computeRealValue.js +78 -0
  62. package/dist/cjs/internal/compute/computeRealValue.js.map +1 -0
  63. package/dist/cjs/internal/compute/evaluate.js +390 -0
  64. package/dist/cjs/internal/compute/evaluate.js.map +1 -0
  65. package/dist/cjs/internal/compute/getGeneralGlobals.js +87 -0
  66. package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -0
  67. package/dist/cjs/internal/compute/getNextStateOfUseBrick.js +87 -0
  68. package/dist/cjs/internal/compute/getNextStateOfUseBrick.js.map +1 -0
  69. package/dist/cjs/internal/compute/getStorageItem.js +14 -0
  70. package/dist/cjs/internal/compute/getStorageItem.js.map +1 -0
  71. package/dist/cjs/internal/compute/getTracks.js +26 -0
  72. package/dist/cjs/internal/compute/getTracks.js.map +1 -0
  73. package/dist/cjs/internal/compute/images.js +23 -0
  74. package/dist/cjs/internal/compute/images.js.map +1 -0
  75. package/dist/cjs/internal/compute/listenOnTrackingContext.js +40 -0
  76. package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -0
  77. package/dist/cjs/internal/compute/markAsComputed.js +36 -0
  78. package/dist/cjs/internal/compute/markAsComputed.js.map +1 -0
  79. package/dist/cjs/internal/compute/setProperties.js +18 -0
  80. package/dist/cjs/internal/compute/setProperties.js.map +1 -0
  81. package/dist/cjs/internal/compute/setRealProperties.js +29 -0
  82. package/dist/cjs/internal/compute/setRealProperties.js.map +1 -0
  83. package/dist/cjs/internal/data/CollectContracts.js +29 -0
  84. package/dist/cjs/internal/data/CollectContracts.js.map +1 -0
  85. package/dist/cjs/internal/data/DataStore.js +190 -0
  86. package/dist/cjs/internal/data/DataStore.js.map +1 -0
  87. package/dist/cjs/internal/data/FlowApi.js +150 -0
  88. package/dist/cjs/internal/data/FlowApi.js.map +1 -0
  89. package/dist/cjs/internal/data/FlowApiProvider.js +122 -0
  90. package/dist/cjs/internal/data/FlowApiProvider.js.map +1 -0
  91. package/dist/cjs/internal/data/getProviderBrick.js +32 -0
  92. package/dist/cjs/internal/data/getProviderBrick.js.map +1 -0
  93. package/dist/cjs/internal/data/resolveData.js +96 -0
  94. package/dist/cjs/internal/data/resolveData.js.map +1 -0
  95. package/dist/cjs/internal/data/resolveDataStore.js +127 -0
  96. package/dist/cjs/internal/data/resolveDataStore.js.map +1 -0
  97. package/dist/cjs/internal/devtools.js +10 -0
  98. package/dist/cjs/internal/devtools.js.map +1 -0
  99. package/dist/cjs/internal/enums.js +13 -0
  100. package/dist/cjs/internal/enums.js.map +1 -0
  101. package/dist/cjs/internal/historyExtended.js +140 -0
  102. package/dist/cjs/internal/historyExtended.js.map +1 -0
  103. package/dist/cjs/internal/interfaces.js +6 -0
  104. package/dist/cjs/internal/interfaces.js.map +1 -0
  105. package/dist/cjs/internal/loadBootstrapData.js +227 -0
  106. package/dist/cjs/internal/loadBootstrapData.js.map +1 -0
  107. package/dist/cjs/internal/loadCheckLogin.js +17 -0
  108. package/dist/cjs/internal/loadCheckLogin.js.map +1 -0
  109. package/dist/cjs/internal/matchPath.js +88 -0
  110. package/dist/cjs/internal/matchPath.js.map +1 -0
  111. package/dist/cjs/internal/matchRoutes.js +34 -0
  112. package/dist/cjs/internal/matchRoutes.js.map +1 -0
  113. package/dist/cjs/internal/matchStoryboard.js +40 -0
  114. package/dist/cjs/internal/matchStoryboard.js.map +1 -0
  115. package/dist/cjs/internal/mediaQuery.js +55 -0
  116. package/dist/cjs/internal/mediaQuery.js.map +1 -0
  117. package/dist/cjs/internal/menu/computeMenuData.js +37 -0
  118. package/dist/cjs/internal/menu/computeMenuData.js.map +1 -0
  119. package/dist/cjs/internal/menu/constants.js +13 -0
  120. package/dist/cjs/internal/menu/constants.js.map +1 -0
  121. package/dist/cjs/internal/menu/fetchMenuById.js +102 -0
  122. package/dist/cjs/internal/menu/fetchMenuById.js.map +1 -0
  123. package/dist/cjs/internal/menu/fetchMenuTitle.js +37 -0
  124. package/dist/cjs/internal/menu/fetchMenuTitle.js.map +1 -0
  125. package/dist/cjs/internal/menu/getMenusOfStandaloneApp.js +27 -0
  126. package/dist/cjs/internal/menu/getMenusOfStandaloneApp.js.map +1 -0
  127. package/dist/cjs/internal/menu/interfaces.js +4 -0
  128. package/dist/cjs/internal/menu/interfaces.js.map +1 -0
  129. package/dist/cjs/internal/menu/loadDynamicMenuItems.js +28 -0
  130. package/dist/cjs/internal/menu/loadDynamicMenuItems.js.map +1 -0
  131. package/dist/cjs/internal/menu/mergeMenu.js +74 -0
  132. package/dist/cjs/internal/menu/mergeMenu.js.map +1 -0
  133. package/dist/cjs/internal/menu/reorderMenuItems.js +20 -0
  134. package/dist/cjs/internal/menu/reorderMenuItems.js.map +1 -0
  135. package/dist/cjs/internal/mount.js +90 -0
  136. package/dist/cjs/internal/mount.js.map +1 -0
  137. package/dist/cjs/internal/poll.js +83 -0
  138. package/dist/cjs/internal/poll.js.map +1 -0
  139. package/dist/cjs/internal/proxyFactories.js +39 -0
  140. package/dist/cjs/internal/proxyFactories.js.map +1 -0
  141. package/dist/cjs/internal/registerAppI18n.js +25 -0
  142. package/dist/cjs/internal/registerAppI18n.js.map +1 -0
  143. package/dist/cjs/internal/registerCustomTemplates.js +22 -0
  144. package/dist/cjs/internal/registerCustomTemplates.js.map +1 -0
  145. package/dist/cjs/internal/secret_internals.js +140 -0
  146. package/dist/cjs/internal/secret_internals.js.map +1 -0
  147. package/dist/cjs/themeAndMode.js +97 -0
  148. package/dist/cjs/themeAndMode.js.map +1 -0
  149. package/dist/esm/CustomProcessors.js +30 -0
  150. package/dist/esm/CustomProcessors.js.map +1 -0
  151. package/dist/esm/CustomTemplates.js +187 -0
  152. package/dist/esm/CustomTemplates.js.map +1 -0
  153. package/dist/esm/StoryboardFunctionRegistry.js +116 -0
  154. package/dist/esm/StoryboardFunctionRegistry.js.map +1 -0
  155. package/dist/esm/auth.js +57 -0
  156. package/dist/esm/auth.js.map +1 -0
  157. package/dist/esm/fetchByProvider.js +14 -0
  158. package/dist/esm/fetchByProvider.js.map +1 -0
  159. package/dist/esm/getBasePath.js +9 -0
  160. package/dist/esm/getBasePath.js.map +1 -0
  161. package/dist/esm/getPageInfo.js +39 -0
  162. package/dist/esm/getPageInfo.js.map +1 -0
  163. package/dist/esm/handleHttpError.js +90 -0
  164. package/dist/esm/handleHttpError.js.map +1 -0
  165. package/dist/esm/history.js +20 -0
  166. package/dist/esm/history.js.map +1 -0
  167. package/dist/esm/index.js +17 -0
  168. package/dist/esm/index.js.map +1 -0
  169. package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +68 -0
  170. package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -0
  171. package/dist/esm/internal/CustomTemplates/constants.js +4 -0
  172. package/dist/esm/internal/CustomTemplates/constants.js.map +1 -0
  173. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +117 -0
  174. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -0
  175. package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +110 -0
  176. package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -0
  177. package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js +43 -0
  178. package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -0
  179. package/dist/esm/internal/CustomTemplates/utils.js +37 -0
  180. package/dist/esm/internal/CustomTemplates/utils.js.map +1 -0
  181. package/dist/esm/internal/Renderer.js +427 -0
  182. package/dist/esm/internal/Renderer.js.map +1 -0
  183. package/dist/esm/internal/RendererContext.js +425 -0
  184. package/dist/esm/internal/RendererContext.js.map +1 -0
  185. package/dist/esm/internal/Router.js +445 -0
  186. package/dist/esm/internal/Router.js.map +1 -0
  187. package/dist/esm/internal/Runtime.js +116 -0
  188. package/dist/esm/internal/Runtime.js.map +1 -0
  189. package/dist/esm/internal/abortController.js +24 -0
  190. package/dist/esm/internal/abortController.js.map +1 -0
  191. package/dist/esm/internal/bindListeners.js +434 -0
  192. package/dist/esm/internal/bindListeners.js.map +1 -0
  193. package/dist/esm/internal/checkInstalledApps.js +100 -0
  194. package/dist/esm/internal/checkInstalledApps.js.map +1 -0
  195. package/dist/esm/internal/checkPermissions.js +107 -0
  196. package/dist/esm/internal/checkPermissions.js.map +1 -0
  197. package/dist/esm/internal/compute/StoryboardFunctions.js +7 -0
  198. package/dist/esm/internal/compute/StoryboardFunctions.js.map +1 -0
  199. package/dist/esm/internal/compute/WidgetFunctions.js +23 -0
  200. package/dist/esm/internal/compute/WidgetFunctions.js.map +1 -0
  201. package/dist/esm/internal/compute/WidgetI18n.js +14 -0
  202. package/dist/esm/internal/compute/WidgetI18n.js.map +1 -0
  203. package/dist/esm/internal/compute/checkIf.js +39 -0
  204. package/dist/esm/internal/compute/checkIf.js.map +1 -0
  205. package/dist/esm/internal/compute/collectMemberCallUsage.js +22 -0
  206. package/dist/esm/internal/compute/collectMemberCallUsage.js.map +1 -0
  207. package/dist/esm/internal/compute/computeRealProperties.js +87 -0
  208. package/dist/esm/internal/compute/computeRealProperties.js.map +1 -0
  209. package/dist/esm/internal/compute/computeRealValue.js +86 -0
  210. package/dist/esm/internal/compute/computeRealValue.js.map +1 -0
  211. package/dist/esm/internal/compute/evaluate.js +387 -0
  212. package/dist/esm/internal/compute/evaluate.js.map +1 -0
  213. package/dist/esm/internal/compute/getGeneralGlobals.js +82 -0
  214. package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -0
  215. package/dist/esm/internal/compute/getNextStateOfUseBrick.js +78 -0
  216. package/dist/esm/internal/compute/getNextStateOfUseBrick.js.map +1 -0
  217. package/dist/esm/internal/compute/getStorageItem.js +8 -0
  218. package/dist/esm/internal/compute/getStorageItem.js.map +1 -0
  219. package/dist/esm/internal/compute/getTracks.js +20 -0
  220. package/dist/esm/internal/compute/getTracks.js.map +1 -0
  221. package/dist/esm/internal/compute/images.js +16 -0
  222. package/dist/esm/internal/compute/images.js.map +1 -0
  223. package/dist/esm/internal/compute/listenOnTrackingContext.js +37 -0
  224. package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -0
  225. package/dist/esm/internal/compute/markAsComputed.js +28 -0
  226. package/dist/esm/internal/compute/markAsComputed.js.map +1 -0
  227. package/dist/esm/internal/compute/setProperties.js +12 -0
  228. package/dist/esm/internal/compute/setProperties.js.map +1 -0
  229. package/dist/esm/internal/compute/setRealProperties.js +23 -0
  230. package/dist/esm/internal/compute/setRealProperties.js.map +1 -0
  231. package/dist/esm/internal/data/CollectContracts.js +20 -0
  232. package/dist/esm/internal/data/CollectContracts.js.map +1 -0
  233. package/dist/esm/internal/data/DataStore.js +203 -0
  234. package/dist/esm/internal/data/DataStore.js.map +1 -0
  235. package/dist/esm/internal/data/FlowApi.js +156 -0
  236. package/dist/esm/internal/data/FlowApi.js.map +1 -0
  237. package/dist/esm/internal/data/FlowApiProvider.js +122 -0
  238. package/dist/esm/internal/data/FlowApiProvider.js.map +1 -0
  239. package/dist/esm/internal/data/getProviderBrick.js +33 -0
  240. package/dist/esm/internal/data/getProviderBrick.js.map +1 -0
  241. package/dist/esm/internal/data/resolveData.js +101 -0
  242. package/dist/esm/internal/data/resolveData.js.map +1 -0
  243. package/dist/esm/internal/data/resolveDataStore.js +134 -0
  244. package/dist/esm/internal/data/resolveDataStore.js.map +1 -0
  245. package/dist/esm/internal/devtools.js +4 -0
  246. package/dist/esm/internal/devtools.js.map +1 -0
  247. package/dist/esm/internal/enums.js +6 -0
  248. package/dist/esm/internal/enums.js.map +1 -0
  249. package/dist/esm/internal/historyExtended.js +132 -0
  250. package/dist/esm/internal/historyExtended.js.map +1 -0
  251. package/dist/esm/internal/interfaces.js +2 -0
  252. package/dist/esm/internal/interfaces.js.map +1 -0
  253. package/dist/esm/internal/loadBootstrapData.js +243 -0
  254. package/dist/esm/internal/loadBootstrapData.js.map +1 -0
  255. package/dist/esm/internal/loadCheckLogin.js +18 -0
  256. package/dist/esm/internal/loadCheckLogin.js.map +1 -0
  257. package/dist/esm/internal/matchPath.js +81 -0
  258. package/dist/esm/internal/matchPath.js.map +1 -0
  259. package/dist/esm/internal/matchRoutes.js +35 -0
  260. package/dist/esm/internal/matchRoutes.js.map +1 -0
  261. package/dist/esm/internal/matchStoryboard.js +33 -0
  262. package/dist/esm/internal/matchStoryboard.js.map +1 -0
  263. package/dist/esm/internal/mediaQuery.js +44 -0
  264. package/dist/esm/internal/mediaQuery.js.map +1 -0
  265. package/dist/esm/internal/menu/computeMenuData.js +38 -0
  266. package/dist/esm/internal/menu/computeMenuData.js.map +1 -0
  267. package/dist/esm/internal/menu/constants.js +4 -0
  268. package/dist/esm/internal/menu/constants.js.map +1 -0
  269. package/dist/esm/internal/menu/fetchMenuById.js +104 -0
  270. package/dist/esm/internal/menu/fetchMenuById.js.map +1 -0
  271. package/dist/esm/internal/menu/fetchMenuTitle.js +38 -0
  272. package/dist/esm/internal/menu/fetchMenuTitle.js.map +1 -0
  273. package/dist/esm/internal/menu/getMenusOfStandaloneApp.js +19 -0
  274. package/dist/esm/internal/menu/getMenusOfStandaloneApp.js.map +1 -0
  275. package/dist/esm/internal/menu/interfaces.js +4 -0
  276. package/dist/esm/internal/menu/interfaces.js.map +1 -0
  277. package/dist/esm/internal/menu/loadDynamicMenuItems.js +28 -0
  278. package/dist/esm/internal/menu/loadDynamicMenuItems.js.map +1 -0
  279. package/dist/esm/internal/menu/mergeMenu.js +77 -0
  280. package/dist/esm/internal/menu/mergeMenu.js.map +1 -0
  281. package/dist/esm/internal/menu/reorderMenuItems.js +14 -0
  282. package/dist/esm/internal/menu/reorderMenuItems.js.map +1 -0
  283. package/dist/esm/internal/mount.js +83 -0
  284. package/dist/esm/internal/mount.js.map +1 -0
  285. package/dist/esm/internal/poll.js +85 -0
  286. package/dist/esm/internal/poll.js.map +1 -0
  287. package/dist/esm/internal/proxyFactories.js +34 -0
  288. package/dist/esm/internal/proxyFactories.js.map +1 -0
  289. package/dist/esm/internal/registerAppI18n.js +20 -0
  290. package/dist/esm/internal/registerAppI18n.js.map +1 -0
  291. package/dist/esm/internal/registerCustomTemplates.js +16 -0
  292. package/dist/esm/internal/registerCustomTemplates.js.map +1 -0
  293. package/dist/esm/internal/secret_internals.js +145 -0
  294. package/dist/esm/internal/secret_internals.js.map +1 -0
  295. package/dist/esm/themeAndMode.js +80 -0
  296. package/dist/esm/themeAndMode.js.map +1 -0
  297. package/dist/types/CustomProcessors.d.ts +7 -0
  298. package/dist/types/CustomTemplates.d.ts +8 -0
  299. package/dist/types/StoryboardFunctionRegistry.d.ts +44 -0
  300. package/dist/types/auth.d.ts +19 -0
  301. package/dist/types/fetchByProvider.d.ts +2 -0
  302. package/dist/types/getBasePath.d.ts +4 -0
  303. package/dist/types/getPageInfo.d.ts +14 -0
  304. package/dist/types/handleHttpError.d.ts +19 -0
  305. package/dist/types/history.d.ts +7 -0
  306. package/dist/types/index.d.ts +15 -0
  307. package/dist/types/internal/CustomTemplates/bindTemplateProxy.d.ts +3 -0
  308. package/dist/types/internal/CustomTemplates/constants.d.ts +11 -0
  309. package/dist/types/internal/CustomTemplates/expandCustomTemplate.d.ts +3 -0
  310. package/dist/types/internal/CustomTemplates/setupTemplateProxy.d.ts +7 -0
  311. package/dist/types/internal/CustomTemplates/setupUseBrickInTemplate.d.ts +2 -0
  312. package/dist/types/internal/CustomTemplates/utils.d.ts +7 -0
  313. package/dist/types/internal/Renderer.d.ts +21 -0
  314. package/dist/types/internal/RendererContext.d.ts +25 -0
  315. package/dist/types/internal/Router.d.ts +16 -0
  316. package/dist/types/internal/Runtime.d.ts +35 -0
  317. package/dist/types/internal/abortController.d.ts +2 -0
  318. package/dist/types/internal/bindListeners.d.ts +11 -0
  319. package/dist/types/internal/checkInstalledApps.d.ts +6 -0
  320. package/dist/types/internal/checkPermissions.d.ts +17 -0
  321. package/dist/types/internal/compute/StoryboardFunctions.d.ts +1 -0
  322. package/dist/types/internal/compute/WidgetFunctions.d.ts +3 -0
  323. package/dist/types/internal/compute/WidgetI18n.d.ts +3 -0
  324. package/dist/types/internal/compute/checkIf.d.ts +23 -0
  325. package/dist/types/internal/compute/collectMemberCallUsage.d.ts +8 -0
  326. package/dist/types/internal/compute/computeRealProperties.d.ts +4 -0
  327. package/dist/types/internal/compute/computeRealValue.d.ts +9 -0
  328. package/dist/types/internal/compute/evaluate.d.ts +21 -0
  329. package/dist/types/internal/compute/getGeneralGlobals.d.ts +12 -0
  330. package/dist/types/internal/compute/getNextStateOfUseBrick.d.ts +16 -0
  331. package/dist/types/internal/compute/getStorageItem.d.ts +1 -0
  332. package/dist/types/internal/compute/getTracks.d.ts +5 -0
  333. package/dist/types/internal/compute/images.d.ts +5 -0
  334. package/dist/types/internal/compute/listenOnTrackingContext.d.ts +9 -0
  335. package/dist/types/internal/compute/markAsComputed.d.ts +3 -0
  336. package/dist/types/internal/compute/setProperties.d.ts +2 -0
  337. package/dist/types/internal/compute/setRealProperties.d.ts +1 -0
  338. package/dist/types/internal/data/CollectContracts.d.ts +5 -0
  339. package/dist/types/internal/data/DataStore.d.ts +26 -0
  340. package/dist/types/internal/data/FlowApi.d.ts +30 -0
  341. package/dist/types/internal/data/FlowApiProvider.d.ts +20 -0
  342. package/dist/types/internal/data/getProviderBrick.d.ts +1 -0
  343. package/dist/types/internal/data/resolveData.d.ts +16 -0
  344. package/dist/types/internal/data/resolveDataStore.d.ts +11 -0
  345. package/dist/types/internal/devtools.d.ts +6 -0
  346. package/dist/types/internal/enums.d.ts +4 -0
  347. package/dist/types/internal/historyExtended.d.ts +58 -0
  348. package/dist/types/internal/interfaces.d.ts +92 -0
  349. package/dist/types/internal/loadBootstrapData.d.ts +10 -0
  350. package/dist/types/internal/loadCheckLogin.d.ts +1 -0
  351. package/dist/types/internal/matchPath.d.ts +18 -0
  352. package/dist/types/internal/matchRoutes.d.ts +9 -0
  353. package/dist/types/internal/matchStoryboard.d.ts +10 -0
  354. package/dist/types/internal/mediaQuery.d.ts +14 -0
  355. package/dist/types/internal/menu/computeMenuData.d.ts +7 -0
  356. package/dist/types/internal/menu/constants.d.ts +3 -0
  357. package/dist/types/internal/menu/fetchMenuById.d.ts +3 -0
  358. package/dist/types/internal/menu/fetchMenuTitle.d.ts +2 -0
  359. package/dist/types/internal/menu/getMenusOfStandaloneApp.d.ts +2 -0
  360. package/dist/types/internal/menu/interfaces.d.ts +74 -0
  361. package/dist/types/internal/menu/loadDynamicMenuItems.d.ts +3 -0
  362. package/dist/types/internal/menu/mergeMenu.d.ts +3 -0
  363. package/dist/types/internal/menu/reorderMenuItems.d.ts +2 -0
  364. package/dist/types/internal/mount.d.ts +3 -0
  365. package/dist/types/internal/poll.d.ts +10 -0
  366. package/dist/types/internal/proxyFactories.d.ts +2 -0
  367. package/dist/types/internal/registerAppI18n.d.ts +3 -0
  368. package/dist/types/internal/registerCustomTemplates.d.ts +2 -0
  369. package/dist/types/internal/secret_internals.d.ts +21 -0
  370. package/dist/types/themeAndMode.d.ts +16 -0
  371. package/package.json +67 -0
@@ -0,0 +1,427 @@
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
4
+ var _excluded = ["blockingList", "node", "menuRequests", "hasTrackingControls"];
5
+ import { enqueueStableLoadBricks, loadBricksImperatively } from "@next-core/loader";
6
+ import { hasOwnProperty } from "@next-core/utils/general";
7
+ import { debounce } from "lodash";
8
+ import { asyncCheckBrickIf } from "./compute/checkIf.js";
9
+ import { asyncComputeRealProperties } from "./compute/computeRealProperties.js";
10
+ import { resolveData } from "./data/resolveData.js";
11
+ import { asyncComputeRealValue } from "./compute/computeRealValue.js";
12
+ import { preCheckPermissionsForBrickOrRoute } from "./checkPermissions.js";
13
+ import { listenOnTrackingContext } from "./compute/listenOnTrackingContext.js";
14
+ import { matchRoutes } from "./matchRoutes.js";
15
+ import { symbolForAsyncComputedPropsFromHost, symbolForTPlExternalForEachItem, symbolForTplStateStoreId } from "./CustomTemplates/constants.js";
16
+ import { expandCustomTemplate } from "./CustomTemplates/expandCustomTemplate.js";
17
+ import { getTagNameOfCustomTemplate, getTplStateStore } from "./CustomTemplates/utils.js";
18
+ import { customTemplates } from "../CustomTemplates.js";
19
+ import { getBrickPackages } from "./Runtime.js";
20
+ import { RenderTag } from "./enums.js";
21
+ import { getTracks } from "./compute/getTracks.js";
22
+ export function renderRoutes(_x, _x2, _x3, _x4, _x5) {
23
+ return _renderRoutes.apply(this, arguments);
24
+ }
25
+ function _renderRoutes() {
26
+ _renderRoutes = _asyncToGenerator(function* (returnNode, routes, _runtimeContext, rendererContext, slotId) {
27
+ var matched = yield matchRoutes(routes, _runtimeContext);
28
+ var output = {
29
+ blockingList: [],
30
+ menuRequests: []
31
+ };
32
+ switch (matched) {
33
+ case "missed":
34
+ break;
35
+ case "unauthenticated":
36
+ output.unauthenticated = true;
37
+ break;
38
+ default:
39
+ {
40
+ var route = output.route = matched.route;
41
+ var runtimeContext = _objectSpread(_objectSpread({}, _runtimeContext), {}, {
42
+ match: matched.match
43
+ });
44
+ runtimeContext.ctxStore.define(route.context, runtimeContext);
45
+ runtimeContext.pendingPermissionsPreCheck.push(preCheckPermissionsForBrickOrRoute(route, runtimeContext));
46
+ switch (route.type) {
47
+ case "redirect":
48
+ {
49
+ var redirectTo;
50
+ if (typeof route.redirect === "string") {
51
+ redirectTo = yield asyncComputeRealValue(route.redirect, runtimeContext);
52
+ } else {
53
+ var resolved = yield resolveData(_objectSpread({
54
+ transform: "redirect"
55
+ }, route.redirect), runtimeContext);
56
+ redirectTo = resolved.redirect;
57
+ }
58
+ if (typeof redirectTo !== "string") {
59
+ // eslint-disable-next-line no-console
60
+ console.error("Unexpected redirect result:", redirectTo);
61
+ throw new Error("Unexpected type of redirect result: ".concat(typeof redirectTo));
62
+ }
63
+ output.redirect = {
64
+ path: redirectTo
65
+ };
66
+ break;
67
+ }
68
+ case "routes":
69
+ {
70
+ output.menuRequests.push(loadMenu(route.menu, runtimeContext));
71
+ var newOutput = yield renderRoutes(returnNode, route.routes, runtimeContext, rendererContext, slotId);
72
+ mergeRenderOutput(output, newOutput);
73
+ break;
74
+ }
75
+ default:
76
+ {
77
+ output.menuRequests.push(loadMenu(route.menu, runtimeContext));
78
+ var _newOutput = yield renderBricks(returnNode, route.bricks, runtimeContext, rendererContext, slotId);
79
+ mergeRenderOutput(output, _newOutput);
80
+ }
81
+ }
82
+ }
83
+ }
84
+ return output;
85
+ });
86
+ return _renderRoutes.apply(this, arguments);
87
+ }
88
+ export function renderBricks(_x6, _x7, _x8, _x9, _x10, _x11, _x12) {
89
+ return _renderBricks.apply(this, arguments);
90
+ }
91
+ function _renderBricks() {
92
+ _renderBricks = _asyncToGenerator(function* (returnNode, bricks, runtimeContext, rendererContext, slotId, tplStack, noMemoize) {
93
+ var output = {
94
+ blockingList: [],
95
+ menuRequests: []
96
+ };
97
+ // 多个构件并行异步转换,但转换的结果按原顺序串行合并。
98
+ var rendered = yield Promise.all(bricks.map((brickConf, index) => renderBrick(returnNode, brickConf, runtimeContext, rendererContext, slotId, index, tplStack && new Map(tplStack))));
99
+ rendered.forEach((item, index) => {
100
+ if (!noMemoize && item.hasTrackingControls) {
101
+ // Memoize a render node before it's been merged.
102
+ rendererContext.memoizeControlNode(slotId, index, item.node, returnNode);
103
+ }
104
+ mergeRenderOutput(output, item);
105
+ });
106
+ return output;
107
+ });
108
+ return _renderBricks.apply(this, arguments);
109
+ }
110
+ export function renderBrick(_x13, _x14, _x15, _x16, _x17, _x18) {
111
+ return _renderBrick.apply(this, arguments);
112
+ }
113
+ function _renderBrick() {
114
+ _renderBrick = _asyncToGenerator(function* (returnNode, brickConf, _runtimeContext, rendererContext, slotId, key) {
115
+ var _runtimeContext$app;
116
+ var tplStack = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : new Map();
117
+ var output = {
118
+ blockingList: [],
119
+ menuRequests: []
120
+ };
121
+ if (!brickConf.brick) {
122
+ // eslint-disable-next-line no-console
123
+ console.error("Legacy templates are not supported in v3:", brickConf);
124
+ return output;
125
+ }
126
+ var tplStateStoreId = brickConf[symbolForTplStateStoreId];
127
+ var runtimeContext = _objectSpread(_objectSpread({}, _runtimeContext), {}, {
128
+ tplStateStoreId
129
+ });
130
+ if (hasOwnProperty(brickConf, symbolForTPlExternalForEachItem)) {
131
+ // The external bricks of a template should restore their `forEachItem`
132
+ // from their host.
133
+ runtimeContext.forEachItem = brickConf[symbolForTPlExternalForEachItem];
134
+ }
135
+ var {
136
+ context
137
+ } = brickConf;
138
+ // istanbul ignore next
139
+ if (Array.isArray(context) && context.length > 0) {
140
+ // eslint-disable-next-line no-console
141
+ console.error("Defining context on bricks will be dropped in v3:", brickConf);
142
+ runtimeContext.ctxStore.define(context, runtimeContext);
143
+ }
144
+ runtimeContext.pendingPermissionsPreCheck.push(preCheckPermissionsForBrickOrRoute(brickConf, runtimeContext));
145
+ if (!(yield asyncCheckBrickIf(brickConf, runtimeContext))) {
146
+ return output;
147
+ }
148
+ var brickName = brickConf.brick;
149
+ if (brickName.startsWith(":")) {
150
+ ensureValidControlBrick(brickName);
151
+ var {
152
+ dataSource
153
+ } = brickConf;
154
+ var renderControlNode = /*#__PURE__*/function () {
155
+ var _ref = _asyncToGenerator(function* () {
156
+ var _slots$slot;
157
+ // First, compute the `dataSource`
158
+ var computedDataSource = yield asyncComputeRealValue(dataSource, runtimeContext);
159
+
160
+ // Then, get the matched slot.
161
+ var slot = brickName === ":forEach" ? "" : brickName === ":switch" ? String(computedDataSource) : computedDataSource ? "" : "else";
162
+
163
+ // Don't forget to transpile children to slots.
164
+ var slots = childrenToSlots(brickConf.children, brickConf.slots);
165
+
166
+ // Then, get the bricks in that matched slot.
167
+ var bricks = slots && hasOwnProperty(slots, slot) && ((_slots$slot = slots[slot]) === null || _slots$slot === void 0 ? void 0 : _slots$slot.bricks);
168
+ if (!Array.isArray(bricks)) {
169
+ return output;
170
+ }
171
+ switch (brickName) {
172
+ case ":forEach":
173
+ {
174
+ if (!Array.isArray(computedDataSource)) {
175
+ return output;
176
+ }
177
+ return renderForEach(returnNode, computedDataSource, bricks, runtimeContext, rendererContext, slotId, tplStack);
178
+ }
179
+ case ":if":
180
+ case ":switch":
181
+ {
182
+ return renderBricks(returnNode, bricks, runtimeContext, rendererContext, slotId, tplStack, true);
183
+ }
184
+ }
185
+ });
186
+ return function renderControlNode() {
187
+ return _ref.apply(this, arguments);
188
+ };
189
+ }();
190
+ var controlledOutput = yield renderControlNode();
191
+ var {
192
+ contextNames,
193
+ stateNames
194
+ } = getTracks(dataSource);
195
+ if (contextNames || stateNames) {
196
+ controlledOutput.hasTrackingControls = true;
197
+ var renderId = 0;
198
+ var listener = /*#__PURE__*/function () {
199
+ var _ref2 = _asyncToGenerator(function* () {
200
+ var currentRenderId = ++renderId;
201
+ var output = yield renderControlNode();
202
+ output.blockingList.push(...[...runtimeContext.tplStateStoreMap.values()].map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck);
203
+ yield Promise.all(output.blockingList);
204
+ // Ignore stale renders
205
+ if (renderId === currentRenderId) {
206
+ rendererContext.rerenderControlNode(slotId, key, output.node, returnNode);
207
+ }
208
+ });
209
+ return function listener() {
210
+ return _ref2.apply(this, arguments);
211
+ };
212
+ }();
213
+ var debouncedListener = debounce(listener);
214
+ if (contextNames) {
215
+ for (var contextName of contextNames) {
216
+ runtimeContext.ctxStore.onChange(contextName, debouncedListener);
217
+ }
218
+ }
219
+ if (stateNames) {
220
+ for (var _contextName of stateNames) {
221
+ var tplStateStore = getTplStateStore(runtimeContext, "STATE", ": \"".concat(dataSource, "\""));
222
+ tplStateStore.onChange(_contextName, debouncedListener);
223
+ }
224
+ }
225
+ }
226
+ return controlledOutput;
227
+ }
228
+
229
+ // Custom templates need to be defined before rendering.
230
+ if (/\.tpl-/.test(brickName) && !customTemplates.get(brickName)) {
231
+ yield loadBricksImperatively([brickName], getBrickPackages());
232
+ }
233
+ var tplTagName = getTagNameOfCustomTemplate(brickName, (_runtimeContext$app = runtimeContext.app) === null || _runtimeContext$app === void 0 ? void 0 : _runtimeContext$app.id);
234
+ if (tplTagName) {
235
+ var _tplStack$get;
236
+ var tplCount = (_tplStack$get = tplStack.get(tplTagName)) !== null && _tplStack$get !== void 0 ? _tplStack$get : 0;
237
+ if (tplCount >= 10) {
238
+ throw new Error("Maximum custom template stack overflowed: \"".concat(tplTagName, "\""));
239
+ }
240
+ tplStack.set(tplTagName, tplCount + 1);
241
+ }
242
+ if (brickName.includes(".")) {
243
+ output.blockingList.push(enqueueStableLoadBricks([brickName], getBrickPackages()));
244
+ }
245
+ var brick = {
246
+ tag: RenderTag.BRICK,
247
+ type: tplTagName || brickName,
248
+ return: returnNode,
249
+ slotId,
250
+ events: brickConf.events,
251
+ runtimeContext,
252
+ portal: brickConf.portal,
253
+ iid: brickConf.iid,
254
+ ref: brickConf.ref
255
+ };
256
+ output.node = brick;
257
+
258
+ // 加载构件属性和加载子构件等任务,可以并行。
259
+ var blockingList = [];
260
+ var trackingContextList = [];
261
+ var loadProperties = /*#__PURE__*/function () {
262
+ var _ref3 = _asyncToGenerator(function* () {
263
+ brick.properties = yield asyncComputeRealProperties(brickConf.properties, runtimeContext, trackingContextList);
264
+ var computedPropsFromHost = brickConf[symbolForAsyncComputedPropsFromHost];
265
+ if (computedPropsFromHost) {
266
+ var _brick$properties;
267
+ (_brick$properties = brick.properties) !== null && _brick$properties !== void 0 ? _brick$properties : brick.properties = {};
268
+ var computed = yield computedPropsFromHost;
269
+ for (var [propName, propValue] of Object.entries(computed)) {
270
+ brick.properties[propName] = propValue;
271
+ }
272
+ }
273
+ return brick.properties;
274
+ });
275
+ return function loadProperties() {
276
+ return _ref3.apply(this, arguments);
277
+ };
278
+ }();
279
+ var asyncProperties = loadProperties();
280
+ blockingList.push(asyncProperties);
281
+ asyncProperties.then(() => {
282
+ listenOnTrackingContext(brick, trackingContextList);
283
+ });
284
+ rendererContext.registerBrickLifeCycle(brick, brickConf.lifeCycle);
285
+ var expandedBrickConf = brickConf;
286
+ if (tplTagName) {
287
+ expandedBrickConf = expandCustomTemplate(tplTagName, brickConf, brick, asyncProperties);
288
+ }
289
+ if (expandedBrickConf.portal) {
290
+ // A portal brick has no slotId.
291
+ brick.slotId = undefined;
292
+ }
293
+ var childRuntimeContext;
294
+ if (tplTagName) {
295
+ // There is a boundary for `forEachItem` between template internals and externals.
296
+ childRuntimeContext = _objectSpread({}, runtimeContext);
297
+ delete childRuntimeContext.forEachItem;
298
+ } else {
299
+ childRuntimeContext = runtimeContext;
300
+ }
301
+ var loadChildren = /*#__PURE__*/function () {
302
+ var _ref4 = _asyncToGenerator(function* () {
303
+ var slots = childrenToSlots(expandedBrickConf.children, expandedBrickConf.slots);
304
+ if (!slots) {
305
+ return;
306
+ }
307
+ var rendered = yield Promise.all(Object.entries(slots).map(_ref5 => {
308
+ var [childSlotId, slotConf] = _ref5;
309
+ return slotConf.type !== "routes" ? renderBricks(brick, slotConf.bricks, childRuntimeContext, rendererContext, childSlotId, tplStack) : renderRoutes(brick, slotConf.routes, childRuntimeContext, rendererContext, childSlotId);
310
+ }));
311
+ var childrenOutput = _objectSpread(_objectSpread({}, output), {}, {
312
+ node: undefined,
313
+ blockingList: []
314
+ });
315
+ for (var item of rendered) {
316
+ mergeRenderOutput(childrenOutput, item);
317
+ }
318
+ if (childrenOutput.node) {
319
+ brick.child = childrenOutput.node;
320
+ }
321
+ mergeRenderOutput(output, _objectSpread(_objectSpread({}, childrenOutput), {}, {
322
+ node: undefined
323
+ }));
324
+ });
325
+ return function loadChildren() {
326
+ return _ref4.apply(this, arguments);
327
+ };
328
+ }();
329
+ blockingList.push(loadChildren());
330
+ yield Promise.all(blockingList);
331
+ return output;
332
+ });
333
+ return _renderBrick.apply(this, arguments);
334
+ }
335
+ function ensureValidControlBrick(brick) {
336
+ if (brick !== ":forEach" && brick !== ":if" && brick !== ":switch") {
337
+ throw new Error("Unknown storyboard control node: \"".concat(brick, "\""));
338
+ }
339
+ }
340
+ function renderForEach(_x19, _x20, _x21, _x22, _x23, _x24, _x25) {
341
+ return _renderForEach.apply(this, arguments);
342
+ }
343
+ function _renderForEach() {
344
+ _renderForEach = _asyncToGenerator(function* (returnNode, dataSource, bricks, runtimeContext, rendererContext, slotId, tplStack) {
345
+ var output = {
346
+ blockingList: [],
347
+ menuRequests: []
348
+ };
349
+ var rendered = yield Promise.all(dataSource.map((item, i) => Promise.all(bricks.map((brickConf, j) => renderBrick(returnNode, brickConf, _objectSpread(_objectSpread({}, runtimeContext), {}, {
350
+ forEachItem: item
351
+ }), rendererContext, slotId, i * j, tplStack && new Map(tplStack))))));
352
+
353
+ // 多层构件并行异步转换,但转换的结果按原顺序串行合并。
354
+ for (var item of rendered.flat()) {
355
+ mergeRenderOutput(output, item);
356
+ }
357
+ return output;
358
+ });
359
+ return _renderForEach.apply(this, arguments);
360
+ }
361
+ function loadMenu(menuConf, runtimeContext) {
362
+ if (!menuConf) {
363
+ return;
364
+ }
365
+
366
+ // istanbul ignore next
367
+ if (menuConf.type === "brick") {
368
+ // eslint-disable-next-line no-console
369
+ console.error("Set menu with brick is dropped in v3:", menuConf);
370
+ throw new Error("Set menu with brick is dropped in v3");
371
+ }
372
+
373
+ // istanbul ignore next
374
+ if (menuConf.type === "resolve") {
375
+ // eslint-disable-next-line no-console
376
+ console.warn("Set menu with resolve is not supported in v3 yet:", menuConf);
377
+ return;
378
+ }
379
+ return asyncComputeRealValue(menuConf, runtimeContext);
380
+ }
381
+ function mergeRenderOutput(output, newOutput) {
382
+ var {
383
+ blockingList,
384
+ node,
385
+ menuRequests,
386
+ hasTrackingControls
387
+ } = newOutput,
388
+ rest = _objectWithoutProperties(newOutput, _excluded);
389
+ output.blockingList.push(...blockingList);
390
+ output.menuRequests.push(...menuRequests);
391
+ if (node) {
392
+ if (output.node) {
393
+ var last = output.node;
394
+ while (last.sibling) {
395
+ last = last.sibling;
396
+ }
397
+ last.sibling = node;
398
+ } else {
399
+ output.node = node;
400
+ }
401
+ }
402
+ Object.assign(output, rest);
403
+ }
404
+ export function childrenToSlots(children, originalSlots) {
405
+ var newSlots = originalSlots;
406
+ // istanbul ignore next
407
+ if (process.env.NODE_ENV === "development" && children && !Array.isArray(children)) {
408
+ // eslint-disable-next-line no-console
409
+ console.warn("Specified brick children but not array:", "<".concat(typeof children, ">"), children);
410
+ }
411
+ if (Array.isArray(children) && !newSlots) {
412
+ newSlots = {};
413
+ for (var child of children) {
414
+ var _child$slot;
415
+ var slot = (_child$slot = child.slot) !== null && _child$slot !== void 0 ? _child$slot : "";
416
+ if (!hasOwnProperty(newSlots, slot)) {
417
+ newSlots[slot] = {
418
+ type: "bricks",
419
+ bricks: []
420
+ };
421
+ }
422
+ newSlots[slot].bricks.push(child);
423
+ }
424
+ }
425
+ return newSlots;
426
+ }
427
+ //# sourceMappingURL=Renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Renderer.js","names":["enqueueStableLoadBricks","loadBricksImperatively","hasOwnProperty","debounce","asyncCheckBrickIf","asyncComputeRealProperties","resolveData","asyncComputeRealValue","preCheckPermissionsForBrickOrRoute","listenOnTrackingContext","matchRoutes","symbolForAsyncComputedPropsFromHost","symbolForTPlExternalForEachItem","symbolForTplStateStoreId","expandCustomTemplate","getTagNameOfCustomTemplate","getTplStateStore","customTemplates","getBrickPackages","RenderTag","getTracks","renderRoutes","_x","_x2","_x3","_x4","_x5","_renderRoutes","apply","arguments","_asyncToGenerator","returnNode","routes","_runtimeContext","rendererContext","slotId","matched","output","blockingList","menuRequests","unauthenticated","route","runtimeContext","_objectSpread","match","ctxStore","define","context","pendingPermissionsPreCheck","push","type","redirectTo","redirect","resolved","transform","console","error","Error","concat","path","loadMenu","menu","newOutput","mergeRenderOutput","renderBricks","bricks","_x6","_x7","_x8","_x9","_x10","_x11","_x12","_renderBricks","tplStack","noMemoize","rendered","Promise","all","map","brickConf","index","renderBrick","Map","forEach","item","hasTrackingControls","memoizeControlNode","node","_x13","_x14","_x15","_x16","_x17","_x18","_renderBrick","key","_runtimeContext$app","length","undefined","brick","tplStateStoreId","forEachItem","Array","isArray","brickName","startsWith","ensureValidControlBrick","dataSource","renderControlNode","_ref","_slots$slot","computedDataSource","slot","String","slots","childrenToSlots","children","renderForEach","controlledOutput","contextNames","stateNames","renderId","listener","_ref2","currentRenderId","tplStateStoreMap","values","store","waitForAll","rerenderControlNode","debouncedListener","contextName","onChange","tplStateStore","test","get","tplTagName","app","id","_tplStack$get","tplCount","set","includes","tag","BRICK","return","events","portal","iid","ref","trackingContextList","loadProperties","_ref3","properties","computedPropsFromHost","_brick$properties","computed","propName","propValue","Object","entries","asyncProperties","then","registerBrickLifeCycle","lifeCycle","expandedBrickConf","childRuntimeContext","loadChildren","_ref4","_ref5","childSlotId","slotConf","childrenOutput","child","_x19","_x20","_x21","_x22","_x23","_x24","_x25","_renderForEach","i","j","flat","menuConf","warn","rest","_objectWithoutProperties","_excluded","last","sibling","assign","originalSlots","newSlots","process","env","NODE_ENV","_child$slot"],"sources":["../../../src/internal/Renderer.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\n ContextConf,\n MenuConf,\n RouteConf,\n SlotConfOfBricks,\n SlotsConf,\n StaticMenuConf,\n} from \"@next-core/types\";\nimport {\n enqueueStableLoadBricks,\n loadBricksImperatively,\n} from \"@next-core/loader\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { debounce } from \"lodash\";\nimport { asyncCheckBrickIf } from \"./compute/checkIf.js\";\nimport { asyncComputeRealProperties } from \"./compute/computeRealProperties.js\";\nimport { resolveData } from \"./data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\nimport { preCheckPermissionsForBrickOrRoute } from \"./checkPermissions.js\";\nimport {\n TrackingContextItem,\n listenOnTrackingContext,\n} from \"./compute/listenOnTrackingContext.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport { matchRoutes } from \"./matchRoutes.js\";\nimport {\n RuntimeBrickConfWithTplSymbols,\n symbolForAsyncComputedPropsFromHost,\n symbolForTPlExternalForEachItem,\n symbolForTplStateStoreId,\n} from \"./CustomTemplates/constants.js\";\nimport { expandCustomTemplate } from \"./CustomTemplates/expandCustomTemplate.js\";\nimport type { RenderBrick, RenderNode, RuntimeContext } from \"./interfaces.js\";\nimport {\n getTagNameOfCustomTemplate,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport type { NextHistoryState } from \"./historyExtended.js\";\nimport { getBrickPackages } from \"./Runtime.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { getTracks } from \"./compute/getTracks.js\";\n\nexport interface RenderOutput {\n node?: RenderBrick;\n unauthenticated?: boolean;\n redirect?: {\n path: string;\n state?: NextHistoryState;\n };\n route?: RouteConf;\n blockingList: (Promise<unknown> | undefined)[];\n menuRequests: (Promise<StaticMenuConf | undefined> | undefined)[];\n hasTrackingControls?: boolean;\n}\n\nexport async function renderRoutes(\n returnNode: RenderNode,\n routes: RouteConf[],\n _runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string\n): Promise<RenderOutput> {\n const matched = await matchRoutes(routes, _runtimeContext);\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n switch (matched) {\n case \"missed\":\n break;\n case \"unauthenticated\":\n output.unauthenticated = true;\n break;\n default: {\n const route = (output.route = matched.route);\n const runtimeContext = {\n ..._runtimeContext,\n match: matched.match,\n };\n runtimeContext.ctxStore.define(route.context, runtimeContext);\n runtimeContext.pendingPermissionsPreCheck.push(\n preCheckPermissionsForBrickOrRoute(route, runtimeContext)\n );\n switch (route.type) {\n case \"redirect\": {\n let redirectTo: unknown;\n if (typeof route.redirect === \"string\") {\n redirectTo = await asyncComputeRealValue(\n route.redirect,\n runtimeContext\n );\n } else {\n const resolved = (await resolveData(\n {\n transform: \"redirect\",\n ...route.redirect,\n },\n runtimeContext\n )) as { redirect?: unknown };\n redirectTo = resolved.redirect;\n }\n if (typeof redirectTo !== \"string\") {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected redirect result:\", redirectTo);\n throw new Error(\n `Unexpected type of redirect result: ${typeof redirectTo}`\n );\n }\n output.redirect = { path: redirectTo };\n break;\n }\n case \"routes\": {\n output.menuRequests.push(loadMenu(route.menu, runtimeContext));\n const newOutput = await renderRoutes(\n returnNode,\n route.routes,\n runtimeContext,\n rendererContext,\n slotId\n );\n mergeRenderOutput(output, newOutput);\n break;\n }\n default: {\n output.menuRequests.push(loadMenu(route.menu, runtimeContext));\n const newOutput = await renderBricks(\n returnNode,\n route.bricks,\n runtimeContext,\n rendererContext,\n slotId\n );\n mergeRenderOutput(output, newOutput);\n }\n }\n }\n }\n return output;\n}\n\nexport async function renderBricks(\n returnNode: RenderNode,\n bricks: BrickConf[],\n runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string,\n tplStack?: Map<string, number>,\n noMemoize?: boolean\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n // 多个构件并行异步转换,但转换的结果按原顺序串行合并。\n const rendered = await Promise.all(\n bricks.map((brickConf, index) =>\n renderBrick(\n returnNode,\n brickConf,\n runtimeContext,\n rendererContext,\n slotId,\n index,\n tplStack && new Map(tplStack)\n )\n )\n );\n\n rendered.forEach((item, index) => {\n if (!noMemoize && item.hasTrackingControls) {\n // Memoize a render node before it's been merged.\n rendererContext.memoizeControlNode(slotId, index, item.node, returnNode);\n }\n mergeRenderOutput(output, item);\n });\n\n return output;\n}\n\nexport async function renderBrick(\n returnNode: RenderNode,\n brickConf: RuntimeBrickConfWithTplSymbols,\n _runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string,\n key?: number,\n tplStack = new Map<string, number>()\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n\n if (!brickConf.brick) {\n // eslint-disable-next-line no-console\n console.error(\"Legacy templates are not supported in v3:\", brickConf);\n return output;\n }\n\n const tplStateStoreId = brickConf[symbolForTplStateStoreId];\n const runtimeContext = {\n ..._runtimeContext,\n tplStateStoreId,\n };\n\n if (hasOwnProperty(brickConf, symbolForTPlExternalForEachItem)) {\n // The external bricks of a template should restore their `forEachItem`\n // from their host.\n runtimeContext.forEachItem = brickConf[symbolForTPlExternalForEachItem];\n }\n\n const { context } = brickConf as { context?: ContextConf[] };\n // istanbul ignore next\n if (Array.isArray(context) && context.length > 0) {\n // eslint-disable-next-line no-console\n console.error(\n \"Defining context on bricks will be dropped in v3:\",\n brickConf\n );\n runtimeContext.ctxStore.define(context, runtimeContext);\n }\n\n runtimeContext.pendingPermissionsPreCheck.push(\n preCheckPermissionsForBrickOrRoute(brickConf, runtimeContext)\n );\n\n if (!(await asyncCheckBrickIf(brickConf, runtimeContext))) {\n return output;\n }\n\n const brickName = brickConf.brick;\n if (brickName.startsWith(\":\")) {\n ensureValidControlBrick(brickName);\n\n const { dataSource } = brickConf;\n\n const renderControlNode = async () => {\n // First, compute the `dataSource`\n const computedDataSource = await asyncComputeRealValue(\n dataSource,\n runtimeContext\n );\n\n // Then, get the matched slot.\n const slot =\n brickName === \":forEach\"\n ? \"\"\n : brickName === \":switch\"\n ? String(computedDataSource)\n : computedDataSource\n ? \"\"\n : \"else\";\n\n // Don't forget to transpile children to slots.\n const slots = childrenToSlots(brickConf.children, brickConf.slots);\n\n // Then, get the bricks in that matched slot.\n const bricks =\n slots &&\n hasOwnProperty(slots, slot) &&\n (slots[slot] as SlotConfOfBricks)?.bricks;\n\n if (!Array.isArray(bricks)) {\n return output;\n }\n\n switch (brickName) {\n case \":forEach\": {\n if (!Array.isArray(computedDataSource)) {\n return output;\n }\n return renderForEach(\n returnNode,\n computedDataSource,\n bricks,\n runtimeContext,\n rendererContext,\n slotId,\n tplStack\n );\n }\n case \":if\":\n case \":switch\": {\n return renderBricks(\n returnNode,\n bricks,\n runtimeContext,\n rendererContext,\n slotId,\n tplStack,\n true\n );\n }\n }\n };\n\n const controlledOutput = await renderControlNode();\n\n const { contextNames, stateNames } = getTracks(dataSource);\n if (contextNames || stateNames) {\n controlledOutput.hasTrackingControls = true;\n let renderId = 0;\n const listener = async () => {\n const currentRenderId = ++renderId;\n const output = await renderControlNode();\n output.blockingList.push(\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n await Promise.all(output.blockingList);\n // Ignore stale renders\n if (renderId === currentRenderId) {\n rendererContext.rerenderControlNode(\n slotId,\n key as number,\n output.node,\n returnNode\n );\n }\n };\n const debouncedListener = debounce(listener);\n if (contextNames) {\n for (const contextName of contextNames) {\n runtimeContext.ctxStore.onChange(contextName, debouncedListener);\n }\n }\n if (stateNames) {\n for (const contextName of stateNames) {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n \"STATE\",\n `: \"${dataSource}\"`\n );\n tplStateStore.onChange(contextName, debouncedListener);\n }\n }\n }\n\n return controlledOutput;\n }\n\n // Custom templates need to be defined before rendering.\n if (/\\.tpl-/.test(brickName) && !customTemplates.get(brickName)) {\n await loadBricksImperatively([brickName], getBrickPackages());\n }\n\n const tplTagName = getTagNameOfCustomTemplate(\n brickName,\n runtimeContext.app?.id\n );\n\n if (tplTagName) {\n const tplCount = tplStack.get(tplTagName) ?? 0;\n if (tplCount >= 10) {\n throw new Error(\n `Maximum custom template stack overflowed: \"${tplTagName}\"`\n );\n }\n tplStack.set(tplTagName, tplCount + 1);\n }\n\n if (brickName.includes(\".\")) {\n output.blockingList.push(\n enqueueStableLoadBricks([brickName], getBrickPackages())\n );\n }\n\n const brick: RenderBrick = {\n tag: RenderTag.BRICK,\n type: tplTagName || brickName,\n return: returnNode,\n slotId,\n events: brickConf.events,\n runtimeContext,\n portal: brickConf.portal,\n iid: brickConf.iid,\n ref: (brickConf as BrickConfInTemplate).ref,\n };\n\n output.node = brick;\n\n // 加载构件属性和加载子构件等任务,可以并行。\n const blockingList: Promise<unknown>[] = [];\n\n const trackingContextList: TrackingContextItem[] = [];\n const loadProperties = async () => {\n brick.properties = await asyncComputeRealProperties(\n brickConf.properties,\n runtimeContext,\n trackingContextList\n );\n const computedPropsFromHost =\n brickConf[symbolForAsyncComputedPropsFromHost];\n if (computedPropsFromHost) {\n brick.properties ??= {};\n const computed = await computedPropsFromHost;\n for (const [propName, propValue] of Object.entries(computed)) {\n brick.properties[propName] = propValue;\n }\n }\n return brick.properties;\n };\n const asyncProperties = loadProperties();\n blockingList.push(asyncProperties);\n\n asyncProperties.then(() => {\n listenOnTrackingContext(brick, trackingContextList);\n });\n\n rendererContext.registerBrickLifeCycle(brick, brickConf.lifeCycle);\n\n let expandedBrickConf = brickConf;\n if (tplTagName) {\n expandedBrickConf = expandCustomTemplate(\n tplTagName,\n brickConf,\n brick,\n asyncProperties\n );\n }\n\n if (expandedBrickConf.portal) {\n // A portal brick has no slotId.\n brick.slotId = undefined;\n }\n\n let childRuntimeContext: RuntimeContext;\n if (tplTagName) {\n // There is a boundary for `forEachItem` between template internals and externals.\n childRuntimeContext = {\n ...runtimeContext,\n };\n delete childRuntimeContext.forEachItem;\n } else {\n childRuntimeContext = runtimeContext;\n }\n\n const loadChildren = async () => {\n const slots = childrenToSlots(\n expandedBrickConf.children,\n expandedBrickConf.slots\n );\n if (!slots) {\n return;\n }\n const rendered = await Promise.all(\n Object.entries(slots).map(([childSlotId, slotConf]) =>\n slotConf.type !== \"routes\"\n ? renderBricks(\n brick,\n (slotConf as SlotConfOfBricks).bricks,\n childRuntimeContext,\n rendererContext,\n childSlotId,\n tplStack\n )\n : renderRoutes(\n brick,\n slotConf.routes,\n childRuntimeContext,\n rendererContext,\n childSlotId\n )\n )\n );\n\n const childrenOutput: RenderOutput = {\n ...output,\n node: undefined,\n blockingList: [],\n };\n for (const item of rendered) {\n mergeRenderOutput(childrenOutput, item);\n }\n if (childrenOutput.node) {\n brick.child = childrenOutput.node;\n }\n mergeRenderOutput(output, {\n ...childrenOutput,\n node: undefined,\n });\n };\n blockingList.push(loadChildren());\n\n await Promise.all(blockingList);\n\n return output;\n}\n\ntype ValidControlBrick = \":forEach\" | \":if\" | \":switch\";\n\nfunction ensureValidControlBrick(\n brick: string\n): asserts brick is ValidControlBrick {\n if (brick !== \":forEach\" && brick !== \":if\" && brick !== \":switch\") {\n throw new Error(`Unknown storyboard control node: \"${brick}\"`);\n }\n}\n\nasync function renderForEach(\n returnNode: RenderNode,\n dataSource: unknown[],\n bricks: BrickConf[],\n runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId: string | undefined,\n tplStack?: Map<string, number>\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n\n const rendered = await Promise.all(\n dataSource.map((item, i) =>\n Promise.all(\n bricks.map((brickConf, j) =>\n renderBrick(\n returnNode,\n brickConf,\n {\n ...runtimeContext,\n forEachItem: item,\n },\n rendererContext,\n slotId,\n i * j,\n tplStack && new Map(tplStack)\n )\n )\n )\n )\n );\n\n // 多层构件并行异步转换,但转换的结果按原顺序串行合并。\n for (const item of rendered.flat()) {\n mergeRenderOutput(output, item);\n }\n return output;\n}\n\nfunction loadMenu(\n menuConf: MenuConf | undefined,\n runtimeContext: RuntimeContext\n) {\n if (!menuConf) {\n return;\n }\n\n // istanbul ignore next\n if ((menuConf as { type?: \"brick\" }).type === \"brick\") {\n // eslint-disable-next-line no-console\n console.error(\"Set menu with brick is dropped in v3:\", menuConf);\n throw new Error(\"Set menu with brick is dropped in v3\");\n }\n\n // istanbul ignore next\n if (menuConf.type === \"resolve\") {\n // eslint-disable-next-line no-console\n console.warn(\"Set menu with resolve is not supported in v3 yet:\", menuConf);\n return;\n }\n\n return asyncComputeRealValue(\n menuConf,\n runtimeContext\n ) as Promise<StaticMenuConf>;\n}\n\nfunction mergeRenderOutput(\n output: RenderOutput,\n newOutput: RenderOutput\n): void {\n const { blockingList, node, menuRequests, hasTrackingControls, ...rest } =\n newOutput;\n output.blockingList.push(...blockingList);\n output.menuRequests.push(...menuRequests);\n\n if (node) {\n if (output.node) {\n let last = output.node;\n while (last.sibling) {\n last = last.sibling;\n }\n last.sibling = node;\n } else {\n output.node = node;\n }\n }\n\n Object.assign(output, rest);\n}\n\nexport function childrenToSlots(\n children: BrickConf[] | undefined,\n originalSlots: SlotsConf | undefined\n) {\n let newSlots = originalSlots;\n // istanbul ignore next\n if (\n process.env.NODE_ENV === \"development\" &&\n children &&\n !Array.isArray(children)\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n \"Specified brick children but not array:\",\n `<${typeof children}>`,\n children\n );\n }\n if (Array.isArray(children) && !newSlots) {\n newSlots = {};\n for (const child of children) {\n const slot = child.slot ?? \"\";\n if (!hasOwnProperty(newSlots, slot)) {\n newSlots[slot] = {\n type: \"bricks\",\n bricks: [],\n };\n }\n (newSlots[slot] as SlotConfOfBricks).bricks.push(child);\n }\n }\n return newSlots;\n}\n"],"mappings":"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"}