skyline-vue-admin 0.0.1

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 (376) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/components/auto-complete-array-input/index.cjs +2 -0
  4. package/dist/components/auto-complete-array-input/index.cjs.map +1 -0
  5. package/dist/components/auto-complete-array-input/index.d.ts +12 -0
  6. package/dist/components/auto-complete-array-input/index.mjs +151 -0
  7. package/dist/components/auto-complete-array-input/index.mjs.map +1 -0
  8. package/dist/components/avatar-input/index.cjs +2 -0
  9. package/dist/components/avatar-input/index.cjs.map +1 -0
  10. package/dist/components/avatar-input/index.d.ts +13 -0
  11. package/dist/components/avatar-input/index.mjs +160 -0
  12. package/dist/components/avatar-input/index.mjs.map +1 -0
  13. package/dist/components/can-access/index.cjs +2 -0
  14. package/dist/components/can-access/index.cjs.map +1 -0
  15. package/dist/components/can-access/index.d.ts +2 -0
  16. package/dist/components/can-access/index.mjs +46 -0
  17. package/dist/components/can-access/index.mjs.map +1 -0
  18. package/dist/components/create/index.cjs +2 -0
  19. package/dist/components/create/index.cjs.map +1 -0
  20. package/dist/components/create/index.d.ts +2 -0
  21. package/dist/components/create/index.mjs +96 -0
  22. package/dist/components/create/index.mjs.map +1 -0
  23. package/dist/components/data-table/index.cjs +2 -0
  24. package/dist/components/data-table/index.cjs.map +1 -0
  25. package/dist/components/data-table/index.d.ts +5 -0
  26. package/dist/components/data-table/index.mjs +131 -0
  27. package/dist/components/data-table/index.mjs.map +1 -0
  28. package/dist/components/data-table-col/index.cjs +2 -0
  29. package/dist/components/data-table-col/index.cjs.map +1 -0
  30. package/dist/components/data-table-col/index.d.ts +12 -0
  31. package/dist/components/data-table-col/index.mjs +60 -0
  32. package/dist/components/data-table-col/index.mjs.map +1 -0
  33. package/dist/components/edit/index.cjs +2 -0
  34. package/dist/components/edit/index.cjs.map +1 -0
  35. package/dist/components/edit/index.d.ts +6 -0
  36. package/dist/components/edit/index.mjs +153 -0
  37. package/dist/components/edit/index.mjs.map +1 -0
  38. package/dist/components/edit-button/index.cjs +2 -0
  39. package/dist/components/edit-button/index.cjs.map +1 -0
  40. package/dist/components/edit-button/index.d.ts +6 -0
  41. package/dist/components/edit-button/index.mjs +60 -0
  42. package/dist/components/edit-button/index.mjs.map +1 -0
  43. package/dist/components/file-multiple-input/index.cjs +2 -0
  44. package/dist/components/file-multiple-input/index.cjs.map +1 -0
  45. package/dist/components/file-multiple-input/index.d.ts +18 -0
  46. package/dist/components/file-multiple-input/index.mjs +189 -0
  47. package/dist/components/file-multiple-input/index.mjs.map +1 -0
  48. package/dist/components/filter/index.cjs +2 -0
  49. package/dist/components/filter/index.cjs.map +1 -0
  50. package/dist/components/filter/index.d.ts +2 -0
  51. package/dist/components/filter/index.mjs +63 -0
  52. package/dist/components/filter/index.mjs.map +1 -0
  53. package/dist/components/image-field/index.cjs +2 -0
  54. package/dist/components/image-field/index.cjs.map +1 -0
  55. package/dist/components/image-field/index.d.ts +8 -0
  56. package/dist/components/image-field/index.mjs +62 -0
  57. package/dist/components/image-field/index.mjs.map +1 -0
  58. package/dist/components/index.d.ts +27 -0
  59. package/dist/components/link-field/index.cjs +2 -0
  60. package/dist/components/link-field/index.cjs.map +1 -0
  61. package/dist/components/link-field/index.d.ts +7 -0
  62. package/dist/components/link-field/index.mjs +70 -0
  63. package/dist/components/link-field/index.mjs.map +1 -0
  64. package/dist/components/list/index.cjs +2 -0
  65. package/dist/components/list/index.cjs.map +1 -0
  66. package/dist/components/list/index.d.ts +7 -0
  67. package/dist/components/list/index.mjs +154 -0
  68. package/dist/components/list/index.mjs.map +1 -0
  69. package/dist/components/list/list.cjs +3 -0
  70. package/dist/components/list/list.cjs.map +1 -0
  71. package/dist/components/list/list.d.ts +10 -0
  72. package/dist/components/list/list.mjs +17 -0
  73. package/dist/components/list/list.mjs.map +1 -0
  74. package/dist/components/radio-button-group-input/index.cjs +2 -0
  75. package/dist/components/radio-button-group-input/index.cjs.map +1 -0
  76. package/dist/components/radio-button-group-input/index.d.ts +14 -0
  77. package/dist/components/radio-button-group-input/index.mjs +82 -0
  78. package/dist/components/radio-button-group-input/index.mjs.map +1 -0
  79. package/dist/components/reference-array-field/index.cjs +2 -0
  80. package/dist/components/reference-array-field/index.cjs.map +1 -0
  81. package/dist/components/reference-array-field/index.d.ts +7 -0
  82. package/dist/components/reference-array-field/index.mjs +76 -0
  83. package/dist/components/reference-array-field/index.mjs.map +1 -0
  84. package/dist/components/reference-array-input/index.cjs +2 -0
  85. package/dist/components/reference-array-input/index.cjs.map +1 -0
  86. package/dist/components/reference-array-input/index.d.ts +6 -0
  87. package/dist/components/reference-array-input/index.mjs +74 -0
  88. package/dist/components/reference-array-input/index.mjs.map +1 -0
  89. package/dist/components/reference-field/index.cjs +2 -0
  90. package/dist/components/reference-field/index.cjs.map +1 -0
  91. package/dist/components/reference-field/index.d.ts +10 -0
  92. package/dist/components/reference-field/index.mjs +101 -0
  93. package/dist/components/reference-field/index.mjs.map +1 -0
  94. package/dist/components/reference-image-field/index.cjs +2 -0
  95. package/dist/components/reference-image-field/index.cjs.map +1 -0
  96. package/dist/components/reference-image-field/index.d.ts +9 -0
  97. package/dist/components/reference-image-field/index.mjs +79 -0
  98. package/dist/components/reference-image-field/index.mjs.map +1 -0
  99. package/dist/components/show/index.cjs +2 -0
  100. package/dist/components/show/index.cjs.map +1 -0
  101. package/dist/components/show/index.d.ts +2 -0
  102. package/dist/components/show/index.mjs +66 -0
  103. package/dist/components/show/index.mjs.map +1 -0
  104. package/dist/components/show-button/index.cjs +2 -0
  105. package/dist/components/show-button/index.cjs.map +1 -0
  106. package/dist/components/show-button/index.d.ts +6 -0
  107. package/dist/components/show-button/index.mjs +60 -0
  108. package/dist/components/show-button/index.mjs.map +1 -0
  109. package/dist/components/show-simple-layout/index.cjs +2 -0
  110. package/dist/components/show-simple-layout/index.cjs.map +1 -0
  111. package/dist/components/show-simple-layout/index.d.ts +1 -0
  112. package/dist/components/show-simple-layout/index.mjs +36 -0
  113. package/dist/components/show-simple-layout/index.mjs.map +1 -0
  114. package/dist/components/simple-form/index.cjs +2 -0
  115. package/dist/components/simple-form/index.cjs.map +1 -0
  116. package/dist/components/simple-form/index.d.ts +6 -0
  117. package/dist/components/simple-form/index.mjs +53 -0
  118. package/dist/components/simple-form/index.mjs.map +1 -0
  119. package/dist/components/single-field-list/index.cjs +2 -0
  120. package/dist/components/single-field-list/index.cjs.map +1 -0
  121. package/dist/components/single-field-list/index.d.ts +4 -0
  122. package/dist/components/single-field-list/index.mjs +56 -0
  123. package/dist/components/single-field-list/index.mjs.map +1 -0
  124. package/dist/components/text-field/index.cjs +2 -0
  125. package/dist/components/text-field/index.cjs.map +1 -0
  126. package/dist/components/text-field/index.d.ts +7 -0
  127. package/dist/components/text-field/index.mjs +56 -0
  128. package/dist/components/text-field/index.mjs.map +1 -0
  129. package/dist/components/text-input/index.cjs +2 -0
  130. package/dist/components/text-input/index.cjs.map +1 -0
  131. package/dist/components/text-input/index.d.ts +9 -0
  132. package/dist/components/text-input/index.mjs +70 -0
  133. package/dist/components/text-input/index.mjs.map +1 -0
  134. package/dist/components/tree-select-input/index.cjs +2 -0
  135. package/dist/components/tree-select-input/index.cjs.map +1 -0
  136. package/dist/components/tree-select-input/index.d.ts +15 -0
  137. package/dist/components/tree-select-input/index.mjs +122 -0
  138. package/dist/components/tree-select-input/index.mjs.map +1 -0
  139. package/dist/components/tree-with-details/index.cjs +2 -0
  140. package/dist/components/tree-with-details/index.cjs.map +1 -0
  141. package/dist/components/tree-with-details/index.d.ts +11 -0
  142. package/dist/components/tree-with-details/index.mjs +133 -0
  143. package/dist/components/tree-with-details/index.mjs.map +1 -0
  144. package/dist/hooks/index.d.ts +17 -0
  145. package/dist/hooks/useDelegate.d.ts +4 -0
  146. package/dist/hooks/useForm.cjs +2 -0
  147. package/dist/hooks/useForm.cjs.map +1 -0
  148. package/dist/hooks/useForm.d.ts +9 -0
  149. package/dist/hooks/useForm.mjs +18 -0
  150. package/dist/hooks/useForm.mjs.map +1 -0
  151. package/dist/hooks/useFormGrid.cjs +2 -0
  152. package/dist/hooks/useFormGrid.cjs.map +1 -0
  153. package/dist/hooks/useFormGrid.d.ts +1 -0
  154. package/dist/hooks/useFormGrid.mjs +7 -0
  155. package/dist/hooks/useFormGrid.mjs.map +1 -0
  156. package/dist/hooks/useHiddenTitle.cjs +2 -0
  157. package/dist/hooks/useHiddenTitle.cjs.map +1 -0
  158. package/dist/hooks/useHiddenTitle.d.ts +1 -0
  159. package/dist/hooks/useHiddenTitle.mjs +9 -0
  160. package/dist/hooks/useHiddenTitle.mjs.map +1 -0
  161. package/dist/hooks/useLang.cjs +2 -0
  162. package/dist/hooks/useLang.cjs.map +1 -0
  163. package/dist/hooks/useLang.d.ts +4 -0
  164. package/dist/hooks/useLang.mjs +15 -0
  165. package/dist/hooks/useLang.mjs.map +1 -0
  166. package/dist/hooks/useList.cjs +2 -0
  167. package/dist/hooks/useList.cjs.map +1 -0
  168. package/dist/hooks/useList.d.ts +22 -0
  169. package/dist/hooks/useList.mjs +19 -0
  170. package/dist/hooks/useList.mjs.map +1 -0
  171. package/dist/hooks/useMenu.cjs +2 -0
  172. package/dist/hooks/useMenu.cjs.map +1 -0
  173. package/dist/hooks/useMenu.d.ts +5 -0
  174. package/dist/hooks/useMenu.mjs +26 -0
  175. package/dist/hooks/useMenu.mjs.map +1 -0
  176. package/dist/hooks/usePermission.cjs +2 -0
  177. package/dist/hooks/usePermission.cjs.map +1 -0
  178. package/dist/hooks/usePermission.d.ts +4 -0
  179. package/dist/hooks/usePermission.mjs +13 -0
  180. package/dist/hooks/usePermission.mjs.map +1 -0
  181. package/dist/hooks/useReferenceArrayField.cjs +2 -0
  182. package/dist/hooks/useReferenceArrayField.cjs.map +1 -0
  183. package/dist/hooks/useReferenceArrayField.d.ts +8 -0
  184. package/dist/hooks/useReferenceArrayField.mjs +9 -0
  185. package/dist/hooks/useReferenceArrayField.mjs.map +1 -0
  186. package/dist/hooks/useReferenceArrayInput.cjs +2 -0
  187. package/dist/hooks/useReferenceArrayInput.cjs.map +1 -0
  188. package/dist/hooks/useReferenceArrayInput.d.ts +9 -0
  189. package/dist/hooks/useReferenceArrayInput.mjs +9 -0
  190. package/dist/hooks/useReferenceArrayInput.mjs.map +1 -0
  191. package/dist/hooks/useRouteKeepAlive.cjs +2 -0
  192. package/dist/hooks/useRouteKeepAlive.cjs.map +1 -0
  193. package/dist/hooks/useRouteKeepAlive.d.ts +5 -0
  194. package/dist/hooks/useRouteKeepAlive.mjs +19 -0
  195. package/dist/hooks/useRouteKeepAlive.mjs.map +1 -0
  196. package/dist/hooks/useShow.cjs +2 -0
  197. package/dist/hooks/useShow.cjs.map +1 -0
  198. package/dist/hooks/useShow.d.ts +6 -0
  199. package/dist/hooks/useShow.mjs +9 -0
  200. package/dist/hooks/useShow.mjs.map +1 -0
  201. package/dist/hooks/useSize.cjs +2 -0
  202. package/dist/hooks/useSize.cjs.map +1 -0
  203. package/dist/hooks/useSize.d.ts +28 -0
  204. package/dist/hooks/useSize.mjs +30 -0
  205. package/dist/hooks/useSize.mjs.map +1 -0
  206. package/dist/hooks/useTab.cjs +2 -0
  207. package/dist/hooks/useTab.cjs.map +1 -0
  208. package/dist/hooks/useTab.d.ts +18 -0
  209. package/dist/hooks/useTab.mjs +50 -0
  210. package/dist/hooks/useTab.mjs.map +1 -0
  211. package/dist/hooks/useTheme.cjs +2 -0
  212. package/dist/hooks/useTheme.cjs.map +1 -0
  213. package/dist/hooks/useTheme.d.ts +23 -0
  214. package/dist/hooks/useTheme.mjs +24 -0
  215. package/dist/hooks/useTheme.mjs.map +1 -0
  216. package/dist/hooks/useTreeWithDetails.cjs +2 -0
  217. package/dist/hooks/useTreeWithDetails.cjs.map +1 -0
  218. package/dist/hooks/useTreeWithDetails.d.ts +7 -0
  219. package/dist/hooks/useTreeWithDetails.mjs +9 -0
  220. package/dist/hooks/useTreeWithDetails.mjs.map +1 -0
  221. package/dist/hooks/useUpload.cjs +2 -0
  222. package/dist/hooks/useUpload.cjs.map +1 -0
  223. package/dist/hooks/useUpload.d.ts +8 -0
  224. package/dist/hooks/useUpload.mjs +8 -0
  225. package/dist/hooks/useUpload.mjs.map +1 -0
  226. package/dist/hooks/useUser.cjs +2 -0
  227. package/dist/hooks/useUser.cjs.map +1 -0
  228. package/dist/hooks/useUser.d.ts +9 -0
  229. package/dist/hooks/useUser.mjs +24 -0
  230. package/dist/hooks/useUser.mjs.map +1 -0
  231. package/dist/i18n/locales/en.json.cjs +2 -0
  232. package/dist/i18n/locales/en.json.cjs.map +1 -0
  233. package/dist/i18n/locales/en.json.d.ts +52 -0
  234. package/dist/i18n/locales/en.json.mjs +32 -0
  235. package/dist/i18n/locales/en.json.mjs.map +1 -0
  236. package/dist/icons/EpDelete.cjs +2 -0
  237. package/dist/icons/EpDelete.cjs.map +1 -0
  238. package/dist/icons/EpDelete.d.ts +1 -0
  239. package/dist/icons/EpDelete.mjs +17 -0
  240. package/dist/icons/EpDelete.mjs.map +1 -0
  241. package/dist/icons/EpDocumentAdd.cjs +2 -0
  242. package/dist/icons/EpDocumentAdd.cjs.map +1 -0
  243. package/dist/icons/EpDocumentAdd.d.ts +1 -0
  244. package/dist/icons/EpDocumentAdd.mjs +17 -0
  245. package/dist/icons/EpDocumentAdd.mjs.map +1 -0
  246. package/dist/icons/EpDownload.cjs +2 -0
  247. package/dist/icons/EpDownload.cjs.map +1 -0
  248. package/dist/icons/EpDownload.d.ts +1 -0
  249. package/dist/icons/EpDownload.mjs +17 -0
  250. package/dist/icons/EpDownload.mjs.map +1 -0
  251. package/dist/icons/EpFullScreen.cjs +2 -0
  252. package/dist/icons/EpFullScreen.cjs.map +1 -0
  253. package/dist/icons/EpFullScreen.d.ts +1 -0
  254. package/dist/icons/EpFullScreen.mjs +19 -0
  255. package/dist/icons/EpFullScreen.mjs.map +1 -0
  256. package/dist/icons/EpMoon.cjs +2 -0
  257. package/dist/icons/EpMoon.cjs.map +1 -0
  258. package/dist/icons/EpMoon.d.ts +1 -0
  259. package/dist/icons/EpMoon.mjs +17 -0
  260. package/dist/icons/EpMoon.mjs.map +1 -0
  261. package/dist/icons/EpPlus.cjs +2 -0
  262. package/dist/icons/EpPlus.cjs.map +1 -0
  263. package/dist/icons/EpPlus.d.ts +1 -0
  264. package/dist/icons/EpPlus.mjs +17 -0
  265. package/dist/icons/EpPlus.mjs.map +1 -0
  266. package/dist/icons/EpRefresh.cjs +2 -0
  267. package/dist/icons/EpRefresh.cjs.map +1 -0
  268. package/dist/icons/EpRefresh.d.ts +1 -0
  269. package/dist/icons/EpRefresh.mjs +19 -0
  270. package/dist/icons/EpRefresh.mjs.map +1 -0
  271. package/dist/icons/EpSearch.d.ts +1 -0
  272. package/dist/icons/EpSunny.cjs +2 -0
  273. package/dist/icons/EpSunny.cjs.map +1 -0
  274. package/dist/icons/EpSunny.d.ts +1 -0
  275. package/dist/icons/EpSunny.mjs +17 -0
  276. package/dist/icons/EpSunny.mjs.map +1 -0
  277. package/dist/icons/EpSwitchFilled.cjs +2 -0
  278. package/dist/icons/EpSwitchFilled.cjs.map +1 -0
  279. package/dist/icons/EpSwitchFilled.d.ts +1 -0
  280. package/dist/icons/EpSwitchFilled.mjs +20 -0
  281. package/dist/icons/EpSwitchFilled.mjs.map +1 -0
  282. package/dist/icons/EpUploadFilled.cjs +2 -0
  283. package/dist/icons/EpUploadFilled.cjs.map +1 -0
  284. package/dist/icons/EpUploadFilled.d.ts +1 -0
  285. package/dist/icons/EpUploadFilled.mjs +17 -0
  286. package/dist/icons/EpUploadFilled.mjs.map +1 -0
  287. package/dist/icons/FluentFullScreenMinimize20Regular.cjs +2 -0
  288. package/dist/icons/FluentFullScreenMinimize20Regular.cjs.map +1 -0
  289. package/dist/icons/FluentFullScreenMinimize20Regular.d.ts +1 -0
  290. package/dist/icons/FluentFullScreenMinimize20Regular.mjs +19 -0
  291. package/dist/icons/FluentFullScreenMinimize20Regular.mjs.map +1 -0
  292. package/dist/icons/NimbusTextSize.cjs +2 -0
  293. package/dist/icons/NimbusTextSize.cjs.map +1 -0
  294. package/dist/icons/NimbusTextSize.d.ts +1 -0
  295. package/dist/icons/NimbusTextSize.mjs +20 -0
  296. package/dist/icons/NimbusTextSize.mjs.map +1 -0
  297. package/dist/icons/SkyMenuCollapse.cjs +2 -0
  298. package/dist/icons/SkyMenuCollapse.cjs.map +1 -0
  299. package/dist/icons/SkyMenuCollapse.d.ts +1 -0
  300. package/dist/icons/SkyMenuCollapse.mjs +30 -0
  301. package/dist/icons/SkyMenuCollapse.mjs.map +1 -0
  302. package/dist/icons/SlTrans.cjs +2 -0
  303. package/dist/icons/SlTrans.cjs.map +1 -0
  304. package/dist/icons/SlTrans.d.ts +1 -0
  305. package/dist/icons/SlTrans.mjs +19 -0
  306. package/dist/icons/SlTrans.mjs.map +1 -0
  307. package/dist/index.cjs +2 -0
  308. package/dist/index.cjs.map +1 -0
  309. package/dist/index.d.ts +5 -0
  310. package/dist/index.mjs +114 -0
  311. package/dist/index.mjs.map +1 -0
  312. package/dist/layouts/default.cjs +2 -0
  313. package/dist/layouts/default.cjs.map +1 -0
  314. package/dist/layouts/default.d.ts +8 -0
  315. package/dist/layouts/default.mjs +398 -0
  316. package/dist/layouts/default.mjs.map +1 -0
  317. package/dist/pages/login.cjs +2 -0
  318. package/dist/pages/login.cjs.map +1 -0
  319. package/dist/pages/login.d.ts +2 -0
  320. package/dist/pages/login.mjs +78 -0
  321. package/dist/pages/login.mjs.map +1 -0
  322. package/dist/pages/not-found.cjs +2 -0
  323. package/dist/pages/not-found.cjs.map +1 -0
  324. package/dist/pages/not-found.d.ts +2 -0
  325. package/dist/pages/not-found.mjs +29 -0
  326. package/dist/pages/not-found.mjs.map +1 -0
  327. package/dist/pages/welcome.cjs +2 -0
  328. package/dist/pages/welcome.cjs.map +1 -0
  329. package/dist/pages/welcome.d.ts +2 -0
  330. package/dist/pages/welcome.mjs +13 -0
  331. package/dist/pages/welcome.mjs.map +1 -0
  332. package/dist/provides/dataProvider.d.ts +111 -0
  333. package/dist/provides/index.d.ts +1 -0
  334. package/dist/router/index.cjs +2 -0
  335. package/dist/router/index.cjs.map +1 -0
  336. package/dist/router/index.d.ts +25 -0
  337. package/dist/router/index.mjs +136 -0
  338. package/dist/router/index.mjs.map +1 -0
  339. package/dist/setup/index.cjs +2 -0
  340. package/dist/setup/index.cjs.map +1 -0
  341. package/dist/setup/index.d.ts +68 -0
  342. package/dist/setup/index.mjs +55 -0
  343. package/dist/setup/index.mjs.map +1 -0
  344. package/dist/styles/components/auto-complete-array-input.css +1 -0
  345. package/dist/styles/components/avatar-input.css +1 -0
  346. package/dist/styles/components/can-access.css +1 -0
  347. package/dist/styles/components/create.css +1 -0
  348. package/dist/styles/components/data-table-col.css +1 -0
  349. package/dist/styles/components/data-table.css +1 -0
  350. package/dist/styles/components/edit-button.css +1 -0
  351. package/dist/styles/components/edit.css +1 -0
  352. package/dist/styles/components/file-multiple-input.css +1 -0
  353. package/dist/styles/components/filter.css +1 -0
  354. package/dist/styles/components/image-field.css +1 -0
  355. package/dist/styles/components/link-field.css +1 -0
  356. package/dist/styles/components/list.css +1 -0
  357. package/dist/styles/components/radio-button-group-input.css +1 -0
  358. package/dist/styles/components/reference-array-field.css +1 -0
  359. package/dist/styles/components/reference-array-input.css +1 -0
  360. package/dist/styles/components/reference-field.css +1 -0
  361. package/dist/styles/components/reference-image-field.css +1 -0
  362. package/dist/styles/components/show-button.css +1 -0
  363. package/dist/styles/components/show-simple-layout.css +1 -0
  364. package/dist/styles/components/show.css +1 -0
  365. package/dist/styles/components/simple-form.css +1 -0
  366. package/dist/styles/components/single-field-list.css +1 -0
  367. package/dist/styles/components/text-field.css +1 -0
  368. package/dist/styles/components/text-input.css +1 -0
  369. package/dist/styles/components/tree-select-input.css +1 -0
  370. package/dist/styles/components/tree-with-details.css +1 -0
  371. package/dist/styles/index.css +1 -0
  372. package/dist/styles/layouts/default.css +1 -0
  373. package/dist/styles/pages/login.css +1 -0
  374. package/dist/styles/pages/not-found.css +1 -0
  375. package/dist/styles/pages/welcome.css +1 -0
  376. package/package.json +54 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 lewo
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # Skyline-Vue-Admin 组件库
2
+
3
+ 十分钟搭建一个完整的后台管理应用。
4
+
5
+ 一个前端框架,用于在 REST 之上构建在浏览器中运行的单页应用程序,使用 TypeScript、Vue3 和 Element Plus 。
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/form-item/style/css");require("element-plus/es/components/select/style/css");const t=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");const V=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");const I=require("../../hooks/useFormGrid.cjs"),h=require("../../hooks/useReferenceArrayInput.cjs"),p=require("../../setup/index.cjs"),C=require("@vueuse/core"),i=require("element-plus"),D=t.defineComponent({name:"SkyAutoCompleteArrayInput",inheritAttrs:!1,props:{source:{type:String,required:!0},label:String,optionText:{type:String,default:"name"},optionValue:{type:String,default:"id"},filterToQuery:Function,rules:Object,defaultValue:{type:Array,default:()=>[]}},setup(e,{attrs:c}){const d=I.useFormGrid(),{formData:u,editData:a}=V.useForm(),{getList:f,listLoading:m,listData:n,reference:y}=h.useReferenceArrayInput(),q=t.computed(()=>e.label||e.source);typeof u[e.source]>"u"&&(u[e.source]=e.defaultValue),a.value&&(u[e.source]=a.value[e.source]);const g=r=>{const o=e.filterToQuery?.(r);o&&f(o)};let l;const{state:v,isLoading:A}=C.useAsyncState(async()=>{const r=u[e.source];if(r)return l=new AbortController,p.skyConfig.dataProvider?.getMany?.(y,{ids:Array.isArray(r)?r:[r],signal:l.signal})},void 0,{immediate:!0}),s=r=>{const o=r[e.optionText],b=r[e.optionValue];return{label:o,value:b}},S=t.computed(()=>n.value?.data?n.value.data.map(s):(v.value?.data||[]).map(s));return()=>t.withDirectives(t.createVNode(i.ElFormItem,{label:q.value,prop:e.source,rules:e.rules,style:d?`grid-area: ${e.source}`:""},{default:()=>[t.createVNode(i.ElSelect,t.mergeProps({modelValue:u[e.source],"onUpdate:modelValue":r=>u[e.source]=r,multiple:!0,filterable:!0,remote:!0,reserveKeyword:!0,remoteShowSuffix:!0,remoteMethod:g,loading:m.value,debounce:500,options:S.value,props:{value:"value",label:"label"}},c),null)]}),[[i.ElLoadingDirective,A.value]])}});exports.SkyAutoCompleteArrayInput=D;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/auto-complete-array-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid, useReferenceArrayInput } from '@/hooks'\r\nimport type { GetManyResult, Identifier } from '@/provides'\r\nimport { skyConfig } from '@/setup'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport {\r\n ElFormItem,\r\n ElLoadingDirective,\r\n ElSelect,\r\n type FormItemRule,\r\n type SelectProps,\r\n} from 'element-plus'\r\nimport { computed, defineComponent, withDirectives, type PropType } from 'vue'\r\n\r\nexport interface SkyAutoCompleteArrayInputProps {\r\n source: string\r\n label?: string\r\n optionText?: string\r\n optionValue?: string\r\n filterToQuery?: (searchText: string) => Record<string, unknown>\r\n rules?: FormItemRule | FormItemRule[]\r\n defaultValue?: Identifier[]\r\n}\r\n\r\nexport const SkyAutoCompleteArrayInput = defineComponent<\r\n SkyAutoCompleteArrayInputProps & Partial<SelectProps>\r\n>({\r\n name: 'SkyAutoCompleteArrayInput',\r\n inheritAttrs: false,\r\n props: {\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n label: String,\r\n // placeholder: String,\r\n optionText: {\r\n type: String,\r\n default: 'name',\r\n },\r\n optionValue: {\r\n type: String,\r\n default: 'id',\r\n },\r\n filterToQuery: Function as PropType<SkyAutoCompleteArrayInputProps['filterToQuery']>,\r\n rules: Object,\r\n defaultValue: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n },\r\n setup(props, { attrs }) {\r\n const formGrid = useFormGrid()\r\n const { formData, editData } = useForm()!\r\n const { getList, listLoading, listData, reference } = useReferenceArrayInput()!\r\n const title = computed<string>(() => props.label || props.source)\r\n\r\n if (typeof formData[props.source] === 'undefined') {\r\n formData[props.source] = props.defaultValue!\r\n }\r\n\r\n if (editData.value) {\r\n formData[props.source] = editData.value[props.source]\r\n }\r\n\r\n const remoteMethod = (search: string) => {\r\n const filter = props.filterToQuery?.(search)\r\n if (filter) {\r\n getList(filter)\r\n }\r\n }\r\n\r\n let controller: AbortController | undefined\r\n const { state: theReferenceArrayData, isLoading } = useAsyncState<GetManyResult | undefined>(\r\n async () => {\r\n const data = formData[props.source] as Identifier[] | Identifier | undefined\r\n\r\n if (data) {\r\n controller = new AbortController()\r\n return skyConfig.dataProvider?.getMany?.(reference, {\r\n ids: Array.isArray(data) ? data : [data],\r\n signal: controller.signal,\r\n })\r\n }\r\n },\r\n undefined,\r\n {\r\n immediate: true,\r\n },\r\n )\r\n\r\n const getOptionItem = (item: Record<string, unknown>) => {\r\n const label = item[props.optionText!] as string\r\n const value = item[props.optionValue!] as Identifier\r\n return {\r\n label,\r\n value,\r\n }\r\n }\r\n\r\n const options = computed(() => {\r\n if (listData.value?.data) {\r\n return (\r\n listData.value.data\r\n // .filter((item) => {\r\n // const value = item[props.optionValue] as Identifier\r\n // return !formData[props.source]?.includes(value)\r\n // })\r\n .map(getOptionItem)\r\n )\r\n }\r\n\r\n const editArr = theReferenceArrayData.value?.data || []\r\n // create = []\r\n // edit = theReferenceArrayData.value?.data\r\n return editArr.map(getOptionItem)\r\n })\r\n\r\n return () =>\r\n withDirectives(\r\n <ElFormItem\r\n label={title.value}\r\n prop={props.source}\r\n rules={props.rules}\r\n style={formGrid ? `grid-area: ${props.source}` : ''}\r\n >\r\n <ElSelect\r\n modelValue={formData[props.source] as Identifier[]}\r\n onUpdate:modelValue={(v) => (formData[props.source] = v)}\r\n multiple\r\n filterable\r\n remote\r\n reserveKeyword\r\n remoteShowSuffix\r\n remoteMethod={remoteMethod}\r\n loading={listLoading.value}\r\n debounce={500}\r\n options={options.value}\r\n props={{ value: 'value', label: 'label' }}\r\n {...attrs}\r\n >\r\n {/* {options.value.map((option) => (\r\n <ElOption key={option.value} label={option.label} value={option.value} />\r\n ))} */}\r\n </ElSelect>\r\n </ElFormItem>,\r\n // h(\r\n // ElFormItem,\r\n // {\r\n // label: title.value,\r\n // prop: props.source,\r\n // rules: props.rules,\r\n // style: formGrid ? `grid-area: ${props.source}` : '',\r\n // },\r\n // {\r\n // default: () =>\r\n // h(\r\n // ElSelect,\r\n // {\r\n // modelValue: formData[props.source] as Identifier[],\r\n // 'onUpdate:modelValue': (v) => (formData[props.source] = v),\r\n // multiple: true,\r\n // filterable: true,\r\n // remote: true,\r\n // reserveKeyword: true,\r\n // remoteShowSuffix: true,\r\n // remoteMethod,\r\n // loading: listLoading.value,\r\n // debounce: 500,\r\n // ...attrs,\r\n // },\r\n // {\r\n // default: () =>\r\n // options.value.map((option) => (\r\n // <ElOption key={option.value} label={option.label} value={option.value} />\r\n // )),\r\n // },\r\n // ),\r\n // },\r\n // ),\r\n [[ElLoadingDirective, isLoading.value]],\r\n )\r\n },\r\n})\r\n"],"names":["SkyAutoCompleteArrayInput","defineComponent","name","inheritAttrs","props","source","type","required","label","optionText","default","optionValue","filterToQuery","rules","defaultValue","attrs","formGrid","useFormGrid","editData","reference","title","computed","formData","filter","search","controller","state","isLoading","data","skyConfig","ids","immediate","item","value","options","listData","getOptionItem","withDirectives","_createVNode","ElFormItem","remoteMethod"],"mappings":"q7BAuBAA,EAAAC,EAAAA,gBAAA,CAGEC,KAAAA,4BACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OAEAC,WAAAA,CACEH,KAAAA,OACAI,QAAAA,QAEFC,YAAAA,CACEL,KAAAA,OACAI,QAAAA,MAEFE,cAAAA,SACAC,MAAAA,OACAC,aAAAA,CACER,KAAAA,oBAEF,YAEaS,MAAAA,CAAM,EAAA,CACnB,MAAAC,EAAAC,EAAAA,YAAA,cACkBC,SAAAA,mDACsBC,UAAAA,8BACxCC,EAAAC,EAAAA,SAAA,IAAAjB,EAAA,OAAAA,EAAA,MAAA,iEAOEkB,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,EAAAA,MAAAA,eAIA,MAAAC,EAAAnB,EAAA,gBAAAoB,CAAA,EACAD,SAKF,IAAAE,QACQC,MAAAA,EAA8BC,UAAAA,6BAElC,MAAAC,EAAAN,EAAAlB,EAAA,MAAA,EAEA,GAAAwB,EACEH,OAAAA,EAAAA,IAAAA,gBACAI,YAAA,cAAA,UAAAV,EAAA,CACEW,IAAAA,MAAAA,QAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,iBAEF,CAAA,WAKFC,UAAAA,EACF,CAAA,QAIA,MAAAvB,EAAAwB,EAAA5B,EAAA,UAAA,EACA6B,EAAAD,EAAA5B,EAAA,WAAA,iBAGE6B,MAAAA,IAIJC,EAAAb,EAAAA,SAAA,IACEc,EAAA,OAAA,6CAcA,IAAAC,CAAA,CACF,EAEA,MAAA,IAAAC,EAAAA,eAAAC,EAAAA,YAAAC,aAAA,2CAKwB,MAAAvB,EAAA,cAAAZ,EAAA,MAAA,GAAA,EACiC,EAAA,CAAAM,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,SAAAA,EAAAA,WAAAA,CAAA,WAAAY,EAAAlB,EAAA,MAAA,yCAIO,SAAA,GAAA,WAAA,GAAA,OAAA,GAAA,eAAA,GAAA,iBAAA,GAAA,aAAAoC,kBAO9B,SAAA,2BAGjBP,MAAAA,QAAgBzB,MAAAA,OAAe,CAAC,EAAAO,CAAA,EAAA,IAAA,CAAA,CAChC,CAAA,mCA2CnB,CACF,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { Identifier } from '../../provides';
2
+ import { FormItemRule, SelectProps } from 'element-plus';
3
+ export interface SkyAutoCompleteArrayInputProps {
4
+ source: string;
5
+ label?: string;
6
+ optionText?: string;
7
+ optionValue?: string;
8
+ filterToQuery?: (searchText: string) => Record<string, unknown>;
9
+ rules?: FormItemRule | FormItemRule[];
10
+ defaultValue?: Identifier[];
11
+ }
12
+ export declare const SkyAutoCompleteArrayInput: import('vue').DefineComponent<SkyAutoCompleteArrayInputProps & Partial<SelectProps>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyAutoCompleteArrayInputProps & Partial<SelectProps>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,151 @@
1
+ import "element-plus/es/components/form-item/style/css";
2
+ import "element-plus/es/components/select/style/css";
3
+ import { defineComponent as V, computed as n, withDirectives as h, createVNode as m, mergeProps as D } from "vue";
4
+ import "../../hooks/useUser.mjs";
5
+ import "../../hooks/usePermission.mjs";
6
+ import "../../hooks/useMenu.mjs";
7
+ import "../../hooks/useTab.mjs";
8
+ import "../../hooks/useRouteKeepAlive.mjs";
9
+ import "../../hooks/useSize.mjs";
10
+ import "../../hooks/useLang.mjs";
11
+ import "../../hooks/useTheme.mjs";
12
+ import "../../hooks/useList.mjs";
13
+ import "../../hooks/useHiddenTitle.mjs";
14
+ import { useForm as C } from "../../hooks/useForm.mjs";
15
+ import "../../hooks/useShow.mjs";
16
+ import "../../hooks/useReferenceArrayField.mjs";
17
+ import "../../hooks/useTreeWithDetails.mjs";
18
+ import { useFormGrid as I } from "../../hooks/useFormGrid.mjs";
19
+ import { useReferenceArrayInput as w } from "../../hooks/useReferenceArrayInput.mjs";
20
+ import { skyConfig as x } from "../../setup/index.mjs";
21
+ import { useAsyncState as F } from "@vueuse/core";
22
+ import { ElFormItem as L, ElSelect as T, ElLoadingDirective as k } from "element-plus";
23
+ const ee = /* @__PURE__ */ V({
24
+ name: "SkyAutoCompleteArrayInput",
25
+ inheritAttrs: !1,
26
+ props: {
27
+ source: {
28
+ type: String,
29
+ required: !0
30
+ },
31
+ label: String,
32
+ // placeholder: String,
33
+ optionText: {
34
+ type: String,
35
+ default: "name"
36
+ },
37
+ optionValue: {
38
+ type: String,
39
+ default: "id"
40
+ },
41
+ filterToQuery: Function,
42
+ rules: Object,
43
+ defaultValue: {
44
+ type: Array,
45
+ default: () => []
46
+ }
47
+ },
48
+ setup(e, {
49
+ attrs: d
50
+ }) {
51
+ const s = I(), {
52
+ formData: r,
53
+ editData: i
54
+ } = C(), {
55
+ getList: c,
56
+ listLoading: f,
57
+ listData: a,
58
+ reference: p
59
+ } = w(), y = n(() => e.label || e.source);
60
+ typeof r[e.source] > "u" && (r[e.source] = e.defaultValue), i.value && (r[e.source] = i.value[e.source]);
61
+ const g = (t) => {
62
+ const o = e.filterToQuery?.(t);
63
+ o && c(o);
64
+ };
65
+ let u;
66
+ const {
67
+ state: v,
68
+ isLoading: A
69
+ } = F(async () => {
70
+ const t = r[e.source];
71
+ if (t)
72
+ return u = new AbortController(), x.dataProvider?.getMany?.(p, {
73
+ ids: Array.isArray(t) ? t : [t],
74
+ signal: u.signal
75
+ });
76
+ }, void 0, {
77
+ immediate: !0
78
+ }), l = (t) => {
79
+ const o = t[e.optionText], S = t[e.optionValue];
80
+ return {
81
+ label: o,
82
+ value: S
83
+ };
84
+ }, b = n(() => a.value?.data ? a.value.data.map(l) : (v.value?.data || []).map(l));
85
+ return () => h(
86
+ m(L, {
87
+ label: y.value,
88
+ prop: e.source,
89
+ rules: e.rules,
90
+ style: s ? `grid-area: ${e.source}` : ""
91
+ }, {
92
+ default: () => [m(T, D({
93
+ modelValue: r[e.source],
94
+ "onUpdate:modelValue": (t) => r[e.source] = t,
95
+ multiple: !0,
96
+ filterable: !0,
97
+ remote: !0,
98
+ reserveKeyword: !0,
99
+ remoteShowSuffix: !0,
100
+ remoteMethod: g,
101
+ loading: f.value,
102
+ debounce: 500,
103
+ options: b.value,
104
+ props: {
105
+ value: "value",
106
+ label: "label"
107
+ }
108
+ }, d), null)]
109
+ }),
110
+ // h(
111
+ // ElFormItem,
112
+ // {
113
+ // label: title.value,
114
+ // prop: props.source,
115
+ // rules: props.rules,
116
+ // style: formGrid ? `grid-area: ${props.source}` : '',
117
+ // },
118
+ // {
119
+ // default: () =>
120
+ // h(
121
+ // ElSelect,
122
+ // {
123
+ // modelValue: formData[props.source] as Identifier[],
124
+ // 'onUpdate:modelValue': (v) => (formData[props.source] = v),
125
+ // multiple: true,
126
+ // filterable: true,
127
+ // remote: true,
128
+ // reserveKeyword: true,
129
+ // remoteShowSuffix: true,
130
+ // remoteMethod,
131
+ // loading: listLoading.value,
132
+ // debounce: 500,
133
+ // ...attrs,
134
+ // },
135
+ // {
136
+ // default: () =>
137
+ // options.value.map((option) => (
138
+ // <ElOption key={option.value} label={option.label} value={option.value} />
139
+ // )),
140
+ // },
141
+ // ),
142
+ // },
143
+ // ),
144
+ [[k, A.value]]
145
+ );
146
+ }
147
+ });
148
+ export {
149
+ ee as SkyAutoCompleteArrayInput
150
+ };
151
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/auto-complete-array-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid, useReferenceArrayInput } from '@/hooks'\r\nimport type { GetManyResult, Identifier } from '@/provides'\r\nimport { skyConfig } from '@/setup'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport {\r\n ElFormItem,\r\n ElLoadingDirective,\r\n ElSelect,\r\n type FormItemRule,\r\n type SelectProps,\r\n} from 'element-plus'\r\nimport { computed, defineComponent, withDirectives, type PropType } from 'vue'\r\n\r\nexport interface SkyAutoCompleteArrayInputProps {\r\n source: string\r\n label?: string\r\n optionText?: string\r\n optionValue?: string\r\n filterToQuery?: (searchText: string) => Record<string, unknown>\r\n rules?: FormItemRule | FormItemRule[]\r\n defaultValue?: Identifier[]\r\n}\r\n\r\nexport const SkyAutoCompleteArrayInput = defineComponent<\r\n SkyAutoCompleteArrayInputProps & Partial<SelectProps>\r\n>({\r\n name: 'SkyAutoCompleteArrayInput',\r\n inheritAttrs: false,\r\n props: {\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n label: String,\r\n // placeholder: String,\r\n optionText: {\r\n type: String,\r\n default: 'name',\r\n },\r\n optionValue: {\r\n type: String,\r\n default: 'id',\r\n },\r\n filterToQuery: Function as PropType<SkyAutoCompleteArrayInputProps['filterToQuery']>,\r\n rules: Object,\r\n defaultValue: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n },\r\n setup(props, { attrs }) {\r\n const formGrid = useFormGrid()\r\n const { formData, editData } = useForm()!\r\n const { getList, listLoading, listData, reference } = useReferenceArrayInput()!\r\n const title = computed<string>(() => props.label || props.source)\r\n\r\n if (typeof formData[props.source] === 'undefined') {\r\n formData[props.source] = props.defaultValue!\r\n }\r\n\r\n if (editData.value) {\r\n formData[props.source] = editData.value[props.source]\r\n }\r\n\r\n const remoteMethod = (search: string) => {\r\n const filter = props.filterToQuery?.(search)\r\n if (filter) {\r\n getList(filter)\r\n }\r\n }\r\n\r\n let controller: AbortController | undefined\r\n const { state: theReferenceArrayData, isLoading } = useAsyncState<GetManyResult | undefined>(\r\n async () => {\r\n const data = formData[props.source] as Identifier[] | Identifier | undefined\r\n\r\n if (data) {\r\n controller = new AbortController()\r\n return skyConfig.dataProvider?.getMany?.(reference, {\r\n ids: Array.isArray(data) ? data : [data],\r\n signal: controller.signal,\r\n })\r\n }\r\n },\r\n undefined,\r\n {\r\n immediate: true,\r\n },\r\n )\r\n\r\n const getOptionItem = (item: Record<string, unknown>) => {\r\n const label = item[props.optionText!] as string\r\n const value = item[props.optionValue!] as Identifier\r\n return {\r\n label,\r\n value,\r\n }\r\n }\r\n\r\n const options = computed(() => {\r\n if (listData.value?.data) {\r\n return (\r\n listData.value.data\r\n // .filter((item) => {\r\n // const value = item[props.optionValue] as Identifier\r\n // return !formData[props.source]?.includes(value)\r\n // })\r\n .map(getOptionItem)\r\n )\r\n }\r\n\r\n const editArr = theReferenceArrayData.value?.data || []\r\n // create = []\r\n // edit = theReferenceArrayData.value?.data\r\n return editArr.map(getOptionItem)\r\n })\r\n\r\n return () =>\r\n withDirectives(\r\n <ElFormItem\r\n label={title.value}\r\n prop={props.source}\r\n rules={props.rules}\r\n style={formGrid ? `grid-area: ${props.source}` : ''}\r\n >\r\n <ElSelect\r\n modelValue={formData[props.source] as Identifier[]}\r\n onUpdate:modelValue={(v) => (formData[props.source] = v)}\r\n multiple\r\n filterable\r\n remote\r\n reserveKeyword\r\n remoteShowSuffix\r\n remoteMethod={remoteMethod}\r\n loading={listLoading.value}\r\n debounce={500}\r\n options={options.value}\r\n props={{ value: 'value', label: 'label' }}\r\n {...attrs}\r\n >\r\n {/* {options.value.map((option) => (\r\n <ElOption key={option.value} label={option.label} value={option.value} />\r\n ))} */}\r\n </ElSelect>\r\n </ElFormItem>,\r\n // h(\r\n // ElFormItem,\r\n // {\r\n // label: title.value,\r\n // prop: props.source,\r\n // rules: props.rules,\r\n // style: formGrid ? `grid-area: ${props.source}` : '',\r\n // },\r\n // {\r\n // default: () =>\r\n // h(\r\n // ElSelect,\r\n // {\r\n // modelValue: formData[props.source] as Identifier[],\r\n // 'onUpdate:modelValue': (v) => (formData[props.source] = v),\r\n // multiple: true,\r\n // filterable: true,\r\n // remote: true,\r\n // reserveKeyword: true,\r\n // remoteShowSuffix: true,\r\n // remoteMethod,\r\n // loading: listLoading.value,\r\n // debounce: 500,\r\n // ...attrs,\r\n // },\r\n // {\r\n // default: () =>\r\n // options.value.map((option) => (\r\n // <ElOption key={option.value} label={option.label} value={option.value} />\r\n // )),\r\n // },\r\n // ),\r\n // },\r\n // ),\r\n [[ElLoadingDirective, isLoading.value]],\r\n )\r\n },\r\n})\r\n"],"names":["SkyAutoCompleteArrayInput","defineComponent","name","inheritAttrs","props","source","type","required","label","optionText","default","optionValue","filterToQuery","rules","defaultValue","attrs","formGrid","useFormGrid","editData","reference","title","computed","formData","filter","search","controller","state","isLoading","data","skyConfig","ids","immediate","item","value","options","listData","getOptionItem","withDirectives","_createVNode","ElFormItem","remoteMethod"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAAA,KAAA,gBAAAC,EAAA;AAAA,EAGEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,OAAAA;AAAAA;AAAAA,IAEAC,YAAAA;AAAAA,MACEH,MAAAA;AAAAA,MACAI,SAAAA;AAAAA;IAEFC,aAAAA;AAAAA,MACEL,MAAAA;AAAAA,MACAI,SAAAA;AAAAA;IAEFE,eAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,cAAAA;AAAAA,MACER,MAAAA;AAAAA;IAEF;AAAA;;IAEaS,OAAAA;AAAAA,EAAM,GAAA;AACnB,UAAAC,IAAAC,EAAA;;MACkBC,UAAAA;AAAAA;;;;MACsBC,WAAAA;AAAAA,aACxCC,IAAAC,EAAA,MAAAjB,EAAA,SAAAA,EAAA,MAAA;4EAOEkB,EAAAA,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA,EAAAA,MAAAA;;AAIA,YAAAC,IAAAnB,EAAA,gBAAAoB,CAAA;AACA,MAAAD;;AAKF,QAAAE;;MACQC,OAAAA;AAAAA,MAA8BC,WAAAA;AAAAA;AAElC,YAAAC,IAAAN,EAAAlB,EAAA,MAAA;AAEA,UAAAwB;AACEH,eAAAA,IAAAA,IAAAA,gBAAAA,GACAI,EAAA,cAAA,UAAAV,GAAA;AAAA,UACEW,KAAAA,MAAAA,QAAAA,CAAAA,IAAAA,IAAAA,CAAAA,CAAAA;AAAAA;QAEF,CAAA;AAAA;MAKFC,WAAAA;AAAAA,IACF,CAAA;AAIA,YAAAvB,IAAAwB,EAAA5B,EAAA,UAAA,GACA6B,IAAAD,EAAA5B,EAAA,WAAA;;;QAGE6B,OAAAA;AAAAA;OAIJC,IAAAb,EAAA,MACEc,EAAA,OAAA,mDAcA,IAAAC,CAAA,CACF;AAEA,WAAA,MAAAC;AAAA,MAAAC,EAAAC,GAAA;AAAA;;;QAKwB,OAAAvB,IAAA,cAAAZ,EAAA,MAAA,KAAA;AAAA,MACiC,GAAA;AAAA,QAAAM,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,UAAA,YAAAY,EAAAlB,EAAA,MAAA;AAAA;UAIO,UAAA;AAAA,UAAA,YAAA;AAAA,UAAA,QAAA;AAAA,UAAA,gBAAA;AAAA,UAAA,kBAAA;AAAA,UAAA,cAAAoC;AAAA;UAO9B,UAAA;AAAA;;YAGjBP,OAAAA;AAAAA,YAAgBzB,OAAAA;AAAAA,UAAe;AAAA,QAAC,GAAAO,CAAA,GAAA,IAAA,CAAA;AAAA,MAChC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;EA2CnB;AACF,CAAA;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/form-item/style/css");require("element-plus/es/components/icon/style/css");require("element-plus/es/components/upload/style/css");const e=require("vue"),N=require("../../icons/EpPlus.cjs"),l=require("element-plus"),A=require("@vueuse/core"),C=require("vue-router");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");const E=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");const R=require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const L=require("../../hooks/useUpload.cjs"),y=require("../../setup/index.cjs"),P=require("../can-access/index.cjs"),V=e.defineComponent({name:"SkyAvatarInput",inheritAttrs:!1,props:{reference:{type:String,required:!0},source:{type:String,required:!0},label:String,rules:Object,dataId:{type:String,default:"id"},dataName:{type:String,default:"name"},dataUrl:{type:String,default:"url"},fileList:{type:Array,default:()=>[]}},setup(t,{slots:o,attrs:h}){const S=C.useRoute(),b=R.useFormGrid(),{formData:i,editData:s}=E.useForm(),w=e.computed(()=>t.label||t.source),{fileList:u}=L.useUpload(t.fileList),n=e.useTemplateRef("uploadRef"),U=S.meta;s.value&&(i[t.source]=s.value[t.source]);const k=async r=>{n.value?.clearFiles();const a=r[0];a.uid=l.genFileId(),n.value?.handleStart(a),n.value?.submit()},p=()=>{u.value[0]?.id&&(i[t.source]=u.value[0].id)};let d;const{isLoading:c}=A.useAsyncState(async()=>{const r=i[t.source];if(r){d=new AbortController;const a=await y.skyConfig.dataProvider?.getOne?.(t.reference,{id:r,signal:d.signal});if(a?.data)return u.value=[{id:a.data[t.dataId],name:a.data[t.dataName],url:a.data[t.dataUrl]}],a}},void 0,{immediate:!0}),f=e.ref(""),v=e.shallowRef(),m=e.shallowRef(),q=e.ref(),g=e.ref(),F=async r=>{const a=await y.skyConfig.dataProvider?.getUploadConfig?.({file:r});a?.data&&(f.value=a.data.action,v.value=a.data.data,m.value=a.data.headers,q.value=a.data.method,g.value=a.data.name)};return()=>e.createVNode(P.SkyCanAccess,{resource:U.resource,action:["create","edit"],column:t.source},{default:()=>[e.createVNode(l.ElFormItem,{class:"sky-avatar-input",label:w.value,prop:t.source,rules:t.rules,style:b?`grid-area: ${t.source}`:""},{default:()=>[e.createVNode(l.ElUpload,e.mergeProps({ref:"uploadRef",action:f.value,method:q.value,name:g.value,withCredentials:t.withCredentials,multiple:t.multiple,limit:1,beforeUpload:F,onSuccess:p,onExceed:k,headers:m.value,data:v.value,listType:"picture-card",fileList:u.value,"onUpdate:file-list":r=>u.value=r,autoUpload:!0,showFileList:!1,disabled:c.value,accept:"image/*"},h),{default:()=>u.value.length?e.withDirectives(e.createVNode("div",{class:"sky-avatar-input__preview",style:{backgroundImage:`url(${u.value[0].url})`}},null),[[l.ElLoadingDirective,c.value||u.value[0].status!=="success"]]):e.createVNode(l.ElIcon,null,{default:()=>[e.createVNode(N.EpPlus,null,null)]}),file:r=>{if(o.default){const a=o.default();return e.h(e.Fragment,a.map(I=>e.cloneVNode(I,{...r})))}}})]})]})}});exports.SkyAvatarInput=V;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/avatar-input/index.tsx"],"sourcesContent":["import { EpPlus } from '@/icons/EpPlus'\r\nimport type { GetOneResult, Identifier } from '@/provides'\r\nimport {\r\n ElFormItem,\r\n ElIcon,\r\n ElLoadingDirective,\r\n ElUpload,\r\n genFileId,\r\n type FormItemRule,\r\n type UploadFile,\r\n type UploadInstance,\r\n type UploadProps,\r\n type UploadRawFile,\r\n} from 'element-plus'\r\nimport {\r\n cloneVNode,\r\n computed,\r\n defineComponent,\r\n Fragment,\r\n h,\r\n ref,\r\n shallowRef,\r\n useTemplateRef,\r\n withDirectives,\r\n} from 'vue'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport { useRoute } from 'vue-router'\r\nimport { useForm, useFormGrid, useUpload, type SkyUploadUserFile } from '@/hooks'\r\nimport { skyConfig } from '@/setup'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\n\r\nexport interface SkyOssAvatarInputProps {\r\n reference: string\r\n source: string\r\n label?: string\r\n rules?: FormItemRule | FormItemRule[]\r\n dataId?: string\r\n dataName?: string\r\n dataUrl?: string\r\n fileList?: SkyUploadUserFile[]\r\n}\r\n\r\nexport const SkyAvatarInput = defineComponent<SkyOssAvatarInputProps & Partial<UploadProps>>({\r\n name: 'SkyAvatarInput',\r\n inheritAttrs: false,\r\n props: {\r\n reference: {\r\n type: String,\r\n required: true,\r\n },\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n label: String,\r\n rules: Object,\r\n dataId: {\r\n type: String,\r\n default: 'id',\r\n },\r\n dataName: {\r\n type: String,\r\n default: 'name',\r\n },\r\n dataUrl: {\r\n type: String,\r\n default: 'url',\r\n },\r\n fileList: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n },\r\n setup(props, { slots, attrs }) {\r\n const route = useRoute()\r\n const formGrid = useFormGrid()\r\n const { formData, editData } = useForm()!\r\n const title = computed<string>(() => props.label || props.source)\r\n // init fileList\r\n const { fileList } = useUpload(props.fileList!)\r\n const uploadRef = useTemplateRef<UploadInstance>('uploadRef')\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n if (editData.value) {\r\n formData[props.source] = editData.value[props.source]\r\n }\r\n\r\n const onExceed = async (files: File[]) => {\r\n uploadRef.value?.clearFiles()\r\n const file = files[0] as UploadRawFile\r\n file.uid = genFileId()\r\n uploadRef.value?.handleStart(file)\r\n uploadRef.value?.submit()\r\n }\r\n\r\n const onSuccess = () => {\r\n if (fileList.value[0]?.id) {\r\n formData[props.source] = fileList.value[0].id\r\n }\r\n }\r\n\r\n let controller: AbortController | undefined\r\n const { isLoading } = useAsyncState<GetOneResult | undefined>(\r\n async () => {\r\n const id = formData[props.source]\r\n if (id) {\r\n controller = new AbortController()\r\n const res = await skyConfig.dataProvider?.getOne?.(props.reference, {\r\n id: id as Identifier,\r\n signal: controller.signal,\r\n })\r\n\r\n if (res?.data) {\r\n fileList.value = [\r\n {\r\n id: res.data[props.dataId!] as Identifier,\r\n name: res.data[props.dataName!] as string,\r\n url: res.data[props.dataUrl!] as string,\r\n },\r\n ]\r\n return res\r\n }\r\n }\r\n },\r\n undefined,\r\n {\r\n immediate: true,\r\n },\r\n )\r\n\r\n const action = ref('')\r\n const data = shallowRef<Record<string, unknown>>()\r\n const headers = shallowRef<Record<string, unknown>>()\r\n const method = ref()\r\n const name = ref<string>()\r\n const beforeUpload = async (rawFile: UploadRawFile) => {\r\n const res = await skyConfig.dataProvider?.getUploadConfig?.({\r\n file: rawFile,\r\n })\r\n if (res?.data) {\r\n action.value = res.data.action\r\n data.value = res.data.data\r\n headers.value = res.data.headers\r\n method.value = res.data.method\r\n name.value = res.data.name\r\n }\r\n }\r\n\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\r\n <ElFormItem\r\n class=\"sky-avatar-input\"\r\n label={title.value}\r\n prop={props.source}\r\n rules={props.rules}\r\n style={formGrid ? `grid-area: ${props.source}` : ''}\r\n >\r\n <ElUpload\r\n ref=\"uploadRef\"\r\n action={action.value}\r\n method={method.value}\r\n name={name.value}\r\n withCredentials={props.withCredentials}\r\n multiple={props.multiple}\r\n limit={1}\r\n beforeUpload={beforeUpload}\r\n onSuccess={onSuccess}\r\n onExceed={onExceed}\r\n headers={headers.value}\r\n data={data.value}\r\n listType=\"picture-card\"\r\n fileList={fileList.value}\r\n onUpdate:file-list={(fs: SkyUploadUserFile[]) => (fileList.value = fs)}\r\n autoUpload={true}\r\n showFileList={false}\r\n disabled={isLoading.value}\r\n // https://developer.mozilla.org/zh-CN/docs/Web/HTML/Reference/Attributes/accept\r\n accept={'image/*'}\r\n {...attrs}\r\n >\r\n {{\r\n default: () =>\r\n fileList.value.length ? (\r\n withDirectives(\r\n <div\r\n class=\"sky-avatar-input__preview\"\r\n style={{ backgroundImage: `url(${fileList.value[0]!.url})` }}\r\n ></div>,\r\n [\r\n [\r\n ElLoadingDirective,\r\n isLoading.value || fileList.value[0]!.status !== 'success',\r\n ],\r\n ],\r\n )\r\n ) : (\r\n <ElIcon>\r\n <EpPlus />\r\n </ElIcon>\r\n ),\r\n file: (scope: { file: UploadFile; index: number }) => {\r\n if (slots.default) {\r\n const vnodes = slots.default()\r\n return h(\r\n Fragment,\r\n vnodes.map((vnode) => cloneVNode(vnode, { ...scope })),\r\n )\r\n }\r\n },\r\n }}\r\n </ElUpload>\r\n </ElFormItem>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\n"],"names":["SkyAvatarInput","defineComponent","name","inheritAttrs","props","reference","type","required","source","label","rules","dataId","default","dataName","dataUrl","fileList","attrs","route","useRoute","formGrid","useFormGrid","editData","title","computed","useUpload","uploadRef","useTemplateRef","routeMeta","formData","onExceed","files","file","controller","isLoading","id","res","skyConfig","url","immediate","action","ref","data","shallowRef","headers","method","beforeUpload","rawFile","onSuccess","fs","vnodes","slots","h","Fragment","vnode","cloneVNode"],"mappings":"snCA2CAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,iBACAC,aAAAA,GACAC,MAAAA,CACEC,UAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,OAAAA,CACEF,KAAAA,OACAC,SAAAA,IAEFE,MAAAA,OACAC,MAAAA,OACAC,OAAAA,CACEL,KAAAA,OACAM,QAAAA,MAEFC,SAAAA,CACEP,KAAAA,OACAM,QAAAA,QAEFE,QAAAA,CACER,KAAAA,OACAM,QAAAA,OAEFG,SAAAA,CACET,KAAAA,oBAEF,oBAEoBU,MAAAA,CAAM,EAAA,CAC1B,MAAAC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,YAAA,cACkBC,SAAAA,eAClBC,EAAAC,EAAAA,SAAA,IAAAnB,EAAA,OAAAA,EAAA,MAAA,GAEQW,SAAAA,CAAS,EAAAS,EAAAA,UAAApB,EAAA,QAAA,EACjBqB,EAAAC,EAAAA,eAAA,WAAA,EACAC,EAAAV,EAAA,eAGEW,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,EAAAA,MAAAA,GAGF,MAAAC,EAAA,MAAAC,GAAA,CACEL,EAAAA,OAAAA,WAAAA,EACA,MAAAM,EAAAD,EAAA,CAAA,EACAC,EAAAA,IAAAA,YAAAA,EACAN,EAAAA,OAAAA,YAAAA,CAAAA,EACAA,EAAAA,OAAAA,OAAAA,2BAKEG,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,CAAAA,EAAAA,KAIJ,IAAAI,QACQC,UAAAA,6BAEJ,MAAAC,EAAAN,EAAAxB,EAAA,MAAA,EACA,GAAA8B,EAAA,CACEF,EAAAA,IAAAA,gBACA,MAAAG,EAAA,MAAAC,EAAAA,UAAA,cAAA,SAAAhC,EAAA,UAAA,CACE8B,GAAAA,iBAEF,CAAA,0EAOMG,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CACF,CAAA,EAEFF,CAEJ,WAIAG,UAAAA,EACF,CAAA,EAGFC,EAAAC,EAAAA,IAAA,EAAA,EACAC,EAAAC,EAAAA,WAAA,EACAC,EAAAD,EAAAA,WAAA,EACAE,EAAAJ,EAAAA,IAAA,EACAtC,EAAAsC,EAAAA,IAAA,EACAK,EAAA,MAAAC,GAAA,4DAEIf,KAAAA,CACF,CAAA,YAEEQ,EAAAA,MAAAA,EAAAA,KAAAA,OACAE,EAAAA,MAAAA,EAAAA,KAAAA,KACAE,EAAAA,MAAAA,EAAAA,KAAAA,QACAC,EAAAA,MAAAA,EAAAA,KAAAA,OACA1C,EAAAA,MAAAA,EAAAA,KAAAA,mEAKwC,OAAA,CAAA,SAAA,MAAA,EAA4B,OAAAE,EAAA,MAAsB,EAAA,CAAAQ,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,aAAAA,CAAA,MAAA,6DAKtE,MAAAO,EAAA,cAAAf,EAAA,MAAA,GAAA,EACiC,EAAA,CAAAQ,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,SAAAA,EAAAA,WAAAA,CAAA,IAAA,6GAQzB,MAAA,EAChB,aAAAiC,EACkB,UAAAE,EACN,SAAAlB,+BAGJ,SAAA,gCAEQ,qBAAAmB,GAAAjC,EAAA,MAAAiC,EAC8C,WAAA,GACtD,aAAA,oCAIC,EAAAhC,CAAA,EAAA,kEAMG,MAAA,2EAGiD,uGAQ9DJ,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,EAAAA,OAAAA,KAAAA,IAAAA,CAAAA,2BAQD,MAAAqC,EAAAC,EAAA,QAAA,EACA,OAAAC,EAAAA,EAAAC,EAAAA,SAAAH,EAAA,IAAAI,GAAAC,EAAAA,WAAAD,EAAA,SAIF,CACF,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,GAMb,CACF,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { FormItemRule, UploadProps } from 'element-plus';
2
+ import { SkyUploadUserFile } from '../../hooks';
3
+ export interface SkyOssAvatarInputProps {
4
+ reference: string;
5
+ source: string;
6
+ label?: string;
7
+ rules?: FormItemRule | FormItemRule[];
8
+ dataId?: string;
9
+ dataName?: string;
10
+ dataUrl?: string;
11
+ fileList?: SkyUploadUserFile[];
12
+ }
13
+ export declare const SkyAvatarInput: import('vue').DefineComponent<SkyOssAvatarInputProps & Partial<UploadProps>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyOssAvatarInputProps & Partial<UploadProps>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,160 @@
1
+ import "element-plus/es/components/form-item/style/css";
2
+ import "element-plus/es/components/icon/style/css";
3
+ import "element-plus/es/components/upload/style/css";
4
+ import { defineComponent as F, computed as L, useTemplateRef as R, ref as u, shallowRef as y, createVNode as l, mergeProps as D, withDirectives as N, h as P, Fragment as x, cloneVNode as q } from "vue";
5
+ import { EpPlus as G } from "../../icons/EpPlus.mjs";
6
+ import { ElFormItem as O, ElUpload as T, ElLoadingDirective as V, ElIcon as _, genFileId as $ } from "element-plus";
7
+ import { useAsyncState as j } from "@vueuse/core";
8
+ import { useRoute as M } from "vue-router";
9
+ import "../../hooks/useUser.mjs";
10
+ import "../../hooks/usePermission.mjs";
11
+ import "../../hooks/useMenu.mjs";
12
+ import "../../hooks/useTab.mjs";
13
+ import "../../hooks/useRouteKeepAlive.mjs";
14
+ import "../../hooks/useSize.mjs";
15
+ import "../../hooks/useLang.mjs";
16
+ import "../../hooks/useTheme.mjs";
17
+ import "../../hooks/useList.mjs";
18
+ import "../../hooks/useHiddenTitle.mjs";
19
+ import { useForm as z } from "../../hooks/useForm.mjs";
20
+ import "../../hooks/useShow.mjs";
21
+ import "../../hooks/useReferenceArrayField.mjs";
22
+ import "../../hooks/useTreeWithDetails.mjs";
23
+ import { useFormGrid as B } from "../../hooks/useFormGrid.mjs";
24
+ import "../../hooks/useReferenceArrayInput.mjs";
25
+ import { useUpload as H } from "../../hooks/useUpload.mjs";
26
+ import { skyConfig as h } from "../../setup/index.mjs";
27
+ import { SkyCanAccess as J } from "../can-access/index.mjs";
28
+ const we = /* @__PURE__ */ F({
29
+ name: "SkyAvatarInput",
30
+ inheritAttrs: !1,
31
+ props: {
32
+ reference: {
33
+ type: String,
34
+ required: !0
35
+ },
36
+ source: {
37
+ type: String,
38
+ required: !0
39
+ },
40
+ label: String,
41
+ rules: Object,
42
+ dataId: {
43
+ type: String,
44
+ default: "id"
45
+ },
46
+ dataName: {
47
+ type: String,
48
+ default: "name"
49
+ },
50
+ dataUrl: {
51
+ type: String,
52
+ default: "url"
53
+ },
54
+ fileList: {
55
+ type: Array,
56
+ default: () => []
57
+ }
58
+ },
59
+ setup(e, {
60
+ slots: n,
61
+ attrs: S
62
+ }) {
63
+ const b = M(), w = B(), {
64
+ formData: i,
65
+ editData: d
66
+ } = z(), U = L(() => e.label || e.source), {
67
+ fileList: r
68
+ } = H(e.fileList), o = R("uploadRef"), I = b.meta;
69
+ d.value && (i[e.source] = d.value[e.source]);
70
+ const k = async (a) => {
71
+ o.value?.clearFiles();
72
+ const t = a[0];
73
+ t.uid = $(), o.value?.handleStart(t), o.value?.submit();
74
+ }, A = () => {
75
+ r.value[0]?.id && (i[e.source] = r.value[0].id);
76
+ };
77
+ let s;
78
+ const {
79
+ isLoading: c
80
+ } = j(async () => {
81
+ const a = i[e.source];
82
+ if (a) {
83
+ s = new AbortController();
84
+ const t = await h.dataProvider?.getOne?.(e.reference, {
85
+ id: a,
86
+ signal: s.signal
87
+ });
88
+ if (t?.data)
89
+ return r.value = [{
90
+ id: t.data[e.dataId],
91
+ name: t.data[e.dataName],
92
+ url: t.data[e.dataUrl]
93
+ }], t;
94
+ }
95
+ }, void 0, {
96
+ immediate: !0
97
+ }), m = u(""), f = y(), v = y(), p = u(), g = u(), C = async (a) => {
98
+ const t = await h.dataProvider?.getUploadConfig?.({
99
+ file: a
100
+ });
101
+ t?.data && (m.value = t.data.action, f.value = t.data.data, v.value = t.data.headers, p.value = t.data.method, g.value = t.data.name);
102
+ };
103
+ return () => l(J, {
104
+ resource: I.resource,
105
+ action: ["create", "edit"],
106
+ column: e.source
107
+ }, {
108
+ default: () => [l(O, {
109
+ class: "sky-avatar-input",
110
+ label: U.value,
111
+ prop: e.source,
112
+ rules: e.rules,
113
+ style: w ? `grid-area: ${e.source}` : ""
114
+ }, {
115
+ default: () => [l(T, D({
116
+ ref: "uploadRef",
117
+ action: m.value,
118
+ method: p.value,
119
+ name: g.value,
120
+ withCredentials: e.withCredentials,
121
+ multiple: e.multiple,
122
+ limit: 1,
123
+ beforeUpload: C,
124
+ onSuccess: A,
125
+ onExceed: k,
126
+ headers: v.value,
127
+ data: f.value,
128
+ listType: "picture-card",
129
+ fileList: r.value,
130
+ "onUpdate:file-list": (a) => r.value = a,
131
+ autoUpload: !0,
132
+ showFileList: !1,
133
+ disabled: c.value,
134
+ accept: "image/*"
135
+ }, S), {
136
+ default: () => r.value.length ? N(l("div", {
137
+ class: "sky-avatar-input__preview",
138
+ style: {
139
+ backgroundImage: `url(${r.value[0].url})`
140
+ }
141
+ }, null), [[V, c.value || r.value[0].status !== "success"]]) : l(_, null, {
142
+ default: () => [l(G, null, null)]
143
+ }),
144
+ file: (a) => {
145
+ if (n.default) {
146
+ const t = n.default();
147
+ return P(x, t.map((E) => q(E, {
148
+ ...a
149
+ })));
150
+ }
151
+ }
152
+ })]
153
+ })]
154
+ });
155
+ }
156
+ });
157
+ export {
158
+ we as SkyAvatarInput
159
+ };
160
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/avatar-input/index.tsx"],"sourcesContent":["import { EpPlus } from '@/icons/EpPlus'\r\nimport type { GetOneResult, Identifier } from '@/provides'\r\nimport {\r\n ElFormItem,\r\n ElIcon,\r\n ElLoadingDirective,\r\n ElUpload,\r\n genFileId,\r\n type FormItemRule,\r\n type UploadFile,\r\n type UploadInstance,\r\n type UploadProps,\r\n type UploadRawFile,\r\n} from 'element-plus'\r\nimport {\r\n cloneVNode,\r\n computed,\r\n defineComponent,\r\n Fragment,\r\n h,\r\n ref,\r\n shallowRef,\r\n useTemplateRef,\r\n withDirectives,\r\n} from 'vue'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport { useRoute } from 'vue-router'\r\nimport { useForm, useFormGrid, useUpload, type SkyUploadUserFile } from '@/hooks'\r\nimport { skyConfig } from '@/setup'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\n\r\nexport interface SkyOssAvatarInputProps {\r\n reference: string\r\n source: string\r\n label?: string\r\n rules?: FormItemRule | FormItemRule[]\r\n dataId?: string\r\n dataName?: string\r\n dataUrl?: string\r\n fileList?: SkyUploadUserFile[]\r\n}\r\n\r\nexport const SkyAvatarInput = defineComponent<SkyOssAvatarInputProps & Partial<UploadProps>>({\r\n name: 'SkyAvatarInput',\r\n inheritAttrs: false,\r\n props: {\r\n reference: {\r\n type: String,\r\n required: true,\r\n },\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n label: String,\r\n rules: Object,\r\n dataId: {\r\n type: String,\r\n default: 'id',\r\n },\r\n dataName: {\r\n type: String,\r\n default: 'name',\r\n },\r\n dataUrl: {\r\n type: String,\r\n default: 'url',\r\n },\r\n fileList: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n },\r\n setup(props, { slots, attrs }) {\r\n const route = useRoute()\r\n const formGrid = useFormGrid()\r\n const { formData, editData } = useForm()!\r\n const title = computed<string>(() => props.label || props.source)\r\n // init fileList\r\n const { fileList } = useUpload(props.fileList!)\r\n const uploadRef = useTemplateRef<UploadInstance>('uploadRef')\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n if (editData.value) {\r\n formData[props.source] = editData.value[props.source]\r\n }\r\n\r\n const onExceed = async (files: File[]) => {\r\n uploadRef.value?.clearFiles()\r\n const file = files[0] as UploadRawFile\r\n file.uid = genFileId()\r\n uploadRef.value?.handleStart(file)\r\n uploadRef.value?.submit()\r\n }\r\n\r\n const onSuccess = () => {\r\n if (fileList.value[0]?.id) {\r\n formData[props.source] = fileList.value[0].id\r\n }\r\n }\r\n\r\n let controller: AbortController | undefined\r\n const { isLoading } = useAsyncState<GetOneResult | undefined>(\r\n async () => {\r\n const id = formData[props.source]\r\n if (id) {\r\n controller = new AbortController()\r\n const res = await skyConfig.dataProvider?.getOne?.(props.reference, {\r\n id: id as Identifier,\r\n signal: controller.signal,\r\n })\r\n\r\n if (res?.data) {\r\n fileList.value = [\r\n {\r\n id: res.data[props.dataId!] as Identifier,\r\n name: res.data[props.dataName!] as string,\r\n url: res.data[props.dataUrl!] as string,\r\n },\r\n ]\r\n return res\r\n }\r\n }\r\n },\r\n undefined,\r\n {\r\n immediate: true,\r\n },\r\n )\r\n\r\n const action = ref('')\r\n const data = shallowRef<Record<string, unknown>>()\r\n const headers = shallowRef<Record<string, unknown>>()\r\n const method = ref()\r\n const name = ref<string>()\r\n const beforeUpload = async (rawFile: UploadRawFile) => {\r\n const res = await skyConfig.dataProvider?.getUploadConfig?.({\r\n file: rawFile,\r\n })\r\n if (res?.data) {\r\n action.value = res.data.action\r\n data.value = res.data.data\r\n headers.value = res.data.headers\r\n method.value = res.data.method\r\n name.value = res.data.name\r\n }\r\n }\r\n\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\r\n <ElFormItem\r\n class=\"sky-avatar-input\"\r\n label={title.value}\r\n prop={props.source}\r\n rules={props.rules}\r\n style={formGrid ? `grid-area: ${props.source}` : ''}\r\n >\r\n <ElUpload\r\n ref=\"uploadRef\"\r\n action={action.value}\r\n method={method.value}\r\n name={name.value}\r\n withCredentials={props.withCredentials}\r\n multiple={props.multiple}\r\n limit={1}\r\n beforeUpload={beforeUpload}\r\n onSuccess={onSuccess}\r\n onExceed={onExceed}\r\n headers={headers.value}\r\n data={data.value}\r\n listType=\"picture-card\"\r\n fileList={fileList.value}\r\n onUpdate:file-list={(fs: SkyUploadUserFile[]) => (fileList.value = fs)}\r\n autoUpload={true}\r\n showFileList={false}\r\n disabled={isLoading.value}\r\n // https://developer.mozilla.org/zh-CN/docs/Web/HTML/Reference/Attributes/accept\r\n accept={'image/*'}\r\n {...attrs}\r\n >\r\n {{\r\n default: () =>\r\n fileList.value.length ? (\r\n withDirectives(\r\n <div\r\n class=\"sky-avatar-input__preview\"\r\n style={{ backgroundImage: `url(${fileList.value[0]!.url})` }}\r\n ></div>,\r\n [\r\n [\r\n ElLoadingDirective,\r\n isLoading.value || fileList.value[0]!.status !== 'success',\r\n ],\r\n ],\r\n )\r\n ) : (\r\n <ElIcon>\r\n <EpPlus />\r\n </ElIcon>\r\n ),\r\n file: (scope: { file: UploadFile; index: number }) => {\r\n if (slots.default) {\r\n const vnodes = slots.default()\r\n return h(\r\n Fragment,\r\n vnodes.map((vnode) => cloneVNode(vnode, { ...scope })),\r\n )\r\n }\r\n },\r\n }}\r\n </ElUpload>\r\n </ElFormItem>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\n"],"names":["SkyAvatarInput","defineComponent","name","inheritAttrs","props","reference","type","required","source","label","rules","dataId","default","dataName","dataUrl","fileList","attrs","route","useRoute","formGrid","useFormGrid","editData","title","computed","useUpload","uploadRef","useTemplateRef","routeMeta","formData","onExceed","files","file","controller","isLoading","id","res","skyConfig","url","immediate","action","ref","data","shallowRef","headers","method","beforeUpload","rawFile","onSuccess","fs","vnodes","slots","h","Fragment","vnode","cloneVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAAA,KAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,WAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,QAAAA;AAAAA,MACEF,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFE,OAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,QAAAA;AAAAA,MACEL,MAAAA;AAAAA,MACAM,SAAAA;AAAAA;IAEFC,UAAAA;AAAAA,MACEP,MAAAA;AAAAA,MACAM,SAAAA;AAAAA;IAEFE,SAAAA;AAAAA,MACER,MAAAA;AAAAA,MACAM,SAAAA;AAAAA;IAEFG,UAAAA;AAAAA,MACET,MAAAA;AAAAA;IAEF;AAAA;;;IAEoBU,OAAAA;AAAAA,EAAM,GAAA;AAC1B,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAA;;MACkBC,UAAAA;AAAAA,aAClBC,IAAAC,EAAA,MAAAnB,EAAA,SAAAA,EAAA,MAAA;MAEQW,UAAAA;AAAAA,IAAS,IAAAS,EAAApB,EAAA,QAAA,GACjBqB,IAAAC,EAAA,WAAA,GACAC,IAAAV,EAAA;gBAGEW,EAAAA,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA,EAAAA,MAAAA;AAGF,UAAAC,IAAA,OAAAC,MAAA;AACEL,MAAAA,EAAAA,OAAAA,WAAAA;AACA,YAAAM,IAAAD,EAAA,CAAA;AACAC,MAAAA,EAAAA,MAAAA,EAAAA,GACAN,EAAAA,OAAAA,YAAAA,CAAAA,GACAA,EAAAA,OAAAA,OAAAA;AAAAA;yBAKEG,EAAAA,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA,CAAAA,EAAAA;AAAAA;AAIJ,QAAAI;;MACQC,WAAAA;AAAAA;AAEJ,YAAAC,IAAAN,EAAAxB,EAAA,MAAA;AACA,UAAA8B,GAAA;AACEF,QAAAA,IAAAA,IAAAA,gBAAAA;AACA,cAAAG,IAAA,MAAAC,EAAA,cAAA,SAAAhC,EAAA,WAAA;AAAA,UACE8B,IAAAA;AAAAA;QAEF,CAAA;;;;;YAOMG,KAAAA,EAAAA,KAAAA,EAAAA,OAAAA;AAAAA,UACF,CAAA,GAEFF;AAAA,MAEJ;AAAA;MAIAG,WAAAA;AAAAA,IACF,CAAA,GAGFC,IAAAC,EAAA,EAAA,GACAC,IAAAC,EAAA,GACAC,IAAAD,EAAA,GACAE,IAAAJ,EAAA,GACAtC,IAAAsC,EAAA,GACAK,IAAA,OAAAC,MAAA;;QAEIf,MAAAA;AAAAA,MACF,CAAA;kBAEEQ,EAAAA,QAAAA,EAAAA,KAAAA,QACAE,EAAAA,QAAAA,EAAAA,KAAAA,MACAE,EAAAA,QAAAA,EAAAA,KAAAA,SACAC,EAAAA,QAAAA,EAAAA,KAAAA,QACA1C,EAAAA,QAAAA,EAAAA,KAAAA;AAAAA;;;MAKwC,QAAA,CAAA,UAAA,MAAA;AAAA,MAA4B,QAAAE,EAAA;AAAA,IAAsB,GAAA;AAAA,MAAAQ,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA,QAAA,OAAA;AAAA;;;QAKtE,OAAAO,IAAA,cAAAf,EAAA,MAAA,KAAA;AAAA,MACiC,GAAA;AAAA,QAAAQ,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,UAAA,KAAA;AAAA;;;;;UAQzB,OAAA;AAAA,UAChB,cAAAiC;AAAA,UACkB,WAAAE;AAAA,UACN,UAAAlB;AAAA;;UAGJ,UAAA;AAAA;UAEQ,sBAAA,CAAAmB,MAAAjC,EAAA,QAAAiC;AAAA,UAC8C,YAAA;AAAA,UACtD,cAAA;AAAA;;QAIC,GAAAhC,CAAA,GAAA;AAAA;YAMG,OAAA;AAAA;;YAGiD;AAAA;YAQ9DJ,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,MAAAA,IAAAA,CAAAA;AAAAA;;;AAQD,oBAAAqC,IAAAC,EAAA,QAAA;AACA,qBAAAC,EAAAC,GAAAH,EAAA,IAAA,CAAAI,MAAAC,EAAAD,GAAA;AAAA;;YAIF;AAAA,UACF;AAAA,QAAC,CAAA,CAAA;AAAA,MAAA,CAAA,CAAA;AAAA;EAMb;AACF,CAAA;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../hooks/useUser.cjs");const o=require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const r=require("vue"),u=require("../../setup/index.cjs"),c=require("vue-router"),q=r.defineComponent({name:"SkyCanAccess",props:{resource:{type:[String,Array],required:!0},action:{type:[String,Array],required:!0},row:[String,Number],column:[String,Number]},setup(i,{slots:e}){const t=c.useRouter(),{permissions:n}=o.usePermission(),s=r.computed(()=>t.hasRoute(u.skyConfig.loginRouteName)?u.skyConfig.dataProvider?.canAccess?.(i,n.value):!0);return()=>s.value?e.default?.():e.empty?.()}});exports.SkyCanAccess=q;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/can-access/index.tsx"],"sourcesContent":["import { usePermission } from '@/hooks'\r\nimport type { CanAccessItem } from '@/provides'\r\nimport { skyConfig } from '@/setup'\r\nimport { computed, defineComponent } from 'vue'\r\nimport { useRouter } from 'vue-router'\r\n\r\nexport const SkyCanAccess = defineComponent<CanAccessItem>({\r\n name: 'SkyCanAccess',\r\n props: {\r\n resource: {\r\n type: [String, Array],\r\n required: true,\r\n },\r\n action: {\r\n type: [String, Array],\r\n required: true,\r\n },\r\n row: [String, Number],\r\n column: [String, Number],\r\n },\r\n setup(props, { slots }) {\r\n const router = useRouter()\r\n const { permissions } = usePermission()\r\n const access = computed(() => {\r\n if (!router.hasRoute(skyConfig.loginRouteName)) {\r\n return true\r\n }\r\n return skyConfig.dataProvider?.canAccess?.(props, permissions.value)\r\n })\r\n return () => (access.value ? slots.default?.() : slots.empty?.())\r\n },\r\n})\r\n"],"names":["SkyCanAccess","defineComponent","name","props","resource","type","String","Array","required","action","row","Number","column","setup","slots","router","useRouter","permissions","usePermission","access","computed","hasRoute","skyConfig","loginRouteName","dataProvider","canAccess","value","default","empty"],"mappings":"8xBAMaA,EAAeC,EAAAA,gBAA+B,CACzDC,KAAM,eACNC,MAAO,CACLC,SAAU,CACRC,KAAM,CAACC,OAAQC,KAAK,EACpBC,SAAU,IAEZC,OAAQ,CACNJ,KAAM,CAACC,OAAQC,KAAK,EACpBC,SAAU,IAEZE,IAAK,CAACJ,OAAQK,MAAM,EACpBC,OAAQ,CAACN,OAAQK,MAAM,GAEzBE,MAAMV,EAAO,CAAEW,MAAAA,CAAM,EAAG,CACtB,MAAMC,EAASC,EAAAA,UAAS,EAClB,CAAEC,YAAAA,GAAgBC,gBAAa,EAC/BC,EAASC,EAAAA,SAAS,IACjBL,EAAOM,SAASC,EAAAA,UAAUC,cAAc,EAGtCD,EAAAA,UAAUE,cAAcC,YAAYtB,EAAOc,EAAYS,KAAK,EAF1D,EAGV,EACD,MAAO,IAAOP,EAAOO,MAAQZ,EAAMa,UAAO,EAAOb,EAAMc,QAAK,CAC9D,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { CanAccessItem } from '../../provides';
2
+ export declare const SkyCanAccess: import('vue').DefineComponent<CanAccessItem, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<CanAccessItem> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,46 @@
1
+ import "../../hooks/useUser.mjs";
2
+ import { usePermission as p } from "../../hooks/usePermission.mjs";
3
+ import "../../hooks/useMenu.mjs";
4
+ import "../../hooks/useTab.mjs";
5
+ import "../../hooks/useRouteKeepAlive.mjs";
6
+ import "../../hooks/useSize.mjs";
7
+ import "../../hooks/useLang.mjs";
8
+ import "../../hooks/useTheme.mjs";
9
+ import "../../hooks/useList.mjs";
10
+ import "../../hooks/useHiddenTitle.mjs";
11
+ import "../../hooks/useForm.mjs";
12
+ import "../../hooks/useShow.mjs";
13
+ import "../../hooks/useReferenceArrayField.mjs";
14
+ import "../../hooks/useTreeWithDetails.mjs";
15
+ import "../../hooks/useFormGrid.mjs";
16
+ import "../../hooks/useReferenceArrayInput.mjs";
17
+ import { defineComponent as n, computed as u } from "vue";
18
+ import { skyConfig as t } from "../../setup/index.mjs";
19
+ import { useRouter as s } from "vue-router";
20
+ const x = /* @__PURE__ */ n({
21
+ name: "SkyCanAccess",
22
+ props: {
23
+ resource: {
24
+ type: [String, Array],
25
+ required: !0
26
+ },
27
+ action: {
28
+ type: [String, Array],
29
+ required: !0
30
+ },
31
+ row: [String, Number],
32
+ column: [String, Number]
33
+ },
34
+ setup(o, {
35
+ slots: r
36
+ }) {
37
+ const e = s(), {
38
+ permissions: i
39
+ } = p(), m = u(() => e.hasRoute(t.loginRouteName) ? t.dataProvider?.canAccess?.(o, i.value) : !0);
40
+ return () => m.value ? r.default?.() : r.empty?.();
41
+ }
42
+ });
43
+ export {
44
+ x as SkyCanAccess
45
+ };
46
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/can-access/index.tsx"],"sourcesContent":["import { usePermission } from '@/hooks'\r\nimport type { CanAccessItem } from '@/provides'\r\nimport { skyConfig } from '@/setup'\r\nimport { computed, defineComponent } from 'vue'\r\nimport { useRouter } from 'vue-router'\r\n\r\nexport const SkyCanAccess = defineComponent<CanAccessItem>({\r\n name: 'SkyCanAccess',\r\n props: {\r\n resource: {\r\n type: [String, Array],\r\n required: true,\r\n },\r\n action: {\r\n type: [String, Array],\r\n required: true,\r\n },\r\n row: [String, Number],\r\n column: [String, Number],\r\n },\r\n setup(props, { slots }) {\r\n const router = useRouter()\r\n const { permissions } = usePermission()\r\n const access = computed(() => {\r\n if (!router.hasRoute(skyConfig.loginRouteName)) {\r\n return true\r\n }\r\n return skyConfig.dataProvider?.canAccess?.(props, permissions.value)\r\n })\r\n return () => (access.value ? slots.default?.() : slots.empty?.())\r\n },\r\n})\r\n"],"names":["SkyCanAccess","defineComponent","name","props","resource","type","String","Array","required","action","row","Number","column","setup","slots","router","useRouter","permissions","usePermission","access","computed","hasRoute","skyConfig","loginRouteName","dataProvider","canAccess","value","default","empty"],"mappings":";;;;;;;;;;;;;;;;;;;AAMO,MAAMA,IAAeC,gBAAAA,EAA+B;AAAA,EACzDC,MAAM;AAAA,EACNC,OAAO;AAAA,IACLC,UAAU;AAAA,MACRC,MAAM,CAACC,QAAQC,KAAK;AAAA,MACpBC,UAAU;AAAA;IAEZC,QAAQ;AAAA,MACNJ,MAAM,CAACC,QAAQC,KAAK;AAAA,MACpBC,UAAU;AAAA;IAEZE,KAAK,CAACJ,QAAQK,MAAM;AAAA,IACpBC,QAAQ,CAACN,QAAQK,MAAM;AAAA;EAEzBE,MAAMV,GAAO;AAAA,IAAEW,OAAAA;AAAAA,EAAM,GAAG;AACtB,UAAMC,IAASC,EAAS,GAClB;AAAA,MAAEC,aAAAA;AAAAA,QAAgBC,EAAa,GAC/BC,IAASC,EAAS,MACjBL,EAAOM,SAASC,EAAUC,cAAc,IAGtCD,EAAUE,cAAcC,YAAYtB,GAAOc,EAAYS,KAAK,IAF1D,EAGV;AACD,WAAO,MAAOP,EAAOO,QAAQZ,EAAMa,UAAO,IAAOb,EAAMc,QAAK;AAAA,EAC9D;AACF,CAAC;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");require("element-plus/es/components/card/style/css");const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");const k=require("../../hooks/useTab.cjs"),C=require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");const N=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");const T=require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const D=require("../../icons/EpDocumentAdd.cjs"),R=require("../../setup/index.cjs"),V=require("@vueuse/core"),l=require("element-plus"),P=require("vue-i18n"),d=require("vue-router"),_=require("../can-access/index.cjs");function h(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const j=e.defineComponent({name:"SkyCreate",inheritAttrs:!1,setup(t,{slots:m,attrs:q}){const{t:f}=P.useI18n(),o=d.useRoute(),v=d.useRouter(),{removeTab:p,lastTab:u}=k.useTab(),{formData:y,formRef:a}=N.useProvideForm(),s=T.useTreeWithDetails(),{removeKeepAlive:b}=C.useRouteKeepAlive(),i=o.meta;let n;const{isLoading:S,execute:A}=V.useAsyncState(async r=>(n=new AbortController,R.skyConfig.dataProvider?.create?.(o.meta.resource,{data:r,signal:n.signal})),void 0,{immediate:!1}),g=async()=>{if(!a.value||!await a.value.validate())return;const c=await A(0,{...y});c&&(s?.createSuccess?s.createSuccess(c):(i.keepAliveName&&b(i.keepAliveName),p(o.name),u.value&&v.replace({name:u.value.routeName,params:u.value.routeParams})))};return()=>e.createVNode("div",{class:"sky-create"},[e.createVNode(_.SkyCanAccess,{resource:i.resource,action:"create"},{default:()=>[e.createVNode(l.ElCard,q,{default:m.default,footer:()=>{let r;return e.createVNode("div",{class:"sky-create__footer"},[e.createVNode(l.ElButton,{type:"primary",icon:D.EpDocumentAdd,loading:S.value,onClick:g},h(r=f("button.submit"))?r:{default:()=>[r]})])}})]})])}});exports.SkyCreate=j;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/create/index.tsx"],"sourcesContent":["import { useProvideForm, useRouteKeepAlive, useTab, useTreeWithDetails } from '@/hooks'\nimport { EpDocumentAdd } from '@/icons/EpDocumentAdd'\nimport type { CreateResult } from '@/provides'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElButton, ElCard, type CardProps } from 'element-plus'\nimport { defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport const SkyCreate = defineComponent<Partial<CardProps>>({\n name: 'SkyCreate',\n inheritAttrs: false,\n setup(_props, { slots, attrs }) {\n const { t } = useI18n()\n const route = useRoute()\n const router = useRouter()\n const { removeTab, lastTab } = useTab()\n const { formData, formRef } = useProvideForm()\n const treeWithDetails = useTreeWithDetails()\n const { removeKeepAlive } = useRouteKeepAlive()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n let controller: AbortController | undefined\n\n const { isLoading: formSubmitLoging, execute } = useAsyncState<\n CreateResult | undefined,\n [data: Record<string, unknown>]\n >(\n async (data) => {\n controller = new AbortController()\n return skyConfig.dataProvider?.create?.(route.meta.resource as string, {\n data,\n signal: controller.signal,\n })\n },\n undefined,\n {\n immediate: false,\n },\n )\n\n const onSumit = async () => {\n if (!formRef.value) {\n return\n }\n const valid = await formRef.value.validate()\n if (!valid) {\n return\n }\n const res = await execute(0, { ...formData })\n if (res) {\n if (treeWithDetails?.createSuccess) {\n treeWithDetails.createSuccess(res)\n } else {\n if (routeMeta.keepAliveName) {\n removeKeepAlive(routeMeta.keepAliveName)\n }\n removeTab(route.name as string)\n if (lastTab.value) {\n router.replace({ name: lastTab.value.routeName, params: lastTab.value.routeParams })\n }\n }\n }\n }\n\n return () => (\n <div class=\"sky-create\">\n <SkyCanAccess resource={routeMeta.resource} action=\"create\">\n <ElCard {...attrs}>\n {{\n default: slots.default,\n footer: () => (\n <div class=\"sky-create__footer\">\n <ElButton\n type=\"primary\"\n icon={EpDocumentAdd}\n loading={formSubmitLoging.value}\n onClick={onSumit}\n >\n {t('button.submit')}\n </ElButton>\n </div>\n ),\n }}\n </ElCard>\n </SkyCanAccess>\n </div>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyCreate","defineComponent","name","inheritAttrs","attrs","t","route","useRoute","router","useRouter","lastTab","formRef","treeWithDetails","useTreeWithDetails","removeKeepAlive","routeMeta","controller","isLoading","execute","useAsyncState","data","immediate","onSumit","res","removeTab","params","_createVNode","default","footer","_slot","EpDocumentAdd"],"mappings":"4jCAU4C,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAE5C,MAAAE,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,YACAC,aAAAA,oBACuBC,MAAAA,CAAM,EAAA,OACnBC,EAAAA,eACRC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,UAAA,eACmBC,QAAAA,0BACDC,QAAAA,sBAClBC,EAAAC,EAAAA,mBAAA,GACQC,gBAAAA,yBACRC,EAAAT,EAAA,KAEA,IAAAU,QAEQC,UAAAA,EAA6BC,QAAAA,CAAQ,EAAAC,EAAAA,cAAA,MAAAC,IAKzCJ,EAAAA,IAAAA,0FAIA,CAAA,WAIAK,UAAAA,EACF,CAAA,EAGFC,EAAA,SAAA,IACE,CAAAX,EAAA,iCAKE,OAEF,MAAAY,EAAA,MAAAL,EAAA,EAAA,KAA2C,CAAA,EAC3CK,qBAEIX,EAAAA,cAAAA,CAAAA,oBAGEE,EAAAA,EAAAA,aAAAA,EAEFU,EAAAA,EAAAA,IAAAA,sBAEmBtB,KAAAA,EAAAA,MAAAA,UAA+BuB,OAAAA,EAAAA,MAAAA,WAAkC,CAAA,KAM1F,MAAA,IAAAC,EAAAA,YAAA,MAAA,CAAO,MAAA,iEAEuC,OAAA,QAAA,EAAA,CAAAC,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,OAAAA,EAAAA,mBAIpCC,OAAAA,IAAAA,CAAQ,IAAAC,EAAA,OAAAH,EAAAA,YAAA,MAAA,CAAA,MAAA,iDAAA,KAAA,UAAA,KAAAI,EAAAA,mFAQiB,CAAA,CAAA,CAAA,CAAA,CAGxB,CAAA,CAAA,KAMb,CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { CardProps } from 'element-plus';
2
+ export declare const SkyCreate: import('vue').DefineComponent<Partial<CardProps>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Partial<CardProps>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;