@_tc/template-core 0.0.1-bate.9 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (589) hide show
  1. package/README.md +1108 -0
  2. package/cjs/_virtual/_rolldown/runtime.js +1 -0
  3. package/cjs/app/controller/base.js +1 -21
  4. package/cjs/app/controller/project.js +1 -50
  5. package/cjs/app/controller/view.js +1 -14
  6. package/cjs/app/data/signKey.js +1 -4
  7. package/cjs/app/extend/$fetch.js +1 -0
  8. package/cjs/app/extend/db.js +1 -12
  9. package/cjs/app/extend/generateErrorMessage.js +1 -14
  10. package/cjs/app/extend/logger.js +1 -72
  11. package/cjs/app/extend/parsingParamsOnUrl.js +1 -22
  12. package/cjs/app/extend/render-view.js +1 -21
  13. package/cjs/app/middleware/api-params-verify.js +1 -63
  14. package/cjs/app/middleware/api-sign-verify.js +1 -28
  15. package/cjs/app/middleware/error-handle.js +1 -33
  16. package/cjs/app/middleware/project-handler.js +1 -21
  17. package/cjs/app/middleware.js +1 -60
  18. package/cjs/app/router/project.js +1 -8
  19. package/cjs/app/router/view.js +1 -5
  20. package/cjs/app/router-schema/project.js +1 -33
  21. package/cjs/app/service/base.js +1 -0
  22. package/cjs/app/service/project.js +1 -42
  23. package/cjs/app/type.js +1 -2
  24. package/cjs/app/typings.js +1 -2
  25. package/cjs/bundler/defaultAlias.js +1 -0
  26. package/cjs/bundler/dev.js +1 -68
  27. package/cjs/bundler/index.js +1 -18
  28. package/cjs/bundler/prod.js +1 -19
  29. package/cjs/bundler/state.js +1 -0
  30. package/cjs/bundler/utils.js +1 -127
  31. package/cjs/index.js +1 -21
  32. package/cjs/packages/common/LRUCache.js +1 -0
  33. package/cjs/packages/common/array/index.js +1 -0
  34. package/cjs/packages/common/cache/LRUCache.js +1 -0
  35. package/cjs/packages/common/cache/index.js +1 -0
  36. package/cjs/packages/common/guards/index.js +1 -0
  37. package/cjs/packages/common/http/index.js +1 -0
  38. package/cjs/packages/common/i18n/default.js +1 -0
  39. package/cjs/packages/common/i18n/en-US.js +1 -0
  40. package/cjs/packages/common/i18n/index.js +1 -0
  41. package/cjs/packages/common/i18n/locales.js +1 -0
  42. package/cjs/packages/common/i18n/types.js +1 -0
  43. package/cjs/packages/common/index.js +1 -0
  44. package/cjs/packages/common/log/index.js +2 -0
  45. package/cjs/packages/common/number/index.js +1 -0
  46. package/cjs/packages/common/object/filterEmpty.js +1 -0
  47. package/cjs/packages/common/object/filtereEmpty.js +1 -0
  48. package/cjs/packages/common/object/index.js +1 -0
  49. package/cjs/packages/common/string/index.js +1 -0
  50. package/cjs/packages/common/types/index.js +1 -0
  51. package/cjs/packages/core/env.js +1 -25
  52. package/cjs/packages/core/index.js +1 -116
  53. package/cjs/packages/core/loader/config.js +1 -45
  54. package/cjs/packages/core/loader/controller.js +1 -40
  55. package/cjs/packages/core/loader/extend.js +1 -41
  56. package/cjs/packages/core/loader/middleware.js +1 -38
  57. package/cjs/packages/core/loader/model.js +1 -132
  58. package/cjs/packages/core/loader/router-schema.js +1 -35
  59. package/cjs/packages/core/loader/router.js +1 -62
  60. package/cjs/packages/core/loader/service.js +1 -30
  61. package/cjs/packages/core/paths.js +1 -10
  62. package/cjs/packages/core/types.js +1 -2
  63. package/cjs/packages/utils/getAllFilesInFolder.js +1 -45
  64. package/cjs/packages/utils/getAllFnReturnValue.js +1 -6
  65. package/cjs/packages/utils/index.js +1 -20
  66. package/cjs/packages/utils/loadFile.js +1 -65
  67. package/cjs/packages/utils/path.js +1 -64
  68. package/cjs/packages/utils/runFileFn.js +1 -5
  69. package/esm/_virtual/_rolldown/runtime.js +20 -0
  70. package/esm/app/controller/base.js +26 -21
  71. package/esm/app/controller/project.js +52 -42
  72. package/esm/app/controller/view.js +23 -12
  73. package/esm/app/data/signKey.js +8 -1
  74. package/esm/app/extend/$fetch.js +15 -0
  75. package/esm/app/extend/db.js +5 -8
  76. package/esm/app/extend/generateErrorMessage.js +6 -11
  77. package/esm/app/extend/logger.js +25 -36
  78. package/esm/app/extend/parsingParamsOnUrl.js +13 -19
  79. package/esm/app/extend/render-view.js +18 -15
  80. package/esm/app/middleware/api-params-verify.js +55 -57
  81. package/esm/app/middleware/api-sign-verify.js +17 -22
  82. package/esm/app/middleware/error-handle.js +23 -30
  83. package/esm/app/middleware/project-handler.js +14 -18
  84. package/esm/app/middleware.js +17 -54
  85. package/esm/app/router/project.js +6 -5
  86. package/esm/app/router/view.js +6 -2
  87. package/esm/app/router-schema/project.js +14 -30
  88. package/esm/app/service/base.js +14 -0
  89. package/esm/app/service/project.js +23 -34
  90. package/esm/app/type.js +0 -1
  91. package/esm/app/typings.js +0 -1
  92. package/esm/bundler/defaultAlias.js +4 -0
  93. package/esm/bundler/dev.js +11 -28
  94. package/esm/bundler/index.js +17 -13
  95. package/esm/bundler/prod.js +13 -15
  96. package/esm/bundler/state.js +10 -0
  97. package/esm/bundler/utils.js +191 -82
  98. package/esm/index.js +15 -12
  99. package/esm/packages/common/LRUCache.js +2 -0
  100. package/esm/packages/common/array/index.js +27 -0
  101. package/esm/packages/common/cache/LRUCache.js +39 -0
  102. package/esm/packages/common/cache/index.js +2 -0
  103. package/esm/packages/common/guards/index.js +8 -0
  104. package/esm/packages/common/http/index.js +256 -0
  105. package/esm/packages/common/i18n/default.js +88 -0
  106. package/esm/packages/common/i18n/en-US.js +88 -0
  107. package/esm/packages/common/i18n/index.js +91 -0
  108. package/esm/packages/common/i18n/locales.js +9 -0
  109. package/esm/packages/common/index.js +14 -0
  110. package/esm/packages/common/log/index.js +93 -0
  111. package/esm/packages/common/number/index.js +10 -0
  112. package/esm/packages/common/object/filterEmpty.js +23 -0
  113. package/esm/packages/common/object/filtereEmpty.js +2 -0
  114. package/esm/packages/common/object/index.js +17 -0
  115. package/esm/packages/common/string/index.js +4 -0
  116. package/esm/packages/common/types/index.js +0 -0
  117. package/esm/packages/core/env.js +24 -23
  118. package/esm/packages/core/index.js +51 -108
  119. package/esm/packages/core/loader/config.js +26 -42
  120. package/esm/packages/core/loader/controller.js +12 -37
  121. package/esm/packages/core/loader/extend.js +22 -38
  122. package/esm/packages/core/loader/middleware.js +15 -35
  123. package/esm/packages/core/loader/model.js +65 -124
  124. package/esm/packages/core/loader/router-schema.js +18 -32
  125. package/esm/packages/core/loader/router.js +35 -56
  126. package/esm/packages/core/loader/service.js +12 -27
  127. package/esm/packages/core/paths.js +7 -4
  128. package/esm/packages/core/types.js +0 -1
  129. package/esm/packages/utils/getAllFilesInFolder.js +8 -7
  130. package/esm/packages/utils/getAllFnReturnValue.js +0 -6
  131. package/esm/packages/utils/index.js +5 -4
  132. package/esm/packages/utils/loadFile.js +33 -62
  133. package/esm/packages/utils/path.js +14 -25
  134. package/esm/packages/utils/runFileFn.js +45 -1
  135. package/fe/frontend/apps/dash/Dashboard.d.ts +6 -0
  136. package/fe/frontend/apps/dash/Dashboard.js +75 -0
  137. package/fe/frontend/apps/dash/dash.entry.d.ts +2 -0
  138. package/fe/frontend/apps/dash/dash.entry.js +80 -0
  139. package/fe/frontend/apps/dash/types.d.ts +17 -0
  140. package/fe/frontend/apps/testPage/index.d.ts +3 -0
  141. package/fe/frontend/apps/testPage/index.js +6 -0
  142. package/fe/frontend/apps/testPage/testPage.entry.d.ts +2 -0
  143. package/fe/frontend/apps/testPage/testPage.entry.js +6 -0
  144. package/fe/frontend/extended/SchemaForm/data.d.ts +13 -0
  145. package/fe/frontend/extended/SchemaForm/data.js +8 -0
  146. package/fe/frontend/src/api/baseInfo.d.ts +31 -0
  147. package/fe/frontend/src/api/baseInfo.js +15 -0
  148. package/fe/frontend/src/common/CRUD/CRUD.d.ts +3 -0
  149. package/fe/frontend/src/common/CRUD/CRUD.js +2 -0
  150. package/fe/frontend/src/common/CRUD/index.d.ts +2 -0
  151. package/fe/frontend/src/common/CRUD/index.js +1 -0
  152. package/fe/frontend/src/common/auth/index.d.ts +7 -0
  153. package/fe/frontend/src/common/auth/index.js +20 -0
  154. package/fe/frontend/src/common/fetchErrorShow.d.ts +3 -0
  155. package/fe/frontend/src/common/fetchErrorShow.js +8 -0
  156. package/fe/frontend/src/common/generateMenuData.d.ts +4 -0
  157. package/fe/frontend/src/common/generateMenuData.js +12 -0
  158. package/fe/frontend/src/common/importComponent.d.ts +5 -0
  159. package/fe/frontend/src/common/importComponent.js +8 -0
  160. package/fe/frontend/src/common/language.d.ts +2 -0
  161. package/fe/frontend/src/common/language.js +9 -0
  162. package/fe/frontend/src/common/logFn/index.d.ts +5 -0
  163. package/fe/frontend/src/common/logFn/index.js +9 -0
  164. package/fe/frontend/src/common/menu.d.ts +34 -0
  165. package/fe/frontend/src/common/menu.js +101 -0
  166. package/fe/frontend/src/common/request.d.ts +37 -0
  167. package/fe/frontend/src/common/request.js +217 -0
  168. package/fe/frontend/src/components/AsyncSelect/AsyncSelect.d.ts +8 -0
  169. package/fe/frontend/src/components/AsyncSelect/AsyncSelect.js +32 -0
  170. package/fe/frontend/src/components/AsyncSelect/index.d.ts +4 -0
  171. package/fe/frontend/src/components/AsyncSelect/index.js +3 -0
  172. package/fe/frontend/src/components/BasePage/HeaderView.d.ts +9 -0
  173. package/fe/frontend/src/components/BasePage/HeaderView.js +14 -0
  174. package/fe/frontend/src/components/Router/index.d.ts +9 -0
  175. package/fe/frontend/src/components/Router/index.js +11 -0
  176. package/fe/frontend/src/components/Router/type.d.ts +2 -0
  177. package/fe/frontend/src/components/Router/type.js +1 -0
  178. package/fe/frontend/src/defaultPages/Iframe/index.d.ts +3 -0
  179. package/fe/frontend/src/defaultPages/Iframe/index.js +14 -0
  180. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/DetailPanel.d.ts +7 -0
  181. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/DetailPanel.js +94 -0
  182. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/PopFrom.d.ts +13 -0
  183. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/PopFrom.js +124 -0
  184. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/builtIn.d.ts +44 -0
  185. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/builtIn.js +7 -0
  186. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/data.d.ts +4 -0
  187. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/data.js +6 -0
  188. package/fe/frontend/src/defaultPages/SchemaPage/components/SchemaSearch/index.d.ts +3 -0
  189. package/fe/frontend/src/defaultPages/SchemaPage/components/SchemaSearch/index.js +63 -0
  190. package/fe/frontend/src/defaultPages/SchemaPage/components/SchemaTable/index.d.ts +11 -0
  191. package/fe/frontend/src/defaultPages/SchemaPage/components/SchemaTable/index.js +188 -0
  192. package/fe/frontend/src/defaultPages/SchemaPage/data/eventInfo.d.ts +8 -0
  193. package/fe/frontend/src/defaultPages/SchemaPage/data/eventInfo.js +6 -0
  194. package/fe/frontend/src/defaultPages/SchemaPage/data/index.d.ts +3 -0
  195. package/fe/frontend/src/defaultPages/SchemaPage/data/index.js +1 -0
  196. package/fe/frontend/src/defaultPages/SchemaPage/hooks/useComConfig.d.ts +10 -0
  197. package/fe/frontend/src/defaultPages/SchemaPage/hooks/useComConfig.js +14 -0
  198. package/fe/frontend/src/defaultPages/SchemaPage/index.css +167 -0
  199. package/fe/frontend/src/defaultPages/SchemaPage/index.d.ts +4 -0
  200. package/fe/frontend/src/defaultPages/SchemaPage/index.js +75 -0
  201. package/fe/frontend/src/defaultPages/SchemaPage/schemaType.d.ts +51 -0
  202. package/fe/frontend/src/defaultPages/SchemaPage/schemaType.js +4 -0
  203. package/fe/frontend/src/defaultPages/SchemaPage/utils/permissions.d.ts +3 -0
  204. package/fe/frontend/src/defaultPages/SchemaPage/utils/permissions.js +3 -0
  205. package/fe/frontend/src/defaultPages/SchemaPage/utils/schemaConversion.d.ts +3 -0
  206. package/fe/frontend/src/defaultPages/SchemaPage/utils/schemaConversion.js +115 -0
  207. package/fe/frontend/src/defaultPages/SchemaPage/utils/validator.d.ts +7 -0
  208. package/fe/frontend/src/defaultPages/SchemaPage/utils/validator.js +36 -0
  209. package/fe/frontend/src/defaultPages/SidebarSlotPage/SidebarSlotContainer.d.ts +10 -0
  210. package/fe/frontend/src/defaultPages/SidebarSlotPage/SidebarSlotContainer.js +38 -0
  211. package/fe/frontend/src/defaultPages/SidebarSlotPage/index.d.ts +3 -0
  212. package/fe/frontend/src/defaultPages/SidebarSlotPage/index.js +16 -0
  213. package/fe/frontend/src/defaultPages/SidebarSlotPageTmp.d.ts +3 -0
  214. package/fe/frontend/src/defaultPages/SidebarSlotPageTmp.js +17 -0
  215. package/fe/frontend/src/defaultPages/SlotPage/index.d.ts +3 -0
  216. package/fe/frontend/src/defaultPages/SlotPage/index.js +26 -0
  217. package/fe/frontend/src/exportStore.d.ts +17 -0
  218. package/fe/frontend/src/exportStore.js +16 -0
  219. package/fe/frontend/src/hooks/useCurrentMenuData.d.ts +19 -0
  220. package/fe/frontend/src/hooks/useCurrentMenuData.js +28 -0
  221. package/fe/frontend/src/hooks/useRouterParams.d.ts +5 -0
  222. package/fe/frontend/src/hooks/useRouterParams.js +11 -0
  223. package/fe/frontend/src/index.d.ts +16 -0
  224. package/fe/frontend/src/index.js +13 -0
  225. package/fe/frontend/src/main.css +96 -0
  226. package/fe/frontend/src/main.d.ts +27 -0
  227. package/fe/frontend/src/main.js +72 -0
  228. package/fe/frontend/src/stores/apiFreezer.d.ts +93 -0
  229. package/fe/frontend/src/stores/apiFreezer.js +49 -0
  230. package/fe/frontend/src/stores/mode.d.ts +19 -0
  231. package/fe/frontend/src/stores/mode.js +37 -0
  232. package/fe/frontend/src/stores/schemaEventBus.d.ts +42 -0
  233. package/fe/frontend/src/stores/schemaEventBus.js +70 -0
  234. package/fe/frontend/src/stores/schemaStore.d.ts +47 -0
  235. package/fe/frontend/src/stores/schemaStore.js +26 -0
  236. package/fe/frontend/src/typing/scalability.d.ts +47 -0
  237. package/fe/frontend/src/typing/scalability.js +1 -0
  238. package/fe/frontend/src/typing/window.d.ts +7 -0
  239. package/fe/frontend/src/typing/window.js +1 -0
  240. package/fe/model/types/data/button.d.ts +32 -0
  241. package/fe/model/types/data/button.js +16 -0
  242. package/fe/model/types/data/component.d.ts +40 -0
  243. package/fe/model/types/data/component.js +11 -0
  244. package/fe/model/types/data/fetchInfo.d.ts +20 -0
  245. package/fe/model/types/data/fetchInfo.js +1 -0
  246. package/fe/model/types/data/schema.d.ts +98 -0
  247. package/fe/model/types/data/schema.js +1 -0
  248. package/fe/model/types/data/search.d.ts +7 -0
  249. package/fe/model/types/data/search.js +1 -0
  250. package/fe/model/types/menuType.d.ts +73 -0
  251. package/fe/model/types/menuType.js +1 -0
  252. package/fe/model/types/model.d.ts +33 -0
  253. package/fe/model/types/model.js +1 -0
  254. package/fe/packages/common/array/index.d.ts +7 -0
  255. package/fe/packages/common/array/index.js +40 -0
  256. package/fe/packages/common/cache/LRUCache.d.ts +13 -0
  257. package/fe/packages/common/cache/LRUCache.js +47 -0
  258. package/fe/packages/common/cache/index.d.ts +2 -0
  259. package/fe/packages/common/cache/index.js +1 -0
  260. package/fe/packages/common/guards/index.d.ts +9 -0
  261. package/fe/packages/common/guards/index.js +24 -0
  262. package/fe/packages/common/http/index.d.ts +90 -0
  263. package/fe/packages/common/http/index.js +310 -0
  264. package/fe/packages/common/i18n/default.d.ts +92 -0
  265. package/fe/packages/common/i18n/default.js +90 -0
  266. package/fe/packages/common/i18n/en-US.d.ts +92 -0
  267. package/fe/packages/common/i18n/en-US.js +90 -0
  268. package/fe/packages/common/i18n/index.d.ts +43 -0
  269. package/fe/packages/common/i18n/index.js +173 -0
  270. package/fe/packages/common/i18n/locales.d.ts +8 -0
  271. package/fe/packages/common/i18n/locales.js +10 -0
  272. package/fe/packages/common/i18n/types.d.ts +71 -0
  273. package/fe/packages/common/i18n/types.js +1 -0
  274. package/fe/packages/common/index.d.ts +11 -0
  275. package/fe/packages/common/index.js +10 -0
  276. package/fe/packages/common/log/index.d.ts +33 -0
  277. package/fe/packages/common/log/index.js +176 -0
  278. package/fe/packages/common/number/index.d.ts +3 -0
  279. package/fe/packages/common/number/index.js +10 -0
  280. package/fe/packages/common/object/filterEmpty.d.ts +3 -0
  281. package/fe/packages/common/object/filterEmpty.js +33 -0
  282. package/fe/packages/common/object/index.d.ts +5 -0
  283. package/fe/packages/common/object/index.js +25 -0
  284. package/fe/packages/common/string/index.d.ts +4 -0
  285. package/fe/packages/common/string/index.js +17 -0
  286. package/fe/packages/common/types/index.d.ts +4 -0
  287. package/fe/packages/common/types/index.js +1 -0
  288. package/fe/packages/ui/react/components/Button/Button.d.ts +29 -10
  289. package/fe/packages/ui/react/components/Button/Button.js +53 -23
  290. package/fe/packages/ui/react/components/Button/SumbitButton.d.ts +2 -2
  291. package/fe/packages/ui/react/components/Button/SumbitButton.js +3 -10
  292. package/fe/packages/ui/react/components/Button/index.d.ts +1 -1
  293. package/fe/packages/ui/react/components/Checkbox/Checkbox.d.ts +1 -1
  294. package/fe/packages/ui/react/components/Checkbox/Checkbox.js +5 -3
  295. package/fe/packages/ui/react/components/ConfirmDialog/ConfirmDialog.js +11 -0
  296. package/fe/packages/ui/react/components/ConfirmDialog/index.d.ts +2 -0
  297. package/fe/packages/ui/react/components/ConfirmDialog/index.js +1 -0
  298. package/fe/packages/ui/react/components/DataTable/ActionBtn.d.ts +3 -1
  299. package/fe/packages/ui/react/components/DataTable/ActionBtn.js +87 -4
  300. package/fe/packages/ui/react/components/DataTable/{data-table.d.ts → index.d.ts} +12 -4
  301. package/fe/packages/ui/react/components/DataTable/index.js +187 -0
  302. package/fe/packages/ui/react/components/Date/Calendar.js +4 -3
  303. package/fe/packages/ui/react/components/Date/Date.d.ts +5 -3
  304. package/fe/packages/ui/react/components/Date/Date.js +71 -48
  305. package/fe/packages/ui/react/components/Date/TimePicker.js +3 -1
  306. package/fe/packages/ui/react/components/Date/dropdownPositioning.d.ts +3 -0
  307. package/fe/packages/ui/react/components/Date/dropdownPositioning.js +12 -0
  308. package/fe/packages/ui/react/components/Date/locales.d.ts +1 -0
  309. package/fe/packages/ui/react/components/Date/locales.js +7 -38
  310. package/fe/packages/ui/react/components/Drawer/Drawer.d.ts +29 -0
  311. package/fe/packages/ui/react/components/Drawer/Drawer.js +100 -0
  312. package/fe/packages/ui/react/components/Drawer/index.d.ts +3 -0
  313. package/fe/packages/ui/react/components/Drawer/index.js +1 -0
  314. package/fe/packages/ui/react/components/Dropdown/Dropdown.d.ts +26 -0
  315. package/fe/packages/ui/react/components/Dropdown/Dropdown.js +49 -0
  316. package/fe/packages/ui/react/components/Dropdown/index.d.ts +2 -0
  317. package/fe/packages/ui/react/components/Dropdown/index.js +1 -0
  318. package/fe/packages/ui/react/components/Form/Form.js +1 -1
  319. package/fe/packages/ui/react/components/Form/FormItem.js +1 -1
  320. package/fe/packages/ui/react/components/Form/SchemaForm/data.d.ts +40 -0
  321. package/fe/packages/ui/react/components/Form/SchemaForm/data.js +18 -0
  322. package/fe/packages/ui/react/components/Form/{SchemeForm → SchemaForm}/index.d.ts +15 -14
  323. package/fe/packages/ui/react/components/Form/SchemaForm/index.js +79 -0
  324. package/fe/packages/ui/react/components/Form/index.d.ts +1 -1
  325. package/fe/packages/ui/react/components/Form/index.js +1 -1
  326. package/fe/packages/ui/react/components/ImagePreview/ImagePreview.js +15 -12
  327. package/fe/packages/ui/react/components/ImagePreview/PreviewImage.js +5 -2
  328. package/fe/packages/ui/react/components/Input/Input.d.ts +5 -1
  329. package/fe/packages/ui/react/components/Input/Input.js +5 -4
  330. package/fe/packages/ui/react/components/InputNumber/InputNumber.d.ts +28 -0
  331. package/fe/packages/ui/react/components/InputNumber/InputNumber.js +144 -0
  332. package/fe/packages/ui/react/components/InputNumber/index.d.ts +2 -0
  333. package/fe/packages/ui/react/components/InputNumber/index.js +1 -0
  334. package/fe/packages/ui/react/components/InputNumber/inputNumberUtils.d.ts +30 -0
  335. package/fe/packages/ui/react/components/InputNumber/inputNumberUtils.js +63 -0
  336. package/fe/packages/ui/react/components/InputNumber/inputNumberUtils.test.d.ts +2 -0
  337. package/fe/packages/ui/react/components/InputNumber/inputNumberUtils.test.js +27 -0
  338. package/fe/packages/ui/react/components/Label/Label.js +2 -2
  339. package/fe/packages/ui/react/components/Menu/Menu.d.ts +18 -0
  340. package/fe/packages/ui/react/components/Menu/Menu.js +102 -0
  341. package/fe/packages/ui/react/components/Menu/MenuContext.d.ts +39 -0
  342. package/fe/packages/ui/react/components/Menu/MenuContext.js +97 -0
  343. package/fe/packages/ui/react/components/Menu/MenuItem.d.ts +3 -0
  344. package/fe/packages/ui/react/components/Menu/MenuItem.js +33 -0
  345. package/fe/packages/ui/react/components/Menu/SubMenu.d.ts +10 -0
  346. package/fe/packages/ui/react/components/Menu/SubMenu.js +169 -0
  347. package/fe/packages/ui/react/components/Menu/index.d.ts +9 -0
  348. package/fe/packages/ui/react/components/Menu/index.js +5 -0
  349. package/fe/packages/ui/react/components/Menu/menuTypes.d.ts +59 -0
  350. package/fe/packages/ui/react/components/Menu/menuTypes.js +1 -0
  351. package/fe/packages/ui/react/components/Menu/utils.d.ts +2 -0
  352. package/fe/packages/ui/react/components/Menu/utils.js +7 -0
  353. package/fe/packages/ui/react/components/Message/Message.js +4 -1
  354. package/fe/packages/ui/react/components/Modal/Modal.d.ts +3 -1
  355. package/fe/packages/ui/react/components/Modal/Modal.js +6 -43
  356. package/fe/packages/ui/react/components/Modal/ModalManager.js +4 -3
  357. package/fe/packages/ui/react/components/Overlay/Overlay.d.ts +23 -0
  358. package/fe/packages/ui/react/components/Overlay/Overlay.js +53 -0
  359. package/fe/packages/ui/react/components/Overlay/index.d.ts +3 -0
  360. package/fe/packages/ui/react/components/Overlay/index.js +1 -0
  361. package/fe/packages/ui/react/components/{Pagination.js → Pagination/Pagination.js} +4 -4
  362. package/fe/packages/ui/react/components/Pagination/index.d.ts +2 -0
  363. package/fe/packages/ui/react/components/Pagination/index.js +1 -0
  364. package/fe/packages/ui/react/components/Popup/Popup.d.ts +26 -0
  365. package/fe/packages/ui/react/components/Popup/Popup.js +81 -0
  366. package/fe/packages/ui/react/components/Popup/index.d.ts +2 -0
  367. package/fe/packages/ui/react/components/Popup/index.js +1 -0
  368. package/fe/packages/ui/react/components/Search/Search.d.ts +2 -2
  369. package/fe/packages/ui/react/components/Search/Search.js +3 -3
  370. package/fe/packages/ui/react/components/Select/Select.d.ts +5 -0
  371. package/fe/packages/ui/react/components/Select/Select.js +52 -109
  372. package/fe/packages/ui/react/components/Select/dropdownPositioning.d.ts +3 -0
  373. package/fe/packages/ui/react/components/Select/dropdownPositioning.js +13 -0
  374. package/fe/packages/ui/react/components/Skeleton/Skeleton.js +2 -2
  375. package/fe/packages/ui/react/components/Switch/Switch.js +3 -1
  376. package/fe/packages/ui/react/components/TableSearch/TableSearch.d.ts +5 -4
  377. package/fe/packages/ui/react/components/TableSearch/TableSearch.js +23 -21
  378. package/fe/packages/ui/react/components/TableSearch/lang.js +5 -14
  379. package/fe/packages/ui/react/components/{Textarea.d.ts → Textarea/Textarea.d.ts} +11 -3
  380. package/fe/packages/ui/react/components/Textarea/Textarea.js +37 -0
  381. package/fe/packages/ui/react/components/Textarea/index.d.ts +2 -0
  382. package/fe/packages/ui/react/components/Textarea/index.js +1 -0
  383. package/fe/packages/ui/react/components/{Tooltip.d.ts → Tooltip/Tooltip.d.ts} +2 -2
  384. package/fe/packages/ui/react/components/Tooltip/Tooltip.js +79 -0
  385. package/fe/packages/ui/react/components/Tooltip/index.d.ts +2 -0
  386. package/fe/packages/ui/react/components/Tooltip/index.js +1 -0
  387. package/fe/packages/ui/react/components/{TreeSelect.js → TreeSelect/TreeSelect.js} +9 -11
  388. package/fe/packages/ui/react/components/TreeSelect/index.d.ts +2 -0
  389. package/fe/packages/ui/react/components/TreeSelect/index.js +1 -0
  390. package/fe/packages/ui/react/components/Upload/ImageUpload.js +18 -6
  391. package/fe/packages/ui/react/components/Upload/Upload.js +2 -1
  392. package/fe/packages/ui/react/components/{breadcrumb.js → breadcrumb/breadcrumb.js} +15 -12
  393. package/fe/packages/ui/react/components/breadcrumb/index.d.ts +2 -0
  394. package/fe/packages/ui/react/components/breadcrumb/index.js +1 -0
  395. package/fe/packages/ui/react/components/hooks/useDropdownPositioning.d.ts +49 -0
  396. package/fe/packages/ui/react/components/hooks/useDropdownPositioning.js +137 -0
  397. package/fe/packages/ui/react/components/index.d.ts +7 -1
  398. package/fe/packages/ui/react/components/index.js +7 -1
  399. package/fe/packages/ui/react/components/table/index.d.ts +2 -0
  400. package/fe/packages/ui/react/components/table/index.js +1 -0
  401. package/fe/packages/ui/react/components/{table.d.ts → table/table.d.ts} +12 -2
  402. package/fe/packages/ui/react/components/table/table.js +116 -0
  403. package/fe/packages/ui/react/components/testPage/MenuTestPage.d.ts +2 -0
  404. package/fe/packages/ui/react/components/testPage/MenuTestPage.js +104 -0
  405. package/fe/packages/ui/react/components/testPage/index.js +300 -81
  406. package/fe/packages/ui/react/hooks/useExecuteOnce.d.ts +30 -0
  407. package/fe/packages/ui/react/hooks/useExecuteOnce.js +57 -0
  408. package/fe/packages/ui/react/hooks/useInit.d.ts +1 -1
  409. package/fe/packages/ui/react/hooks/useInit.js +1 -1
  410. package/fe/packages/ui/react/hooks/useLanguage.d.ts +1 -6
  411. package/fe/packages/ui/react/hooks/useRefState.d.ts +30 -0
  412. package/fe/packages/ui/react/hooks/useRefState.js +29 -0
  413. package/fe/packages/ui/react/hooks/useWatch.d.ts +23 -0
  414. package/fe/packages/ui/react/hooks/useWatch.js +87 -0
  415. package/fe/packages/ui/react/hooks/useWatch.test.d.ts +2 -0
  416. package/fe/packages/ui/react/hooks/useWatch.test.js +22 -0
  417. package/fe/packages/ui/react/i18n/I18nProvider.d.ts +31 -0
  418. package/fe/packages/ui/react/i18n/I18nProvider.js +25 -0
  419. package/fe/packages/ui/react/i18n/index.d.ts +4 -0
  420. package/fe/packages/ui/react/i18n/index.js +3 -0
  421. package/fe/packages/ui/react/i18n/useI18n.d.ts +13 -0
  422. package/fe/packages/ui/react/i18n/useI18n.js +18 -0
  423. package/fe/packages/ui/react/index.css +238 -0
  424. package/fe/packages/ui/react/index.d.ts +2 -0
  425. package/fe/packages/ui/react/index.js +2 -0
  426. package/fe/packages/ui/react/lib/createStoreHook.d.ts +9 -0
  427. package/fe/packages/ui/react/lib/createStoreHook.js +6 -0
  428. package/fe/packages/ui/react/lib/export.d.ts +2 -2
  429. package/fe/packages/ui/react/stores/language.d.ts +3 -12
  430. package/fe/packages/ui/react/stores/language.js +2 -51
  431. package/fe/typings/type.d.ts +5 -0
  432. package/fe/typings/type.js +1 -0
  433. package/model/index.d.ts +2 -0
  434. package/model/test.d.ts +2 -0
  435. package/model/types/data/button.d.ts +32 -0
  436. package/model/types/data/component.d.ts +40 -0
  437. package/model/types/data/fetchInfo.d.ts +20 -0
  438. package/model/types/data/schema.d.ts +98 -0
  439. package/model/types/data/search.d.ts +7 -0
  440. package/model/types/index.d.ts +3 -0
  441. package/model/types/menuType.d.ts +73 -0
  442. package/model/types/model.d.ts +33 -0
  443. package/package.json +36 -17
  444. package/{cjs → types}/app/controller/base.d.ts +4 -5
  445. package/types/app/controller/project.d.ts +22 -0
  446. package/{cjs → types}/app/controller/view.d.ts +1 -2
  447. package/types/app/extend/$fetch.d.ts +8 -0
  448. package/{cjs → types}/app/extend/db.d.ts +1 -1
  449. package/{cjs → types}/app/extend/logger.d.ts +1 -1
  450. package/{cjs → types}/app/extend/render-view.d.ts +1 -2
  451. package/{cjs → types}/app/middleware/api-params-verify.d.ts +1 -2
  452. package/{cjs → types}/app/middleware/api-sign-verify.d.ts +1 -2
  453. package/{esm/app/middleware/api-sign-verify.d.ts → types/app/middleware/error-handle.d.ts} +1 -3
  454. package/{cjs → types}/app/middleware/project-handler.d.ts +2 -2
  455. package/{cjs → types}/app/middleware.d.ts +0 -2
  456. package/{cjs/app/router/view.d.ts → types/app/router/project.d.ts} +1 -1
  457. package/types/app/router/view.d.ts +3 -0
  458. package/{cjs → types}/app/router-schema/project.d.ts +1 -1
  459. package/types/app/service/base.d.ts +9 -0
  460. package/types/app/service/project.d.ts +57 -0
  461. package/types/app/type.d.ts +5 -0
  462. package/{cjs → types}/app/typings.d.ts +17 -23
  463. package/types/bundler/defaultAlias.d.ts +3 -0
  464. package/types/bundler/index.d.ts +2 -0
  465. package/types/bundler/state.d.ts +18 -0
  466. package/types/bundler/utils.d.ts +9 -0
  467. package/types/config/config.default.d.ts +14 -0
  468. package/types/index.d.ts +28 -0
  469. package/types/packages/common/LRUCache.d.ts +1 -0
  470. package/types/packages/common/array/index.d.ts +6 -0
  471. package/types/packages/common/cache/LRUCache.d.ts +12 -0
  472. package/types/packages/common/cache/index.d.ts +1 -0
  473. package/types/packages/common/guards/index.d.ts +8 -0
  474. package/types/packages/common/http/index.d.ts +89 -0
  475. package/types/packages/common/i18n/default.d.ts +91 -0
  476. package/types/packages/common/i18n/en-US.d.ts +91 -0
  477. package/types/packages/common/i18n/index.d.ts +42 -0
  478. package/types/packages/common/i18n/locales.d.ts +7 -0
  479. package/types/packages/common/i18n/types.d.ts +70 -0
  480. package/types/packages/common/index.d.ts +10 -0
  481. package/types/packages/common/log/index.d.ts +32 -0
  482. package/types/packages/common/number/index.d.ts +2 -0
  483. package/types/packages/common/object/filterEmpty.d.ts +2 -0
  484. package/types/packages/common/object/filtereEmpty.d.ts +1 -0
  485. package/types/packages/common/object/index.d.ts +4 -0
  486. package/types/packages/common/string/index.d.ts +3 -0
  487. package/types/packages/common/types/index.d.ts +3 -0
  488. package/{cjs → types}/packages/core/index.d.ts +1 -1
  489. package/{cjs → types}/packages/core/loader/config.d.ts +1 -1
  490. package/{cjs → types}/packages/core/loader/controller.d.ts +2 -2
  491. package/{cjs → types}/packages/core/loader/middleware.d.ts +1 -1
  492. package/{esm → types}/packages/core/loader/model.d.ts +2 -3
  493. package/{cjs → types}/packages/core/loader/router-schema.d.ts +2 -2
  494. package/{cjs → types}/packages/core/loader/router.d.ts +1 -1
  495. package/{cjs → types}/packages/core/loader/service.d.ts +2 -2
  496. package/{cjs → types}/packages/core/types.d.ts +42 -3
  497. package/types/packages/utils/getAllFnReturnValue.d.ts +0 -0
  498. package/types/packages/utils/runFileFn.d.ts +7 -0
  499. package/types/typings/type.d.ts +4 -0
  500. package/cjs/app/controller/project.d.ts +0 -11
  501. package/cjs/app/middleware/error-handle.d.ts +0 -5
  502. package/cjs/app/router/project.d.ts +0 -4
  503. package/cjs/app/service/bese.d.ts +0 -10
  504. package/cjs/app/service/bese.js +0 -17
  505. package/cjs/app/service/project.d.ts +0 -27
  506. package/cjs/app/type.d.ts +0 -2
  507. package/cjs/bundler/index.d.ts +0 -1
  508. package/cjs/bundler/utils.d.ts +0 -7
  509. package/cjs/index.d.ts +0 -28
  510. package/cjs/packages/core/loader/model.d.ts +0 -36
  511. package/cjs/packages/utils/runFileFn.d.ts +0 -5
  512. package/cjs/typings/type.d.ts +0 -4
  513. package/cjs/typings/type.js +0 -2
  514. package/esm/app/controller/base.d.ts +0 -14
  515. package/esm/app/controller/project.d.ts +0 -12
  516. package/esm/app/controller/view.d.ts +0 -9
  517. package/esm/app/data/signKey.d.ts +0 -2
  518. package/esm/app/extend/db.d.ts +0 -3
  519. package/esm/app/extend/generateErrorMessage.d.ts +0 -8
  520. package/esm/app/extend/logger.d.ts +0 -12
  521. package/esm/app/extend/parsingParamsOnUrl.d.ts +0 -3
  522. package/esm/app/extend/render-view.d.ts +0 -5
  523. package/esm/app/middleware/api-params-verify.d.ts +0 -6
  524. package/esm/app/middleware/error-handle.d.ts +0 -6
  525. package/esm/app/middleware/project-handler.d.ts +0 -5
  526. package/esm/app/middleware.d.ts +0 -6
  527. package/esm/app/router/project.d.ts +0 -5
  528. package/esm/app/router/view.d.ts +0 -5
  529. package/esm/app/router-schema/project.d.ts +0 -4
  530. package/esm/app/service/bese.d.ts +0 -11
  531. package/esm/app/service/bese.js +0 -12
  532. package/esm/app/service/project.d.ts +0 -28
  533. package/esm/app/type.d.ts +0 -3
  534. package/esm/app/typings.d.ts +0 -50
  535. package/esm/bundler/dev.d.ts +0 -2
  536. package/esm/bundler/index.d.ts +0 -2
  537. package/esm/bundler/prod.d.ts +0 -2
  538. package/esm/bundler/utils.d.ts +0 -8
  539. package/esm/index.d.ts +0 -29
  540. package/esm/packages/core/env.d.ts +0 -16
  541. package/esm/packages/core/index.d.ts +0 -7
  542. package/esm/packages/core/loader/config.d.ts +0 -10
  543. package/esm/packages/core/loader/controller.d.ts +0 -18
  544. package/esm/packages/core/loader/extend.d.ts +0 -9
  545. package/esm/packages/core/loader/middleware.d.ts +0 -12
  546. package/esm/packages/core/loader/router-schema.d.ts +0 -19
  547. package/esm/packages/core/loader/router.d.ts +0 -9
  548. package/esm/packages/core/loader/service.d.ts +0 -18
  549. package/esm/packages/core/paths.d.ts +0 -12
  550. package/esm/packages/core/types.d.ts +0 -75
  551. package/esm/packages/utils/getAllFilesInFolder.d.ts +0 -10
  552. package/esm/packages/utils/getAllFnReturnValue.d.ts +0 -1
  553. package/esm/packages/utils/index.d.ts +0 -5
  554. package/esm/packages/utils/loadFile.d.ts +0 -21
  555. package/esm/packages/utils/path.d.ts +0 -25
  556. package/esm/packages/utils/runFileFn.d.ts +0 -6
  557. package/esm/typings/type.d.ts +0 -5
  558. package/fe/frontend/main.d.ts +0 -3
  559. package/fe/frontend/main.js +0 -6
  560. package/fe/packages/ui/react/components/ConfirmDialog.js +0 -9
  561. package/fe/packages/ui/react/components/DataTable/data-table.js +0 -141
  562. package/fe/packages/ui/react/components/Dropdown.d.ts +0 -16
  563. package/fe/packages/ui/react/components/Dropdown.js +0 -54
  564. package/fe/packages/ui/react/components/Form/SchemeForm/data.d.ts +0 -51
  565. package/fe/packages/ui/react/components/Form/SchemeForm/data.js +0 -8
  566. package/fe/packages/ui/react/components/Form/SchemeForm/index.js +0 -69
  567. package/fe/packages/ui/react/components/Textarea.js +0 -35
  568. package/fe/packages/ui/react/components/Tooltip.js +0 -118
  569. package/fe/packages/ui/react/components/table.js +0 -20
  570. package/fe/packages/ui/react/locales/index.d.ts +0 -8
  571. package/fe/packages/ui/react/locales/index.js +0 -6
  572. /package/{cjs/packages/utils/getAllFnReturnValue.d.ts → esm/packages/common/i18n/types.js} +0 -0
  573. /package/{esm/typings/type.js → fe/frontend/apps/dash/types.js} +0 -0
  574. /package/fe/packages/ui/react/components/{ConfirmDialog.d.ts → ConfirmDialog/ConfirmDialog.d.ts} +0 -0
  575. /package/fe/packages/ui/react/components/{Pagination.d.ts → Pagination/Pagination.d.ts} +0 -0
  576. /package/fe/packages/ui/react/components/{TreeSelect.d.ts → TreeSelect/TreeSelect.d.ts} +0 -0
  577. /package/fe/packages/ui/react/components/{breadcrumb.d.ts → breadcrumb/breadcrumb.d.ts} +0 -0
  578. /package/{cjs → types}/app/data/signKey.d.ts +0 -0
  579. /package/{cjs → types}/app/extend/generateErrorMessage.d.ts +0 -0
  580. /package/{cjs → types}/app/extend/parsingParamsOnUrl.d.ts +0 -0
  581. /package/{cjs → types}/bundler/dev.d.ts +0 -0
  582. /package/{cjs → types}/bundler/prod.d.ts +0 -0
  583. /package/{cjs → types}/packages/core/env.d.ts +0 -0
  584. /package/{cjs → types}/packages/core/loader/extend.d.ts +0 -0
  585. /package/{cjs → types}/packages/core/paths.d.ts +0 -0
  586. /package/{cjs → types}/packages/utils/getAllFilesInFolder.d.ts +0 -0
  587. /package/{cjs → types}/packages/utils/index.d.ts +0 -0
  588. /package/{cjs → types}/packages/utils/loadFile.d.ts +0 -0
  589. /package/{cjs → types}/packages/utils/path.d.ts +0 -0
