@vlian/framework 1.2.57 → 1.2.60

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.
Files changed (685) hide show
  1. package/README.md +15 -3
  2. package/dist/analytics/index.cjs +1 -24
  3. package/dist/analytics/index.js +1 -3
  4. package/dist/analytics.umd.js +8 -208
  5. package/dist/components/LocaleSwitch.cjs +1 -118
  6. package/dist/components/LocaleSwitch.js +1 -103
  7. package/dist/components/ThemeSwitch.cjs +1 -117
  8. package/dist/components/ThemeSwitch.js +1 -102
  9. package/dist/components/index.cjs +1 -22
  10. package/dist/components/index.js +1 -4
  11. package/dist/components/persistence.cjs +1 -60
  12. package/dist/components/persistence.js +1 -39
  13. package/dist/core/Test.cjs +1 -66
  14. package/dist/core/Test.js +1 -15
  15. package/dist/core/app/AppContext.cjs +1 -350
  16. package/dist/core/app/AppContext.js +1 -339
  17. package/dist/core/app/AppContext.types.cjs +1 -6
  18. package/dist/core/app/AppContext.types.js +1 -5
  19. package/dist/core/app/BasicLayout.cjs +1 -124
  20. package/dist/core/app/BasicLayout.js +1 -74
  21. package/dist/core/app/DefaultApp.cjs +1 -152
  22. package/dist/core/app/DefaultApp.js +1 -143
  23. package/dist/core/app/index.cjs +1 -43
  24. package/dist/core/app/index.js +1 -7
  25. package/dist/core/config/AppConfig.cjs +1 -141
  26. package/dist/core/config/AppConfig.js +1 -133
  27. package/dist/core/config/ConfigLoader.cjs +1 -325
  28. package/dist/core/config/ConfigLoader.js +1 -311
  29. package/dist/core/config/ConfigValidator.cjs +2 -135
  30. package/dist/core/config/ConfigValidator.js +2 -121
  31. package/dist/core/config/index.cjs +1 -30
  32. package/dist/core/config/index.js +1 -7
  33. package/dist/core/dev/DevTools.cjs +1 -228
  34. package/dist/core/dev/DevTools.js +1 -210
  35. package/dist/core/error/ErrorBoundary.cjs +1 -403
  36. package/dist/core/error/ErrorBoundary.js +1 -399
  37. package/dist/core/error/ErrorHandler.cjs +1 -277
  38. package/dist/core/error/ErrorHandler.js +1 -261
  39. package/dist/core/error/index.cjs +1 -36
  40. package/dist/core/error/index.js +1 -6
  41. package/dist/core/event/AppEventBus.cjs +1 -446
  42. package/dist/core/event/AppEventBus.js +1 -438
  43. package/dist/core/event/frameworkEvents.cjs +1 -143
  44. package/dist/core/event/frameworkEvents.js +1 -135
  45. package/dist/core/event/hooks.cjs +1 -71
  46. package/dist/core/event/hooks.js +1 -95
  47. package/dist/core/event/index.cjs +1 -43
  48. package/dist/core/event/index.js +1 -10
  49. package/dist/core/event/types.cjs +1 -64
  50. package/dist/core/event/types.js +1 -56
  51. package/dist/core/event/useEventBus.cjs +1 -27
  52. package/dist/core/event/useEventBus.js +1 -39
  53. package/dist/core/index.cjs +1 -142
  54. package/dist/core/index.js +1 -69
  55. package/dist/core/initialization/InitializationErrorThrower.cjs +1 -77
  56. package/dist/core/initialization/InitializationErrorThrower.js +1 -30
  57. package/dist/core/initialization/index.cjs +1 -28
  58. package/dist/core/initialization/index.js +1 -7
  59. package/dist/core/initialization/initialization.cjs +1 -66
  60. package/dist/core/initialization/initialization.js +1 -78
  61. package/dist/core/initialization/initializationErrorState.cjs +1 -68
  62. package/dist/core/initialization/initializationErrorState.js +1 -60
  63. package/dist/core/kernel/defaultAdapters.cjs +1 -186
  64. package/dist/core/kernel/defaultAdapters.js +1 -176
  65. package/dist/core/kernel/errors.cjs +1 -71
  66. package/dist/core/kernel/errors.js +1 -53
  67. package/dist/core/kernel/index.cjs +1 -22
  68. package/dist/core/kernel/index.js +1 -4
  69. package/dist/core/kernel/startKernel.cjs +1 -202
  70. package/dist/core/kernel/startKernel.js +1 -192
  71. package/dist/core/kernel/types.cjs +1 -6
  72. package/dist/core/kernel/types.js +1 -3
  73. package/dist/core/middleware.cjs +1 -75
  74. package/dist/core/middleware.js +1 -61
  75. package/dist/core/plugin/PluginEventBus.cjs +1 -300
  76. package/dist/core/plugin/PluginEventBus.js +1 -286
  77. package/dist/core/plugin/PluginSandbox.cjs +1 -139
  78. package/dist/core/plugin/PluginSandbox.js +1 -125
  79. package/dist/core/plugin.cjs +1 -496
  80. package/dist/core/plugin.js +1 -438
  81. package/dist/core/router/RouterManager.cjs +1 -288
  82. package/dist/core/router/RouterManager.js +1 -272
  83. package/dist/core/router/adapter/AdapterManager.cjs +1 -237
  84. package/dist/core/router/adapter/AdapterManager.js +1 -221
  85. package/dist/core/router/adapter/index.cjs +1 -24
  86. package/dist/core/router/adapter/index.js +1 -7
  87. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs +1 -130
  88. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js +1 -116
  89. package/dist/core/router/adapter/react-router/index.cjs +1 -22
  90. package/dist/core/router/adapter/react-router/index.js +1 -5
  91. package/dist/core/router/adapter/types.cjs +1 -8
  92. package/dist/core/router/adapter/types.js +1 -7
  93. package/dist/core/router/dev/RouterDevTools.cjs +1 -262
  94. package/dist/core/router/dev/RouterDevTools.js +1 -211
  95. package/dist/core/router/dev/index.cjs +1 -22
  96. package/dist/core/router/dev/index.js +1 -5
  97. package/dist/core/router/dynamic/DynamicRouteManager.cjs +1 -195
  98. package/dist/core/router/dynamic/DynamicRouteManager.js +1 -179
  99. package/dist/core/router/dynamic/index.cjs +1 -22
  100. package/dist/core/router/dynamic/index.js +1 -5
  101. package/dist/core/router/errors/RouterError.cjs +1 -63
  102. package/dist/core/router/errors/RouterError.js +1 -48
  103. package/dist/core/router/errors/index.cjs +1 -22
  104. package/dist/core/router/errors/index.js +1 -5
  105. package/dist/core/router/index.cjs +1 -38
  106. package/dist/core/router/index.js +1 -32
  107. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs +1 -146
  108. package/dist/core/router/lifecycle/RouterLifecycleManager.js +1 -130
  109. package/dist/core/router/lifecycle/index.cjs +1 -22
  110. package/dist/core/router/lifecycle/index.js +1 -5
  111. package/dist/core/router/middleware/RouterMiddlewareManager.cjs +1 -195
  112. package/dist/core/router/middleware/RouterMiddlewareManager.js +1 -179
  113. package/dist/core/router/middleware/auth.cjs +1 -68
  114. package/dist/core/router/middleware/auth.js +1 -63
  115. package/dist/core/router/middleware/index.cjs +1 -24
  116. package/dist/core/router/middleware/index.js +1 -7
  117. package/dist/core/router/middleware/types.cjs +1 -8
  118. package/dist/core/router/middleware/types.js +1 -7
  119. package/dist/core/router/monitoring/RouterMonitoring.cjs +1 -229
  120. package/dist/core/router/monitoring/RouterMonitoring.js +1 -213
  121. package/dist/core/router/monitoring/index.cjs +1 -22
  122. package/dist/core/router/monitoring/index.js +1 -5
  123. package/dist/core/router/navigation/RouterNavigation.cjs +1 -241
  124. package/dist/core/router/navigation/RouterNavigation.js +1 -192
  125. package/dist/core/router/navigation/index.cjs +1 -22
  126. package/dist/core/router/navigation/index.js +1 -5
  127. package/dist/core/router/performance/RouteCache.cjs +1 -307
  128. package/dist/core/router/performance/RouteCache.js +1 -291
  129. package/dist/core/router/performance/RoutePreloader.cjs +1 -294
  130. package/dist/core/router/performance/RoutePreloader.js +1 -277
  131. package/dist/core/router/performance/index.cjs +1 -23
  132. package/dist/core/router/performance/index.js +1 -6
  133. package/dist/core/router/plugin/RouterPluginManager.cjs +1 -264
  134. package/dist/core/router/plugin/RouterPluginManager.js +1 -248
  135. package/dist/core/router/plugin/index.cjs +1 -23
  136. package/dist/core/router/plugin/index.js +1 -6
  137. package/dist/core/router/plugin/types.cjs +1 -41
  138. package/dist/core/router/plugin/types.js +1 -33
  139. package/dist/core/router/types.cjs +1 -6
  140. package/dist/core/router/types.js +1 -5
  141. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +1 -131
  142. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +1 -121
  143. package/dist/core/router/utils/adapters/react-router/transform.cjs +1 -252
  144. package/dist/core/router/utils/adapters/react-router/transform.js +1 -242
  145. package/dist/core/router/utils/transform.cjs +1 -782
  146. package/dist/core/router/utils/transform.js +1 -791
  147. package/dist/core/router/validation/RouterConfigValidator.cjs +2 -85
  148. package/dist/core/router/validation/RouterConfigValidator.js +2 -77
  149. package/dist/core/router/validation/index.cjs +1 -23
  150. package/dist/core/router/validation/index.js +1 -6
  151. package/dist/core/router/validation/schema.cjs +1 -161
  152. package/dist/core/router/validation/schema.js +1 -151
  153. package/dist/core/router/version/RouteVersionManager.cjs +1 -207
  154. package/dist/core/router/version/RouteVersionManager.js +1 -191
  155. package/dist/core/router/version/index.cjs +1 -22
  156. package/dist/core/router/version/index.js +1 -5
  157. package/dist/core/splash/SplashScreen.cjs +1 -343
  158. package/dist/core/splash/SplashScreen.js +1 -293
  159. package/dist/core/splash/index.cjs +1 -24
  160. package/dist/core/splash/index.js +1 -6
  161. package/dist/core/splash/splashScreenUtils.cjs +1 -40
  162. package/dist/core/splash/splashScreenUtils.js +1 -30
  163. package/dist/core/startup/AppInstance.cjs +1 -241
  164. package/dist/core/startup/AppInstance.js +1 -226
  165. package/dist/core/startup/environment.cjs +1 -171
  166. package/dist/core/startup/environment.js +1 -154
  167. package/dist/core/startup/index.cjs +1 -25
  168. package/dist/core/startup/index.js +1 -8
  169. package/dist/core/startup/initializeServices.cjs +1 -228
  170. package/dist/core/startup/initializeServices.js +1 -188
  171. package/dist/core/startup/performanceTracker.cjs +1 -181
  172. package/dist/core/startup/performanceTracker.js +1 -167
  173. package/dist/core/startup/renderApp.cjs +1 -316
  174. package/dist/core/startup/renderApp.js +1 -267
  175. package/dist/core/startup/startApp.cjs +1 -319
  176. package/dist/core/startup/startApp.js +1 -315
  177. package/dist/core/types.cjs +1 -6
  178. package/dist/core/types.js +1 -5
  179. package/dist/index.cjs +1 -54
  180. package/dist/index.js +1 -11
  181. package/dist/index.umd.cjs +1 -29
  182. package/dist/index.umd.js +362 -13233
  183. package/dist/kernel/constants.cjs +1 -67
  184. package/dist/kernel/constants.js +1 -43
  185. package/dist/kernel/index.cjs +1 -40
  186. package/dist/kernel/index.js +1 -4
  187. package/dist/kernel/kernel.cjs +1 -297
  188. package/dist/kernel/kernel.js +1 -273
  189. package/dist/kernel/manager/cacheManager.cjs +1 -48
  190. package/dist/kernel/manager/cacheManager.js +1 -38
  191. package/dist/kernel/manager/i18n/I18nManager.cjs +1 -93
  192. package/dist/kernel/manager/i18n/I18nManager.js +1 -83
  193. package/dist/kernel/manager/i18n/i18n.persistence.cjs +1 -62
  194. package/dist/kernel/manager/i18n/i18n.persistence.js +1 -41
  195. package/dist/kernel/manager/i18n/i18n.schema.cjs +1 -88
  196. package/dist/kernel/manager/i18n/i18n.schema.js +1 -64
  197. package/dist/kernel/manager/i18n/index.cjs +1 -13
  198. package/dist/kernel/manager/i18n/index.js +1 -3
  199. package/dist/kernel/manager/i18nManager.cjs +1 -13
  200. package/dist/kernel/manager/i18nManager.js +1 -3
  201. package/dist/kernel/manager/index.cjs +1 -30
  202. package/dist/kernel/manager/index.js +1 -6
  203. package/dist/kernel/manager/logger/LoggerManager.cjs +1 -109
  204. package/dist/kernel/manager/logger/LoggerManager.js +1 -99
  205. package/dist/kernel/manager/logger/index.cjs +1 -13
  206. package/dist/kernel/manager/logger/index.js +1 -3
  207. package/dist/kernel/manager/logger/logger.persistence.cjs +1 -64
  208. package/dist/kernel/manager/logger/logger.persistence.js +1 -43
  209. package/dist/kernel/manager/logger/logger.schema.cjs +1 -76
  210. package/dist/kernel/manager/logger/logger.schema.js +1 -55
  211. package/dist/kernel/manager/loggerManager.cjs +1 -13
  212. package/dist/kernel/manager/loggerManager.js +1 -3
  213. package/dist/kernel/manager/theme/ThemeManager.cjs +1 -86
  214. package/dist/kernel/manager/theme/ThemeManager.js +1 -76
  215. package/dist/kernel/manager/theme/index.cjs +1 -13
  216. package/dist/kernel/manager/theme/index.js +1 -3
  217. package/dist/kernel/manager/theme/theme.dom.cjs +1 -63
  218. package/dist/kernel/manager/theme/theme.dom.js +1 -45
  219. package/dist/kernel/manager/theme/theme.persistence.cjs +1 -59
  220. package/dist/kernel/manager/theme/theme.persistence.js +1 -38
  221. package/dist/kernel/manager/theme/theme.schema.cjs +1 -124
  222. package/dist/kernel/manager/theme/theme.schema.js +1 -97
  223. package/dist/kernel/manager/themeManager.cjs +1 -13
  224. package/dist/kernel/manager/themeManager.js +1 -3
  225. package/dist/kernel/types.cjs +1 -6
  226. package/dist/kernel/types.js +1 -3
  227. package/dist/library/index.cjs +1 -21
  228. package/dist/library/index.js +1 -4
  229. package/dist/library/locale/index.cjs +1 -41
  230. package/dist/library/locale/index.js +1 -12
  231. package/dist/library/locale/langs/en-us/index.cjs +1 -34
  232. package/dist/library/locale/langs/en-us/index.js +1 -24
  233. package/dist/library/locale/langs/zh-cn/index.cjs +1 -34
  234. package/dist/library/locale/langs/zh-cn/index.js +1 -24
  235. package/dist/library/locale/types.cjs +1 -6
  236. package/dist/library/locale/types.js +1 -3
  237. package/dist/library/storage/cache.cjs +1 -245
  238. package/dist/library/storage/cache.js +1 -237
  239. package/dist/library/storage/encryption.cjs +1 -149
  240. package/dist/library/storage/encryption.js +1 -141
  241. package/dist/library/storage/index.cjs +1 -126
  242. package/dist/library/storage/index.js +1 -106
  243. package/dist/state/StateManager.cjs +1 -168
  244. package/dist/state/StateManager.js +1 -160
  245. package/dist/state/adapters/AdapterFactory.cjs +1 -91
  246. package/dist/state/adapters/AdapterFactory.js +1 -85
  247. package/dist/state/adapters/DefaultAdapter.cjs +1 -77
  248. package/dist/state/adapters/DefaultAdapter.js +1 -71
  249. package/dist/state/adapters/ReduxAdapter.cjs +1 -445
  250. package/dist/state/adapters/ReduxAdapter.js +1 -439
  251. package/dist/state/adapters/ZustandAdapter.cjs +1 -71
  252. package/dist/state/adapters/ZustandAdapter.js +1 -70
  253. package/dist/state/adapters/index.cjs +1 -46
  254. package/dist/state/adapters/index.js +1 -9
  255. package/dist/state/adapters/types.cjs +1 -22
  256. package/dist/state/adapters/types.js +1 -5
  257. package/dist/state/core/DerivedStateInstance.cjs +1 -176
  258. package/dist/state/core/DerivedStateInstance.js +1 -173
  259. package/dist/state/core/StateInstance.cjs +1 -172
  260. package/dist/state/core/StateInstance.js +1 -168
  261. package/dist/state/core/StateRegistry.cjs +1 -112
  262. package/dist/state/core/StateRegistry.js +1 -106
  263. package/dist/state/core/StateScope.cjs +1 -139
  264. package/dist/state/core/StateScope.js +1 -133
  265. package/dist/state/core/index.cjs +1 -32
  266. package/dist/state/core/index.js +1 -8
  267. package/dist/state/index.cjs +1 -32
  268. package/dist/state/index.js +1 -12
  269. package/dist/state/types.cjs +1 -14
  270. package/dist/state/types.js +1 -13
  271. package/dist/state.umd.js +22 -1395
  272. package/dist/types.cjs +1 -6
  273. package/dist/types.js +1 -3
  274. package/dist/utils/analytics.cjs +1 -219
  275. package/dist/utils/analytics.js +1 -204
  276. package/dist/utils/configSecurity.cjs +3 -184
  277. package/dist/utils/configSecurity.js +3 -176
  278. package/dist/utils/csrf.cjs +1 -20
  279. package/dist/utils/csrf.js +1 -3
  280. package/dist/utils/errors/ErrorCodes.cjs +1 -27
  281. package/dist/utils/errors/ErrorCodes.js +1 -3
  282. package/dist/utils/errors.cjs +1 -113
  283. package/dist/utils/errors.js +1 -18
  284. package/dist/utils/index.cjs +1 -137
  285. package/dist/utils/index.js +1 -48
  286. package/dist/utils/logger.cjs +1 -27
  287. package/dist/utils/logger.js +1 -3
  288. package/dist/utils/logger.types.cjs +1 -13
  289. package/dist/utils/logger.types.js +1 -3
  290. package/dist/utils/monitoring.cjs +1 -20
  291. package/dist/utils/monitoring.js +1 -3
  292. package/dist/utils/performance.cjs +1 -24
  293. package/dist/utils/performance.js +1 -3
  294. package/dist/utils/resourceLoader.cjs +1 -24
  295. package/dist/utils/resourceLoader.js +1 -3
  296. package/dist/utils/runtimeSecurity.cjs +1 -13
  297. package/dist/utils/runtimeSecurity.js +1 -3
  298. package/dist/utils/security.cjs +1 -21
  299. package/dist/utils/security.js +1 -3
  300. package/dist/utils/traceId.cjs +1 -39
  301. package/dist/utils/traceId.js +1 -3
  302. package/dist/utils/validation.cjs +1 -21
  303. package/dist/utils/validation.js +1 -3
  304. package/package.json +9 -6
  305. package/dist/analytics/index.cjs.map +0 -1
  306. package/dist/analytics/index.js.map +0 -1
  307. package/dist/analytics.umd.js.map +0 -1
  308. package/dist/components/LocaleSwitch.cjs.map +0 -1
  309. package/dist/components/LocaleSwitch.js.map +0 -1
  310. package/dist/components/ThemeSwitch.cjs.map +0 -1
  311. package/dist/components/ThemeSwitch.js.map +0 -1
  312. package/dist/components/index.cjs.map +0 -1
  313. package/dist/components/index.js.map +0 -1
  314. package/dist/components/persistence.cjs.map +0 -1
  315. package/dist/components/persistence.js.map +0 -1
  316. package/dist/core/Test.cjs.map +0 -1
  317. package/dist/core/Test.js.map +0 -1
  318. package/dist/core/app/AppContext.cjs.map +0 -1
  319. package/dist/core/app/AppContext.js.map +0 -1
  320. package/dist/core/app/AppContext.types.cjs.map +0 -1
  321. package/dist/core/app/AppContext.types.js.map +0 -1
  322. package/dist/core/app/BasicLayout.cjs.map +0 -1
  323. package/dist/core/app/BasicLayout.js.map +0 -1
  324. package/dist/core/app/DefaultApp.cjs.map +0 -1
  325. package/dist/core/app/DefaultApp.js.map +0 -1
  326. package/dist/core/app/index.cjs.map +0 -1
  327. package/dist/core/app/index.js.map +0 -1
  328. package/dist/core/config/AppConfig.cjs.map +0 -1
  329. package/dist/core/config/AppConfig.js.map +0 -1
  330. package/dist/core/config/ConfigLoader.cjs.map +0 -1
  331. package/dist/core/config/ConfigLoader.js.map +0 -1
  332. package/dist/core/config/ConfigValidator.cjs.map +0 -1
  333. package/dist/core/config/ConfigValidator.js.map +0 -1
  334. package/dist/core/config/index.cjs.map +0 -1
  335. package/dist/core/config/index.js.map +0 -1
  336. package/dist/core/dev/DevTools.cjs.map +0 -1
  337. package/dist/core/dev/DevTools.js.map +0 -1
  338. package/dist/core/error/ErrorBoundary.cjs.map +0 -1
  339. package/dist/core/error/ErrorBoundary.js.map +0 -1
  340. package/dist/core/error/ErrorHandler.cjs.map +0 -1
  341. package/dist/core/error/ErrorHandler.js.map +0 -1
  342. package/dist/core/error/index.cjs.map +0 -1
  343. package/dist/core/error/index.js.map +0 -1
  344. package/dist/core/event/AppEventBus.cjs.map +0 -1
  345. package/dist/core/event/AppEventBus.js.map +0 -1
  346. package/dist/core/event/frameworkEvents.cjs.map +0 -1
  347. package/dist/core/event/frameworkEvents.js.map +0 -1
  348. package/dist/core/event/hooks.cjs.map +0 -1
  349. package/dist/core/event/hooks.js.map +0 -1
  350. package/dist/core/event/index.cjs.map +0 -1
  351. package/dist/core/event/index.js.map +0 -1
  352. package/dist/core/event/types.cjs.map +0 -1
  353. package/dist/core/event/types.js.map +0 -1
  354. package/dist/core/event/useEventBus.cjs.map +0 -1
  355. package/dist/core/event/useEventBus.js.map +0 -1
  356. package/dist/core/index.cjs.map +0 -1
  357. package/dist/core/index.js.map +0 -1
  358. package/dist/core/initialization/InitializationErrorThrower.cjs.map +0 -1
  359. package/dist/core/initialization/InitializationErrorThrower.js.map +0 -1
  360. package/dist/core/initialization/index.cjs.map +0 -1
  361. package/dist/core/initialization/index.js.map +0 -1
  362. package/dist/core/initialization/initialization.cjs.map +0 -1
  363. package/dist/core/initialization/initialization.js.map +0 -1
  364. package/dist/core/initialization/initializationErrorState.cjs.map +0 -1
  365. package/dist/core/initialization/initializationErrorState.js.map +0 -1
  366. package/dist/core/kernel/defaultAdapters.cjs.map +0 -1
  367. package/dist/core/kernel/defaultAdapters.js.map +0 -1
  368. package/dist/core/kernel/errors.cjs.map +0 -1
  369. package/dist/core/kernel/errors.js.map +0 -1
  370. package/dist/core/kernel/index.cjs.map +0 -1
  371. package/dist/core/kernel/index.js.map +0 -1
  372. package/dist/core/kernel/startKernel.cjs.map +0 -1
  373. package/dist/core/kernel/startKernel.js.map +0 -1
  374. package/dist/core/kernel/types.cjs.map +0 -1
  375. package/dist/core/kernel/types.js.map +0 -1
  376. package/dist/core/middleware.cjs.map +0 -1
  377. package/dist/core/middleware.js.map +0 -1
  378. package/dist/core/plugin/PluginEventBus.cjs.map +0 -1
  379. package/dist/core/plugin/PluginEventBus.js.map +0 -1
  380. package/dist/core/plugin/PluginSandbox.cjs.map +0 -1
  381. package/dist/core/plugin/PluginSandbox.js.map +0 -1
  382. package/dist/core/plugin.cjs.map +0 -1
  383. package/dist/core/plugin.js.map +0 -1
  384. package/dist/core/router/RouterManager.cjs.map +0 -1
  385. package/dist/core/router/RouterManager.js.map +0 -1
  386. package/dist/core/router/adapter/AdapterManager.cjs.map +0 -1
  387. package/dist/core/router/adapter/AdapterManager.js.map +0 -1
  388. package/dist/core/router/adapter/index.cjs.map +0 -1
  389. package/dist/core/router/adapter/index.js.map +0 -1
  390. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs.map +0 -1
  391. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js.map +0 -1
  392. package/dist/core/router/adapter/react-router/index.cjs.map +0 -1
  393. package/dist/core/router/adapter/react-router/index.js.map +0 -1
  394. package/dist/core/router/adapter/types.cjs.map +0 -1
  395. package/dist/core/router/adapter/types.js.map +0 -1
  396. package/dist/core/router/dev/RouterDevTools.cjs.map +0 -1
  397. package/dist/core/router/dev/RouterDevTools.js.map +0 -1
  398. package/dist/core/router/dev/index.cjs.map +0 -1
  399. package/dist/core/router/dev/index.js.map +0 -1
  400. package/dist/core/router/dynamic/DynamicRouteManager.cjs.map +0 -1
  401. package/dist/core/router/dynamic/DynamicRouteManager.js.map +0 -1
  402. package/dist/core/router/dynamic/index.cjs.map +0 -1
  403. package/dist/core/router/dynamic/index.js.map +0 -1
  404. package/dist/core/router/errors/RouterError.cjs.map +0 -1
  405. package/dist/core/router/errors/RouterError.js.map +0 -1
  406. package/dist/core/router/errors/index.cjs.map +0 -1
  407. package/dist/core/router/errors/index.js.map +0 -1
  408. package/dist/core/router/index.cjs.map +0 -1
  409. package/dist/core/router/index.js.map +0 -1
  410. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs.map +0 -1
  411. package/dist/core/router/lifecycle/RouterLifecycleManager.js.map +0 -1
  412. package/dist/core/router/lifecycle/index.cjs.map +0 -1
  413. package/dist/core/router/lifecycle/index.js.map +0 -1
  414. package/dist/core/router/middleware/RouterMiddlewareManager.cjs.map +0 -1
  415. package/dist/core/router/middleware/RouterMiddlewareManager.js.map +0 -1
  416. package/dist/core/router/middleware/auth.cjs.map +0 -1
  417. package/dist/core/router/middleware/auth.js.map +0 -1
  418. package/dist/core/router/middleware/index.cjs.map +0 -1
  419. package/dist/core/router/middleware/index.js.map +0 -1
  420. package/dist/core/router/middleware/types.cjs.map +0 -1
  421. package/dist/core/router/middleware/types.js.map +0 -1
  422. package/dist/core/router/monitoring/RouterMonitoring.cjs.map +0 -1
  423. package/dist/core/router/monitoring/RouterMonitoring.js.map +0 -1
  424. package/dist/core/router/monitoring/index.cjs.map +0 -1
  425. package/dist/core/router/monitoring/index.js.map +0 -1
  426. package/dist/core/router/navigation/RouterNavigation.cjs.map +0 -1
  427. package/dist/core/router/navigation/RouterNavigation.js.map +0 -1
  428. package/dist/core/router/navigation/index.cjs.map +0 -1
  429. package/dist/core/router/navigation/index.js.map +0 -1
  430. package/dist/core/router/performance/RouteCache.cjs.map +0 -1
  431. package/dist/core/router/performance/RouteCache.js.map +0 -1
  432. package/dist/core/router/performance/RoutePreloader.cjs.map +0 -1
  433. package/dist/core/router/performance/RoutePreloader.js.map +0 -1
  434. package/dist/core/router/performance/index.cjs.map +0 -1
  435. package/dist/core/router/performance/index.js.map +0 -1
  436. package/dist/core/router/plugin/RouterPluginManager.cjs.map +0 -1
  437. package/dist/core/router/plugin/RouterPluginManager.js.map +0 -1
  438. package/dist/core/router/plugin/index.cjs.map +0 -1
  439. package/dist/core/router/plugin/index.js.map +0 -1
  440. package/dist/core/router/plugin/types.cjs.map +0 -1
  441. package/dist/core/router/plugin/types.js.map +0 -1
  442. package/dist/core/router/types.cjs.map +0 -1
  443. package/dist/core/router/types.js.map +0 -1
  444. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +0 -1
  445. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js.map +0 -1
  446. package/dist/core/router/utils/adapters/react-router/transform.cjs.map +0 -1
  447. package/dist/core/router/utils/adapters/react-router/transform.js.map +0 -1
  448. package/dist/core/router/utils/transform.cjs.map +0 -1
  449. package/dist/core/router/utils/transform.js.map +0 -1
  450. package/dist/core/router/validation/RouterConfigValidator.cjs.map +0 -1
  451. package/dist/core/router/validation/RouterConfigValidator.js.map +0 -1
  452. package/dist/core/router/validation/index.cjs.map +0 -1
  453. package/dist/core/router/validation/index.js.map +0 -1
  454. package/dist/core/router/validation/schema.cjs.map +0 -1
  455. package/dist/core/router/validation/schema.js.map +0 -1
  456. package/dist/core/router/version/RouteVersionManager.cjs.map +0 -1
  457. package/dist/core/router/version/RouteVersionManager.js.map +0 -1
  458. package/dist/core/router/version/index.cjs.map +0 -1
  459. package/dist/core/router/version/index.js.map +0 -1
  460. package/dist/core/splash/SplashScreen.cjs.map +0 -1
  461. package/dist/core/splash/SplashScreen.js.map +0 -1
  462. package/dist/core/splash/index.cjs.map +0 -1
  463. package/dist/core/splash/index.js.map +0 -1
  464. package/dist/core/splash/splashScreenUtils.cjs.map +0 -1
  465. package/dist/core/splash/splashScreenUtils.js.map +0 -1
  466. package/dist/core/startup/AppInstance.cjs.map +0 -1
  467. package/dist/core/startup/AppInstance.js.map +0 -1
  468. package/dist/core/startup/environment.cjs.map +0 -1
  469. package/dist/core/startup/environment.js.map +0 -1
  470. package/dist/core/startup/index.cjs.map +0 -1
  471. package/dist/core/startup/index.js.map +0 -1
  472. package/dist/core/startup/initializeServices.cjs.map +0 -1
  473. package/dist/core/startup/initializeServices.js.map +0 -1
  474. package/dist/core/startup/performanceTracker.cjs.map +0 -1
  475. package/dist/core/startup/performanceTracker.js.map +0 -1
  476. package/dist/core/startup/renderApp.cjs.map +0 -1
  477. package/dist/core/startup/renderApp.js.map +0 -1
  478. package/dist/core/startup/startApp.cjs.map +0 -1
  479. package/dist/core/startup/startApp.js.map +0 -1
  480. package/dist/core/types.cjs.map +0 -1
  481. package/dist/core/types.js.map +0 -1
  482. package/dist/index.cjs.map +0 -1
  483. package/dist/index.js.map +0 -1
  484. package/dist/index.umd.cjs.map +0 -1
  485. package/dist/index.umd.js.map +0 -1
  486. package/dist/kernel/constants.cjs.map +0 -1
  487. package/dist/kernel/constants.js.map +0 -1
  488. package/dist/kernel/index.cjs.map +0 -1
  489. package/dist/kernel/index.js.map +0 -1
  490. package/dist/kernel/kernel.cjs.map +0 -1
  491. package/dist/kernel/kernel.js.map +0 -1
  492. package/dist/kernel/manager/cacheManager.cjs.map +0 -1
  493. package/dist/kernel/manager/cacheManager.js.map +0 -1
  494. package/dist/kernel/manager/i18n/I18nManager.cjs.map +0 -1
  495. package/dist/kernel/manager/i18n/I18nManager.js.map +0 -1
  496. package/dist/kernel/manager/i18n/i18n.persistence.cjs.map +0 -1
  497. package/dist/kernel/manager/i18n/i18n.persistence.js.map +0 -1
  498. package/dist/kernel/manager/i18n/i18n.schema.cjs.map +0 -1
  499. package/dist/kernel/manager/i18n/i18n.schema.js.map +0 -1
  500. package/dist/kernel/manager/i18n/index.cjs.map +0 -1
  501. package/dist/kernel/manager/i18n/index.js.map +0 -1
  502. package/dist/kernel/manager/i18nManager.cjs.map +0 -1
  503. package/dist/kernel/manager/i18nManager.js.map +0 -1
  504. package/dist/kernel/manager/index.cjs.map +0 -1
  505. package/dist/kernel/manager/index.js.map +0 -1
  506. package/dist/kernel/manager/logger/LoggerManager.cjs.map +0 -1
  507. package/dist/kernel/manager/logger/LoggerManager.js.map +0 -1
  508. package/dist/kernel/manager/logger/index.cjs.map +0 -1
  509. package/dist/kernel/manager/logger/index.js.map +0 -1
  510. package/dist/kernel/manager/logger/logger.persistence.cjs.map +0 -1
  511. package/dist/kernel/manager/logger/logger.persistence.js.map +0 -1
  512. package/dist/kernel/manager/logger/logger.schema.cjs.map +0 -1
  513. package/dist/kernel/manager/logger/logger.schema.js.map +0 -1
  514. package/dist/kernel/manager/loggerManager.cjs.map +0 -1
  515. package/dist/kernel/manager/loggerManager.js.map +0 -1
  516. package/dist/kernel/manager/persistence.cjs +0 -78
  517. package/dist/kernel/manager/persistence.cjs.map +0 -1
  518. package/dist/kernel/manager/persistence.d.ts +0 -3
  519. package/dist/kernel/manager/persistence.js +0 -60
  520. package/dist/kernel/manager/persistence.js.map +0 -1
  521. package/dist/kernel/manager/theme/ThemeManager.cjs.map +0 -1
  522. package/dist/kernel/manager/theme/ThemeManager.js.map +0 -1
  523. package/dist/kernel/manager/theme/index.cjs.map +0 -1
  524. package/dist/kernel/manager/theme/index.js.map +0 -1
  525. package/dist/kernel/manager/theme/theme.dom.cjs.map +0 -1
  526. package/dist/kernel/manager/theme/theme.dom.js.map +0 -1
  527. package/dist/kernel/manager/theme/theme.persistence.cjs.map +0 -1
  528. package/dist/kernel/manager/theme/theme.persistence.js.map +0 -1
  529. package/dist/kernel/manager/theme/theme.schema.cjs.map +0 -1
  530. package/dist/kernel/manager/theme/theme.schema.js.map +0 -1
  531. package/dist/kernel/manager/themeManager.cjs.map +0 -1
  532. package/dist/kernel/manager/themeManager.js.map +0 -1
  533. package/dist/kernel/types.cjs.map +0 -1
  534. package/dist/kernel/types.js.map +0 -1
  535. package/dist/library/index.cjs.map +0 -1
  536. package/dist/library/index.js.map +0 -1
  537. package/dist/library/locale/index.cjs.map +0 -1
  538. package/dist/library/locale/index.js.map +0 -1
  539. package/dist/library/locale/langs/en-us/index.cjs.map +0 -1
  540. package/dist/library/locale/langs/en-us/index.js.map +0 -1
  541. package/dist/library/locale/langs/zh-cn/index.cjs.map +0 -1
  542. package/dist/library/locale/langs/zh-cn/index.js.map +0 -1
  543. package/dist/library/locale/types.cjs.map +0 -1
  544. package/dist/library/locale/types.js.map +0 -1
  545. package/dist/library/storage/cache.cjs.map +0 -1
  546. package/dist/library/storage/cache.js.map +0 -1
  547. package/dist/library/storage/encryption.cjs.map +0 -1
  548. package/dist/library/storage/encryption.js.map +0 -1
  549. package/dist/library/storage/index.cjs.map +0 -1
  550. package/dist/library/storage/index.js.map +0 -1
  551. package/dist/request/adapter/RequestAdapter.d.ts +0 -85
  552. package/dist/request/adapter/RequestAdapter.js +0 -70
  553. package/dist/request/adapter/RequestAdapter.js.map +0 -1
  554. package/dist/request/adapter/axiosAdapter.d.ts +0 -10
  555. package/dist/request/adapter/axiosAdapter.js +0 -115
  556. package/dist/request/adapter/axiosAdapter.js.map +0 -1
  557. package/dist/request/adapter/fetchAdapter.d.ts +0 -10
  558. package/dist/request/adapter/fetchAdapter.js +0 -126
  559. package/dist/request/adapter/fetchAdapter.js.map +0 -1
  560. package/dist/request/adapter/index.d.ts +0 -9
  561. package/dist/request/adapter/index.js +0 -14
  562. package/dist/request/adapter/index.js.map +0 -1
  563. package/dist/request/adapter/kyAdapter.d.ts +0 -10
  564. package/dist/request/adapter/kyAdapter.js +0 -142
  565. package/dist/request/adapter/kyAdapter.js.map +0 -1
  566. package/dist/request/adapter/undiciAdapter.d.ts +0 -10
  567. package/dist/request/adapter/undiciAdapter.js +0 -164
  568. package/dist/request/adapter/undiciAdapter.js.map +0 -1
  569. package/dist/request/adapter.d.ts +0 -1
  570. package/dist/request/core/RequestClient.d.ts +0 -134
  571. package/dist/request/core/RequestClient.js +0 -509
  572. package/dist/request/core/RequestClient.js.map +0 -1
  573. package/dist/request/core/index.d.ts +0 -5
  574. package/dist/request/core/index.js +0 -5
  575. package/dist/request/core/index.js.map +0 -1
  576. package/dist/request/core.d.ts +0 -1
  577. package/dist/request/index.d.ts +0 -1
  578. package/dist/request/index.js +0 -50
  579. package/dist/request/index.js.map +0 -1
  580. package/dist/request/plugin/RequestPlugin.d.ts +0 -170
  581. package/dist/request/plugin/RequestPlugin.js +0 -203
  582. package/dist/request/plugin/RequestPlugin.js.map +0 -1
  583. package/dist/request/plugin/cache.d.ts +0 -33
  584. package/dist/request/plugin/cache.js +0 -264
  585. package/dist/request/plugin/cache.js.map +0 -1
  586. package/dist/request/plugin/csrfPlugin.d.ts +0 -21
  587. package/dist/request/plugin/csrfPlugin.js +0 -44
  588. package/dist/request/plugin/csrfPlugin.js.map +0 -1
  589. package/dist/request/plugin/index.d.ts +0 -11
  590. package/dist/request/plugin/index.js +0 -12
  591. package/dist/request/plugin/index.js.map +0 -1
  592. package/dist/request/plugin/monitoring.d.ts +0 -112
  593. package/dist/request/plugin/monitoring.js +0 -205
  594. package/dist/request/plugin/monitoring.js.map +0 -1
  595. package/dist/request/plugin/queue.d.ts +0 -91
  596. package/dist/request/plugin/queue.js +0 -156
  597. package/dist/request/plugin/queue.js.map +0 -1
  598. package/dist/request/plugin/retry.d.ts +0 -34
  599. package/dist/request/plugin/retry.js +0 -93
  600. package/dist/request/plugin/retry.js.map +0 -1
  601. package/dist/request/plugin/validation.d.ts +0 -26
  602. package/dist/request/plugin/validation.js +0 -116
  603. package/dist/request/plugin/validation.js.map +0 -1
  604. package/dist/request/plugin.d.ts +0 -1
  605. package/dist/request/runtime/RequestContext.d.ts +0 -50
  606. package/dist/request/runtime/RequestContext.js +0 -86
  607. package/dist/request/runtime/RequestContext.js.map +0 -1
  608. package/dist/request/runtime/index.d.ts +0 -4
  609. package/dist/request/runtime/index.js +0 -5
  610. package/dist/request/runtime/index.js.map +0 -1
  611. package/dist/request/runtime.d.ts +0 -1
  612. package/dist/request/types.d.ts +0 -1
  613. package/dist/request/types.js +0 -97
  614. package/dist/request/types.js.map +0 -1
  615. package/dist/request/utils/RequestQueueManager.d.ts +0 -74
  616. package/dist/request/utils/RequestQueueManager.js +0 -160
  617. package/dist/request/utils/RequestQueueManager.js.map +0 -1
  618. package/dist/request/utils/dependencyCheck.d.ts +0 -63
  619. package/dist/request/utils/dependencyCheck.js +0 -192
  620. package/dist/request/utils/dependencyCheck.js.map +0 -1
  621. package/dist/request/utils/index.d.ts +0 -5
  622. package/dist/request/utils/index.js +0 -6
  623. package/dist/request/utils/index.js.map +0 -1
  624. package/dist/request/utils.d.ts +0 -1
  625. package/dist/state/StateManager.cjs.map +0 -1
  626. package/dist/state/StateManager.js.map +0 -1
  627. package/dist/state/adapters/AdapterFactory.cjs.map +0 -1
  628. package/dist/state/adapters/AdapterFactory.js.map +0 -1
  629. package/dist/state/adapters/DefaultAdapter.cjs.map +0 -1
  630. package/dist/state/adapters/DefaultAdapter.js.map +0 -1
  631. package/dist/state/adapters/ReduxAdapter.cjs.map +0 -1
  632. package/dist/state/adapters/ReduxAdapter.js.map +0 -1
  633. package/dist/state/adapters/ZustandAdapter.cjs.map +0 -1
  634. package/dist/state/adapters/ZustandAdapter.js.map +0 -1
  635. package/dist/state/adapters/index.cjs.map +0 -1
  636. package/dist/state/adapters/index.js.map +0 -1
  637. package/dist/state/adapters/types.cjs.map +0 -1
  638. package/dist/state/adapters/types.js.map +0 -1
  639. package/dist/state/core/DerivedStateInstance.cjs.map +0 -1
  640. package/dist/state/core/DerivedStateInstance.js.map +0 -1
  641. package/dist/state/core/StateInstance.cjs.map +0 -1
  642. package/dist/state/core/StateInstance.js.map +0 -1
  643. package/dist/state/core/StateRegistry.cjs.map +0 -1
  644. package/dist/state/core/StateRegistry.js.map +0 -1
  645. package/dist/state/core/StateScope.cjs.map +0 -1
  646. package/dist/state/core/StateScope.js.map +0 -1
  647. package/dist/state/core/index.cjs.map +0 -1
  648. package/dist/state/core/index.js.map +0 -1
  649. package/dist/state/index.cjs.map +0 -1
  650. package/dist/state/index.js.map +0 -1
  651. package/dist/state/types.cjs.map +0 -1
  652. package/dist/state/types.js.map +0 -1
  653. package/dist/state.umd.js.map +0 -1
  654. package/dist/types.cjs.map +0 -1
  655. package/dist/types.js.map +0 -1
  656. package/dist/utils/analytics.cjs.map +0 -1
  657. package/dist/utils/analytics.js.map +0 -1
  658. package/dist/utils/configSecurity.cjs.map +0 -1
  659. package/dist/utils/configSecurity.js.map +0 -1
  660. package/dist/utils/csrf.cjs.map +0 -1
  661. package/dist/utils/csrf.js.map +0 -1
  662. package/dist/utils/errors/ErrorCodes.cjs.map +0 -1
  663. package/dist/utils/errors/ErrorCodes.js.map +0 -1
  664. package/dist/utils/errors.cjs.map +0 -1
  665. package/dist/utils/errors.js.map +0 -1
  666. package/dist/utils/index.cjs.map +0 -1
  667. package/dist/utils/index.js.map +0 -1
  668. package/dist/utils/logger.cjs.map +0 -1
  669. package/dist/utils/logger.js.map +0 -1
  670. package/dist/utils/logger.types.cjs.map +0 -1
  671. package/dist/utils/logger.types.js.map +0 -1
  672. package/dist/utils/monitoring.cjs.map +0 -1
  673. package/dist/utils/monitoring.js.map +0 -1
  674. package/dist/utils/performance.cjs.map +0 -1
  675. package/dist/utils/performance.js.map +0 -1
  676. package/dist/utils/resourceLoader.cjs.map +0 -1
  677. package/dist/utils/resourceLoader.js.map +0 -1
  678. package/dist/utils/runtimeSecurity.cjs.map +0 -1
  679. package/dist/utils/runtimeSecurity.js.map +0 -1
  680. package/dist/utils/security.cjs.map +0 -1
  681. package/dist/utils/security.js.map +0 -1
  682. package/dist/utils/traceId.cjs.map +0 -1
  683. package/dist/utils/traceId.js.map +0 -1
  684. package/dist/utils/validation.cjs.map +0 -1
  685. package/dist/utils/validation.js.map +0 -1
