@guoyg578/k-ui 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/README.md +75 -29
  2. package/dist/components/KAffix.vue.d.ts +17 -0
  3. package/dist/components/KAffix.vue.js +7 -0
  4. package/dist/components/KAffix.vue_vue_type_script_setup_true_lang.js +18 -0
  5. package/dist/components/KAlert.vue.d.ts +1 -1
  6. package/dist/components/{KAlert.js → KAlert.vue.js} +2 -2
  7. package/dist/components/KAlert.vue_vue_type_script_setup_true_lang.js +35 -32
  8. package/dist/components/KAnchor.vue.d.ts +14 -0
  9. package/dist/components/KAnchor.vue.js +7 -0
  10. package/dist/components/KAnchor.vue_vue_type_script_setup_true_lang.js +40 -0
  11. package/dist/components/KAutoComplete.vue.d.ts +26 -0
  12. package/dist/components/KAutoComplete.vue.js +8 -0
  13. package/dist/components/KAutoComplete.vue_vue_type_script_setup_true_lang.js +58 -0
  14. package/dist/components/{KAvatar.js → KAvatar.vue.js} +1 -1
  15. package/dist/components/{KAvatarGroup.js → KAvatarGroup.vue.js} +1 -1
  16. package/dist/components/KBackTop.vue.d.ts +24 -0
  17. package/dist/components/KBackTop.vue.js +7 -0
  18. package/dist/components/KBackTop.vue_vue_type_script_setup_true_lang.js +56 -0
  19. package/dist/components/KBadge.vue.d.ts +31 -0
  20. package/dist/components/KBadge.vue.js +7 -0
  21. package/dist/components/KBadge.vue_vue_type_script_setup_true_lang.js +48 -0
  22. package/dist/components/KBreadcrumb.vue.d.ts +30 -1
  23. package/dist/components/{KBreadcrumb.js → KBreadcrumb.vue.js} +2 -2
  24. package/dist/components/KBreadcrumb.vue_vue_type_script_setup_true_lang.js +36 -21
  25. package/dist/components/KButton.vue.d.ts +17 -2
  26. package/dist/components/{KButton.js → KButton.vue.js} +2 -2
  27. package/dist/components/KButton.vue_vue_type_script_setup_true_lang.js +51 -17
  28. package/dist/components/KButtonGroup.vue.d.ts +18 -0
  29. package/dist/components/KButtonGroup.vue.js +6 -0
  30. package/dist/components/KButtonGroup.vue_vue_type_script_setup_true_lang.js +14 -0
  31. package/dist/components/KCalendar.vue.d.ts +33 -0
  32. package/dist/components/KCalendar.vue.js +7 -0
  33. package/dist/components/KCalendar.vue_vue_type_script_setup_true_lang.js +78 -0
  34. package/dist/components/KCard.vue.d.ts +5 -3
  35. package/dist/components/{KCard.js → KCard.vue.js} +2 -2
  36. package/dist/components/KCard.vue_vue_type_script_setup_true_lang.js +2 -2
  37. package/dist/components/{KCarousel.js → KCarousel.vue.js} +1 -1
  38. package/dist/components/KCascader.vue.d.ts +29 -0
  39. package/dist/components/KCascader.vue.js +8 -0
  40. package/dist/components/KCascader.vue_vue_type_script_setup_true_lang.js +114 -0
  41. package/dist/components/{KCheckbox.js → KCheckbox.vue.js} +1 -1
  42. package/dist/components/{KCheckboxGroup.js → KCheckboxGroup.vue.js} +1 -1
  43. package/dist/components/KCode.vue.d.ts +27 -0
  44. package/dist/components/KCode.vue.js +7 -0
  45. package/dist/components/KCode.vue_vue_type_script_setup_true_lang.js +42 -0
  46. package/dist/components/KCollapse.vue.d.ts +25 -0
  47. package/dist/components/KCollapse.vue.js +7 -0
  48. package/dist/components/KCollapse.vue_vue_type_script_setup_true_lang.js +35 -0
  49. package/dist/components/KCollapseItem.vue.d.ts +22 -0
  50. package/dist/components/KCollapseItem.vue.js +7 -0
  51. package/dist/components/KCollapseItem.vue_vue_type_script_setup_true_lang.js +46 -0
  52. package/dist/components/KColorPicker.vue.d.ts +40 -0
  53. package/dist/components/KColorPicker.vue.js +7 -0
  54. package/dist/components/KColorPicker.vue_vue_type_script_setup_true_lang.js +96 -0
  55. package/dist/components/{KCombobox.js → KCombobox.vue.js} +2 -2
  56. package/dist/components/{KCommandPalette.js → KCommandPalette.vue.js} +1 -1
  57. package/dist/components/KConfigProvider.vue.d.ts +26 -0
  58. package/dist/components/KConfigProvider.vue.js +5 -0
  59. package/dist/components/KConfigProvider.vue_vue_type_script_setup_true_lang.js +17 -0
  60. package/dist/components/{KConfirmDialog.js → KConfirmDialog.vue.js} +1 -1
  61. package/dist/components/KCountdown.vue.d.ts +15 -0
  62. package/dist/components/KCountdown.vue.js +7 -0
  63. package/dist/components/KCountdown.vue_vue_type_script_setup_true_lang.js +36 -0
  64. package/dist/components/KDataTable.vue.d.ts +33 -10
  65. package/dist/components/{KDataTable.js → KDataTable.vue.js} +2 -2
  66. package/dist/components/KDataTable.vue_vue_type_script_setup_true_lang.js +128 -30
  67. package/dist/components/{KDatePicker.js → KDatePicker.vue.js} +1 -1
  68. package/dist/components/KDatePicker.vue_vue_type_script_setup_true_lang.js +1 -1
  69. package/dist/components/KDescriptions.vue.d.ts +30 -0
  70. package/dist/components/KDescriptions.vue.js +6 -0
  71. package/dist/components/KDescriptions.vue_vue_type_script_setup_true_lang.js +30 -0
  72. package/dist/components/KDescriptionsItem.vue.d.ts +17 -0
  73. package/dist/components/KDescriptionsItem.vue.js +5 -0
  74. package/dist/components/KDescriptionsItem.vue_vue_type_script_setup_true_lang.js +17 -0
  75. package/dist/components/KDialog.vue.d.ts +1 -0
  76. package/dist/components/{KDialog.js → KDialog.vue.js} +2 -2
  77. package/dist/components/KDialog.vue_vue_type_script_setup_true_lang.js +45 -38
  78. package/dist/components/{KDiff.js → KDiff.vue.js} +1 -1
  79. package/dist/components/KDivider.vue.d.ts +21 -0
  80. package/dist/components/KDivider.vue.js +7 -0
  81. package/dist/components/KDivider.vue_vue_type_script_setup_true_lang.js +33 -0
  82. package/dist/components/KDrawer.vue.d.ts +7 -3
  83. package/dist/components/{KDrawer.js → KDrawer.vue.js} +2 -2
  84. package/dist/components/KDrawer.vue_vue_type_script_setup_true_lang.js +41 -29
  85. package/dist/components/KDropdown.vue.d.ts +8 -5
  86. package/dist/components/{KDropdown.js → KDropdown.vue.js} +2 -2
  87. package/dist/components/KDropdown.vue_vue_type_script_setup_true_lang.js +40 -38
  88. package/dist/components/KDynamicInput.vue.d.ts +33 -0
  89. package/dist/components/KDynamicInput.vue.js +7 -0
  90. package/dist/components/KDynamicInput.vue_vue_type_script_setup_true_lang.js +81 -0
  91. package/dist/components/KDynamicTags.vue.d.ts +20 -0
  92. package/dist/components/KDynamicTags.vue.js +7 -0
  93. package/dist/components/KDynamicTags.vue_vue_type_script_setup_true_lang.js +60 -0
  94. package/dist/components/KEmpty.vue.d.ts +8 -4
  95. package/dist/components/KEmpty.vue_vue_type_script_setup_true_lang.js +17 -14
  96. package/dist/components/KForm.vue.d.ts +12 -6
  97. package/dist/components/{KForm.js → KForm.vue.js} +2 -2
  98. package/dist/components/KForm.vue_vue_type_script_setup_true_lang.js +31 -15
  99. package/dist/components/KFormField.vue.d.ts +3 -2
  100. package/dist/components/{KFormField.js → KFormField.vue.js} +2 -2
  101. package/dist/components/KFormField.vue_vue_type_script_setup_true_lang.js +41 -28
  102. package/dist/components/KGrid.vue.d.ts +29 -0
  103. package/dist/components/KGrid.vue.js +7 -0
  104. package/dist/components/KGrid.vue_vue_type_script_setup_true_lang.js +33 -0
  105. package/dist/components/KGridItem.vue.d.ts +20 -0
  106. package/dist/components/KGridItem.vue.js +7 -0
  107. package/dist/components/KGridItem.vue_vue_type_script_setup_true_lang.js +18 -0
  108. package/dist/components/KIcon.vue.d.ts +22 -0
  109. package/dist/components/KIcon.vue.js +7 -0
  110. package/dist/components/KIcon.vue_vue_type_script_setup_true_lang.js +31 -0
  111. package/dist/components/KImage.vue.d.ts +3 -3
  112. package/dist/components/{KImage.js → KImage.vue.js} +1 -1
  113. package/dist/components/KImage.vue_vue_type_script_setup_true_lang.js +1 -1
  114. package/dist/components/{KImageViewer.js → KImageViewer.vue.js} +1 -1
  115. package/dist/components/KInput.vue.d.ts +11 -5
  116. package/dist/components/{KInput.js → KInput.vue.js} +2 -2
  117. package/dist/components/KInput.vue_vue_type_script_setup_true_lang.js +62 -38
  118. package/dist/components/KInputNumber.vue.d.ts +18 -4
  119. package/dist/components/{KInputNumber.js → KInputNumber.vue.js} +2 -2
  120. package/dist/components/KInputNumber.vue_vue_type_script_setup_true_lang.js +80 -62
  121. package/dist/components/KLayout.vue.d.ts +19 -0
  122. package/dist/components/KLayout.vue.js +7 -0
  123. package/dist/components/KLayout.vue_vue_type_script_setup_true_lang.js +14 -0
  124. package/dist/components/KLayoutContent.vue.d.ts +17 -0
  125. package/dist/components/KLayoutContent.vue.js +7 -0
  126. package/dist/components/KLayoutContent.vue_vue_type_script_setup_true_lang.js +11 -0
  127. package/dist/components/KLayoutHeader.vue.d.ts +19 -0
  128. package/dist/components/KLayoutHeader.vue.js +7 -0
  129. package/dist/components/KLayoutHeader.vue_vue_type_script_setup_true_lang.js +14 -0
  130. package/dist/components/KLayoutSider.vue.d.ts +28 -0
  131. package/dist/components/KLayoutSider.vue.js +7 -0
  132. package/dist/components/KLayoutSider.vue_vue_type_script_setup_true_lang.js +34 -0
  133. package/dist/components/KList.vue.d.ts +24 -0
  134. package/dist/components/KList.vue.js +7 -0
  135. package/dist/components/KList.vue_vue_type_script_setup_true_lang.js +39 -0
  136. package/dist/components/KListItem.vue.d.ts +17 -0
  137. package/dist/components/KListItem.vue.js +7 -0
  138. package/dist/components/KListItem.vue_vue_type_script_setup_true_lang.js +22 -0
  139. package/dist/components/{KLoadingOverlay.js → KLoadingOverlay.vue.js} +1 -1
  140. package/dist/components/KMention.vue.d.ts +27 -0
  141. package/dist/components/KMention.vue.js +8 -0
  142. package/dist/components/KMention.vue_vue_type_script_setup_true_lang.js +73 -0
  143. package/dist/components/KMenu.vue.d.ts +30 -0
  144. package/dist/components/KMenu.vue.js +9 -0
  145. package/dist/components/KMenu.vue_vue_type_script_setup_true_lang.js +134 -0
  146. package/dist/components/KMenuItem.vue.d.ts +10 -0
  147. package/dist/components/KMenuItem.vue.js +7 -0
  148. package/dist/components/KMenuItem.vue_vue_type_script_setup_true_lang.js +58 -0
  149. package/dist/components/KMessage.js +1 -1
  150. package/dist/components/{KMessageContainer.js → KMessageContainer.vue.js} +1 -1
  151. package/dist/components/KNotification.d.ts +36 -0
  152. package/dist/components/KNotification.js +55 -0
  153. package/dist/components/KNotificationContainer.vue.d.ts +20 -0
  154. package/dist/components/KNotificationContainer.vue.js +7 -0
  155. package/dist/components/KNotificationContainer.vue_vue_type_script_setup_true_lang.js +63 -0
  156. package/dist/components/KNotificationProvider.vue.d.ts +13 -0
  157. package/dist/components/KNotificationProvider.vue.js +10 -0
  158. package/dist/components/KNumberAnimation.vue.d.ts +33 -0
  159. package/dist/components/KNumberAnimation.vue.js +7 -0
  160. package/dist/components/KNumberAnimation.vue_vue_type_script_setup_true_lang.js +45 -0
  161. package/dist/components/{KPagination.js → KPagination.vue.js} +1 -1
  162. package/dist/components/KPopconfirm.vue.d.ts +46 -0
  163. package/dist/components/KPopconfirm.vue.js +6 -0
  164. package/dist/components/KPopconfirm.vue_vue_type_script_setup_true_lang.js +81 -0
  165. package/dist/components/KPopover.vue.d.ts +1 -1
  166. package/dist/components/{KPopover.js → KPopover.vue.js} +1 -1
  167. package/dist/components/KProgress.vue.d.ts +3 -2
  168. package/dist/components/{KProgress.js → KProgress.vue.js} +2 -2
  169. package/dist/components/KProgress.vue_vue_type_script_setup_true_lang.js +23 -20
  170. package/dist/components/KRadio.vue.d.ts +4 -2
  171. package/dist/components/{KRadio.js → KRadio.vue.js} +2 -2
  172. package/dist/components/KRadio.vue_vue_type_script_setup_true_lang.js +24 -11
  173. package/dist/components/KRadioGroup.vue.d.ts +3 -0
  174. package/dist/components/{KRadioGroup.js → KRadioGroup.vue.js} +2 -2
  175. package/dist/components/KRadioGroup.vue_vue_type_script_setup_true_lang.js +17 -12
  176. package/dist/components/KRate.vue.d.ts +25 -0
  177. package/dist/components/KRate.vue.js +7 -0
  178. package/dist/components/KRate.vue_vue_type_script_setup_true_lang.js +77 -0
  179. package/dist/components/{KResizablePanel.js → KResizablePanel.vue.js} +1 -1
  180. package/dist/components/{KResult.js → KResult.vue.js} +1 -1
  181. package/dist/components/KSelect.vue.d.ts +10 -3
  182. package/dist/components/{KSelect.js → KSelect.vue.js} +4 -4
  183. package/dist/components/KSelect.vue_vue_type_script_setup_true_lang.js +89 -48
  184. package/dist/components/{KSkeleton.js → KSkeleton.vue.js} +1 -1
  185. package/dist/components/KSlider.vue.d.ts +24 -0
  186. package/dist/components/KSlider.vue.js +7 -0
  187. package/dist/components/KSlider.vue_vue_type_script_setup_true_lang.js +82 -0
  188. package/dist/components/KSpace.vue.d.ts +32 -0
  189. package/dist/components/KSpace.vue.js +7 -0
  190. package/dist/components/KSpace.vue_vue_type_script_setup_true_lang.js +52 -0
  191. package/dist/components/KSpin.vue.d.ts +23 -0
  192. package/dist/components/KSpin.vue.js +7 -0
  193. package/dist/components/KSpin.vue_vue_type_script_setup_true_lang.js +35 -0
  194. package/dist/components/KStatistic.vue.d.ts +23 -0
  195. package/dist/components/KStatistic.vue.js +7 -0
  196. package/dist/components/KStatistic.vue_vue_type_script_setup_true_lang.js +27 -0
  197. package/dist/components/KSteps.vue.d.ts +1 -1
  198. package/dist/components/{KSteps.js → KSteps.vue.js} +1 -1
  199. package/dist/components/KSwitch.vue.d.ts +2 -2
  200. package/dist/components/{KSwitch.js → KSwitch.vue.js} +2 -2
  201. package/dist/components/KSwitch.vue_vue_type_script_setup_true_lang.js +12 -11
  202. package/dist/components/KTabs.vue.d.ts +10 -5
  203. package/dist/components/{KTabs.js → KTabs.vue.js} +2 -2
  204. package/dist/components/KTabs.vue_vue_type_script_setup_true_lang.js +31 -21
  205. package/dist/components/KTag.vue.d.ts +3 -3
  206. package/dist/components/{KTag.js → KTag.vue.js} +2 -2
  207. package/dist/components/KTag.vue_vue_type_script_setup_true_lang.js +14 -13
  208. package/dist/components/KText.vue.d.ts +26 -0
  209. package/dist/components/KText.vue.js +7 -0
  210. package/dist/components/KText.vue_vue_type_script_setup_true_lang.js +31 -0
  211. package/dist/components/KTextarea.vue.d.ts +17 -2
  212. package/dist/components/{KTextarea.js → KTextarea.vue.js} +2 -2
  213. package/dist/components/KTextarea.vue_vue_type_script_setup_true_lang.js +51 -22
  214. package/dist/components/{KThemeToggleButton.js → KThemeToggleButton.vue.js} +1 -1
  215. package/dist/components/KTime.vue.d.ts +14 -0
  216. package/dist/components/KTime.vue.js +7 -0
  217. package/dist/components/KTime.vue_vue_type_script_setup_true_lang.js +56 -0
  218. package/dist/components/KTimePicker.vue.d.ts +19 -0
  219. package/dist/components/KTimePicker.vue.js +8 -0
  220. package/dist/components/KTimePicker.vue_vue_type_script_setup_true_lang.js +116 -0
  221. package/dist/components/KTimeline.vue.d.ts +13 -0
  222. package/dist/components/KTimeline.vue.js +7 -0
  223. package/dist/components/KTimeline.vue_vue_type_script_setup_true_lang.js +10 -0
  224. package/dist/components/KTimelineItem.vue.d.ts +29 -0
  225. package/dist/components/KTimelineItem.vue.js +7 -0
  226. package/dist/components/KTimelineItem.vue_vue_type_script_setup_true_lang.js +37 -0
  227. package/dist/components/{KTooltip.js → KTooltip.vue.js} +1 -1
  228. package/dist/components/KTransfer.vue.d.ts +24 -0
  229. package/dist/components/KTransfer.vue.js +7 -0
  230. package/dist/components/KTransfer.vue_vue_type_script_setup_true_lang.js +114 -0
  231. package/dist/components/{KTreeNode.js → KTreeNode.vue.js} +1 -1
  232. package/dist/components/KTreeSelect.vue.d.ts +22 -0
  233. package/dist/components/KTreeSelect.vue.js +8 -0
  234. package/dist/components/KTreeSelect.vue_vue_type_script_setup_true_lang.js +100 -0
  235. package/dist/components/{KTreeView.js → KTreeView.vue.js} +1 -1
  236. package/dist/components/KTreeView.vue_vue_type_script_setup_true_lang.js +1 -1
  237. package/dist/components/KTypography.vue.d.ts +13 -0
  238. package/dist/components/KTypography.vue.js +7 -0
  239. package/dist/components/KTypography.vue_vue_type_script_setup_true_lang.js +10 -0
  240. package/dist/components/KUpload.vue.d.ts +100 -4
  241. package/dist/components/{KUpload.js → KUpload.vue.js} +2 -2
  242. package/dist/components/KUpload.vue_vue_type_script_setup_true_lang.js +189 -94
  243. package/dist/components/KUploadDragger.vue.d.ts +13 -0
  244. package/dist/components/KUploadDragger.vue.js +7 -0
  245. package/dist/components/KUploadDragger.vue_vue_type_script_setup_true_lang.js +12 -0
  246. package/dist/components/{KVirtualList.js → KVirtualList.vue.js} +1 -1
  247. package/dist/components/KWatermark.vue.d.ts +27 -0
  248. package/dist/components/KWatermark.vue.js +7 -0
  249. package/dist/components/KWatermark.vue_vue_type_script_setup_true_lang.js +28 -0
  250. package/dist/components/form-context.d.ts +7 -3
  251. package/dist/components/list-context.d.ts +6 -0
  252. package/dist/components/list-context.js +4 -0
  253. package/dist/components/menu-context.d.ts +26 -0
  254. package/dist/components/menu-context.js +4 -0
  255. package/dist/components/radio-context.d.ts +6 -0
  256. package/dist/components/radio-context.js +4 -0
  257. package/dist/components/upload-context.d.ts +6 -0
  258. package/dist/components/upload-context.js +4 -0
  259. package/dist/index.d.ts +60 -3
  260. package/dist/index.js +104 -55
  261. package/dist/k-ui.css +1 -1
  262. package/package.json +6 -12
  263. /package/dist/components/{KEmpty.js → KEmpty.vue.js} +0 -0
  264. /package/dist/components/{KGridSkeleton.js → KGridSkeleton.vue.js} +0 -0
  265. /package/dist/components/{KListSkeleton.js → KListSkeleton.vue.js} +0 -0
  266. /package/dist/components/{KRefetchOverlay.js → KRefetchOverlay.vue.js} +0 -0
  267. /package/dist/components/{KSearchBar.js → KSearchBar.vue.js} +0 -0
