@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,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getDynamicReadOnlyProxy = getDynamicReadOnlyProxy;
|
|
7
|
+
exports.getReadOnlyProxy = getReadOnlyProxy;
|
|
8
|
+
var _devtools = require("./devtools.js");
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
+
const THROW = () => {
|
|
11
|
+
throw new Error("Can't modify read-only proxy object");
|
|
12
|
+
};
|
|
13
|
+
const readOnlyHandler = {
|
|
14
|
+
set: THROW,
|
|
15
|
+
defineProperty: THROW,
|
|
16
|
+
deleteProperty: THROW,
|
|
17
|
+
setPrototypeOf: THROW
|
|
18
|
+
};
|
|
19
|
+
function getReadOnlyProxy(object) {
|
|
20
|
+
return new Proxy(object, readOnlyHandler);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// First, we want to make accessing property of globals lazy,
|
|
24
|
+
// So we use *Proxy* to make a dynamic accessor for each of these globals.
|
|
25
|
+
// But we also want to keep them working in devtools.
|
|
26
|
+
function getDynamicReadOnlyProxy({
|
|
27
|
+
get,
|
|
28
|
+
ownKeys
|
|
29
|
+
}) {
|
|
30
|
+
if ((0, _devtools.getDevHook)()) {
|
|
31
|
+
// In devtools, we extract them at beginning.
|
|
32
|
+
const target = Object.fromEntries(ownKeys(null).map(key => [key, get(null, key, null)]));
|
|
33
|
+
return getReadOnlyProxy(target);
|
|
34
|
+
}
|
|
35
|
+
return new Proxy(Object.freeze({}), {
|
|
36
|
+
get
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=proxyFactories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxyFactories.js","names":["_devtools","require","THROW","Error","readOnlyHandler","set","defineProperty","deleteProperty","setPrototypeOf","getReadOnlyProxy","object","Proxy","getDynamicReadOnlyProxy","get","ownKeys","getDevHook","target","Object","fromEntries","map","key","freeze"],"sources":["../../../src/internal/proxyFactories.ts"],"sourcesContent":["import { getDevHook } from \"./devtools.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst THROW = (): any => {\n throw new Error(\"Can't modify read-only proxy object\");\n};\n\nconst readOnlyHandler: ProxyHandler<object> = {\n set: THROW,\n defineProperty: THROW,\n deleteProperty: THROW,\n setPrototypeOf: THROW,\n};\n\nexport function getReadOnlyProxy<T extends object>(object: T): T {\n return new Proxy<T>(object, readOnlyHandler);\n}\n\n// First, we want to make accessing property of globals lazy,\n// So we use *Proxy* to make a dynamic accessor for each of these globals.\n// But we also want to keep them working in devtools.\nexport function getDynamicReadOnlyProxy({\n get,\n ownKeys,\n}: Required<Pick<ProxyHandler<object>, \"get\" | \"ownKeys\">>): unknown {\n if (getDevHook()) {\n // In devtools, we extract them at beginning.\n const target = Object.fromEntries(\n (ownKeys(null!) as string[]).map((key) => [key, get(null!, key, null)])\n );\n return getReadOnlyProxy(target);\n }\n return new Proxy(Object.freeze({}), { get });\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA;AACA,MAAMC,KAAK,GAAGA,CAAA,KAAW;EACvB,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC;AACxD,CAAC;AAED,MAAMC,eAAqC,GAAG;EAC5CC,GAAG,EAAEH,KAAK;EACVI,cAAc,EAAEJ,KAAK;EACrBK,cAAc,EAAEL,KAAK;EACrBM,cAAc,EAAEN;AAClB,CAAC;AAEM,SAASO,gBAAgBA,CAAmBC,MAAS,EAAK;EAC/D,OAAO,IAAIC,KAAK,CAAID,MAAM,EAAEN,eAAe,CAAC;AAC9C;;AAEA;AACA;AACA;AACO,SAASQ,uBAAuBA,CAAC;EACtCC,GAAG;EACHC;AACuD,CAAC,EAAW;EACnE,IAAI,IAAAC,oBAAU,GAAE,EAAE;IAChB;IACA,MAAMC,MAAM,GAAGC,MAAM,CAACC,WAAW,CAC9BJ,OAAO,CAAC,IAAI,CAAE,CAAcK,GAAG,CAAEC,GAAG,IAAK,CAACA,GAAG,EAAEP,GAAG,CAAC,IAAI,EAAGO,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CACxE;IACD,OAAOX,gBAAgB,CAACO,MAAM,CAAC;EACjC;EACA,OAAO,IAAIL,KAAK,CAACM,MAAM,CAACI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IAAER;EAAI,CAAC,CAAC;AAC9C"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getI18nNamespace = getI18nNamespace;
|
|
7
|
+
exports.registerAppI18n = registerAppI18n;
|
|
8
|
+
var _i18n = require("@next-core/i18n");
|
|
9
|
+
function registerAppI18n({
|
|
10
|
+
app,
|
|
11
|
+
meta
|
|
12
|
+
}) {
|
|
13
|
+
if (meta !== null && meta !== void 0 && meta.i18n) {
|
|
14
|
+
// Prefix to avoid conflict between brick package's i18n namespace.
|
|
15
|
+
const i18nNamespace = getI18nNamespace("app", app.id);
|
|
16
|
+
// Support any language in `meta.i18n`.
|
|
17
|
+
Object.entries(meta.i18n).forEach(([lang, resources]) => {
|
|
18
|
+
_i18n.i18n.addResourceBundle(lang, i18nNamespace, resources);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function getI18nNamespace(type, id) {
|
|
23
|
+
return `${type}/${id}`;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=registerAppI18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerAppI18n.js","names":["_i18n","require","registerAppI18n","app","meta","i18n","i18nNamespace","getI18nNamespace","id","Object","entries","forEach","lang","resources","addResourceBundle","type"],"sources":["../../../src/internal/registerAppI18n.ts"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport { RuntimeStoryboard } from \"@next-core/types\";\n\nexport function registerAppI18n({ app, meta }: RuntimeStoryboard) {\n if (meta?.i18n) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const i18nNamespace = getI18nNamespace(\"app\", app.id);\n // Support any language in `meta.i18n`.\n Object.entries(meta.i18n).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, i18nNamespace, resources);\n });\n }\n}\n\nexport function getI18nNamespace(\n type: \"app\" | \"widget\" | \"menu\",\n id: string\n): string {\n return `${type}/${id}`;\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGO,SAASC,eAAeA,CAAC;EAAEC,GAAG;EAAEC;AAAwB,CAAC,EAAE;EAChE,IAAIA,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEC,IAAI,EAAE;IACd;IACA,MAAMC,aAAa,GAAGC,gBAAgB,CAAC,KAAK,EAAEJ,GAAG,CAACK,EAAE,CAAC;IACrD;IACAC,MAAM,CAACC,OAAO,CAACN,IAAI,CAACC,IAAI,CAAC,CAACM,OAAO,CAAC,CAAC,CAACC,IAAI,EAAEC,SAAS,CAAC,KAAK;MACvDR,UAAI,CAACS,iBAAiB,CAACF,IAAI,EAAEN,aAAa,EAAEO,SAAS,CAAC;IACxD,CAAC,CAAC;EACJ;AACF;AAEO,SAASN,gBAAgBA,CAC9BQ,IAA+B,EAC/BP,EAAU,EACF;EACR,OAAQ,GAAEO,IAAK,IAAGP,EAAG,EAAC;AACxB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.registerCustomTemplates = registerCustomTemplates;
|
|
7
|
+
var _CustomTemplates = require("../CustomTemplates.js");
|
|
8
|
+
function registerCustomTemplates(storyboard) {
|
|
9
|
+
var _storyboard$meta;
|
|
10
|
+
if (storyboard.$$registerCustomTemplateProcessed) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
storyboard.$$registerCustomTemplateProcessed = true;
|
|
14
|
+
const templates = (_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.customTemplates;
|
|
15
|
+
if (Array.isArray(templates)) {
|
|
16
|
+
for (const tpl of templates) {
|
|
17
|
+
const tagName = tpl.name.includes(".") ? tpl.name : `${storyboard.app.id}.${tpl.name}`;
|
|
18
|
+
_CustomTemplates.customTemplates.define(tagName, tpl);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=registerCustomTemplates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerCustomTemplates.js","names":["_CustomTemplates","require","registerCustomTemplates","storyboard","_storyboard$meta","$$registerCustomTemplateProcessed","templates","meta","customTemplates","Array","isArray","tpl","tagName","name","includes","app","id","define"],"sources":["../../../src/internal/registerCustomTemplates.ts"],"sourcesContent":["import { RuntimeStoryboard } from \"@next-core/types\";\nimport { customTemplates } from \"../CustomTemplates.js\";\n\nexport function registerCustomTemplates(storyboard: RuntimeStoryboard) {\n if (storyboard.$$registerCustomTemplateProcessed) {\n return;\n }\n storyboard.$$registerCustomTemplateProcessed = true;\n const templates = storyboard.meta?.customTemplates;\n if (Array.isArray(templates)) {\n for (const tpl of templates) {\n const tagName = tpl.name.includes(\".\")\n ? tpl.name\n : `${storyboard.app.id}.${tpl.name}`;\n customTemplates.define(tagName, tpl);\n }\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AAEO,SAASC,uBAAuBA,CAACC,UAA6B,EAAE;EAAA,IAAAC,gBAAA;EACrE,IAAID,UAAU,CAACE,iCAAiC,EAAE;IAChD;EACF;EACAF,UAAU,CAACE,iCAAiC,GAAG,IAAI;EACnD,MAAMC,SAAS,IAAAF,gBAAA,GAAGD,UAAU,CAACI,IAAI,cAAAH,gBAAA,uBAAfA,gBAAA,CAAiBI,eAAe;EAClD,IAAIC,KAAK,CAACC,OAAO,CAACJ,SAAS,CAAC,EAAE;IAC5B,KAAK,MAAMK,GAAG,IAAIL,SAAS,EAAE;MAC3B,MAAMM,OAAO,GAAGD,GAAG,CAACE,IAAI,CAACC,QAAQ,CAAC,GAAG,CAAC,GAClCH,GAAG,CAACE,IAAI,GACP,GAAEV,UAAU,CAACY,GAAG,CAACC,EAAG,IAAGL,GAAG,CAACE,IAAK,EAAC;MACtCL,gCAAe,CAACS,MAAM,CAACL,OAAO,EAAED,GAAG,CAAC;IACtC;EACF;AACF"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.initializePreviewBootstrap = initializePreviewBootstrap;
|
|
7
|
+
exports.mountUseBrick = mountUseBrick;
|
|
8
|
+
exports.renderPreviewBricks = renderPreviewBricks;
|
|
9
|
+
exports.renderUseBrick = renderUseBrick;
|
|
10
|
+
exports.unmountUseBrick = unmountUseBrick;
|
|
11
|
+
var _loader = require("@next-core/loader");
|
|
12
|
+
var _Runtime = require("./Runtime.js");
|
|
13
|
+
var _Renderer = require("./Renderer.js");
|
|
14
|
+
var _RendererContext = require("./RendererContext.js");
|
|
15
|
+
var _mount = require("./mount.js");
|
|
16
|
+
var _handleHttpError = require("../handleHttpError.js");
|
|
17
|
+
var _themeAndMode = require("../themeAndMode.js");
|
|
18
|
+
var _enums = require("./enums.js");
|
|
19
|
+
async function renderUseBrick(useBrick, data) {
|
|
20
|
+
var _output$node;
|
|
21
|
+
const runtimeContext = {
|
|
22
|
+
...(0, _Runtime._internalApiGetRuntimeContext)(),
|
|
23
|
+
data,
|
|
24
|
+
pendingPermissionsPreCheck: [],
|
|
25
|
+
tplStateStoreMap: new Map()
|
|
26
|
+
};
|
|
27
|
+
const rendererContext = new _RendererContext.RendererContext("useBrick");
|
|
28
|
+
const renderRoot = {
|
|
29
|
+
tag: _enums.RenderTag.ROOT,
|
|
30
|
+
// Will set during `mountUseBrick`
|
|
31
|
+
createPortal: null
|
|
32
|
+
};
|
|
33
|
+
const output = await (0, _Renderer.renderBrick)(renderRoot, useBrick, runtimeContext, rendererContext);
|
|
34
|
+
(0, _loader.flushStableLoadBricks)();
|
|
35
|
+
await Promise.all([...output.blockingList, ...[...runtimeContext.tplStateStoreMap.values()].map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck]);
|
|
36
|
+
if ((_output$node = output.node) !== null && _output$node !== void 0 && _output$node.portal) {
|
|
37
|
+
throw new Error("The root brick of useBrick cannot be a portal brick");
|
|
38
|
+
}
|
|
39
|
+
renderRoot.child = output.node;
|
|
40
|
+
const tagName = output.node ? output.node.type : null;
|
|
41
|
+
return {
|
|
42
|
+
tagName,
|
|
43
|
+
renderRoot,
|
|
44
|
+
rendererContext
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function mountUseBrick({
|
|
48
|
+
renderRoot,
|
|
49
|
+
rendererContext
|
|
50
|
+
}, element) {
|
|
51
|
+
let portal;
|
|
52
|
+
renderRoot.createPortal = () => {
|
|
53
|
+
const portalRoot = document.querySelector("#portal-mount-point");
|
|
54
|
+
portal = document.createElement("div");
|
|
55
|
+
portalRoot.appendChild(portal);
|
|
56
|
+
return portal;
|
|
57
|
+
};
|
|
58
|
+
(0, _mount.mountTree)(renderRoot, element);
|
|
59
|
+
rendererContext.dispatchOnMount();
|
|
60
|
+
rendererContext.initializeScrollIntoView();
|
|
61
|
+
rendererContext.initializeMediaChange();
|
|
62
|
+
return {
|
|
63
|
+
portal
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function unmountUseBrick({
|
|
67
|
+
rendererContext
|
|
68
|
+
}, mountResult) {
|
|
69
|
+
// if (mountResult.mainBrick) {
|
|
70
|
+
// mountResult.mainBrick.unmount();
|
|
71
|
+
// }
|
|
72
|
+
if (mountResult.portal) {
|
|
73
|
+
(0, _mount.unmountTree)(mountResult.portal);
|
|
74
|
+
mountResult.portal.remove();
|
|
75
|
+
}
|
|
76
|
+
rendererContext.dispatchOnUnmount();
|
|
77
|
+
rendererContext.dispose();
|
|
78
|
+
}
|
|
79
|
+
let _rendererContext;
|
|
80
|
+
function initializePreviewBootstrap(bootstrapData) {
|
|
81
|
+
(0, _Runtime._internalApiSetBootstrapData)(bootstrapData);
|
|
82
|
+
}
|
|
83
|
+
async function renderPreviewBricks(bricks, mountPoints, options) {
|
|
84
|
+
var _options$theme;
|
|
85
|
+
const runtimeContext = {
|
|
86
|
+
pendingPermissionsPreCheck: [],
|
|
87
|
+
tplStateStoreMap: new Map()
|
|
88
|
+
};
|
|
89
|
+
const previousRendererContext = _rendererContext;
|
|
90
|
+
const rendererContext = _rendererContext = new _RendererContext.RendererContext("router");
|
|
91
|
+
const renderRoot = {
|
|
92
|
+
tag: _enums.RenderTag.ROOT,
|
|
93
|
+
container: mountPoints.main,
|
|
94
|
+
createPortal: mountPoints.portal
|
|
95
|
+
};
|
|
96
|
+
let failed = false;
|
|
97
|
+
let output;
|
|
98
|
+
try {
|
|
99
|
+
output = await (0, _Renderer.renderBricks)(renderRoot, bricks, runtimeContext, rendererContext);
|
|
100
|
+
output.blockingList.push(...[...runtimeContext.tplStateStoreMap.values()].map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck);
|
|
101
|
+
(0, _loader.flushStableLoadBricks)();
|
|
102
|
+
await Promise.all(output.blockingList);
|
|
103
|
+
} catch (error) {
|
|
104
|
+
failed = true;
|
|
105
|
+
output = {
|
|
106
|
+
node: {
|
|
107
|
+
tag: _enums.RenderTag.BRICK,
|
|
108
|
+
type: "div",
|
|
109
|
+
properties: {
|
|
110
|
+
textContent: (0, _handleHttpError.httpErrorToString)(error)
|
|
111
|
+
},
|
|
112
|
+
return: renderRoot,
|
|
113
|
+
runtimeContext: null
|
|
114
|
+
},
|
|
115
|
+
blockingList: [],
|
|
116
|
+
menuRequests: []
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
renderRoot.child = output.node;
|
|
120
|
+
previousRendererContext === null || previousRendererContext === void 0 ? void 0 : previousRendererContext.dispose();
|
|
121
|
+
(0, _mount.unmountTree)(mountPoints.main);
|
|
122
|
+
(0, _mount.unmountTree)(mountPoints.portal);
|
|
123
|
+
(0, _themeAndMode.setTheme)((_options$theme = options === null || options === void 0 ? void 0 : options.theme) !== null && _options$theme !== void 0 ? _options$theme : "light");
|
|
124
|
+
(0, _themeAndMode.setMode)("default");
|
|
125
|
+
if (!failed) {
|
|
126
|
+
rendererContext.dispatchBeforePageLoad();
|
|
127
|
+
}
|
|
128
|
+
(0, _themeAndMode.applyTheme)();
|
|
129
|
+
(0, _themeAndMode.applyMode)();
|
|
130
|
+
(0, _mount.mountTree)(renderRoot);
|
|
131
|
+
window.scrollTo(0, 0);
|
|
132
|
+
if (!failed) {
|
|
133
|
+
rendererContext.dispatchPageLoad();
|
|
134
|
+
// rendererContext.dispatchAnchorLoad();
|
|
135
|
+
rendererContext.dispatchOnMount();
|
|
136
|
+
rendererContext.initializeScrollIntoView();
|
|
137
|
+
rendererContext.initializeMediaChange();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=secret_internals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret_internals.js","names":["_loader","require","_Runtime","_Renderer","_RendererContext","_mount","_handleHttpError","_themeAndMode","_enums","renderUseBrick","useBrick","data","_output$node","runtimeContext","_internalApiGetRuntimeContext","pendingPermissionsPreCheck","tplStateStoreMap","Map","rendererContext","RendererContext","renderRoot","tag","RenderTag","ROOT","createPortal","output","renderBrick","flushStableLoadBricks","Promise","all","blockingList","values","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","element","portalRoot","document","querySelector","createElement","appendChild","mountTree","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","mountResult","unmountTree","remove","dispatchOnUnmount","dispose","_rendererContext","initializePreviewBootstrap","bootstrapData","_internalApiSetBootstrapData","renderPreviewBricks","bricks","mountPoints","options","_options$theme","previousRendererContext","container","main","failed","renderBricks","push","error","BRICK","properties","textContent","httpErrorToString","return","menuRequests","setTheme","theme","setMode","dispatchBeforePageLoad","applyTheme","applyMode","window","scrollTo","dispatchPageLoad"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BootstrapData,\n BrickConf,\n SiteTheme,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiSetBootstrapData,\n} from \"./Runtime.js\";\nimport { RenderOutput, renderBrick, renderBricks } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { httpErrorToString } from \"../handleHttpError.js\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"../themeAndMode.js\";\nimport { RenderTag } from \"./enums.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n };\n\n const rendererContext = new RendererContext(\"useBrick\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const output = await renderBrick(\n renderRoot,\n useBrick as BrickConf,\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nlet _rendererContext: RendererContext;\n\nexport function initializePreviewBootstrap(\n bootstrapData: Partial<BootstrapData>\n) {\n _internalApiSetBootstrapData(bootstrapData);\n}\n\nexport async function renderPreviewBricks(\n bricks: BrickConf[],\n mountPoints: {\n main: HTMLElement;\n portal: HTMLElement;\n },\n options?: {\n theme?: SiteTheme;\n }\n) {\n const runtimeContext = {\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n } as Partial<RuntimeContext> as RuntimeContext;\n\n const previousRendererContext = _rendererContext;\n const rendererContext = (_rendererContext = new RendererContext(\"router\"));\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: mountPoints.main,\n createPortal: mountPoints.portal,\n };\n\n let failed = false;\n let output: RenderOutput;\n try {\n output = await renderBricks(\n renderRoot,\n bricks,\n runtimeContext,\n rendererContext\n );\n\n output.blockingList.push(\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n\n flushStableLoadBricks();\n\n await Promise.all(output.blockingList);\n } catch (error) {\n failed = true;\n output = {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n },\n return: renderRoot,\n runtimeContext: null!,\n },\n blockingList: [],\n menuRequests: [],\n };\n }\n\n renderRoot.child = output.node;\n\n previousRendererContext?.dispose();\n unmountTree(mountPoints.main);\n unmountTree(mountPoints.portal);\n\n setTheme(options?.theme ?? \"light\");\n setMode(\"default\");\n\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n applyTheme();\n applyMode();\n\n mountTree(renderRoot);\n\n window.scrollTo(0, 0);\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n // rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.applyMode = applyMode;
|
|
7
|
+
exports.applyTheme = applyTheme;
|
|
8
|
+
exports.batchSetAppsLocalTheme = batchSetAppsLocalTheme;
|
|
9
|
+
exports.getCssPropertyValue = getCssPropertyValue;
|
|
10
|
+
exports.getCurrentMode = getCurrentMode;
|
|
11
|
+
exports.getCurrentTheme = getCurrentTheme;
|
|
12
|
+
exports.getLocalAppsTheme = getLocalAppsTheme;
|
|
13
|
+
exports.getMode = getMode;
|
|
14
|
+
exports.getTheme = getTheme;
|
|
15
|
+
exports.setMode = setMode;
|
|
16
|
+
exports.setTheme = setTheme;
|
|
17
|
+
var _general = require("@next-core/utils/general");
|
|
18
|
+
// Themes.
|
|
19
|
+
let theme = "light";
|
|
20
|
+
const storage = new _general.JsonStorage(localStorage);
|
|
21
|
+
const LOCAL_STORAGE_APPS_THEME_KEY = "apps-theme";
|
|
22
|
+
function setTheme(value) {
|
|
23
|
+
if (value !== "dark" && value !== "light" && value !== "dark-v2") {
|
|
24
|
+
throw new Error(`Unsupported theme: ${value}`);
|
|
25
|
+
}
|
|
26
|
+
theme = value;
|
|
27
|
+
}
|
|
28
|
+
function getTheme() {
|
|
29
|
+
return theme;
|
|
30
|
+
}
|
|
31
|
+
function getCurrentTheme() {
|
|
32
|
+
return document.documentElement.dataset.theme;
|
|
33
|
+
}
|
|
34
|
+
function applyTheme(value) {
|
|
35
|
+
if (value) {
|
|
36
|
+
setTheme(value);
|
|
37
|
+
} else {
|
|
38
|
+
value = getTheme();
|
|
39
|
+
}
|
|
40
|
+
if (value !== getCurrentTheme()) {
|
|
41
|
+
document.documentElement.dataset.theme = value;
|
|
42
|
+
window.dispatchEvent(new CustomEvent("theme.change", {
|
|
43
|
+
detail: value
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function batchSetAppsLocalTheme(appsTheme) {
|
|
48
|
+
storage.setItem(LOCAL_STORAGE_APPS_THEME_KEY, {
|
|
49
|
+
...getLocalAppsTheme(),
|
|
50
|
+
...appsTheme
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function getLocalAppsTheme() {
|
|
54
|
+
var _result;
|
|
55
|
+
let result;
|
|
56
|
+
try {
|
|
57
|
+
result = storage.getItem(LOCAL_STORAGE_APPS_THEME_KEY);
|
|
58
|
+
} catch {
|
|
59
|
+
// eslint-disable-next-line no-console
|
|
60
|
+
console.error("JSON parse error inside `getLocalAppsTheme()`");
|
|
61
|
+
}
|
|
62
|
+
return (_result = result) !== null && _result !== void 0 ? _result : {};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Modes.
|
|
66
|
+
let mode = "default";
|
|
67
|
+
function setMode(value) {
|
|
68
|
+
if (value !== "dashboard" && value !== "default") {
|
|
69
|
+
throw new Error(`Unsupported mode: ${value}`);
|
|
70
|
+
}
|
|
71
|
+
mode = value;
|
|
72
|
+
}
|
|
73
|
+
function getMode() {
|
|
74
|
+
return mode;
|
|
75
|
+
}
|
|
76
|
+
function getCurrentMode() {
|
|
77
|
+
return document.documentElement.dataset.mode;
|
|
78
|
+
}
|
|
79
|
+
function applyMode(value) {
|
|
80
|
+
if (value) {
|
|
81
|
+
setMode(value);
|
|
82
|
+
} else {
|
|
83
|
+
value = getMode();
|
|
84
|
+
}
|
|
85
|
+
if (value !== getCurrentMode()) {
|
|
86
|
+
document.documentElement.dataset.mode = value;
|
|
87
|
+
window.dispatchEvent(new CustomEvent("mode.change", {
|
|
88
|
+
detail: value
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function getCssPropertyValue(name, el = document.documentElement) {
|
|
93
|
+
var _window$getComputedSt;
|
|
94
|
+
if (!el) return "";
|
|
95
|
+
return ((_window$getComputedSt = window.getComputedStyle(el)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.getPropertyValue(name)) || "";
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=themeAndMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themeAndMode.js","names":["_general","require","theme","storage","JsonStorage","localStorage","LOCAL_STORAGE_APPS_THEME_KEY","setTheme","value","Error","getTheme","getCurrentTheme","document","documentElement","dataset","applyTheme","window","dispatchEvent","CustomEvent","detail","batchSetAppsLocalTheme","appsTheme","setItem","getLocalAppsTheme","_result","result","getItem","console","error","mode","setMode","getMode","getCurrentMode","applyMode","getCssPropertyValue","name","el","_window$getComputedSt","getComputedStyle","getPropertyValue"],"sources":["../../src/themeAndMode.ts"],"sourcesContent":["import type { SiteMode, SiteTheme } from \"@next-core/types\";\nimport { JsonStorage } from \"@next-core/utils/general\";\n\ninterface AppThemes {\n [appId: string]: SiteTheme;\n}\n\n// Themes.\nlet theme: SiteTheme = \"light\";\nconst storage = new JsonStorage<Record<string, AppThemes>>(localStorage);\nconst LOCAL_STORAGE_APPS_THEME_KEY = \"apps-theme\";\n\nexport function setTheme(value: SiteTheme): void {\n if (value !== \"dark\" && value !== \"light\" && value !== \"dark-v2\") {\n throw new Error(`Unsupported theme: ${value}`);\n }\n theme = value;\n}\n\nexport function getTheme(): SiteTheme {\n return theme;\n}\n\nexport function getCurrentTheme(): SiteTheme {\n return document.documentElement.dataset.theme as SiteTheme;\n}\n\nexport function applyTheme(value?: SiteTheme): void {\n if (value) {\n setTheme(value);\n } else {\n value = getTheme();\n }\n if (value !== getCurrentTheme()) {\n document.documentElement.dataset.theme = value;\n window.dispatchEvent(\n new CustomEvent<SiteTheme>(\"theme.change\", {\n detail: value,\n })\n );\n }\n}\n\nexport function batchSetAppsLocalTheme(appsTheme: AppThemes): void {\n storage.setItem(LOCAL_STORAGE_APPS_THEME_KEY, {\n ...getLocalAppsTheme(),\n ...appsTheme,\n });\n}\n\nexport function getLocalAppsTheme(): AppThemes {\n let result: AppThemes | undefined;\n try {\n result = storage.getItem(LOCAL_STORAGE_APPS_THEME_KEY);\n } catch {\n // eslint-disable-next-line no-console\n console.error(\"JSON parse error inside `getLocalAppsTheme()`\");\n }\n\n return result ?? {};\n}\n\n// Modes.\nlet mode: SiteMode = \"default\";\n\nexport function setMode(value: SiteMode): void {\n if (value !== \"dashboard\" && value !== \"default\") {\n throw new Error(`Unsupported mode: ${value}`);\n }\n mode = value;\n}\n\nexport function getMode(): SiteMode {\n return mode;\n}\n\nexport function getCurrentMode(): SiteMode {\n return document.documentElement.dataset.mode as SiteMode;\n}\n\nexport function applyMode(value?: SiteMode): void {\n if (value) {\n setMode(value);\n } else {\n value = getMode();\n }\n if (value !== getCurrentMode()) {\n document.documentElement.dataset.mode = value;\n window.dispatchEvent(\n new CustomEvent<SiteMode>(\"mode.change\", {\n detail: value,\n })\n );\n }\n}\n\nexport function getCssPropertyValue(\n name: string,\n el = document.documentElement\n): string {\n if (!el) return \"\";\n return window.getComputedStyle(el)?.getPropertyValue(name) || \"\";\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import _classPrivateFieldInitSpec from "@babel/runtime/helpers/classPrivateFieldInitSpec";
|
|
2
|
+
import _classPrivateFieldGet from "@babel/runtime/helpers/classPrivateFieldGet";
|
|
3
|
+
var _registry = /*#__PURE__*/new WeakMap();
|
|
4
|
+
class CustomProcessorRegistry {
|
|
5
|
+
constructor() {
|
|
6
|
+
_classPrivateFieldInitSpec(this, _registry, {
|
|
7
|
+
writable: true,
|
|
8
|
+
value: new Map()
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
define(processorFullName, processorFunc) {
|
|
12
|
+
// `namespace` should be the camelCase of the package name.
|
|
13
|
+
var [namespace, processorName] = processorFullName.split(".");
|
|
14
|
+
var pkg = _classPrivateFieldGet(this, _registry).get(namespace);
|
|
15
|
+
if (!pkg) {
|
|
16
|
+
pkg = new Map();
|
|
17
|
+
_classPrivateFieldGet(this, _registry).set(namespace, pkg);
|
|
18
|
+
}
|
|
19
|
+
if (pkg.has(processorName)) {
|
|
20
|
+
// eslint-disable-next-line no-console
|
|
21
|
+
throw new Error("Custom processor of \"".concat(processorFullName, "\" already registered"));
|
|
22
|
+
}
|
|
23
|
+
pkg.set(processorName, processorFunc);
|
|
24
|
+
}
|
|
25
|
+
get(namespace) {
|
|
26
|
+
return _classPrivateFieldGet(this, _registry).get(namespace);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export var customProcessors = new CustomProcessorRegistry();
|
|
30
|
+
//# sourceMappingURL=CustomProcessors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomProcessors.js","names":["CustomProcessorRegistry","constructor","_classPrivateFieldInitSpec","_registry","writable","value","Map","define","processorFullName","processorFunc","namespace","processorName","split","pkg","_classPrivateFieldGet","get","set","has","Error","concat","customProcessors"],"sources":["../../src/CustomProcessors.ts"],"sourcesContent":["class CustomProcessorRegistry {\n readonly #registry = new Map<string, Map<string, Function>>();\n\n define(processorFullName: string, processorFunc: Function) {\n // `namespace` should be the camelCase of the package name.\n const [namespace, processorName] = processorFullName.split(\".\");\n let pkg = this.#registry.get(namespace);\n if (!pkg) {\n pkg = new Map();\n this.#registry.set(namespace, pkg);\n }\n if (pkg.has(processorName)) {\n // eslint-disable-next-line no-console\n throw new Error(\n `Custom processor of \"${processorFullName}\" already registered`\n );\n }\n pkg.set(processorName, processorFunc);\n }\n\n get(namespace: string) {\n return this.#registry.get(namespace);\n }\n}\n\nexport const customProcessors = new CustomProcessorRegistry();\n"],"mappings":";;;AAAA,MAAMA,uBAAuB,CAAC;EAAAC,YAAA;IAAAC,0BAAA,OAAAC,SAAA;MAAAC,QAAA;MAAAC,KAAA,EACP,IAAIC,GAAG;IAAiC;EAAA;EAE7DC,MAAMA,CAACC,iBAAyB,EAAEC,aAAuB,EAAE;IACzD;IACA,IAAM,CAACC,SAAS,EAAEC,aAAa,CAAC,GAAGH,iBAAiB,CAACI,KAAK,CAAC,GAAG,CAAC;IAC/D,IAAIC,GAAG,GAAGC,qBAAA,KAAI,EAAAX,SAAA,EAAWY,GAAG,CAACL,SAAS,CAAC;IACvC,IAAI,CAACG,GAAG,EAAE;MACRA,GAAG,GAAG,IAAIP,GAAG,EAAE;MACfQ,qBAAA,KAAI,EAAAX,SAAA,EAAWa,GAAG,CAACN,SAAS,EAAEG,GAAG,CAAC;IACpC;IACA,IAAIA,GAAG,CAACI,GAAG,CAACN,aAAa,CAAC,EAAE;MAC1B;MACA,MAAM,IAAIO,KAAK,0BAAAC,MAAA,CACWX,iBAAiB,2BAC1C;IACH;IACAK,GAAG,CAACG,GAAG,CAACL,aAAa,EAAEF,aAAa,CAAC;EACvC;EAEAM,GAAGA,CAACL,SAAiB,EAAE;IACrB,OAAOI,qBAAA,KAAI,EAAAX,SAAA,EAAWY,GAAG,CAACL,SAAS,CAAC;EACtC;AACF;AAEA,OAAO,IAAMU,gBAAgB,GAAG,IAAIpB,uBAAuB,EAAE"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
+
import _classPrivateFieldInitSpec from "@babel/runtime/helpers/classPrivateFieldInitSpec";
|
|
3
|
+
import _classPrivateFieldGet from "@babel/runtime/helpers/classPrivateFieldGet";
|
|
4
|
+
import { uniq } from "lodash";
|
|
5
|
+
// Note: `prefix` is a native prop on Element, but it's only used in XML documents.
|
|
6
|
+
var allowedNativeProps = new Set(["prefix"]);
|
|
7
|
+
var _registry = /*#__PURE__*/new WeakMap();
|
|
8
|
+
class CustomTemplateRegistry {
|
|
9
|
+
constructor() {
|
|
10
|
+
_classPrivateFieldInitSpec(this, _registry, {
|
|
11
|
+
writable: true,
|
|
12
|
+
value: new Map()
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
define(tagName, constructor) {
|
|
16
|
+
var _constructor$proxy$pr, _constructor$proxy, _compatibleConstructo, _compatibleConstructo2;
|
|
17
|
+
var registered = _classPrivateFieldGet(this, _registry).has(tagName);
|
|
18
|
+
if (registered) {
|
|
19
|
+
// When open launchpad, the storyboard will be updated.
|
|
20
|
+
// However, we can't *undefine* a custom element.
|
|
21
|
+
// Just ignore re-registering custom templates.
|
|
22
|
+
// eslint-disable-next-line no-console
|
|
23
|
+
console.warn("Custom template of \"".concat(tagName, "\" already registered."));
|
|
24
|
+
} else {
|
|
25
|
+
registered = !!customElements.get(tagName);
|
|
26
|
+
if (registered) {
|
|
27
|
+
// eslint-disable-next-line no-console
|
|
28
|
+
console.warn("Custom template of \"".concat(tagName, "\" already defined by customElements."));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Transform legacy `proxy.properties[].asVariable` as states.
|
|
33
|
+
var proxyProperties = (_constructor$proxy$pr = (_constructor$proxy = constructor.proxy) === null || _constructor$proxy === void 0 ? void 0 : _constructor$proxy.properties) !== null && _constructor$proxy$pr !== void 0 ? _constructor$proxy$pr : {};
|
|
34
|
+
var validProxyProps = [];
|
|
35
|
+
var legacyTplVariables = [];
|
|
36
|
+
for (var [key, value] of Object.entries(proxyProperties)) {
|
|
37
|
+
if (value.asVariable) {
|
|
38
|
+
// For existed TPL usage, treat it as a STATE.
|
|
39
|
+
legacyTplVariables.push(key);
|
|
40
|
+
// eslint-disable-next-line no-console
|
|
41
|
+
console.warn("Template `asVariable` with `TPL.*` is deprecated and will be dropped in v3:", tagName, key);
|
|
42
|
+
} else if (value.mergeProperty || value.refTransform) {
|
|
43
|
+
// eslint-disable-next-line no-console
|
|
44
|
+
console.error("Template `mergeProperty` and `refTransform` are not supported in v3:", tagName, key);
|
|
45
|
+
} else if (value.ref) {
|
|
46
|
+
validProxyProps.push([key, value]);
|
|
47
|
+
}
|
|
48
|
+
// Else: documentation only, for exposed states.
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
var compatibleConstructor = _objectSpread(_objectSpread({}, constructor), {}, {
|
|
52
|
+
proxy: _objectSpread(_objectSpread({}, constructor.proxy), {}, {
|
|
53
|
+
properties: Object.fromEntries(validProxyProps)
|
|
54
|
+
}),
|
|
55
|
+
state: (constructor.state ? constructor.state.map(item => _objectSpread({
|
|
56
|
+
// For existed templates, make `expose` defaults to true.
|
|
57
|
+
expose: true
|
|
58
|
+
}, item)) : []).concat(legacyTplVariables.map(tpl => ({
|
|
59
|
+
name: tpl,
|
|
60
|
+
expose: true
|
|
61
|
+
})))
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// Now we allow re-register custom template
|
|
65
|
+
_classPrivateFieldGet(this, _registry).set(tagName, _objectSpread(_objectSpread({}, compatibleConstructor), {}, {
|
|
66
|
+
name: tagName
|
|
67
|
+
}));
|
|
68
|
+
var exposedStates = getExposedStates(compatibleConstructor.state);
|
|
69
|
+
var proxyMethods = Object.entries((_compatibleConstructo = (_compatibleConstructo2 = compatibleConstructor.proxy) === null || _compatibleConstructo2 === void 0 ? void 0 : _compatibleConstructo2.methods) !== null && _compatibleConstructo !== void 0 ? _compatibleConstructo : {});
|
|
70
|
+
var props = exposedStates.concat(validProxyProps.map(entry => entry[0]));
|
|
71
|
+
var methods = proxyMethods.map(entry => entry[0]);
|
|
72
|
+
var nativeProp = props.concat(methods).find(prop => prop in HTMLElement.prototype && !allowedNativeProps.has(prop));
|
|
73
|
+
if (nativeProp !== undefined) {
|
|
74
|
+
throw new Error("In custom template \"".concat(tagName, "\", \"").concat(nativeProp, "\" is a native HTMLElement property, and should be avoid to be used as a brick property or method."));
|
|
75
|
+
}
|
|
76
|
+
if (registered) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
class TplElement extends HTMLElement {
|
|
80
|
+
get $$typeof() {
|
|
81
|
+
return "custom-template";
|
|
82
|
+
}
|
|
83
|
+
static get _dev_only_definedProperties() {
|
|
84
|
+
return props;
|
|
85
|
+
}
|
|
86
|
+
static get _dev_only_definedMethods() {
|
|
87
|
+
return methods;
|
|
88
|
+
}
|
|
89
|
+
$$getElementByRef(ref) {
|
|
90
|
+
var _this$$$tplStateStore, _this$$$tplStateStore2, _this$$$tplStateStore3, _this$$$tplStateStore4;
|
|
91
|
+
return (_this$$$tplStateStore = this.$$tplStateStore) === null || _this$$$tplStateStore === void 0 ? void 0 : (_this$$$tplStateStore2 = _this$$$tplStateStore.hostBrick) === null || _this$$$tplStateStore2 === void 0 ? void 0 : (_this$$$tplStateStore3 = _this$$$tplStateStore2.tplHostMetadata) === null || _this$$$tplStateStore3 === void 0 ? void 0 : (_this$$$tplStateStore4 = _this$$$tplStateStore3.internalBricksByRef.get(ref)) === null || _this$$$tplStateStore4 === void 0 ? void 0 : _this$$$tplStateStore4.element;
|
|
92
|
+
}
|
|
93
|
+
connectedCallback() {
|
|
94
|
+
var shadowRoot = this.shadowRoot;
|
|
95
|
+
if (!shadowRoot) {
|
|
96
|
+
shadowRoot = this.attachShadow({
|
|
97
|
+
mode: "open"
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
var fragment = document.createDocumentFragment();
|
|
101
|
+
var style = document.createElement("style");
|
|
102
|
+
style.textContent = ":host{display:block}:host([hidden]){display:none}";
|
|
103
|
+
var slot = document.createElement("slot");
|
|
104
|
+
fragment.appendChild(style);
|
|
105
|
+
fragment.appendChild(slot);
|
|
106
|
+
shadowRoot.appendChild(fragment);
|
|
107
|
+
}
|
|
108
|
+
disconnectedCallback() {
|
|
109
|
+
if (this.shadowRoot) {
|
|
110
|
+
this.shadowRoot.textContent = "";
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
var _loop = function (propName) {
|
|
115
|
+
if (validProxyProps.some(entry => entry[0] === propName)) {
|
|
116
|
+
// eslint-disable-next-line no-console
|
|
117
|
+
console.error("Cannot define an exposed state that is also a proxy property: \"".concat(propName, "\" in ").concat(tagName));
|
|
118
|
+
return "continue";
|
|
119
|
+
}
|
|
120
|
+
Object.defineProperty(TplElement.prototype, propName, {
|
|
121
|
+
get() {
|
|
122
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
123
|
+
return this.$$tplStateStore.getValue(propName);
|
|
124
|
+
},
|
|
125
|
+
set(value) {
|
|
126
|
+
var _this$$$tplStateStore5;
|
|
127
|
+
// 在 mount 过程中,先设置属性,再设置 `$$tplStateStore`,这样,当触发属性设置时,
|
|
128
|
+
// 避免初始化的一次 state update 操作及其 onChange 事件。
|
|
129
|
+
(_this$$$tplStateStore5 = this.$$tplStateStore) === null || _this$$$tplStateStore5 === void 0 ? void 0 : _this$$$tplStateStore5.updateValue(propName, value, "replace");
|
|
130
|
+
},
|
|
131
|
+
enumerable: true
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
for (var propName of exposedStates) {
|
|
135
|
+
var _ret = _loop(propName);
|
|
136
|
+
if (_ret === "continue") continue;
|
|
137
|
+
}
|
|
138
|
+
var _loop2 = function (from, to) {
|
|
139
|
+
Object.defineProperty(TplElement.prototype, from, {
|
|
140
|
+
get() {
|
|
141
|
+
var _to$refProperty;
|
|
142
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
143
|
+
var element = this.$$getElementByRef(to.ref);
|
|
144
|
+
return element[(_to$refProperty = to.refProperty) !== null && _to$refProperty !== void 0 ? _to$refProperty : from];
|
|
145
|
+
},
|
|
146
|
+
set(value) {
|
|
147
|
+
var _this$$$getElementByR;
|
|
148
|
+
// 同上 exposedState.set
|
|
149
|
+
var element = (_this$$$getElementByR = this.$$getElementByRef) === null || _this$$$getElementByR === void 0 ? void 0 : _this$$$getElementByR.call(this, to.ref);
|
|
150
|
+
if (element) {
|
|
151
|
+
var _to$refProperty2;
|
|
152
|
+
element[(_to$refProperty2 = to.refProperty) !== null && _to$refProperty2 !== void 0 ? _to$refProperty2 : from] = value;
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
enumerable: true
|
|
156
|
+
});
|
|
157
|
+
};
|
|
158
|
+
for (var [from, to] of validProxyProps) {
|
|
159
|
+
_loop2(from, to);
|
|
160
|
+
}
|
|
161
|
+
var _loop3 = function (_from, _to) {
|
|
162
|
+
Object.defineProperty(TplElement.prototype, _from, {
|
|
163
|
+
value() {
|
|
164
|
+
var _to$refMethod;
|
|
165
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
166
|
+
var element = this.$$getElementByRef(_to.ref);
|
|
167
|
+
element[(_to$refMethod = _to.refMethod) !== null && _to$refMethod !== void 0 ? _to$refMethod : _from](...arguments);
|
|
168
|
+
},
|
|
169
|
+
enumerable: true
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
for (var [_from, _to] of proxyMethods) {
|
|
173
|
+
_loop3(_from, _to);
|
|
174
|
+
}
|
|
175
|
+
customElements.define(tagName, TplElement);
|
|
176
|
+
}
|
|
177
|
+
get(tagName) {
|
|
178
|
+
return _classPrivateFieldGet(this, _registry).get(tagName);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
export var customTemplates = new CustomTemplateRegistry();
|
|
182
|
+
function getExposedStates(state) {
|
|
183
|
+
var _state$filter$map;
|
|
184
|
+
// Allow duplicated state names which maybe mutually exclusive.
|
|
185
|
+
return uniq((_state$filter$map = state === null || state === void 0 ? void 0 : state.filter(item => item.expose).map(item => item.name)) !== null && _state$filter$map !== void 0 ? _state$filter$map : []);
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=CustomTemplates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomTemplates.js","names":["uniq","allowedNativeProps","Set","_registry","WeakMap","CustomTemplateRegistry","constructor","_classPrivateFieldInitSpec","writable","value","Map","define","tagName","_constructor$proxy$pr","_constructor$proxy","_compatibleConstructo","_compatibleConstructo2","registered","_classPrivateFieldGet","has","console","warn","concat","customElements","get","proxyProperties","proxy","properties","validProxyProps","legacyTplVariables","key","Object","entries","asVariable","push","mergeProperty","refTransform","error","ref","compatibleConstructor","_objectSpread","fromEntries","state","map","item","expose","tpl","name","set","exposedStates","getExposedStates","proxyMethods","methods","props","entry","nativeProp","find","prop","HTMLElement","prototype","undefined","Error","TplElement","$$typeof","_dev_only_definedProperties","_dev_only_definedMethods","$$getElementByRef","_this$$$tplStateStore","_this$$$tplStateStore2","_this$$$tplStateStore3","_this$$$tplStateStore4","$$tplStateStore","hostBrick","tplHostMetadata","internalBricksByRef","element","connectedCallback","shadowRoot","attachShadow","mode","fragment","document","createDocumentFragment","style","createElement","textContent","slot","appendChild","disconnectedCallback","_loop","propName","some","defineProperty","getValue","_this$$$tplStateStore5","updateValue","enumerable","_ret","_loop2","from","to","_to$refProperty","refProperty","_this$$$getElementByR","call","_to$refProperty2","_loop3","_to$refMethod","refMethod","arguments","customTemplates","_state$filter$map","filter"],"sources":["../../src/CustomTemplates.ts"],"sourcesContent":["import type {\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateProxyBasicProperty,\n} from \"@next-core/types\";\nimport { uniq } from \"lodash\";\nimport type { RuntimeBrickElement } from \"./internal/interfaces.js\";\n\n// Note: `prefix` is a native prop on Element, but it's only used in XML documents.\nconst allowedNativeProps = new Set([\"prefix\"]);\n\ninterface LegacyTplPropProxy extends CustomTemplateProxyBasicProperty {\n asVariable?: boolean;\n mergeProperty?: unknown;\n refTransform?: unknown;\n}\n\nclass CustomTemplateRegistry {\n readonly #registry = new Map<string, CustomTemplate>();\n\n define(tagName: string, constructor: CustomTemplateConstructor): void {\n let registered = this.#registry.has(tagName);\n if (registered) {\n // When open launchpad, the storyboard will be updated.\n // However, we can't *undefine* a custom element.\n // Just ignore re-registering custom templates.\n // eslint-disable-next-line no-console\n console.warn(`Custom template of \"${tagName}\" already registered.`);\n } else {\n registered = !!customElements.get(tagName);\n if (registered) {\n // eslint-disable-next-line no-console\n console.warn(\n `Custom template of \"${tagName}\" already defined by customElements.`\n );\n }\n }\n\n // Transform legacy `proxy.properties[].asVariable` as states.\n const proxyProperties = (constructor.proxy?.properties ?? {}) as {\n [name: string]: LegacyTplPropProxy;\n };\n const validProxyProps: [string, CustomTemplateProxyBasicProperty][] = [];\n const legacyTplVariables: string[] = [];\n for (const [key, value] of Object.entries(proxyProperties)) {\n if (value.asVariable) {\n // For existed TPL usage, treat it as a STATE.\n legacyTplVariables.push(key);\n // eslint-disable-next-line no-console\n console.warn(\n \"Template `asVariable` with `TPL.*` is deprecated and will be dropped in v3:\",\n tagName,\n key\n );\n } else if (value.mergeProperty || value.refTransform) {\n // eslint-disable-next-line no-console\n console.error(\n \"Template `mergeProperty` and `refTransform` are not supported in v3:\",\n tagName,\n key\n );\n } else if (value.ref) {\n validProxyProps.push([key, value]);\n }\n // Else: documentation only, for exposed states.\n }\n\n const compatibleConstructor = {\n ...constructor,\n proxy: {\n ...constructor.proxy,\n properties: Object.fromEntries(validProxyProps),\n },\n state: (constructor.state\n ? constructor.state.map((item) => ({\n // For existed templates, make `expose` defaults to true.\n expose: true,\n ...item,\n }))\n : []\n ).concat(legacyTplVariables.map((tpl) => ({ name: tpl, expose: true }))),\n };\n\n // Now we allow re-register custom template\n this.#registry.set(tagName, {\n ...compatibleConstructor,\n name: tagName,\n });\n\n const exposedStates = getExposedStates(compatibleConstructor.state);\n const proxyMethods = Object.entries(\n compatibleConstructor.proxy?.methods ?? {}\n );\n\n const props = exposedStates.concat(\n validProxyProps.map((entry) => entry[0])\n );\n const methods = proxyMethods.map((entry) => entry[0]);\n\n const nativeProp = props\n .concat(methods)\n .find(\n (prop) => prop in HTMLElement.prototype && !allowedNativeProps.has(prop)\n );\n if (nativeProp !== undefined) {\n throw new Error(\n `In custom template \"${tagName}\", \"${nativeProp}\" is a native HTMLElement property, and should be avoid to be used as a brick property or method.`\n );\n }\n\n if (registered) {\n return;\n }\n\n class TplElement extends HTMLElement {\n get $$typeof() {\n return \"custom-template\" as const;\n }\n\n static get _dev_only_definedProperties(): string[] {\n return props;\n }\n\n static get _dev_only_definedMethods(): string[] {\n return methods;\n }\n\n $$getElementByRef(this: RuntimeBrickElement, ref: string) {\n return this.$$tplStateStore?.hostBrick?.tplHostMetadata?.internalBricksByRef.get(\n ref\n )?.element;\n }\n\n connectedCallback() {\n let shadowRoot = this.shadowRoot;\n if (!shadowRoot) {\n shadowRoot = this.attachShadow({ mode: \"open\" });\n }\n const fragment = document.createDocumentFragment();\n const style = document.createElement(\"style\");\n style.textContent = \":host{display:block}:host([hidden]){display:none}\";\n const slot = document.createElement(\"slot\");\n fragment.appendChild(style);\n fragment.appendChild(slot);\n shadowRoot.appendChild(fragment);\n }\n\n disconnectedCallback() {\n if (this.shadowRoot) {\n this.shadowRoot.textContent = \"\";\n }\n }\n }\n\n for (const propName of exposedStates) {\n if (validProxyProps.some((entry) => entry[0] === propName)) {\n // eslint-disable-next-line no-console\n console.error(\n `Cannot define an exposed state that is also a proxy property: \"${propName}\" in ${tagName}`\n );\n continue;\n }\n Object.defineProperty(TplElement.prototype, propName, {\n get(this: RuntimeBrickElement) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.$$tplStateStore!.getValue(propName);\n },\n set(this: RuntimeBrickElement, value: unknown) {\n // 在 mount 过程中,先设置属性,再设置 `$$tplStateStore`,这样,当触发属性设置时,\n // 避免初始化的一次 state update 操作及其 onChange 事件。\n this.$$tplStateStore?.updateValue(propName, value, \"replace\");\n },\n enumerable: true,\n });\n }\n\n for (const [from, to] of validProxyProps) {\n Object.defineProperty(TplElement.prototype, from, {\n get(this: TplElement) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const element = this.$$getElementByRef!(to.ref) as unknown as Record<\n string,\n unknown\n >;\n return element[to.refProperty ?? from];\n },\n set(this: TplElement, value: unknown) {\n // 同上 exposedState.set\n const element = this.$$getElementByRef?.(to.ref) as unknown as Record<\n string,\n unknown\n >;\n if (element) {\n element[to.refProperty ?? from] = value;\n }\n },\n enumerable: true,\n });\n }\n\n for (const [from, to] of proxyMethods) {\n Object.defineProperty(TplElement.prototype, from, {\n value(this: TplElement, ...args: unknown[]) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const element = this.$$getElementByRef!(to.ref) as unknown as Record<\n string,\n Function\n >;\n element[to.refMethod ?? from](...args);\n },\n enumerable: true,\n });\n }\n\n customElements.define(tagName, TplElement);\n }\n\n get(tagName: string) {\n return this.#registry.get(tagName);\n }\n}\n\nexport const customTemplates = new CustomTemplateRegistry();\n\nfunction getExposedStates(state: ContextConf[] | undefined): string[] {\n // Allow duplicated state names which maybe mutually exclusive.\n return uniq(\n state?.filter((item) => item.expose).map((item) => item.name) ?? []\n );\n}\n"],"mappings":"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"}
|