@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,425 @@
|
|
|
1
|
+
import _classPrivateMethodInitSpec from "@babel/runtime/helpers/classPrivateMethodInitSpec";
|
|
2
|
+
import _classPrivateFieldInitSpec from "@babel/runtime/helpers/classPrivateFieldInitSpec";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
+
import _classPrivateFieldSet from "@babel/runtime/helpers/classPrivateFieldSet";
|
|
5
|
+
import _classPrivateMethodGet from "@babel/runtime/helpers/classPrivateMethodGet";
|
|
6
|
+
import _classPrivateFieldGet from "@babel/runtime/helpers/classPrivateFieldGet";
|
|
7
|
+
import { isEmpty, remove } from "lodash";
|
|
8
|
+
import { listenerFactory } from "./bindListeners.js";
|
|
9
|
+
import { getHistory } from "../history.js";
|
|
10
|
+
import { getReadOnlyProxy } from "./proxyFactories.js";
|
|
11
|
+
import { mediaEventTarget } from "./mediaQuery.js";
|
|
12
|
+
import { mountTree } from "./mount.js";
|
|
13
|
+
import { RenderTag } from "./enums.js";
|
|
14
|
+
import { unbindTemplateProxy } from "./CustomTemplates/bindTemplateProxy.js";
|
|
15
|
+
var commonLifeCycles = ["onMount", "onUnmount", "onMediaChange", "onScrollIntoView"];
|
|
16
|
+
var routerOnlyLifeCycles = ["onBeforePageLoad", "onPageLoad", "onPageLeave", "onBeforePageLeave", "onAnchorLoad", "onAnchorUnload"];
|
|
17
|
+
var _memoizedLifeCycle = /*#__PURE__*/new WeakMap();
|
|
18
|
+
var _observers = /*#__PURE__*/new WeakMap();
|
|
19
|
+
var _mediaListener = /*#__PURE__*/new WeakMap();
|
|
20
|
+
var _memoizedControlNodes = /*#__PURE__*/new WeakMap();
|
|
21
|
+
var _unmountBricks = /*#__PURE__*/new WeakSet();
|
|
22
|
+
var _initializeRerenderBricks = /*#__PURE__*/new WeakSet();
|
|
23
|
+
var _dispatchGeneralLifeCycle = /*#__PURE__*/new WeakSet();
|
|
24
|
+
var _addObserver = /*#__PURE__*/new WeakSet();
|
|
25
|
+
export class RendererContext {
|
|
26
|
+
constructor(_type) {
|
|
27
|
+
_classPrivateMethodInitSpec(this, _addObserver);
|
|
28
|
+
// Note: no `onScrollIntoView`
|
|
29
|
+
_classPrivateMethodInitSpec(this, _dispatchGeneralLifeCycle);
|
|
30
|
+
_classPrivateMethodInitSpec(this, _initializeRerenderBricks);
|
|
31
|
+
_classPrivateMethodInitSpec(this, _unmountBricks);
|
|
32
|
+
_defineProperty(this, "type", void 0);
|
|
33
|
+
_classPrivateFieldInitSpec(this, _memoizedLifeCycle, {
|
|
34
|
+
writable: true,
|
|
35
|
+
value: {
|
|
36
|
+
onBeforePageLoad: [],
|
|
37
|
+
onPageLoad: [],
|
|
38
|
+
onPageLeave: [],
|
|
39
|
+
onBeforePageLeave: [],
|
|
40
|
+
onAnchorLoad: [],
|
|
41
|
+
onAnchorUnload: [],
|
|
42
|
+
onMediaChange: [],
|
|
43
|
+
onScrollIntoView: [],
|
|
44
|
+
onMount: [],
|
|
45
|
+
onUnmount: []
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
// #observers: IntersectionObserver[] = [];
|
|
49
|
+
_classPrivateFieldInitSpec(this, _observers, {
|
|
50
|
+
writable: true,
|
|
51
|
+
value: new Map()
|
|
52
|
+
});
|
|
53
|
+
_classPrivateFieldInitSpec(this, _mediaListener, {
|
|
54
|
+
writable: true,
|
|
55
|
+
value: void 0
|
|
56
|
+
});
|
|
57
|
+
_classPrivateFieldInitSpec(this, _memoizedControlNodes, {
|
|
58
|
+
writable: true,
|
|
59
|
+
value: void 0
|
|
60
|
+
});
|
|
61
|
+
this.type = _type;
|
|
62
|
+
}
|
|
63
|
+
registerBrickLifeCycle(brick, lifeCycle) {
|
|
64
|
+
if (!lifeCycle) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
var lifeCycleTypes = [...commonLifeCycles, ...(this.type === "router" ? routerOnlyLifeCycles : [])];
|
|
68
|
+
for (var key of lifeCycleTypes) {
|
|
69
|
+
var handlers = lifeCycle[key];
|
|
70
|
+
if (handlers) {
|
|
71
|
+
_classPrivateFieldGet(this, _memoizedLifeCycle)[key].push({
|
|
72
|
+
brick,
|
|
73
|
+
handlers: handlers
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// istanbul ignore next
|
|
78
|
+
if (!isEmpty(lifeCycle.useResolves)) {
|
|
79
|
+
// eslint-disable-next-line no-console
|
|
80
|
+
console.error("`lifeCycle.useResolves` is not supported in v3:", lifeCycle);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
memoizeControlNode(slotId, key, node, returnNode) {
|
|
84
|
+
if (!_classPrivateFieldGet(this, _memoizedControlNodes)) {
|
|
85
|
+
_classPrivateFieldSet(this, _memoizedControlNodes, new WeakMap());
|
|
86
|
+
}
|
|
87
|
+
var memKey = "".concat(slotId !== null && slotId !== void 0 ? slotId : "", ".").concat(key);
|
|
88
|
+
var mem = _classPrivateFieldGet(this, _memoizedControlNodes).get(returnNode);
|
|
89
|
+
if (!mem) {
|
|
90
|
+
mem = new Map();
|
|
91
|
+
_classPrivateFieldGet(this, _memoizedControlNodes).set(returnNode, mem);
|
|
92
|
+
}
|
|
93
|
+
mem.set(memKey, {
|
|
94
|
+
node,
|
|
95
|
+
last: getLastNode(node),
|
|
96
|
+
lastNormal: getLastNormalNode(node),
|
|
97
|
+
lastPortal: getLastPortalNode(node)
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
rerenderControlNode(slotId, key, node, returnNode) {
|
|
101
|
+
var _prevLastNormal$eleme, _prevLastNormal$eleme2, _prevLastPortal$eleme, _prevLastPortal$eleme2;
|
|
102
|
+
var memKey = "".concat(slotId !== null && slotId !== void 0 ? slotId : "", ".").concat(key);
|
|
103
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
104
|
+
var memoized = _classPrivateFieldGet(this, _memoizedControlNodes).get(returnNode).get(memKey);
|
|
105
|
+
var {
|
|
106
|
+
node: prevNode,
|
|
107
|
+
last: prevLast,
|
|
108
|
+
lastNormal: prevLastNormal,
|
|
109
|
+
lastPortal: prevLastPortal
|
|
110
|
+
} = memoized;
|
|
111
|
+
var insertBeforeChild = (_prevLastNormal$eleme = prevLastNormal === null || prevLastNormal === void 0 ? void 0 : (_prevLastNormal$eleme2 = prevLastNormal.element) === null || _prevLastNormal$eleme2 === void 0 ? void 0 : _prevLastNormal$eleme2.nextSibling) !== null && _prevLastNormal$eleme !== void 0 ? _prevLastNormal$eleme : null;
|
|
112
|
+
var insertPortalBeforeChild = (_prevLastPortal$eleme = prevLastPortal === null || prevLastPortal === void 0 ? void 0 : (_prevLastPortal$eleme2 = prevLastPortal.element) === null || _prevLastPortal$eleme2 === void 0 ? void 0 : _prevLastPortal$eleme2.nextSibling) !== null && _prevLastPortal$eleme !== void 0 ? _prevLastPortal$eleme : null;
|
|
113
|
+
var last = getLastNode(node);
|
|
114
|
+
memoized.node = node;
|
|
115
|
+
memoized.last = last;
|
|
116
|
+
memoized.lastNormal = getLastNormalNode(node);
|
|
117
|
+
memoized.lastPortal = getLastPortalNode(node);
|
|
118
|
+
|
|
119
|
+
// Figure out the unchanged prev sibling and next sibling
|
|
120
|
+
var prevSibling;
|
|
121
|
+
var current = returnNode.child;
|
|
122
|
+
while (current && current !== prevLast) {
|
|
123
|
+
if (current.sibling === prevNode) {
|
|
124
|
+
prevSibling = current;
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
current = current.sibling;
|
|
128
|
+
}
|
|
129
|
+
var fragment = document.createDocumentFragment();
|
|
130
|
+
var portalFragment = document.createDocumentFragment();
|
|
131
|
+
var renderRoot = {
|
|
132
|
+
tag: RenderTag.ROOT,
|
|
133
|
+
container: fragment,
|
|
134
|
+
createPortal: portalFragment,
|
|
135
|
+
child: node
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
// Override `return`
|
|
139
|
+
current = node;
|
|
140
|
+
while (current) {
|
|
141
|
+
current.return = renderRoot;
|
|
142
|
+
current = current.sibling;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// Unmount previous bricks, including their descendants
|
|
146
|
+
var removeBricks = getBrickRange(prevNode, prevLast);
|
|
147
|
+
_classPrivateMethodGet(this, _unmountBricks, _unmountBricks2).call(this, removeBricks);
|
|
148
|
+
mountTree(renderRoot);
|
|
149
|
+
|
|
150
|
+
// Connect back
|
|
151
|
+
if (prevSibling) {
|
|
152
|
+
prevSibling.sibling = node;
|
|
153
|
+
} else {
|
|
154
|
+
returnNode.child = node;
|
|
155
|
+
}
|
|
156
|
+
if (last) {
|
|
157
|
+
last.sibling = prevLast === null || prevLast === void 0 ? void 0 : prevLast.sibling;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Resume `return`
|
|
161
|
+
current = node;
|
|
162
|
+
while (current) {
|
|
163
|
+
current.return = returnNode;
|
|
164
|
+
current = current.sibling;
|
|
165
|
+
}
|
|
166
|
+
if (returnNode.tag === RenderTag.ROOT) {
|
|
167
|
+
var _returnNode$container;
|
|
168
|
+
(_returnNode$container = returnNode.container) === null || _returnNode$container === void 0 ? void 0 : _returnNode$container.insertBefore(fragment, insertBeforeChild);
|
|
169
|
+
} else {
|
|
170
|
+
var _returnNode$element;
|
|
171
|
+
(_returnNode$element = returnNode.element) === null || _returnNode$element === void 0 ? void 0 : _returnNode$element.insertBefore(fragment, insertBeforeChild);
|
|
172
|
+
}
|
|
173
|
+
if (portalFragment.childNodes.length > 0) {
|
|
174
|
+
var _root;
|
|
175
|
+
var root = node;
|
|
176
|
+
while (root && root.return) {
|
|
177
|
+
root = root.return;
|
|
178
|
+
}
|
|
179
|
+
if (((_root = root) === null || _root === void 0 ? void 0 : _root.tag) !== RenderTag.ROOT) {
|
|
180
|
+
throw new Error("Cannot find render root node");
|
|
181
|
+
}
|
|
182
|
+
var portal = typeof root.createPortal === "function" ? root.createPortal() : root.createPortal;
|
|
183
|
+
portal.insertBefore(portalFragment, insertPortalBeforeChild);
|
|
184
|
+
}
|
|
185
|
+
var newBricks = getBrickRange(node, last);
|
|
186
|
+
_classPrivateMethodGet(this, _initializeRerenderBricks, _initializeRerenderBricks2).call(this, newBricks);
|
|
187
|
+
}
|
|
188
|
+
dispose() {
|
|
189
|
+
for (var list of Object.values(_classPrivateFieldGet(this, _memoizedLifeCycle))) {
|
|
190
|
+
list.length = 0;
|
|
191
|
+
}
|
|
192
|
+
for (var _list of _classPrivateFieldGet(this, _observers).values()) {
|
|
193
|
+
for (var observer of _list) {
|
|
194
|
+
observer.disconnect();
|
|
195
|
+
}
|
|
196
|
+
_list.length = 0;
|
|
197
|
+
}
|
|
198
|
+
_classPrivateFieldGet(this, _observers).clear();
|
|
199
|
+
if (_classPrivateFieldGet(this, _mediaListener)) {
|
|
200
|
+
mediaEventTarget.removeEventListener("change", _classPrivateFieldGet(this, _mediaListener));
|
|
201
|
+
_classPrivateFieldSet(this, _mediaListener, undefined);
|
|
202
|
+
}
|
|
203
|
+
_classPrivateFieldSet(this, _memoizedControlNodes, undefined);
|
|
204
|
+
}
|
|
205
|
+
dispatchBeforePageLoad() {
|
|
206
|
+
_classPrivateMethodGet(this, _dispatchGeneralLifeCycle, _dispatchGeneralLifeCycle2).call(this, "onBeforePageLoad", new CustomEvent("page.beforeLoad"));
|
|
207
|
+
}
|
|
208
|
+
dispatchPageLoad() {
|
|
209
|
+
var event = new CustomEvent("page.load");
|
|
210
|
+
_classPrivateMethodGet(this, _dispatchGeneralLifeCycle, _dispatchGeneralLifeCycle2).call(this, "onPageLoad", event);
|
|
211
|
+
// Currently only for e2e testing
|
|
212
|
+
window.dispatchEvent(event);
|
|
213
|
+
}
|
|
214
|
+
dispatchBeforePageLeave(detail) {
|
|
215
|
+
_classPrivateMethodGet(this, _dispatchGeneralLifeCycle, _dispatchGeneralLifeCycle2).call(this, "onBeforePageLeave", new CustomEvent("page.beforeLeave", {
|
|
216
|
+
detail
|
|
217
|
+
}));
|
|
218
|
+
}
|
|
219
|
+
dispatchPageLeave() {
|
|
220
|
+
_classPrivateMethodGet(this, _dispatchGeneralLifeCycle, _dispatchGeneralLifeCycle2).call(this, "onPageLeave", new CustomEvent("page.leave"));
|
|
221
|
+
}
|
|
222
|
+
dispatchAnchorLoad() {
|
|
223
|
+
var {
|
|
224
|
+
hash
|
|
225
|
+
} = getHistory().location;
|
|
226
|
+
if (hash && hash !== "#") {
|
|
227
|
+
_classPrivateMethodGet(this, _dispatchGeneralLifeCycle, _dispatchGeneralLifeCycle2).call(this, "onAnchorLoad", new CustomEvent("anchor.load", {
|
|
228
|
+
detail: {
|
|
229
|
+
hash,
|
|
230
|
+
anchor: hash.substring(1)
|
|
231
|
+
}
|
|
232
|
+
}));
|
|
233
|
+
} else {
|
|
234
|
+
_classPrivateMethodGet(this, _dispatchGeneralLifeCycle, _dispatchGeneralLifeCycle2).call(this, "onAnchorUnload", new CustomEvent("anchor.unload"));
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
initializeScrollIntoView() {
|
|
238
|
+
for (var {
|
|
239
|
+
brick,
|
|
240
|
+
handlers: conf
|
|
241
|
+
} of _classPrivateFieldGet(this, _memoizedLifeCycle).onScrollIntoView) {
|
|
242
|
+
_classPrivateMethodGet(this, _addObserver, _addObserver2).call(this, brick, conf);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
initializeMediaChange() {
|
|
246
|
+
_classPrivateFieldSet(this, _mediaListener, event => {
|
|
247
|
+
_classPrivateMethodGet(this, _dispatchGeneralLifeCycle, _dispatchGeneralLifeCycle2).call(this, "onMediaChange", new CustomEvent("media.change", {
|
|
248
|
+
detail: getReadOnlyProxy(event.detail)
|
|
249
|
+
}));
|
|
250
|
+
});
|
|
251
|
+
mediaEventTarget.addEventListener("change", _classPrivateFieldGet(this, _mediaListener));
|
|
252
|
+
}
|
|
253
|
+
dispatchOnMount() {
|
|
254
|
+
_classPrivateMethodGet(this, _dispatchGeneralLifeCycle, _dispatchGeneralLifeCycle2).call(this, "onMount", new CustomEvent("mount"));
|
|
255
|
+
}
|
|
256
|
+
dispatchOnUnmount() {
|
|
257
|
+
_classPrivateMethodGet(this, _dispatchGeneralLifeCycle, _dispatchGeneralLifeCycle2).call(this, "onUnmount", new CustomEvent("unmount"));
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
function _unmountBricks2(bricks) {
|
|
261
|
+
var lifeCycleTypes = [...commonLifeCycles, ...(this.type === "router" ? routerOnlyLifeCycles : [])];
|
|
262
|
+
var unmountList = [];
|
|
263
|
+
|
|
264
|
+
// Clear life cycle handlers, record `onUnmount` at the same time
|
|
265
|
+
for (var key of lifeCycleTypes) {
|
|
266
|
+
var removed = remove(_classPrivateFieldGet(this, _memoizedLifeCycle)[key], item => bricks.has(item.brick));
|
|
267
|
+
if (key === "onUnmount") {
|
|
268
|
+
unmountList.push(...removed);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// Clear intersection observers
|
|
273
|
+
for (var brick of bricks) {
|
|
274
|
+
var _brick$element, _brick$element2;
|
|
275
|
+
var observers = _classPrivateFieldGet(this, _observers).get(brick);
|
|
276
|
+
if (observers !== null && observers !== void 0 && observers.length) {
|
|
277
|
+
for (var observer of observers) {
|
|
278
|
+
observer.disconnect();
|
|
279
|
+
}
|
|
280
|
+
observers.length = 0;
|
|
281
|
+
_classPrivateFieldGet(this, _observers).delete(brick);
|
|
282
|
+
}
|
|
283
|
+
unbindTemplateProxy(brick);
|
|
284
|
+
(_brick$element = brick.element) === null || _brick$element === void 0 ? true : delete _brick$element.$$tplStateStore;
|
|
285
|
+
|
|
286
|
+
// Also remove the element
|
|
287
|
+
(_brick$element2 = brick.element) === null || _brick$element2 === void 0 ? void 0 : _brick$element2.remove();
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
// Dispatch unmount events
|
|
291
|
+
var unmountEvent = new CustomEvent("unmount");
|
|
292
|
+
for (var {
|
|
293
|
+
brick: _brick,
|
|
294
|
+
handlers
|
|
295
|
+
} of unmountList) {
|
|
296
|
+
listenerFactory(handlers, _brick.runtimeContext, _brick)(unmountEvent);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
function _initializeRerenderBricks2(bricks) {
|
|
300
|
+
var mountEvent = new CustomEvent("mount");
|
|
301
|
+
for (var {
|
|
302
|
+
brick,
|
|
303
|
+
handlers
|
|
304
|
+
} of _classPrivateFieldGet(this, _memoizedLifeCycle).onMount) {
|
|
305
|
+
if (bricks.has(brick)) {
|
|
306
|
+
listenerFactory(handlers, brick.runtimeContext, brick)(mountEvent);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
for (var {
|
|
310
|
+
brick: _brick2,
|
|
311
|
+
handlers: conf
|
|
312
|
+
} of _classPrivateFieldGet(this, _memoizedLifeCycle).onScrollIntoView) {
|
|
313
|
+
if (bricks.has(_brick2)) {
|
|
314
|
+
_classPrivateMethodGet(this, _addObserver, _addObserver2).call(this, _brick2, conf);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
function _dispatchGeneralLifeCycle2(type, event) {
|
|
319
|
+
// istanbul ignore next
|
|
320
|
+
if (process.env.NODE_ENV === "development" && this.type === "useBrick" && routerOnlyLifeCycles.includes(type)) {
|
|
321
|
+
throw new Error("`lifeCycle.".concat(type, "` cannot be used in ").concat(this.type, ".\nThis is a bug of Brick Next, please report it."));
|
|
322
|
+
}
|
|
323
|
+
for (var {
|
|
324
|
+
brick,
|
|
325
|
+
handlers
|
|
326
|
+
} of _classPrivateFieldGet(this, _memoizedLifeCycle)[type]) {
|
|
327
|
+
listenerFactory(handlers, brick.runtimeContext, brick)(event);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
function _addObserver2(brick, conf) {
|
|
331
|
+
var _conf$threshold;
|
|
332
|
+
var threshold = (_conf$threshold = conf.threshold) !== null && _conf$threshold !== void 0 ? _conf$threshold : 0.1;
|
|
333
|
+
var observer = new IntersectionObserver((entries, observer) => {
|
|
334
|
+
entries.forEach(entry => {
|
|
335
|
+
if (entry.isIntersecting) {
|
|
336
|
+
if (entry.intersectionRatio >= threshold) {
|
|
337
|
+
listenerFactory(conf.handlers, brick.runtimeContext, brick)(new CustomEvent("scroll.into.view"));
|
|
338
|
+
observer.disconnect();
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
}, {
|
|
343
|
+
threshold
|
|
344
|
+
});
|
|
345
|
+
observer.observe(brick.element);
|
|
346
|
+
var list = _classPrivateFieldGet(this, _observers).get(brick);
|
|
347
|
+
if (!list) {
|
|
348
|
+
list = [];
|
|
349
|
+
_classPrivateFieldGet(this, _observers).set(brick, list);
|
|
350
|
+
}
|
|
351
|
+
list.push(observer);
|
|
352
|
+
}
|
|
353
|
+
function getLastNode(node) {
|
|
354
|
+
var last = node;
|
|
355
|
+
while ((_last = last) !== null && _last !== void 0 && _last.sibling) {
|
|
356
|
+
var _last;
|
|
357
|
+
last = last.sibling;
|
|
358
|
+
}
|
|
359
|
+
return last;
|
|
360
|
+
}
|
|
361
|
+
function getLastNormalNode(node) {
|
|
362
|
+
var last;
|
|
363
|
+
var current = node;
|
|
364
|
+
while (current) {
|
|
365
|
+
if (!current.portal) {
|
|
366
|
+
last = current;
|
|
367
|
+
}
|
|
368
|
+
current = current.sibling;
|
|
369
|
+
}
|
|
370
|
+
return last;
|
|
371
|
+
}
|
|
372
|
+
function getLastPortalNode(node) {
|
|
373
|
+
var last;
|
|
374
|
+
var current = node;
|
|
375
|
+
while (current) {
|
|
376
|
+
if (current.portal) {
|
|
377
|
+
last = current;
|
|
378
|
+
}
|
|
379
|
+
if (current.child) {
|
|
380
|
+
current = current.child;
|
|
381
|
+
} else if (current.sibling) {
|
|
382
|
+
current = current.sibling;
|
|
383
|
+
} else {
|
|
384
|
+
var _currentReturn;
|
|
385
|
+
var currentReturn = current.return;
|
|
386
|
+
while (currentReturn) {
|
|
387
|
+
if (currentReturn.sibling) {
|
|
388
|
+
break;
|
|
389
|
+
}
|
|
390
|
+
currentReturn = currentReturn.return;
|
|
391
|
+
}
|
|
392
|
+
current = (_currentReturn = currentReturn) === null || _currentReturn === void 0 ? void 0 : _currentReturn.sibling;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
return last;
|
|
396
|
+
}
|
|
397
|
+
function getBrickRange(from, to) {
|
|
398
|
+
var range = new Set();
|
|
399
|
+
var current = from;
|
|
400
|
+
while (current) {
|
|
401
|
+
range.add(current);
|
|
402
|
+
if (current.child) {
|
|
403
|
+
current = current.child;
|
|
404
|
+
} else if (current === to) {
|
|
405
|
+
break;
|
|
406
|
+
} else if (current.sibling) {
|
|
407
|
+
current = current.sibling;
|
|
408
|
+
} else {
|
|
409
|
+
var _currentReturn2;
|
|
410
|
+
var currentReturn = current.return;
|
|
411
|
+
while (currentReturn && currentReturn !== to) {
|
|
412
|
+
if (currentReturn.sibling) {
|
|
413
|
+
break;
|
|
414
|
+
}
|
|
415
|
+
currentReturn = currentReturn.return;
|
|
416
|
+
}
|
|
417
|
+
if (currentReturn === to) {
|
|
418
|
+
break;
|
|
419
|
+
}
|
|
420
|
+
current = (_currentReturn2 = currentReturn) === null || _currentReturn2 === void 0 ? void 0 : _currentReturn2.sibling;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
return range;
|
|
424
|
+
}
|
|
425
|
+
//# sourceMappingURL=RendererContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RendererContext.js","names":["isEmpty","remove","listenerFactory","getHistory","getReadOnlyProxy","mediaEventTarget","mountTree","RenderTag","unbindTemplateProxy","commonLifeCycles","routerOnlyLifeCycles","_memoizedLifeCycle","WeakMap","_observers","_mediaListener","_memoizedControlNodes","_unmountBricks","WeakSet","_initializeRerenderBricks","_dispatchGeneralLifeCycle","_addObserver","RendererContext","constructor","type","_classPrivateMethodInitSpec","_defineProperty","_classPrivateFieldInitSpec","writable","value","onBeforePageLoad","onPageLoad","onPageLeave","onBeforePageLeave","onAnchorLoad","onAnchorUnload","onMediaChange","onScrollIntoView","onMount","onUnmount","Map","registerBrickLifeCycle","brick","lifeCycle","lifeCycleTypes","key","handlers","_classPrivateFieldGet","push","useResolves","console","error","memoizeControlNode","slotId","node","returnNode","_classPrivateFieldSet","memKey","concat","mem","get","set","last","getLastNode","lastNormal","getLastNormalNode","lastPortal","getLastPortalNode","rerenderControlNode","_prevLastNormal$eleme","_prevLastNormal$eleme2","_prevLastPortal$eleme","_prevLastPortal$eleme2","memoized","prevNode","prevLast","prevLastNormal","prevLastPortal","insertBeforeChild","element","nextSibling","insertPortalBeforeChild","prevSibling","current","child","sibling","fragment","document","createDocumentFragment","portalFragment","renderRoot","tag","ROOT","container","createPortal","return","removeBricks","getBrickRange","_classPrivateMethodGet","_unmountBricks2","call","_returnNode$container","insertBefore","_returnNode$element","childNodes","length","_root","root","Error","portal","newBricks","_initializeRerenderBricks2","dispose","list","Object","values","observer","disconnect","clear","removeEventListener","undefined","dispatchBeforePageLoad","_dispatchGeneralLifeCycle2","CustomEvent","dispatchPageLoad","event","window","dispatchEvent","dispatchBeforePageLeave","detail","dispatchPageLeave","dispatchAnchorLoad","hash","location","anchor","substring","initializeScrollIntoView","conf","_addObserver2","initializeMediaChange","addEventListener","dispatchOnMount","dispatchOnUnmount","bricks","unmountList","removed","item","has","_brick$element","_brick$element2","observers","delete","$$tplStateStore","unmountEvent","runtimeContext","mountEvent","process","env","NODE_ENV","includes","_conf$threshold","threshold","IntersectionObserver","entries","forEach","entry","isIntersecting","intersectionRatio","observe","_last","_currentReturn","currentReturn","from","to","range","Set","add","_currentReturn2"],"sources":["../../../src/internal/RendererContext.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickLifeCycle,\n ScrollIntoViewConf,\n UseBrickLifeCycle,\n} from \"@next-core/types\";\nimport type { Action } from \"history\";\nimport { isEmpty, remove } from \"lodash\";\nimport { listenerFactory } from \"./bindListeners.js\";\nimport { NextLocation, getHistory } from \"../history.js\";\nimport { getReadOnlyProxy } from \"./proxyFactories.js\";\nimport { Media, mediaEventTarget } from \"./mediaQuery.js\";\nimport type { RenderBrick, RenderNode, RenderRoot } from \"./interfaces.js\";\nimport { mountTree } from \"./mount.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { unbindTemplateProxy } from \"./CustomTemplates/bindTemplateProxy.js\";\n\ntype MemoizedLifeCycle<T> = {\n [Key in keyof T]: {\n brick: RenderBrick;\n handlers: T[Key];\n }[];\n};\n\nconst commonLifeCycles = [\n \"onMount\",\n \"onUnmount\",\n \"onMediaChange\",\n \"onScrollIntoView\",\n] as const;\n\nconst routerOnlyLifeCycles = [\n \"onBeforePageLoad\",\n \"onPageLoad\",\n \"onPageLeave\",\n \"onBeforePageLeave\",\n \"onAnchorLoad\",\n \"onAnchorUnload\",\n] as const;\n\nexport class RendererContext {\n public readonly type: \"router\" | \"useBrick\";\n\n constructor(type: \"router\" | \"useBrick\") {\n this.type = type;\n }\n\n #memoizedLifeCycle: MemoizedLifeCycle<\n Required<\n Pick<\n BrickLifeCycle,\n | \"onBeforePageLoad\"\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onBeforePageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMediaChange\"\n | \"onScrollIntoView\"\n | \"onMount\"\n | \"onUnmount\"\n // Omitted:\n // \"onMessage\"\n // \"onMessageClose\"\n >\n >\n > = {\n onBeforePageLoad: [],\n onPageLoad: [],\n onPageLeave: [],\n onBeforePageLeave: [],\n onAnchorLoad: [],\n onAnchorUnload: [],\n onMediaChange: [],\n onScrollIntoView: [],\n onMount: [],\n onUnmount: [],\n };\n // #observers: IntersectionObserver[] = [];\n #observers = new Map<RenderBrick, IntersectionObserver[]>();\n #mediaListener: EventListener | undefined;\n\n #memoizedControlNodes?: WeakMap<\n RenderNode,\n Map<\n string,\n {\n node?: RenderBrick;\n last?: RenderBrick;\n lastNormal?: RenderBrick | undefined;\n lastPortal?: RenderBrick | undefined;\n }\n >\n >;\n\n registerBrickLifeCycle(\n brick: RenderBrick,\n lifeCycle: BrickLifeCycle | UseBrickLifeCycle | undefined\n ): void {\n if (!lifeCycle) {\n return;\n }\n const lifeCycleTypes = [\n ...commonLifeCycles,\n ...(this.type === \"router\" ? routerOnlyLifeCycles : []),\n ];\n for (const key of lifeCycleTypes) {\n const handlers = (lifeCycle as BrickLifeCycle)[key as \"onPageLoad\"];\n if (handlers) {\n this.#memoizedLifeCycle[key as \"onPageLoad\"].push({\n brick,\n handlers: handlers as BrickEventHandler | BrickEventHandler[],\n });\n }\n }\n // istanbul ignore next\n if (!isEmpty((lifeCycle as { useResolves?: unknown }).useResolves)) {\n // eslint-disable-next-line no-console\n console.error(\n \"`lifeCycle.useResolves` is not supported in v3:\",\n lifeCycle\n );\n }\n }\n\n #unmountBricks(bricks: Set<RenderBrick>): void {\n const lifeCycleTypes = [\n ...commonLifeCycles,\n ...(this.type === \"router\" ? routerOnlyLifeCycles : []),\n ];\n const unmountList: {\n brick: RenderBrick;\n handlers: BrickEventHandler | BrickEventHandler[];\n }[] = [];\n\n // Clear life cycle handlers, record `onUnmount` at the same time\n for (const key of lifeCycleTypes) {\n const removed = remove(\n this.#memoizedLifeCycle[key as \"onPageLoad\"],\n (item) => bricks.has(item.brick)\n );\n if (key === \"onUnmount\") {\n unmountList.push(...removed);\n }\n }\n\n // Clear intersection observers\n for (const brick of bricks) {\n const observers = this.#observers.get(brick);\n if (observers?.length) {\n for (const observer of observers) {\n observer.disconnect();\n }\n observers.length = 0;\n this.#observers.delete(brick);\n }\n\n unbindTemplateProxy(brick);\n delete brick.element?.$$tplStateStore;\n\n // Also remove the element\n brick.element?.remove();\n }\n\n // Dispatch unmount events\n const unmountEvent = new CustomEvent(\"unmount\");\n for (const { brick, handlers } of unmountList) {\n listenerFactory(handlers, brick.runtimeContext, brick)(unmountEvent);\n }\n }\n\n #initializeRerenderBricks(bricks: Set<RenderBrick>): void {\n const mountEvent = new CustomEvent(\"mount\");\n for (const { brick, handlers } of this.#memoizedLifeCycle.onMount) {\n if (bricks.has(brick)) {\n listenerFactory(handlers, brick.runtimeContext, brick)(mountEvent);\n }\n }\n\n for (const { brick, handlers: conf } of this.#memoizedLifeCycle\n .onScrollIntoView) {\n if (bricks.has(brick)) {\n this.#addObserver(brick, conf);\n }\n }\n }\n\n memoizeControlNode(\n slotId: string | undefined,\n key: number,\n node: RenderBrick | undefined,\n returnNode: RenderNode\n ) {\n if (!this.#memoizedControlNodes) {\n this.#memoizedControlNodes = new WeakMap();\n }\n const memKey = `${slotId ?? \"\"}.${key}`;\n let mem = this.#memoizedControlNodes.get(returnNode);\n if (!mem) {\n mem = new Map();\n this.#memoizedControlNodes.set(returnNode, mem);\n }\n\n mem.set(memKey, {\n node,\n last: getLastNode(node),\n lastNormal: getLastNormalNode(node),\n lastPortal: getLastPortalNode(node),\n });\n }\n\n rerenderControlNode(\n slotId: string | undefined,\n key: number,\n node: RenderBrick | undefined,\n returnNode: RenderNode\n ) {\n const memKey = `${slotId ?? \"\"}.${key}`;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const memoized = this.#memoizedControlNodes!.get(returnNode)!.get(memKey)!;\n const {\n node: prevNode,\n last: prevLast,\n lastNormal: prevLastNormal,\n lastPortal: prevLastPortal,\n } = memoized;\n\n const insertBeforeChild = prevLastNormal?.element?.nextSibling ?? null;\n const insertPortalBeforeChild =\n prevLastPortal?.element?.nextSibling ?? null;\n\n const last = getLastNode(node);\n memoized.node = node;\n memoized.last = last;\n memoized.lastNormal = getLastNormalNode(node);\n memoized.lastPortal = getLastPortalNode(node);\n\n // Figure out the unchanged prev sibling and next sibling\n let prevSibling: RenderBrick | undefined;\n let current = returnNode.child;\n while (current && current !== prevLast) {\n if (current.sibling === prevNode) {\n prevSibling = current;\n break;\n }\n current = current.sibling;\n }\n\n const fragment = document.createDocumentFragment();\n const portalFragment = document.createDocumentFragment();\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: fragment,\n createPortal: portalFragment,\n child: node,\n };\n\n // Override `return`\n current = node;\n while (current) {\n current.return = renderRoot;\n current = current.sibling;\n }\n\n // Unmount previous bricks, including their descendants\n const removeBricks = getBrickRange(prevNode, prevLast);\n this.#unmountBricks(removeBricks);\n\n mountTree(renderRoot);\n\n // Connect back\n if (prevSibling) {\n prevSibling.sibling = node;\n } else {\n returnNode.child = node;\n }\n if (last) {\n last.sibling = prevLast?.sibling;\n }\n\n // Resume `return`\n current = node;\n while (current) {\n current.return = returnNode;\n current = current.sibling;\n }\n\n if (returnNode.tag === RenderTag.ROOT) {\n returnNode.container?.insertBefore(fragment, insertBeforeChild);\n } else {\n returnNode.element?.insertBefore(fragment, insertBeforeChild);\n }\n\n if (portalFragment.childNodes.length > 0) {\n let root: RenderNode | undefined = node;\n while (root && root.return) {\n root = root.return;\n }\n if (root?.tag !== RenderTag.ROOT) {\n throw new Error(\"Cannot find render root node\");\n }\n const portal =\n typeof root.createPortal === \"function\"\n ? root.createPortal()\n : root.createPortal;\n portal.insertBefore(portalFragment, insertPortalBeforeChild);\n }\n\n const newBricks = getBrickRange(node, last);\n this.#initializeRerenderBricks(newBricks);\n }\n\n dispose(): void {\n for (const list of Object.values(this.#memoizedLifeCycle)) {\n list.length = 0;\n }\n for (const list of this.#observers.values()) {\n for (const observer of list) {\n observer.disconnect();\n }\n list.length = 0;\n }\n this.#observers.clear();\n if (this.#mediaListener) {\n mediaEventTarget.removeEventListener(\"change\", this.#mediaListener);\n this.#mediaListener = undefined;\n }\n this.#memoizedControlNodes = undefined;\n }\n\n // Note: no `onScrollIntoView`\n #dispatchGeneralLifeCycle(\n type:\n | \"onBeforePageLoad\"\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onBeforePageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMediaChange\"\n | \"onMount\"\n | \"onUnmount\",\n event: CustomEvent\n ): void {\n // istanbul ignore next\n if (\n process.env.NODE_ENV === \"development\" &&\n this.type === \"useBrick\" &&\n routerOnlyLifeCycles.includes(type as \"onPageLoad\")\n ) {\n throw new Error(\n `\\`lifeCycle.${type}\\` cannot be used in ${this.type}.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n for (const { brick, handlers } of this.#memoizedLifeCycle[type]) {\n listenerFactory(handlers, brick.runtimeContext, brick)(event);\n }\n }\n\n dispatchBeforePageLoad(): void {\n this.#dispatchGeneralLifeCycle(\n \"onBeforePageLoad\",\n new CustomEvent(\"page.beforeLoad\")\n );\n }\n\n dispatchPageLoad(): void {\n const event = new CustomEvent(\"page.load\");\n this.#dispatchGeneralLifeCycle(\"onPageLoad\", event);\n // Currently only for e2e testing\n window.dispatchEvent(event);\n }\n\n dispatchBeforePageLeave(detail: {\n location?: NextLocation;\n action?: Action;\n }): void {\n this.#dispatchGeneralLifeCycle(\n \"onBeforePageLeave\",\n new CustomEvent(\"page.beforeLeave\", { detail })\n );\n }\n\n dispatchPageLeave(): void {\n this.#dispatchGeneralLifeCycle(\n \"onPageLeave\",\n new CustomEvent(\"page.leave\")\n );\n }\n\n dispatchAnchorLoad(): void {\n const { hash } = getHistory().location;\n if (hash && hash !== \"#\") {\n this.#dispatchGeneralLifeCycle(\n \"onAnchorLoad\",\n new CustomEvent(\"anchor.load\", {\n detail: {\n hash,\n anchor: hash.substring(1),\n },\n })\n );\n } else {\n this.#dispatchGeneralLifeCycle(\n \"onAnchorUnload\",\n new CustomEvent(\"anchor.unload\")\n );\n }\n }\n\n initializeScrollIntoView(): void {\n for (const { brick, handlers: conf } of this.#memoizedLifeCycle\n .onScrollIntoView) {\n this.#addObserver(brick, conf);\n }\n }\n\n #addObserver(brick: RenderBrick, conf: ScrollIntoViewConf) {\n const threshold = conf.threshold ?? 0.1;\n const observer = new IntersectionObserver(\n (entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (entry.intersectionRatio >= threshold) {\n listenerFactory(\n conf.handlers,\n brick.runtimeContext,\n brick\n )(new CustomEvent(\"scroll.into.view\"));\n observer.disconnect();\n }\n }\n });\n },\n {\n threshold,\n }\n );\n observer.observe(brick.element!);\n let list = this.#observers.get(brick);\n if (!list) {\n list = [];\n this.#observers.set(brick, list);\n }\n list.push(observer);\n }\n\n initializeMediaChange(): void {\n this.#mediaListener = (event) => {\n this.#dispatchGeneralLifeCycle(\n \"onMediaChange\",\n new CustomEvent(\"media.change\", {\n detail: getReadOnlyProxy((event as CustomEvent<Media>).detail),\n })\n );\n };\n mediaEventTarget.addEventListener(\"change\", this.#mediaListener);\n }\n\n dispatchOnMount(): void {\n this.#dispatchGeneralLifeCycle(\"onMount\", new CustomEvent(\"mount\"));\n }\n\n dispatchOnUnmount(): void {\n this.#dispatchGeneralLifeCycle(\"onUnmount\", new CustomEvent(\"unmount\"));\n }\n}\n\nfunction getLastNode(node: RenderBrick | undefined): RenderBrick | undefined {\n let last = node;\n while (last?.sibling) {\n last = last.sibling;\n }\n return last;\n}\n\nfunction getLastNormalNode(\n node: RenderBrick | undefined\n): RenderBrick | undefined {\n let last: RenderBrick | undefined;\n let current = node;\n while (current) {\n if (!current.portal) {\n last = current;\n }\n current = current.sibling;\n }\n return last;\n}\n\nfunction getLastPortalNode(\n node: RenderBrick | undefined\n): RenderBrick | undefined {\n let last: RenderBrick | undefined;\n let current = node;\n while (current) {\n if (current.portal) {\n last = current;\n }\n if (current.child) {\n current = current.child;\n } else if (current.sibling) {\n current = current.sibling;\n } else {\n let currentReturn: RenderNode | null | undefined = current.return;\n while (currentReturn) {\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n }\n current = currentReturn?.sibling;\n }\n }\n return last;\n}\n\nfunction getBrickRange(\n from: RenderBrick | undefined,\n to: RenderBrick | undefined\n): Set<RenderBrick> {\n const range = new Set<RenderBrick>();\n let current = from;\n while (current) {\n range.add(current);\n if (current.child) {\n current = current.child;\n } else if (current === to) {\n break;\n } else if (current.sibling) {\n current = current.sibling;\n } else {\n let currentReturn: RenderNode | null | undefined = current.return;\n while (currentReturn && currentReturn !== to) {\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n }\n if (currentReturn === to) {\n break;\n }\n current = currentReturn?.sibling;\n }\n }\n return range;\n}\n"],"mappings":"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"}
|