@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,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
|