@_tc/template-core 0.2.11 → 0.3.0

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 (403) hide show
  1. package/.skills/tc-component-usage-skills/SKILL.md +7 -9
  2. package/.skills/tc-component-usage-skills/reference/component-api.md +2 -2
  3. package/.skills/tc-component-usage-skills/reference/examples.md +9 -9
  4. package/.skills/tc-component-usage-skills/reference/patterns.md +5 -5
  5. package/.skills/tc-component-usage-skills/reference/template-core-frontend.md +1 -1
  6. package/.skills/tc-generator/SKILL.md +30 -14
  7. package/.skills/tc-generator/reference/example.md +4 -4
  8. package/.skills/tc-generator/reference/model-schema.md +9 -5
  9. package/.skills/tc-generator/reference/runtime-extensions.md +9 -7
  10. package/AGENT_README.md +52 -33
  11. package/CHANGE.md +91 -0
  12. package/README.md +147 -46
  13. package/cjs/app/controller/ssr.js +1 -0
  14. package/cjs/app/controller/view.js +1 -1
  15. package/cjs/app/html/shell.js +36 -0
  16. package/cjs/app/middleware.js +1 -1
  17. package/cjs/app/router/ssr.js +1 -0
  18. package/cjs/app/router/view.js +1 -1
  19. package/cjs/app/ssr/html.js +17 -0
  20. package/cjs/app/ssr/manifest.js +2 -0
  21. package/cjs/app/view/entry.tpl +2 -37
  22. package/cjs/bundler/buildBE.js +1 -1
  23. package/cjs/bundler/buildSSR.js +1 -0
  24. package/cjs/bundler/entryCollect.js +1 -0
  25. package/cjs/bundler/feSharedConfig.js +1 -0
  26. package/cjs/bundler/index.js +1 -1
  27. package/cjs/bundler/ssrClientManifest.js +1 -0
  28. package/cjs/bundler/ssrEntries.js +1 -0
  29. package/cjs/bundler/utils.js +3 -3
  30. package/cjs/packages/common/i18n/index.js +1 -1
  31. package/cjs/packages/common/index.js +1 -1
  32. package/cjs/packages/common/ssr/hydration.js +1 -0
  33. package/cjs/packages/common/ssr/index.js +1 -0
  34. package/cjs/packages/core/index.js +1 -1
  35. package/cjs/packages/core/loader/controller.js +1 -1
  36. package/cjs/packages/core/loader/extend.js +1 -1
  37. package/cjs/packages/core/loader/merge.js +1 -0
  38. package/cjs/packages/core/loader/middleware.js +1 -1
  39. package/cjs/packages/core/loader/model.js +1 -1
  40. package/cjs/packages/core/loader/router-schema.js +1 -1
  41. package/cjs/packages/core/loader/router.js +1 -1
  42. package/cjs/packages/core/loader/service.js +1 -1
  43. package/cjs/packages/core/paths.js +1 -1
  44. package/cjs/scripts/vite-build/build.js +3 -3
  45. package/cjs/scripts/vite-build/collect.js +1 -1
  46. package/cjs/scripts/vite-build/dts.js +1 -1
  47. package/cjs/scripts/vite-build/normalize.js +1 -1
  48. package/cjs/ssrSharedData/outputPaths.js +1 -0
  49. package/esm/app/controller/ssr.js +215 -0
  50. package/esm/app/controller/view.js +26 -25
  51. package/esm/app/html/shell.js +69 -0
  52. package/esm/app/middleware.js +18 -9
  53. package/esm/app/router/ssr.js +8 -0
  54. package/esm/app/router/view.js +5 -4
  55. package/esm/app/ssr/html.js +90 -0
  56. package/esm/app/ssr/manifest.js +47 -0
  57. package/esm/app/view/entry.tpl +2 -37
  58. package/esm/bundler/buildBE.js +1 -1
  59. package/esm/bundler/buildSSR.js +126 -0
  60. package/esm/bundler/entryCollect.js +45 -0
  61. package/esm/bundler/feSharedConfig.js +143 -0
  62. package/esm/bundler/index.js +4 -2
  63. package/esm/bundler/ssrClientManifest.js +14 -0
  64. package/esm/bundler/ssrEntries.js +13 -0
  65. package/esm/bundler/utils.js +248 -255
  66. package/esm/packages/common/i18n/index.js +5 -1
  67. package/esm/packages/common/index.js +4 -2
  68. package/esm/packages/common/ssr/hydration.js +55 -0
  69. package/esm/packages/common/ssr/index.js +20 -0
  70. package/esm/packages/core/index.js +42 -42
  71. package/esm/packages/core/loader/controller.js +11 -9
  72. package/esm/packages/core/loader/extend.js +20 -16
  73. package/esm/packages/core/loader/merge.js +7 -0
  74. package/esm/packages/core/loader/middleware.js +11 -12
  75. package/esm/packages/core/loader/model.js +2 -2
  76. package/esm/packages/core/loader/router-schema.js +22 -15
  77. package/esm/packages/core/loader/router.js +32 -26
  78. package/esm/packages/core/loader/service.js +11 -9
  79. package/esm/packages/core/paths.js +9 -1
  80. package/esm/scripts/vite-build/build.js +88 -83
  81. package/esm/scripts/vite-build/collect.js +31 -27
  82. package/esm/scripts/vite-build/dts.js +1 -1
  83. package/esm/scripts/vite-build/normalize.js +6 -3
  84. package/esm/ssrSharedData/outputPaths.js +33 -0
  85. package/fe/frontend/apps/dash/Dashboard.d.ts +5 -1
  86. package/fe/frontend/apps/dash/Dashboard.js +22 -13
  87. package/fe/frontend/apps/dash/types.d.ts +2 -0
  88. package/fe/frontend/src/api/baseInfo.d.ts +1 -1
  89. package/fe/frontend/src/common/CRUD/CRUD.js +1 -1
  90. package/fe/frontend/src/common/CRUD/index.js +1 -1
  91. package/fe/frontend/src/common/menu.d.ts +1 -1
  92. package/fe/frontend/src/common/menu.js +8 -7
  93. package/fe/frontend/src/common/request.js +1 -1
  94. package/fe/frontend/src/common/schemaForm.d.ts +1 -0
  95. package/fe/frontend/src/common/schemaForm.js +12 -0
  96. package/fe/frontend/src/components/AsyncSelect/AsyncSelect.d.ts +1 -1
  97. package/fe/frontend/src/components/Router/basename.d.ts +3 -0
  98. package/fe/frontend/src/components/Router/basename.js +11 -0
  99. package/fe/frontend/src/components/Router/index.d.ts +1 -1
  100. package/fe/frontend/src/components/Router/index.js +3 -1
  101. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/builtIn.d.ts +1 -1
  102. package/fe/frontend/src/defaultPages/SchemaPage/components/SchemaTable/data.d.ts +1 -1
  103. package/fe/frontend/src/defaultPages/SchemaPage/schemaType.d.ts +2 -2
  104. package/fe/frontend/src/defaultPages/SchemaPage/utils/schemaConversion.d.ts +1 -1
  105. package/fe/frontend/src/defaultPages/SidebarSlotPage/SidebarSlotContainer.d.ts +2 -1
  106. package/fe/frontend/src/defaultPages/SidebarSlotPage/SidebarSlotContainer.js +8 -4
  107. package/fe/frontend/src/defaultPages/SidebarSlotPageTmp.js +2 -1
  108. package/fe/frontend/src/exportStore.js +2 -2
  109. package/fe/frontend/src/hooks/useCurrentMenuData.d.ts +1 -1
  110. package/fe/frontend/src/hooks/useCurrentMenuData.js +2 -2
  111. package/fe/frontend/src/hooks/useRouterParams.js +4 -3
  112. package/fe/frontend/src/index.d.ts +1 -0
  113. package/fe/frontend/src/index.js +4 -3
  114. package/fe/frontend/src/main.js +2 -0
  115. package/fe/frontend/src/stores/mode.d.ts +15 -2
  116. package/fe/frontend/src/stores/mode.js +19 -5
  117. package/fe/frontend/src/typing/window.d.ts +2 -0
  118. package/fe/packages/common/LRUCache.js +2 -0
  119. package/fe/packages/common/array/index.js +37 -0
  120. package/fe/packages/common/cache/index.js +2 -0
  121. package/fe/packages/common/guards/index.js +19 -1
  122. package/fe/packages/common/http/index.js +1 -1
  123. package/fe/packages/common/i18n/index.js +8 -4
  124. package/fe/packages/common/i18n/locales.js +1 -1
  125. package/fe/packages/common/i18n/types.d.ts +1 -0
  126. package/fe/packages/common/i18n/types.js +0 -0
  127. package/fe/packages/common/index.d.ts +1 -0
  128. package/fe/packages/common/index.js +17 -0
  129. package/fe/packages/common/log/index.js +146 -0
  130. package/fe/packages/common/number/index.js +11 -0
  131. package/fe/packages/common/object/filterEmpty.js +2 -1
  132. package/fe/packages/common/object/filtereEmpty.js +2 -0
  133. package/fe/packages/common/object/index.js +20 -0
  134. package/fe/packages/common/ssr/hydration.d.ts +23 -0
  135. package/fe/packages/common/ssr/hydration.js +88 -0
  136. package/fe/packages/common/ssr/index.d.ts +8 -0
  137. package/fe/packages/common/ssr/index.js +52 -0
  138. package/fe/packages/common/string/index.js +32 -0
  139. package/fe/packages/common/types/index.js +0 -0
  140. package/fe/packages/react/hooks/index.d.ts +2 -0
  141. package/fe/packages/react/hooks/index.js +3 -1
  142. package/fe/packages/react/hooks/useHydrationData.d.ts +2 -0
  143. package/fe/packages/react/hooks/useHydrationData.js +23 -0
  144. package/fe/packages/react/hooks/useSSR.d.ts +6 -0
  145. package/fe/packages/react/hooks/useSSR.js +46 -0
  146. package/fe/packages/react/ui/components/DataTable/index.js +16 -15
  147. package/fe/packages/react/ui/components/Form/SchemaForm/data.d.ts +3 -2
  148. package/fe/packages/react/ui/components/Form/SchemaForm/data.js +5 -6
  149. package/fe/packages/react/ui/components/Form/SchemaForm/index.d.ts +1 -0
  150. package/fe/packages/react/ui/components/Form/SchemaForm/index.js +2 -2
  151. package/fe/packages/react/ui/components/Form/index.js +2 -1
  152. package/fe/packages/react/ui/components/Input/Input.js +5 -1
  153. package/fe/packages/react/ui/components/Popup/Popup.js +6 -1
  154. package/fe/packages/react/ui/components/index.js +2 -1
  155. package/fe/packages/react/ui/components/testPage/demos/core/DataTableDemo.js +241 -211
  156. package/fe/packages/react/ui/components/testPage/demos/core/DataTableDemo2.js +1 -1
  157. package/fe/packages/react/ui/i18n/I18nProvider.js +4 -0
  158. package/fe/packages/react/ui/index.js +2 -1
  159. package/fe/ssr/apps/dash/dash.entry.d.ts +13 -0
  160. package/fe/ssr/apps/dash/dash.entry.js +162 -0
  161. package/fe/ssr/apps/demo/demo.entry.d.ts +13 -0
  162. package/fe/ssr/apps/demo/demo.entry.js +38 -0
  163. package/fe/ssr/apps/server-data/server-data.entry.d.ts +26 -0
  164. package/fe/ssr/apps/server-data/server-data.entry.js +275 -0
  165. package/fe/ssr/apps/ui-components/ui-components.entry.d.ts +5 -0
  166. package/fe/ssr/apps/ui-components/ui-components.entry.js +17 -0
  167. package/fe/ssr/components/StreamingRender/StreamingCache.d.ts +2 -0
  168. package/fe/ssr/components/StreamingRender/StreamingCache.js +31 -0
  169. package/fe/ssr/components/StreamingRender/StreamingRender.d.ts +3 -0
  170. package/fe/ssr/components/StreamingRender/StreamingRender.js +48 -0
  171. package/fe/ssr/components/StreamingRender/StreamingScript.d.ts +8 -0
  172. package/fe/ssr/components/StreamingRender/StreamingScript.js +58 -0
  173. package/fe/ssr/components/StreamingRender/index.d.ts +4 -0
  174. package/fe/ssr/components/StreamingRender/index.js +5 -0
  175. package/fe/ssr/components/StreamingRender/type.d.ts +9 -0
  176. package/fe/ssr/components/StreamingRender/type.js +0 -0
  177. package/fe/ssr/components/index.d.ts +2 -0
  178. package/fe/ssr/components/index.js +2 -0
  179. package/fe/ssr/createSSREntry.d.ts +6 -0
  180. package/fe/ssr/createSSREntry.js +42 -0
  181. package/fe/ssr/hooks/index.d.ts +1 -0
  182. package/fe/ssr/hooks/index.js +2 -0
  183. package/fe/ssr/hooks/useSuspensePromise.d.ts +1 -0
  184. package/fe/ssr/hooks/useSuspensePromise.js +31 -0
  185. package/fe/ssr/index.d.ts +4 -0
  186. package/fe/ssr/index.js +6 -0
  187. package/fe/ssr/types.d.ts +13 -0
  188. package/fe/ssr/types.js +0 -0
  189. package/{model → models}/frontend/src/typing/window.d.ts +2 -0
  190. package/{model → models}/packages/common/i18n/types.d.ts +1 -0
  191. package/{model → models}/packages/common/index.d.ts +1 -0
  192. package/models/packages/common/ssr/hydration.d.ts +23 -0
  193. package/models/packages/common/ssr/index.d.ts +8 -0
  194. package/{model → models}/packages/react/ui/components/Form/SchemaForm/data.d.ts +3 -2
  195. package/{model → models}/packages/react/ui/components/Form/SchemaForm/index.d.ts +1 -0
  196. package/package.json +43 -6
  197. package/types/app/controller/ssr.d.ts +14 -0
  198. package/types/app/html/shell.d.ts +101 -0
  199. package/types/app/router/ssr.d.ts +6 -0
  200. package/types/app/ssr/html.d.ts +53 -0
  201. package/types/app/ssr/manifest.d.ts +17 -0
  202. package/types/app/typings.d.ts +2 -0
  203. package/types/bundler/buildSSR.d.ts +56 -0
  204. package/types/bundler/entryCollect.d.ts +36 -0
  205. package/types/bundler/feSharedConfig.d.ts +35 -0
  206. package/types/bundler/index.d.ts +4 -0
  207. package/types/bundler/ssrClientManifest.d.ts +4 -0
  208. package/types/bundler/ssrEntries.d.ts +23 -0
  209. package/types/bundler/state.d.ts +2 -2
  210. package/types/bundler/utils.d.ts +35 -2
  211. package/types/config/config.default.d.ts +10 -0
  212. package/types/packages/common/i18n/types.d.ts +2 -0
  213. package/types/packages/common/index.d.ts +1 -0
  214. package/types/packages/common/ssr/hydration.d.ts +72 -0
  215. package/types/packages/common/ssr/index.d.ts +34 -0
  216. package/types/packages/core/loader/merge.d.ts +3 -0
  217. package/types/packages/core/loader/model.d.ts +2 -2
  218. package/types/packages/core/paths.d.ts +5 -0
  219. package/types/packages/core/types.d.ts +10 -1
  220. package/types/scripts/vite-build/build.d.ts +1 -0
  221. package/types/scripts/vite-build/types.d.ts +3 -0
  222. package/types/ssrSharedData/outputPaths.d.ts +59 -0
  223. package/fe/packages/react/hooks/useWatch.test.js +0 -24
  224. package/fe/packages/react/ui/assets/table/no-result.js +0 -4
  225. package/fe/packages/react/ui/components/DataTable/dataTableWidth.test.js +0 -39
  226. package/fe/packages/react/ui/components/InputNumber/inputNumberUtils.test.js +0 -59
  227. /package/.skills/tc-generator/reference/project-template/{model → models}/product/mode.js +0 -0
  228. /package/.skills/tc-generator/reference/project-template/{model → models}/product/project/default.js +0 -0
  229. /package/fe/{model → models}/types/data/button.d.ts +0 -0
  230. /package/fe/{model → models}/types/data/component.d.ts +0 -0
  231. /package/fe/{model → models}/types/data/fetchInfo.d.ts +0 -0
  232. /package/fe/{model → models}/types/data/schema.d.ts +0 -0
  233. /package/fe/{model → models}/types/data/search.d.ts +0 -0
  234. /package/fe/{model → models}/types/index.d.ts +0 -0
  235. /package/fe/{model → models}/types/menuType.d.ts +0 -0
  236. /package/fe/{model → models}/types/model.d.ts +0 -0
  237. /package/{model → models}/frontend/extended/SchemaForm/data.d.ts +0 -0
  238. /package/{model → models}/frontend/src/common/auth/index.d.ts +0 -0
  239. /package/{model → models}/frontend/src/common/fetchErrorShow.d.ts +0 -0
  240. /package/{model → models}/frontend/src/common/language.d.ts +0 -0
  241. /package/{model → models}/frontend/src/common/logFn/index.d.ts +0 -0
  242. /package/{model → models}/frontend/src/common/request.d.ts +0 -0
  243. /package/{model → models}/frontend/src/components/AsyncSelect/AsyncSelect.d.ts +0 -0
  244. /package/{model → models}/frontend/src/components/AsyncSelect/index.d.ts +0 -0
  245. /package/{model → models}/frontend/src/defaultPages/SchemaPage/components/CallCom/DetailPanel.d.ts +0 -0
  246. /package/{model → models}/frontend/src/defaultPages/SchemaPage/components/CallCom/PopFrom.d.ts +0 -0
  247. /package/{model → models}/frontend/src/defaultPages/SchemaPage/components/CallCom/builtIn.d.ts +0 -0
  248. /package/{model → models}/frontend/src/defaultPages/SchemaPage/data/eventInfo.d.ts +0 -0
  249. /package/{model → models}/frontend/src/defaultPages/SchemaPage/data/index.d.ts +0 -0
  250. /package/{model → models}/frontend/src/defaultPages/SchemaPage/hooks/useComConfig.d.ts +0 -0
  251. /package/{model → models}/frontend/src/defaultPages/SchemaPage/schemaType.d.ts +0 -0
  252. /package/{model → models}/frontend/src/defaultPages/SchemaPage/utils/permissions.d.ts +0 -0
  253. /package/{model → models}/frontend/src/defaultPages/SchemaPage/utils/validator.d.ts +0 -0
  254. /package/{model → models}/frontend/src/hooks/useText.d.ts +0 -0
  255. /package/{model → models}/frontend/src/language/en-US.d.ts +0 -0
  256. /package/{model → models}/frontend/src/language/index.d.ts +0 -0
  257. /package/{model → models}/frontend/src/language/resources.d.ts +0 -0
  258. /package/{model → models}/frontend/src/language/zh-CN.d.ts +0 -0
  259. /package/{model → models}/frontend/src/stores/apiFreezer.d.ts +0 -0
  260. /package/{model → models}/frontend/src/stores/schemaEventBus.d.ts +0 -0
  261. /package/{model → models}/frontend/src/stores/schemaStore.d.ts +0 -0
  262. /package/{model → models}/frontend/src/typing/scalability.d.ts +0 -0
  263. /package/{model/model → models/models}/index.d.ts +0 -0
  264. /package/{model/model → models/models}/test.d.ts +0 -0
  265. /package/{model/model → models/models}/types/data/button.d.ts +0 -0
  266. /package/{model/model → models/models}/types/data/component.d.ts +0 -0
  267. /package/{model/model → models/models}/types/data/fetchInfo.d.ts +0 -0
  268. /package/{model/model → models/models}/types/data/schema.d.ts +0 -0
  269. /package/{model/model → models/models}/types/data/search.d.ts +0 -0
  270. /package/{model/model → models/models}/types/index.d.ts +0 -0
  271. /package/{model/model → models/models}/types/menuType.d.ts +0 -0
  272. /package/{model/model → models/models}/types/model.d.ts +0 -0
  273. /package/{model → models}/packages/common/array/index.d.ts +0 -0
  274. /package/{model → models}/packages/common/cache/LRUCache.d.ts +0 -0
  275. /package/{model → models}/packages/common/cache/index.d.ts +0 -0
  276. /package/{model → models}/packages/common/guards/index.d.ts +0 -0
  277. /package/{model → models}/packages/common/http/index.d.ts +0 -0
  278. /package/{model → models}/packages/common/i18n/default.d.ts +0 -0
  279. /package/{model → models}/packages/common/i18n/en-US.d.ts +0 -0
  280. /package/{model → models}/packages/common/i18n/index.d.ts +0 -0
  281. /package/{model → models}/packages/common/i18n/locales.d.ts +0 -0
  282. /package/{model → models}/packages/common/log/index.d.ts +0 -0
  283. /package/{model → models}/packages/common/number/index.d.ts +0 -0
  284. /package/{model → models}/packages/common/object/filterEmpty.d.ts +0 -0
  285. /package/{model → models}/packages/common/object/index.d.ts +0 -0
  286. /package/{model → models}/packages/common/rafTimer.d.ts +0 -0
  287. /package/{model → models}/packages/common/string/index.d.ts +0 -0
  288. /package/{model → models}/packages/common/types/index.d.ts +0 -0
  289. /package/{model → models}/packages/react/hooks/useBreadcrumb.d.ts +0 -0
  290. /package/{model → models}/packages/react/hooks/useExecuteOnce.d.ts +0 -0
  291. /package/{model → models}/packages/react/hooks/useLanguage.d.ts +0 -0
  292. /package/{model → models}/packages/react/ui/components/Button/Button.d.ts +0 -0
  293. /package/{model → models}/packages/react/ui/components/Button/SubmitButton.d.ts +0 -0
  294. /package/{model → models}/packages/react/ui/components/Button/index.d.ts +0 -0
  295. /package/{model → models}/packages/react/ui/components/Card/Card.d.ts +0 -0
  296. /package/{model → models}/packages/react/ui/components/Card/index.d.ts +0 -0
  297. /package/{model → models}/packages/react/ui/components/Checkbox/Checkbox.d.ts +0 -0
  298. /package/{model → models}/packages/react/ui/components/Checkbox/index.d.ts +0 -0
  299. /package/{model → models}/packages/react/ui/components/ConfirmDialog/ConfirmDialog.d.ts +0 -0
  300. /package/{model → models}/packages/react/ui/components/ConfirmDialog/index.d.ts +0 -0
  301. /package/{model → models}/packages/react/ui/components/DataTable/ActionBtn.d.ts +0 -0
  302. /package/{model → models}/packages/react/ui/components/DataTable/dataTableWidth.d.ts +0 -0
  303. /package/{model → models}/packages/react/ui/components/DataTable/index.d.ts +0 -0
  304. /package/{model → models}/packages/react/ui/components/Date/Calendar.d.ts +0 -0
  305. /package/{model → models}/packages/react/ui/components/Date/Date.d.ts +0 -0
  306. /package/{model → models}/packages/react/ui/components/Date/LocaleContext.d.ts +0 -0
  307. /package/{model → models}/packages/react/ui/components/Date/LocaleProvider.d.ts +0 -0
  308. /package/{model → models}/packages/react/ui/components/Date/TimePicker.d.ts +0 -0
  309. /package/{model → models}/packages/react/ui/components/Date/data.d.ts +0 -0
  310. /package/{model → models}/packages/react/ui/components/Date/dateLocaleStore.d.ts +0 -0
  311. /package/{model → models}/packages/react/ui/components/Date/dropdownPositioning.d.ts +0 -0
  312. /package/{model → models}/packages/react/ui/components/Date/index.d.ts +0 -0
  313. /package/{model → models}/packages/react/ui/components/Date/locales.d.ts +0 -0
  314. /package/{model → models}/packages/react/ui/components/Drawer/Drawer.d.ts +0 -0
  315. /package/{model → models}/packages/react/ui/components/Drawer/index.d.ts +0 -0
  316. /package/{model → models}/packages/react/ui/components/Dropdown/Dropdown.d.ts +0 -0
  317. /package/{model → models}/packages/react/ui/components/Dropdown/index.d.ts +0 -0
  318. /package/{model → models}/packages/react/ui/components/Form/Form.d.ts +0 -0
  319. /package/{model → models}/packages/react/ui/components/Form/FormItem.d.ts +0 -0
  320. /package/{model → models}/packages/react/ui/components/Form/index.d.ts +0 -0
  321. /package/{model → models}/packages/react/ui/components/Form/useForm.d.ts +0 -0
  322. /package/{model → models}/packages/react/ui/components/ImagePreview/ImagePreview.d.ts +0 -0
  323. /package/{model → models}/packages/react/ui/components/ImagePreview/PreviewImage.d.ts +0 -0
  324. /package/{model → models}/packages/react/ui/components/ImagePreview/index.d.ts +0 -0
  325. /package/{model → models}/packages/react/ui/components/Input/Input.d.ts +0 -0
  326. /package/{model → models}/packages/react/ui/components/Input/index.d.ts +0 -0
  327. /package/{model → models}/packages/react/ui/components/InputNumber/InputNumber.d.ts +0 -0
  328. /package/{model → models}/packages/react/ui/components/InputNumber/index.d.ts +0 -0
  329. /package/{model → models}/packages/react/ui/components/InputNumber/inputNumberUtils.d.ts +0 -0
  330. /package/{model → models}/packages/react/ui/components/Label/Label.d.ts +0 -0
  331. /package/{model → models}/packages/react/ui/components/Label/index.d.ts +0 -0
  332. /package/{model → models}/packages/react/ui/components/Layout/Layout.d.ts +0 -0
  333. /package/{model → models}/packages/react/ui/components/Layout/index.d.ts +0 -0
  334. /package/{model → models}/packages/react/ui/components/Loading/Loading.d.ts +0 -0
  335. /package/{model → models}/packages/react/ui/components/Loading/index.d.ts +0 -0
  336. /package/{model → models}/packages/react/ui/components/Menu/Menu.d.ts +0 -0
  337. /package/{model → models}/packages/react/ui/components/Menu/MenuContext.d.ts +0 -0
  338. /package/{model → models}/packages/react/ui/components/Menu/MenuItem.d.ts +0 -0
  339. /package/{model → models}/packages/react/ui/components/Menu/SubMenu.d.ts +0 -0
  340. /package/{model → models}/packages/react/ui/components/Menu/index.d.ts +0 -0
  341. /package/{model → models}/packages/react/ui/components/Menu/menuTypes.d.ts +0 -0
  342. /package/{model → models}/packages/react/ui/components/Menu/utils.d.ts +0 -0
  343. /package/{model → models}/packages/react/ui/components/Message/Message.d.ts +0 -0
  344. /package/{model → models}/packages/react/ui/components/Message/MessageManager.d.ts +0 -0
  345. /package/{model → models}/packages/react/ui/components/Message/data.d.ts +0 -0
  346. /package/{model → models}/packages/react/ui/components/Message/index.d.ts +0 -0
  347. /package/{model → models}/packages/react/ui/components/Modal/Modal.d.ts +0 -0
  348. /package/{model → models}/packages/react/ui/components/Modal/ModalManager.d.ts +0 -0
  349. /package/{model → models}/packages/react/ui/components/Modal/index.d.ts +0 -0
  350. /package/{model → models}/packages/react/ui/components/Notification/Notification.d.ts +0 -0
  351. /package/{model → models}/packages/react/ui/components/Notification/index.d.ts +0 -0
  352. /package/{model → models}/packages/react/ui/components/Overlay/Overlay.d.ts +0 -0
  353. /package/{model → models}/packages/react/ui/components/Overlay/index.d.ts +0 -0
  354. /package/{model → models}/packages/react/ui/components/Pagination/Pagination.d.ts +0 -0
  355. /package/{model → models}/packages/react/ui/components/Pagination/index.d.ts +0 -0
  356. /package/{model → models}/packages/react/ui/components/Popup/Popup.d.ts +0 -0
  357. /package/{model → models}/packages/react/ui/components/Popup/index.d.ts +0 -0
  358. /package/{model → models}/packages/react/ui/components/Radio/Radio.d.ts +0 -0
  359. /package/{model → models}/packages/react/ui/components/Radio/RadioGroup.d.ts +0 -0
  360. /package/{model → models}/packages/react/ui/components/Radio/index.d.ts +0 -0
  361. /package/{model → models}/packages/react/ui/components/Search/Search.d.ts +0 -0
  362. /package/{model → models}/packages/react/ui/components/Search/index.d.ts +0 -0
  363. /package/{model → models}/packages/react/ui/components/Select/Select.d.ts +0 -0
  364. /package/{model → models}/packages/react/ui/components/Select/dropdownPositioning.d.ts +0 -0
  365. /package/{model → models}/packages/react/ui/components/Select/index.d.ts +0 -0
  366. /package/{model → models}/packages/react/ui/components/Skeleton/Skeleton.d.ts +0 -0
  367. /package/{model → models}/packages/react/ui/components/Skeleton/index.d.ts +0 -0
  368. /package/{model → models}/packages/react/ui/components/Switch/Switch.d.ts +0 -0
  369. /package/{model → models}/packages/react/ui/components/Switch/index.d.ts +0 -0
  370. /package/{model → models}/packages/react/ui/components/TableSearch/TableSearch.d.ts +0 -0
  371. /package/{model → models}/packages/react/ui/components/TableSearch/index.d.ts +0 -0
  372. /package/{model → models}/packages/react/ui/components/TableSearch/lang.d.ts +0 -0
  373. /package/{model → models}/packages/react/ui/components/TableSearch/tableSearchLocaleStore.d.ts +0 -0
  374. /package/{model → models}/packages/react/ui/components/Tabs/Tabs.d.ts +0 -0
  375. /package/{model → models}/packages/react/ui/components/Tabs/index.d.ts +0 -0
  376. /package/{model → models}/packages/react/ui/components/Textarea/Textarea.d.ts +0 -0
  377. /package/{model → models}/packages/react/ui/components/Textarea/index.d.ts +0 -0
  378. /package/{model → models}/packages/react/ui/components/Tooltip/Tooltip.d.ts +0 -0
  379. /package/{model → models}/packages/react/ui/components/Tooltip/index.d.ts +0 -0
  380. /package/{model → models}/packages/react/ui/components/TreeSelect/TreeSelect.d.ts +0 -0
  381. /package/{model → models}/packages/react/ui/components/TreeSelect/index.d.ts +0 -0
  382. /package/{model → models}/packages/react/ui/components/Upload/ImageUpload.d.ts +0 -0
  383. /package/{model → models}/packages/react/ui/components/Upload/Upload.d.ts +0 -0
  384. /package/{model → models}/packages/react/ui/components/Upload/index.d.ts +0 -0
  385. /package/{model → models}/packages/react/ui/components/breadcrumb/breadcrumb.d.ts +0 -0
  386. /package/{model → models}/packages/react/ui/components/breadcrumb/index.d.ts +0 -0
  387. /package/{model → models}/packages/react/ui/components/hooks/useDropdownPositioning.d.ts +0 -0
  388. /package/{model → models}/packages/react/ui/components/hooks/useInputController.d.ts +0 -0
  389. /package/{model → models}/packages/react/ui/components/index.d.ts +0 -0
  390. /package/{model → models}/packages/react/ui/components/table/index.d.ts +0 -0
  391. /package/{model → models}/packages/react/ui/components/table/table.d.ts +0 -0
  392. /package/{model → models}/packages/react/ui/components/types/baseType.d.ts +0 -0
  393. /package/{model → models}/packages/react/ui/i18n/I18nProvider.d.ts +0 -0
  394. /package/{model → models}/packages/react/ui/i18n/index.d.ts +0 -0
  395. /package/{model → models}/packages/react/ui/i18n/useI18n.d.ts +0 -0
  396. /package/{model → models}/packages/react/ui/index.d.ts +0 -0
  397. /package/{model → models}/packages/react/ui/lib/createStoreHook.d.ts +0 -0
  398. /package/{model → models}/packages/react/ui/lib/export.d.ts +0 -0
  399. /package/{model → models}/packages/react/ui/lib/utils.d.ts +0 -0
  400. /package/{model → models}/packages/react/ui/stores/breadcrumb.d.ts +0 -0
  401. /package/{model → models}/packages/react/ui/stores/language.d.ts +0 -0
  402. /package/{model → models}/packages/react/ui/types/index.d.ts +0 -0
  403. /package/{model → models}/typings/type.d.ts +0 -0