@@ -7,21 +7,78 @@ export interface UploadFile {
7
7
  url?: string;
8
8
  error?: string;
9
9
  raw?: File;
10
+ /** naive-ui compatible raw File alias */
11
+ file?: File;
12
+ }
13
+ export interface UploadFileInfo {
14
+ id: string;
15
+ name: string;
16
+ status: UploadFile['status'];
17
+ percentage: number;
18
+ file?: File;
19
+ url?: string;
20
+ }
21
+ export interface UploadCustomRequestOptions {
22
+ file: UploadFileInfo;
23
+ onProgress: (event: {
24
+ percent: number;
25
+ }) => void;
26
+ onFinish: () => void;
27
+ onError: (error?: any) => void;
10
28
  }
11
29
  type __VLS_Props = {
12
30
  multiple?: boolean;
13
31
  accept?: string;
14
32
  /** bytes */
15
33
  maxSize?: number;
16
- /** 用户自定义上传函数; 不传则文件保持 pending */
17
34
  uploader?: (file: File, onProgress: (p: number) => void) => Promise<{
18
35
  url?: string;
19
36
  }>;
37
+ /** naive-ui compatible */
38
+ customRequest?: (options: UploadCustomRequestOptions) => void;
39
+ beforeUpload?: (file: File | {
40
+ file: UploadFileInfo;
41
+ }) => boolean | void | Promise<boolean | void>;
42
+ /** Vue listener compatibility for @before-upload */
43
+ onBeforeUpload?: (options: {
44
+ file: UploadFileInfo;
45
+ }) => boolean | void | Promise<boolean | void>;
46
+ autoUpload?: boolean;
47
+ /** naive-ui alias; false means local selection only */
48
+ defaultUpload?: boolean;
49
+ showList?: boolean;
50
+ /** naive-ui alias */
51
+ showFileList?: boolean;
52
+ buttonText?: string;
20
53
  drag?: boolean;
54
+ disabled?: boolean;
21
55
  };