@@ -0,0 +1,217 @@
1
+ import { apiFreezerStore, FreezeState } from '../stores/apiFreezer';
2
+ import { FetchAxios } from '../../../packages/common/http';
3
+ import md5 from 'md5';
4
+ import { API_AUTH_HEADER_KEY, AUTH_HEADER_KEY, clearAuthToken, getApiAuth, getAuthToken } from './auth';
5
+ const BASE_URL = '/api';
6
+ const NumberConcurrentCalls = 4;
7
+ const isRequestWhitelisted = (api, params) => {
8
+ const { requestWhitelist } = apiFreezerStore.getState();
9
+ return requestWhitelist.some((matcher) => {
10
+ if (typeof matcher === 'string')
11
+ return matcher === api;
12
+ if (matcher instanceof RegExp)
13
+ return matcher.test(api);
14
+ return matcher(api, params);
15
+ });
16
+ };
17
+ /**
18
+ * 处理解冻
19
+ * 冻结流程 4~9
20
+ */
21
+ apiFreezerStore.subscribe((newState) => {
22
+ if (newState.state === FreezeState.Thawing) {
23
+ console.time('Thawing');
24
+ const { freezeQueue } = newState;
25
+ const queues = [...freezeQueue.values()];
26
+ // 清空冻结队列
27
+ freezeQueue.clear();
28
+ (async () => {
29
+ /**
30
+ * 生成 并发队列
31
+ * 每个队列从头取一个任务
32
+ * 当所有任务执行完后 这个 Promise.all 才会结束
33
+ */
34
+ await Promise.all(Array.from({ length: Math.min(NumberConcurrentCalls, queues.length) }, async () => {
35
+ while (queues.length) {
36
+ const task = queues.shift();
37
+ // 异常数据跳过
38
+ if (!task)
39
+ continue;
40
+ const { originFn, callBackFns } = task;
41
+ try {
42
+ const res = await originFn();
43
+ callBackFns.forEach(({ resolve }) => {
44
+ resolve(res);
45
+ });
46
+ }
47
+ catch (error) {
48
+ callBackFns.forEach(({ reject }) => {
49
+ reject(error);
50
+ });
51
+ }
52
+ }
53
+ }));
54
+ // 标记完成
55
+ apiFreezerStore.setState({ state: FreezeState.Hibernation });
56
+ console.timeEnd('Thawing');
57
+ })();
58
+ }
59
+ });
60
+ /**
61
+ * 冻结流程 1~3
62
+ */
63
+ function hijackingFn(fn) {
64
+ return function (...params) {
65
+ const { state, freezeQueue } = apiFreezerStore.getState();
66
+ const [api] = params;
67
+ // 不等于冻结状态 | 在接口白名单内
68
+ // 直接放行
69
+ if (state !== FreezeState.Freeze || isRequestWhitelisted(api, params)) {
70
+ return fn(...params);
71
+ }
72
+ // 请求拦截
73
+ else {
74
+ const key = md5(JSON.stringify(params));
75
+ if (!freezeQueue.has(key)) {
76
+ freezeQueue.set(key, {
77
+ originFn: () => fn(...params),
78
+ // result: null,
79
+ callBackFns: [],
80
+ });
81
+ }
82
+ const { callBackFns } = freezeQueue.get(key);
83
+ return new Promise((resolve, reject) => {
84
+ callBackFns.push({ reject, resolve });
85
+ });
86
+ }
87
+ };
88
+ }
89
+ const api = new FetchAxios({
90
+ baseURL: BASE_URL,
91
+ timeout: 15000,
92
+ credentials: 'include',
93
+ validateStatus: (status) => status >= 200 && status < 300,
94
+ });
95
+ const removeBaseurlFromURL = (config) => {
96
+ const { baseURL, url } = config;
97
+ if (!baseURL || !url)
98
+ return;
99
+ const origin = typeof window === 'undefined' ? 'http://localhost' : window.location.origin;
100
+ const baseURLObject = new URL(baseURL, origin);
101
+ const basePath = baseURLObject.pathname.replace(/\/+$/, '');
102
+ const requestURL = new URL(url, baseURLObject.origin);
103
+ if (requestURL.origin !== baseURLObject.origin || !basePath)
104
+ return;
105
+ const normalizedPathname = requestURL.pathname.replace(/\/+$/, '');
106
+ if (normalizedPathname !== basePath && !requestURL.pathname.startsWith(`${basePath}/`))
107
+ return;
108
+ const pathname = requestURL.pathname.slice(basePath.length) || '/';
109
+ config.url = `${pathname}${requestURL.search}${requestURL.hash}`;
110
+ };
111
+ // ---- Request Interceptors ----
112
+ api.interceptors.request.use(async (config) => {
113
+ removeBaseurlFromURL(config);
114
+ const token = await getAuthToken();
115
+ const aauto = getApiAuth();
116
+ const time = new Date().getTime();
117
+ config.headers = {
118
+ ...config.headers,
119
+ s_t: time + '',
120
+ s_sign: md5(`sakjdfnkjwjfnfkjkjldljksndf_${time}`),
121
+ [API_AUTH_HEADER_KEY]: aauto,
122
+ };
123
+ if (token) {
124
+ config.headers = {
125
+ ...config.headers,
126
+ [AUTH_HEADER_KEY]: `Bearer ${token}`,
127
+ };
128
+ }
129
+ return config;
130
+ });
131
+ api.interceptors.request.use((config) => {
132
+ console.debug(`[API] ${config.method?.toUpperCase()} ${config.url}`);
133
+ return config;
134
+ });
135
+ // ---- Response Interceptors ----
136
+ api.interceptors.response.use((res) => res, async (err) => {
137
+ const axiosErr = err;
138
+ if (axiosErr.response?.status === 401) {
139
+ await clearAuthToken();
140
+ if (typeof window !== 'undefined') {
141
+ window.location.href = '/login';
142
+ }
143
+ }
144
+ const message = extractErrorMessage(err);
145
+ console.error(`[API Error] ${message}`, {
146
+ url: err.config.url,
147
+ status: err.response?.status,
148
+ });
149
+ return Promise.reject(err);
150
+ });
151
+ // ---- Helpers ----
152
+ function extractErrorMessage(err) {
153
+ if (!(err instanceof Error))
154
+ return 'Unknown error';
155
+ const axiosErr = err;
156
+ if (axiosErr.response?.data && typeof axiosErr.response.data === 'object' && axiosErr.response.data !== null) {
157
+ const data = axiosErr.response.data;
158
+ if (typeof data.message === 'string')
159
+ return data.message;
160
+ if (typeof data.msg === 'string')
161
+ return data.msg;
162
+ if (Array.isArray(data.errors) && data.errors.length > 0) {
163
+ return String(data.errors[0]);
164
+ }
165
+ }
166
+ if (axiosErr.message)
167
+ return axiosErr.message;
168
+ if (axiosErr.code === 'ECONNABORTED')
169
+ return 'Request timed out';
170
+ return 'Network error';
171
+ }
172
+ /**
173
+ * GET/DELETE 不发送 body;统一把 data 转到 params。
174
+ * */
175
+ export const get = hijackingFn((url, data, config) => {
176
+ const hasDataParams = data !== undefined && data !== null && typeof data === 'object';
177
+ const getConfig = hasDataParams
178
+ ? {
179
+ ...config,
180
+ params: {
181
+ ...config?.params,
182
+ ...data,
183
+ },
184
+ }
185
+ : config;
186
+ return api.get(url, getConfig);
187
+ });
188
+ export const post = hijackingFn((url, data, config) => {
189
+ return api.post(url, data, config);
190
+ });
191
+ export const put = hijackingFn((url, data, config) => {
192
+ return api.put(url, data, config);
193
+ });
194
+ export const patch = hijackingFn((url, data, config) => {
195
+ return api.patch(url, data, config);
196
+ });
197
+ export const del = hijackingFn((url, data, config) => {
198
+ const hasDataParams = data !== undefined && data !== null && typeof data === 'object';
199
+ const delConfig = hasDataParams
200
+ ? {
201
+ ...config,
202
+ params: {
203
+ ...config?.params,
204
+ ...data,
205
+ },
206
+ }
207
+ : config;
208
+ return api.delete(url, delConfig);
209
+ });
210
+ export { api, FetchAxios };
211
+ export const request = {
212
+ get,
213
+ put,
214
+ post,
215
+ del,
216
+ patch,
217
+ };
@@ -0,0 +1,8 @@
1
+ import type { MergeType, MOmit } from '../../../../typings/type';
2
+ import { FetchInfo } from '../../../../model/types/data/fetchInfo';
3
+ import { SelectProps } from '../../../../packages/ui/react';
4
+ export interface AsyncSelectProps extends MergeType<[MOmit<FetchInfo, 'fetchKey'>, MOmit<SelectProps, 'options'>]> {
5
+ }
6
+ declare const AsyncSelect: (props: AsyncSelectProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default AsyncSelect;
8
+ //# sourceMappingURL=AsyncSelect.d.ts.map
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { handlingRequestErrors } from '../../common/fetchErrorShow';
3
+ import { request } from '../../common/request';
4
+ import { Select } from '../../../../packages/ui/react';
5
+ import useExecuteOnce from '../../../../packages/ui/react/hooks/useExecuteOnce';
6
+ import { useState } from 'react';
7
+ const AsyncSelect = (props) => {
8
+ const { fetchConfig, ...params } = props;
9
+ const [options, setOptions] = useState([]);
10
+ const [loading, setLoading] = useState(false);
11
+ useExecuteOnce(async () => {
12
+ if (fetchConfig) {
13
+ setLoading(true);
14
+ const { method = 'get', url } = fetchConfig;
15
+ try {
16
+ const res = await handlingRequestErrors(request[method](url));
17
+ if (res.data.code === 0) {
18
+ setOptions(res.data.data.map((i) => {
19
+ i.searchText = i.label;
20
+ return i;
21
+ }));
22
+ }
23
+ }
24
+ finally {
25
+ setLoading(false);
26
+ }
27
+ }
28
+ }, { executionPhase: 'mount' });
29
+ // @ts-ignore
30
+ return _jsx(Select, { loading: loading, options: options, ...params });
31
+ };
32
+ export default AsyncSelect;
@@ -0,0 +1,4 @@
1
+ import AsyncSelect from './AsyncSelect';
2
+ export * from './AsyncSelect';
3
+ export default AsyncSelect;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ import AsyncSelect from './AsyncSelect';
2
+ export * from './AsyncSelect';
3
+ export default AsyncSelect;
@@ -0,0 +1,9 @@
1
+ import { PropsWithChildren, ReactNode } from "react";
2
+ export interface HeaderViewProps extends PropsWithChildren {
3
+ menu?: ReactNode;
4
+ title?: ReactNode;
5
+ userArea?: ReactNode;
6
+ }
7
+ declare const HeaderView: (props?: HeaderViewProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default HeaderView;
9
+ //# sourceMappingURL=HeaderView.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../../../packages/ui/react/index";
3
+ const defaultTitle = _jsx("span", { children: "Template Core" });
4
+ const defaultProps = {};
5
+ const headerThemeStyle = {
6
+ "--header-fg": "hsl(var(--theme-text))",
7
+ "--header-bg": "hsl(var(--theme-bg))",
8
+ "--header-shadow": "hsl(var(--foreground) / 0.08)",
9
+ };
10
+ const HeaderView = (props) => {
11
+ const { title, menu, userArea, children } = props ?? defaultProps;
12
+ return (_jsxs("div", { className: "header-view", style: headerThemeStyle, children: [_jsxs("header", { className: cn("header flex h-14 shrink-0 items-center border-b border-border/70 bg-background/95 text-(--header-fg)", "shadow-[0_1px_0_var(--header-shadow)]"), children: [_jsx("div", { className: "brand flex w-56 items-center px-5 text-sm font-semibold tracking-normal text-foreground", children: title ?? defaultTitle }), _jsx("div", { className: "top-menu flex min-w-0 flex-1 items-center px-3 text-(--header-fg)", children: menu }), _jsx("div", { className: "user-area flex min-w-0 items-center justify-end px-5 text-(--header-fg)", children: userArea })] }), children] }));
13
+ };
14
+ export default HeaderView;
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ import { RouterType } from './type';
3
+ export type RouteInfo = {
4
+ path: string;
5
+ component: ReactNode;
6
+ children?: RouteInfo[];
7
+ };
8
+ export declare const generateRouter: (routes: RouteInfo[], type: RouterType) => import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { BrowserRouter, HashRouter, Route, Routes } from 'react-router-dom';
3
+ export const generateRouter = (routes, type) => {
4
+ const RouterComponent = type === 'browser' ? BrowserRouter : HashRouter;
5
+ const renderDom = (routes) => {
6
+ return routes.map((route) => {
7
+ return (_jsx(Route, { path: route.path, element: route.component, children: route.children && renderDom(route.children) }, route.path));
8
+ });
9
+ };
10
+ return (_jsx(RouterComponent, { basename: window._basePath, children: _jsx(Routes, { children: renderDom(routes) }) }));
11
+ };
@@ -0,0 +1,2 @@
1
+ export type RouterType = "hash" | "browser";
2
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ declare const Iframe: () => import("react/jsx-runtime").JSX.Element;
2
+ export default Iframe;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import useCurrentMenuData from '../../hooks/useCurrentMenuData';
3
+ import { useMemo } from 'react';
4
+ const Iframe = () => {
5
+ const { menu } = useCurrentMenuData(true);
6
+ const ifUrl = useMemo(() => {
7
+ if (menu.moduleType === 'iframe') {
8
+ return menu.iframeConfig.path;
9
+ }
10
+ return '';
11
+ }, []);
12
+ return (_jsx("div", { className: "iframe w-full h-full", children: _jsx("iframe", { className: " w-full h-full", src: ifUrl }) }));
13
+ };
14
+ export default Iframe;
@@ -0,0 +1,7 @@
1
+ import type { CallComNames, SchemaDefaultValue } from '../../schemaType';
2
+ declare const DetailPanel: import("react").MemoExoticComponent<(props: {
3
+ data: SchemaDefaultValue;
4
+ comName: CallComNames;
5
+ }) => import("react/jsx-runtime").JSX.Element>;
6
+ export default DetailPanel;
7
+ //# sourceMappingURL=DetailPanel.d.ts.map
@@ -0,0 +1,94 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { handlingRequestErrors } from '../../../../common/fetchErrorShow';
3
+ import { getText } from '../../../../common/language';
4
+ import { request } from '../../../../common/request';
5
+ import { schemaEventBus } from '../../../../stores/schemaEventBus';
6
+ import { Drawer } from '../../../../../../packages/ui/react/components';
7
+ import useExecuteOnce from '../../../../../../packages/ui/react/hooks/useExecuteOnce';
8
+ import { memo, useMemo, useState } from 'react';
9
+ import { eventsInfo } from '../../data/eventInfo';
10
+ import useComConfig from '../../hooks/useComConfig';
11
+ import { merge } from '../../utils/permissions';
12
+ const EMPTY_TEXT = '-';
13
+ const isEmptyValue = (value) => value === undefined || value === null || value === '';
14
+ const stringifyValue = (value) => {
15
+ if (isEmptyValue(value))
16
+ return EMPTY_TEXT;
17
+ if (typeof value === 'object')
18
+ return JSON.stringify(value);
19
+ return String(value);
20
+ };
21
+ const getOptionLabel = (options, value) => {
22
+ if (!Array.isArray(options))
23
+ return undefined;
24
+ const matchedOption = options.find((option) => {
25
+ if (!option || typeof option !== 'object')
26
+ return false;
27
+ return option.value === value;
28
+ });
29
+ if (!matchedOption || typeof matchedOption !== 'object')
30
+ return undefined;
31
+ const label = matchedOption.label;
32
+ return label ?? stringifyValue(value);
33
+ };
34
+ const formatValue = (value, fieldInfo) => {
35
+ if (isEmptyValue(value))
36
+ return EMPTY_TEXT;
37
+ const option = fieldInfo.option;
38
+ const optionLabel = getOptionLabel(option?.options ?? option?.enumList, value);
39
+ if (optionLabel !== undefined)
40
+ return optionLabel;
41
+ if (Array.isArray(value)) {
42
+ if (value.length === 0)
43
+ return EMPTY_TEXT;
44
+ return value
45
+ .map((item) => {
46
+ return stringifyValue(item);
47
+ })
48
+ .join(', ');
49
+ }
50
+ if (typeof value === 'boolean')
51
+ return value ? getText('是') : getText('否');
52
+ return stringifyValue(value);
53
+ };
54
+ const generateFields = (schema, data) => {
55
+ if (!schema?.properties)
56
+ return [];
57
+ return Object.keys(schema.properties)
58
+ .reduce((fields, key) => {
59
+ const fieldInfo = schema.properties[key];
60
+ if (!fieldInfo?.option || fieldInfo.option.visible === false)
61
+ return fields;
62
+ fields.push({
63
+ key,
64
+ label: getText(fieldInfo.label),
65
+ value: formatValue(data?.[key], fieldInfo),
66
+ level: fieldInfo.level ?? 10,
67
+ });
68
+ return fields;
69
+ }, [])
70
+ .sort((a, b) => a.level - b.level);
71
+ };
72
+ const DetailPanel = memo((props) => {
73
+ const [open, setOpen] = useState(true);
74
+ const [data, setData] = useState(props.data);
75
+ const { config, schema, api } = useComConfig({ comName: props.comName });
76
+ const fields = useMemo(() => generateFields(schema, data), [data, schema]);
77
+ useExecuteOnce(async () => {
78
+ const fetchKey = config?.fetchKey;
79
+ if (fetchKey) {
80
+ const params = {
81
+ [fetchKey]: props.data[fetchKey],
82
+ };
83
+ const { url: furl = api, method = 'get' } = config.fetchConfig ?? {};
84
+ const res = await handlingRequestErrors(request[method](furl, params));
85
+ if (res.data.code === 0)
86
+ setData(res.data.data);
87
+ }
88
+ }, { executionPhase: 'mount' });
89
+ return (_jsx("div", { className: "detail-panel", children: _jsx(Drawer, { title: getText(config?.title ?? ''), open: open, onClose: () => {
90
+ setOpen(false);
91
+ schemaEventBus.getState().emitCom({ type: merge(eventsInfo.closeCom) });
92
+ }, children: fields.length > 0 ? (_jsx("div", { className: "grid grid-cols-1 gap-x-6 gap-y-4 sm:grid-cols-2", children: fields.map((field) => (_jsxs("div", { className: "min-w-0 border-b border-border pb-3", children: [_jsx("div", { className: "mb-1 text-xs text-muted-foreground", children: field.label }), _jsx("div", { className: "break-words text-sm leading-6 text-foreground", children: field.value })] }, field.key))) })) : (_jsx("div", { className: "py-8 text-center text-sm text-muted-foreground", children: getText('暂无数据') })) }) }));
93
+ });
94
+ export default DetailPanel;
@@ -0,0 +1,13 @@
1
+ import type { CallComNames, ComponentConfig, SchemaDefaultValue } from '../../schemaType';
2
+ type PopFormComName = keyof ComponentConfig;
3
+ export interface PopFormValue {
4
+ comName: PopFormComName;
5
+ data?: SchemaDefaultValue;
6
+ }
7
+ export interface PopFormProps {
8
+ data: SchemaDefaultValue;
9
+ comName: CallComNames;
10
+ }
11
+ declare const PopForm: import("react").MemoExoticComponent<(props: PopFormProps) => import("react/jsx-runtime").JSX.Element>;
12
+ export default PopForm;
13
+ //# sourceMappingURL=PopFrom.d.ts.map
@@ -0,0 +1,124 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { handlingRequestErrors } from '../../../../common/fetchErrorShow';
3
+ import { getText } from '../../../../common/language';
4
+ import { post, put, request } from '../../../../common/request';
5
+ import { schemaEventBus } from '../../../../stores/schemaEventBus';
6
+ import { Modal, SchemaForm } from '../../../../../../packages/ui/react/components';
7
+ import useExecuteOnce from '../../../../../../packages/ui/react/hooks/useExecuteOnce';
8
+ import { memo, useCallback, useMemo, useRef, useState } from 'react';
9
+ import { eventsInfo } from '../../data/eventInfo';
10
+ import useComConfig from '../../hooks/useComConfig';
11
+ import { merge } from '../../utils/permissions';
12
+ import { createAjvValidator } from '../../utils/validator';
13
+ const generateSchemas = (schema) => {
14
+ if (!schema?.properties)
15
+ return [];
16
+ return Object.keys(schema.properties).reduce((schemas, key) => {
17
+ const fieldInfo = schema.properties[key];
18
+ const option = fieldInfo?.option;
19
+ if (!option || option.visible === false)
20
+ return schemas;
21
+ const { comType = 'input', default: _defaultValue, visible: _visible, ...fieldProps } = option;
22
+ schemas.push({
23
+ key,
24
+ label: getText(fieldInfo.label),
25
+ type: comType,
26
+ required: schema.required?.includes(key),
27
+ rules: [
28
+ ...(schema.required?.includes(key)
29
+ ? [{ required: true, message: `请输入${getText(fieldInfo.label)}` }]
30
+ : []),
31
+ {
32
+ validator: createAjvValidator(fieldInfo),
33
+ },
34
+ ],
35
+ fieldProps: {
36
+ ...fieldProps,
37
+ ...(comType === 'select'
38
+ ? {
39
+ getPopupContainer: 'parent',
40
+ }
41
+ : []),
42
+ },
43
+ });
44
+ return schemas;
45
+ }, []);
46
+ };
47
+ const generateDefaultValue = (schema, data) => {
48
+ const defaultValue = { ...(data ?? {}) };
49
+ if (!schema?.properties)
50
+ return defaultValue;
51
+ Object.keys(schema.properties).forEach((key) => {
52
+ const defaultFieldValue = schema.properties[key]?.option?.default;
53
+ if (typeof defaultFieldValue !== 'undefined' && typeof defaultValue[key] === 'undefined') {
54
+ defaultValue[key] = defaultFieldValue;
55
+ }
56
+ });
57
+ return defaultValue;
58
+ };
59
+ const PopForm = memo((props) => {
60
+ const [open, setOpen] = useState(true);
61
+ const [submitting, setSubmitting] = useState(false);
62
+ const { schema, config, api } = useComConfig({ comName: props.comName });
63
+ const formRef = useRef(null);
64
+ const [loading, setLoading] = useState(false);
65
+ /**
66
+ * 1. 生成 schemas
67
+ * 2. 根据config 获取相关展示内容、请求数据
68
+ * 3. 支持 create、edit
69
+ *
70
+ *
71
+ * 交互结束时 通知上层 清除show component
72
+ *
73
+ *
74
+ */
75
+ const schemas = useMemo(() => {
76
+ return generateSchemas(schema);
77
+ }, [schema]);
78
+ const closed = submitting
79
+ ? undefined
80
+ : () => {
81
+ schemaEventBus.getState().emitCom({ type: merge(eventsInfo.closeCom) });
82
+ setOpen(false);
83
+ };
84
+ const defaultValue = useMemo(() => generateDefaultValue(schema, props.data), [schema, props.data]);
85
+ useExecuteOnce(async () => {
86
+ /**
87
+ * 编辑弹窗需要 获取一下数据
88
+ */
89
+ if (props.comName === 'editForm' && 'fetchKey' in config) {
90
+ const { fetchKey } = config;
91
+ const params = {
92
+ [fetchKey]: props.data[fetchKey],
93
+ };
94
+ const { url = api, method = 'get' } = config?.fetchConfig ?? {};
95
+ setLoading(true);
96
+ const res = await handlingRequestErrors(request[method](url, params));
97
+ res.data.code === 0 && formRef.current?.setFieldsValue(res.data.data);
98
+ setLoading(false);
99
+ }
100
+ }, { executionPhase: 'mount' });
101
+ const handleSubmit = useCallback(async (v) => {
102
+ setSubmitting(true);
103
+ // 逻辑处理
104
+ let fetchFn = put;
105
+ if (props.comName === 'createForm') {
106
+ fetchFn = post;
107
+ }
108
+ try {
109
+ const res = await handlingRequestErrors(fetchFn(api, v));
110
+ if (res.data.code === 0) {
111
+ // 通知
112
+ schemaEventBus.getState().emitCom({
113
+ type: merge(eventsInfo.closeCom, eventsInfo.initTable, props.comName === 'createForm' ? eventsInfo.resetSearch : eventsInfo.none),
114
+ });
115
+ }
116
+ }
117
+ finally {
118
+ setSubmitting(false);
119
+ }
120
+ }, [api, props.comName]);
121
+ return (_jsx(Modal, { open: open, onClose: closed, title: getText(config?.title ?? ''), width: 640, maskClosable: !submitting, children: _jsx(SchemaForm, { schemas: schemas, initialValues: defaultValue, getForm: (f) => (formRef.current = f), onFinish: handleSubmit, onCancel: closed, buttonClassName: "justify-end", submitText: config?.saveBtnText, submitButtonProps: { loading: submitting }, cancelButtonProps: { disabled: submitting } }, `${String(props?.comName ?? '')}-${JSON.stringify(defaultValue)}`) }));
122
+ });
123
+ PopForm.displayName = 'PopForm';
124
+ export default PopForm;
@@ -0,0 +1,44 @@
1
+ import type { FetchInfo } from '../../../../../../model/types/data/fetchInfo';
2
+ import type { ComponentType, LazyExoticComponent } from 'react';
3
+ type CallComRenderer = ComponentType<any> | LazyExoticComponent<ComponentType<any>>;
4
+ type CallComDefinition<Config> = CallComRenderer & {
5
+ readonly __config: Config;
6
+ };
7
+ type CreateFormConfig = {
8
+ /**
9
+ * 表单标题
10
+ */
11
+ title: string;
12
+ /**
13
+ * 保存按钮文案
14
+ */
15
+ saveBtnText?: string;
16
+ } & Partial<Pick<FetchInfo, 'fetchConfig'>>;
17
+ type EditFormConfig = {
18
+ /**
19
+ * 表单标题
20
+ */
21
+ title: string;
22
+ /**
23
+ * 保存按钮文案
24
+ */
25
+ saveBtnText?: string;
26
+ } & FetchInfo;
27
+ type DetailPanelConfig = {
28
+ /**
29
+ * 表单标题
30
+ */
31
+ title: string;
32
+ } & FetchInfo;
33
+ export declare const baseComponentsMap: {
34
+ editForm: CallComDefinition<EditFormConfig>;
35
+ createForm: CallComDefinition<CreateFormConfig>;
36
+ detailPanel: CallComDefinition<DetailPanelConfig>;
37
+ };
38
+ export type BuiltInCallComNames = Extract<keyof typeof baseComponentsMap, string>;
39
+ type InferCallComConfig<T> = T extends CallComDefinition<infer Config> ? Config : never;
40
+ export type BuiltInCallComConfigMap = {
41
+ [K in BuiltInCallComNames]?: InferCallComConfig<(typeof baseComponentsMap)[K]>;
42
+ };
43
+ export {};
44
+ //# sourceMappingURL=builtIn.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { lazy } from 'react';
2
+ const defineCallCom = (component) => component;
3
+ export const baseComponentsMap = {
4
+ editForm: defineCallCom(lazy(() => import('./PopFrom'))),
5
+ createForm: defineCallCom(lazy(() => import('./PopFrom'))),
6
+ detailPanel: defineCallCom(lazy(() => import('./DetailPanel'))),
7
+ };
@@ -0,0 +1,4 @@
1
+ import type { CallComComponentsMap } from '../../schemaType';
2
+ export declare const components: CallComComponentsMap;
3
+ export type { CallComComponentsMap };
4
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1,6 @@
1
+ import consumerComponentsMap from '@tc/scalability/SchemaPage/CallCom/data';
2
+ import { baseComponentsMap } from './builtIn';
3
+ export const components = {
4
+ ...baseComponentsMap,
5
+ ...consumerComponentsMap,
6
+ };
@@ -0,0 +1,3 @@
1
+ declare const SchemaSearch: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
2
+ export default SchemaSearch;
3
+ //# sourceMappingURL=index.d.ts.map