@vlian/framework 1.1.1 → 1.2.16
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/README.md +35 -1
- package/dist/analytics/index.cjs +24 -0
- package/dist/analytics/index.cjs.map +1 -0
- package/dist/analytics/index.d.ts +2 -0
- package/dist/analytics/index.js +3 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics.umd.js +2406 -0
- package/dist/analytics.umd.js.map +1 -0
- package/dist/components/LocaleSwitch.cjs +118 -0
- package/dist/components/LocaleSwitch.cjs.map +1 -0
- package/dist/components/LocaleSwitch.d.ts +21 -0
- package/dist/components/LocaleSwitch.js +103 -0
- package/dist/components/LocaleSwitch.js.map +1 -0
- package/dist/components/ThemeSwitch.cjs +117 -0
- package/dist/components/ThemeSwitch.cjs.map +1 -0
- package/dist/components/ThemeSwitch.d.ts +20 -0
- package/dist/components/ThemeSwitch.js +102 -0
- package/dist/components/ThemeSwitch.js.map +1 -0
- package/dist/components/index.cjs +16 -0
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.ts +5 -2
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/persistence.cjs +60 -0
- package/dist/components/persistence.cjs.map +1 -0
- package/dist/components/persistence.d.ts +12 -0
- package/dist/components/persistence.js +39 -0
- package/dist/components/persistence.js.map +1 -0
- package/dist/core/Test.d.ts +0 -1
- package/dist/core/app/AppContext.cjs +36 -30
- package/dist/core/app/AppContext.cjs.map +1 -1
- package/dist/core/app/AppContext.d.ts +9 -6
- package/dist/core/app/AppContext.js +36 -30
- package/dist/core/app/AppContext.js.map +1 -1
- package/dist/core/app/AppContext.types.d.ts +9 -10
- package/dist/core/app/AppContext.types.js.map +1 -1
- package/dist/core/app/BasicLayout.cjs +57 -22
- package/dist/core/app/BasicLayout.cjs.map +1 -1
- package/dist/core/app/BasicLayout.d.ts +7 -5
- package/dist/core/app/BasicLayout.js +57 -22
- package/dist/core/app/BasicLayout.js.map +1 -1
- package/dist/core/app/DefaultApp.cjs +104 -153
- package/dist/core/app/DefaultApp.cjs.map +1 -1
- package/dist/core/app/DefaultApp.d.ts +0 -21
- package/dist/core/app/DefaultApp.js +104 -153
- package/dist/core/app/DefaultApp.js.map +1 -1
- package/dist/core/app/index.d.ts +0 -1
- package/dist/core/config/AppConfig.cjs.map +1 -1
- package/dist/core/config/AppConfig.d.ts +3 -4
- package/dist/core/config/AppConfig.js.map +1 -1
- package/dist/core/config/ConfigLoader.cjs +90 -8
- package/dist/core/config/ConfigLoader.cjs.map +1 -1
- package/dist/core/config/ConfigLoader.d.ts +20 -5
- package/dist/core/config/ConfigLoader.js +90 -8
- package/dist/core/config/ConfigLoader.js.map +1 -1
- package/dist/core/config/ConfigValidator.d.ts +0 -1
- package/dist/core/config/index.d.ts +0 -1
- package/dist/core/dev/DevTools.cjs +141 -287
- package/dist/core/dev/DevTools.cjs.map +1 -1
- package/dist/core/dev/DevTools.d.ts +1 -32
- package/dist/core/dev/DevTools.js +143 -296
- package/dist/core/dev/DevTools.js.map +1 -1
- package/dist/core/error/ErrorBoundary.cjs +95 -23
- package/dist/core/error/ErrorBoundary.cjs.map +1 -1
- package/dist/core/error/ErrorBoundary.d.ts +7 -9
- package/dist/core/error/ErrorBoundary.js +96 -24
- package/dist/core/error/ErrorBoundary.js.map +1 -1
- package/dist/core/error/ErrorHandler.cjs +277 -0
- package/dist/core/error/ErrorHandler.cjs.map +1 -0
- package/dist/core/error/ErrorHandler.d.ts +171 -0
- package/dist/core/error/ErrorHandler.js +261 -0
- package/dist/core/error/ErrorHandler.js.map +1 -0
- package/dist/core/error/index.cjs +10 -0
- package/dist/core/error/index.cjs.map +1 -1
- package/dist/core/error/index.d.ts +2 -1
- package/dist/core/error/index.js +1 -0
- package/dist/core/error/index.js.map +1 -1
- package/dist/core/event/AppEventBus.d.ts +0 -1
- package/dist/core/event/frameworkEvents.d.ts +0 -1
- package/dist/core/event/hooks.d.ts +0 -1
- package/dist/core/event/index.d.ts +0 -1
- package/dist/core/event/types.d.ts +0 -1
- package/dist/core/event/useEventBus.d.ts +0 -1
- package/dist/core/index.cjs +2 -0
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +2 -1
- package/dist/core/index.js +2 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/initialization/InitializationErrorThrower.d.ts +0 -1
- package/dist/core/initialization/index.d.ts +0 -1
- package/dist/core/initialization/initialization.d.ts +0 -1
- package/dist/core/initialization/initializationErrorState.d.ts +0 -1
- package/dist/core/kernel/defaultAdapters.cjs +185 -0
- package/dist/core/kernel/defaultAdapters.cjs.map +1 -0
- package/dist/core/kernel/defaultAdapters.d.ts +2 -0
- package/dist/core/kernel/defaultAdapters.js +175 -0
- package/dist/core/kernel/defaultAdapters.js.map +1 -0
- package/dist/core/kernel/errors.cjs +71 -0
- package/dist/core/kernel/errors.cjs.map +1 -0
- package/dist/core/kernel/errors.d.ts +18 -0
- package/dist/core/kernel/errors.js +53 -0
- package/dist/core/kernel/errors.js.map +1 -0
- package/dist/core/kernel/index.cjs +22 -0
- package/dist/core/kernel/index.cjs.map +1 -0
- package/dist/core/kernel/index.d.ts +3 -0
- package/dist/core/kernel/index.js +4 -0
- package/dist/core/kernel/index.js.map +1 -0
- package/dist/core/kernel/startKernel.cjs +203 -0
- package/dist/core/kernel/startKernel.cjs.map +1 -0
- package/dist/core/kernel/startKernel.d.ts +2 -0
- package/dist/core/kernel/startKernel.js +193 -0
- package/dist/core/kernel/startKernel.js.map +1 -0
- package/dist/core/kernel/types.cjs +6 -0
- package/dist/core/kernel/types.cjs.map +1 -0
- package/dist/core/kernel/types.d.ts +114 -0
- package/dist/core/kernel/types.js +3 -0
- package/dist/core/kernel/types.js.map +1 -0
- package/dist/core/middleware.d.ts +0 -1
- package/dist/core/plugin/PluginEventBus.d.ts +0 -1
- package/dist/core/plugin/PluginSandbox.d.ts +0 -1
- package/dist/core/plugin.cjs +1 -1
- package/dist/core/plugin.cjs.map +1 -1
- package/dist/core/plugin.d.ts +0 -1
- package/dist/core/plugin.js +1 -1
- package/dist/core/plugin.js.map +1 -1
- package/dist/core/router/RouterManager.d.ts +0 -1
- package/dist/core/router/adapter/AdapterManager.d.ts +0 -1
- package/dist/core/router/adapter/index.d.ts +0 -1
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts +0 -1
- package/dist/core/router/adapter/react-router/index.d.ts +0 -1
- package/dist/core/router/adapter/types.cjs.map +1 -1
- package/dist/core/router/adapter/types.d.ts +1 -2
- package/dist/core/router/adapter/types.js.map +1 -1
- package/dist/core/router/dev/RouterDevTools.cjs +148 -296
- package/dist/core/router/dev/RouterDevTools.cjs.map +1 -1
- package/dist/core/router/dev/RouterDevTools.d.ts +1 -6
- package/dist/core/router/dev/RouterDevTools.js +149 -301
- package/dist/core/router/dev/RouterDevTools.js.map +1 -1
- package/dist/core/router/dev/index.d.ts +0 -1
- package/dist/core/router/dynamic/DynamicRouteManager.d.ts +0 -1
- package/dist/core/router/dynamic/index.d.ts +0 -1
- package/dist/core/router/errors/RouterError.d.ts +0 -1
- package/dist/core/router/errors/index.d.ts +0 -1
- package/dist/core/router/index.d.ts +0 -1
- package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts +0 -1
- package/dist/core/router/lifecycle/index.d.ts +0 -1
- package/dist/core/router/middleware/RouterMiddlewareManager.d.ts +0 -1
- package/dist/core/router/middleware/auth.d.ts +0 -1
- package/dist/core/router/middleware/index.d.ts +0 -1
- package/dist/core/router/middleware/types.d.ts +0 -1
- package/dist/core/router/monitoring/RouterMonitoring.d.ts +0 -1
- package/dist/core/router/monitoring/index.d.ts +0 -1
- package/dist/core/router/navigation/RouterNavigation.d.ts +0 -1
- package/dist/core/router/navigation/index.d.ts +0 -1
- package/dist/core/router/performance/RouteCache.d.ts +0 -1
- package/dist/core/router/performance/RoutePreloader.d.ts +0 -1
- package/dist/core/router/performance/index.d.ts +0 -1
- package/dist/core/router/plugin/RouterPluginManager.d.ts +0 -1
- package/dist/core/router/plugin/index.d.ts +0 -1
- package/dist/core/router/plugin/types.d.ts +0 -1
- package/dist/core/router/types.d.ts +1 -2
- package/dist/core/router/types.js.map +1 -1
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +90 -103
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +1 -1
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts +0 -1
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +91 -104
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js.map +1 -1
- package/dist/core/router/utils/adapters/react-router/transform.cjs +13 -4
- package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
- package/dist/core/router/utils/adapters/react-router/transform.d.ts +0 -1
- package/dist/core/router/utils/adapters/react-router/transform.js +13 -4
- package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
- package/dist/core/router/utils/transform.cjs +1 -1
- package/dist/core/router/utils/transform.cjs.map +1 -1
- package/dist/core/router/utils/transform.d.ts +0 -1
- package/dist/core/router/utils/transform.js +1 -1
- package/dist/core/router/utils/transform.js.map +1 -1
- package/dist/core/router/validation/RouterConfigValidator.d.ts +0 -1
- package/dist/core/router/validation/index.d.ts +0 -1
- package/dist/core/router/validation/schema.d.ts +0 -1
- package/dist/core/router/version/RouteVersionManager.d.ts +0 -1
- package/dist/core/router/version/index.d.ts +0 -1
- package/dist/core/splash/SplashScreen.cjs +101 -15
- package/dist/core/splash/SplashScreen.cjs.map +1 -1
- package/dist/core/splash/SplashScreen.d.ts +0 -1
- package/dist/core/splash/SplashScreen.js +101 -15
- package/dist/core/splash/SplashScreen.js.map +1 -1
- package/dist/core/splash/index.d.ts +0 -1
- package/dist/core/splash/splashScreenUtils.d.ts +0 -1
- package/dist/core/startup/AppInstance.d.ts +0 -1
- package/dist/core/startup/environment.d.ts +0 -1
- package/dist/core/startup/index.d.ts +0 -1
- package/dist/core/startup/initializeServices.cjs +69 -24
- package/dist/core/startup/initializeServices.cjs.map +1 -1
- package/dist/core/startup/initializeServices.d.ts +9 -3
- package/dist/core/startup/initializeServices.js +73 -26
- package/dist/core/startup/initializeServices.js.map +1 -1
- package/dist/core/startup/performanceTracker.d.ts +0 -1
- package/dist/core/startup/renderApp.cjs +110 -69
- package/dist/core/startup/renderApp.cjs.map +1 -1
- package/dist/core/startup/renderApp.d.ts +2 -3
- package/dist/core/startup/renderApp.js +111 -70
- package/dist/core/startup/renderApp.js.map +1 -1
- package/dist/core/startup/startApp.cjs +123 -11
- package/dist/core/startup/startApp.cjs.map +1 -1
- package/dist/core/startup/startApp.d.ts +0 -1
- package/dist/core/startup/startApp.js +123 -11
- package/dist/core/startup/startApp.js.map +1 -1
- package/dist/core/types.d.ts +34 -21
- package/dist/core/types.js.map +1 -1
- package/dist/core/ui-adapter/adapters.cjs +45 -0
- package/dist/core/ui-adapter/adapters.cjs.map +1 -0
- package/dist/core/ui-adapter/adapters.d.ts +4 -0
- package/dist/core/ui-adapter/adapters.js +27 -0
- package/dist/core/ui-adapter/adapters.js.map +1 -0
- package/dist/core/ui-adapter/index.cjs +21 -0
- package/dist/core/ui-adapter/index.cjs.map +1 -0
- package/dist/core/ui-adapter/index.d.ts +2 -0
- package/dist/core/ui-adapter/index.js +3 -0
- package/dist/core/ui-adapter/index.js.map +1 -0
- package/dist/core/ui-adapter/types.cjs +6 -0
- package/dist/core/ui-adapter/types.cjs.map +1 -0
- package/dist/core/ui-adapter/types.d.ts +24 -0
- package/dist/core/ui-adapter/types.js +3 -0
- package/dist/core/ui-adapter/types.js.map +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.umd.d.ts +0 -1
- package/dist/index.umd.js +33004 -38475
- package/dist/index.umd.js.map +1 -1
- package/dist/library/index.d.ts +0 -1
- package/dist/library/locale/index.d.ts +0 -1
- package/dist/library/locale/langs/en-us/index.d.ts +0 -1
- package/dist/library/locale/langs/zh-cn/index.d.ts +0 -1
- package/dist/library/locale/types.d.ts +0 -1
- package/dist/library/storage/cache.d.ts +0 -1
- package/dist/library/storage/encryption.d.ts +0 -1
- package/dist/library/storage/index.d.ts +0 -1
- package/dist/request/adapter/RequestAdapter.d.ts +0 -1
- package/dist/request/adapter/axiosAdapter.d.ts +0 -1
- package/dist/request/adapter/fetchAdapter.d.ts +0 -1
- package/dist/request/adapter/index.d.ts +0 -1
- package/dist/request/adapter/kyAdapter.d.ts +0 -1
- package/dist/request/adapter/undiciAdapter.d.ts +0 -1
- package/dist/request/core/RequestClient.d.ts +0 -1
- package/dist/request/core/index.d.ts +0 -1
- package/dist/request/index.d.ts +0 -1
- package/dist/request/plugin/RequestPlugin.d.ts +0 -1
- package/dist/request/plugin/cache.d.ts +0 -1
- package/dist/request/plugin/csrfPlugin.d.ts +0 -1
- package/dist/request/plugin/index.d.ts +0 -1
- package/dist/request/plugin/monitoring.d.ts +0 -1
- package/dist/request/plugin/queue.d.ts +0 -1
- package/dist/request/plugin/retry.d.ts +0 -1
- package/dist/request/plugin/validation.d.ts +0 -1
- package/dist/request/runtime/RequestContext.d.ts +0 -1
- package/dist/request/runtime/index.d.ts +0 -1
- package/dist/request/types.d.ts +0 -1
- package/dist/request/utils/RequestQueueManager.d.ts +0 -1
- package/dist/request/utils/dependencyCheck.d.ts +0 -1
- package/dist/request/utils/index.d.ts +0 -1
- package/dist/request.umd.js +5392 -0
- package/dist/request.umd.js.map +1 -0
- package/dist/state/StateManager.d.ts +0 -1
- package/dist/state/adapters/AdapterFactory.d.ts +0 -1
- package/dist/state/adapters/DefaultAdapter.d.ts +0 -1
- package/dist/state/adapters/ReduxAdapter.d.ts +0 -1
- package/dist/state/adapters/ZustandAdapter.d.ts +0 -1
- package/dist/state/adapters/index.d.ts +0 -1
- package/dist/state/adapters/types.d.ts +0 -1
- package/dist/state/core/DerivedStateInstance.d.ts +0 -1
- package/dist/state/core/StateInstance.d.ts +0 -1
- package/dist/state/core/StateRegistry.d.ts +0 -1
- package/dist/state/core/StateScope.d.ts +0 -1
- package/dist/state/core/index.d.ts +0 -1
- package/dist/state/index.d.ts +0 -1
- package/dist/state/types.d.ts +0 -1
- package/dist/state.umd.js +1414 -0
- package/dist/state.umd.js.map +1 -0
- package/dist/types.d.ts +0 -1
- package/dist/utils/analytics.d.ts +0 -1
- package/dist/utils/configSecurity.d.ts +0 -1
- package/dist/utils/csrf.d.ts +0 -1
- package/dist/utils/errors/ErrorCodes.d.ts +0 -1
- package/dist/utils/errors.cjs +44 -1
- package/dist/utils/errors.cjs.map +1 -1
- package/dist/utils/errors.d.ts +5 -1
- package/dist/utils/errors.js +44 -1
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/logger.d.ts +0 -1
- package/dist/utils/logger.types.d.ts +0 -1
- package/dist/utils/monitoring.d.ts +0 -1
- package/dist/utils/performance.d.ts +0 -1
- package/dist/utils/resourceLoader.d.ts +0 -1
- package/dist/utils/runtimeSecurity.d.ts +0 -1
- package/dist/utils/security.d.ts +0 -1
- package/dist/utils/traceId.d.ts +0 -1
- package/dist/utils/validation.d.ts +0 -1
- package/package.json +57 -8
- package/dist/components/index.d.ts.map +0 -1
- package/dist/core/Test.d.ts.map +0 -1
- package/dist/core/app/AppContext.d.ts.map +0 -1
- package/dist/core/app/AppContext.types.d.ts.map +0 -1
- package/dist/core/app/BasicLayout.d.ts.map +0 -1
- package/dist/core/app/DefaultApp.d.ts.map +0 -1
- package/dist/core/app/index.d.ts.map +0 -1
- package/dist/core/config/AppConfig.d.ts.map +0 -1
- package/dist/core/config/ConfigLoader.d.ts.map +0 -1
- package/dist/core/config/ConfigValidator.d.ts.map +0 -1
- package/dist/core/config/index.d.ts.map +0 -1
- package/dist/core/dev/DevTools.d.ts.map +0 -1
- package/dist/core/error/ErrorBoundary.d.ts.map +0 -1
- package/dist/core/error/index.d.ts.map +0 -1
- package/dist/core/event/AppEventBus.d.ts.map +0 -1
- package/dist/core/event/frameworkEvents.d.ts.map +0 -1
- package/dist/core/event/hooks.d.ts.map +0 -1
- package/dist/core/event/index.d.ts.map +0 -1
- package/dist/core/event/types.d.ts.map +0 -1
- package/dist/core/event/useEventBus.d.ts.map +0 -1
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/initialization/InitializationErrorThrower.d.ts.map +0 -1
- package/dist/core/initialization/index.d.ts.map +0 -1
- package/dist/core/initialization/initialization.d.ts.map +0 -1
- package/dist/core/initialization/initializationErrorState.d.ts.map +0 -1
- package/dist/core/middleware.d.ts.map +0 -1
- package/dist/core/plugin/PluginEventBus.d.ts.map +0 -1
- package/dist/core/plugin/PluginSandbox.d.ts.map +0 -1
- package/dist/core/plugin.d.ts.map +0 -1
- package/dist/core/router/RouterManager.d.ts.map +0 -1
- package/dist/core/router/adapter/AdapterManager.d.ts.map +0 -1
- package/dist/core/router/adapter/index.d.ts.map +0 -1
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts.map +0 -1
- package/dist/core/router/adapter/react-router/index.d.ts.map +0 -1
- package/dist/core/router/adapter/types.d.ts.map +0 -1
- package/dist/core/router/dev/RouterDevTools.d.ts.map +0 -1
- package/dist/core/router/dev/index.d.ts.map +0 -1
- package/dist/core/router/dynamic/DynamicRouteManager.d.ts.map +0 -1
- package/dist/core/router/dynamic/index.d.ts.map +0 -1
- package/dist/core/router/errors/RouterError.d.ts.map +0 -1
- package/dist/core/router/errors/index.d.ts.map +0 -1
- package/dist/core/router/index.d.ts.map +0 -1
- package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts.map +0 -1
- package/dist/core/router/lifecycle/index.d.ts.map +0 -1
- package/dist/core/router/middleware/RouterMiddlewareManager.d.ts.map +0 -1
- package/dist/core/router/middleware/auth.d.ts.map +0 -1
- package/dist/core/router/middleware/index.d.ts.map +0 -1
- package/dist/core/router/middleware/types.d.ts.map +0 -1
- package/dist/core/router/monitoring/RouterMonitoring.d.ts.map +0 -1
- package/dist/core/router/monitoring/index.d.ts.map +0 -1
- package/dist/core/router/navigation/RouterNavigation.d.ts.map +0 -1
- package/dist/core/router/navigation/index.d.ts.map +0 -1
- package/dist/core/router/performance/RouteCache.d.ts.map +0 -1
- package/dist/core/router/performance/RoutePreloader.d.ts.map +0 -1
- package/dist/core/router/performance/index.d.ts.map +0 -1
- package/dist/core/router/plugin/RouterPluginManager.d.ts.map +0 -1
- package/dist/core/router/plugin/index.d.ts.map +0 -1
- package/dist/core/router/plugin/types.d.ts.map +0 -1
- package/dist/core/router/types.d.ts.map +0 -1
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts.map +0 -1
- package/dist/core/router/utils/adapters/react-router/transform.d.ts.map +0 -1
- package/dist/core/router/utils/transform.d.ts.map +0 -1
- package/dist/core/router/validation/RouterConfigValidator.d.ts.map +0 -1
- package/dist/core/router/validation/index.d.ts.map +0 -1
- package/dist/core/router/validation/schema.d.ts.map +0 -1
- package/dist/core/router/version/RouteVersionManager.d.ts.map +0 -1
- package/dist/core/router/version/index.d.ts.map +0 -1
- package/dist/core/splash/SplashScreen.d.ts.map +0 -1
- package/dist/core/splash/index.d.ts.map +0 -1
- package/dist/core/splash/splashScreenUtils.d.ts.map +0 -1
- package/dist/core/startup/AppInstance.d.ts.map +0 -1
- package/dist/core/startup/environment.d.ts.map +0 -1
- package/dist/core/startup/index.d.ts.map +0 -1
- package/dist/core/startup/initializeServices.d.ts.map +0 -1
- package/dist/core/startup/performanceTracker.d.ts.map +0 -1
- package/dist/core/startup/renderApp.d.ts.map +0 -1
- package/dist/core/startup/startApp.d.ts.map +0 -1
- package/dist/core/types.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.umd.d.ts.map +0 -1
- package/dist/library/index.d.ts.map +0 -1
- package/dist/library/locale/index.d.ts.map +0 -1
- package/dist/library/locale/langs/en-us/index.d.ts.map +0 -1
- package/dist/library/locale/langs/zh-cn/index.d.ts.map +0 -1
- package/dist/library/locale/types.d.ts.map +0 -1
- package/dist/library/storage/cache.d.ts.map +0 -1
- package/dist/library/storage/encryption.d.ts.map +0 -1
- package/dist/library/storage/index.d.ts.map +0 -1
- package/dist/request/adapter/RequestAdapter.d.ts.map +0 -1
- package/dist/request/adapter/axiosAdapter.d.ts.map +0 -1
- package/dist/request/adapter/fetchAdapter.d.ts.map +0 -1
- package/dist/request/adapter/index.d.ts.map +0 -1
- package/dist/request/adapter/kyAdapter.d.ts.map +0 -1
- package/dist/request/adapter/undiciAdapter.d.ts.map +0 -1
- package/dist/request/core/RequestClient.d.ts.map +0 -1
- package/dist/request/core/index.d.ts.map +0 -1
- package/dist/request/index.d.ts.map +0 -1
- package/dist/request/plugin/RequestPlugin.d.ts.map +0 -1
- package/dist/request/plugin/cache.d.ts.map +0 -1
- package/dist/request/plugin/csrfPlugin.d.ts.map +0 -1
- package/dist/request/plugin/index.d.ts.map +0 -1
- package/dist/request/plugin/monitoring.d.ts.map +0 -1
- package/dist/request/plugin/queue.d.ts.map +0 -1
- package/dist/request/plugin/retry.d.ts.map +0 -1
- package/dist/request/plugin/validation.d.ts.map +0 -1
- package/dist/request/runtime/RequestContext.d.ts.map +0 -1
- package/dist/request/runtime/index.d.ts.map +0 -1
- package/dist/request/types.d.ts.map +0 -1
- package/dist/request/utils/RequestQueueManager.d.ts.map +0 -1
- package/dist/request/utils/dependencyCheck.d.ts.map +0 -1
- package/dist/request/utils/index.d.ts.map +0 -1
- package/dist/state/StateManager.d.ts.map +0 -1
- package/dist/state/adapters/AdapterFactory.d.ts.map +0 -1
- package/dist/state/adapters/DefaultAdapter.d.ts.map +0 -1
- package/dist/state/adapters/ReduxAdapter.d.ts.map +0 -1
- package/dist/state/adapters/ZustandAdapter.d.ts.map +0 -1
- package/dist/state/adapters/index.d.ts.map +0 -1
- package/dist/state/adapters/types.d.ts.map +0 -1
- package/dist/state/core/DerivedStateInstance.d.ts.map +0 -1
- package/dist/state/core/StateInstance.d.ts.map +0 -1
- package/dist/state/core/StateRegistry.d.ts.map +0 -1
- package/dist/state/core/StateScope.d.ts.map +0 -1
- package/dist/state/core/index.d.ts.map +0 -1
- package/dist/state/index.d.ts.map +0 -1
- package/dist/state/types.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/utils/analytics.d.ts.map +0 -1
- package/dist/utils/configSecurity.d.ts.map +0 -1
- package/dist/utils/csrf.d.ts.map +0 -1
- package/dist/utils/errors/ErrorCodes.d.ts.map +0 -1
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.types.d.ts.map +0 -1
- package/dist/utils/monitoring.d.ts.map +0 -1
- package/dist/utils/performance.d.ts.map +0 -1
- package/dist/utils/resourceLoader.d.ts.map +0 -1
- package/dist/utils/runtimeSecurity.d.ts.map +0 -1
- package/dist/utils/security.d.ts.map +0 -1
- package/dist/utils/traceId.d.ts.map +0 -1
- package/dist/utils/validation.d.ts.map +0 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* 提供开发模式下的调试工具
|
|
2
|
+
* 开发工具模块(无 UI 框架依赖)
|
|
4
3
|
*/ "use strict";
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
@@ -21,346 +20,201 @@ _export(exports, {
|
|
|
21
20
|
});
|
|
22
21
|
const _jsxruntime = require("react/jsx-runtime");
|
|
23
22
|
const _react = require("react");
|
|
24
|
-
const _antd = require("antd");
|
|
25
23
|
const _app = require("../app");
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
function toPrettyJson(value) {
|
|
25
|
+
try {
|
|
26
|
+
return JSON.stringify(value, null, 2);
|
|
27
|
+
} catch {
|
|
28
|
+
return String(value);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
28
31
|
function DevTools({ appInstance, visible, onClose }) {
|
|
29
32
|
const [performanceMetrics, setPerformanceMetrics] = (0, _react.useState)({});
|
|
30
|
-
const [activeTab, setActiveTab] = (0, _react.useState)('overview');
|
|
31
33
|
const stateManager = (0, _app.useStateManager)();
|
|
32
34
|
(0, _react.useEffect)(()=>{
|
|
33
35
|
if (!visible) {
|
|
34
36
|
return;
|
|
35
37
|
}
|
|
36
38
|
const tracker = appInstance.getPerformanceTracker();
|
|
37
|
-
if (tracker) {
|
|
38
|
-
|
|
39
|
-
setPerformanceMetrics({
|
|
40
|
-
'服务初始化': metrics.serviceInitDuration || 0,
|
|
41
|
-
'初始化': metrics.initializationDuration || 0,
|
|
42
|
-
'首次渲染': metrics.firstRenderDuration || 0,
|
|
43
|
-
'总启动时间': metrics.totalStartupDuration || 0,
|
|
44
|
-
'FCP': metrics.fcp || 0,
|
|
45
|
-
'LCP': metrics.lcp || 0,
|
|
46
|
-
'FID': metrics.fid || 0,
|
|
47
|
-
'CLS': metrics.cls || 0
|
|
48
|
-
});
|
|
39
|
+
if (!tracker) {
|
|
40
|
+
return;
|
|
49
41
|
}
|
|
42
|
+
const metrics = tracker.getMetrics();
|
|
43
|
+
setPerformanceMetrics({
|
|
44
|
+
serviceInitDuration: metrics.serviceInitDuration || 0,
|
|
45
|
+
initializationDuration: metrics.initializationDuration || 0,
|
|
46
|
+
firstRenderDuration: metrics.firstRenderDuration || 0,
|
|
47
|
+
totalStartupDuration: metrics.totalStartupDuration || 0,
|
|
48
|
+
fcp: metrics.fcp || 0,
|
|
49
|
+
lcp: metrics.lcp || 0,
|
|
50
|
+
fid: metrics.fid || 0,
|
|
51
|
+
cls: metrics.cls || 0
|
|
52
|
+
});
|
|
50
53
|
}, [
|
|
51
54
|
visible,
|
|
52
55
|
appInstance
|
|
53
56
|
]);
|
|
57
|
+
if (!visible) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
54
60
|
const options = appInstance.getOptions();
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// }
|
|
97
|
-
// }, [routerManager, isRouterEnabled]);
|
|
98
|
-
const tabItems = [
|
|
99
|
-
{
|
|
100
|
-
key: 'overview',
|
|
101
|
-
label: '概览',
|
|
102
|
-
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_antd.Space, {
|
|
103
|
-
direction: "vertical",
|
|
61
|
+
const allStates = stateManager?.getAllStates?.() || [];
|
|
62
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
63
|
+
style: {
|
|
64
|
+
position: 'fixed',
|
|
65
|
+
top: 0,
|
|
66
|
+
right: 0,
|
|
67
|
+
width: 'min(680px, 95vw)',
|
|
68
|
+
height: '100vh',
|
|
69
|
+
zIndex: 9999,
|
|
70
|
+
background: '#fff',
|
|
71
|
+
borderLeft: '1px solid #d9e2ec',
|
|
72
|
+
padding: 16,
|
|
73
|
+
overflowY: 'auto',
|
|
74
|
+
boxShadow: '-8px 0 20px rgba(0, 0, 0, 0.08)'
|
|
75
|
+
},
|
|
76
|
+
children: [
|
|
77
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
78
|
+
style: {
|
|
79
|
+
display: 'flex',
|
|
80
|
+
justifyContent: 'space-between',
|
|
81
|
+
alignItems: 'center'
|
|
82
|
+
},
|
|
83
|
+
children: [
|
|
84
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("h3", {
|
|
85
|
+
style: {
|
|
86
|
+
margin: 0
|
|
87
|
+
},
|
|
88
|
+
children: "DevTools"
|
|
89
|
+
}),
|
|
90
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("button", {
|
|
91
|
+
onClick: onClose,
|
|
92
|
+
style: {
|
|
93
|
+
border: 'none',
|
|
94
|
+
background: 'transparent',
|
|
95
|
+
cursor: 'pointer'
|
|
96
|
+
},
|
|
97
|
+
children: "关闭"
|
|
98
|
+
})
|
|
99
|
+
]
|
|
100
|
+
}),
|
|
101
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)("section", {
|
|
104
102
|
style: {
|
|
105
|
-
|
|
103
|
+
marginTop: 12
|
|
106
104
|
},
|
|
107
|
-
size: "large",
|
|
108
105
|
children: [
|
|
106
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("h4", {
|
|
107
|
+
children: "实例"
|
|
108
|
+
}),
|
|
109
109
|
/*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
110
110
|
children: [
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
children: "应用实例"
|
|
114
|
-
}),
|
|
115
|
-
/*#__PURE__*/ (0, _jsxruntime.jsxs)(_antd.Space, {
|
|
116
|
-
direction: "vertical",
|
|
117
|
-
size: "small",
|
|
118
|
-
children: [
|
|
119
|
-
/*#__PURE__*/ (0, _jsxruntime.jsxs)(Text, {
|
|
120
|
-
children: [
|
|
121
|
-
"实例ID: ",
|
|
122
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Tag, {
|
|
123
|
-
children: appInstance.id
|
|
124
|
-
})
|
|
125
|
-
]
|
|
126
|
-
}),
|
|
127
|
-
/*#__PURE__*/ (0, _jsxruntime.jsxs)(Text, {
|
|
128
|
-
children: [
|
|
129
|
-
"状态: ",
|
|
130
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Tag, {
|
|
131
|
-
color: appInstance.isInitialized() ? 'green' : 'orange',
|
|
132
|
-
children: appInstance.isInitialized() ? '已初始化' : '未初始化'
|
|
133
|
-
})
|
|
134
|
-
]
|
|
135
|
-
})
|
|
136
|
-
]
|
|
137
|
-
})
|
|
111
|
+
"id: ",
|
|
112
|
+
appInstance.id
|
|
138
113
|
]
|
|
139
114
|
}),
|
|
140
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Divider, {}),
|
|
141
115
|
/*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
142
116
|
children: [
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
children: "服务状态"
|
|
146
|
-
}),
|
|
147
|
-
/*#__PURE__*/ (0, _jsxruntime.jsxs)(_antd.Space, {
|
|
148
|
-
direction: "vertical",
|
|
149
|
-
size: "small",
|
|
150
|
-
children: [
|
|
151
|
-
/*#__PURE__*/ (0, _jsxruntime.jsxs)(Text, {
|
|
152
|
-
children: [
|
|
153
|
-
"监控服务: ",
|
|
154
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Tag, {
|
|
155
|
-
color: "green",
|
|
156
|
-
children: "已启用"
|
|
157
|
-
})
|
|
158
|
-
]
|
|
159
|
-
}),
|
|
160
|
-
/*#__PURE__*/ (0, _jsxruntime.jsxs)(Text, {
|
|
161
|
-
children: [
|
|
162
|
-
"性能监控: ",
|
|
163
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Tag, {
|
|
164
|
-
color: "green",
|
|
165
|
-
children: "已启用"
|
|
166
|
-
})
|
|
167
|
-
]
|
|
168
|
-
}),
|
|
169
|
-
/*#__PURE__*/ (0, _jsxruntime.jsxs)(Text, {
|
|
170
|
-
children: [
|
|
171
|
-
"状态管理器: ",
|
|
172
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Tag, {
|
|
173
|
-
color: "green",
|
|
174
|
-
children: "已启用"
|
|
175
|
-
})
|
|
176
|
-
]
|
|
177
|
-
})
|
|
178
|
-
]
|
|
179
|
-
})
|
|
117
|
+
"initialized: ",
|
|
118
|
+
String(appInstance.isInitialized())
|
|
180
119
|
]
|
|
181
120
|
})
|
|
182
121
|
]
|
|
183
|
-
})
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
122
|
+
}),
|
|
123
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)("section", {
|
|
124
|
+
style: {
|
|
125
|
+
marginTop: 12
|
|
126
|
+
},
|
|
189
127
|
children: [
|
|
190
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(
|
|
191
|
-
|
|
192
|
-
children: "性能指标"
|
|
128
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("h4", {
|
|
129
|
+
children: "性能"
|
|
193
130
|
}),
|
|
194
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(
|
|
195
|
-
direction: "vertical",
|
|
196
|
-
size: "small",
|
|
131
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("pre", {
|
|
197
132
|
style: {
|
|
198
|
-
|
|
133
|
+
background: '#f7fafc',
|
|
134
|
+
padding: 10,
|
|
135
|
+
borderRadius: 8
|
|
199
136
|
},
|
|
200
|
-
children:
|
|
201
|
-
style: {
|
|
202
|
-
display: 'flex',
|
|
203
|
-
justifyContent: 'space-between'
|
|
204
|
-
},
|
|
205
|
-
children: [
|
|
206
|
-
/*#__PURE__*/ (0, _jsxruntime.jsxs)(Text, {
|
|
207
|
-
children: [
|
|
208
|
-
key,
|
|
209
|
-
":"
|
|
210
|
-
]
|
|
211
|
-
}),
|
|
212
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(Text, {
|
|
213
|
-
strong: true,
|
|
214
|
-
children: value > 0 ? `${value.toFixed(2)}ms` : '-'
|
|
215
|
-
})
|
|
216
|
-
]
|
|
217
|
-
}, key))
|
|
218
|
-
})
|
|
219
|
-
]
|
|
220
|
-
})
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
key: 'state',
|
|
224
|
-
label: /*#__PURE__*/ (0, _jsxruntime.jsxs)("span", {
|
|
225
|
-
children: [
|
|
226
|
-
"状态管理",
|
|
227
|
-
stateManagerInfo && stateManagerInfo.stateCount > 0 && /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Badge, {
|
|
228
|
-
count: stateManagerInfo.stateCount,
|
|
229
|
-
style: {
|
|
230
|
-
marginLeft: 8
|
|
231
|
-
}
|
|
137
|
+
children: toPrettyJson(performanceMetrics)
|
|
232
138
|
})
|
|
233
139
|
]
|
|
234
140
|
}),
|
|
235
|
-
|
|
141
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)("section", {
|
|
142
|
+
style: {
|
|
143
|
+
marginTop: 12
|
|
144
|
+
},
|
|
236
145
|
children: [
|
|
237
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(
|
|
238
|
-
|
|
239
|
-
children: "状态管理器"
|
|
146
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("h4", {
|
|
147
|
+
children: "状态管理"
|
|
240
148
|
}),
|
|
241
|
-
/*#__PURE__*/ (0, _jsxruntime.jsxs)(
|
|
242
|
-
direction: "vertical",
|
|
243
|
-
size: "small",
|
|
244
|
-
style: {
|
|
245
|
-
width: '100%'
|
|
246
|
-
},
|
|
149
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
247
150
|
children: [
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
"状态总数: ",
|
|
251
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Tag, {
|
|
252
|
-
children: stateManagerInfo.stateCount
|
|
253
|
-
})
|
|
254
|
-
]
|
|
255
|
-
}),
|
|
256
|
-
stateManagerInfo.states.length > 0 && /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Collapse, {
|
|
257
|
-
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(Panel, {
|
|
258
|
-
header: "状态列表",
|
|
259
|
-
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Space, {
|
|
260
|
-
direction: "vertical",
|
|
261
|
-
size: "small",
|
|
262
|
-
style: {
|
|
263
|
-
width: '100%'
|
|
264
|
-
},
|
|
265
|
-
children: stateManagerInfo.states.map((state, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
266
|
-
style: {
|
|
267
|
-
fontSize: '12px'
|
|
268
|
-
},
|
|
269
|
-
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(Text, {
|
|
270
|
-
code: true,
|
|
271
|
-
children: state.id || `State ${index + 1}`
|
|
272
|
-
})
|
|
273
|
-
}, index))
|
|
274
|
-
})
|
|
275
|
-
}, "states")
|
|
276
|
-
})
|
|
151
|
+
"stateCount: ",
|
|
152
|
+
allStates.length
|
|
277
153
|
]
|
|
154
|
+
}),
|
|
155
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("pre", {
|
|
156
|
+
style: {
|
|
157
|
+
background: '#f7fafc',
|
|
158
|
+
padding: 10,
|
|
159
|
+
borderRadius: 8
|
|
160
|
+
},
|
|
161
|
+
children: toPrettyJson(allStates.slice(0, 10))
|
|
278
162
|
})
|
|
279
163
|
]
|
|
280
|
-
})
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
{
|
|
286
|
-
key: 'config',
|
|
287
|
-
label: '配置',
|
|
288
|
-
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
164
|
+
}),
|
|
165
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)("section", {
|
|
166
|
+
style: {
|
|
167
|
+
marginTop: 12
|
|
168
|
+
},
|
|
289
169
|
children: [
|
|
290
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(
|
|
291
|
-
|
|
292
|
-
children: "配置信息"
|
|
170
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("h4", {
|
|
171
|
+
children: "配置"
|
|
293
172
|
}),
|
|
294
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
})
|
|
173
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("pre", {
|
|
174
|
+
style: {
|
|
175
|
+
background: '#f7fafc',
|
|
176
|
+
padding: 10,
|
|
177
|
+
borderRadius: 8,
|
|
178
|
+
whiteSpace: 'pre-wrap'
|
|
179
|
+
},
|
|
180
|
+
children: toPrettyJson(options)
|
|
303
181
|
})
|
|
304
182
|
]
|
|
305
183
|
})
|
|
306
|
-
|
|
307
|
-
];
|
|
308
|
-
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Drawer, {
|
|
309
|
-
title: /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Space, {
|
|
310
|
-
children: /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
|
|
311
|
-
children: "🐛 开发工具"
|
|
312
|
-
})
|
|
313
|
-
}),
|
|
314
|
-
placement: "right",
|
|
315
|
-
width: 500,
|
|
316
|
-
open: visible,
|
|
317
|
-
onClose: onClose,
|
|
318
|
-
extra: /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Button, {
|
|
319
|
-
type: "text",
|
|
320
|
-
onClick: onClose,
|
|
321
|
-
children: "✕"
|
|
322
|
-
}),
|
|
323
|
-
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_antd.Tabs, {
|
|
324
|
-
activeKey: activeTab,
|
|
325
|
-
onChange: setActiveTab,
|
|
326
|
-
items: tabItems
|
|
327
|
-
})
|
|
184
|
+
]
|
|
328
185
|
});
|
|
329
186
|
}
|
|
330
|
-
function
|
|
331
|
-
const
|
|
332
|
-
const positionStyle = {
|
|
187
|
+
function resolvePosition(position) {
|
|
188
|
+
const style = {
|
|
333
189
|
position: 'fixed',
|
|
334
|
-
zIndex:
|
|
335
|
-
...position === 'bottom-right' && {
|
|
336
|
-
bottom: 20,
|
|
337
|
-
right: 20
|
|
338
|
-
},
|
|
339
|
-
...position === 'bottom-left' && {
|
|
340
|
-
bottom: 20,
|
|
341
|
-
left: 20
|
|
342
|
-
},
|
|
343
|
-
...position === 'top-right' && {
|
|
344
|
-
top: 20,
|
|
345
|
-
right: 20
|
|
346
|
-
},
|
|
347
|
-
...position === 'top-left' && {
|
|
348
|
-
top: 20,
|
|
349
|
-
left: 20
|
|
350
|
-
}
|
|
190
|
+
zIndex: 9998
|
|
351
191
|
};
|
|
352
|
-
|
|
192
|
+
const pos = position || 'bottom-right';
|
|
193
|
+
if (pos.includes('bottom')) style.bottom = 16;
|
|
194
|
+
if (pos.includes('top')) style.top = 16;
|
|
195
|
+
if (pos.includes('right')) style.right = 16;
|
|
196
|
+
if (pos.includes('left')) style.left = 16;
|
|
197
|
+
return style;
|
|
198
|
+
}
|
|
199
|
+
function DevToolsTrigger({ appInstance, position = 'bottom-right' }) {
|
|
200
|
+
const [visible, setVisible] = (0, _react.useState)(false);
|
|
353
201
|
if (process.env.NODE_ENV !== 'development') {
|
|
354
202
|
return null;
|
|
355
203
|
}
|
|
356
204
|
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
|
357
205
|
children: [
|
|
358
|
-
/*#__PURE__*/ (0, _jsxruntime.jsx)(
|
|
359
|
-
type: "primary",
|
|
360
|
-
shape: "circle",
|
|
361
|
-
style: positionStyle,
|
|
206
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("button", {
|
|
362
207
|
onClick: ()=>setVisible(true),
|
|
363
|
-
|
|
208
|
+
style: {
|
|
209
|
+
...resolvePosition(position),
|
|
210
|
+
border: 'none',
|
|
211
|
+
background: '#2f80ed',
|
|
212
|
+
color: '#fff',
|
|
213
|
+
borderRadius: 999,
|
|
214
|
+
padding: '8px 14px',
|
|
215
|
+
cursor: 'pointer'
|
|
216
|
+
},
|
|
217
|
+
children: "DevTools"
|
|
364
218
|
}),
|
|
365
219
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(DevTools, {
|
|
366
220
|
appInstance: appInstance,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/dev/DevTools.tsx"],"sourcesContent":["/**\n * 开发工具模块\n * 提供开发模式下的调试工具\n */\n\nimport { useState, useEffect, useMemo } from 'react';\nimport type { ReactNode } from 'react';\nimport { Button, Drawer, Space, Typography, Divider, Tag, Tabs, Collapse, Badge } from 'antd';\nimport type { AppInstance } from '../startup/AppInstance';\n// import { getRouterManager } from '../router/RouterManager';\nimport { useStateManager } from '../app';\n\nconst { Title, Text, Paragraph } = Typography;\nconst { Panel } = Collapse;\n\n/**\n * 开发工具组件属性\n */\nexport interface DevToolsProps {\n /**\n * 应用实例\n */\n appInstance: AppInstance;\n\n /**\n * 是否显示\n */\n visible?: boolean;\n\n /**\n * 关闭回调\n */\n onClose?: () => void;\n}\n\n/**\n * 开发工具组件\n * \n * 优化:增强功能,添加状态管理器调试面板、路由调试面板等\n */\nexport function DevTools({ appInstance, visible, onClose }: DevToolsProps): ReactNode {\n const [performanceMetrics, setPerformanceMetrics] = useState<Record<string, number>>({});\n const [activeTab, setActiveTab] = useState<string>('overview');\n const stateManager = useStateManager();\n\n useEffect(() => {\n if (!visible) {\n return;\n }\n\n const tracker = appInstance.getPerformanceTracker();\n if (tracker) {\n const metrics = tracker.getMetrics();\n setPerformanceMetrics({\n '服务初始化': metrics.serviceInitDuration || 0,\n '初始化': metrics.initializationDuration || 0,\n '首次渲染': metrics.firstRenderDuration || 0,\n '总启动时间': metrics.totalStartupDuration || 0,\n 'FCP': metrics.fcp || 0,\n 'LCP': metrics.lcp || 0,\n 'FID': metrics.fid || 0,\n 'CLS': metrics.cls || 0,\n });\n }\n }, [visible, appInstance]);\n\n const options = appInstance.getOptions();\n // const routerManager = getRouterManager();\n // const isRouterEnabled = routerManager.isRouterEnabled();\n\n // 获取状态管理器信息\n const stateManagerInfo = useMemo(() => {\n if (!stateManager) {\n return null;\n }\n\n try {\n // 尝试获取所有状态(如果支持)\n const allStates = (stateManager as any).getAllStates?.() || [];\n return {\n stateCount: allStates.length,\n states: allStates.slice(0, 10), // 只显示前10个\n };\n } catch {\n return {\n stateCount: 0,\n states: [],\n };\n }\n }, [stateManager]);\n\n // 获取路由信息\n // const routerInfo = useMemo(() => {\n // if (!isRouterEnabled) {\n // return null;\n // }\n\n // try {\n // const routes = (routerManager as any).getRoutes?.() || [];\n // return {\n // routeCount: routes.length,\n // mode: (routerManager as any).getRouterMode?.() || 'unknown',\n // routes: routes.slice(0, 10), // 只显示前10个\n // };\n // } catch {\n // return {\n // routeCount: 0,\n // mode: 'unknown',\n // routes: [],\n // };\n // }\n // }, [routerManager, isRouterEnabled]);\n\n const tabItems = [\n {\n key: 'overview',\n label: '概览',\n children: (\n <Space direction=\"vertical\" style={{ width: '100%' }} size=\"large\">\n <div>\n <Title level={5}>应用实例</Title>\n <Space direction=\"vertical\" size=\"small\">\n <Text>实例ID: <Tag>{appInstance.id}</Tag></Text>\n <Text>状态: <Tag color={appInstance.isInitialized() ? 'green' : 'orange'}>\n {appInstance.isInitialized() ? '已初始化' : '未初始化'}\n </Tag></Text>\n </Space>\n </div>\n\n <Divider />\n\n <div>\n <Title level={5}>服务状态</Title>\n <Space direction=\"vertical\" size=\"small\">\n <Text>监控服务: <Tag color=\"green\">已启用</Tag></Text>\n <Text>性能监控: <Tag color=\"green\">已启用</Tag></Text>\n <Text>状态管理器: <Tag color=\"green\">已启用</Tag></Text>\n {/* <Text>路由系统: <Tag color={isRouterEnabled ? 'green' : 'gray'}>\n {isRouterEnabled ? '已启用' : '未启用'}\n </Tag></Text> */}\n </Space>\n </div>\n </Space>\n ),\n },\n {\n key: 'performance',\n label: '性能',\n children: (\n <div>\n <Title level={5}>性能指标</Title>\n <Space direction=\"vertical\" size=\"small\" style={{ width: '100%' }}>\n {Object.entries(performanceMetrics).map(([key, value]) => (\n <div key={key} style={{ display: 'flex', justifyContent: 'space-between' }}>\n <Text>{key}:</Text>\n <Text strong>{value > 0 ? `${value.toFixed(2)}ms` : '-'}</Text>\n </div>\n ))}\n </Space>\n </div>\n ),\n },\n {\n key: 'state',\n label: (\n <span>\n 状态管理\n {stateManagerInfo && stateManagerInfo.stateCount > 0 && (\n <Badge count={stateManagerInfo.stateCount} style={{ marginLeft: 8 }} />\n )}\n </span>\n ),\n children: stateManagerInfo ? (\n <div>\n <Title level={5}>状态管理器</Title>\n <Space direction=\"vertical\" size=\"small\" style={{ width: '100%' }}>\n <Text>状态总数: <Tag>{stateManagerInfo.stateCount}</Tag></Text>\n {stateManagerInfo.states.length > 0 && (\n <Collapse>\n <Panel header=\"状态列表\" key=\"states\">\n <Space direction=\"vertical\" size=\"small\" style={{ width: '100%' }}>\n {stateManagerInfo.states.map((state: any, index: number) => (\n <div key={index} style={{ fontSize: '12px' }}>\n <Text code>\n {state.id || `State ${index + 1}`}\n </Text>\n </div>\n ))}\n </Space>\n </Panel>\n </Collapse>\n )}\n </Space>\n </div>\n ) : (\n <Text type=\"secondary\">状态管理器未初始化</Text>\n ),\n },\n \n {\n key: 'config',\n label: '配置',\n children: (\n <div>\n <Title level={5}>配置信息</Title>\n <Paragraph>\n <Text code style={{ fontSize: '12px', whiteSpace: 'pre-wrap' }}>\n {JSON.stringify(options, null, 2)}\n </Text>\n </Paragraph>\n </div>\n ),\n },\n ];\n\n return (\n <Drawer\n title={\n <Space>\n <span>🐛 开发工具</span>\n </Space>\n }\n placement=\"right\"\n width={500}\n open={visible}\n onClose={onClose}\n extra={\n <Button\n type=\"text\"\n onClick={onClose}\n >\n ✕\n </Button>\n }\n >\n <Tabs\n activeKey={activeTab}\n onChange={setActiveTab}\n items={tabItems}\n />\n </Drawer>\n );\n}\n\n/**\n * 开发工具触发器组件\n */\nexport interface DevToolsTriggerProps {\n /**\n * 应用实例\n */\n appInstance: AppInstance;\n\n /**\n * 触发按钮位置\n */\n position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\n}\n\n/**\n * 开发工具触发器\n */\nexport function DevToolsTrigger({ appInstance, position = 'bottom-right' }: DevToolsTriggerProps): ReactNode {\n const [visible, setVisible] = useState(false);\n\n const positionStyle: React.CSSProperties = {\n position: 'fixed',\n zIndex: 9999,\n ...(position === 'bottom-right' && { bottom: 20, right: 20 }),\n ...(position === 'bottom-left' && { bottom: 20, left: 20 }),\n ...(position === 'top-right' && { top: 20, right: 20 }),\n ...(position === 'top-left' && { top: 20, left: 20 }),\n };\n\n // 只在开发环境显示\n if (process.env.NODE_ENV !== 'development') {\n return null;\n }\n\n return (\n <>\n <Button\n type=\"primary\"\n shape=\"circle\"\n style={positionStyle}\n onClick={() => setVisible(true)}\n >\n 🐛\n </Button>\n <DevTools\n appInstance={appInstance}\n visible={visible}\n onClose={() => setVisible(false)}\n />\n </>\n );\n}\n"],"names":["DevTools","DevToolsTrigger","Title","Text","Paragraph","Typography","Panel","Collapse","appInstance","visible","onClose","performanceMetrics","setPerformanceMetrics","useState","activeTab","setActiveTab","stateManager","useStateManager","useEffect","tracker","getPerformanceTracker","metrics","getMetrics","serviceInitDuration","initializationDuration","firstRenderDuration","totalStartupDuration","fcp","lcp","fid","cls","options","getOptions","stateManagerInfo","useMemo","allStates","getAllStates","stateCount","length","states","slice","tabItems","key","label","children","Space","direction","style","width","size","div","level","Tag","id","color","isInitialized","Divider","Object","entries","map","value","display","justifyContent","strong","toFixed","span","Badge","count","marginLeft","header","state","index","fontSize","code","type","whiteSpace","JSON","stringify","Drawer","title","placement","open","extra","Button","onClick","Tabs","activeKey","onChange","items","position","setVisible","positionStyle","zIndex","bottom","right","left","top","process","env","NODE_ENV","shape"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/core/dev/DevTools.tsx"],"sourcesContent":["/**\n * 开发工具模块(无 UI 框架依赖)\n */\n\nimport { useState, useEffect } from 'react';\nimport type { ReactNode } from 'react';\nimport type { AppInstance } from '../startup/AppInstance';\nimport { useStateManager } from '../app';\n\nexport interface DevToolsProps {\n appInstance: AppInstance;\n visible?: boolean;\n onClose?: () => void;\n}\n\nfunction toPrettyJson(value: unknown): string {\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n}\n\nexport function DevTools({ appInstance, visible, onClose }: DevToolsProps): ReactNode {\n const [performanceMetrics, setPerformanceMetrics] = useState<Record<string, number>>({});\n const stateManager = useStateManager();\n\n useEffect(() => {\n if (!visible) {\n return;\n }\n const tracker = appInstance.getPerformanceTracker();\n if (!tracker) {\n return;\n }\n const metrics = tracker.getMetrics();\n setPerformanceMetrics({\n serviceInitDuration: metrics.serviceInitDuration || 0,\n initializationDuration: metrics.initializationDuration || 0,\n firstRenderDuration: metrics.firstRenderDuration || 0,\n totalStartupDuration: metrics.totalStartupDuration || 0,\n fcp: metrics.fcp || 0,\n lcp: metrics.lcp || 0,\n fid: metrics.fid || 0,\n cls: metrics.cls || 0,\n });\n }, [visible, appInstance]);\n\n if (!visible) {\n return null;\n }\n\n const options = appInstance.getOptions();\n const allStates = (stateManager as any)?.getAllStates?.() || [];\n\n return (\n <div\n style={{\n position: 'fixed',\n top: 0,\n right: 0,\n width: 'min(680px, 95vw)',\n height: '100vh',\n zIndex: 9999,\n background: '#fff',\n borderLeft: '1px solid #d9e2ec',\n padding: 16,\n overflowY: 'auto',\n boxShadow: '-8px 0 20px rgba(0, 0, 0, 0.08)',\n }}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <h3 style={{ margin: 0 }}>DevTools</h3>\n <button onClick={onClose} style={{ border: 'none', background: 'transparent', cursor: 'pointer' }}>\n 关闭\n </button>\n </div>\n\n <section style={{ marginTop: 12 }}>\n <h4>实例</h4>\n <div>id: {appInstance.id}</div>\n <div>initialized: {String(appInstance.isInitialized())}</div>\n </section>\n\n <section style={{ marginTop: 12 }}>\n <h4>性能</h4>\n <pre style={{ background: '#f7fafc', padding: 10, borderRadius: 8 }}>{toPrettyJson(performanceMetrics)}</pre>\n </section>\n\n <section style={{ marginTop: 12 }}>\n <h4>状态管理</h4>\n <div>stateCount: {allStates.length}</div>\n <pre style={{ background: '#f7fafc', padding: 10, borderRadius: 8 }}>{toPrettyJson(allStates.slice(0, 10))}</pre>\n </section>\n\n <section style={{ marginTop: 12 }}>\n <h4>配置</h4>\n <pre style={{ background: '#f7fafc', padding: 10, borderRadius: 8, whiteSpace: 'pre-wrap' }}>{toPrettyJson(options)}</pre>\n </section>\n </div>\n );\n}\n\nexport interface DevToolsTriggerProps {\n appInstance: AppInstance;\n position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\n}\n\nfunction resolvePosition(position: DevToolsTriggerProps['position']): React.CSSProperties {\n const style: React.CSSProperties = { position: 'fixed', zIndex: 9998 };\n const pos = position || 'bottom-right';\n\n if (pos.includes('bottom')) style.bottom = 16;\n if (pos.includes('top')) style.top = 16;\n if (pos.includes('right')) style.right = 16;\n if (pos.includes('left')) style.left = 16;\n\n return style;\n}\n\nexport function DevToolsTrigger({ appInstance, position = 'bottom-right' }: DevToolsTriggerProps): ReactNode {\n const [visible, setVisible] = useState(false);\n\n if (process.env.NODE_ENV !== 'development') {\n return null;\n }\n\n return (\n <>\n <button\n onClick={() => setVisible(true)}\n style={{\n ...resolvePosition(position),\n border: 'none',\n background: '#2f80ed',\n color: '#fff',\n borderRadius: 999,\n padding: '8px 14px',\n cursor: 'pointer',\n }}\n >\n DevTools\n </button>\n <DevTools appInstance={appInstance} visible={visible} onClose={() => setVisible(false)} />\n </>\n );\n}\n"],"names":["DevTools","DevToolsTrigger","toPrettyJson","value","JSON","stringify","String","appInstance","visible","onClose","performanceMetrics","setPerformanceMetrics","useState","stateManager","useStateManager","useEffect","tracker","getPerformanceTracker","metrics","getMetrics","serviceInitDuration","initializationDuration","firstRenderDuration","totalStartupDuration","fcp","lcp","fid","cls","options","getOptions","allStates","getAllStates","div","style","position","top","right","width","height","zIndex","background","borderLeft","padding","overflowY","boxShadow","display","justifyContent","alignItems","h3","margin","button","onClick","border","cursor","section","marginTop","h4","id","isInitialized","pre","borderRadius","length","slice","whiteSpace","resolvePosition","pos","includes","bottom","left","setVisible","process","env","NODE_ENV","color"],"mappings":"AAAA;;CAEC;;;;;;;;;;;QAqBeA;eAAAA;;QAiGAC;eAAAA;;;;uBApHoB;qBAGJ;AAQhC,SAASC,aAAaC,KAAc;IAClC,IAAI;QACF,OAAOC,KAAKC,SAAS,CAACF,OAAO,MAAM;IACrC,EAAE,OAAM;QACN,OAAOG,OAAOH;IAChB;AACF;AAEO,SAASH,SAAS,EAAEO,WAAW,EAAEC,OAAO,EAAEC,OAAO,EAAiB;IACvE,MAAM,CAACC,oBAAoBC,sBAAsB,GAAGC,IAAAA,eAAQ,EAAyB,CAAC;IACtF,MAAMC,eAAeC,IAAAA,oBAAe;IAEpCC,IAAAA,gBAAS,EAAC;QACR,IAAI,CAACP,SAAS;YACZ;QACF;QACA,MAAMQ,UAAUT,YAAYU,qBAAqB;QACjD,IAAI,CAACD,SAAS;YACZ;QACF;QACA,MAAME,UAAUF,QAAQG,UAAU;QAClCR,sBAAsB;YACpBS,qBAAqBF,QAAQE,mBAAmB,IAAI;YACpDC,wBAAwBH,QAAQG,sBAAsB,IAAI;YAC1DC,qBAAqBJ,QAAQI,mBAAmB,IAAI;YACpDC,sBAAsBL,QAAQK,oBAAoB,IAAI;YACtDC,KAAKN,QAAQM,GAAG,IAAI;YACpBC,KAAKP,QAAQO,GAAG,IAAI;YACpBC,KAAKR,QAAQQ,GAAG,IAAI;YACpBC,KAAKT,QAAQS,GAAG,IAAI;QACtB;IACF,GAAG;QAACnB;QAASD;KAAY;IAEzB,IAAI,CAACC,SAAS;QACZ,OAAO;IACT;IAEA,MAAMoB,UAAUrB,YAAYsB,UAAU;IACtC,MAAMC,YAAY,AAACjB,cAAsBkB,oBAAoB,EAAE;IAE/D,qBACE,sBAACC;QACCC,OAAO;YACLC,UAAU;YACVC,KAAK;YACLC,OAAO;YACPC,OAAO;YACPC,QAAQ;YACRC,QAAQ;YACRC,YAAY;YACZC,YAAY;YACZC,SAAS;YACTC,WAAW;YACXC,WAAW;QACb;;0BAEA,sBAACZ;gBAAIC,OAAO;oBAAEY,SAAS;oBAAQC,gBAAgB;oBAAiBC,YAAY;gBAAS;;kCACnF,qBAACC;wBAAGf,OAAO;4BAAEgB,QAAQ;wBAAE;kCAAG;;kCAC1B,qBAACC;wBAAOC,SAAS1C;wBAASwB,OAAO;4BAAEmB,QAAQ;4BAAQZ,YAAY;4BAAea,QAAQ;wBAAU;kCAAG;;;;0BAKrG,sBAACC;gBAAQrB,OAAO;oBAAEsB,WAAW;gBAAG;;kCAC9B,qBAACC;kCAAG;;kCACJ,sBAACxB;;4BAAI;4BAAKzB,YAAYkD,EAAE;;;kCACxB,sBAACzB;;4BAAI;4BAAc1B,OAAOC,YAAYmD,aAAa;;;;;0BAGrD,sBAACJ;gBAAQrB,OAAO;oBAAEsB,WAAW;gBAAG;;kCAC9B,qBAACC;kCAAG;;kCACJ,qBAACG;wBAAI1B,OAAO;4BAAEO,YAAY;4BAAWE,SAAS;4BAAIkB,cAAc;wBAAE;kCAAI1D,aAAaQ;;;;0BAGrF,sBAAC4C;gBAAQrB,OAAO;oBAAEsB,WAAW;gBAAG;;kCAC9B,qBAACC;kCAAG;;kCACJ,sBAACxB;;4BAAI;4BAAaF,UAAU+B,MAAM;;;kCAClC,qBAACF;wBAAI1B,OAAO;4BAAEO,YAAY;4BAAWE,SAAS;4BAAIkB,cAAc;wBAAE;kCAAI1D,aAAa4B,UAAUgC,KAAK,CAAC,GAAG;;;;0BAGxG,sBAACR;gBAAQrB,OAAO;oBAAEsB,WAAW;gBAAG;;kCAC9B,qBAACC;kCAAG;;kCACJ,qBAACG;wBAAI1B,OAAO;4BAAEO,YAAY;4BAAWE,SAAS;4BAAIkB,cAAc;4BAAGG,YAAY;wBAAW;kCAAI7D,aAAa0B;;;;;;AAInH;AAOA,SAASoC,gBAAgB9B,QAA0C;IACjE,MAAMD,QAA6B;QAAEC,UAAU;QAASK,QAAQ;IAAK;IACrE,MAAM0B,MAAM/B,YAAY;IAExB,IAAI+B,IAAIC,QAAQ,CAAC,WAAWjC,MAAMkC,MAAM,GAAG;IAC3C,IAAIF,IAAIC,QAAQ,CAAC,QAAQjC,MAAME,GAAG,GAAG;IACrC,IAAI8B,IAAIC,QAAQ,CAAC,UAAUjC,MAAMG,KAAK,GAAG;IACzC,IAAI6B,IAAIC,QAAQ,CAAC,SAASjC,MAAMmC,IAAI,GAAG;IAEvC,OAAOnC;AACT;AAEO,SAAShC,gBAAgB,EAAEM,WAAW,EAAE2B,WAAW,cAAc,EAAwB;IAC9F,MAAM,CAAC1B,SAAS6D,WAAW,GAAGzD,IAAAA,eAAQ,EAAC;IAEvC,IAAI0D,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,OAAO;IACT;IAEA,qBACE;;0BACE,qBAACtB;gBACCC,SAAS,IAAMkB,WAAW;gBAC1BpC,OAAO;oBACL,GAAG+B,gBAAgB9B,SAAS;oBAC5BkB,QAAQ;oBACRZ,YAAY;oBACZiC,OAAO;oBACPb,cAAc;oBACdlB,SAAS;oBACTW,QAAQ;gBACV;0BACD;;0BAGD,qBAACrD;gBAASO,aAAaA;gBAAaC,SAASA;gBAASC,SAAS,IAAM4D,WAAW;;;;AAGtF"}
|
|
@@ -1,47 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* 提供开发模式下的调试工具
|
|
2
|
+
* 开发工具模块(无 UI 框架依赖)
|
|
4
3
|
*/
|
|
5
4
|
import type { ReactNode } from 'react';
|
|
6
5
|
import type { AppInstance } from '../startup/AppInstance';
|
|
7
|
-
/**
|
|
8
|
-
* 开发工具组件属性
|
|
9
|
-
*/
|
|
10
6
|
export interface DevToolsProps {
|
|
11
|
-
/**
|
|
12
|
-
* 应用实例
|
|
13
|
-
*/
|
|
14
7
|
appInstance: AppInstance;
|
|
15
|
-
/**
|
|
16
|
-
* 是否显示
|
|
17
|
-
*/
|
|
18
8
|
visible?: boolean;
|
|
19
|
-
/**
|
|
20
|
-
* 关闭回调
|
|
21
|
-
*/
|
|
22
9
|
onClose?: () => void;
|
|
23
10
|
}
|
|
24
|
-
/**
|
|
25
|
-
* 开发工具组件
|
|
26
|
-
*
|
|
27
|
-
* 优化:增强功能,添加状态管理器调试面板、路由调试面板等
|
|
28
|
-
*/
|
|
29
11
|
export declare function DevTools({ appInstance, visible, onClose }: DevToolsProps): ReactNode;
|
|
30
|
-
/**
|
|
31
|
-
* 开发工具触发器组件
|
|
32
|
-
*/
|
|
33
12
|
export interface DevToolsTriggerProps {
|
|
34
|
-
/**
|
|
35
|
-
* 应用实例
|
|
36
|
-
*/
|
|
37
13
|
appInstance: AppInstance;
|
|
38
|
-
/**
|
|
39
|
-
* 触发按钮位置
|
|
40
|
-
*/
|
|
41
14
|
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
42
15
|
}
|
|
43
|
-
/**
|
|
44
|
-
* 开发工具触发器
|
|
45
|
-
*/
|
|
46
16
|
export declare function DevToolsTrigger({ appInstance, position }: DevToolsTriggerProps): ReactNode;
|
|
47
|
-
//# sourceMappingURL=DevTools.d.ts.map
|