22
56
  declare function addFiles(list: FileList | File[]): Promise<void>;
57
+ declare function onSelect(): void;
23
58
  declare function remove(id: string): void;
24
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
59
+ declare var __VLS_1: {
60
+ isDragOver: boolean;
61
+ open: typeof onSelect;
62
+ }, __VLS_3: {
63
+ isDragOver: boolean;
64
+ open: typeof onSelect;
65
+ }, __VLS_10: {
66
+ isDragOver: boolean;
67
+ open: typeof onSelect;
68
+ }, __VLS_12: {
69
+ isDragOver: boolean;
70
+ open: typeof onSelect;
71
+ };
72
+ type __VLS_Slots = {} & {
73
+ trigger?: (props: typeof __VLS_1) => any;
74
+ } & {
75
+ default?: (props: typeof __VLS_3) => any;
76
+ } & {
77
+ trigger?: (props: typeof __VLS_10) => any;
78
+ } & {
79
+ default?: (props: typeof __VLS_12) => any;
80
+ };
81
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
25
82
  files: import("vue").Ref<{
26
83
  id: string;
27
84
  name: string;
@@ -42,6 +99,18 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
42
99
  stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
43
100
  text: () => Promise<string>;
44
101
  } | undefined;
102
+ file?: {
103
+ readonly lastModified: number;
104
+ readonly name: string;
105
+ readonly webkitRelativePath: string;
106
+ readonly size: number;
107
+ readonly type: string;
108
+ arrayBuffer: () => Promise<ArrayBuffer>;
109
+ bytes: () => Promise<Uint8Array<ArrayBuffer>>;
110
+ slice: (start?: number, end?: number, contentType?: string) => Blob;
111
+ stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
112
+ text: () => Promise<string>;
113
+ } | undefined;
45
114
  }[], UploadFile[] | {
46
115
  id: string;
47
116
  name: string;
@@ -62,20 +131,47 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
62
131
  stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
63
132
  text: () => Promise<string>;
64
133
  } | undefined;
