@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.
- package/dist/cjs/CustomProcessors.js +29 -0
- package/dist/cjs/CustomProcessors.js.map +1 -0
- package/dist/cjs/CustomTemplates.js +179 -0
- package/dist/cjs/CustomTemplates.js.map +1 -0
- package/dist/cjs/StoryboardFunctionRegistry.js +118 -0
- package/dist/cjs/StoryboardFunctionRegistry.js.map +1 -0
- package/dist/cjs/auth.js +67 -0
- package/dist/cjs/auth.js.map +1 -0
- package/dist/cjs/fetchByProvider.js +13 -0
- package/dist/cjs/fetchByProvider.js.map +1 -0
- package/dist/cjs/getBasePath.js +15 -0
- package/dist/cjs/getBasePath.js.map +1 -0
- package/dist/cjs/getPageInfo.js +45 -0
- package/dist/cjs/getPageInfo.js.map +1 -0
- package/dist/cjs/handleHttpError.js +97 -0
- package/dist/cjs/handleHttpError.js.map +1 -0
- package/dist/cjs/history.js +27 -0
- package/dist/cjs/history.js.map +1 -0
- package/dist/cjs/index.js +199 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js +72 -0
- package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js.map +1 -0
- package/dist/cjs/internal/CustomTemplates/constants.js +13 -0
- package/dist/cjs/internal/CustomTemplates/constants.js.map +1 -0
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +122 -0
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -0
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js +113 -0
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -0
- package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js +44 -0
- package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -0
- package/dist/cjs/internal/CustomTemplates/utils.js +44 -0
- package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -0
- package/dist/cjs/internal/Renderer.js +392 -0
- package/dist/cjs/internal/Renderer.js.map +1 -0
- package/dist/cjs/internal/RendererContext.js +433 -0
- package/dist/cjs/internal/RendererContext.js.map +1 -0
- package/dist/cjs/internal/Router.js +448 -0
- package/dist/cjs/internal/Router.js.map +1 -0
- package/dist/cjs/internal/Runtime.js +140 -0
- package/dist/cjs/internal/Runtime.js.map +1 -0
- package/dist/cjs/internal/abortController.js +32 -0
- package/dist/cjs/internal/abortController.js.map +1 -0
- package/dist/cjs/internal/bindListeners.js +433 -0
- package/dist/cjs/internal/bindListeners.js.map +1 -0
- package/dist/cjs/internal/checkInstalledApps.js +105 -0
- package/dist/cjs/internal/checkInstalledApps.js.map +1 -0
- package/dist/cjs/internal/checkPermissions.js +102 -0
- package/dist/cjs/internal/checkPermissions.js.map +1 -0
- package/dist/cjs/internal/compute/StoryboardFunctions.js +16 -0
- package/dist/cjs/internal/compute/StoryboardFunctions.js.map +1 -0
- package/dist/cjs/internal/compute/WidgetFunctions.js +31 -0
- package/dist/cjs/internal/compute/WidgetFunctions.js.map +1 -0
- package/dist/cjs/internal/compute/WidgetI18n.js +21 -0
- package/dist/cjs/internal/compute/WidgetI18n.js.map +1 -0
- package/dist/cjs/internal/compute/checkIf.js +36 -0
- package/dist/cjs/internal/compute/checkIf.js.map +1 -0
- package/dist/cjs/internal/compute/collectMemberCallUsage.js +30 -0
- package/dist/cjs/internal/compute/collectMemberCallUsage.js.map +1 -0
- package/dist/cjs/internal/compute/computeRealProperties.js +80 -0
- package/dist/cjs/internal/compute/computeRealProperties.js.map +1 -0
- package/dist/cjs/internal/compute/computeRealValue.js +78 -0
- package/dist/cjs/internal/compute/computeRealValue.js.map +1 -0
- package/dist/cjs/internal/compute/evaluate.js +390 -0
- package/dist/cjs/internal/compute/evaluate.js.map +1 -0
- package/dist/cjs/internal/compute/getGeneralGlobals.js +87 -0
- package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -0
- package/dist/cjs/internal/compute/getNextStateOfUseBrick.js +87 -0
- package/dist/cjs/internal/compute/getNextStateOfUseBrick.js.map +1 -0
- package/dist/cjs/internal/compute/getStorageItem.js +14 -0
- package/dist/cjs/internal/compute/getStorageItem.js.map +1 -0
- package/dist/cjs/internal/compute/getTracks.js +26 -0
- package/dist/cjs/internal/compute/getTracks.js.map +1 -0
- package/dist/cjs/internal/compute/images.js +23 -0
- package/dist/cjs/internal/compute/images.js.map +1 -0
- package/dist/cjs/internal/compute/listenOnTrackingContext.js +40 -0
- package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -0
- package/dist/cjs/internal/compute/markAsComputed.js +36 -0
- package/dist/cjs/internal/compute/markAsComputed.js.map +1 -0
- package/dist/cjs/internal/compute/setProperties.js +18 -0
- package/dist/cjs/internal/compute/setProperties.js.map +1 -0
- package/dist/cjs/internal/compute/setRealProperties.js +29 -0
- package/dist/cjs/internal/compute/setRealProperties.js.map +1 -0
- package/dist/cjs/internal/data/CollectContracts.js +29 -0
- package/dist/cjs/internal/data/CollectContracts.js.map +1 -0
- package/dist/cjs/internal/data/DataStore.js +190 -0
- package/dist/cjs/internal/data/DataStore.js.map +1 -0
- package/dist/cjs/internal/data/FlowApi.js +150 -0
- package/dist/cjs/internal/data/FlowApi.js.map +1 -0
- package/dist/cjs/internal/data/FlowApiProvider.js +122 -0
- package/dist/cjs/internal/data/FlowApiProvider.js.map +1 -0
- package/dist/cjs/internal/data/getProviderBrick.js +32 -0
- package/dist/cjs/internal/data/getProviderBrick.js.map +1 -0
- package/dist/cjs/internal/data/resolveData.js +96 -0
- package/dist/cjs/internal/data/resolveData.js.map +1 -0
- package/dist/cjs/internal/data/resolveDataStore.js +127 -0
- package/dist/cjs/internal/data/resolveDataStore.js.map +1 -0
- package/dist/cjs/internal/devtools.js +10 -0
- package/dist/cjs/internal/devtools.js.map +1 -0
- package/dist/cjs/internal/enums.js +13 -0
- package/dist/cjs/internal/enums.js.map +1 -0
- package/dist/cjs/internal/historyExtended.js +140 -0
- package/dist/cjs/internal/historyExtended.js.map +1 -0
- package/dist/cjs/internal/interfaces.js +6 -0
- package/dist/cjs/internal/interfaces.js.map +1 -0
- package/dist/cjs/internal/loadBootstrapData.js +227 -0
- package/dist/cjs/internal/loadBootstrapData.js.map +1 -0
- package/dist/cjs/internal/loadCheckLogin.js +17 -0
- package/dist/cjs/internal/loadCheckLogin.js.map +1 -0
- package/dist/cjs/internal/matchPath.js +88 -0
- package/dist/cjs/internal/matchPath.js.map +1 -0
- package/dist/cjs/internal/matchRoutes.js +34 -0
- package/dist/cjs/internal/matchRoutes.js.map +1 -0
- package/dist/cjs/internal/matchStoryboard.js +40 -0
- package/dist/cjs/internal/matchStoryboard.js.map +1 -0
- package/dist/cjs/internal/mediaQuery.js +55 -0
- package/dist/cjs/internal/mediaQuery.js.map +1 -0
- package/dist/cjs/internal/menu/computeMenuData.js +37 -0
- package/dist/cjs/internal/menu/computeMenuData.js.map +1 -0
- package/dist/cjs/internal/menu/constants.js +13 -0
- package/dist/cjs/internal/menu/constants.js.map +1 -0
- package/dist/cjs/internal/menu/fetchMenuById.js +102 -0
- package/dist/cjs/internal/menu/fetchMenuById.js.map +1 -0
- package/dist/cjs/internal/menu/fetchMenuTitle.js +37 -0
- package/dist/cjs/internal/menu/fetchMenuTitle.js.map +1 -0
- package/dist/cjs/internal/menu/getMenusOfStandaloneApp.js +27 -0
- package/dist/cjs/internal/menu/getMenusOfStandaloneApp.js.map +1 -0
- package/dist/cjs/internal/menu/interfaces.js +4 -0
- package/dist/cjs/internal/menu/interfaces.js.map +1 -0
- package/dist/cjs/internal/menu/loadDynamicMenuItems.js +28 -0
- package/dist/cjs/internal/menu/loadDynamicMenuItems.js.map +1 -0
- package/dist/cjs/internal/menu/mergeMenu.js +74 -0
- package/dist/cjs/internal/menu/mergeMenu.js.map +1 -0
- package/dist/cjs/internal/menu/reorderMenuItems.js +20 -0
- package/dist/cjs/internal/menu/reorderMenuItems.js.map +1 -0
- package/dist/cjs/internal/mount.js +90 -0
- package/dist/cjs/internal/mount.js.map +1 -0
- package/dist/cjs/internal/poll.js +83 -0
- package/dist/cjs/internal/poll.js.map +1 -0
- package/dist/cjs/internal/proxyFactories.js +39 -0
- package/dist/cjs/internal/proxyFactories.js.map +1 -0
- package/dist/cjs/internal/registerAppI18n.js +25 -0
- package/dist/cjs/internal/registerAppI18n.js.map +1 -0
- package/dist/cjs/internal/registerCustomTemplates.js +22 -0
- package/dist/cjs/internal/registerCustomTemplates.js.map +1 -0
- package/dist/cjs/internal/secret_internals.js +140 -0
- package/dist/cjs/internal/secret_internals.js.map +1 -0
- package/dist/cjs/themeAndMode.js +97 -0
- package/dist/cjs/themeAndMode.js.map +1 -0
- package/dist/esm/CustomProcessors.js +30 -0
- package/dist/esm/CustomProcessors.js.map +1 -0
- package/dist/esm/CustomTemplates.js +187 -0
- package/dist/esm/CustomTemplates.js.map +1 -0
- package/dist/esm/StoryboardFunctionRegistry.js +116 -0
- package/dist/esm/StoryboardFunctionRegistry.js.map +1 -0
- package/dist/esm/auth.js +57 -0
- package/dist/esm/auth.js.map +1 -0
- package/dist/esm/fetchByProvider.js +14 -0
- package/dist/esm/fetchByProvider.js.map +1 -0
- package/dist/esm/getBasePath.js +9 -0
- package/dist/esm/getBasePath.js.map +1 -0
- package/dist/esm/getPageInfo.js +39 -0
- package/dist/esm/getPageInfo.js.map +1 -0
- package/dist/esm/handleHttpError.js +90 -0
- package/dist/esm/handleHttpError.js.map +1 -0
- package/dist/esm/history.js +20 -0
- package/dist/esm/history.js.map +1 -0
- package/dist/esm/index.js +17 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +68 -0
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -0
- package/dist/esm/internal/CustomTemplates/constants.js +4 -0
- package/dist/esm/internal/CustomTemplates/constants.js.map +1 -0
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +117 -0
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -0
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +110 -0
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -0
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js +43 -0
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -0
- package/dist/esm/internal/CustomTemplates/utils.js +37 -0
- package/dist/esm/internal/CustomTemplates/utils.js.map +1 -0
- package/dist/esm/internal/Renderer.js +427 -0
- package/dist/esm/internal/Renderer.js.map +1 -0
- package/dist/esm/internal/RendererContext.js +425 -0
- package/dist/esm/internal/RendererContext.js.map +1 -0
- package/dist/esm/internal/Router.js +445 -0
- package/dist/esm/internal/Router.js.map +1 -0
- package/dist/esm/internal/Runtime.js +116 -0
- package/dist/esm/internal/Runtime.js.map +1 -0
- package/dist/esm/internal/abortController.js +24 -0
- package/dist/esm/internal/abortController.js.map +1 -0
- package/dist/esm/internal/bindListeners.js +434 -0
- package/dist/esm/internal/bindListeners.js.map +1 -0
- package/dist/esm/internal/checkInstalledApps.js +100 -0
- package/dist/esm/internal/checkInstalledApps.js.map +1 -0
- package/dist/esm/internal/checkPermissions.js +107 -0
- package/dist/esm/internal/checkPermissions.js.map +1 -0
- package/dist/esm/internal/compute/StoryboardFunctions.js +7 -0
- package/dist/esm/internal/compute/StoryboardFunctions.js.map +1 -0
- package/dist/esm/internal/compute/WidgetFunctions.js +23 -0
- package/dist/esm/internal/compute/WidgetFunctions.js.map +1 -0
- package/dist/esm/internal/compute/WidgetI18n.js +14 -0
- package/dist/esm/internal/compute/WidgetI18n.js.map +1 -0
- package/dist/esm/internal/compute/checkIf.js +39 -0
- package/dist/esm/internal/compute/checkIf.js.map +1 -0
- package/dist/esm/internal/compute/collectMemberCallUsage.js +22 -0
- package/dist/esm/internal/compute/collectMemberCallUsage.js.map +1 -0
- package/dist/esm/internal/compute/computeRealProperties.js +87 -0
- package/dist/esm/internal/compute/computeRealProperties.js.map +1 -0
- package/dist/esm/internal/compute/computeRealValue.js +86 -0
- package/dist/esm/internal/compute/computeRealValue.js.map +1 -0
- package/dist/esm/internal/compute/evaluate.js +387 -0
- package/dist/esm/internal/compute/evaluate.js.map +1 -0
- package/dist/esm/internal/compute/getGeneralGlobals.js +82 -0
- package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -0
- package/dist/esm/internal/compute/getNextStateOfUseBrick.js +78 -0
- package/dist/esm/internal/compute/getNextStateOfUseBrick.js.map +1 -0
- package/dist/esm/internal/compute/getStorageItem.js +8 -0
- package/dist/esm/internal/compute/getStorageItem.js.map +1 -0
- package/dist/esm/internal/compute/getTracks.js +20 -0
- package/dist/esm/internal/compute/getTracks.js.map +1 -0
- package/dist/esm/internal/compute/images.js +16 -0
- package/dist/esm/internal/compute/images.js.map +1 -0
- package/dist/esm/internal/compute/listenOnTrackingContext.js +37 -0
- package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -0
- package/dist/esm/internal/compute/markAsComputed.js +28 -0
- package/dist/esm/internal/compute/markAsComputed.js.map +1 -0
- package/dist/esm/internal/compute/setProperties.js +12 -0
- package/dist/esm/internal/compute/setProperties.js.map +1 -0
- package/dist/esm/internal/compute/setRealProperties.js +23 -0
- package/dist/esm/internal/compute/setRealProperties.js.map +1 -0
- package/dist/esm/internal/data/CollectContracts.js +20 -0
- package/dist/esm/internal/data/CollectContracts.js.map +1 -0
- package/dist/esm/internal/data/DataStore.js +203 -0
- package/dist/esm/internal/data/DataStore.js.map +1 -0
- package/dist/esm/internal/data/FlowApi.js +156 -0
- package/dist/esm/internal/data/FlowApi.js.map +1 -0
- package/dist/esm/internal/data/FlowApiProvider.js +122 -0
- package/dist/esm/internal/data/FlowApiProvider.js.map +1 -0
- package/dist/esm/internal/data/getProviderBrick.js +33 -0
- package/dist/esm/internal/data/getProviderBrick.js.map +1 -0
- package/dist/esm/internal/data/resolveData.js +101 -0
- package/dist/esm/internal/data/resolveData.js.map +1 -0
- package/dist/esm/internal/data/resolveDataStore.js +134 -0
- package/dist/esm/internal/data/resolveDataStore.js.map +1 -0
- package/dist/esm/internal/devtools.js +4 -0
- package/dist/esm/internal/devtools.js.map +1 -0
- package/dist/esm/internal/enums.js +6 -0
- package/dist/esm/internal/enums.js.map +1 -0
- package/dist/esm/internal/historyExtended.js +132 -0
- package/dist/esm/internal/historyExtended.js.map +1 -0
- package/dist/esm/internal/interfaces.js +2 -0
- package/dist/esm/internal/interfaces.js.map +1 -0
- package/dist/esm/internal/loadBootstrapData.js +243 -0
- package/dist/esm/internal/loadBootstrapData.js.map +1 -0
- package/dist/esm/internal/loadCheckLogin.js +18 -0
- package/dist/esm/internal/loadCheckLogin.js.map +1 -0
- package/dist/esm/internal/matchPath.js +81 -0
- package/dist/esm/internal/matchPath.js.map +1 -0
- package/dist/esm/internal/matchRoutes.js +35 -0
- package/dist/esm/internal/matchRoutes.js.map +1 -0
- package/dist/esm/internal/matchStoryboard.js +33 -0
- package/dist/esm/internal/matchStoryboard.js.map +1 -0
- package/dist/esm/internal/mediaQuery.js +44 -0
- package/dist/esm/internal/mediaQuery.js.map +1 -0
- package/dist/esm/internal/menu/computeMenuData.js +38 -0
- package/dist/esm/internal/menu/computeMenuData.js.map +1 -0
- package/dist/esm/internal/menu/constants.js +4 -0
- package/dist/esm/internal/menu/constants.js.map +1 -0
- package/dist/esm/internal/menu/fetchMenuById.js +104 -0
- package/dist/esm/internal/menu/fetchMenuById.js.map +1 -0
- package/dist/esm/internal/menu/fetchMenuTitle.js +38 -0
- package/dist/esm/internal/menu/fetchMenuTitle.js.map +1 -0
- package/dist/esm/internal/menu/getMenusOfStandaloneApp.js +19 -0
- package/dist/esm/internal/menu/getMenusOfStandaloneApp.js.map +1 -0
- package/dist/esm/internal/menu/interfaces.js +4 -0
- package/dist/esm/internal/menu/interfaces.js.map +1 -0
- package/dist/esm/internal/menu/loadDynamicMenuItems.js +28 -0
- package/dist/esm/internal/menu/loadDynamicMenuItems.js.map +1 -0
- package/dist/esm/internal/menu/mergeMenu.js +77 -0
- package/dist/esm/internal/menu/mergeMenu.js.map +1 -0
- package/dist/esm/internal/menu/reorderMenuItems.js +14 -0
- package/dist/esm/internal/menu/reorderMenuItems.js.map +1 -0
- package/dist/esm/internal/mount.js +83 -0
- package/dist/esm/internal/mount.js.map +1 -0
- package/dist/esm/internal/poll.js +85 -0
- package/dist/esm/internal/poll.js.map +1 -0
- package/dist/esm/internal/proxyFactories.js +34 -0
- package/dist/esm/internal/proxyFactories.js.map +1 -0
- package/dist/esm/internal/registerAppI18n.js +20 -0
- package/dist/esm/internal/registerAppI18n.js.map +1 -0
- package/dist/esm/internal/registerCustomTemplates.js +16 -0
- package/dist/esm/internal/registerCustomTemplates.js.map +1 -0
- package/dist/esm/internal/secret_internals.js +145 -0
- package/dist/esm/internal/secret_internals.js.map +1 -0
- package/dist/esm/themeAndMode.js +80 -0
- package/dist/esm/themeAndMode.js.map +1 -0
- package/dist/types/CustomProcessors.d.ts +7 -0
- package/dist/types/CustomTemplates.d.ts +8 -0
- package/dist/types/StoryboardFunctionRegistry.d.ts +44 -0
- package/dist/types/auth.d.ts +19 -0
- package/dist/types/fetchByProvider.d.ts +2 -0
- package/dist/types/getBasePath.d.ts +4 -0
- package/dist/types/getPageInfo.d.ts +14 -0
- package/dist/types/handleHttpError.d.ts +19 -0
- package/dist/types/history.d.ts +7 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/internal/CustomTemplates/bindTemplateProxy.d.ts +3 -0
- package/dist/types/internal/CustomTemplates/constants.d.ts +11 -0
- package/dist/types/internal/CustomTemplates/expandCustomTemplate.d.ts +3 -0
- package/dist/types/internal/CustomTemplates/setupTemplateProxy.d.ts +7 -0
- package/dist/types/internal/CustomTemplates/setupUseBrickInTemplate.d.ts +2 -0
- package/dist/types/internal/CustomTemplates/utils.d.ts +7 -0
- package/dist/types/internal/Renderer.d.ts +21 -0
- package/dist/types/internal/RendererContext.d.ts +25 -0
- package/dist/types/internal/Router.d.ts +16 -0
- package/dist/types/internal/Runtime.d.ts +35 -0
- package/dist/types/internal/abortController.d.ts +2 -0
- package/dist/types/internal/bindListeners.d.ts +11 -0
- package/dist/types/internal/checkInstalledApps.d.ts +6 -0
- package/dist/types/internal/checkPermissions.d.ts +17 -0
- package/dist/types/internal/compute/StoryboardFunctions.d.ts +1 -0
- package/dist/types/internal/compute/WidgetFunctions.d.ts +3 -0
- package/dist/types/internal/compute/WidgetI18n.d.ts +3 -0
- package/dist/types/internal/compute/checkIf.d.ts +23 -0
- package/dist/types/internal/compute/collectMemberCallUsage.d.ts +8 -0
- package/dist/types/internal/compute/computeRealProperties.d.ts +4 -0
- package/dist/types/internal/compute/computeRealValue.d.ts +9 -0
- package/dist/types/internal/compute/evaluate.d.ts +21 -0
- package/dist/types/internal/compute/getGeneralGlobals.d.ts +12 -0
- package/dist/types/internal/compute/getNextStateOfUseBrick.d.ts +16 -0
- package/dist/types/internal/compute/getStorageItem.d.ts +1 -0
- package/dist/types/internal/compute/getTracks.d.ts +5 -0
- package/dist/types/internal/compute/images.d.ts +5 -0
- package/dist/types/internal/compute/listenOnTrackingContext.d.ts +9 -0
- package/dist/types/internal/compute/markAsComputed.d.ts +3 -0
- package/dist/types/internal/compute/setProperties.d.ts +2 -0
- package/dist/types/internal/compute/setRealProperties.d.ts +1 -0
- package/dist/types/internal/data/CollectContracts.d.ts +5 -0
- package/dist/types/internal/data/DataStore.d.ts +26 -0
- package/dist/types/internal/data/FlowApi.d.ts +30 -0
- package/dist/types/internal/data/FlowApiProvider.d.ts +20 -0
- package/dist/types/internal/data/getProviderBrick.d.ts +1 -0
- package/dist/types/internal/data/resolveData.d.ts +16 -0
- package/dist/types/internal/data/resolveDataStore.d.ts +11 -0
- package/dist/types/internal/devtools.d.ts +6 -0
- package/dist/types/internal/enums.d.ts +4 -0
- package/dist/types/internal/historyExtended.d.ts +58 -0
- package/dist/types/internal/interfaces.d.ts +92 -0
- package/dist/types/internal/loadBootstrapData.d.ts +10 -0
- package/dist/types/internal/loadCheckLogin.d.ts +1 -0
- package/dist/types/internal/matchPath.d.ts +18 -0
- package/dist/types/internal/matchRoutes.d.ts +9 -0
- package/dist/types/internal/matchStoryboard.d.ts +10 -0
- package/dist/types/internal/mediaQuery.d.ts +14 -0
- package/dist/types/internal/menu/computeMenuData.d.ts +7 -0
- package/dist/types/internal/menu/constants.d.ts +3 -0
- package/dist/types/internal/menu/fetchMenuById.d.ts +3 -0
- package/dist/types/internal/menu/fetchMenuTitle.d.ts +2 -0
- package/dist/types/internal/menu/getMenusOfStandaloneApp.d.ts +2 -0
- package/dist/types/internal/menu/interfaces.d.ts +74 -0
- package/dist/types/internal/menu/loadDynamicMenuItems.d.ts +3 -0
- package/dist/types/internal/menu/mergeMenu.d.ts +3 -0
- package/dist/types/internal/menu/reorderMenuItems.d.ts +2 -0
- package/dist/types/internal/mount.d.ts +3 -0
- package/dist/types/internal/poll.d.ts +10 -0
- package/dist/types/internal/proxyFactories.d.ts +2 -0
- package/dist/types/internal/registerAppI18n.d.ts +3 -0
- package/dist/types/internal/registerCustomTemplates.d.ts +2 -0
- package/dist/types/internal/secret_internals.d.ts +21 -0
- package/dist/types/themeAndMode.d.ts +16 -0
- 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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"}
|