@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,113 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setupTemplateProxy = setupTemplateProxy;
7
+ var _general = require("@next-core/utils/general");
8
+ var _lodash = require("lodash");
9
+ var _constants = require("./constants.js");
10
+ function setupTemplateProxy(hostContext, ref, slots) {
11
+ const {
12
+ reversedProxies,
13
+ asyncHostProperties,
14
+ externalSlots,
15
+ tplStateStoreId,
16
+ hostBrick
17
+ } = hostContext;
18
+ let asyncComputedProps;
19
+ if (ref && reversedProxies) {
20
+ const propertyProxies = reversedProxies.properties.get(ref);
21
+ if (propertyProxies) {
22
+ const getComputedProps = hostProps => {
23
+ const props = {};
24
+ for (const {
25
+ from,
26
+ to
27
+ } of propertyProxies) {
28
+ const propValue = hostProps[from];
29
+ if (propValue !== undefined && to.refProperty) {
30
+ props[to.refProperty] = propValue;
31
+ }
32
+ }
33
+ return props;
34
+ };
35
+ asyncComputedProps = asyncHostProperties.then(getComputedProps);
36
+ }
37
+ const slotProxies = reversedProxies.slots.get(ref);
38
+ if (slotProxies && externalSlots) {
39
+ // Use an approach like template-literal's quasis:
40
+ // `quasi0${0}quais1${1}quasi2...`
41
+ // Every quasi (indexed by `refPosition`) can be slotted with multiple bricks.
42
+ const quasisMap = new Map();
43
+ for (const {
44
+ from,
45
+ to
46
+ } of slotProxies) {
47
+ var _externalSlots$from$b, _externalSlots$from, _to$refSlot, _to$refPosition;
48
+ const insertBricks = (_externalSlots$from$b = (_externalSlots$from = externalSlots[from]) === null || _externalSlots$from === void 0 ? void 0 : _externalSlots$from.bricks) !== null && _externalSlots$from$b !== void 0 ? _externalSlots$from$b : [];
49
+ if (!insertBricks.length) {
50
+ continue;
51
+ }
52
+ const refToSlot = (_to$refSlot = to.refSlot) !== null && _to$refSlot !== void 0 ? _to$refSlot : from;
53
+ let expandableSlot = quasisMap.get(refToSlot);
54
+ if (!expandableSlot) {
55
+ expandableSlot = [];
56
+ // The size of quasis should be the existed slotted bricks' size plus one.
57
+ const size = (0, _general.hasOwnProperty)(slots, refToSlot) ? slots[refToSlot].bricks.length + 1 : 1;
58
+ for (let i = 0; i < size; i += 1) {
59
+ expandableSlot.push([]);
60
+ }
61
+ quasisMap.set(refToSlot, expandableSlot);
62
+ }
63
+ const refPosition = (_to$refPosition = to.refPosition) !== null && _to$refPosition !== void 0 ? _to$refPosition : -1;
64
+ expandableSlot[(0, _lodash.clamp)(refPosition < 0 ? expandableSlot.length + refPosition : refPosition, 0, expandableSlot.length - 1)].push(...((0, _general.hasOwnProperty)(hostBrick.runtimeContext, "forEachItem") ? setupTemplateExternalBricks(insertBricks, hostBrick.runtimeContext.forEachItem) : insertBricks));
65
+ }
66
+ for (const [slotName, quasis] of quasisMap.entries()) {
67
+ if (!(0, _general.hasOwnProperty)(slots, slotName)) {
68
+ slots[slotName] = {
69
+ type: "bricks",
70
+ bricks: []
71
+ };
72
+ }
73
+ const slotConf = slots[slotName];
74
+ slotConf.bricks = quasis.flatMap((bricks, index) => index < slotConf.bricks.length ? bricks.concat(slotConf.bricks[index]) : bricks);
75
+ if (slotConf.bricks.length === 0) {
76
+ delete slots[slotName];
77
+ }
78
+ }
79
+ }
80
+ }
81
+ return {
82
+ [_constants.symbolForAsyncComputedPropsFromHost]: asyncComputedProps,
83
+ [_constants.symbolForTplStateStoreId]: tplStateStoreId
84
+ };
85
+ }
86
+
87
+ // External bricks of a template, have the same forEachItem context as their host.
88
+ function setupTemplateExternalBricks(bricks, forEachItem) {
89
+ return bricks.map(brick => {
90
+ var _brick$slots;
91
+ return {
92
+ ...brick,
93
+ [_constants.symbolForTPlExternalForEachItem]: forEachItem,
94
+ slots: Object.fromEntries(Object.entries((_brick$slots = brick.slots) !== null && _brick$slots !== void 0 ? _brick$slots : {}).map(([slotName, slotConf]) => {
95
+ var _slotConf$bricks;
96
+ return [slotName, slotConf.type === "routes" ? {
97
+ type: "routes",
98
+ routes: setupTemplateExternalRoutes(slotConf.routes, forEachItem)
99
+ } : {
100
+ type: "bricks",
101
+ bricks: setupTemplateExternalBricks((_slotConf$bricks = slotConf.bricks) !== null && _slotConf$bricks !== void 0 ? _slotConf$bricks : [], forEachItem)
102
+ }];
103
+ }))
104
+ };
105
+ });
106
+ }
107
+ function setupTemplateExternalRoutes(routes, forEachItem) {
108
+ return routes.map(route => route.type && route.type !== "bricks" ? route : {
109
+ ...route,
110
+ bricks: setupTemplateExternalBricks(route.bricks, forEachItem)
111
+ });
112
+ }
113
+ //# sourceMappingURL=setupTemplateProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupTemplateProxy.js","names":["_general","require","_lodash","_constants","setupTemplateProxy","hostContext","ref","slots","reversedProxies","asyncHostProperties","externalSlots","tplStateStoreId","hostBrick","asyncComputedProps","propertyProxies","properties","get","getComputedProps","hostProps","props","from","to","propValue","undefined","refProperty","then","slotProxies","quasisMap","Map","_externalSlots$from$b","_externalSlots$from","_to$refSlot","_to$refPosition","insertBricks","bricks","length","refToSlot","refSlot","expandableSlot","size","hasOwnProperty","i","push","set","refPosition","clamp","runtimeContext","setupTemplateExternalBricks","forEachItem","slotName","quasis","entries","type","slotConf","flatMap","index","concat","symbolForAsyncComputedPropsFromHost","symbolForTplStateStoreId","map","brick","_brick$slots","symbolForTPlExternalForEachItem","Object","fromEntries","_slotConf$bricks","routes","setupTemplateExternalRoutes","route"],"sources":["../../../../src/internal/CustomTemplates/setupTemplateProxy.ts"],"sourcesContent":["import type { BrickConf, RouteConf, SlotsConfOfBricks } from \"@next-core/types\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { clamp } from \"lodash\";\nimport {\n symbolForAsyncComputedPropsFromHost,\n symbolForTPlExternalForEachItem,\n symbolForTplStateStoreId,\n} from \"./constants.js\";\nimport type { AsyncProperties, TemplateHostContext } from \"../interfaces.js\";\n\nexport function setupTemplateProxy(\n hostContext: TemplateHostContext,\n ref: string | undefined,\n slots: SlotsConfOfBricks\n) {\n const {\n reversedProxies,\n asyncHostProperties,\n externalSlots,\n tplStateStoreId,\n hostBrick,\n } = hostContext;\n\n let asyncComputedProps: AsyncProperties | undefined;\n\n if (ref && reversedProxies) {\n const propertyProxies = reversedProxies.properties.get(ref);\n if (propertyProxies) {\n const getComputedProps = (hostProps: Record<string, unknown>) => {\n const props: Record<string, unknown> = {};\n for (const { from, to } of propertyProxies) {\n const propValue = hostProps[from];\n if (propValue !== undefined && to.refProperty) {\n props[to.refProperty] = propValue;\n }\n }\n return props;\n };\n\n asyncComputedProps = (asyncHostProperties as AsyncProperties).then(\n getComputedProps\n );\n }\n\n const slotProxies = reversedProxies.slots.get(ref);\n if (slotProxies && externalSlots) {\n // Use an approach like template-literal's quasis:\n // `quasi0${0}quais1${1}quasi2...`\n // Every quasi (indexed by `refPosition`) can be slotted with multiple bricks.\n const quasisMap = new Map<string, BrickConf[][]>();\n\n for (const { from, to } of slotProxies) {\n const insertBricks = externalSlots[from]?.bricks ?? [];\n if (!insertBricks.length) {\n continue;\n }\n const refToSlot = to.refSlot ?? from;\n let expandableSlot = quasisMap.get(refToSlot);\n if (!expandableSlot) {\n expandableSlot = [];\n // The size of quasis should be the existed slotted bricks' size plus one.\n const size = hasOwnProperty(slots, refToSlot)\n ? slots[refToSlot].bricks.length + 1\n : 1;\n for (let i = 0; i < size; i += 1) {\n expandableSlot.push([]);\n }\n quasisMap.set(refToSlot, expandableSlot);\n }\n const refPosition = to.refPosition ?? -1;\n expandableSlot[\n clamp(\n refPosition < 0 ? expandableSlot.length + refPosition : refPosition,\n 0,\n expandableSlot.length - 1\n )\n ].push(\n ...(hasOwnProperty(hostBrick.runtimeContext, \"forEachItem\")\n ? setupTemplateExternalBricks(\n insertBricks,\n hostBrick.runtimeContext.forEachItem\n )\n : insertBricks)\n );\n }\n\n for (const [slotName, quasis] of quasisMap.entries()) {\n if (!hasOwnProperty(slots, slotName)) {\n slots[slotName] = {\n type: \"bricks\",\n bricks: [],\n };\n }\n const slotConf = slots[slotName];\n slotConf.bricks = quasis.flatMap((bricks, index) =>\n index < slotConf.bricks.length\n ? bricks.concat(slotConf.bricks[index])\n : bricks\n );\n\n if (slotConf.bricks.length === 0) {\n delete slots[slotName];\n }\n }\n }\n }\n\n return {\n [symbolForAsyncComputedPropsFromHost]: asyncComputedProps,\n [symbolForTplStateStoreId]: tplStateStoreId,\n };\n}\n\n// External bricks of a template, have the same forEachItem context as their host.\nfunction setupTemplateExternalBricks(\n bricks: BrickConf[],\n forEachItem: unknown\n): BrickConf[] {\n return bricks.map((brick) => ({\n ...brick,\n [symbolForTPlExternalForEachItem]: forEachItem,\n slots: Object.fromEntries(\n Object.entries(brick.slots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n slotConf.type === \"routes\"\n ? {\n type: \"routes\",\n routes: setupTemplateExternalRoutes(slotConf.routes, forEachItem),\n }\n : {\n type: \"bricks\",\n bricks: setupTemplateExternalBricks(\n slotConf.bricks ?? [],\n forEachItem\n ),\n },\n ])\n ),\n }));\n}\n\nfunction setupTemplateExternalRoutes(\n routes: RouteConf[],\n forEachItem: unknown\n): RouteConf[] {\n return routes.map((route) =>\n route.type && route.type !== \"bricks\"\n ? route\n : {\n ...route,\n bricks: setupTemplateExternalBricks(route.bricks, forEachItem),\n }\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setupUseBrickInTemplate = setupUseBrickInTemplate;
7
+ var _general = require("@next-core/utils/general");
8
+ var _setupTemplateProxy = require("./setupTemplateProxy.js");
9
+ var _Renderer = require("../Renderer.js");
10
+ function setupUseBrickInTemplate(props, hostContext) {
11
+ function walk(props) {
12
+ if (!(0, _general.isObject)(props)) {
13
+ return props;
14
+ }
15
+ if (Array.isArray(props)) {
16
+ return props.map(walk);
17
+ }
18
+ return Object.fromEntries(Object.entries(props).map(([key, value]) => (0, _general.isObject)(value) && key === "useBrick" ? Array.isArray(value) ? [key, value.map(setup)] : [key, setup(value)] : [key, walk(value)]).concat(Object.getOwnPropertySymbols(props).map(k => [k, props[k]])));
19
+ }
20
+ function setup(item) {
21
+ const {
22
+ properties,
23
+ slots: originalSlots,
24
+ children,
25
+ ...restConf
26
+ } = item;
27
+ const transpiledSlots = (0, _Renderer.childrenToSlots)(children, originalSlots);
28
+ const slots = Object.fromEntries(Object.entries(transpiledSlots !== null && transpiledSlots !== void 0 ? transpiledSlots : {}).map(([slotName, slotConf]) => {
29
+ var _slotConf$bricks;
30
+ return [slotName, {
31
+ type: "bricks",
32
+ bricks: ((_slotConf$bricks = slotConf.bricks) !== null && _slotConf$bricks !== void 0 ? _slotConf$bricks : []).map(setup)
33
+ }];
34
+ }));
35
+ return {
36
+ ...restConf,
37
+ properties: walk(properties),
38
+ slots,
39
+ ...(0, _setupTemplateProxy.setupTemplateProxy)(hostContext, restConf.ref, slots)
40
+ };
41
+ }
42
+ return walk(props);
43
+ }
44
+ //# sourceMappingURL=setupUseBrickInTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupUseBrickInTemplate.js","names":["_general","require","_setupTemplateProxy","_Renderer","setupUseBrickInTemplate","props","hostContext","walk","isObject","Array","isArray","map","Object","fromEntries","entries","key","value","setup","concat","getOwnPropertySymbols","k","item","properties","slots","originalSlots","children","restConf","transpiledSlots","childrenToSlots","slotName","slotConf","_slotConf$bricks","type","bricks","setupTemplateProxy","ref"],"sources":["../../../../src/internal/CustomTemplates/setupUseBrickInTemplate.ts"],"sourcesContent":["import type { UseBrickSlotsConf, UseSingleBrickConf } from \"@next-core/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { TemplateHostContext } from \"../interfaces.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function setupUseBrickInTemplate<T>(\n props: T,\n hostContext: TemplateHostContext\n): T {\n function walk<P>(props: P): P {\n if (!isObject(props)) {\n return props;\n }\n\n if (Array.isArray(props)) {\n return props.map(walk) as P;\n }\n\n return Object.fromEntries(\n Object.entries(props)\n .map(([key, value]) =>\n isObject(value) && key === \"useBrick\"\n ? Array.isArray(value)\n ? [key, value.map(setup)]\n : [key, setup(value as UseSingleBrickConf)]\n : [key, walk(value)]\n )\n .concat(\n Object.getOwnPropertySymbols(props).map((k) => [\n k,\n (props as Record<string | symbol, unknown>)[k],\n ])\n )\n ) as P;\n }\n\n function setup(item: UseSingleBrickConf): UseSingleBrickConf {\n const { properties, slots: originalSlots, children, ...restConf } = item;\n\n const transpiledSlots = childrenToSlots(children, originalSlots) as\n | UseBrickSlotsConf\n | undefined;\n\n const slots = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map(setup),\n },\n ])\n ) as UseBrickSlotsConf;\n\n return {\n ...restConf,\n properties: walk(properties),\n slots,\n ...setupTemplateProxy(hostContext, restConf.ref, slots),\n };\n }\n\n return walk(props);\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEO,SAASG,uBAAuBA,CACrCC,KAAQ,EACRC,WAAgC,EAC7B;EACH,SAASC,IAAIA,CAAIF,KAAQ,EAAK;IAC5B,IAAI,CAAC,IAAAG,iBAAQ,EAACH,KAAK,CAAC,EAAE;MACpB,OAAOA,KAAK;IACd;IAEA,IAAII,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;MACxB,OAAOA,KAAK,CAACM,GAAG,CAACJ,IAAI,CAAC;IACxB;IAEA,OAAOK,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACT,KAAK,CAAC,CAClBM,GAAG,CAAC,CAAC,CAACI,GAAG,EAAEC,KAAK,CAAC,KAChB,IAAAR,iBAAQ,EAACQ,KAAK,CAAC,IAAID,GAAG,KAAK,UAAU,GACjCN,KAAK,CAACC,OAAO,CAACM,KAAK,CAAC,GAClB,CAACD,GAAG,EAAEC,KAAK,CAACL,GAAG,CAACM,KAAK,CAAC,CAAC,GACvB,CAACF,GAAG,EAAEE,KAAK,CAACD,KAAK,CAAuB,CAAC,GAC3C,CAACD,GAAG,EAAER,IAAI,CAACS,KAAK,CAAC,CAAC,CACvB,CACAE,MAAM,CACLN,MAAM,CAACO,qBAAqB,CAACd,KAAK,CAAC,CAACM,GAAG,CAAES,CAAC,IAAK,CAC7CA,CAAC,EACAf,KAAK,CAAsCe,CAAC,CAAC,CAC/C,CAAC,CACH,CACJ;EACH;EAEA,SAASH,KAAKA,CAACI,IAAwB,EAAsB;IAC3D,MAAM;MAAEC,UAAU;MAAEC,KAAK,EAAEC,aAAa;MAAEC,QAAQ;MAAE,GAAGC;IAAS,CAAC,GAAGL,IAAI;IAExE,MAAMM,eAAe,GAAG,IAAAC,yBAAe,EAACH,QAAQ,EAAED,aAAa,CAElD;IAEb,MAAMD,KAAK,GAAGX,MAAM,CAACC,WAAW,CAC9BD,MAAM,CAACE,OAAO,CAACa,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAI,CAAC,CAAC,CAAC,CAAChB,GAAG,CAAC,CAAC,CAACkB,QAAQ,EAAEC,QAAQ,CAAC;MAAA,IAAAC,gBAAA;MAAA,OAAK,CAClEF,QAAQ,EACR;QACEG,IAAI,EAAE,QAAQ;QACdC,MAAM,EAAE,EAAAF,gBAAA,GAACD,QAAQ,CAACG,MAAM,cAAAF,gBAAA,cAAAA,gBAAA,GAAI,EAAE,EAAEpB,GAAG,CAACM,KAAK;MAC3C,CAAC,CACF;IAAA,EAAC,CACkB;IAEtB,OAAO;MACL,GAAGS,QAAQ;MACXJ,UAAU,EAAEf,IAAI,CAACe,UAAU,CAAC;MAC5BC,KAAK;MACL,GAAG,IAAAW,sCAAkB,EAAC5B,WAAW,EAAEoB,QAAQ,CAACS,GAAG,EAAEZ,KAAK;IACxD,CAAC;EACH;EAEA,OAAOhB,IAAI,CAACF,KAAK,CAAC;AACpB"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getTagNameOfCustomTemplate = getTagNameOfCustomTemplate;
7
+ exports.getTplHostElement = getTplHostElement;
8
+ exports.getTplStateStore = getTplStateStore;
9
+ var _CustomTemplates = require("../../CustomTemplates.js");
10
+ function getTplStateStore({
11
+ tplStateStoreId,
12
+ tplStateStoreMap
13
+ }, using, extraInfo) {
14
+ if (!tplStateStoreId) {
15
+ throw new Error(`Using "${using}" outside of a custom template${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}`);
16
+ }
17
+ const store = tplStateStoreMap.get(tplStateStoreId);
18
+ if (!store) {
19
+ throw new Error(`Template state store is not found when using "${using}"${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}.\nThis is a bug of Brick Next, please report it.`);
20
+ }
21
+ return store;
22
+ }
23
+ function getTplHostElement(runtimeContext, using, extraInfo) {
24
+ const store = getTplStateStore(runtimeContext, using, extraInfo);
25
+ const hostElement = store.hostBrick.element;
26
+ if (!hostElement) {
27
+ throw new Error(`Template host element is gone when using "${using}"${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}.\nThis is a bug of Brick Next, please report it.`);
28
+ }
29
+ return hostElement;
30
+ }
31
+ function getTagNameOfCustomTemplate(brick, appId) {
32
+ // When a template is registered by an app, it's namespace maybe missed.
33
+ if (!brick.includes(".") && appId) {
34
+ const tagName = `${appId}.${brick}`;
35
+ if (_CustomTemplates.customTemplates.get(tagName)) {
36
+ return tagName;
37
+ }
38
+ }
39
+ if (_CustomTemplates.customTemplates.get(brick)) {
40
+ return brick;
41
+ }
42
+ return false;
43
+ }
44
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["_CustomTemplates","require","getTplStateStore","tplStateStoreId","tplStateStoreMap","using","extraInfo","Error","store","get","getTplHostElement","runtimeContext","hostElement","hostBrick","element","getTagNameOfCustomTemplate","brick","appId","includes","tagName","customTemplates"],"sources":["../../../../src/internal/CustomTemplates/utils.ts"],"sourcesContent":["import type { DataStore } from \"../data/DataStore.js\";\nimport type { RuntimeBrickElement, RuntimeContext } from \"../interfaces.js\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\n\ntype MinimalTplStateStoreContext = Pick<\n RuntimeContext,\n \"tplStateStoreId\" | \"tplStateStoreMap\"\n>;\n\nexport function getTplStateStore(\n { tplStateStoreId, tplStateStoreMap }: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): DataStore<\"STATE\"> {\n if (!tplStateStoreId) {\n throw new Error(\n `Using \"${using}\" outside of a custom template${extraInfo ?? \"\"}`\n );\n }\n const store = tplStateStoreMap.get(tplStateStoreId);\n if (!store) {\n throw new Error(\n `Template state store is not found when using \"${using}\"${\n extraInfo ?? \"\"\n }.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n return store!;\n}\n\nexport function getTplHostElement(\n runtimeContext: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): RuntimeBrickElement {\n const store = getTplStateStore(runtimeContext, using, extraInfo);\n const hostElement = store.hostBrick!.element;\n if (!hostElement) {\n throw new Error(\n `Template host element is gone when using \"${using}\"${\n extraInfo ?? \"\"\n }.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n return hostElement!;\n}\n\nexport function getTagNameOfCustomTemplate(\n brick: string,\n appId?: string\n): false | string {\n // When a template is registered by an app, it's namespace maybe missed.\n if (!brick.includes(\".\") && appId) {\n const tagName = `${appId}.${brick}`;\n if (customTemplates.get(tagName)) {\n return tagName;\n }\n }\n if (customTemplates.get(brick)) {\n return brick;\n }\n return false;\n}\n"],"mappings":";;;;;;;;AAEA,IAAAA,gBAAA,GAAAC,OAAA;AAOO,SAASC,gBAAgBA,CAC9B;EAAEC,eAAe;EAAEC;AAA8C,CAAC,EAClEC,KAAa,EACbC,SAAkB,EACE;EACpB,IAAI,CAACH,eAAe,EAAE;IACpB,MAAM,IAAII,KAAK,CACZ,UAASF,KAAM,iCAAgCC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAG,EAAC,CAClE;EACH;EACA,MAAME,KAAK,GAAGJ,gBAAgB,CAACK,GAAG,CAACN,eAAe,CAAC;EACnD,IAAI,CAACK,KAAK,EAAE;IACV,MAAM,IAAID,KAAK,CACZ,iDAAgDF,KAAM,IACrDC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EACd,mDAAkD,CACpD;EACH;EACA,OAAOE,KAAK;AACd;AAEO,SAASE,iBAAiBA,CAC/BC,cAA2C,EAC3CN,KAAa,EACbC,SAAkB,EACG;EACrB,MAAME,KAAK,GAAGN,gBAAgB,CAACS,cAAc,EAAEN,KAAK,EAAEC,SAAS,CAAC;EAChE,MAAMM,WAAW,GAAGJ,KAAK,CAACK,SAAS,CAAEC,OAAO;EAC5C,IAAI,CAACF,WAAW,EAAE;IAChB,MAAM,IAAIL,KAAK,CACZ,6CAA4CF,KAAM,IACjDC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EACd,mDAAkD,CACpD;EACH;EACA,OAAOM,WAAW;AACpB;AAEO,SAASG,0BAA0BA,CACxCC,KAAa,EACbC,KAAc,EACE;EAChB;EACA,IAAI,CAACD,KAAK,CAACE,QAAQ,CAAC,GAAG,CAAC,IAAID,KAAK,EAAE;IACjC,MAAME,OAAO,GAAI,GAAEF,KAAM,IAAGD,KAAM,EAAC;IACnC,IAAII,gCAAe,CAACX,GAAG,CAACU,OAAO,CAAC,EAAE;MAChC,OAAOA,OAAO;IAChB;EACF;EACA,IAAIC,gCAAe,CAACX,GAAG,CAACO,KAAK,CAAC,EAAE;IAC9B,OAAOA,KAAK;EACd;EACA,OAAO,KAAK;AACd"}
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.childrenToSlots = childrenToSlots;
7
+ exports.renderBrick = renderBrick;
8
+ exports.renderBricks = renderBricks;
9
+ exports.renderRoutes = renderRoutes;
10
+ var _loader = require("@next-core/loader");
11
+ var _general = require("@next-core/utils/general");
12
+ var _lodash = require("lodash");
13
+ var _checkIf = require("./compute/checkIf.js");
14
+ var _computeRealProperties = require("./compute/computeRealProperties.js");
15
+ var _resolveData = require("./data/resolveData.js");
16
+ var _computeRealValue = require("./compute/computeRealValue.js");
17
+ var _checkPermissions = require("./checkPermissions.js");
18
+ var _listenOnTrackingContext = require("./compute/listenOnTrackingContext.js");
19
+ var _matchRoutes = require("./matchRoutes.js");
20
+ var _constants = require("./CustomTemplates/constants.js");
21
+ var _expandCustomTemplate = require("./CustomTemplates/expandCustomTemplate.js");
22
+ var _utils = require("./CustomTemplates/utils.js");
23
+ var _CustomTemplates = require("../CustomTemplates.js");
24
+ var _Runtime = require("./Runtime.js");
25
+ var _enums = require("./enums.js");
26
+ var _getTracks = require("./compute/getTracks.js");
27
+ async function renderRoutes(returnNode, routes, _runtimeContext, rendererContext, slotId) {
28
+ const matched = await (0, _matchRoutes.matchRoutes)(routes, _runtimeContext);
29
+ const output = {
30
+ blockingList: [],
31
+ menuRequests: []
32
+ };
33
+ switch (matched) {
34
+ case "missed":
35
+ break;
36
+ case "unauthenticated":
37
+ output.unauthenticated = true;
38
+ break;
39
+ default:
40
+ {
41
+ const route = output.route = matched.route;
42
+ const runtimeContext = {
43
+ ..._runtimeContext,
44
+ match: matched.match
45
+ };
46
+ runtimeContext.ctxStore.define(route.context, runtimeContext);
47
+ runtimeContext.pendingPermissionsPreCheck.push((0, _checkPermissions.preCheckPermissionsForBrickOrRoute)(route, runtimeContext));
48
+ switch (route.type) {
49
+ case "redirect":
50
+ {
51
+ let redirectTo;
52
+ if (typeof route.redirect === "string") {
53
+ redirectTo = await (0, _computeRealValue.asyncComputeRealValue)(route.redirect, runtimeContext);
54
+ } else {
55
+ const resolved = await (0, _resolveData.resolveData)({
56
+ transform: "redirect",
57
+ ...route.redirect
58
+ }, runtimeContext);
59
+ redirectTo = resolved.redirect;
60
+ }
61
+ if (typeof redirectTo !== "string") {
62
+ // eslint-disable-next-line no-console
63
+ console.error("Unexpected redirect result:", redirectTo);
64
+ throw new Error(`Unexpected type of redirect result: ${typeof redirectTo}`);
65
+ }
66
+ output.redirect = {
67
+ path: redirectTo
68
+ };
69
+ break;
70
+ }
71
+ case "routes":
72
+ {
73
+ output.menuRequests.push(loadMenu(route.menu, runtimeContext));
74
+ const newOutput = await renderRoutes(returnNode, route.routes, runtimeContext, rendererContext, slotId);
75
+ mergeRenderOutput(output, newOutput);
76
+ break;
77
+ }
78
+ default:
79
+ {
80
+ output.menuRequests.push(loadMenu(route.menu, runtimeContext));
81
+ const newOutput = await renderBricks(returnNode, route.bricks, runtimeContext, rendererContext, slotId);
82
+ mergeRenderOutput(output, newOutput);
83
+ }
84
+ }
85
+ }
86
+ }
87
+ return output;
88
+ }
89
+ async function renderBricks(returnNode, bricks, runtimeContext, rendererContext, slotId, tplStack, noMemoize) {
90
+ const output = {
91
+ blockingList: [],
92
+ menuRequests: []
93
+ };
94
+ // 多个构件并行异步转换,但转换的结果按原顺序串行合并。
95
+ const rendered = await Promise.all(bricks.map((brickConf, index) => renderBrick(returnNode, brickConf, runtimeContext, rendererContext, slotId, index, tplStack && new Map(tplStack))));
96
+ rendered.forEach((item, index) => {
97
+ if (!noMemoize && item.hasTrackingControls) {
98
+ // Memoize a render node before it's been merged.
99
+ rendererContext.memoizeControlNode(slotId, index, item.node, returnNode);
100
+ }
101
+ mergeRenderOutput(output, item);
102
+ });
103
+ return output;
104
+ }
105
+ async function renderBrick(returnNode, brickConf, _runtimeContext, rendererContext, slotId, key, tplStack = new Map()) {
106
+ var _runtimeContext$app;
107
+ const output = {
108
+ blockingList: [],
109
+ menuRequests: []
110
+ };
111
+ if (!brickConf.brick) {
112
+ // eslint-disable-next-line no-console
113
+ console.error("Legacy templates are not supported in v3:", brickConf);
114
+ return output;
115
+ }
116
+ const tplStateStoreId = brickConf[_constants.symbolForTplStateStoreId];
117
+ const runtimeContext = {
118
+ ..._runtimeContext,
119
+ tplStateStoreId
120
+ };
121
+ if ((0, _general.hasOwnProperty)(brickConf, _constants.symbolForTPlExternalForEachItem)) {
122
+ // The external bricks of a template should restore their `forEachItem`
123
+ // from their host.
124
+ runtimeContext.forEachItem = brickConf[_constants.symbolForTPlExternalForEachItem];
125
+ }
126
+ const {
127
+ context
128
+ } = brickConf;
129
+ // istanbul ignore next
130
+ if (Array.isArray(context) && context.length > 0) {
131
+ // eslint-disable-next-line no-console
132
+ console.error("Defining context on bricks will be dropped in v3:", brickConf);
133
+ runtimeContext.ctxStore.define(context, runtimeContext);
134
+ }
135
+ runtimeContext.pendingPermissionsPreCheck.push((0, _checkPermissions.preCheckPermissionsForBrickOrRoute)(brickConf, runtimeContext));
136
+ if (!(await (0, _checkIf.asyncCheckBrickIf)(brickConf, runtimeContext))) {
137
+ return output;
138
+ }
139
+ const brickName = brickConf.brick;
140
+ if (brickName.startsWith(":")) {
141
+ ensureValidControlBrick(brickName);
142
+ const {
143
+ dataSource
144
+ } = brickConf;
145
+ const renderControlNode = async () => {
146
+ var _slots$slot;
147
+ // First, compute the `dataSource`
148
+ const computedDataSource = await (0, _computeRealValue.asyncComputeRealValue)(dataSource, runtimeContext);
149
+
150
+ // Then, get the matched slot.
151
+ const slot = brickName === ":forEach" ? "" : brickName === ":switch" ? String(computedDataSource) : computedDataSource ? "" : "else";
152
+
153
+ // Don't forget to transpile children to slots.
154
+ const slots = childrenToSlots(brickConf.children, brickConf.slots);
155
+
156
+ // Then, get the bricks in that matched slot.
157
+ const bricks = slots && (0, _general.hasOwnProperty)(slots, slot) && ((_slots$slot = slots[slot]) === null || _slots$slot === void 0 ? void 0 : _slots$slot.bricks);
158
+ if (!Array.isArray(bricks)) {
159
+ return output;
160
+ }
161
+ switch (brickName) {
162
+ case ":forEach":
163
+ {
164
+ if (!Array.isArray(computedDataSource)) {
165
+ return output;
166
+ }
167
+ return renderForEach(returnNode, computedDataSource, bricks, runtimeContext, rendererContext, slotId, tplStack);
168
+ }
169
+ case ":if":
170
+ case ":switch":
171
+ {
172
+ return renderBricks(returnNode, bricks, runtimeContext, rendererContext, slotId, tplStack, true);
173
+ }
174
+ }
175
+ };
176
+ const controlledOutput = await renderControlNode();
177
+ const {
178
+ contextNames,
179
+ stateNames
180
+ } = (0, _getTracks.getTracks)(dataSource);
181
+ if (contextNames || stateNames) {
182
+ controlledOutput.hasTrackingControls = true;
183
+ let renderId = 0;
184
+ const listener = async () => {
185
+ const currentRenderId = ++renderId;
186
+ const output = await renderControlNode();
187
+ output.blockingList.push(...[...runtimeContext.tplStateStoreMap.values()].map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck);
188
+ await Promise.all(output.blockingList);
189
+ // Ignore stale renders
190
+ if (renderId === currentRenderId) {
191
+ rendererContext.rerenderControlNode(slotId, key, output.node, returnNode);
192
+ }
193
+ };
194
+ const debouncedListener = (0, _lodash.debounce)(listener);
195
+ if (contextNames) {
196
+ for (const contextName of contextNames) {
197
+ runtimeContext.ctxStore.onChange(contextName, debouncedListener);
198
+ }
199
+ }
200
+ if (stateNames) {
201
+ for (const contextName of stateNames) {
202
+ const tplStateStore = (0, _utils.getTplStateStore)(runtimeContext, "STATE", `: "${dataSource}"`);
203
+ tplStateStore.onChange(contextName, debouncedListener);
204
+ }
205
+ }
206
+ }
207
+ return controlledOutput;
208
+ }
209
+
210
+ // Custom templates need to be defined before rendering.
211
+ if (/\.tpl-/.test(brickName) && !_CustomTemplates.customTemplates.get(brickName)) {
212
+ await (0, _loader.loadBricksImperatively)([brickName], (0, _Runtime.getBrickPackages)());
213
+ }
214
+ const tplTagName = (0, _utils.getTagNameOfCustomTemplate)(brickName, (_runtimeContext$app = runtimeContext.app) === null || _runtimeContext$app === void 0 ? void 0 : _runtimeContext$app.id);
215
+ if (tplTagName) {
216
+ var _tplStack$get;
217
+ const tplCount = (_tplStack$get = tplStack.get(tplTagName)) !== null && _tplStack$get !== void 0 ? _tplStack$get : 0;
218
+ if (tplCount >= 10) {
219
+ throw new Error(`Maximum custom template stack overflowed: "${tplTagName}"`);
220
+ }
221
+ tplStack.set(tplTagName, tplCount + 1);
222
+ }
223
+ if (brickName.includes(".")) {
224
+ output.blockingList.push((0, _loader.enqueueStableLoadBricks)([brickName], (0, _Runtime.getBrickPackages)()));
225
+ }
226
+ const brick = {
227
+ tag: _enums.RenderTag.BRICK,
228
+ type: tplTagName || brickName,
229
+ return: returnNode,
230
+ slotId,
231
+ events: brickConf.events,
232
+ runtimeContext,
233
+ portal: brickConf.portal,
234
+ iid: brickConf.iid,
235
+ ref: brickConf.ref
236
+ };
237
+ output.node = brick;
238
+
239
+ // 加载构件属性和加载子构件等任务,可以并行。
240
+ const blockingList = [];
241
+ const trackingContextList = [];
242
+ const loadProperties = async () => {
243
+ brick.properties = await (0, _computeRealProperties.asyncComputeRealProperties)(brickConf.properties, runtimeContext, trackingContextList);
244
+ const computedPropsFromHost = brickConf[_constants.symbolForAsyncComputedPropsFromHost];
245
+ if (computedPropsFromHost) {
246
+ var _brick$properties;
247
+ (_brick$properties = brick.properties) !== null && _brick$properties !== void 0 ? _brick$properties : brick.properties = {};
248
+ const computed = await computedPropsFromHost;
249
+ for (const [propName, propValue] of Object.entries(computed)) {
250
+ brick.properties[propName] = propValue;
251
+ }
252
+ }
253
+ return brick.properties;
254
+ };
255
+ const asyncProperties = loadProperties();
256
+ blockingList.push(asyncProperties);
257
+ asyncProperties.then(() => {
258
+ (0, _listenOnTrackingContext.listenOnTrackingContext)(brick, trackingContextList);
259
+ });
260
+ rendererContext.registerBrickLifeCycle(brick, brickConf.lifeCycle);
261
+ let expandedBrickConf = brickConf;
262
+ if (tplTagName) {
263
+ expandedBrickConf = (0, _expandCustomTemplate.expandCustomTemplate)(tplTagName, brickConf, brick, asyncProperties);
264
+ }
265
+ if (expandedBrickConf.portal) {
266
+ // A portal brick has no slotId.
267
+ brick.slotId = undefined;
268
+ }
269
+ let childRuntimeContext;
270
+ if (tplTagName) {
271
+ // There is a boundary for `forEachItem` between template internals and externals.
272
+ childRuntimeContext = {
273
+ ...runtimeContext
274
+ };
275
+ delete childRuntimeContext.forEachItem;
276
+ } else {
277
+ childRuntimeContext = runtimeContext;
278
+ }
279
+ const loadChildren = async () => {
280
+ const slots = childrenToSlots(expandedBrickConf.children, expandedBrickConf.slots);
281
+ if (!slots) {
282
+ return;
283
+ }
284
+ const rendered = await Promise.all(Object.entries(slots).map(([childSlotId, slotConf]) => slotConf.type !== "routes" ? renderBricks(brick, slotConf.bricks, childRuntimeContext, rendererContext, childSlotId, tplStack) : renderRoutes(brick, slotConf.routes, childRuntimeContext, rendererContext, childSlotId)));
285
+ const childrenOutput = {
286
+ ...output,
287
+ node: undefined,
288
+ blockingList: []
289
+ };
290
+ for (const item of rendered) {
291
+ mergeRenderOutput(childrenOutput, item);
292
+ }
293
+ if (childrenOutput.node) {
294
+ brick.child = childrenOutput.node;
295
+ }
296
+ mergeRenderOutput(output, {
297
+ ...childrenOutput,
298
+ node: undefined
299
+ });
300
+ };
301
+ blockingList.push(loadChildren());
302
+ await Promise.all(blockingList);
303
+ return output;
304
+ }
305
+ function ensureValidControlBrick(brick) {
306
+ if (brick !== ":forEach" && brick !== ":if" && brick !== ":switch") {
307
+ throw new Error(`Unknown storyboard control node: "${brick}"`);
308
+ }
309
+ }
310
+ async function renderForEach(returnNode, dataSource, bricks, runtimeContext, rendererContext, slotId, tplStack) {
311
+ const output = {
312
+ blockingList: [],
313
+ menuRequests: []
314
+ };
315
+ const rendered = await Promise.all(dataSource.map((item, i) => Promise.all(bricks.map((brickConf, j) => renderBrick(returnNode, brickConf, {
316
+ ...runtimeContext,
317
+ forEachItem: item
318
+ }, rendererContext, slotId, i * j, tplStack && new Map(tplStack))))));
319
+
320
+ // 多层构件并行异步转换,但转换的结果按原顺序串行合并。
321
+ for (const item of rendered.flat()) {
322
+ mergeRenderOutput(output, item);
323
+ }
324
+ return output;
325
+ }
326
+ function loadMenu(menuConf, runtimeContext) {
327
+ if (!menuConf) {
328
+ return;
329
+ }
330
+
331
+ // istanbul ignore next
332
+ if (menuConf.type === "brick") {
333
+ // eslint-disable-next-line no-console
334
+ console.error("Set menu with brick is dropped in v3:", menuConf);
335
+ throw new Error("Set menu with brick is dropped in v3");
336
+ }
337
+
338
+ // istanbul ignore next
339
+ if (menuConf.type === "resolve") {
340
+ // eslint-disable-next-line no-console
341
+ console.warn("Set menu with resolve is not supported in v3 yet:", menuConf);
342
+ return;
343
+ }
344
+ return (0, _computeRealValue.asyncComputeRealValue)(menuConf, runtimeContext);
345
+ }
346
+ function mergeRenderOutput(output, newOutput) {
347
+ const {
348
+ blockingList,
349
+ node,
350
+ menuRequests,
351
+ hasTrackingControls,
352
+ ...rest
353
+ } = newOutput;
354
+ output.blockingList.push(...blockingList);
355
+ output.menuRequests.push(...menuRequests);
356
+ if (node) {
357
+ if (output.node) {
358
+ let last = output.node;
359
+ while (last.sibling) {
360
+ last = last.sibling;
361
+ }
362
+ last.sibling = node;
363
+ } else {
364
+ output.node = node;
365
+ }
366
+ }
367
+ Object.assign(output, rest);
368
+ }
369
+ function childrenToSlots(children, originalSlots) {
370
+ let newSlots = originalSlots;
371
+ // istanbul ignore next
372
+ if (process.env.NODE_ENV === "development" && children && !Array.isArray(children)) {
373
+ // eslint-disable-next-line no-console
374
+ console.warn("Specified brick children but not array:", `<${typeof children}>`, children);
375
+ }
376
+ if (Array.isArray(children) && !newSlots) {
377
+ newSlots = {};
378
+ for (const child of children) {
379
+ var _child$slot;
380
+ const slot = (_child$slot = child.slot) !== null && _child$slot !== void 0 ? _child$slot : "";
381
+ if (!(0, _general.hasOwnProperty)(newSlots, slot)) {
382
+ newSlots[slot] = {
383
+ type: "bricks",
384
+ bricks: []
385
+ };
386
+ }
387
+ newSlots[slot].bricks.push(child);
388
+ }
389
+ }
390
+ return newSlots;
391
+ }
392
+ //# sourceMappingURL=Renderer.js.map