134
+ file?: {
135
+ readonly lastModified: number;
136
+ readonly name: string;
137
+ readonly webkitRelativePath: string;
138
+ readonly size: number;
139
+ readonly type: string;
140
+ arrayBuffer: () => Promise<ArrayBuffer>;
141
+ bytes: () => Promise<Uint8Array<ArrayBuffer>>;
142
+ slice: (start?: number, end?: number, contentType?: string) => Blob;
143
+ stream: () => ReadableStream<Uint8Array<ArrayBuffer>>;
144
+ text: () => Promise<string>;
145
+ } | undefined;
65
146
  }[]>;
66
147
  remove: typeof remove;
67
148
  addFiles: typeof addFiles;
149
+ open: typeof onSelect;
68
150
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
151
+ success: (file: UploadFile) => any;
69
152
  error: (file: UploadFile, error: any) => any;
153
+ select: (files: File[]) => any;
70
154
  change: (files: UploadFile[]) => any;
71
- success: (file: UploadFile) => any;
72
155
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
156
+ onSuccess?: ((file: UploadFile) => any) | undefined;
73
157
  onError?: ((file: UploadFile, error: any) => any) | undefined;
158
+ onSelect?: ((files: File[]) => any) | undefined;
74
159
  onChange?: ((files: UploadFile[]) => any) | undefined;
