foucui 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/README.md +8 -8
  2. package/README.publish.md +19 -0
  3. package/dist/components/{QiuAnchor → FouAnchor}/context.d.ts +4 -4
  4. package/dist/components/{QiuBadge → FouBadge}/composables/useTableHostHeight.d.ts +1 -1
  5. package/dist/components/FouBadge/index.d.ts +18 -0
  6. package/dist/components/{QiuBadge → FouBadge}/shared/BadgeTemplateRenderer.vue.d.ts +1 -1
  7. package/dist/components/{QiuBadge → FouBadge}/shared/badgeTemplate.d.ts +1 -1
  8. package/dist/components/{QiuButton → FouButton}/index.vue.d.ts +4 -4
  9. package/dist/components/{QiuCanvasKit/QiuCanvasEditor.vue.d.ts → FouCanvasKit/FouCanvasEditor.vue.d.ts} +4 -2
  10. package/dist/components/{QiuCanvasKit → FouCanvasKit}/components/DataModulesPanel.vue.d.ts +1 -0
  11. package/dist/components/{QiuCanvasKit → FouCanvasKit}/index.d.ts +4 -4
  12. package/dist/components/{QiuCanvasKit → FouCanvasKit}/types.d.ts +1 -1
  13. package/dist/components/{QiuCarousel → FouCarousel}/context.d.ts +4 -4
  14. package/dist/components/{QiuCascader → FouCascader}/types.d.ts +7 -7
  15. package/dist/components/{QiuCheckbox → FouCheckbox}/types.d.ts +1 -1
  16. package/dist/components/{QiuCollapse → FouCollapse}/context.d.ts +2 -2
  17. package/dist/components/{QiuDescriptions → FouDescriptions}/context.d.ts +4 -4
  18. package/dist/components/{QiuDropdown → FouDropdown}/context.d.ts +2 -2
  19. package/dist/components/{QiuForm → FouForm}/types.d.ts +10 -10
  20. package/dist/components/FouLoading/index.d.ts +26 -0
  21. package/dist/components/{QiuLoading → FouLoading}/spinner.vue.d.ts +3 -3
  22. package/dist/components/{QiuLoading → FouLoading}/types.d.ts +2 -2
  23. package/dist/components/{QiuMenu → FouMenu}/context.d.ts +2 -2
  24. package/dist/components/{QiuMenuNav → FouMenuNav}/context.d.ts +2 -2
  25. package/dist/components/{QiuMsg/QiuMsgItem.vue.d.ts → FouMsg/FouMsgItem.vue.d.ts} +3 -3
  26. package/dist/components/FouMsg/index.d.ts +30 -0
  27. package/dist/components/{QiuMsg → FouMsg}/types.d.ts +5 -5
  28. package/dist/components/{QiuMsgBox → FouMsgBox}/index.d.ts +3 -3
  29. package/dist/components/{QiuNotification/QiuNotificationItem.vue.d.ts → FouNotification/FouNotificationItem.vue.d.ts} +3 -3
  30. package/dist/components/FouNotification/index.d.ts +30 -0
  31. package/dist/components/FouNotification/types.d.ts +12 -0
  32. package/dist/components/{QiuRadio → FouRadio}/types.d.ts +1 -1
  33. package/dist/components/FouRow/types.d.ts +4 -0
  34. package/dist/components/{QiuSelect → FouSelect}/index.vue.d.ts +3 -3
  35. package/dist/components/{QiuSelect → FouSelect}/types.d.ts +3 -3
  36. package/dist/components/{QiuStep → FouStep}/index.vue.d.ts +1 -1
  37. package/dist/components/{QiuSteps → FouSteps}/context.d.ts +5 -5
  38. package/dist/components/{QiuTabBar → FouTabBar}/index.vue.d.ts +3 -3
  39. package/dist/components/{QiuTabBar → FouTabBar}/types.d.ts +5 -5
  40. package/dist/components/{QiuTable → FouTable}/export.d.ts +5 -5
  41. package/dist/components/FouTable/index.d.ts +3 -0
  42. package/dist/components/{QiuTable → FouTable}/index.vue.d.ts +60 -60
  43. package/dist/components/FouTable/registry.d.ts +39 -0
  44. package/dist/components/{QiuTable → FouTable}/types.d.ts +60 -60
  45. package/dist/components/{QiuTable → FouTable}/useArea.d.ts +10 -10
  46. package/dist/components/{QiuTable → FouTable}/useColumns.d.ts +5 -5
  47. package/dist/components/FouTable/useEdit.d.ts +36 -0
  48. package/dist/components/{QiuTable → FouTable}/useHistory.d.ts +5 -5
  49. package/dist/components/{QiuTable → FouTable}/useMerge.d.ts +6 -6
  50. package/dist/components/{QiuTable → FouTable}/useScrollSync.d.ts +1 -1
  51. package/dist/components/{QiuTable → FouTable}/utils.d.ts +17 -17
  52. package/dist/components/FouTree/types.d.ts +13 -0
  53. package/dist/components/{QiuUpload → FouUpload}/index.vue.d.ts +17 -17
  54. package/dist/foucui.css +1 -1
  55. package/dist/foucui.js +10749 -10646
  56. package/dist/foucui.umd.cjs +40 -40
  57. package/dist/index.d.ts +43 -43
  58. package/dist/src/bridge/@/config/index.d.ts +1 -1
  59. package/dist/src/bridge/@fou/plugins/shortcuts.d.ts +2 -0
  60. package/package.json +27 -15
  61. package/components/QiuAffix/index.vue +0 -186
  62. package/components/QiuAlert/index.vue +0 -208
  63. package/components/QiuAnchor/context.ts +0 -18
  64. package/components/QiuAnchor/index.vue +0 -180
  65. package/components/QiuAnchorLink/index.vue +0 -67
  66. package/components/QiuApp/index.vue +0 -9
  67. package/components/QiuAutocomplete/index.vue +0 -408
  68. package/components/QiuAvatar/index.vue +0 -140
  69. package/components/QiuBacktop/index.vue +0 -121
  70. package/components/QiuBadge/api/index.ts +0 -389
  71. package/components/QiuBadge/components/BadgeImagePickerDialog.vue +0 -243
  72. package/components/QiuBadge/components/BadgeLibraryManagerDialog.vue +0 -30
  73. package/components/QiuBadge/components/BadgeLibraryPanel.vue +0 -182
  74. package/components/QiuBadge/composables/useTableHostHeight.ts +0 -53
  75. package/components/QiuBadge/index.ts +0 -18
  76. package/components/QiuBadge/shared/BadgeTemplateRenderer.vue +0 -32
  77. package/components/QiuBadge/shared/assetUrl.ts +0 -26
  78. package/components/QiuBadge/shared/badgeTemplate.ts +0 -309
  79. package/components/QiuBadge/utils/chinaAreaData.ts +0 -44
  80. package/components/QiuBadge/utils/hostRegion.ts +0 -22
  81. package/components/QiuBadge/utils/pca-code.json +0 -1
  82. package/components/QiuBadge/utils/pdfFromElement.ts +0 -348
  83. package/components/QiuBadge/views/BadgeLibraryView.vue +0 -32
  84. package/components/QiuBadge/views/BadgeManageView.vue +0 -1364
  85. package/components/QiuBadge/views/BadgeTemplateEditorView.vue +0 -10
  86. package/components/QiuBadge/views/BadgeTemplateListView.vue +0 -229
  87. package/components/QiuBadge/views/DeskLabelTemplateListView.vue +0 -227
  88. package/components/QiuBadge/views/DeskLabelView.vue +0 -683
  89. package/components/QiuBadgeDot/index.vue +0 -87
  90. package/components/QiuButton/index.vue +0 -247
  91. package/components/QiuButtonGroup/index.vue +0 -63
  92. package/components/QiuCanvasKit/QiuCanvasEditor.vue +0 -5503
  93. package/components/QiuCanvasKit/QiuCanvasRenderer.vue +0 -348
  94. package/components/QiuCanvasKit/assetUrl.ts +0 -11
  95. package/components/QiuCanvasKit/components/DataModulesPanel.vue +0 -352
  96. package/components/QiuCanvasKit/export/html.ts +0 -132
  97. package/components/QiuCanvasKit/export/pdf.ts +0 -48
  98. package/components/QiuCanvasKit/export/png.ts +0 -50
  99. package/components/QiuCanvasKit/index.ts +0 -20
  100. package/components/QiuCanvasKit/modules/badgeCompat.ts +0 -84
  101. package/components/QiuCanvasKit/modules/dataRegistry.ts +0 -207
  102. package/components/QiuCanvasKit/modules/merge.ts +0 -71
  103. package/components/QiuCanvasKit/presets/badge.ts +0 -67
  104. package/components/QiuCanvasKit/presets/banner.ts +0 -79
  105. package/components/QiuCanvasKit/types.ts +0 -138
  106. package/components/QiuCard/index.vue +0 -104
  107. package/components/QiuCarousel/context.ts +0 -16
  108. package/components/QiuCarousel/index.vue +0 -343
  109. package/components/QiuCarouselItem/index.vue +0 -47
  110. package/components/QiuCascader/index.vue +0 -879
  111. package/components/QiuCascader/types.ts +0 -48
  112. package/components/QiuCheckbox/QiuCheckboxGroup.vue +0 -78
  113. package/components/QiuCheckbox/index.vue +0 -231
  114. package/components/QiuCheckbox/types.ts +0 -8
  115. package/components/QiuCode/index.vue +0 -64
  116. package/components/QiuCol/col.scss +0 -55
  117. package/components/QiuCol/index.vue +0 -64
  118. package/components/QiuCollapse/context.ts +0 -10
  119. package/components/QiuCollapse/index.vue +0 -70
  120. package/components/QiuCollapseItem/index.vue +0 -167
  121. package/components/QiuColorField/index.vue +0 -296
  122. package/components/QiuColorPicker/README.md +0 -118
  123. package/components/QiuColorPicker/index.vue +0 -60
  124. package/components/QiuColorfulCard/index.vue +0 -101
  125. package/components/QiuCombobox/index.vue +0 -277
  126. package/components/QiuConfigProvider/index.vue +0 -31
  127. package/components/QiuContextMenu/index.vue +0 -209
  128. package/components/QiuDate/index.vue +0 -1134
  129. package/components/QiuDescriptions/context.ts +0 -20
  130. package/components/QiuDescriptions/index.vue +0 -115
  131. package/components/QiuDescriptionsItem/index.vue +0 -103
  132. package/components/QiuDialog/index.vue +0 -828
  133. package/components/QiuDigitalCard/index.vue +0 -159
  134. package/components/QiuDivider/index.vue +0 -185
  135. package/components/QiuDot/index.vue +0 -83
  136. package/components/QiuDrawer/index.vue +0 -350
  137. package/components/QiuDropdown/QiuDropdownItem.vue +0 -74
  138. package/components/QiuDropdown/QiuDropdownMenu.vue +0 -22
  139. package/components/QiuDropdown/context.ts +0 -9
  140. package/components/QiuDropdown/index.vue +0 -189
  141. package/components/QiuEmpty/index.vue +0 -73
  142. package/components/QiuForm/index.vue +0 -172
  143. package/components/QiuForm/types.ts +0 -39
  144. package/components/QiuFormItem/index.vue +0 -276
  145. package/components/QiuFullscreen/index.vue +0 -11
  146. package/components/QiuGrid/index.vue +0 -408
  147. package/components/QiuHoverCard/index.vue +0 -192
  148. package/components/QiuIcon/index.vue +0 -117
  149. package/components/QiuIconPicker/iconify.libraries.ts +0 -182
  150. package/components/QiuIconPicker/icons.catalog.ts +0 -3072
  151. package/components/QiuIconPicker/index.vue +0 -488
  152. package/components/QiuImage/index.vue +0 -177
  153. package/components/QiuInput/index.vue +0 -328
  154. package/components/QiuInputNumber/index.vue +0 -295
  155. package/components/QiuInputOtp/index.vue +0 -190
  156. package/components/QiuKbd/index.vue +0 -57
  157. package/components/QiuLayoutContainer/index.vue +0 -50
  158. package/components/QiuLinkPreview/index.vue +0 -224
  159. package/components/QiuLoading/index.ts +0 -176
  160. package/components/QiuLoading/spinner.vue +0 -820
  161. package/components/QiuLoading/types.ts +0 -44
  162. package/components/QiuMention/index.vue +0 -299
  163. package/components/QiuMenu/QiuMenuRoot.vue +0 -241
  164. package/components/QiuMenu/components/QiuMenuItem.vue +0 -340
  165. package/components/QiuMenu/components/QiuSubMenu.vue +0 -504
  166. package/components/QiuMenu/context.ts +0 -21
  167. package/components/QiuMenu/index.vue +0 -43
  168. package/components/QiuMenuNav/QiuMenuNavItem.vue +0 -100
  169. package/components/QiuMenuNav/QiuMenuNavSub.vue +0 -120
  170. package/components/QiuMenuNav/context.ts +0 -14
  171. package/components/QiuMenuNav/index.vue +0 -148
  172. package/components/QiuMsg/QiuMsgItem.vue +0 -180
  173. package/components/QiuMsg/index.ts +0 -158
  174. package/components/QiuMsg/types.ts +0 -23
  175. package/components/QiuMsgBox/index.ts +0 -147
  176. package/components/QiuNotification/QiuNotificationItem.vue +0 -168
  177. package/components/QiuNotification/index.ts +0 -155
  178. package/components/QiuNotification/types.ts +0 -14
  179. package/components/QiuPage/index.vue +0 -12
  180. package/components/QiuPageHeader/index.vue +0 -115
  181. package/components/QiuPageMain/index.vue +0 -78
  182. package/components/QiuPagination/index.vue +0 -421
  183. package/components/QiuPasswordStrength/index.vue +0 -101
  184. package/components/QiuPopconfirm/index.vue +0 -196
  185. package/components/QiuPopover/index.vue +0 -277
  186. package/components/QiuProgress/index.vue +0 -235
  187. package/components/QiuQrcode/index.vue +0 -302
  188. package/components/QiuQueryForm/components/QiuQueryFormBottomPanel.vue +0 -13
  189. package/components/QiuQueryForm/components/QiuQueryFormLeftPanel.vue +0 -37
  190. package/components/QiuQueryForm/components/QiuQueryFormRightPanel.vue +0 -37
  191. package/components/QiuQueryForm/components/QiuQueryFormTopPanel.vue +0 -13
  192. package/components/QiuQueryForm/index.vue +0 -117
  193. package/components/QiuRadio/QiuRadioGroup.vue +0 -75
  194. package/components/QiuRadio/index.vue +0 -191
  195. package/components/QiuRadio/types.ts +0 -9
  196. package/components/QiuRate/index.vue +0 -184
  197. package/components/QiuRefresh/index.vue +0 -32
  198. package/components/QiuResult/index.vue +0 -103
  199. package/components/QiuRow/index.vue +0 -60
  200. package/components/QiuRow/types.ts +0 -5
  201. package/components/QiuScrollbar/index.vue +0 -107
  202. package/components/QiuSearchBar/index.vue +0 -154
  203. package/components/QiuSegmented/index.vue +0 -120
  204. package/components/QiuSelect/QiuOption.vue +0 -93
  205. package/components/QiuSelect/index.vue +0 -452
  206. package/components/QiuSelect/types.ts +0 -15
  207. package/components/QiuSkeleton/index.vue +0 -78
  208. package/components/QiuSlider/index.vue +0 -266
  209. package/components/QiuSpace/index.vue +0 -95
  210. package/components/QiuSparkline/index.vue +0 -92
  211. package/components/QiuStatistic/index.vue +0 -4
  212. package/components/QiuStatistics/index.vue +0 -123
  213. package/components/QiuStep/index.vue +0 -220
  214. package/components/QiuSteps/context.ts +0 -25
  215. package/components/QiuSteps/index.vue +0 -84
  216. package/components/QiuSwitch/index.vue +0 -145
  217. package/components/QiuTabBar/index.vue +0 -218
  218. package/components/QiuTabBar/types.ts +0 -19
  219. package/components/QiuTabPane/index.vue +0 -82
  220. package/components/QiuTable/columns.ts +0 -16
  221. package/components/QiuTable/export.ts +0 -102
  222. package/components/QiuTable/index.ts +0 -24
  223. package/components/QiuTable/index.vue +0 -3503
  224. package/components/QiuTable/registry.ts +0 -75
  225. package/components/QiuTable/styles/table.scss +0 -1230
  226. package/components/QiuTable/types.ts +0 -413
  227. package/components/QiuTable/useArea.ts +0 -202
  228. package/components/QiuTable/useColumns.ts +0 -325
  229. package/components/QiuTable/useEdit.ts +0 -136
  230. package/components/QiuTable/useExtras.ts +0 -115
  231. package/components/QiuTable/useHistory.ts +0 -77
  232. package/components/QiuTable/useMerge.ts +0 -105
  233. package/components/QiuTable/useResize.ts +0 -86
  234. package/components/QiuTable/useScrollSync.ts +0 -152
  235. package/components/QiuTable/useVirtual.ts +0 -97
  236. package/components/QiuTable/utils.ts +0 -165
  237. package/components/QiuTableColumn/index.vue +0 -101
  238. package/components/QiuTag/index.vue +0 -143
  239. package/components/QiuText/index.vue +0 -99
  240. package/components/QiuTime/index.vue +0 -548
  241. package/components/QiuTimeAgo/index.vue +0 -103
  242. package/components/QiuTimeline/index.vue +0 -54
  243. package/components/QiuTimelineItem/index.vue +0 -140
  244. package/components/QiuTips/index.vue +0 -323
  245. package/components/QiuTooltip/index.vue +0 -237
  246. package/components/QiuTransfer/index.vue +0 -277
  247. package/components/QiuTree/QiuTreeNode.vue +0 -146
  248. package/components/QiuTree/index.vue +0 -143
  249. package/components/QiuTree/types.ts +0 -30
  250. package/components/QiuTreeSelect/index.vue +0 -259
  251. package/components/QiuTrend/index.vue +0 -92
  252. package/components/QiuUpload/index.vue +0 -628
  253. package/components/QiuUploadCrop/index.vue +0 -1267
  254. package/components/QiuWatermark/index.vue +0 -121
  255. package/components/useBodyScrollLock.ts +0 -28
  256. package/dist/components/QiuBadge/index.d.ts +0 -18
  257. package/dist/components/QiuBadge/utils/pca-code.json.d.ts +0 -3
  258. package/dist/components/QiuLoading/index.d.ts +0 -26
  259. package/dist/components/QiuMsg/index.d.ts +0 -30
  260. package/dist/components/QiuNotification/index.d.ts +0 -30
  261. package/dist/components/QiuNotification/types.d.ts +0 -12
  262. package/dist/components/QiuRow/types.d.ts +0 -4
  263. package/dist/components/QiuTable/index.d.ts +0 -3
  264. package/dist/components/QiuTable/registry.d.ts +0 -39
  265. package/dist/components/QiuTable/useEdit.d.ts +0 -36
  266. package/dist/components/QiuTree/types.d.ts +0 -13
  267. package/dist/src/bridge/@qiu/plugins/shortcuts.d.ts +0 -2
  268. package/plugins/qiu.ts +0 -83
  269. package/plugins/shortcuts.ts +0 -69
  270. package/src/bridge/@/api/media.ts +0 -8
  271. package/src/bridge/@/api/notice.ts +0 -5
  272. package/src/bridge/@/config/index.ts +0 -38
  273. package/src/bridge/@/config/media.config.ts +0 -37
  274. package/src/bridge/@/config/security.config.ts +0 -8
  275. package/src/bridge/@/i18n/index.ts +0 -6
  276. package/src/bridge/@/store/modules/bing.ts +0 -9
  277. package/src/bridge/@/store/modules/errorLog.ts +0 -9
  278. package/src/bridge/@/store/modules/media.ts +0 -10
  279. package/src/bridge/@/store/modules/routes.ts +0 -10
  280. package/src/bridge/@/store/modules/settings.ts +0 -9
  281. package/src/bridge/@/store/modules/tabs.ts +0 -9
  282. package/src/bridge/@/store/modules/user.ts +0 -9
  283. package/src/bridge/@/utils/convertToCamelCase.ts +0 -11
  284. package/src/bridge/@/utils/index.ts +0 -9
  285. package/src/bridge/@/utils/pageTitle.ts +0 -4
  286. package/src/bridge/@/utils/routes.ts +0 -14
  287. package/src/bridge/@/utils/validate.ts +0 -17
  288. package/src/bridge/@qiu/plugins/shortcuts.ts +0 -3
  289. package/src/i18n.ts +0 -8
  290. package/src/icons/qiu-logo.svg +0 -1
  291. package/styles/dark.scss +0 -194
  292. package/styles/normalize.css +0 -349
  293. package/styles/plain.scss +0 -423
  294. package/styles/qiu-tokens.scss +0 -40
  295. package/styles/qiu.scss +0 -1149
  296. package/styles/technology.scss +0 -452
  297. package/styles/var.scss +0 -382
  298. package/styles/variables.scss +0 -77
  299. /package/dist/components/{QiuAnchorLink → FouAnchorLink}/index.vue.d.ts +0 -0
  300. /package/dist/components/{QiuBadge → FouBadge}/api/index.d.ts +0 -0
  301. /package/dist/components/{QiuBadge → FouBadge}/components/BadgeImagePickerDialog.vue.d.ts +0 -0
  302. /package/dist/components/{QiuBadge → FouBadge}/components/BadgeLibraryManagerDialog.vue.d.ts +0 -0
  303. /package/dist/components/{QiuBadge → FouBadge}/components/BadgeLibraryPanel.vue.d.ts +0 -0
  304. /package/dist/components/{QiuBadge → FouBadge}/shared/assetUrl.d.ts +0 -0
  305. /package/dist/components/{QiuBadge → FouBadge}/utils/chinaAreaData.d.ts +0 -0
  306. /package/dist/components/{QiuBadge → FouBadge}/utils/hostRegion.d.ts +0 -0
  307. /package/dist/components/{QiuBadge → FouBadge}/utils/pdfFromElement.d.ts +0 -0
  308. /package/dist/components/{QiuBadge → FouBadge}/views/BadgeLibraryView.vue.d.ts +0 -0
  309. /package/dist/components/{QiuBadge → FouBadge}/views/BadgeManageView.vue.d.ts +0 -0
  310. /package/dist/components/{QiuBadge → FouBadge}/views/BadgeTemplateListView.vue.d.ts +0 -0
  311. /package/dist/components/{QiuBadge → FouBadge}/views/DeskLabelTemplateListView.vue.d.ts +0 -0
  312. /package/dist/components/{QiuBadge → FouBadge}/views/DeskLabelView.vue.d.ts +0 -0
  313. /package/dist/components/{QiuCanvasKit/QiuCanvasRenderer.vue.d.ts → FouCanvasKit/FouCanvasRenderer.vue.d.ts} +0 -0
  314. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/assetUrl.d.ts +0 -0
  315. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/export/html.d.ts +0 -0
  316. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/export/pdf.d.ts +0 -0
  317. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/export/png.d.ts +0 -0
  318. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/modules/badgeCompat.d.ts +0 -0
  319. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/modules/dataRegistry.d.ts +0 -0
  320. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/modules/merge.d.ts +0 -0
  321. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/presets/badge.d.ts +0 -0
  322. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/presets/banner.d.ts +0 -0
  323. /package/dist/components/{QiuCarouselItem → FouCarouselItem}/index.vue.d.ts +0 -0
  324. /package/dist/components/{QiuCheckbox/QiuCheckboxGroup.vue.d.ts → FouCheckbox/FouCheckboxGroup.vue.d.ts} +0 -0
  325. /package/dist/components/{QiuCheckbox → FouCheckbox}/index.vue.d.ts +0 -0
  326. /package/dist/components/{QiuCode → FouCode}/index.vue.d.ts +0 -0
  327. /package/dist/components/{QiuCollapseItem → FouCollapseItem}/index.vue.d.ts +0 -0
  328. /package/dist/components/{QiuColorField → FouColorField}/index.vue.d.ts +0 -0
  329. /package/dist/components/{QiuColorPicker → FouColorPicker}/index.vue.d.ts +0 -0
  330. /package/dist/components/{QiuCombobox → FouCombobox}/index.vue.d.ts +0 -0
  331. /package/dist/components/{QiuContextMenu → FouContextMenu}/index.vue.d.ts +0 -0
  332. /package/dist/components/{QiuDescriptionsItem → FouDescriptionsItem}/index.vue.d.ts +0 -0
  333. /package/dist/components/{QiuDigitalCard → FouDigitalCard}/index.vue.d.ts +0 -0
  334. /package/dist/components/{QiuDropdown/QiuDropdownItem.vue.d.ts → FouDropdown/FouDropdownItem.vue.d.ts} +0 -0
  335. /package/dist/components/{QiuDropdown/QiuDropdownMenu.vue.d.ts → FouDropdown/FouDropdownMenu.vue.d.ts} +0 -0
  336. /package/dist/components/{QiuDropdown → FouDropdown}/index.vue.d.ts +0 -0
  337. /package/dist/components/{QiuHoverCard → FouHoverCard}/index.vue.d.ts +0 -0
  338. /package/dist/components/{QiuIcon → FouIcon}/index.vue.d.ts +0 -0
  339. /package/dist/components/{QiuIconPicker → FouIconPicker}/iconify.libraries.d.ts +0 -0
  340. /package/dist/components/{QiuIconPicker → FouIconPicker}/icons.catalog.d.ts +0 -0
  341. /package/dist/components/{QiuInput → FouInput}/index.vue.d.ts +0 -0
  342. /package/dist/components/{QiuInputNumber → FouInputNumber}/index.vue.d.ts +0 -0
  343. /package/dist/components/{QiuInputOtp → FouInputOtp}/index.vue.d.ts +0 -0
  344. /package/dist/components/{QiuKbd → FouKbd}/index.vue.d.ts +0 -0
  345. /package/dist/components/{QiuLayoutContainer → FouLayoutContainer}/index.vue.d.ts +0 -0
  346. /package/dist/components/{QiuLinkPreview → FouLinkPreview}/index.vue.d.ts +0 -0
  347. /package/dist/components/{QiuMention → FouMention}/index.vue.d.ts +0 -0
  348. /package/dist/components/{QiuMenu/QiuMenuRoot.vue.d.ts → FouMenu/FouMenuRoot.vue.d.ts} +0 -0
  349. /package/dist/components/{QiuMenuNav/QiuMenuNavItem.vue.d.ts → FouMenuNav/FouMenuNavItem.vue.d.ts} +0 -0
  350. /package/dist/components/{QiuMenuNav/QiuMenuNavSub.vue.d.ts → FouMenuNav/FouMenuNavSub.vue.d.ts} +0 -0
  351. /package/dist/components/{QiuMenuNav → FouMenuNav}/index.vue.d.ts +0 -0
  352. /package/dist/components/{QiuPageMain → FouPageMain}/index.vue.d.ts +0 -0
  353. /package/dist/components/{QiuPagination → FouPagination}/index.vue.d.ts +0 -0
  354. /package/dist/components/{QiuPasswordStrength → FouPasswordStrength}/index.vue.d.ts +0 -0
  355. /package/dist/components/{QiuQrcode → FouQrcode}/index.vue.d.ts +0 -0
  356. /package/dist/components/{QiuRadio/QiuRadioGroup.vue.d.ts → FouRadio/FouRadioGroup.vue.d.ts} +0 -0
  357. /package/dist/components/{QiuSearchBar → FouSearchBar}/index.vue.d.ts +0 -0
  358. /package/dist/components/{QiuSelect/QiuOption.vue.d.ts → FouSelect/FouOption.vue.d.ts} +0 -0
  359. /package/dist/components/{QiuSparkline → FouSparkline}/index.vue.d.ts +0 -0
  360. /package/dist/components/{QiuSwitch → FouSwitch}/index.vue.d.ts +0 -0
  361. /package/dist/components/{QiuTabPane → FouTabPane}/index.vue.d.ts +0 -0
  362. /package/dist/components/{QiuTable → FouTable}/columns.d.ts +0 -0
  363. /package/dist/components/{QiuTable → FouTable}/useExtras.d.ts +0 -0
  364. /package/dist/components/{QiuTable → FouTable}/useResize.d.ts +0 -0
  365. /package/dist/components/{QiuTable → FouTable}/useVirtual.d.ts +0 -0
  366. /package/dist/components/{QiuTime → FouTime}/index.vue.d.ts +0 -0
  367. /package/dist/components/{QiuTimeAgo → FouTimeAgo}/index.vue.d.ts +0 -0
  368. /package/dist/components/{QiuTimelineItem → FouTimelineItem}/index.vue.d.ts +0 -0
  369. /package/dist/components/{QiuTooltip → FouTooltip}/index.vue.d.ts +0 -0
  370. /package/dist/components/{QiuTrend → FouTrend}/index.vue.d.ts +0 -0
  371. /package/dist/components/{QiuUploadCrop → FouUploadCrop}/index.vue.d.ts +0 -0