@@ -1,343 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "SplashScreen", {
6
- enumerable: true,
7
- get: function() {
8
- return SplashScreen;
9
- }
10
- });
11
- const _jsxruntime = require("react/jsx-runtime");
12
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
13
- const _logger = require("@vlian/logger");
14
- const _initialization = require("../initialization");
15
- function _getRequireWildcardCache(nodeInterop) {
16
- if (typeof WeakMap !== "function") return null;
17
- var cacheBabelInterop = new WeakMap();
18
- var cacheNodeInterop = new WeakMap();
19
- return (_getRequireWildcardCache = function(nodeInterop) {
20
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
21
- })(nodeInterop);
22
- }
23
- function _interop_require_wildcard(obj, nodeInterop) {
24
- if (!nodeInterop && obj && obj.__esModule) {
25
- return obj;
26
- }
27
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
28
- return {
29
- default: obj
30
- };
31
- }
32
- var cache = _getRequireWildcardCache(nodeInterop);
33
- if (cache && cache.has(obj)) {
34
- return cache.get(obj);
35
- }
36
- var newObj = {
37
- __proto__: null
38
- };
39
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
40
- for(var key in obj){
41
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
42
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
43
- if (desc && (desc.get || desc.set)) {
44
- Object.defineProperty(newObj, key, desc);
45
- } else {
46
- newObj[key] = obj[key];
47
- }
48
- }
49
- }
50
- newObj.default = obj;
51
- if (cache) {
52
- cache.set(obj, newObj);
53
- }
54
- return newObj;
55
- }
56
- /**
57
- * 启动页组件
58
- *
59
- * 在启动页中执行初始化,并使用 Ant Design 5 的 Spin 和 Progress 组件展示启动进度
60
- */ const SplashScreen = /*#__PURE__*/ (0, _react.memo)(({ options, onComplete })=>{
61
- const [progress, setProgress] = (0, _react.useState)(0);
62
- const [currentStep, setCurrentStep] = (0, _react.useState)('准备初始化...');
63
- const [isInitializing, setIsInitializing] = (0, _react.useState)(false);
64
- const [estimatedTime, setEstimatedTime] = (0, _react.useState)(null);
65
- const [isSystemDark, setIsSystemDark] = (0, _react.useState)(()=>{
66
- if (typeof window === 'undefined') {
67
- return false;
68
- }
69
- return window.matchMedia('(prefers-color-scheme: dark)').matches;
70
- });
71
- const hasCompletedRef = (0, _react.useRef)(false);
72
- const onCompleteRef = (0, _react.useRef)(onComplete);
73
- const optionsRef = (0, _react.useRef)(options);
74
- const startTimeRef = (0, _react.useRef)(Date.now());
75
- const minDisplayTimeRef = (0, _react.useRef)(options.minSplashScreenTime ?? 500); // 最小显示时间,默认 500ms
76
- const progressUpdateTimerRef = (0, _react.useRef)(null);
77
- const rafRef = (0, _react.useRef)(null);
78
- const lastProgressRef = (0, _react.useRef)(0);
79
- const progressHistoryRef = (0, _react.useRef)([]);
80
- // 保持引用最新
81
- (0, _react.useEffect)(()=>{
82
- onCompleteRef.current = onComplete;
83
- optionsRef.current = options;
84
- minDisplayTimeRef.current = options.minSplashScreenTime ?? 500;
85
- }, [
86
- onComplete,
87
- options
88
- ]);
89
- // 自适应防抖进度更新函数(使用 requestAnimationFrame 优化)
90
- const debouncedProgressUpdate = (0, _react.useCallback)((progressValue, step)=>{
91
- // 取消之前的更新
92
- if (rafRef.current !== null) {
93
- cancelAnimationFrame(rafRef.current);
94
- }
95
- // 记录进度历史用于时间预估
96
- const now = Date.now();
97
- progressHistoryRef.current.push({
98
- progress: progressValue,
99
- time: now
100
- });
101
- // 只保留最近10个记录
102
- if (progressHistoryRef.current.length > 10) {
103
- progressHistoryRef.current.shift();
104
- }
105
- // 计算预估时间
106
- if (progressHistoryRef.current.length >= 2 && progressValue > 0) {
107
- const history = progressHistoryRef.current;
108
- const first = history[0];
109
- const last = history[history.length - 1];
110
- const progressDelta = last.progress - first.progress;
111
- const timeDelta = last.time - first.time;
112
- if (progressDelta > 0 && timeDelta > 0) {
113
- const progressPerMs = progressDelta / timeDelta;
114
- const remainingProgress = 100 - progressValue;
115
- const estimatedMs = remainingProgress / progressPerMs;
116
- setEstimatedTime(Math.max(0, Math.round(estimatedMs)));
117
- }
118
- }
119
- // 使用 requestAnimationFrame 优化更新
120
- rafRef.current = requestAnimationFrame(()=>{
121
- setProgress(progressValue);
122
- if (step) {
123
- setCurrentStep(step);
124
- }
125
- lastProgressRef.current = progressValue;
126
- rafRef.current = null;
127
- });
128
- }, []);
129
- (0, _react.useEffect)(()=>{
130
- if (hasCompletedRef.current) return;
131
- hasCompletedRef.current = true;
132
- startTimeRef.current = Date.now();
133
- const performInitialization = async ()=>{
134
- try {
135
- setIsInitializing(true);
136
- setProgress(0);
137
- setCurrentStep('开始初始化...');
138
- _logger.logger.info('启动页开始执行初始化');
139
- // 执行初始化,传入防抖的进度回调
140
- const context = await (0, _initialization.initialization)(optionsRef.current, (progressValue, step)=>{
141
- debouncedProgressUpdate(progressValue, step);
142
- });
143
- _logger.logger.info('启动页初始化完成', context);
144
- // 动态调整最小显示时间(如果初始化很快,减少最小显示时间)
145
- const elapsedTime = Date.now() - startTimeRef.current;
146
- const dynamicMinTime = elapsedTime < 200 ? Math.min(minDisplayTimeRef.current, 300) : minDisplayTimeRef.current;
147
- const remainingTime = Math.max(0, dynamicMinTime - elapsedTime);
148
- if (remainingTime > 0) {
149
- await new Promise((resolve)=>setTimeout(resolve, remainingTime));
150
- }
151
- // 清理防抖定时器
152
- if (progressUpdateTimerRef.current) {
153
- clearTimeout(progressUpdateTimerRef.current);
154
- progressUpdateTimerRef.current = null;
155
- }
156
- // 确保进度条显示 100%
157
- setProgress(100);
158
- setCurrentStep('初始化完成');
159
- // 初始化完成,调用回调
160
- onCompleteRef.current(context);
161
- } catch (error) {
162
- _logger.logger.error('启动页初始化失败:', error);
163
- // 设置错误状态,让 ErrorBoundary 能够捕获
164
- _initialization.initializationErrorState.setError(error);
165
- setCurrentStep('初始化失败,请刷新页面重试');
166
- // 即使失败也调用 onComplete,让应用能够处理错误
167
- onCompleteRef.current({
168
- config: {},
169
- progress: 0,
170
- isReady: false,
171
- duration: 0
172
- });
173
- } finally{
174
- setIsInitializing(false);
175
- }
176
- };
177
- performInitialization();
178
- // 清理函数
179
- return ()=>{
180
- if (progressUpdateTimerRef.current) {
181
- clearTimeout(progressUpdateTimerRef.current);
182
- }
183
- if (rafRef.current !== null) {
184
- cancelAnimationFrame(rafRef.current);
185
- }
186
- };
187
- }, [
188
- debouncedProgressUpdate
189
- ]);
190
- (0, _react.useEffect)(()=>{
191
- if (typeof window === 'undefined') {
192
- return;
193
- }
194
- const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
195
- const onSystemThemeChange = (event)=>{
196
- setIsSystemDark(event.matches);
197
- };
198
- setIsSystemDark(mediaQuery.matches);
199
- if (typeof mediaQuery.addEventListener === 'function') {
200
- mediaQuery.addEventListener('change', onSystemThemeChange);
201
- return ()=>mediaQuery.removeEventListener('change', onSystemThemeChange);
202
- }
203
- mediaQuery.addListener(onSystemThemeChange);
204
- return ()=>mediaQuery.removeListener(onSystemThemeChange);
205
- }, []);
206
- const resolvedMode = _react.default.useMemo(()=>{
207
- const mode = optionsRef.current.theme?.mode || 'light';
208
- if (mode === 'system') {
209
- return isSystemDark ? 'dark' : 'light';
210
- }
211
- return mode === 'dark' ? 'dark' : 'light';
212
- }, [
213
- isSystemDark
214
- ]);
215
- const palette = _react.default.useMemo(()=>{
216
- if (resolvedMode === 'dark') {
217
- return {
218
- background: '#0b1220',
219
- text: '#e2e8f0',
220
- subText: '#94a3b8',
221
- track: '#1f2937',
222
- spinnerTrack: '#334155'
223
- };
224
- }
225
- return {
226
- background: '#f5f7fb',
227
- text: '#51606f',
228
- subText: '#94a3b8',
229
- track: '#e9eff5',
230
- spinnerTrack: '#d9e2ec'
231
- };
232
- }, [
233
- resolvedMode
234
- ]);
235
- // 如果提供了自定义启动屏组件,使用自定义组件
236
- const CustomSplashScreen = optionsRef.current.splashScreen;
237
- if (CustomSplashScreen) {
238
- const customProps = {
239
- progress,
240
- currentStep,
241
- isInitializing
242
- };
243
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(CustomSplashScreen, {
244
- ...customProps
245
- });
246
- }
247
- // 默认启动屏 UI
248
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
249
- role: "status",
250
- "aria-live": "polite",
251
- "aria-label": "应用正在加载",
252
- style: {
253
- display: 'flex',
254
- flexDirection: 'column',
255
- alignItems: 'center',
256
- justifyContent: 'center',
257
- height: '100vh',
258
- width: '100%',
259
- gap: 24,
260
- background: palette.background,
261
- color: palette.text
262
- },
263
- children: [
264
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
265
- "aria-label": "加载中",
266
- style: {
267
- width: 42,
268
- height: 42,
269
- border: `4px solid ${palette.spinnerTrack}`,
270
- borderTopColor: 'var(--app-primary-color, #2f80ed)',
271
- borderRadius: '50%',
272
- animation: 'secra-spin 1s linear infinite'
273
- }
274
- }),
275
- /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
276
- style: {
277
- width: '300px'
278
- },
279
- children: [
280
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
281
- "aria-label": `加载进度 ${progress}%`,
282
- style: {
283
- height: 12,
284
- background: palette.track,
285
- borderRadius: 999,
286
- overflow: 'hidden'
287
- },
288
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
289
- style: {
290
- width: `${Math.max(0, Math.min(100, progress))}%`,
291
- height: '100%',
292
- background: 'var(--app-primary-color, #2f80ed)',
293
- transition: 'width 0.2s ease'
294
- }
295
- })
296
- }),
297
- /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
298
- style: {
299
- marginTop: 8,
300
- textAlign: 'right',
301
- fontSize: 12,
302
- color: palette.text
303
- },
304
- children: [
305
- progress,
306
- "%"
307
- ]
308
- })
309
- ]
310
- }),
311
- /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
312
- role: "status",
313
- "aria-live": "polite",
314
- style: {
315
- fontSize: 14,
316
- color: palette.text,
317
- textAlign: 'center'
318
- },
319
- children: [
320
- currentStep,
321
- estimatedTime !== null && estimatedTime > 0 && /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
322
- style: {
323
- fontSize: 12,
324
- color: palette.subText,
325
- marginTop: 8
326
- },
327
- children: [
328
- "预计还需 ",
329
- Math.ceil(estimatedTime / 1000),
330
- " 秒"
331
- ]
332
- })
333
- ]
334
- }),
335
- /*#__PURE__*/ (0, _jsxruntime.jsx)("style", {
336
- children: `@keyframes secra-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }`
337
- })
338
- ]
339
- });
340
- });
341
- SplashScreen.displayName = 'SplashScreen';
342
-
343
- //# sourceMappingURL=SplashScreen.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"SplashScreen",{enumerable:true,get:function(){return SplashScreen}});const _jsxruntime=require("react/jsx-runtime");const _react=/*#__PURE__*/_interop_require_wildcard(require("react"));const _logger=require("@vlian/logger");const _initialization=require("../initialization");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interop_require_wildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={__proto__:null};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}const SplashScreen=(0,_react.memo)(({options,onComplete})=>{const[progress,setProgress]=(0,_react.useState)(0);const[currentStep,setCurrentStep]=(0,_react.useState)("准备初始化...");const[isInitializing,setIsInitializing]=(0,_react.useState)(false);const[estimatedTime,setEstimatedTime]=(0,_react.useState)(null);const[isSystemDark,setIsSystemDark]=(0,_react.useState)(()=>{if(typeof window==="undefined"){return false}return window.matchMedia("(prefers-color-scheme: dark)").matches});const hasCompletedRef=(0,_react.useRef)(false);const onCompleteRef=(0,_react.useRef)(onComplete);const optionsRef=(0,_react.useRef)(options);const startTimeRef=(0,_react.useRef)(Date.now());const minDisplayTimeRef=(0,_react.useRef)(options.minSplashScreenTime??500);const progressUpdateTimerRef=(0,_react.useRef)(null);const rafRef=(0,_react.useRef)(null);const lastProgressRef=(0,_react.useRef)(0);const progressHistoryRef=(0,_react.useRef)([]);(0,_react.useEffect)(()=>{onCompleteRef.current=onComplete;optionsRef.current=options;minDisplayTimeRef.current=options.minSplashScreenTime??500},[onComplete,options]);const debouncedProgressUpdate=(0,_react.useCallback)((progressValue,step)=>{if(rafRef.current!==null){cancelAnimationFrame(rafRef.current)}const now=Date.now();progressHistoryRef.current.push({progress:progressValue,time:now});if(progressHistoryRef.current.length>10){progressHistoryRef.current.shift()}if(progressHistoryRef.current.length>=2&&progressValue>0){const history=progressHistoryRef.current;const first=history[0];const last=history[history.length-1];const progressDelta=last.progress-first.progress;const timeDelta=last.time-first.time;if(progressDelta>0&&timeDelta>0){const progressPerMs=progressDelta/timeDelta;const remainingProgress=100-progressValue;const estimatedMs=remainingProgress/progressPerMs;setEstimatedTime(Math.max(0,Math.round(estimatedMs)))}}rafRef.current=requestAnimationFrame(()=>{setProgress(progressValue);if(step){setCurrentStep(step)}lastProgressRef.current=progressValue;rafRef.current=null})},[]);(0,_react.useEffect)(()=>{if(hasCompletedRef.current)return;hasCompletedRef.current=true;startTimeRef.current=Date.now();const performInitialization=async()=>{try{setIsInitializing(true);setProgress(0);setCurrentStep("开始初始化...");_logger.logger.info("启动页开始执行初始化");const context=await (0,_initialization.initialization)(optionsRef.current,(progressValue,step)=>{debouncedProgressUpdate(progressValue,step)});_logger.logger.info("启动页初始化完成",context);const elapsedTime=Date.now()-startTimeRef.current;const dynamicMinTime=elapsedTime<200?Math.min(minDisplayTimeRef.current,300):minDisplayTimeRef.current;const remainingTime=Math.max(0,dynamicMinTime-elapsedTime);if(remainingTime>0){await new Promise(resolve=>setTimeout(resolve,remainingTime))}if(progressUpdateTimerRef.current){clearTimeout(progressUpdateTimerRef.current);progressUpdateTimerRef.current=null}setProgress(100);setCurrentStep("初始化完成");onCompleteRef.current(context)}catch(error){_logger.logger.error("启动页初始化失败:",error);_initialization.initializationErrorState.setError(error);setCurrentStep("初始化失败,请刷新页面重试");onCompleteRef.current({config:{},progress:0,isReady:false,duration:0})}finally{setIsInitializing(false)}};performInitialization();return()=>{if(progressUpdateTimerRef.current){clearTimeout(progressUpdateTimerRef.current)}if(rafRef.current!==null){cancelAnimationFrame(rafRef.current)}}},[debouncedProgressUpdate]);(0,_react.useEffect)(()=>{if(typeof window==="undefined"){return}const mediaQuery=window.matchMedia("(prefers-color-scheme: dark)");const onSystemThemeChange=event=>{setIsSystemDark(event.matches)};setIsSystemDark(mediaQuery.matches);if(typeof mediaQuery.addEventListener==="function"){mediaQuery.addEventListener("change",onSystemThemeChange);return()=>mediaQuery.removeEventListener("change",onSystemThemeChange)}mediaQuery.addListener(onSystemThemeChange);return()=>mediaQuery.removeListener(onSystemThemeChange)},[]);const resolvedMode=_react.default.useMemo(()=>{const mode=optionsRef.current.theme?.mode||"light";if(mode==="system"){return isSystemDark?"dark":"light"}return mode==="dark"?"dark":"light"},[isSystemDark]);const palette=_react.default.useMemo(()=>{if(resolvedMode==="dark"){return{background:"#0b1220",text:"#e2e8f0",subText:"#94a3b8",track:"#1f2937",spinnerTrack:"#334155"}}return{background:"#f5f7fb",text:"#51606f",subText:"#94a3b8",track:"#e9eff5",spinnerTrack:"#d9e2ec"}},[resolvedMode]);const CustomSplashScreen=optionsRef.current.splashScreen;if(CustomSplashScreen){const customProps={progress,currentStep,isInitializing};return(0,_jsxruntime.jsx)(CustomSplashScreen,{...customProps})}return(0,_jsxruntime.jsxs)("div",{role:"status","aria-live":"polite","aria-label":"应用正在加载",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100vh",width:"100%",gap:24,background:palette.background,color:palette.text},children:[(0,_jsxruntime.jsx)("div",{"aria-label":"加载中",style:{width:42,height:42,border:`4px solid ${palette.spinnerTrack}`,borderTopColor:"var(--app-primary-color, #2f80ed)",borderRadius:"50%",animation:"secra-spin 1s linear infinite"}}),(0,_jsxruntime.jsxs)("div",{style:{width:"300px"},children:[(0,_jsxruntime.jsx)("div",{"aria-label":`加载进度 ${progress}%`,style:{height:12,background:palette.track,borderRadius:999,overflow:"hidden"},children:(0,_jsxruntime.jsx)("div",{style:{width:`${Math.max(0,Math.min(100,progress))}%`,height:"100%",background:"var(--app-primary-color, #2f80ed)",transition:"width 0.2s ease"}})}),(0,_jsxruntime.jsxs)("div",{style:{marginTop:8,textAlign:"right",fontSize:12,color:palette.text},children:[progress,"%"]})]}),(0,_jsxruntime.jsxs)("div",{role:"status","aria-live":"polite",style:{fontSize:14,color:palette.text,textAlign:"center"},children:[currentStep,estimatedTime!==null&&estimatedTime>0&&(0,_jsxruntime.jsxs)("div",{style:{fontSize:12,color:palette.subText,marginTop:8},children:["预计还需 ",Math.ceil(estimatedTime/1e3)," 秒"]})]}),(0,_jsxruntime.jsx)("style",{children:`@keyframes secra-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }`})]})});SplashScreen.displayName="SplashScreen";
@@ -1,293 +1 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useEffect, useState, useRef, memo, useCallback } from "react";
3
- import { logger } from "@vlian/logger";
4
- import { initialization, initializationErrorState } from "../initialization";
5
- /**
6
- * 启动页组件
7
- *
8
- * 在启动页中执行初始化,并使用 Ant Design 5 的 Spin 和 Progress 组件展示启动进度
9
- */ const SplashScreen = /*#__PURE__*/ memo(({ options, onComplete })=>{
10
- const [progress, setProgress] = useState(0);
11
- const [currentStep, setCurrentStep] = useState('准备初始化...');
12
- const [isInitializing, setIsInitializing] = useState(false);
13
- const [estimatedTime, setEstimatedTime] = useState(null);
14
- const [isSystemDark, setIsSystemDark] = useState(()=>{
15
- if (typeof window === 'undefined') {
16
- return false;
17
- }
18
- return window.matchMedia('(prefers-color-scheme: dark)').matches;
19
- });
20
- const hasCompletedRef = useRef(false);
21
- const onCompleteRef = useRef(onComplete);
22
- const optionsRef = useRef(options);
23
- const startTimeRef = useRef(Date.now());
24
- const minDisplayTimeRef = useRef(options.minSplashScreenTime ?? 500); // 最小显示时间,默认 500ms
25
- const progressUpdateTimerRef = useRef(null);
26
- const rafRef = useRef(null);
27
- const lastProgressRef = useRef(0);
28
- const progressHistoryRef = useRef([]);
29
- // 保持引用最新
30
- useEffect(()=>{
31
- onCompleteRef.current = onComplete;
32
- optionsRef.current = options;
33
- minDisplayTimeRef.current = options.minSplashScreenTime ?? 500;
34
- }, [
35
- onComplete,
36
- options
37
- ]);
38
- // 自适应防抖进度更新函数(使用 requestAnimationFrame 优化)
39
- const debouncedProgressUpdate = useCallback((progressValue, step)=>{
40
- // 取消之前的更新
41
- if (rafRef.current !== null) {
42
- cancelAnimationFrame(rafRef.current);
43
- }
44
- // 记录进度历史用于时间预估
45
- const now = Date.now();
46
- progressHistoryRef.current.push({
47
- progress: progressValue,
48
- time: now
49
- });
50
- // 只保留最近10个记录
51
- if (progressHistoryRef.current.length > 10) {
52
- progressHistoryRef.current.shift();
53
- }
54
- // 计算预估时间
55
- if (progressHistoryRef.current.length >= 2 && progressValue > 0) {
56
- const history = progressHistoryRef.current;
57
- const first = history[0];
58
- const last = history[history.length - 1];
59
- const progressDelta = last.progress - first.progress;
60
- const timeDelta = last.time - first.time;
61
- if (progressDelta > 0 && timeDelta > 0) {
62
- const progressPerMs = progressDelta / timeDelta;
63
- const remainingProgress = 100 - progressValue;
64
- const estimatedMs = remainingProgress / progressPerMs;
65
- setEstimatedTime(Math.max(0, Math.round(estimatedMs)));
66
- }
67
- }
68
- // 使用 requestAnimationFrame 优化更新
69
- rafRef.current = requestAnimationFrame(()=>{
70
- setProgress(progressValue);
71
- if (step) {
72
- setCurrentStep(step);
73
- }
74
- lastProgressRef.current = progressValue;
75
- rafRef.current = null;
76
- });
77
- }, []);
78
- useEffect(()=>{
79
- if (hasCompletedRef.current) return;
80
- hasCompletedRef.current = true;
81
- startTimeRef.current = Date.now();
82
- const performInitialization = async ()=>{
83
- try {
84
- setIsInitializing(true);
85
- setProgress(0);
86
- setCurrentStep('开始初始化...');
87
- logger.info('启动页开始执行初始化');
88
- // 执行初始化,传入防抖的进度回调
89
- const context = await initialization(optionsRef.current, (progressValue, step)=>{
90
- debouncedProgressUpdate(progressValue, step);
91
- });
92
- logger.info('启动页初始化完成', context);
93
- // 动态调整最小显示时间(如果初始化很快,减少最小显示时间)
94
- const elapsedTime = Date.now() - startTimeRef.current;
95
- const dynamicMinTime = elapsedTime < 200 ? Math.min(minDisplayTimeRef.current, 300) : minDisplayTimeRef.current;
96
- const remainingTime = Math.max(0, dynamicMinTime - elapsedTime);
97
- if (remainingTime > 0) {
98
- await new Promise((resolve)=>setTimeout(resolve, remainingTime));
99
- }
100
- // 清理防抖定时器
101
- if (progressUpdateTimerRef.current) {
102
- clearTimeout(progressUpdateTimerRef.current);
103
- progressUpdateTimerRef.current = null;
104
- }
105
- // 确保进度条显示 100%
106
- setProgress(100);
107
- setCurrentStep('初始化完成');
108
- // 初始化完成,调用回调
109
- onCompleteRef.current(context);
110
- } catch (error) {
111
- logger.error('启动页初始化失败:', error);
112
- // 设置错误状态,让 ErrorBoundary 能够捕获
113
- initializationErrorState.setError(error);
114
- setCurrentStep('初始化失败,请刷新页面重试');
115
- // 即使失败也调用 onComplete,让应用能够处理错误
116
- onCompleteRef.current({
117
- config: {},
118
- progress: 0,
119
- isReady: false,
120
- duration: 0
121
- });
122
- } finally{
123
- setIsInitializing(false);
124
- }
125
- };
126
- performInitialization();
127
- // 清理函数
128
- return ()=>{
129
- if (progressUpdateTimerRef.current) {
130
- clearTimeout(progressUpdateTimerRef.current);
131
- }
132
- if (rafRef.current !== null) {
133
- cancelAnimationFrame(rafRef.current);
134
- }
135
- };
136
- }, [
137
- debouncedProgressUpdate
138
- ]);
139
- useEffect(()=>{
140
- if (typeof window === 'undefined') {
141
- return;
142
- }
143
- const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
144
- const onSystemThemeChange = (event)=>{
145
- setIsSystemDark(event.matches);
146
- };
147
- setIsSystemDark(mediaQuery.matches);
148
- if (typeof mediaQuery.addEventListener === 'function') {
149
- mediaQuery.addEventListener('change', onSystemThemeChange);
150
- return ()=>mediaQuery.removeEventListener('change', onSystemThemeChange);
151
- }
152
- mediaQuery.addListener(onSystemThemeChange);
153
- return ()=>mediaQuery.removeListener(onSystemThemeChange);
154
- }, []);
155
- const resolvedMode = React.useMemo(()=>{
156
- const mode = optionsRef.current.theme?.mode || 'light';
157
- if (mode === 'system') {
158
- return isSystemDark ? 'dark' : 'light';
159
- }
160
- return mode === 'dark' ? 'dark' : 'light';
161
- }, [
162
- isSystemDark
163
- ]);
164
- const palette = React.useMemo(()=>{
165
- if (resolvedMode === 'dark') {
166
- return {
167
- background: '#0b1220',
168
- text: '#e2e8f0',
169
- subText: '#94a3b8',
170
- track: '#1f2937',
171
- spinnerTrack: '#334155'
172
- };
173
- }
174
- return {
175
- background: '#f5f7fb',
176
- text: '#51606f',
177
- subText: '#94a3b8',
178
- track: '#e9eff5',
179
- spinnerTrack: '#d9e2ec'
180
- };
181
- }, [
182
- resolvedMode
183
- ]);
184
- // 如果提供了自定义启动屏组件,使用自定义组件
185
- const CustomSplashScreen = optionsRef.current.splashScreen;
186
- if (CustomSplashScreen) {
187
- const customProps = {
188
- progress,
189
- currentStep,
190
- isInitializing
191
- };
192
- return /*#__PURE__*/ _jsx(CustomSplashScreen, {
193
- ...customProps
194
- });
195
- }
196
- // 默认启动屏 UI
197
- return /*#__PURE__*/ _jsxs("div", {
198
- role: "status",
199
- "aria-live": "polite",
200
- "aria-label": "应用正在加载",
201
- style: {
202
- display: 'flex',
203
- flexDirection: 'column',
204
- alignItems: 'center',
205
- justifyContent: 'center',
206
- height: '100vh',
207
- width: '100%',
208
- gap: 24,
209
- background: palette.background,
210
- color: palette.text
211
- },
212
- children: [
213
- /*#__PURE__*/ _jsx("div", {
214
- "aria-label": "加载中",
215
- style: {
216
- width: 42,
217
- height: 42,
218
- border: `4px solid ${palette.spinnerTrack}`,
219
- borderTopColor: 'var(--app-primary-color, #2f80ed)',
220
- borderRadius: '50%',
221
- animation: 'secra-spin 1s linear infinite'
222
- }
223
- }),
224
- /*#__PURE__*/ _jsxs("div", {
225
- style: {
226
- width: '300px'
227
- },
228
- children: [
229
- /*#__PURE__*/ _jsx("div", {
230
- "aria-label": `加载进度 ${progress}%`,
231
- style: {
232
- height: 12,
233
- background: palette.track,
234
- borderRadius: 999,
235
- overflow: 'hidden'
236
- },
237
- children: /*#__PURE__*/ _jsx("div", {
238
- style: {
239
- width: `${Math.max(0, Math.min(100, progress))}%`,
240
- height: '100%',
241
- background: 'var(--app-primary-color, #2f80ed)',
242
- transition: 'width 0.2s ease'
243
- }
244
- })
245
- }),
246
- /*#__PURE__*/ _jsxs("div", {
247
- style: {
248
- marginTop: 8,
249
- textAlign: 'right',
250
- fontSize: 12,
251
- color: palette.text
252
- },
253
- children: [
254
- progress,
255
- "%"
256
- ]
257
- })
258
- ]
259
- }),
260
- /*#__PURE__*/ _jsxs("div", {
261
- role: "status",
262
- "aria-live": "polite",
263
- style: {
264
- fontSize: 14,
265
- color: palette.text,
266
- textAlign: 'center'
267
- },
268
- children: [
269
- currentStep,
270
- estimatedTime !== null && estimatedTime > 0 && /*#__PURE__*/ _jsxs("div", {
271
- style: {
272
- fontSize: 12,
273
- color: palette.subText,
274
- marginTop: 8
275
- },
276
- children: [
277
- "预计还需 ",
278
- Math.ceil(estimatedTime / 1000),
279
- " 秒"
280
- ]
281
- })
282
- ]
283
- }),
284
- /*#__PURE__*/ _jsx("style", {
285
- children: `@keyframes secra-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }`
286
- })
287
- ]
288
- });
289
- });
290
- SplashScreen.displayName = 'SplashScreen';
291
- export { SplashScreen };
292
-
293
- //# sourceMappingURL=SplashScreen.js.map
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import React,{useEffect,useState,useRef,memo,useCallback}from"react";import{logger}from"@vlian/logger";import{initialization,initializationErrorState}from"../initialization";const SplashScreen=memo(({options,onComplete})=>{const[progress,setProgress]=useState(0);const[currentStep,setCurrentStep]=useState("准备初始化...");const[isInitializing,setIsInitializing]=useState(false);const[estimatedTime,setEstimatedTime]=useState(null);const[isSystemDark,setIsSystemDark]=useState(()=>{if(typeof window==="undefined"){return false}return window.matchMedia("(prefers-color-scheme: dark)").matches});const hasCompletedRef=useRef(false);const onCompleteRef=useRef(onComplete);const optionsRef=useRef(options);const startTimeRef=useRef(Date.now());const minDisplayTimeRef=useRef(options.minSplashScreenTime??500);const progressUpdateTimerRef=useRef(null);const rafRef=useRef(null);const lastProgressRef=useRef(0);const progressHistoryRef=useRef([]);useEffect(()=>{onCompleteRef.current=onComplete;optionsRef.current=options;minDisplayTimeRef.current=options.minSplashScreenTime??500},[onComplete,options]);const debouncedProgressUpdate=useCallback((progressValue,step)=>{if(rafRef.current!==null){cancelAnimationFrame(rafRef.current)}const now=Date.now();progressHistoryRef.current.push({progress:progressValue,time:now});if(progressHistoryRef.current.length>10){progressHistoryRef.current.shift()}if(progressHistoryRef.current.length>=2&&progressValue>0){const history=progressHistoryRef.current;const first=history[0];const last=history[history.length-1];const progressDelta=last.progress-first.progress;const timeDelta=last.time-first.time;if(progressDelta>0&&timeDelta>0){const progressPerMs=progressDelta/timeDelta;const remainingProgress=100-progressValue;const estimatedMs=remainingProgress/progressPerMs;setEstimatedTime(Math.max(0,Math.round(estimatedMs)))}}rafRef.current=requestAnimationFrame(()=>{setProgress(progressValue);if(step){setCurrentStep(step)}lastProgressRef.current=progressValue;rafRef.current=null})},[]);useEffect(()=>{if(hasCompletedRef.current)return;hasCompletedRef.current=true;startTimeRef.current=Date.now();const performInitialization=async()=>{try{setIsInitializing(true);setProgress(0);setCurrentStep("开始初始化...");logger.info("启动页开始执行初始化");const context=await initialization(optionsRef.current,(progressValue,step)=>{debouncedProgressUpdate(progressValue,step)});logger.info("启动页初始化完成",context);const elapsedTime=Date.now()-startTimeRef.current;const dynamicMinTime=elapsedTime<200?Math.min(minDisplayTimeRef.current,300):minDisplayTimeRef.current;const remainingTime=Math.max(0,dynamicMinTime-elapsedTime);if(remainingTime>0){await new Promise(resolve=>setTimeout(resolve,remainingTime))}if(progressUpdateTimerRef.current){clearTimeout(progressUpdateTimerRef.current);progressUpdateTimerRef.current=null}setProgress(100);setCurrentStep("初始化完成");onCompleteRef.current(context)}catch(error){logger.error("启动页初始化失败:",error);initializationErrorState.setError(error);setCurrentStep("初始化失败,请刷新页面重试");onCompleteRef.current({config:{},progress:0,isReady:false,duration:0})}finally{setIsInitializing(false)}};performInitialization();return()=>{if(progressUpdateTimerRef.current){clearTimeout(progressUpdateTimerRef.current)}if(rafRef.current!==null){cancelAnimationFrame(rafRef.current)}}},[debouncedProgressUpdate]);useEffect(()=>{if(typeof window==="undefined"){return}const mediaQuery=window.matchMedia("(prefers-color-scheme: dark)");const onSystemThemeChange=event=>{setIsSystemDark(event.matches)};setIsSystemDark(mediaQuery.matches);if(typeof mediaQuery.addEventListener==="function"){mediaQuery.addEventListener("change",onSystemThemeChange);return()=>mediaQuery.removeEventListener("change",onSystemThemeChange)}mediaQuery.addListener(onSystemThemeChange);return()=>mediaQuery.removeListener(onSystemThemeChange)},[]);const resolvedMode=React.useMemo(()=>{const mode=optionsRef.current.theme?.mode||"light";if(mode==="system"){return isSystemDark?"dark":"light"}return mode==="dark"?"dark":"light"},[isSystemDark]);const palette=React.useMemo(()=>{if(resolvedMode==="dark"){return{background:"#0b1220",text:"#e2e8f0",subText:"#94a3b8",track:"#1f2937",spinnerTrack:"#334155"}}return{background:"#f5f7fb",text:"#51606f",subText:"#94a3b8",track:"#e9eff5",spinnerTrack:"#d9e2ec"}},[resolvedMode]);const CustomSplashScreen=optionsRef.current.splashScreen;if(CustomSplashScreen){const customProps={progress,currentStep,isInitializing};return _jsx(CustomSplashScreen,{...customProps})}return _jsxs("div",{role:"status","aria-live":"polite","aria-label":"应用正在加载",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100vh",width:"100%",gap:24,background:palette.background,color:palette.text},children:[_jsx("div",{"aria-label":"加载中",style:{width:42,height:42,border:`4px solid ${palette.spinnerTrack}`,borderTopColor:"var(--app-primary-color, #2f80ed)",borderRadius:"50%",animation:"secra-spin 1s linear infinite"}}),_jsxs("div",{style:{width:"300px"},children:[_jsx("div",{"aria-label":`加载进度 ${progress}%`,style:{height:12,background:palette.track,borderRadius:999,overflow:"hidden"},children:_jsx("div",{style:{width:`${Math.max(0,Math.min(100,progress))}%`,height:"100%",background:"var(--app-primary-color, #2f80ed)",transition:"width 0.2s ease"}})}),_jsxs("div",{style:{marginTop:8,textAlign:"right",fontSize:12,color:palette.text},children:[progress,"%"]})]}),_jsxs("div",{role:"status","aria-live":"polite",style:{fontSize:14,color:palette.text,textAlign:"center"},children:[currentStep,estimatedTime!==null&&estimatedTime>0&&_jsxs("div",{style:{fontSize:12,color:palette.subText,marginTop:8},children:["预计还需 ",Math.ceil(estimatedTime/1e3)," 秒"]})]}),_jsx("style",{children:`@keyframes secra-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }`})]})});SplashScreen.displayName="SplashScreen";export{SplashScreen};