75
- onSuccess?: ((file: UploadFile) => any) | undefined;
76
160
  }>, {
161
+ disabled: boolean;
77
162
  multiple: boolean;
163
+ showList: boolean;
78
164
  drag: boolean;
165
+ autoUpload: boolean;
166
+ defaultUpload: boolean;
167
+ showFileList: boolean;
168
+ buttonText: string;
79
169
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
170
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
80
171
  declare const _default: typeof __VLS_export;
81
172
  export default _default;
173
+ type __VLS_WithSlots<T, S> = T & {
174
+ new (): {
175
+ $slots: S;
176
+ };
177
+ };
@@ -1,7 +1,7 @@
1
1
  import e from "../_virtual/_plugin-vue_export-helper.js";
2
2
  import t from "./KUpload.vue_vue_type_script_setup_true_lang.js";
3
- /* empty css */
3
+ /* empty css */
4
4
  //#region components/KUpload.vue
5
- var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-b4cbeb87"]]);
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-cc65d4de"]]);
6
6
  //#endregion
7
7
  export { n as default };
@@ -1,19 +1,20 @@
1
- import { Fragment as e, createBlock as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createTextVNode as a, createVNode as o, defineComponent as s, normalizeClass as c, normalizeStyle as l, openBlock as u, ref as d, renderList as f, toDisplayString as p, unref as m, withModifiers as h } from "vue";
2
- import { AlertCircle as g, CheckCircle2 as _, FileText as v, Loader2 as y, Upload as b, X as x } from "lucide-vue-next";
1
+ import { uploadContextKey as e } from "./upload-context.js";
2
+ import { Fragment as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, createVNode as s, defineComponent as c, normalizeClass as l, normalizeStyle as u, openBlock as d, provide as f, ref as p, renderList as m, renderSlot as h, toDisplayString as g, unref as _, withModifiers as v } from "vue";
3
+ import { AlertCircle as y, CheckCircle2 as b, FileText as x, Loader2 as S, Upload as C, X as w } from "lucide-vue-next";
3
4
  //#region components/KUpload.vue?vue&type=script&setup=true&lang.ts
4
- var S = { class: "k-upload" }, C = { class: "k-upload__hint" }, w = {
5
+ var T = { class: "k-upload__hint" }, E = {
5
6
  key: 0,
6
7
  class: "k-upload__meta"
7
- }, T = { key: 0 }, E = { key: 1 }, D = { key: 2 }, O = ["multiple", "accept"], k = {
8
+ }, D = { key: 0 }, O = { key: 1 }, k = { key: 2 }, A = ["disabled"], j = ["multiple", "accept"], M = {
8
9
  key: 2,
9
10
  class: "k-upload__list"
10
- }, A = { class: "k-upload__file-info" }, j = { class: "k-upload__file-name" }, M = { class: "k-upload__file-meta" }, N = {
11
+ }, N = { class: "k-upload__file-info" }, P = { class: "k-upload__file-name" }, F = { class: "k-upload__file-meta" }, I = {
11
12
  key: 0,
12
13
  class: "k-upload__error-text"
13
- }, P = {
14
+ }, L = {
14
15
  key: 0,
15
16
  class: "k-upload__progress"
16
- }, F = { class: "k-upload__file-status" }, I = ["onClick"], L = /* @__PURE__ */ s({
17
+ }, R = { class: "k-upload__file-status" }, z = ["onClick"], B = /* @__PURE__ */ c({
17
18
  __name: "KUpload",
18
19
  props: {
19
20
  multiple: {
@@ -23,159 +24,253 @@ var S = { class: "k-upload" }, C = { class: "k-upload__hint" }, w = {
23
24
  accept: {},
24
25
  maxSize: {},
25
26
  uploader: {},
27
+ customRequest: {},
28
+ beforeUpload: {},
29
+ onBeforeUpload: {},
30
+ autoUpload: {
31
+ type: Boolean,
32
+ default: !0
33
+ },
34
+ defaultUpload: {
35
+ type: Boolean,
36
+ default: !0
37
+ },
38
+ showList: {
39
+ type: Boolean,
40
+ default: !0
41
+ },
42
+ showFileList: {
43
+ type: Boolean,
44
+ default: !0
45
+ },
46
+ buttonText: { default: "选择文件" },
26
47
  drag: {
27
48
  type: Boolean,
28
49
  default: !0
50
+ },
51
+ disabled: {
52
+ type: Boolean,
53
+ default: !1
29
54
  }
30
55
  },
31
56
  emits: [
32
57
  "change",
58
+ "select",
33
59
  "success",
34
60
  "error"
35
61
  ],
36
- setup(s, { expose: L, emit: R }) {
37
- let z = s, B = R, V = d([]), H = d(!1), U = d(null);
38
- function W(e) {
62
+ setup(c, { expose: B, emit: V }) {
63
+ let H = c, U = V, W = p([]), G = p(!1), K = p(null);
64
+ f(e, {
65
+ open: Z,
66
+ isDragOver: G
67
+ });
68
+ function q(e) {
39
69
  return e < 1024 ? e + " B" : e < 1024 * 1024 ? (e / 1024).toFixed(1) + " KB" : (e / 1024 / 1024).toFixed(2) + " MB";
40
70
  }
41
- let G = 0;
42
- async function K(e) {
71
+ let J = 0;
72
+ function Y(e, t) {
73
+ return {
74
+ id: e.id,
75
+ name: e.name,
76
+ status: e.status,
77
+ percentage: e.progress,
78
+ file: t ?? e.raw,
79
+ url: e.url
80
+ };
81
+ }
82
+ async function X(e) {
83
+ if (H.disabled) return;
43
84
  let t = Array.from(e);
44
- !z.multiple && t.length > 1 && (t = t.slice(0, 1));
85
+ !H.multiple && t.length > 1 && (t = t.slice(0, 1));
45
86
  let n = [];
46
87
  for (let e of t) {
47
- if (z.maxSize && e.size > z.maxSize) {
48
- V.value.push({
49
- id: String(++G),
88
+ let t = {
89
+ id: String(++J),
90
+ name: e.name,
91
+ size: e.size,
92
+ status: "pending",
93
+ progress: 0,
94
+ raw: e,
95
+ file: e
96
+ }, r = !0;
97
+ H.beforeUpload && (r = await H.beforeUpload({ file: Y(t, e) })), r !== !1 && H.onBeforeUpload && (r = await H.onBeforeUpload({ file: Y(t, e) })), r !== !1 && n.push(e);
98
+ }
99
+ if (t = n, t.length === 0) return;
100
+ U("select", t);
101
+ let r = [];
102
+ for (let e of t) {
103
+ if (H.maxSize && e.size > H.maxSize) {
104
+ W.value.push({
105
+ id: String(++J),
50
106
  name: e.name,
51
107
  size: e.size,
52
108
  status: "error",
53
109
  progress: 0,
54
- error: `超过最大 ${W(z.maxSize)}`
110
+ error: `超过最大 ${q(H.maxSize)}`
55
111
  });
56
112
  continue;
57
113
  }
58
114
  let t = {
59
- id: String(++G),
115
+ id: String(++J),
60
116
  name: e.name,
61
117
  size: e.size,
62
118
  status: "pending",
63
119
  progress: 0,
64
- raw: e
120
+ raw: e,
121
+ file: e
65
122
  };
66
- V.value.push(t), n.push({
123
+ W.value.push(t), r.push({
67
124
  uf: t,
68
125
  raw: e
69
126
  });
70
127
  }
71
- if (B("change", V.value), z.uploader) {
72
- let e = z.uploader;
73
- await Promise.all(n.map(async ({ uf: t, raw: n }) => {
74
- t.status = "uploading";
75
- try {
76
- let r = await e(n, (e) => t.progress = e);
77
- if (!V.value.includes(t)) return;
78
- t.status = "success", t.progress = 100, t.url = r?.url, B("success", t);
79
- } catch (e) {
80
- if (!V.value.includes(t)) return;
81
- t.status = "error", t.error = e?.message || "上传失败", B("error", t, e);
82
- }
83
- }));
84
- } else n.forEach(({ uf: e }) => {
85
- e.status = "success", e.progress = 100;
86
- });
128
+ if (U("change", W.value), !(!H.autoUpload || !H.defaultUpload)) {
129
+ if (H.customRequest) {
130
+ await Promise.all(r.map(async ({ uf: e, raw: t }) => {
131
+ e.status = "uploading", await new Promise((n) => {
132
+ H.customRequest?.({
133
+ file: Y(e, t),
134
+ onProgress: ({ percent: t }) => {
135
+ e.progress = Math.max(0, Math.min(100, t));
136
+ },
137
+ onFinish: () => {
138
+ if (!W.value.includes(e)) return n();
139
+ e.status = "success", e.progress = 100, U("success", e), U("change", W.value), n();
140
+ },
141
+ onError: (t) => {
142
+ if (!W.value.includes(e)) return n();
143
+ e.status = "error", e.error = t?.message || "上传失败", U("error", e, t), U("change", W.value), n();
144
+ }
145
+ });
146
+ });
147
+ }));
148
+ return;
149
+ }
150
+ if (H.uploader) {
151
+ let e = H.uploader;
152
+ await Promise.all(r.map(async ({ uf: t, raw: n }) => {
153
+ t.status = "uploading";
154
+ try {
155
+ let r = await e(n, (e) => t.progress = e);
156
+ if (!W.value.includes(t)) return;
157
+ t.status = "success", t.progress = 100, t.url = r?.url, U("success", t);
158
+ } catch (e) {
159
+ if (!W.value.includes(t)) return;
160
+ t.status = "error", t.error = e?.message || "上传失败", U("error", t, e);
161
+ }
162
+ }));
163
+ } else r.forEach(({ uf: e }) => {
164
+ e.status = "success", e.progress = 100;
165
+ });
166
+ U("change", W.value);
167
+ }
87
168
  }
88
- function q() {
89
- U.value?.click();
169
+ function Z() {
170
+ H.disabled || K.value?.click();
90
171
  }
91
- function J(e) {
172
+ function Q(e) {
92
173
  let t = e.target;
93
- t.files && K(t.files), t.value = "";
174
+ t.files && X(t.files), t.value = "";
94
175
  }
95
- function Y(e) {
96
- H.value = !1, e.dataTransfer?.files && K(e.dataTransfer.files);
176
+ function ee(e) {
177
+ G.value = !1, !H.disabled && e.dataTransfer?.files && X(e.dataTransfer.files);
97
178
  }
98
- function X(e) {
99
- V.value = V.value.filter((t) => t.id !== e), B("change", V.value);
179
+ function $(e) {
180
+ W.value = W.value.filter((t) => t.id !== e), U("change", W.value);
100
181
  }
101
- return L({
102
- files: V,
103
- remove: X,
104
- addFiles: K
105
- }), (d, L) => (u(), r("div", S, [
106
- s.drag ? (u(), r("div", {
182
+ return B({
183
+ files: W,
184
+ remove: $,
185
+ addFiles: X,
186
+ open: Z
187
+ }), (e, f) => (d(), i("div", { class: l(["k-upload", { "k-upload--disabled": c.disabled }]) }, [
188
+ c.drag ? (d(), i("div", {
107
189
  key: 0,
108
- class: c(["k-upload__zone", { "k-upload__zone--over": H.value }]),
109
- onClick: q,
110
- onDragover: L[0] ||= h((e) => H.value = !0, ["prevent"]),
111
- onDragleave: L[1] ||= h((e) => H.value = !1, ["prevent"]),
112
- onDrop: h(Y, ["prevent"])
113
- }, [o(m(b), {
190
+ class: l(["k-upload__zone", { "k-upload__zone--over": G.value }]),
191
+ onClick: Z,
192
+ onDragover: f[0] ||= v((e) => G.value = !0, ["prevent"]),
193
+ onDragleave: f[1] ||= v((e) => G.value = !1, ["prevent"]),
194
+ onDrop: v(ee, ["prevent"])
195
+ }, [h(e.$slots, "trigger", {
196
+ isDragOver: G.value,
197
+ open: Z
198
+ }, () => [h(e.$slots, "default", {
199
+ isDragOver: G.value,
200
+ open: Z
201
+ }, () => [s(_(C), {
114
202
  size: 28,
115
203
  class: "k-upload__icon"
116
- }), i("div", C, [
117
- L[2] ||= i("strong", null, "点击选择", -1),
118
- L[3] ||= a(" 或 ", -1),
119
- L[4] ||= i("strong", null, "拖拽文件", -1),
120
- L[5] ||= a(" 到此处 ", -1),
121
- s.accept || s.maxSize ? (u(), r("div", w, [
122
- s.accept ? (u(), r("span", T, "支持: " + p(s.accept), 1)) : n("", !0),
123
- s.accept && s.maxSize ? (u(), r("span", E, " · ")) : n("", !0),
124
- s.maxSize ? (u(), r("span", D, "最大: " + p(W(s.maxSize)), 1)) : n("", !0)
125
- ])) : n("", !0)
126
- ])], 34)) : (u(), r("button", {
204
+ }), a("div", T, [
205
+ f[2] ||= a("strong", null, "点击选择", -1),
206
+ f[3] ||= o(" 或 ", -1),
207
+ f[4] ||= a("strong", null, "拖拽文件", -1),
208
+ f[5] ||= o(" 到此处 ", -1),
209
+ c.accept || c.maxSize ? (d(), i("div", E, [
210
+ c.accept ? (d(), i("span", D, "支持: " + g(c.accept), 1)) : r("", !0),
211
+ c.accept && c.maxSize ? (d(), i("span", O, " · ")) : r("", !0),
212
+ c.maxSize ? (d(), i("span", k, "最大: " + g(q(c.maxSize)), 1)) : r("", !0)
213
+ ])) : r("", !0)
214
+ ])], !0)], !0)], 34)) : (d(), i("button", {
127
215
  key: 1,
128
216
  type: "button",
129
217
  class: "k-upload__btn",
130
- onClick: q
131
- }, [o(m(b), { size: 14 }), L[6] ||= a(" 选择文件 ", -1)])),
132
- i("input", {
218
+ disabled: c.disabled,
219
+ onClick: Z
220
+ }, [h(e.$slots, "trigger", {
221
+ isDragOver: !1,
222
+ open: Z
223
+ }, () => [h(e.$slots, "default", {
224
+ isDragOver: !1,
225
+ open: Z
226
+ }, () => [s(_(C), { size: 14 }), o(" " + g(c.buttonText), 1)], !0)], !0)], 8, A)),
227
+ a("input", {
133
228
  ref_key: "fileInputRef",
134
- ref: U,
229
+ ref: K,
135
230
  type: "file",
136
- multiple: s.multiple,
137
- accept: s.accept,
231
+ multiple: c.multiple,
232
+ accept: c.accept,
138
233
  class: "k-upload__input",
139
- onChange: J
140
- }, null, 40, O),
141
- V.value.length > 0 ? (u(), r("ul", k, [(u(!0), r(e, null, f(V.value, (e) => (u(), r("li", {
234
+ onChange: Q
235
+ }, null, 40, j),
236
+ c.showList && c.showFileList && W.value.length > 0 ? (d(), i("ul", M, [(d(!0), i(t, null, m(W.value, (e) => (d(), i("li", {
142
237
  key: e.id,
143
- class: c(["k-upload__item", `k-upload__item--${e.status}`])
238
+ class: l(["k-upload__item", `k-upload__item--${e.status}`])
144
239
  }, [
145
- o(m(v), {
240
+ s(_(x), {
146
241
  size: 14,
147
242
  class: "k-upload__file-icon"
148
243
  }),
149
- i("div", A, [
150
- i("div", j, p(e.name), 1),
151
- i("div", M, [a(p(W(e.size)) + " ", 1), e.error ? (u(), r("span", N, "· " + p(e.error), 1)) : n("", !0)]),
152
- e.status === "uploading" ? (u(), r("div", P, [i("div", {
244
+ a("div", N, [
245
+ a("div", P, g(e.name), 1),
246
+ a("div", F, [o(g(q(e.size)) + " ", 1), e.error ? (d(), i("span", I, "· " + g(e.error), 1)) : r("", !0)]),
247
+ e.status === "uploading" ? (d(), i("div", L, [a("div", {
153
248
  class: "k-upload__progress-bar",
154
- style: l({ width: e.progress + "%" })
155
- }, null, 4)])) : n("", !0)
249
+ style: u({ width: e.progress + "%" })
250
+ }, null, 4)])) : r("", !0)
156
251
  ]),
157
- i("div", F, [e.status === "uploading" ? (u(), t(m(y), {
252
+ a("div", R, [e.status === "uploading" ? (d(), n(_(S), {
158
253
  key: 0,
159
254
  size: 14,
160
255
  class: "k-upload__spin"
161
- })) : e.status === "success" ? (u(), t(m(_), {
256
+ })) : e.status === "success" ? (d(), n(_(b), {
162
257
  key: 1,
163
258
  size: 14,
164
259
  style: { color: "#10b981" }
165
- })) : e.status === "error" ? (u(), t(m(g), {
260
+ })) : e.status === "error" ? (d(), n(_(y), {
166
261
  key: 2,
167
262
  size: 14,
168
263
  style: { color: "#dc2626" }
169
- })) : n("", !0)]),
170
- i("button", {
264
+ })) : r("", !0)]),
265
+ a("button", {
171
266
  type: "button",
172
267
  class: "k-upload__remove",
173
268
  "aria-label": "移除",
174
- onClick: (t) => X(e.id)
175
- }, [o(m(x), { size: 12 })], 8, I)
176
- ], 2))), 128))])) : n("", !0)
177
- ]));
269
+ onClick: (t) => $(e.id)
270
+ }, [s(_(w), { size: 12 })], 8, z)
271
+ ], 2))), 128))])) : r("", !0)
272
+ ], 2));
178
273
  }
179
274
  });
180
275
  //#endregion
181
- export { L as default };
276
+ export { B as default };
@@ -0,0 +1,13 @@
1
+ declare var __VLS_1: {};
2
+ type __VLS_Slots = {} & {
3
+ default?: (props: typeof __VLS_1) => any;
4
+ };
5
+ declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
6
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
9
+ type __VLS_WithSlots<T, S> = T & {
10
+ new (): {
11
+ $slots: S;
12
+ };
13
+ };
@@ -0,0 +1,7 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./KUploadDragger.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region components/KUploadDragger.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-cce48397"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,12 @@
1
+ import { uploadContextKey as e } from "./upload-context.js";
2
+ import { computed as t, createElementBlock as n, defineComponent as r, inject as i, normalizeClass as a, openBlock as o, renderSlot as s } from "vue";
3
+ //#region components/KUploadDragger.vue?vue&type=script&setup=true&lang.ts
4
+ var c = /* @__PURE__ */ r({
5
+ __name: "KUploadDragger",
6
+ setup(r) {
7
+ let c = i(e, null), l = t(() => !!c?.isDragOver.value);
8
+ return (e, t) => (o(), n("div", { class: a(["k-upload-dragger", { "k-upload-dragger--over": l.value }]) }, [s(e.$slots, "default", {}, void 0, !0)], 2));
9
+ }
10
+ });
11
+ //#endregion
12
+ export { c as default };
@@ -1,6 +1,6 @@
1
1
  import e from "../_virtual/_plugin-vue_export-helper.js";
2
2
  import t from "./KVirtualList.vue_vue_type_script_setup_true_lang.js";
3
- /* empty css */
3
+ /* empty css */
4
4
  //#region components/KVirtualList.vue
5
5
  var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-9e845dfb"]]);
6
6
  //#endregion
@@ -0,0 +1,27 @@
1
+ type __VLS_Props = {
2
+ content?: string;
3
+ fontSize?: number;
4
+ color?: string;
5
+ rotate?: number;
6
+ /** 单个水印的横纵间距 [x, y] */
7
+ gap?: [number, number];
8
+ };
9
+ declare var __VLS_1: {};
10
+ type __VLS_Slots = {} & {
11
+ default?: (props: typeof __VLS_1) => any;
12
+ };
13
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
14
+ color: string;
15
+ rotate: number;
16
+ fontSize: number;
17
+ gap: [number, number];
18
+ content: string;
19
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
23
+ type __VLS_WithSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
@@ -0,0 +1,7 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./KWatermark.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region components/KWatermark.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-534968f5"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,28 @@
1
+ import { computed as e, createElementBlock as t, createElementVNode as n, defineComponent as r, normalizeStyle as i, openBlock as a, renderSlot as o } from "vue";
2
+ //#region components/KWatermark.vue?vue&type=script&setup=true&lang.ts
3
+ var s = { class: "k-watermark" }, c = /* @__PURE__ */ r({
4
+ __name: "KWatermark",
5
+ props: {
6
+ content: { default: "k-ui" },
7
+ fontSize: { default: 15 },
8
+ color: { default: "rgba(0,0,0,0.08)" },
9
+ rotate: { default: -22 },
10
+ gap: { default: () => [120, 80] }
11
+ },
12
+ setup(r) {
13
+ let c = r, l = e(() => {
14
+ if (typeof document > "u") return "";
15
+ let [e, t] = c.gap, n = document.createElement("canvas"), r = n.getContext("2d");
16
+ if (!r) return "";
17
+ r.font = `${c.fontSize}px sans-serif`;
18
+ let i = Math.ceil(r.measureText(c.content).width) + e, a = c.fontSize + t;
19
+ return n.width = i, n.height = a, r.font = `${c.fontSize}px sans-serif`, r.fillStyle = c.color, r.textAlign = "center", r.textBaseline = "middle", r.translate(i / 2, a / 2), r.rotate(c.rotate * Math.PI / 180), r.fillText(c.content, 0, 0), n.toDataURL();
20
+ });
21
+ return (e, r) => (a(), t("div", s, [o(e.$slots, "default", {}, void 0, !0), n("div", {
22
+ class: "k-watermark__layer",
23
+ style: i({ backgroundImage: l.value ? `url(${l.value})` : void 0 })
24
+ }, null, 4)]));
25
+ }
26
+ });
27
+ //#endregion
28
+ export { c as default };