@@ -1,277 +0,0 @@
1
- <template>
2
- <div class="qiu-transfer">
3
- <div class="qiu-transfer__panel">
4
- <div class="qiu-transfer__header">
5
- <qiu-checkbox
6
- :model-value="leftAllChecked"
7
- :indeterminate="leftIndeterminate"
8
- @change="toggleLeftAll"
9
- />
10
- <span class="qiu-transfer__title">{{ titles[0] }}</span>
11
- <span class="qiu-transfer__count">{{ leftChecked.length }}/{{ leftData.length }}</span>
12
- </div>
13
- <div v-if="filterable" class="qiu-transfer__filter">
14
- <qiu-input
15
- v-model="leftFilter"
16
- :placeholder="filterPlaceholder"
17
- prefix-icon="search-line"
18
- />
19
- </div>
20
- <div class="qiu-transfer__body">
21
- <qiu-checkbox-group v-model="leftChecked">
22
- <div
23
- v-for="item in filteredLeft"
24
- :key="String(item.key)"
25
- class="qiu-transfer__item"
26
- >
27
- <qiu-checkbox :label="item.key" :disabled="item.disabled">
28
- {{ item.label }}
29
- </qiu-checkbox>
30
- </div>
31
- </qiu-checkbox-group>
32
- <div v-if="!filteredLeft.length" class="qiu-transfer__empty">无数据</div>
33
- </div>
34
- </div>
35
-
36
- <div class="qiu-transfer__buttons">
37
- <qiu-button
38
- type="primary"
39
- :disabled="!leftChecked.length"
40
- @click="moveToRight"
41
- >
42
- {{ buttonTexts[1] }} ›
43
- </qiu-button>
44
- <qiu-button
45
- :disabled="!rightChecked.length"
46
- @click="moveToLeft"
47
- >
48
- ‹ {{ buttonTexts[0] }}
49
- </qiu-button>
50
- </div>
51
-
52
- <div class="qiu-transfer__panel">
53
- <div class="qiu-transfer__header">
54
- <qiu-checkbox
55
- :model-value="rightAllChecked"
56
- :indeterminate="rightIndeterminate"
57
- @change="toggleRightAll"
58
- />
59
- <span class="qiu-transfer__title">{{ titles[1] }}</span>
60
- <span class="qiu-transfer__count">{{ rightChecked.length }}/{{ rightData.length }}</span>
61
- </div>
62
- <div v-if="filterable" class="qiu-transfer__filter">
63
- <qiu-input
64
- v-model="rightFilter"
65
- :placeholder="filterPlaceholder"
66
- prefix-icon="search-line"
67
- />
68
- </div>
69
- <div class="qiu-transfer__body">
70
- <qiu-checkbox-group v-model="rightChecked">
71
- <div
72
- v-for="item in filteredRight"
73
- :key="String(item.key)"
74
- class="qiu-transfer__item"
75
- >
76
- <qiu-checkbox :label="item.key" :disabled="item.disabled">
77
- {{ item.label }}
78
- </qiu-checkbox>
79
- </div>
80
- </qiu-checkbox-group>
81
- <div v-if="!filteredRight.length" class="qiu-transfer__empty">无数据</div>
82
- </div>
83
- </div>
84
- </div>
85
- </template>
86
-
87
- <script lang="ts" setup>
88
- export interface QiuTransferItem {
89
- key: string | number
90
- label: string
91
- disabled?: boolean
92
- }
93
-
94
- defineOptions({ name: 'QiuTransfer' })
95
-
96
- const props = withDefaults(
97
- defineProps<{
98
- modelValue?: (string | number)[]
99
- data?: QiuTransferItem[]
100
- titles?: [string, string]
101
- filterable?: boolean
102
- filterPlaceholder?: string
103
- buttonTexts?: [string, string]
104
- }>(),
105
- {
106
- modelValue: () => [],
107
- data: () => [],
108
- titles: () => ['列表 1', '列表 2'],
109
- filterable: false,
110
- filterPlaceholder: '请输入搜索内容',
111
- buttonTexts: () => ['移除', '添加'],
112
- }
113
- )
114
-
115
- const emit = defineEmits<{
116
- 'update:modelValue': [(string | number)[]]
117
- change: [(string | number)[]]
118
- }>()
119
-
120
- const leftChecked = ref<(string | number)[]>([])
121
- const rightChecked = ref<(string | number)[]>([])
122
- const leftFilter = ref('')
123
- const rightFilter = ref('')
124
-
125
- const leftData = computed(() =>
126
- props.data.filter((item) => !props.modelValue.includes(item.key))
127
- )
128
-
129
- const rightData = computed(() =>
130
- props.data.filter((item) => props.modelValue.includes(item.key))
131
- )
132
-
133
- const matchFilter = (item: QiuTransferItem, keyword: string) => {
134
- if (!keyword.trim()) return true
135
- return item.label.toLowerCase().includes(keyword.trim().toLowerCase())
136
- }
137
-
138
- const filteredLeft = computed(() => leftData.value.filter((item) => matchFilter(item, leftFilter.value)))
139
- const filteredRight = computed(() => rightData.value.filter((item) => matchFilter(item, rightFilter.value)))
140
-
141
- const selectableLeftKeys = computed(() =>
142
- filteredLeft.value.filter((item) => !item.disabled).map((item) => item.key)
143
- )
144
-
145
- const selectableRightKeys = computed(() =>
146
- filteredRight.value.filter((item) => !item.disabled).map((item) => item.key)
147
- )
148
-
149
- const leftAllChecked = computed(
150
- () =>
151
- selectableLeftKeys.value.length > 0 &&
152
- selectableLeftKeys.value.every((key) => leftChecked.value.includes(key))
153
- )
154
-
155
- const leftIndeterminate = computed(
156
- () =>
157
- leftChecked.value.some((key) => selectableLeftKeys.value.includes(key)) && !leftAllChecked.value
158
- )
159
-
160
- const rightAllChecked = computed(
161
- () =>
162
- selectableRightKeys.value.length > 0 &&
163
- selectableRightKeys.value.every((key) => rightChecked.value.includes(key))
164
- )
165
-
166
- const rightIndeterminate = computed(
167
- () =>
168
- rightChecked.value.some((key) => selectableRightKeys.value.includes(key)) && !rightAllChecked.value
169
- )
170
-
171
- const updateValue = (next: (string | number)[]) => {
172
- emit('update:modelValue', next)
173
- emit('change', next)
174
- }
175
-
176
- const toggleLeftAll = (checked: boolean | string | number) => {
177
- leftChecked.value = checked ? [...selectableLeftKeys.value] : []
178
- }
179
-
180
- const toggleRightAll = (checked: boolean | string | number) => {
181
- rightChecked.value = checked ? [...selectableRightKeys.value] : []
182
- }
183
-
184
- const moveToRight = () => {
185
- const next = [...props.modelValue, ...leftChecked.value]
186
- updateValue(next)
187
- leftChecked.value = []
188
- }
189
-
190
- const moveToLeft = () => {
191
- const removeSet = new Set(rightChecked.value)
192
- const next = props.modelValue.filter((key) => !removeSet.has(key))
193
- updateValue(next)
194
- rightChecked.value = []
195
- }
196
-
197
- watch(
198
- () => props.modelValue,
199
- () => {
200
- const selected = new Set(props.modelValue)
201
- leftChecked.value = leftChecked.value.filter((key) => !selected.has(key))
202
- rightChecked.value = rightChecked.value.filter((key) => selected.has(key))
203
- }
204
- )
205
- </script>
206
-
207
- <style lang="scss" scoped>
208
- .qiu-transfer {
209
- display: inline-flex;
210
- gap: 16px;
211
- align-items: center;
212
- }
213
-
214
- .qiu-transfer__panel {
215
- display: flex;
216
- flex-direction: column;
217
- width: 240px;
218
- overflow: hidden;
219
- border: 1px solid var(--qiu-border-color, var(--qiu-border-color, #dcdfe6));
220
- border-radius: 6px;
221
- }
222
-
223
- .qiu-transfer__header {
224
- display: flex;
225
- gap: 8px;
226
- align-items: center;
227
- height: 40px;
228
- padding: 0 12px;
229
- background: var(--qiu-fill-color-light, var(--qiu-fill-color-light, #f5f7fa));
230
- border-bottom: 1px solid var(--qiu-border-color-lighter, var(--qiu-border-color-lighter, #ebeef5));
231
- }
232
-
233
- .qiu-transfer__title {
234
- flex: 1;
235
- font-size: 14px;
236
- font-weight: 500;
237
- }
238
-
239
- .qiu-transfer__count {
240
- font-size: 12px;
241
- color: var(--qiu-text-color-secondary, var(--qiu-text-color-secondary, #909399));
242
- }
243
-
244
- .qiu-transfer__filter {
245
- padding: 8px 12px;
246
- border-bottom: 1px solid var(--qiu-border-color-lighter, var(--qiu-border-color-lighter, #ebeef5));
247
- }
248
-
249
- .qiu-transfer__body {
250
- height: 240px;
251
- padding: 6px 0;
252
- overflow: auto;
253
- }
254
-
255
- .qiu-transfer__item {
256
- padding: 0 12px;
257
-
258
- :deep(.qiu-checkbox) {
259
- display: flex;
260
- width: 100%;
261
- margin-right: 0;
262
- }
263
- }
264
-
265
- .qiu-transfer__empty {
266
- padding: 24px 12px;
267
- font-size: 13px;
268
- color: var(--qiu-text-color-secondary, var(--qiu-text-color-secondary, #909399));
269
- text-align: center;
270
- }
271
-
272
- .qiu-transfer__buttons {
273
- display: flex;
274
- flex-direction: column;
275
- gap: 8px;
276
- }
277
- </style>
@@ -1,146 +0,0 @@
1
- <template>
2
- <li class="qiu-tree-node" role="treeitem">
3
- <div
4
- class="qiu-tree-node__content"
5
- :class="{
6
- 'is-current': isCurrent,
7
- 'is-expanded': expanded,
8
- }"
9
- :style="{ paddingLeft: `${level * 18 + 8}px` }"
10
- @click="emit('node-click', node)"
11
- >
12
- <button
13
- v-if="hasChildren"
14
- type="button"
15
- class="qiu-tree-node__expand"
16
- @click.stop="emit('toggle', nodeKey)"
17
- >
18
- {{ expanded ? '▾' : '▸' }}
19
- </button>
20
- <span v-else class="qiu-tree-node__expand is-leaf" />
21
- <span class="qiu-tree-node__label">{{ label }}</span>
22
- </div>
23
- <ul v-if="hasChildren && expanded" class="qiu-tree-node__children">
24
- <QiuTreeNode
25
- v-for="child in visibleChildren"
26
- :key="String(childKey(child))"
27
- :node="child"
28
- :level="level + 1"
29
- :props-config="propsConfig"
30
- :expanded-keys="expandedKeys"
31
- :current-key="currentKey"
32
- :filter-text="filterText"
33
- :filter-node-method="filterNodeMethod"
34
- :highlight-current="highlightCurrent"
35
- @toggle="emit('toggle', $event)"
36
- @node-click="emit('node-click', $event)"
37
- />
38
- </ul>
39
- </li>
40
- </template>
41
-
42
- <script lang="ts" setup>
43
- import type { QiuTreeNodeData, QiuTreePropsConfig } from './types'
44
- import {
45
- getNodeChildren,
46
- getNodeKey,
47
- getNodeLabel,
48
- } from './types'
49
-
50
- defineOptions({ name: 'QiuTreeNode' })
51
-
52
- const props = defineProps<{
53
- node: QiuTreeNodeData
54
- level: number
55
- propsConfig: QiuTreePropsConfig
56
- expandedKeys: Set<string | number>
57
- currentKey: string | number | null
58
- filterText: string
59
- filterNodeMethod?: (value: string, data: QiuTreeNodeData, node: QiuTreeNodeData) => boolean
60
- highlightCurrent: boolean
61
- }>()
62
-
63
- const emit = defineEmits<{
64
- toggle: [key: string | number]
65
- 'node-click': [data: QiuTreeNodeData]
66
- }>()
67
-
68
- const nodeKey = computed(() => getNodeKey(props.node, props.propsConfig))
69
- const label = computed(() => getNodeLabel(props.node, props.propsConfig))
70
- const children = computed(() => getNodeChildren(props.node, props.propsConfig))
71
- const hasChildren = computed(() => children.value.length > 0)
72
- const expanded = computed(() => props.expandedKeys.has(nodeKey.value))
73
- const isCurrent = computed(() => props.highlightCurrent && props.currentKey === nodeKey.value)
74
-
75
- const childKey = (node: QiuTreeNodeData) => getNodeKey(node, props.propsConfig)
76
-
77
- const matchesFilter = (node: QiuTreeNodeData): boolean => {
78
- if (!props.filterText) return true
79
- if (props.filterNodeMethod) return props.filterNodeMethod(props.filterText, node, node)
80
- return getNodeLabel(node, props.propsConfig).toLowerCase().includes(props.filterText.toLowerCase())
81
- }
82
-
83
- const nodeVisible = (node: QiuTreeNodeData): boolean => {
84
- if (matchesFilter(node)) return true
85
- return getNodeChildren(node, props.propsConfig).some((child) => nodeVisible(child))
86
- }
87
-
88
- const visibleChildren = computed(() => children.value.filter((child) => nodeVisible(child)))
89
- </script>
90
-
91
- <style lang="scss" scoped>
92
- .qiu-tree-node {
93
- list-style: none;
94
-
95
- &__children {
96
- padding: 0;
97
- margin: 0;
98
- list-style: none;
99
- }
100
-
101
- &__content {
102
- display: flex;
103
- gap: 4px;
104
- align-items: center;
105
- height: 32px;
106
- cursor: pointer;
107
- border-radius: var(--qiu-border-radius-base, var(--qiu-border-radius-base, 4px));
108
- transition: background 0.15s ease;
109
-
110
- &:hover {
111
- background: var(--qiu-fill-color-light, var(--qiu-fill-color-light, #f5f7fa));
112
- }
113
-
114
- &.is-current {
115
- color: var(--qiu-color-primary, var(--qiu-color-primary));
116
- background: var(--qiu-color-primary-light-9, var(--qiu-color-primary-light-9, #ecf5ff));
117
- }
118
- }
119
-
120
- &__expand {
121
- display: inline-flex;
122
- flex-shrink: 0;
123
- align-items: center;
124
- justify-content: center;
125
- width: 18px;
126
- height: 18px;
127
- padding: 0;
128
- font-size: 12px;
129
- color: var(--qiu-text-color-secondary, var(--qiu-text-color-secondary, #909399));
130
- cursor: pointer;
131
- background: transparent;
132
- border: 0;
133
- outline: none;
134
-
135
- &.is-leaf {
136
- visibility: hidden;
137
- }
138
- }
139
-
140
- &__label {
141
- overflow: hidden;
142
- text-overflow: ellipsis;
143
- white-space: nowrap;
144
- }
145
- }
146
- </style>
@@ -1,143 +0,0 @@
1
- <template>
2
- <div class="qiu-tree" role="tree">
3
- <ul v-if="visibleNodes.length" class="qiu-tree__list">
4
- <QiuTreeNode
5
- v-for="node in visibleNodes"
6
- :key="String(getNodeKey(node, resolvedProps))"
7
- :node="node"
8
- :level="0"
9
- :props-config="resolvedProps"
10
- :expanded-keys="expandedKeys"
11
- :current-key="currentKey"
12
- :filter-text="filterText"
13
- :filter-node-method="filterNodeMethod"
14
- :highlight-current="highlightCurrent"
15
- @toggle="toggleExpand"
16
- @node-click="onNodeClick"
17
- />
18
- </ul>
19
- <div v-else class="qiu-tree__empty">无数据</div>
20
- </div>
21
- </template>
22
-
23
- <script lang="ts" setup>
24
- import QiuTreeNode from './QiuTreeNode.vue'
25
- import type { QiuTreeNodeData, QiuTreePropsConfig } from './types'
26
- import {
27
- defaultTreeProps,
28
- getNodeChildren,
29
- getNodeKey,
30
- getNodeLabel,
31
- } from './types'
32
-
33
- defineOptions({ name: 'QiuTree' })
34
-
35
- const props = withDefaults(
36
- defineProps<{
37
- data?: QiuTreeNodeData[]
38
- props?: QiuTreePropsConfig
39
- highlightCurrent?: boolean
40
- defaultExpandAll?: boolean
41
- defaultExpandedKeys?: (string | number)[]
42
- filterNodeMethod?: (value: string, data: QiuTreeNodeData, node: QiuTreeNodeData) => boolean
43
- }>(),
44
- {
45
- data: () => [],
46
- props: () => ({}),
47
- highlightCurrent: false,
48
- defaultExpandAll: false,
49
- defaultExpandedKeys: () => [],
50
- filterNodeMethod: undefined,
51
- }
52
- )
53
-
54
- const emit = defineEmits<{
55
- 'node-click': [data: QiuTreeNodeData, node: QiuTreeNodeData]
56
- }>()
57
-
58
- const currentKey = ref<string | number | null>(null)
59
- const expandedKeys = ref<Set<string | number>>(new Set())
60
- const filterText = ref('')
61
-
62
- const resolvedProps = computed(() => ({
63
- ...defaultTreeProps,
64
- ...props.props,
65
- }))
66
-
67
- const initExpanded = () => {
68
- if (props.defaultExpandAll) {
69
- const keys = new Set<string | number>()
70
- const walk = (nodes: QiuTreeNodeData[]) => {
71
- nodes.forEach((n) => {
72
- keys.add(getNodeKey(n, resolvedProps.value))
73
- walk(getNodeChildren(n, resolvedProps.value))
74
- })
75
- }
76
- walk(props.data)
77
- expandedKeys.value = keys
78
- return
79
- }
80
- if (props.defaultExpandedKeys?.length) {
81
- expandedKeys.value = new Set(props.defaultExpandedKeys)
82
- }
83
- }
84
-
85
- watch(() => props.data, initExpanded, { immediate: true, deep: true })
86
-
87
- const matchesFilter = (node: QiuTreeNodeData): boolean => {
88
- if (!filterText.value) return true
89
- if (props.filterNodeMethod) return props.filterNodeMethod(filterText.value, node, node)
90
- return getNodeLabel(node, resolvedProps.value).toLowerCase().includes(filterText.value.toLowerCase())
91
- }
92
-
93
- const nodeVisible = (node: QiuTreeNodeData): boolean => {
94
- if (matchesFilter(node)) return true
95
- return getNodeChildren(node, resolvedProps.value).some((child) => nodeVisible(child))
96
- }
97
-
98
- const visibleNodes = computed(() => props.data.filter((n) => nodeVisible(n)))
99
-
100
- const toggleExpand = (key: string | number) => {
101
- const next = new Set(expandedKeys.value)
102
- if (next.has(key)) next.delete(key)
103
- else next.add(key)
104
- expandedKeys.value = next
105
- }
106
-
107
- const onNodeClick = (data: QiuTreeNodeData) => {
108
- if (props.highlightCurrent) {
109
- currentKey.value = getNodeKey(data, resolvedProps.value)
110
- }
111
- emit('node-click', data, data)
112
- }
113
-
114
- const filter = (val: string) => {
115
- filterText.value = val
116
- }
117
-
118
- const setCurrentKey = (key: string | number | null) => {
119
- currentKey.value = key
120
- }
121
-
122
- defineExpose({ filter, setCurrentKey })
123
- </script>
124
-
125
- <style lang="scss" scoped>
126
- .qiu-tree {
127
- font-size: 14px;
128
- color: var(--qiu-text-color-regular, var(--qiu-text-color-regular, #606266));
129
-
130
- &__list {
131
- padding: 0;
132
- margin: 0;
133
- list-style: none;
134
- }
135
-
136
- &__empty {
137
- padding: 12px;
138
- font-size: 13px;
139
- color: var(--qiu-text-color-secondary, var(--qiu-text-color-secondary, #909399));
140
- text-align: center;
141
- }
142
- }
143
- </style>
@@ -1,30 +0,0 @@
1
- export interface QiuTreeNodeData {
2
- [key: string]: unknown
3
- children?: QiuTreeNodeData[]
4
- }
5
-
6
- export interface QiuTreePropsConfig {
7
- label?: string
8
- children?: string
9
- value?: string
10
- }
11
-
12
- export const defaultTreeProps: Required<QiuTreePropsConfig> = {
13
- label: 'label',
14
- children: 'children',
15
- value: 'value',
16
- }
17
-
18
- export function getNodeKey(node: QiuTreeNodeData, config: QiuTreePropsConfig) {
19
- const val = node[config.value ?? 'value']
20
- return (val ?? node[config.label ?? 'label']) as string | number
21
- }
22
-
23
- export function getNodeLabel(node: QiuTreeNodeData, config: QiuTreePropsConfig) {
24
- return String(node[config.label ?? 'label'] ?? '')
25
- }
26
-
27
- export function getNodeChildren(node: QiuTreeNodeData, config: QiuTreePropsConfig) {
28
- const children = node[config.children ?? 'children']
29
- return Array.isArray(children) ? (children as QiuTreeNodeData[]) : []
30
- }