@@ -0,0 +1,3 @@
1
+ import type { RouterType } from "./type";
2
+ export declare function normalizeRouterBasename(basePath?: string): string | undefined;
3
+ export declare function getRouterBasename(type: RouterType, basePath?: string): string | undefined;
@@ -0,0 +1,11 @@
1
+ //#region frontend/src/components/Router/basename.ts
2
+ function normalizeRouterBasename(basePath) {
3
+ const normalized = String(basePath ?? "").replace(/^\/+|\/+$/g, "");
4
+ return normalized ? `/${normalized}` : void 0;
5
+ }
6
+ function getRouterBasename(type, basePath) {
7
+ if (type === "hash") return;
8
+ return normalizeRouterBasename(basePath);
9
+ }
10
+ //#endregion
11
+ export { getRouterBasename, normalizeRouterBasename };
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from "react";
2
- import { RouterType } from "./type";
2
+ import type { RouterType } from "./type";
3
3
  export type RouteInfo = {
4
4
  path: string;
5
5
  component: ReactNode;
@@ -1,8 +1,10 @@
1
+ import { getRouterBasename } from "./basename.js";
1
2
  import { BrowserRouter, HashRouter, Route, Routes } from "react-router-dom";
2
3
  import { jsx } from "react/jsx-runtime";
3
4
  //#region frontend/src/components/Router/index.tsx
4
5
  var generateRouter = (routes, type) => {
5
6
  const RouterComponent = type === "browser" ? BrowserRouter : HashRouter;
7
+ const basename = getRouterBasename(type, window._basePath);
6
8
  const renderDom = (routes) => {
7
9
  return routes.map((route) => {
8
10
  return /* @__PURE__ */ jsx(Route, {
@@ -13,7 +15,7 @@ var generateRouter = (routes, type) => {
13
15
  });
14
16
  };
15
17
  return /* @__PURE__ */ jsx(RouterComponent, {
16
- basename: window._basePath,
18
+ basename,
17
19
  children: /* @__PURE__ */ jsx(Routes, { children: renderDom(routes) })
18
20
  });
19
21
  };
@@ -1,4 +1,4 @@
1
- import type { FetchInfo } from "../../../../../../model/types/data/fetchInfo";
1
+ import type { FetchInfo } from "../../../../../../models/types/data/fetchInfo";
2
2
  import type { ComponentType, LazyExoticComponent } from "react";
3
3
  type CallComRenderer = ComponentType<any> | LazyExoticComponent<ComponentType<any>>;
4
4
  type CallComDefinition<Config> = CallComRenderer & {
@@ -1,4 +1,4 @@
1
- import type { SchemaTableRenderComponentPropsMap } from "../../../../../../model/types/data/schema";
1
+ import type { SchemaTableRenderComponentPropsMap } from "../../../../../../models/types/data/schema";
2
2
  import type { ComponentType, LazyExoticComponent } from "react";
3
3
  export type SchemaTableRenderComponent = ComponentType<any> | LazyExoticComponent<ComponentType<any>>;
4
4
  export type SchemaTableRenderComponentsMap = Partial<Record<Extract<keyof SchemaTableRenderComponentPropsMap, string>, SchemaTableRenderComponent>>;
@@ -1,5 +1,5 @@
1
- import type { ComponentConfig } from "../../../../model/types/data/component";
2
- import type { BaseOption, ConfigSchema, SchemaDataType, SearchConfig, TableConfig, UsedConfigSchema } from "../../../../model/types/data/schema";
1
+ import type { ComponentConfig } from "../../../../models/types/data/component";
2
+ import type { BaseOption, ConfigSchema, SchemaDataType, SearchConfig, TableConfig, UsedConfigSchema } from "../../../../models/types/data/schema";
3
3
  import type { LazyExoticComponent, ComponentType as ReactComponentType } from "react";
4
4
  import type { SuffixKey } from "./data";
5
5
  export type { ComponentConfig, SearchConfig, TableConfig };
@@ -1,2 +1,2 @@
1
- import { SchemaDataType } from "../../../../../model/types/data/schema";
1
+ import { SchemaDataType } from "../../../../../models/types/data/schema";
2
2
  export declare const schemaConversion: (schema: SchemaDataType, schemaKey: string) => void;
@@ -1,9 +1,10 @@
1
- import { BaseMenuType } from "../../../../model/types/menuType";
1
+ import { BaseMenuType } from "../../../../models/types/menuType";
2
2
  import { MenuItemData } from "../../../../packages/react/ui/components/index";
3
3
  interface SidebarSlotContainerProps {
4
4
  prefixPath: string;
5
5
  rawMenuData: BaseMenuType[];
6
6
  menuItems: MenuItemData[];
7
+ projectKey?: string;
7
8
  }
8
9
  declare const SidebarSlotContainer: (props: SidebarSlotContainerProps) => import("react/jsx-runtime").JSX.Element;
9
10
  export default SidebarSlotContainer;
@@ -8,7 +8,7 @@ import { Outlet, useNavigate } from "react-router-dom";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  //#region frontend/src/defaultPages/SidebarSlotPage/SidebarSlotContainer.tsx
10
10
  var SidebarSlotContainer = (props) => {
11
- const { prefixPath, rawMenuData, menuItems } = props;
11
+ const { prefixPath, rawMenuData, menuItems, projectKey } = props;
12
12
  const params = useRouterParams();
13
13
  const [SK, uSK] = useState(params[QK.sk]);
14
14
  const nav = useNavigate();
@@ -19,7 +19,7 @@ var SidebarSlotContainer = (props) => {
19
19
  */
20
20
  if (!params[QK.sk]) {
21
21
  if (params[QK.ck]) {
22
- const m = findMenuItem(rawMenuData, params[QK.ck]);
22
+ const m = findMenuItem(rawMenuData, params[QK.ck], projectKey);
23
23
  if (m) {
24
24
  uSK(m.key);
25
25
  return;
@@ -27,7 +27,11 @@ var SidebarSlotContainer = (props) => {
27
27
  }
28
28
  logPageNotFound();
29
29
  }
30
- }, [rawMenuData, params]);
30
+ }, [
31
+ rawMenuData,
32
+ params,
33
+ projectKey
34
+ ]);
31
35
  return /* @__PURE__ */ jsxs("div", {
32
36
  className: "sidebar-slot flex h-full w-full gap-0 overflow-hidden bg-theme-bg",
33
37
  children: [/* @__PURE__ */ jsx("div", {
@@ -37,7 +41,7 @@ var SidebarSlotContainer = (props) => {
37
41
  items: menuItems,
38
42
  selectedKey: SK,
39
43
  onSelect: (e) => {
40
- const m = findMenuItem(rawMenuData, e);
44
+ const m = findMenuItem(rawMenuData, e, projectKey);
41
45
  uSK(e);
42
46
  nav({
43
47
  ...m.path,
@@ -16,7 +16,8 @@ var SidebarSlotPageTmp = () => {
16
16
  return /* @__PURE__ */ jsx(SidebarSlotContainer, {
17
17
  prefixPath: "/" + leftSidebarBasePath,
18
18
  rawMenuData,
19
- menuItems
19
+ menuItems,
20
+ projectKey: projInfo?.key
20
21
  });
21
22
  };
22
23
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import { FreezeState, apiFreezerStore, useApiFreezer } from "./stores/apiFreezer.js";
2
- import { modeStore, useModeStore } from "./stores/mode.js";
2
+ import { ModeStoreProvider, createModeStore, modeStore, useModeStore, useModeStoreApi } from "./stores/mode.js";
3
3
  import { schemaEventBus } from "./stores/schemaEventBus.js";
4
4
  import { schemaStore, useSchemaStore } from "./stores/schemaStore.js";
5
- export { FreezeState, apiFreezerStore, modeStore, schemaEventBus, schemaStore, useApiFreezer, useModeStore, useSchemaStore };
5
+ export { FreezeState, ModeStoreProvider, apiFreezerStore, createModeStore, modeStore, schemaEventBus, schemaStore, useApiFreezer, useModeStore, useModeStoreApi, useSchemaStore };
@@ -1,4 +1,4 @@
1
- import { BasicModuleType, SidebarModuleType } from "../../../model/types/menuType";
1
+ import { BasicModuleType, SidebarModuleType } from "../../../models/types/menuType";
2
2
  declare const useCurrentMenuData: <T = {
3
3
  moduleType: BasicModuleType["moduleType"];
4
4
  sidebarConfig: SidebarModuleType["sidebarConfig"];
@@ -17,8 +17,8 @@ var useCurrentMenuData = (useSibe = false) => {
17
17
  return { menu: useMemo(() => {
18
18
  const isSide = params[QK.sk];
19
19
  const menuTypeIsTop = !!params[QK.k];
20
- const menu = findMenuItem(projectInfo?.menu, menuTypeIsTop ? params[QK.k] : params[QK.sk]);
21
- if (isSide && useSibe && menuTypeIsTop && menu) return findMenuItem(menu.sidebarConfig?.menu ?? [], params[QK.sk]);
20
+ const menu = findMenuItem(projectInfo?.menu, menuTypeIsTop ? params[QK.k] : params[QK.sk], projectInfo?.key);
21
+ if (isSide && useSibe && menuTypeIsTop && menu) return findMenuItem(menu.sidebarConfig?.menu ?? [], params[QK.sk], projectInfo?.key);
22
22
  return menu;
23
23
  }, [
24
24
  projectInfo?.menu,
@@ -1,16 +1,17 @@
1
1
  import { QK, deserializationUrlSearch } from "../common/menu.js";
2
2
  import { useMemo } from "react";
3
- import { useParams } from "react-router-dom";
3
+ import { useLocation, useParams } from "react-router-dom";
4
4
  //#region frontend/src/hooks/useRouterParams.ts
5
5
  var useRouterParams = () => {
6
6
  const params = useParams();
7
+ const { search } = useLocation();
7
8
  return useMemo(() => {
8
- const query = deserializationUrlSearch(location.search);
9
+ const query = deserializationUrlSearch(search);
9
10
  return {
10
11
  ...params,
11
12
  ...query[QK.ck] ? { [QK.ck]: query[QK.ck] } : {}
12
13
  };
13
- }, [params]);
14
+ }, [params, search]);
14
15
  };
15
16
  //#endregion
16
17
  export { useRouterParams as default };
@@ -12,6 +12,7 @@ export { api, del, FetchAxios, get, patch, post, put, request } from "./common/r
12
12
  export type { AxiosError, BaseResponse, PageParams, PageResponse, RequestConfig, ResponseConfig, } from "./common/request";
13
13
  export { applyThemeMode, getCurrentThemeMode, getStoredThemeMode, initThemeMode, persistThemeMode, themeSwitchStorageKey, } from "./common/theme";
14
14
  export type { ThemeSwitchMode } from "./common/theme";
15
+ export { registerFrontendSchemaFormComponents } from "./common/schemaForm";
15
16
  export { clearAuthToken, getAuthToken, localKeyMap, setAuthToken } from "./common/auth/index";
16
17
  export * from "./common/language";
17
18
  export * from "./defaultPages/SchemaPage/data/eventInfo";
@@ -3,14 +3,15 @@ import { i18n, i18nStore } from "../../packages/common/i18n/index.js";
3
3
  import "../../packages/react/ui/i18n/index.js";
4
4
  import { addLanguageResources, getCurrentLanguage, getFallbackLanguage, getI18nResources, getSupportedLanguages, getText, registerFrontendI18nResources, setFallbackLanguage, setLanguage, setResources, t } from "./common/language.js";
5
5
  import { FreezeState, apiFreezerStore, useApiFreezer } from "./stores/apiFreezer.js";
6
- import FetchAxios from "../../packages/common/http/index.js";
6
+ import { FetchAxios } from "../../packages/common/http/index.js";
7
7
  import { api, del, get, patch, post, put, request } from "./common/request.js";
8
- import { modeStore, useModeStore } from "./stores/mode.js";
8
+ import { ModeStoreProvider, createModeStore, modeStore, useModeStore, useModeStoreApi } from "./stores/mode.js";
9
9
  import { useText } from "./hooks/useText.js";
10
10
  import HeaderView from "./components/BasePage/HeaderView.js";
11
11
  import { renderImportComponent } from "./common/importComponent.js";
12
12
  import { applyThemeMode, getCurrentThemeMode, getStoredThemeMode, initThemeMode, persistThemeMode, themeSwitchStorageKey } from "./common/theme.js";
13
13
  import { generateRouter } from "./components/Router/index.js";
14
+ import { registerFrontendSchemaFormComponents } from "./common/schemaForm.js";
14
15
  import { schemaEventBus } from "./stores/schemaEventBus.js";
15
16
  import { clearRafTimer, rafClearInterval, rafClearTimeout, rafSetInterval, rafSetTimeout } from "../../packages/common/rafTimer.js";
16
17
  import { schemaStore, useSchemaStore } from "./stores/schemaStore.js";
@@ -22,4 +23,4 @@ import ThemeSwitch_default from "./components/ThemeSwitch/index.js";
22
23
  import "./components/index.js";
23
24
  import { eventsInfo } from "./defaultPages/SchemaPage/data/eventInfo.js";
24
25
  import { merge } from "./defaultPages/SchemaPage/utils/permissions.js";
25
- export { AsyncSelect_default as AsyncSelect, FetchAxios, FreezeState, HeaderView, LanguageSwitch_default as LanguageSwitch, ThemeSwitch_default as ThemeSwitch, addLanguageResources, api, apiFreezerStore, applyThemeMode, clearAuthToken, clearRafTimer, del, eventsInfo, generateRouter, get, getAuthToken, getCurrentLanguage, getCurrentThemeMode, getFallbackLanguage, getI18nResources, getStoredThemeMode, getSupportedLanguages, getText, i18n, i18nStore, initApp, initThemeMode, localKeyMap, merge, modeStore, patch, persistThemeMode, post, put, rafClearInterval, rafClearTimeout, rafSetInterval, rafSetTimeout, registerFrontendI18nResources, renderImportComponent, request, schemaEventBus, schemaStore, setAuthToken, setFallbackLanguage, setLanguage, setResources, t, themeSwitchStorageKey, useApiFreezer, useModeStore, useSchemaStore, useText };
26
+ export { AsyncSelect_default as AsyncSelect, FetchAxios, FreezeState, HeaderView, LanguageSwitch_default as LanguageSwitch, ModeStoreProvider, ThemeSwitch_default as ThemeSwitch, addLanguageResources, api, apiFreezerStore, applyThemeMode, clearAuthToken, clearRafTimer, createModeStore, del, eventsInfo, generateRouter, get, getAuthToken, getCurrentLanguage, getCurrentThemeMode, getFallbackLanguage, getI18nResources, getStoredThemeMode, getSupportedLanguages, getText, i18n, i18nStore, initApp, initThemeMode, localKeyMap, merge, modeStore, patch, persistThemeMode, post, put, rafClearInterval, rafClearTimeout, rafSetInterval, rafSetTimeout, registerFrontendI18nResources, registerFrontendSchemaFormComponents, renderImportComponent, request, schemaEventBus, schemaStore, setAuthToken, setFallbackLanguage, setLanguage, setResources, t, themeSwitchStorageKey, useApiFreezer, useModeStore, useModeStoreApi, useSchemaStore, useText };
@@ -2,6 +2,7 @@ import "./main.css";
2
2
  import { modeStore } from "./stores/mode.js";
3
3
  import { renderImportComponent } from "./common/importComponent.js";
4
4
  import { generateRouter } from "./components/Router/index.js";
5
+ import { registerFrontendSchemaFormComponents } from "./common/schemaForm.js";
5
6
  import "./exportStore.js";
6
7
  /* empty css */
7
8
  import { useEffect } from "react";
@@ -51,6 +52,7 @@ var AppLifecycle = ({ children, hookContext, afterRender }) => {
51
52
  };
52
53
  var initApp = (RootComponent, options) => {
53
54
  console.log("initApp");
55
+ registerFrontendSchemaFormComponents();
54
56
  const bootstrap = async () => {
55
57
  const rootElement = document.getElementById("root");
56
58
  const root = createRoot(rootElement);
@@ -1,4 +1,6 @@
1
1
  import { type ModelInfo, type ProjectInfo } from "../api/baseInfo";
2
+ import { type ReactNode } from "react";
3
+ import type { StoreApi } from "zustand/vanilla";
2
4
  interface ModeState {
3
5
  modeList: ModelInfo[];
4
6
  projectInfo: ProjectInfo | null;
@@ -10,6 +12,17 @@ interface ModeAction {
10
12
  initModeData: () => Promise<void>;
11
13
  }
12
14
  type IStore = ModeState & ModeAction;
13
- export declare const modeStore: import("zustand").StoreApi<IStore>;
14
- export declare const useModeStore: import("../../../packages/react/ui/index").StoreHook<import("zustand").StoreApi<IStore>>;
15
+ export type ModeStore = IStore;
16
+ export type ModeStoreApi = StoreApi<IStore>;
17
+ export type ModeStoreInitialState = Partial<ModeState>;
18
+ export declare const createModeStore: (initialState?: ModeStoreInitialState) => StoreApi<IStore>;
19
+ export declare const modeStore: StoreApi<IStore>;
20
+ export declare function ModeStoreProvider({ initialState, store, children, }: {
21
+ initialState?: ModeStoreInitialState;
22
+ store?: ModeStoreApi;
23
+ children: ReactNode;
24
+ }): import("react").FunctionComponentElement<import("react").ProviderProps<ModeStoreApi | null>>;
25
+ export declare function useModeStoreApi(): StoreApi<IStore>;
26
+ export declare function useModeStore(): IStore;
27
+ export declare function useModeStore<T>(selector: (state: IStore) => T): T;
15
28
  export {};
@@ -1,13 +1,14 @@
1
1
  import { setApiAuth } from "../common/auth/index.js";
2
- import { createStoreHook } from "../../../packages/react/ui/lib/createStoreHook.js";
3
2
  import { getModelList, getProjectData } from "../api/baseInfo.js";
4
3
  import { deserializationUrlSearch } from "../common/menu.js";
5
- import { createStore } from "zustand";
4
+ import { createContext, createElement, useContext, useRef } from "react";
5
+ import { createStore, useStore } from "zustand";
6
6
  //#region frontend/src/stores/mode.ts
7
- var modeStore = createStore((set, get) => ({
7
+ var createModeStore = (initialState = {}) => createStore((set, get) => ({
8
8
  modeList: [],
9
9
  projectInfo: null,
10
10
  initData: false,
11
+ ...initialState,
11
12
  setModeList(modeList) {
12
13
  set({ modeList });
13
14
  },
@@ -31,6 +32,19 @@ var modeStore = createStore((set, get) => ({
31
32
  });
32
33
  }
33
34
  }));
34
- var useModeStore = createStoreHook(modeStore);
35
+ var modeStore = createModeStore();
36
+ var ModeStoreContext = createContext(null);
37
+ function ModeStoreProvider({ initialState, store, children }) {
38
+ const storeRef = useRef(null);
39
+ if (!storeRef.current) storeRef.current = store ?? createModeStore(initialState);
40
+ return createElement(ModeStoreContext.Provider, { value: storeRef.current }, children);
41
+ }
42
+ function useModeStoreApi() {
43
+ return useContext(ModeStoreContext) ?? modeStore;
44
+ }
45
+ function useModeStore(selector) {
46
+ const store = useModeStoreApi();
47
+ return selector ? useStore(store, selector) : useStore(store);
48
+ }
35
49
  //#endregion
36
- export { modeStore, useModeStore };
50
+ export { ModeStoreProvider, createModeStore, modeStore, useModeStore, useModeStoreApi };
@@ -4,5 +4,7 @@ declare global {
4
4
  _basePath: string;
5
5
  _projKey: string;
6
6
  _signKey: string;
7
+ _renderMode: 'csr' | 'ssr';
8
+ _isSSR: boolean;
7
9
  }
8
10
  }
@@ -0,0 +1,2 @@
1
+ import { LRUCache } from "./cache/LRUCache.js";
2
+ export { LRUCache };
@@ -0,0 +1,37 @@
1
+ import { isNonNullable } from "../guards/index.js";
2
+ //#region packages/common/array/index.ts
3
+ function toArray(value) {
4
+ if (value === null || value === void 0) return [];
5
+ return Array.isArray(value) ? [...value] : [value];
6
+ }
7
+ var compact = (items) => {
8
+ return items.filter(isNonNullable);
9
+ };
10
+ var uniqueBy = (items, getKey) => {
11
+ const keys = /* @__PURE__ */ new Set();
12
+ const result = [];
13
+ for (const item of items) {
14
+ const key = getKey(item);
15
+ if (keys.has(key)) continue;
16
+ keys.add(key);
17
+ result.push(item);
18
+ }
19
+ return result;
20
+ };
21
+ var groupBy = (items, getKey) => {
22
+ const result = {};
23
+ for (const item of items) {
24
+ const key = getKey(item);
25
+ result[key] = result[key] ?? [];
26
+ result[key].push(item);
27
+ }
28
+ return result;
29
+ };
30
+ var chunk = (items, size) => {
31
+ if (!Number.isInteger(size) || size <= 0) throw new RangeError("chunk size must be a positive integer");
32
+ const result = [];
33
+ for (let index = 0; index < items.length; index += size) result.push(items.slice(index, index + size));
34
+ return result;
35
+ };
36
+ //#endregion
37
+ export { chunk, compact, groupBy, toArray, uniqueBy };
@@ -0,0 +1,2 @@
1
+ import { LRUCache } from "./LRUCache.js";
2
+ export { LRUCache };
@@ -1,8 +1,26 @@
1
1
  //#region packages/common/guards/index.ts
2
+ var isNil = (value) => {
3
+ return value === null || value === void 0;
4
+ };
5
+ var isNonNullable = (value) => {
6
+ return value !== null && value !== void 0;
7
+ };
8
+ var isString = (value) => {
9
+ return typeof value === "string";
10
+ };
11
+ var isNumber = (value) => {
12
+ return typeof value === "number" && Number.isFinite(value);
13
+ };
14
+ var isBoolean = (value) => {
15
+ return typeof value === "boolean";
16
+ };
17
+ var isFunction = (value) => {
18
+ return typeof value === "function";
19
+ };
2
20
  var isPlainObject = (value) => {
3
21
  if (value === null || typeof value !== "object") return false;
4
22
  const prototype = Object.getPrototypeOf(value);
5
23
  return prototype === Object.prototype || prototype === null;
6
24
  };
7
25
  //#endregion
8
- export { isPlainObject };
26
+ export { isBoolean, isFunction, isNil, isNonNullable, isNumber, isPlainObject, isString };
@@ -297,4 +297,4 @@ var FetchAxios = class {
297
297
  var axios = new FetchAxios();
298
298
  var createInstance = (defaultConfig) => new FetchAxios(defaultConfig);
299
299
  //#endregion
300
- export { axios, createInstance, FetchAxios as default };
300
+ export { FetchAxios, FetchAxios as default, axios, createInstance };
@@ -1,5 +1,5 @@
1
- import "./default.js";
2
- import "./en-US.js";
1
+ import { defaultLanguageResources } from "./default.js";
2
+ import { defaultEnglishResources } from "./en-US.js";
3
3
  import { defaultLanguage, languageLocalKey, translations } from "./locales.js";
4
4
  //#region packages/common/i18n/index.ts
5
5
  /** 判断某个消息节点是否是可继续递归访问的普通字典。 */
@@ -91,7 +91,7 @@ var persistLanguage = (storageKey, language) => {
91
91
  windowRef.localStorage.setItem(storageKey, language);
92
92
  };
93
93
  var createInitialState = () => ({
94
- language: getStoredLanguage(languageLocalKey),
94
+ language: defaultLanguage,
95
95
  fallbackLanguage: defaultLanguage,
96
96
  resources: translations,
97
97
  storageKey: languageLocalKey,
@@ -122,6 +122,10 @@ var createI18nStore = () => {
122
122
  const { persist, storageKey } = state;
123
123
  if (persist) persistLanguage(storageKey, language);
124
124
  },
125
+ hydrateStoredLanguage: () => {
126
+ const { storageKey } = state;
127
+ setState({ language: getStoredLanguage(storageKey) });
128
+ },
125
129
  setFallbackLanguage: (fallbackLanguage) => {
126
130
  setState({ fallbackLanguage });
127
131
  },
@@ -172,4 +176,4 @@ var t = i18n;
172
176
  /** 兼容历史调用的别名,行为等同于 i18n。 */
173
177
  var getLanguage = i18n;
174
178
  //#endregion
175
- export { getI18nPathValue, getLanguage, i18n, i18nStore, interpolateI18nMessage, isPlainI18nDictionary, mergeI18nDictionary, mergeI18nResources, t, translate };
179
+ export { defaultEnglishResources, defaultLanguage, defaultLanguageResources, getI18nPathValue, getLanguage, i18n, i18nStore, interpolateI18nMessage, isPlainI18nDictionary, languageLocalKey, mergeI18nDictionary, mergeI18nResources, t, translate, translations };
@@ -15,4 +15,4 @@ var translations = {
15
15
  "en-US": defaultEnglishResources
16
16
  };
17
17
  //#endregion
18
- export { defaultLanguage, languageLocalKey, translations };
18
+ export { defaultEnglishResources, defaultLanguage, defaultLanguageResources, languageLocalKey, translations };
@@ -29,6 +29,7 @@ export interface I18nAddResourcesOptions {
29
29
  export type I18nTranslator = <T = string>(key: string, fillingData?: I18nInterpolationValues, options?: I18nTranslateOptions) => T | string;
30
30
  export interface I18nActions {
31
31
  setLanguage: (language: I18nLanguage) => void;
32
+ hydrateStoredLanguage: () => void;
32
33
  setFallbackLanguage: (language: I18nLanguage) => void;
33
34
  setResources: (resources: I18nResources, options?: I18nSetResourcesOptions) => void;
34
35
  addResources: (language: I18nLanguage, messages: I18nDictionary, options?: I18nAddResourcesOptions) => void;
File without changes
@@ -7,5 +7,6 @@ export * from "./log";
7
7
  export * from "./number";
8
8
  export * from "./object";
9
9
  export * from "./rafTimer";
10
+ export * from "./ssr";
10
11
  export * from "./string";
11
12
  export * from "./types";
@@ -0,0 +1,17 @@
1
+ import { defaultLanguageResources } from "./i18n/default.js";
2
+ import { defaultEnglishResources } from "./i18n/en-US.js";
3
+ import { defaultLanguage, languageLocalKey, translations } from "./i18n/locales.js";
4
+ import { getI18nPathValue, getLanguage, i18n, i18nStore, interpolateI18nMessage, isPlainI18nDictionary, mergeI18nDictionary, mergeI18nResources, t, translate } from "./i18n/index.js";
5
+ import { FetchAxios, axios, createInstance } from "./http/index.js";
6
+ import { isBoolean, isFunction, isNil, isNonNullable, isNumber, isPlainObject, isString } from "./guards/index.js";
7
+ import { chunk, compact, groupBy, toArray, uniqueBy } from "./array/index.js";
8
+ import { LRUCache } from "./cache/LRUCache.js";
9
+ import { ANSI_RESET, ansiColors, colorLog, colorize, joinColorized, logColor, logColorized, logGreen, logJoinColorized, logPink, logRed, logWhite, logYellow } from "./log/index.js";
10
+ import { clamp, toFiniteNumber } from "./number/index.js";
11
+ import { filterEmpty, filtereEmpty } from "./object/filterEmpty.js";
12
+ import { mapValues, omit, pick } from "./object/index.js";
13
+ import { clearRafTimer, rafClearInterval, rafClearTimeout, rafSetInterval, rafSetTimeout } from "./rafTimer.js";
14
+ import { SSR_DATA_KEY, clearHydrationData, createHydrationData, peekHydrationData, readHydrationData, serializeHydrationData, serializeHydrationDataScriptContent } from "./ssr/hydration.js";
15
+ import { clientOnly, isBrowser, isServer, safeDocument, safeLocalStorage, safeSetLocalStorage, safeWindow } from "./ssr/index.js";
16
+ import { capitalize, isBlank, joinStr, kebabCase } from "./string/index.js";
17
+ export { ANSI_RESET, FetchAxios, LRUCache, SSR_DATA_KEY, ansiColors, axios, capitalize, chunk, clamp, clearHydrationData, clearRafTimer, clientOnly, colorLog, colorize, compact, createHydrationData, createInstance, defaultEnglishResources, defaultLanguage, defaultLanguageResources, filterEmpty, filtereEmpty, getI18nPathValue, getLanguage, groupBy, i18n, i18nStore, interpolateI18nMessage, isBlank, isBoolean, isBrowser, isFunction, isNil, isNonNullable, isNumber, isPlainI18nDictionary, isPlainObject, isServer, isString, joinColorized, joinStr, kebabCase, languageLocalKey, logColor, logColorized, logGreen, logJoinColorized, logPink, logRed, logWhite, logYellow, mapValues, mergeI18nDictionary, mergeI18nResources, omit, peekHydrationData, pick, rafClearInterval, rafClearTimeout, rafSetInterval, rafSetTimeout, readHydrationData, safeDocument, safeLocalStorage, safeSetLocalStorage, safeWindow, serializeHydrationData, serializeHydrationDataScriptContent, t, toArray, toFiniteNumber, translate, translations, uniqueBy };
@@ -0,0 +1,146 @@
1
+ //#region packages/common/log/index.ts
2
+ var ANSI_RESET = "\x1B[0m";
3
+ var ansiColors = {
4
+ black: "\x1B[30m",
5
+ red: "\x1B[31m",
6
+ green: "\x1B[32m",
7
+ yellow: "\x1B[33m",
8
+ blue: "\x1B[34m",
9
+ magenta: "\x1B[35m",
10
+ pink: "\x1B[95m",
11
+ cyan: "\x1B[36m",
12
+ white: "\x1B[37m",
13
+ gray: "\x1B[90m"
14
+ };
15
+ var getConsole = () => {
16
+ return globalThis.console;
17
+ };
18
+ var colorize = (message, color = "green") => {
19
+ return `${ansiColors[color]}${String(message)}${ANSI_RESET}`;
20
+ };
21
+ var joinColorized = (...messages) => {
22
+ return messages.map(String).join("");
23
+ };
24
+ var logJoinColorized = (...messages) => {
25
+ getConsole()?.log(messages.map(String).join(""));
26
+ };
27
+ var inspectPrimitive = (value) => {
28
+ if (typeof value === "string") return `'${value}'`;
29
+ if (typeof value === "bigint") return `${value}n`;
30
+ if (typeof value === "symbol") return String(value);
31
+ if (typeof value === "function") return `[Function${value.name ? `: ${value.name}` : ""}]`;
32
+ if (value === void 0) return "undefined";
33
+ if (value === null) return "null";
34
+ return String(value);
35
+ };
36
+ var inspectValue = (value, context, depth = 0) => {
37
+ if (value === null || typeof value !== "object") return inspectPrimitive(value);
38
+ if (context.seen.has(value)) return "[Circular]";
39
+ if (value instanceof Date) return value.toISOString();
40
+ if (value instanceof Error) return value.stack ?? `${value.name}: ${value.message}`;
41
+ context.seen.add(value);
42
+ if (Array.isArray(value)) {
43
+ const items = value.map((item) => inspectValue(item, context, depth + 1));
44
+ context.seen.delete(value);
45
+ return `[${items.join(", ")}]`;
46
+ }
47
+ const entries = Object.entries(value);
48
+ if (entries.length === 0) {
49
+ context.seen.delete(value);
50
+ return "{}";
51
+ }
52
+ const indent = " ".repeat(depth);
53
+ const nextIndent = " ".repeat(depth + 1);
54
+ const body = entries.map(([key, item]) => `${nextIndent}${key}: ${inspectValue(item, context, depth + 1)}`).join(",\n");
55
+ context.seen.delete(value);
56
+ return `{\n${body}\n${indent}}`;
57
+ };
58
+ var stringifyLogValue = (value) => {
59
+ return typeof value === "string" ? value : inspectValue(value, { seen: /* @__PURE__ */ new WeakSet() });
60
+ };
61
+ var formatSpecifier = (specifier, value) => {
62
+ if (specifier === "%%") return "%";
63
+ if (specifier === "%s") return String(value);
64
+ if (specifier === "%d" || specifier === "%i") return Number.parseInt(String(value), 10).toString();
65
+ if (specifier === "%f") return Number.parseFloat(String(value)).toString();
66
+ if (specifier === "%j") try {
67
+ return JSON.stringify(value);
68
+ } catch {
69
+ return "[Circular]";
70
+ }
71
+ if (specifier === "%o" || specifier === "%O") return stringifyLogValue(value);
72
+ if (specifier === "%c") return "";
73
+ return specifier;
74
+ };
75
+ var formatLogData = (data) => {
76
+ if (data.length === 0) return "";
77
+ const [first, ...rest] = data;
78
+ if (typeof first !== "string") return data.map(stringifyLogValue).join(" ");
79
+ let index = 0;
80
+ return [first.replace(/%[sdifjoOc%]/g, (specifier) => {
81
+ if (specifier === "%%") return "%";
82
+ if (index >= rest.length) return specifier;
83
+ const value = rest[index];
84
+ index += 1;
85
+ return formatSpecifier(specifier, value);
86
+ }), ...rest.slice(index).map(stringifyLogValue)].join(" ");
87
+ };
88
+ var isLogColor = (value) => {
89
+ return typeof value === "string" && value in ansiColors;
90
+ };
91
+ var isColorLogOptions = (value) => {
92
+ if (value === null || typeof value !== "object") return false;
93
+ if (!Object.keys(value).some((key) => key === "color" || key === "prefix" || key === "suffix")) return false;
94
+ const options = value;
95
+ return options.color === void 0 || isLogColor(options.color);
96
+ };
97
+ var withColor = (color, data, options = {}) => {
98
+ const prefix = options.prefix ?? "";
99
+ const suffix = options.suffix ?? "";
100
+ const message = formatLogData(data);
101
+ return [`${ansiColors[color]}${prefix}${message}${suffix}${ANSI_RESET}`];
102
+ };
103
+ var printColorMessage = (data, config) => {
104
+ const color = config.color ?? "green";
105
+ getConsole()?.log(...withColor(color, data, config));
106
+ };
107
+ function colorLog(...data) {
108
+ const [first, ...rest] = data;
109
+ const last = data.at(-1);
110
+ if (isLogColor(first) && data.length >= 2) {
111
+ printColorMessage(rest, { color: first });
112
+ return;
113
+ }
114
+ if (isLogColor(last) && data.length === 2) {
115
+ printColorMessage([first], { color: last });
116
+ return;
117
+ }
118
+ if (isColorLogOptions(last) && data.length >= 2) {
119
+ printColorMessage(data.slice(0, -1), last);
120
+ return;
121
+ }
122
+ printColorMessage(data, { color: "green" });
123
+ }
124
+ var logColor = (color, ...data) => {
125
+ printColorMessage(data, { color });
126
+ };
127
+ var logColorized = (...messages) => {
128
+ getConsole()?.log(...messages);
129
+ };
130
+ var logGreen = (...data) => {
131
+ logColor("green", ...data);
132
+ };
133
+ var logYellow = (...data) => {
134
+ logColor("yellow", ...data);
135
+ };
136
+ var logPink = (...data) => {
137
+ logColor("pink", ...data);
138
+ };
139
+ var logWhite = (...data) => {
140
+ logColor("white", ...data);
141
+ };
142
+ var logRed = (...data) => {
143
+ logColor("red", ...data);
144
+ };
145
+ //#endregion
146
+ export { ANSI_RESET, ansiColors, colorLog, colorize, joinColorized, logColor, logColorized, logGreen, logJoinColorized, logPink, logRed, logWhite, logYellow };