@robot-admin/naive-ui-components 0.21.1 → 0.22.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 (157) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +5 -1
  3. package/README_EN.md +5 -1
  4. package/SECURITY.md +10 -0
  5. package/THIRD_PARTY_NOTICES.md +10 -0
  6. package/dist/C_AntV2.cjs +1 -1
  7. package/dist/C_Barcode2.cjs +1 -1
  8. package/dist/C_Captcha.d.ts +2 -0
  9. package/dist/C_Editor.css +18 -18
  10. package/dist/C_Editor2.cjs +1 -1
  11. package/dist/C_Editor2.js +1 -1
  12. package/dist/C_FilePreview2.cjs +1 -1
  13. package/dist/C_FilePreview2.js +1 -1
  14. package/dist/C_Form.base.css +58 -58
  15. package/dist/C_Form.cjs +1 -1
  16. package/dist/C_Form.css +76 -76
  17. package/dist/C_Form.d.cts +3 -1
  18. package/dist/C_Form.d.ts +3 -2
  19. package/dist/C_Form.js +1 -1
  20. package/dist/C_FormModal.css +10 -10
  21. package/dist/C_FormModal.d.ts +1 -0
  22. package/dist/C_FormModal2.cjs +1 -1
  23. package/dist/C_FormModal2.js +1 -1
  24. package/dist/C_FormSearch.css +56 -56
  25. package/dist/C_FormSearch.d.ts +2 -1
  26. package/dist/C_FormSearch2.cjs +1 -1
  27. package/dist/C_FormSearch2.js +1 -1
  28. package/dist/C_FullCalendar2.cjs +1 -1
  29. package/dist/C_Login.d.ts +3 -0
  30. package/dist/C_Markdown.css +37 -37
  31. package/dist/C_Markdown2.cjs +1 -1
  32. package/dist/C_Markdown2.js +1 -1
  33. package/dist/C_QRCode2.cjs +1 -1
  34. package/dist/C_Table.base.css +58 -58
  35. package/dist/C_Table.css +76 -76
  36. package/dist/C_Table.d.cts +1 -1
  37. package/dist/C_Table.d.ts +5 -2
  38. package/dist/C_Tree.d.cts +1 -1
  39. package/dist/C_Tree.d.ts +5 -2
  40. package/dist/C_Upload2.cjs +1 -1
  41. package/dist/C_WaterFall.css +49 -31
  42. package/dist/C_WaterFall2.cjs +1 -1
  43. package/dist/C_WaterFall2.js +1 -1
  44. package/dist/chunk.cjs +1 -1
  45. package/dist/config.cjs +1 -1
  46. package/dist/config.d.cts +4 -1
  47. package/dist/config.d.ts +4 -2
  48. package/dist/config.js +1 -1
  49. package/dist/config2.d.ts +14 -0
  50. package/dist/constants.d.cts +1 -1
  51. package/dist/constants.d.ts +1 -1
  52. package/dist/constants2.d.cts +1 -1
  53. package/dist/constants2.d.ts +1 -1
  54. package/dist/constants3.d.cts +2 -2
  55. package/dist/constants3.d.ts +2 -2
  56. package/dist/constants4.d.cts +5 -5
  57. package/dist/constants4.d.ts +5 -5
  58. package/dist/data.cjs +1 -1
  59. package/dist/data.d.cts +7 -7
  60. package/dist/data.d.ts +7 -7
  61. package/dist/data.js +1 -1
  62. package/dist/dateRange.d.ts +1 -2
  63. package/dist/density.cjs +1 -1
  64. package/dist/density.js +1 -1
  65. package/dist/graphics.d.cts +17 -11
  66. package/dist/graphics.d.ts +17 -11
  67. package/dist/helpers.cjs +1 -1
  68. package/dist/helpers.js +1 -1
  69. package/dist/html.cjs +1 -1
  70. package/dist/index.cjs +1 -1
  71. package/dist/index.d.cts +4 -3
  72. package/dist/index.d.ts +7 -5
  73. package/dist/index.js +1 -1
  74. package/dist/index.vue.d.cts +5 -5
  75. package/dist/index.vue.d.ts +5 -5
  76. package/dist/index10.vue.d.cts +2 -2
  77. package/dist/index10.vue.d.ts +5 -5
  78. package/dist/index11.vue.d.cts +5 -5
  79. package/dist/index11.vue.d.ts +1 -1
  80. package/dist/index12.vue.d.cts +1 -1
  81. package/dist/index12.vue.d.ts +4 -4
  82. package/dist/index13.vue.d.cts +4 -4
  83. package/dist/index13.vue.d.ts +9 -9
  84. package/dist/index14.vue.d.cts +9 -9
  85. package/dist/index17.vue.d.ts +2 -2
  86. package/dist/index18.vue.d.cts +2 -2
  87. package/dist/index18.vue.d.ts +2 -2
  88. package/dist/index19.vue.d.cts +2 -2
  89. package/dist/index19.vue.d.ts +2 -2
  90. package/dist/index2.vue.d.cts +2 -2
  91. package/dist/index2.vue.d.ts +2 -2
  92. package/dist/index20.vue.d.cts +1 -1
  93. package/dist/index20.vue.d.ts +1 -1
  94. package/dist/index21.vue.d.cts +1 -1
  95. package/dist/index21.vue.d.ts +1 -1
  96. package/dist/index22.vue.d.cts +1 -1
  97. package/dist/index22.vue.d.ts +1 -1
  98. package/dist/index25.vue.d.cts +2 -2
  99. package/dist/index25.vue.d.ts +2 -2
  100. package/dist/index3.vue.d.cts +6 -6
  101. package/dist/index3.vue.d.ts +6 -6
  102. package/dist/index4.vue.d.cts +2 -2
  103. package/dist/index8.vue.d.ts +3 -3
  104. package/dist/index9.vue.d.cts +3 -3
  105. package/dist/index9.vue.d.ts +2 -2
  106. package/dist/mapUtils.d.cts +2 -2
  107. package/dist/mapUtils.d.ts +2 -2
  108. package/dist/style.css +228 -210
  109. package/dist/types.d.ts +5 -0
  110. package/dist/types2.d.cts +5 -0
  111. package/dist/useCalendarEvents.d.cts +1 -1
  112. package/dist/useCalendarEvents.d.ts +1 -1
  113. package/dist/useCollapsePanel.d.cts +5 -5
  114. package/dist/useCollapsePanel.d.ts +5 -5
  115. package/dist/useCropperCore.d.cts +10 -10
  116. package/dist/useCropperCore.d.ts +10 -10
  117. package/dist/useDynamicFormState.d.cts +6 -579
  118. package/dist/useDynamicFormState.d.ts +6 -579
  119. package/dist/useEdgeInteraction.d.cts +2 -2
  120. package/dist/useEdgeInteraction.d.ts +2 -2
  121. package/dist/useFormConfig.cjs +1 -0
  122. package/dist/useFormConfig.d.cts +576 -0
  123. package/dist/useFormConfig.d.ts +611 -0
  124. package/dist/useFormConfig.js +1 -0
  125. package/dist/useGlobalSearch.d.cts +1 -1
  126. package/dist/useGlobalSearch.d.ts +1 -1
  127. package/dist/useInfiniteScroll.d.cts +16 -17
  128. package/dist/useInfiniteScroll.d.ts +16 -17
  129. package/dist/useQRCode.d.cts +5 -5
  130. package/dist/useQRCode.d.ts +5 -5
  131. package/dist/useSignatureHistory.d.cts +4 -4
  132. package/dist/useSignatureHistory.d.ts +4 -4
  133. package/dist/useSplitResize.d.cts +10 -10
  134. package/dist/useSplitResize.d.ts +10 -10
  135. package/dist/useTableQuery.cjs +1 -1
  136. package/dist/useTableQuery.d.cts +15 -13
  137. package/dist/useTableQuery.d.ts +17 -26
  138. package/dist/useTableQuery.js +1 -1
  139. package/dist/useWorkflowValidation.d.cts +2 -2
  140. package/dist/useWorkflowValidation.d.ts +2 -2
  141. package/dist/verification.d.cts +5 -5
  142. package/dist/verification.d.ts +6 -6
  143. package/dist/xlsx.js +143 -0
  144. package/dist/xlsx2.cjs +143 -0
  145. package/docs/architecture.en.md +1 -0
  146. package/docs/architecture.md +1 -0
  147. package/docs/guides/api-migration.md +111 -0
  148. package/docs/guides/form-density.en.md +17 -3
  149. package/docs/guides/form-density.md +17 -3
  150. package/docs/guides/runtime-performance.md +16 -1
  151. package/docs/guides/usage.en.md +1 -1
  152. package/docs/guides/waterfall.md +113 -0
  153. package/docs/runtime-review-20261019.md +2 -0
  154. package/licenses/SheetJS.txt +201 -0
  155. package/package.json +13 -9
  156. package/dist/contracts.d.ts +0 -24
  157. package/dist/density.d.ts +0 -15
package/dist/C_Table.css CHANGED
@@ -298,7 +298,7 @@ html.dark .action-divider[data-v-48eb3073]:hover {
298
298
  .w-e-video{box-sizing:border-box;display:flex;margin:0;max-width:100%;width:100%}.w-e-video>iframe,.w-e-video>video{display:block;max-width:100%}.w-e-textarea-video-container{background-image:linear-gradient(45deg,#eee 25%,transparent 0,transparent 75%,#eee 0,#eee),linear-gradient(45deg,#eee 25%,#fff 0,#fff 75%,#eee 0,#eee);background-position:0 0,10px 10px;background-size:20px 20px;border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;margin-top:10px;overflow:auto;padding:10px 0}.w-e-video-align-left{justify-content:flex-start}.w-e-video-align-center{justify-content:center}.w-e-video-align-right{justify-content:flex-end}
299
299
 
300
300
  /* CSS 变量 — 支持外部主题覆盖 */
301
- .c-editor[data-v-b7a5de58] {
301
+ .c-editor[data-v-2625824a] {
302
302
  --c-editor-toolbar-bg: #ffffff;
303
303
  --c-editor-toolbar-border: #e5e7eb;
304
304
  --c-editor-menu-color: #333333;
@@ -316,7 +316,7 @@ html.dark .action-divider[data-v-48eb3073]:hover {
316
316
  }
317
317
 
318
318
  /* 暗色主题 — 覆盖 CSS 变量 */
319
- .editor-dark[data-v-b7a5de58] {
319
+ .editor-dark[data-v-2625824a] {
320
320
  --c-editor-toolbar-bg: #1f2937;
321
321
  --c-editor-toolbar-border: #374151;
322
322
  --c-editor-menu-color: #e5e7eb;
@@ -329,68 +329,68 @@ html.dark .action-divider[data-v-48eb3073]:hover {
329
329
  --c-editor-text-focus-bg: #111827;
330
330
  --c-editor-text-focus-color: #e5e7eb;
331
331
  }
332
- .editor-dark[data-v-b7a5de58] .w-e-toolbar {
332
+ .editor-dark[data-v-2625824a] .w-e-toolbar {
333
333
  background-color: var(--c-editor-toolbar-bg) !important;
334
334
  border-color: var(--c-editor-toolbar-border) !important;
335
335
  }
336
- .editor-dark[data-v-b7a5de58] .w-e-toolbar .w-e-menu .w-e-menu-item {
336
+ .editor-dark[data-v-2625824a] .w-e-toolbar .w-e-menu .w-e-menu-item {
337
337
  color: var(--c-editor-menu-color) !important;
338
338
  }
339
- .editor-dark[data-v-b7a5de58] .w-e-toolbar .w-e-menu .w-e-menu-item:hover {
339
+ .editor-dark[data-v-2625824a] .w-e-toolbar .w-e-menu .w-e-menu-item:hover {
340
340
  background-color: var(--c-editor-menu-hover-bg) !important;
341
341
  color: var(--c-editor-menu-hover-color) !important;
342
342
  }
343
- .editor-dark[data-v-b7a5de58] .w-e-toolbar .w-e-menu .w-e-menu-item.w-e-active {
343
+ .editor-dark[data-v-2625824a] .w-e-toolbar .w-e-menu .w-e-menu-item.w-e-active {
344
344
  background-color: var(--c-editor-menu-active-bg) !important;
345
345
  color: var(--c-editor-menu-active-color) !important;
346
346
  }
347
- .editor-dark[data-v-b7a5de58] .w-e-text-container {
347
+ .editor-dark[data-v-2625824a] .w-e-text-container {
348
348
  background-color: var(--c-editor-container-bg) !important;
349
349
  border-color: var(--c-editor-container-border) !important;
350
350
  }
351
- .editor-dark[data-v-b7a5de58] .w-e-text-container .w-e-text {
351
+ .editor-dark[data-v-2625824a] .w-e-text-container .w-e-text {
352
352
  background-color: var(--c-editor-text-bg) !important;
353
353
  color: var(--c-editor-text-color) !important;
354
354
  }
355
- .editor-dark[data-v-b7a5de58] .w-e-text-container .w-e-text:focus {
355
+ .editor-dark[data-v-2625824a] .w-e-text-container .w-e-text:focus {
356
356
  background-color: var(--c-editor-text-focus-bg) !important;
357
357
  color: var(--c-editor-text-focus-color) !important;
358
358
  }
359
- [data-v-b7a5de58] .w-e-toolbar,[data-v-b7a5de58] .w-e-text-container {
359
+ [data-v-2625824a] .w-e-toolbar,[data-v-2625824a] .w-e-text-container {
360
360
  max-width: 100% !important;
361
361
  overflow-x: auto !important;
362
362
  box-sizing: border-box !important;
363
363
  }
364
- [data-v-b7a5de58] .w-e-text {
364
+ [data-v-2625824a] .w-e-text {
365
365
  max-width: 100% !important;
366
366
  word-wrap: break-word !important;
367
367
  overflow-wrap: break-word !important;
368
368
  }
369
- [data-v-b7a5de58] .w-e-toolbar,[data-v-b7a5de58] .w-e-text-container,[data-v-b7a5de58] .w-e-text {
369
+ [data-v-2625824a] .w-e-toolbar,[data-v-2625824a] .w-e-text-container,[data-v-2625824a] .w-e-text {
370
370
  transition:
371
371
  background-color var(--c-editor-transition-duration) ease,
372
372
  border-color var(--c-editor-transition-duration) ease,
373
373
  color var(--c-editor-transition-duration) ease !important;
374
374
  }
375
- .editor-focused[data-v-b7a5de58] {
375
+ .editor-focused[data-v-2625824a] {
376
376
  max-width: 100% !important;
377
377
  }
378
378
 
379
379
 
380
380
  /* layer: default */
381
- .hidden[data-v-b7a5de58]{display:none;}
382
- .w-full[data-v-b7a5de58]{width:100%;}
383
- .px[data-v-b7a5de58]{padding-left:1rem;padding-right:1rem;}
384
- .transition[data-v-b7a5de58]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
385
- .ease[data-v-b7a5de58]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
381
+ .hidden[data-v-2625824a]{display:none;}
382
+ .w-full[data-v-2625824a]{width:100%;}
383
+ .px[data-v-2625824a]{padding-left:1rem;padding-right:1rem;}
384
+ .transition[data-v-2625824a]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
385
+ .ease[data-v-2625824a]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
386
386
 
387
- .c-form .c-form-actions[data-v-37ca39aa] {
387
+ .c-form .c-form-actions[data-v-21fb0c93] {
388
388
  margin-top: var(--c-form-row-gap, 20px);
389
389
  }
390
- :is(.c-form--default[data-v-37ca39aa], .c-form--compact[data-v-37ca39aa], .c-form--comfortable[data-v-37ca39aa]) .c-form-field .n-form-item-feedback-wrapper {
390
+ :is(.c-form--default[data-v-21fb0c93], .c-form--compact[data-v-21fb0c93], .c-form--comfortable[data-v-21fb0c93]) .c-form-field .n-form-item-feedback-wrapper {
391
391
  min-height: var(--c-form-item-gap);
392
392
  }
393
- :is(.c-form--default[data-v-37ca39aa], .c-form--compact[data-v-37ca39aa], .c-form--comfortable[data-v-37ca39aa]) :is(
393
+ :is(.c-form--default[data-v-21fb0c93], .c-form--compact[data-v-21fb0c93], .c-form--comfortable[data-v-21fb0c93]) :is(
394
394
  .c-form-card > .n-card,
395
395
  .c-form-card > .form-content > .n-card,
396
396
  .c-form-steps > .steps-container > .steps-content,
@@ -403,12 +403,12 @@ html.dark .action-divider[data-v-48eb3073]:hover {
403
403
  }
404
404
 
405
405
  /* layer: default */
406
- .visible[data-v-37ca39aa]{visibility:visible;}
407
- .grid[data-v-37ca39aa]{display:grid;}
408
- .inline[data-v-37ca39aa]{display:inline;}
409
- .px[data-v-37ca39aa]{padding-left:1rem;padding-right:1rem;}
410
- .blur[data-v-37ca39aa]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
411
- .filter[data-v-37ca39aa]{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
406
+ .visible[data-v-21fb0c93]{visibility:visible;}
407
+ .grid[data-v-21fb0c93]{display:grid;}
408
+ .inline[data-v-21fb0c93]{display:inline;}
409
+ .px[data-v-21fb0c93]{padding-left:1rem;padding-right:1rem;}
410
+ .blur[data-v-21fb0c93]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
411
+ .filter[data-v-21fb0c93]{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
412
412
 
413
413
  /* Card 布局样式 */
414
414
  .c-form-card[data-v-7818d397] {
@@ -1037,116 +1037,116 @@ to {
1037
1037
 
1038
1038
  /* Grid 布局样式 */
1039
1039
  /* 变量定义 */
1040
- .c-grid-layout[data-v-4758bc1e] {
1040
+ .c-grid-layout[data-v-f8588934] {
1041
1041
  width: 100%;
1042
1042
  /* 配置面板 */
1043
1043
  }
1044
- .c-grid-layout .config-panel[data-v-4758bc1e] {
1044
+ .c-grid-layout .config-panel[data-v-f8588934] {
1045
1045
  margin-bottom: 1rem;
1046
1046
  }
1047
- .c-grid-layout .config-panel .config-header[data-v-4758bc1e] {
1047
+ .c-grid-layout .config-panel .config-header[data-v-f8588934] {
1048
1048
  display: flex;
1049
1049
  align-items: center;
1050
1050
  gap: 0.5rem;
1051
1051
  font-weight: 500;
1052
1052
  margin-bottom: 8px;
1053
1053
  }
1054
- .c-grid-layout .config-panel .config-controls[data-v-4758bc1e] {
1054
+ .c-grid-layout .config-panel .config-controls[data-v-f8588934] {
1055
1055
  display: flex;
1056
1056
  gap: 1rem;
1057
1057
  flex-wrap: wrap;
1058
1058
  }
1059
- .c-grid-layout .config-panel .config-controls .config-item[data-v-4758bc1e] {
1059
+ .c-grid-layout .config-panel .config-controls .config-item[data-v-f8588934] {
1060
1060
  display: flex;
1061
1061
  align-items: center;
1062
1062
  gap: 0.5rem;
1063
1063
  }
1064
- .c-grid-layout .config-panel .config-controls .config-item .config-label[data-v-4758bc1e] {
1064
+ .c-grid-layout .config-panel .config-controls .config-item .config-label[data-v-f8588934] {
1065
1065
  font-size: 0.875rem;
1066
1066
  white-space: nowrap;
1067
1067
  min-width: 3rem;
1068
1068
  }
1069
- .c-grid-layout[data-v-4758bc1e] {
1069
+ .c-grid-layout[data-v-f8588934] {
1070
1070
  /* 网格容器 */
1071
1071
  }
1072
- .c-grid-layout .grid-container[data-v-4758bc1e] {
1072
+ .c-grid-layout .grid-container[data-v-f8588934] {
1073
1073
  width: 100%;
1074
1074
  }
1075
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e] {
1075
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934] {
1076
1076
  /* 进场动画 */
1077
- animation: fadeInUp-4758bc1e 0.3s ease-out both;
1077
+ animation: fadeInUp-f8588934 0.3s ease-out both;
1078
1078
  }
1079
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(1) {
1079
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(1) {
1080
1080
  animation-delay: 0.05s;
1081
1081
  }
1082
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(2) {
1082
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(2) {
1083
1083
  animation-delay: 0.1s;
1084
1084
  }
1085
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(3) {
1085
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(3) {
1086
1086
  animation-delay: 0.15s;
1087
1087
  }
1088
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(4) {
1088
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(4) {
1089
1089
  animation-delay: 0.2s;
1090
1090
  }
1091
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(5) {
1091
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(5) {
1092
1092
  animation-delay: 0.25s;
1093
1093
  }
1094
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(6) {
1094
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(6) {
1095
1095
  animation-delay: 0.3s;
1096
1096
  }
1097
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(7) {
1097
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(7) {
1098
1098
  animation-delay: 0.35s;
1099
1099
  }
1100
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(8) {
1100
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(8) {
1101
1101
  animation-delay: 0.4s;
1102
1102
  }
1103
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(9) {
1103
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(9) {
1104
1104
  animation-delay: 0.45s;
1105
1105
  }
1106
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(10) {
1106
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(10) {
1107
1107
  animation-delay: 0.5s;
1108
1108
  }
1109
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(11) {
1109
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(11) {
1110
1110
  animation-delay: 0.55s;
1111
1111
  }
1112
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(12) {
1112
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(12) {
1113
1113
  animation-delay: 0.6s;
1114
1114
  }
1115
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(13) {
1115
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(13) {
1116
1116
  animation-delay: 0.65s;
1117
1117
  }
1118
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(14) {
1118
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(14) {
1119
1119
  animation-delay: 0.7s;
1120
1120
  }
1121
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(15) {
1121
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(15) {
1122
1122
  animation-delay: 0.75s;
1123
1123
  }
1124
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(16) {
1124
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(16) {
1125
1125
  animation-delay: 0.8s;
1126
1126
  }
1127
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(17) {
1127
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(17) {
1128
1128
  animation-delay: 0.85s;
1129
1129
  }
1130
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(18) {
1130
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(18) {
1131
1131
  animation-delay: 0.9s;
1132
1132
  }
1133
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(19) {
1133
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(19) {
1134
1134
  animation-delay: 0.95s;
1135
1135
  }
1136
- .c-grid-layout .grid-container .grid-item[data-v-4758bc1e]:nth-child(20) {
1136
+ .c-grid-layout .grid-container .grid-item[data-v-f8588934]:nth-child(20) {
1137
1137
  animation-delay: 1s;
1138
1138
  }
1139
- .c-grid-layout[data-v-4758bc1e] {
1139
+ .c-grid-layout[data-v-f8588934] {
1140
1140
  /* 统计信息 */
1141
1141
  }
1142
- .c-grid-layout .grid-stats[data-v-4758bc1e] {
1142
+ .c-grid-layout .grid-stats[data-v-f8588934] {
1143
1143
  margin-top: 1rem;
1144
1144
  font-size: 0.875rem;
1145
1145
  opacity: 0.8;
1146
1146
  }
1147
1147
 
1148
1148
  /* 动画定义 */
1149
- @keyframes fadeInUp-4758bc1e {
1149
+ @keyframes fadeInUp-f8588934 {
1150
1150
  from {
1151
1151
  opacity: 0;
1152
1152
  transform: translateY(10px) scale(0.95);
@@ -1157,59 +1157,59 @@ to {
1157
1157
  }
1158
1158
  }
1159
1159
  /* 表单控件统一宽度 */
1160
- [data-v-4758bc1e] .n-form-item .n-form-item-blank {
1160
+ [data-v-f8588934] .n-form-item .n-form-item-blank {
1161
1161
  /* 统一所有表单控件的宽度 */
1162
1162
  }
1163
- [data-v-4758bc1e] .n-form-item .n-form-item-blank .n-input,[data-v-4758bc1e] .n-form-item .n-form-item-blank .n-input-number,[data-v-4758bc1e] .n-form-item .n-form-item-blank .n-select,[data-v-4758bc1e] .n-form-item .n-form-item-blank .n-date-picker,[data-v-4758bc1e] .n-form-item .n-form-item-blank .n-time-picker,[data-v-4758bc1e] .n-form-item .n-form-item-blank .n-cascader,[data-v-4758bc1e] .n-form-item .n-form-item-blank .n-tree-select,[data-v-4758bc1e] .n-form-item .n-form-item-blank .n-auto-complete,[data-v-4758bc1e] .n-form-item .n-form-item-blank .n-dynamic-tags {
1163
+ [data-v-f8588934] .n-form-item .n-form-item-blank .n-input,[data-v-f8588934] .n-form-item .n-form-item-blank .n-input-number,[data-v-f8588934] .n-form-item .n-form-item-blank .n-select,[data-v-f8588934] .n-form-item .n-form-item-blank .n-date-picker,[data-v-f8588934] .n-form-item .n-form-item-blank .n-time-picker,[data-v-f8588934] .n-form-item .n-form-item-blank .n-cascader,[data-v-f8588934] .n-form-item .n-form-item-blank .n-tree-select,[data-v-f8588934] .n-form-item .n-form-item-blank .n-auto-complete,[data-v-f8588934] .n-form-item .n-form-item-blank .n-dynamic-tags {
1164
1164
  width: 100% !important;
1165
1165
  }
1166
1166
 
1167
1167
  /* 响应式设计 */
1168
1168
  @media (max-width: 768px) {
1169
- .c-grid-layout .config-panel .config-controls[data-v-4758bc1e] {
1169
+ .c-grid-layout .config-panel .config-controls[data-v-f8588934] {
1170
1170
  flex-direction: column;
1171
1171
  gap: 0.75rem;
1172
1172
  }
1173
- .c-grid-layout .config-panel .config-controls .config-item[data-v-4758bc1e] {
1173
+ .c-grid-layout .config-panel .config-controls .config-item[data-v-f8588934] {
1174
1174
  justify-content: space-between;
1175
1175
  }
1176
- .c-grid-layout .grid-container[data-v-4758bc1e] .n-grid {
1176
+ .c-grid-layout .grid-container[data-v-f8588934] .n-grid {
1177
1177
  gap: 0.5rem !important;
1178
1178
  }
1179
- .c-grid-layout .grid-container .grid-item .item-wrapper[data-v-4758bc1e] {
1179
+ .c-grid-layout .grid-container .grid-item .item-wrapper[data-v-f8588934] {
1180
1180
  padding: 0.125rem;
1181
1181
  }
1182
- .c-grid-layout .grid-stats[data-v-4758bc1e] {
1182
+ .c-grid-layout .grid-stats[data-v-f8588934] {
1183
1183
  margin-top: 0.75rem;
1184
1184
  font-size: 0.875rem;
1185
1185
  }
1186
1186
  }
1187
1187
  @media (max-width: 480px) {
1188
- .c-grid-layout .config-panel[data-v-4758bc1e] {
1188
+ .c-grid-layout .config-panel[data-v-f8588934] {
1189
1189
  margin-bottom: 0.75rem;
1190
1190
  }
1191
1191
  }
1192
1192
  /* 主题适配 */
1193
- [data-v-4758bc1e] .n-card {
1193
+ [data-v-f8588934] .n-card {
1194
1194
  --n-border-radius: 8px;
1195
1195
  }
1196
- [data-v-4758bc1e] .n-input-number {
1196
+ [data-v-f8588934] .n-input-number {
1197
1197
  --n-width: 100%;
1198
1198
  }
1199
1199
 
1200
1200
  /* 暗色主题 */
1201
1201
  @media (prefers-color-scheme: dark) {
1202
- .c-grid-layout .grid-container .grid-item .item-wrapper[data-v-4758bc1e]:hover {
1202
+ .c-grid-layout .grid-container .grid-item .item-wrapper[data-v-f8588934]:hover {
1203
1203
  background-color: rgba(255, 255, 255, 0.05);
1204
1204
  }
1205
1205
  }
1206
1206
 
1207
1207
  /* layer: default */
1208
- .visible[data-v-4758bc1e]{visibility:visible;}
1209
- .grid[data-v-4758bc1e]{display:grid;}
1210
- .inline[data-v-4758bc1e]{display:inline;}
1211
- .px[data-v-4758bc1e]{padding-left:1rem;padding-right:1rem;}
1212
- .blur[data-v-4758bc1e]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
1208
+ .visible[data-v-f8588934]{visibility:visible;}
1209
+ .grid[data-v-f8588934]{display:grid;}
1210
+ .inline[data-v-f8588934]{display:inline;}
1211
+ .px[data-v-f8588934]{padding-left:1rem;padding-right:1rem;}
1212
+ .blur[data-v-f8588934]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
1213
1213
 
1214
1214
  /* Inline 布局样式 */
1215
1215
  .c-form-inline[data-v-711f6c00] {
@@ -1,3 +1,3 @@
1
- import { $ as MaybeRefLike, $t as PrintWatermarkOptions, At as createEditModeChecker, B as useRowEdit, Bt as mergeGlobalConfig, Ct as ExpandConfig, Dt as ToolbarConfig, Et as TableConfig, F as useCellEdit, Ft as FormatterConfig, G as _default, Gt as useCrossPageSelection, H as defineTableColumns, Ht as CrossPageSelectionConfig, I as usePagination, It as FormatterType, J as ChildSelectionState, Jt as UseRowDragReturn, K as ApiFunction, Kt as RowDragConfig, L as useTableActions, Lt as TABLE_GLOBAL_CONFIG_KEY, Mt as ExportConfig, Nt as exportTableData, Ot as TreeConfig, P as useModalEdit, Pt as ColumnFormatter, Q as EditMode, Qt as useDynamicRows, R as useTableExpand, Rt as TableGlobalConfig, St as ErrorConfig, Tt as SummaryConfig, U as defineTableConfig, Ut as UseCrossPageSelectionOptions, V as useTableColumns, Vt as useTableGlobalConfig, W as validateTableRowKeys, Wt as UseCrossPageSelectionReturn, X as CustomAction, Xt as DynamicRowsOptions, Y as ColumnWithKey, Yt as useRowDrag, Z as DataRecord, Zt as DynamicRowsReturn, _t as BatchActionsConfig, at as SelectOption, bt as DisplayConfig, ct as TableColumn, dt as TableManagerApi, en as printPresets, et as NormalTableColumn, ft as TableProps, gt as UseTableExpandReturn, ht as UseTableExpandOptions, i as useTableQuery, it as RowAction, jt as resolveConfig, kt as VirtualScrollConfig, lt as TableEmits, mt as TableRowKeyIssue, n as TableQueryResult, nt as ParentChildLinkMode, ot as SimpleTableActions, pt as TableRowKey, q as BuiltInTableColumn, qt as UseRowDragOptions, r as UseTableQueryOptions, rt as RenderFunction, st as StrictTableColumn, t as TableQueryContext, tn as usePrintWatermark, tt as PaginationConfig, ut as TableInstance, vt as ColumnDragConfig, wt as SelectionConfig, xt as EditConfig, yt as CrudBinding, z as useTableManager, zt as applyFormatter } from "./useTableQuery.cjs";
2
1
  import { r as resolveComponentDensity, t as ComponentDensity } from "./density.cjs";
2
+ import { $ as MaybeRefLike, $t as PrintWatermarkOptions, At as createEditModeChecker, B as useRowEdit, Bt as mergeGlobalConfig, Ct as ExpandConfig, Dt as ToolbarConfig, Et as TableConfig, F as useCellEdit, Ft as FormatterConfig, G as _default, Gt as useCrossPageSelection, H as defineTableColumns, Ht as CrossPageSelectionConfig, I as usePagination, It as FormatterType, J as ChildSelectionState, Jt as UseRowDragReturn, K as ApiFunction, Kt as RowDragConfig, L as useTableActions, Lt as TABLE_GLOBAL_CONFIG_KEY, Mt as ExportConfig, Nt as exportTableData, Ot as TreeConfig, P as useModalEdit, Pt as ColumnFormatter, Q as EditMode, Qt as useDynamicRows, R as useTableExpand, Rt as TableGlobalConfig, St as ErrorConfig, Tt as SummaryConfig, U as defineTableConfig, Ut as UseCrossPageSelectionOptions, V as useTableColumns, Vt as useTableGlobalConfig, W as validateTableRowKeys, Wt as UseCrossPageSelectionReturn, X as CustomAction, Xt as DynamicRowsOptions, Y as ColumnWithKey, Yt as useRowDrag, Z as DataRecord, Zt as DynamicRowsReturn, _t as BatchActionsConfig, at as SelectOption, bt as DisplayConfig, ct as TableColumn, dt as TableManagerApi, en as printPresets, et as NormalTableColumn, ft as TableProps, gt as UseTableExpandReturn, ht as UseTableExpandOptions, i as useTableQuery, it as RowAction, jt as resolveConfig, kt as VirtualScrollConfig, lt as TableEmits, mt as TableRowKeyIssue, n as TableQueryResult, nt as ParentChildLinkMode, ot as SimpleTableActions, pt as TableRowKey, q as BuiltInTableColumn, qt as UseRowDragOptions, r as UseTableQueryOptions, rt as RenderFunction, st as StrictTableColumn, t as TableQueryContext, tn as usePrintWatermark, tt as PaginationConfig, ut as TableInstance, vt as ColumnDragConfig, wt as SelectionConfig, xt as EditConfig, yt as CrudBinding, z as useTableManager, zt as applyFormatter } from "./useTableQuery.cjs";
3
3
  export { type ApiFunction, type BatchActionsConfig, type BuiltInTableColumn, _default as C_Table, type ChildSelectionState, type ColumnDragConfig, type ColumnFormatter, type ColumnWithKey, type ComponentDensity, type CrossPageSelectionConfig, type CrudBinding, type CustomAction, type DataRecord, type DisplayConfig, type DynamicRowsOptions, type DynamicRowsReturn, type EditConfig, type EditMode, type ErrorConfig, type ExpandConfig, type ExportConfig, type FormatterConfig, type FormatterType, type MaybeRefLike, type NormalTableColumn, type PaginationConfig, type ParentChildLinkMode, type PrintWatermarkOptions, type RenderFunction, type RowAction, type RowDragConfig, type SelectOption, type SimpleTableActions, type StrictTableColumn, type SummaryConfig, TABLE_GLOBAL_CONFIG_KEY, type TableColumn, type TableConfig, type TableEmits, type TableGlobalConfig, type TableInstance, type TableManagerApi, type TableProps, type TableQueryContext, type TableQueryResult, type TableRowKey, type TableRowKeyIssue, type SelectionConfig as TableSelectionConfig, type ToolbarConfig, type TreeConfig, type UseCrossPageSelectionOptions, type UseCrossPageSelectionReturn, type UseRowDragOptions, type UseRowDragReturn, type UseTableExpandOptions, type UseTableExpandReturn, type UseTableQueryOptions, type VirtualScrollConfig, applyFormatter, createEditModeChecker, defineTableColumns, defineTableConfig, exportTableData, mergeGlobalConfig, printPresets, resolveComponentDensity, resolveConfig, useCellEdit, useCrossPageSelection, useDynamicRows, useModalEdit, usePagination, usePrintWatermark, useRowDrag, useRowEdit, useTableActions, useTableColumns, useTableExpand, useTableGlobalConfig, useTableManager, useTableQuery, validateTableRowKeys };
package/dist/C_Table.d.ts CHANGED
@@ -2,14 +2,17 @@ import "./presets.js";
2
2
  import "./useEdgeInteraction.js";
3
3
  import "./public.js";
4
4
  import "./index4.vue.js";
5
- import { $ as MaybeRefLike, $t as PrintWatermarkOptions, At as createEditModeChecker, B as useRowEdit, Bt as mergeGlobalConfig, Ct as ExpandConfig, Dt as ToolbarConfig, Et as TableConfig, F as useCellEdit, Ft as FormatterConfig, G as _default, Gt as useCrossPageSelection, H as defineTableColumns, Ht as CrossPageSelectionConfig, I as usePagination, It as FormatterType, J as ChildSelectionState, Jt as UseRowDragReturn, K as ApiFunction, Kt as RowDragConfig, L as useTableActions, Lt as TABLE_GLOBAL_CONFIG_KEY, Mt as ExportConfig, Nt as exportTableData, Ot as TreeConfig, P as useModalEdit, Pt as ColumnFormatter, Q as EditMode, Qt as useDynamicRows, R as useTableExpand, Rt as TableGlobalConfig, St as ErrorConfig, Tt as SummaryConfig, U as defineTableConfig, Ut as UseCrossPageSelectionOptions, V as useTableColumns, Vt as useTableGlobalConfig, W as validateTableRowKeys, Wt as UseCrossPageSelectionReturn, X as CustomAction, Xt as DynamicRowsOptions, Y as ColumnWithKey, Yt as useRowDrag, Z as DataRecord, Zt as DynamicRowsReturn, _t as BatchActionsConfig, at as SelectOption, bt as DisplayConfig, ct as TableColumn, dt as TableManagerApi, en as printPresets, et as NormalTableColumn, ft as TableProps, gt as UseTableExpandReturn, ht as UseTableExpandOptions, i as useTableQuery, it as RowAction, jt as resolveConfig, kt as VirtualScrollConfig, lt as TableEmits, mt as TableRowKeyIssue, n as TableQueryResult, nt as ParentChildLinkMode, ot as SimpleTableActions, pt as TableRowKey, q as BuiltInTableColumn, qt as UseRowDragOptions, r as UseTableQueryOptions, rt as RenderFunction, st as StrictTableColumn, t as TableQueryContext, tn as usePrintWatermark, tt as PaginationConfig, ut as TableInstance, vt as ColumnDragConfig, wt as SelectionConfig, xt as EditConfig, yt as CrudBinding, z as useTableManager, zt as applyFormatter } from "./useTableQuery.js";
5
+ import { f as resolveComponentDensity, u as ComponentDensity } from "./useFormConfig.js";
6
+ import "./config2.js";
7
+ import "./verification.js";
6
8
  import "./useDraggableLayout.js";
7
9
  import "./useDynamicFormState.js";
8
- import { r as resolveComponentDensity, t as ComponentDensity } from "./density.js";
9
10
  import "./index11.vue.js";
10
11
  import "./dateRange.js";
12
+ import "./index16.vue.js";
11
13
  import "./mapUtils.js";
12
14
  import "./index18.vue.js";
15
+ import { $ as MaybeRefLike, $t as PrintWatermarkOptions, At as createEditModeChecker, B as useRowEdit, Bt as mergeGlobalConfig, Ct as ExpandConfig, Dt as ToolbarConfig, Et as TableConfig, F as useCellEdit, Ft as FormatterConfig, G as _default, Gt as useCrossPageSelection, H as defineTableColumns, Ht as CrossPageSelectionConfig, I as usePagination, It as FormatterType, J as ChildSelectionState, Jt as UseRowDragReturn, K as ApiFunction, Kt as RowDragConfig, L as useTableActions, Lt as TABLE_GLOBAL_CONFIG_KEY, Mt as ExportConfig, Nt as exportTableData, Ot as TreeConfig, P as useModalEdit, Pt as ColumnFormatter, Q as EditMode, Qt as useDynamicRows, R as useTableExpand, Rt as TableGlobalConfig, St as ErrorConfig, Tt as SummaryConfig, U as defineTableConfig, Ut as UseCrossPageSelectionOptions, V as useTableColumns, Vt as useTableGlobalConfig, W as validateTableRowKeys, Wt as UseCrossPageSelectionReturn, X as CustomAction, Xt as DynamicRowsOptions, Y as ColumnWithKey, Yt as useRowDrag, Z as DataRecord, Zt as DynamicRowsReturn, _t as BatchActionsConfig, at as SelectOption, bt as DisplayConfig, ct as TableColumn, dt as TableManagerApi, en as printPresets, et as NormalTableColumn, ft as TableProps, gt as UseTableExpandReturn, ht as UseTableExpandOptions, i as useTableQuery, it as RowAction, jt as resolveConfig, kt as VirtualScrollConfig, lt as TableEmits, mt as TableRowKeyIssue, n as TableQueryResult, nt as ParentChildLinkMode, ot as SimpleTableActions, pt as TableRowKey, q as BuiltInTableColumn, qt as UseRowDragOptions, r as UseTableQueryOptions, rt as RenderFunction, st as StrictTableColumn, t as TableQueryContext, tn as usePrintWatermark, tt as PaginationConfig, ut as TableInstance, vt as ColumnDragConfig, wt as SelectionConfig, xt as EditConfig, yt as CrudBinding, z as useTableManager, zt as applyFormatter } from "./useTableQuery.js";
13
16
  import "./constants5.js";
14
17
  import "./useWorkflowValidation.js";
15
18
  import "./index24.vue.js";
package/dist/C_Tree.d.cts CHANGED
@@ -1,3 +1,3 @@
1
- import { C as TreeNodeData, D as TreeSlots, E as TreeRenderContext, O as TreeUpdateMeta, S as TreeNativeProps, T as TreeProps, _ as StatusType, b as TreeKey, d as _default, f as ActionConfig, g as StatusConfig, h as IconConfig, l as useTreeOperations, m as DropInfo, p as ButtonType, u as presetConfigs, v as TreeEmits, w as TreeOption, x as TreeMode, y as TreeExpose } from "./useTableQuery.cjs";
2
1
  import { t as ComponentDensity } from "./density.cjs";
2
+ import { C as TreeNodeData, D as TreeSlots, E as TreeRenderContext, O as TreeUpdateMeta, S as TreeNativeProps, T as TreeProps, _ as StatusType, b as TreeKey, d as _default, f as ActionConfig, g as StatusConfig, h as IconConfig, l as useTreeOperations, m as DropInfo, p as ButtonType, u as presetConfigs, v as TreeEmits, w as TreeOption, x as TreeMode, y as TreeExpose } from "./useTableQuery.cjs";
3
3
  export { type ActionConfig, type ButtonType, _default as C_Tree, type ComponentDensity, type DropInfo, type IconConfig, type StatusConfig, type StatusType, type TreeEmits, type TreeExpose, type TreeKey, type TreeMode, type TreeNativeProps, type TreeNodeData, type TreeOption, type TreeProps, type TreeRenderContext, type TreeSlots, type TreeUpdateMeta, presetConfigs as treePresetConfigs, useTreeOperations };
package/dist/C_Tree.d.ts CHANGED
@@ -2,14 +2,17 @@ import "./presets.js";
2
2
  import "./useEdgeInteraction.js";
3
3
  import "./public.js";
4
4
  import "./index4.vue.js";
5
- import { C as TreeNodeData, D as TreeSlots, E as TreeRenderContext, O as TreeUpdateMeta, S as TreeNativeProps, T as TreeProps, _ as StatusType, b as TreeKey, d as _default, f as ActionConfig, g as StatusConfig, h as IconConfig, l as useTreeOperations, m as DropInfo, p as ButtonType, u as presetConfigs, v as TreeEmits, w as TreeOption, x as TreeMode, y as TreeExpose } from "./useTableQuery.js";
5
+ import { u as ComponentDensity } from "./useFormConfig.js";
6
+ import "./config2.js";
7
+ import "./verification.js";
6
8
  import "./useDraggableLayout.js";
7
9
  import "./useDynamicFormState.js";
8
- import { t as ComponentDensity } from "./density.js";
9
10
  import "./index11.vue.js";
10
11
  import "./dateRange.js";
12
+ import "./index16.vue.js";
11
13
  import "./mapUtils.js";
12
14
  import "./index18.vue.js";
15
+ import { C as TreeNodeData, D as TreeSlots, E as TreeRenderContext, O as TreeUpdateMeta, S as TreeNativeProps, T as TreeProps, _ as StatusType, b as TreeKey, d as _default, f as ActionConfig, g as StatusConfig, h as IconConfig, l as useTreeOperations, m as DropInfo, p as ButtonType, u as presetConfigs, v as TreeEmits, w as TreeOption, x as TreeMode, y as TreeExpose } from "./useTableQuery.js";
13
16
  import "./constants5.js";
14
17
  import "./useWorkflowValidation.js";
15
18
  import "./index24.vue.js";
@@ -1 +1 @@
1
- const e=require(`./chunk.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`);let r=require(`vue`),i=require(`naive-ui`),a=require(`spark-md5`);a=e.t(a);const o=2*1024*1024,s={pending:`等待上传`,validating:`校验文件…`,hashing:`计算校验…`,uploading:`上传中…`,success:`上传成功`,error:`上传失败`,paused:`已暂停`,instant:`秒传成功`},c={pending:`default`,validating:`info`,hashing:`info`,uploading:`info`,success:`success`,error:`error`,paused:`warning`,instant:`success`},l={"image/":`mdi:file-image-outline`,"video/":`mdi:file-video-outline`,"audio/":`mdi:file-music-outline`,"application/pdf":`mdi:file-pdf-box`,"application/zip":`mdi:folder-zip-outline`,"application/x-rar":`mdi:folder-zip-outline`,"application/vnd.ms-excel":`mdi:file-excel-outline`,"application/vnd.openxmlformats-officedocument.spreadsheetml":`mdi:file-excel-outline`,"application/msword":`mdi:file-word-outline`,"application/vnd.openxmlformats-officedocument.wordprocessingml":`mdi:file-word-outline`,"text/":`mdi:file-document-outline`,default:`mdi:file-outline`};function u(e){for(let[t,n]of Object.entries(l))if(t!==`default`&&e.startsWith(t))return n;return l.default}function d(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=Math.floor(Math.log(e)/Math.log(1024));return`${(e/1024**n).toFixed(n>0?1:0)} ${t[n]}`}function f(e){let t=[],n=new Set,i=0,a=!1,o=()=>{if(!a){a=!0;try{let n=Math.max(1,Math.trunc(e.value)||1);for(;i<n&&t.length;)t.shift()()}finally{a=!1}}};return(0,r.watch)(e,o),Object.assign((e,r)=>{let a=!1,s=!1,c,l=(e=!0)=>a?!1:(a=!0,n.delete(d),s&&--i,e&&o(),!0),u=()=>{if(!a){s=!0,i+=1;try{c=e({...r,onProgress:e=>{a||r.onProgress?.(e)},onSuccess:e=>{l()&&r.onSuccess?.(e)},onError:e=>{l()&&r.onError?.(e)}})}catch(e){l()&&r.onError?.(e instanceof Error?e:Error(String(e)))}}},d=()=>{let e=t.indexOf(u);if(e>=0&&t.splice(e,1),l(!1))try{c?.abort()}catch{}finally{o()}};return n.add(d),t.push(u),o(),{abort:d}},{abortAll(){let e=a;a=!0,t.length=0;try{for(let e of n)e()}finally{a=e}}})}const p=e=>new Promise((t,n)=>{let r,i,a=()=>{e?.removeEventListener(`abort`,o),r!==void 0&&cancelAnimationFrame(r),i!==void 0&&clearTimeout(i)},o=()=>{a(),n(e?.reason??new DOMException(`Hash cancelled`,`AbortError`))},s=()=>{a(),t()};if(e?.addEventListener(`abort`,o,{once:!0}),e?.aborted){o();return}typeof requestAnimationFrame==`function`?r=requestAnimationFrame(s):i=setTimeout(s,0)});function m(e){let t=(0,r.ref)(0),n=(0,r.ref)(0),i=(0,r.computed)(()=>t.value>0),o=Promise.resolve();async function s(e,t,n){let r=o,i;o=new Promise(e=>{i=e}),await r;try{return await c(e,t,n)}finally{i()}}async function c(r,i,o){o?.throwIfAborted(),t.value+=1,n.value=0,i?.(0);let s=new a.default.ArrayBuffer,c=Math.max(1,Math.trunc(Number(e.value)||1)),l=Math.max(1,Math.ceil(r.size/c));try{for(let e=0;e<l;e+=1){o?.throwIfAborted();let t=e*c,a=await r.slice(t,t+c).arrayBuffer();o?.throwIfAborted(),s.append(a),n.value=Math.round((e+1)/l*100),i?.(n.value),await p(o)}return o?.throwIfAborted(),s.end()}finally{t.value=Math.max(0,t.value-1)}}return{hashing:i,hashProgress:(0,r.readonly)(n),calculateHash:s}}function h(e){let t=new Map,n=new Map;function r(t){let n=Math.max(1,Math.trunc(Number(e.chunkSize.value)||1)),r=[],i=0,a=0;for(;a<t.size;){let e=Math.min(a+n,t.size);r.push({index:i,blob:t.slice(a,e),size:e-a,uploaded:!1}),a=e,i++}return r}async function i(t,n){if(e.uploadedChunksQuery?.value)try{let r=await e.uploadedChunksQuery.value(t);for(let e of r){let t=n[e];t&&(t.uploaded=!0)}}catch{}}function a(t){return new Promise((n,r)=>{let i=!1,a=()=>{i||(i=!0,n())},o=e=>{i||(i=!0,t.setError(),r(e instanceof Error?e:Error(String(e))))},s={action:e.action.value,headers:e.headers.value,data:{...e.data.value,hash:t.hash,chunkIndex:t.chunk.index,totalChunks:t.totalChunks,filename:t.file.name},file:t.chunk.blob,filename:t.file.name,hash:t.hash,chunkIndex:t.chunk.index,totalChunks:t.totalChunks,onProgress:()=>{},onSuccess:()=>{if(!i){if(t.isCancelled()){a();return}t.chunk.uploaded=!0,t.setUploadedBytes(t.chunk.size),t.onProgress({uploadedChunks:t.chunks.filter(e=>e.uploaded).length,totalChunks:t.totalChunks,uploadedBytes:t.chunks.filter(e=>e.uploaded).reduce((e,t)=>e+t.size,0),totalBytes:t.totalBytes}),a()}},onError:o};try{let n=e.customRequest?.value??g,r=e.scheduler?e.scheduler(n,s):n(s);t.abortControllers.push(()=>{try{r.abort()}catch{}finally{a()}})}catch(e){o(e)}})}async function o(o){let{uid:c,file:l,hash:u,onProgress:d,onSuccess:f,onError:p,isPaused:m}=o,h=Symbol(c);n.set(c,h);let g=()=>n.get(c)!==h,_=()=>{g()||n.delete(c)},v=r(l),y=v.length,b=l.size,x=0;if(await i(u,v),g()||m()){_();return}x=v.filter(e=>e.uploaded).reduce((e,t)=>e+t.size,0),d({uploadedChunks:v.filter(e=>e.uploaded).length,totalChunks:y,uploadedBytes:x,totalBytes:b});let S=v.filter(e=>!e.uploaded);if(S.length===0){try{g()||await s(u,l.name,y,f,p,g)}finally{_()}return}let C=[];t.set(c,C);let w=Math.max(1,Math.trunc(Number(e.concurrency.value)||1)),T=0,E=!1;async function D(){for(;T<S.length&&!E&&!m()&&!g();){let e=S[T++];await a({chunk:e,hash:u,file:l,totalChunks:y,chunks:v,totalBytes:b,abortControllers:C,onProgress:e=>{g()||d(e)},setUploadedBytes:e=>{x+=e},setError:()=>{E=!0},isCancelled:g})}}let O=Array.from({length:Math.min(w,S.length)},()=>D());try{let e=(await Promise.allSettled(O)).find(e=>e.status===`rejected`);e&&!g()?p(e.reason instanceof Error?e.reason:Error(String(e.reason))):!E&&!m()&&!g()&&await s(u,l.name,y,f,p,g)}finally{g()||t.delete(c),_()}}async function s(t,n,r,i,a,o){if(e.mergeChunks?.value)try{let a=await e.mergeChunks.value(t,n,r);o()||i(a)}catch(e){o()||a(e instanceof Error?e:Error(`分片合并失败`))}else o()||i({message:`分片上传完成(未配置合并函数)`})}function c(e){n.delete(e),t.get(e)?.forEach(e=>e()),t.delete(e)}function l(){n.clear(),t.forEach(e=>{e.forEach(e=>e())}),t.clear()}return{createChunks:r,uploadChunks:o,abortUpload:c,abortAll:l}}function g(e){let t=new XMLHttpRequest;t.open(`POST`,e.action),e.headers&&Object.entries(e.headers).forEach(([e,n])=>{t.setRequestHeader(e,n)}),t.upload.addEventListener(`progress`,t=>{t.lengthComputable&&e.onProgress?.(Math.round(t.loaded/t.total*100))}),t.addEventListener(`load`,()=>{if(t.status>=200&&t.status<300){let n;try{n=JSON.parse(t.responseText)}catch{n=t.responseText}e.onSuccess?.(n)}else e.onError?.(Error(`上传失败: HTTP ${t.status}`))}),t.addEventListener(`error`,()=>{e.onError?.(Error(`网络错误`))}),t.addEventListener(`abort`,()=>{e.onError?.(new DOMException(`上传已取消`,`AbortError`))});let n=new FormData;return n.append(`file`,e.file,e.filename),e.data&&Object.entries(e.data).forEach(([e,t])=>{n.append(e,String(t))}),t.send(n),{abort:()=>t.abort()}}function _(e){return e instanceof Error?e:Error(String(e))}function v(e){let t=[],n=(0,r.ref)(0),i=new Map,a=()=>{n.value=i.size},o=()=>Math.max(1,Math.trunc(Number(e.concurrency.value)||1));function s(){for(;i.size<o()&&t.length>0;){let n=t.shift(),{file:r}=n;if(!r.raw||i.has(r.uid))continue;let o=!1,c=e=>{o||(o=!0,i.delete(r.uid),a(),e?.error?n.onError(r.uid,e.error):e&&`response`in e&&n.onSuccess(r.uid,e.response),s())},l={action:e.action.value,headers:e.headers.value,data:e.data.value,file:r.raw,filename:r.name,onProgress:e=>n.onProgress(r.uid,e),onSuccess:e=>c({response:e}),onError:e=>c({error:e})};i.set(r.uid,{abort:()=>void 0,settle:c}),a();try{let t=e.customRequest?.value??y,n=e.scheduler?e.scheduler(t,l):t(l),a=i.get(r.uid);a&&(a.abort=n.abort)}catch(e){c({error:_(e)})}}}function c(e,n,r,i){l(e.uid),t.push({file:e,onProgress:n,onSuccess:r,onError:i}),s()}function l(e){for(let n=t.length-1;n>=0;--n)t[n].file.uid===e&&t.splice(n,1);let n=i.get(e);if(n){n.settle();try{n.abort()}catch{}}}function u(){t.length=0;let e=[...i.values()];i.clear(),a(),e.forEach(e=>{e.settle();try{e.abort()}catch{}})}return(0,r.watch)(e.concurrency,s),{activeCount:(0,r.readonly)(n),enqueue:c,abort:l,abortAll:u}}function y(e){let t=new XMLHttpRequest;t.open(`POST`,e.action),Object.entries(e.headers??{}).forEach(([e,n])=>{t.setRequestHeader(e,n)}),t.upload.addEventListener(`progress`,t=>{t.lengthComputable&&e.onProgress?.(Math.round(t.loaded/t.total*100))}),t.addEventListener(`load`,()=>{if(t.status>=200&&t.status<300){let n=t.responseText;try{n=JSON.parse(t.responseText)}catch{}e.onSuccess?.(n)}else e.onError?.(Error(`上传失败: HTTP ${t.status}`))}),t.addEventListener(`error`,()=>e.onError?.(Error(`网络错误`)));let n=new FormData;return n.append(`file`,e.file,e.filename),Object.entries(e.data??{}).forEach(([e,t])=>{n.append(e,String(t))}),t.send(n),{abort:()=>t.abort()}}function b(e){let t=(0,r.computed)(()=>e.action??``),n=(0,r.computed)(()=>e.headers??{}),i=(0,r.computed)(()=>e.data??{}),a=(0,r.computed)(()=>{let t=Math.trunc(Number(e.chunkSize));return Number.isFinite(t)&&t>0?t:o}),s=(0,r.computed)(()=>{let t=Math.trunc(Number(e.concurrency));return Number.isFinite(t)&&t>0?t:3}),c=(0,r.computed)(()=>e.customRequest),l=(0,r.computed)(()=>e.instantCheck),u=(0,r.computed)(()=>e.uploadedChunksQuery),d=(0,r.computed)(()=>e.mergeChunks),p=(0,r.ref)((e.defaultFileList??[]).map(e=>({...e}))),g=(0,r.reactive)(new Set),_=new Map,y=new Set,{hashing:b,hashProgress:x,calculateHash:S}=m(a),C=f(s),w=new Map,T=e=>{w.get(e)?.abort(),w.delete(e)},E=()=>{w.forEach(e=>e.abort()),w.clear()},D=h({scheduler:C,chunkSize:a,concurrency:s,action:t,headers:n,data:i,customRequest:c,uploadedChunksQuery:u,mergeChunks:d}),O=v({scheduler:C,concurrency:s,action:t,headers:n,data:i,customRequest:c}),k=(0,r.computed)(()=>{let e=p.value;if(e.length===0)return 0;let t=e.reduce((e,t)=>e+t.percent,0);return Math.round(t/e.length)});function A(){return typeof crypto<`u`&&`randomUUID`in crypto?`upload-${crypto.randomUUID()}`:`upload-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function j(e){if(e.type.startsWith(`image/`)){let t=URL.createObjectURL(e);return y.add(t),t}}function M(t){let n=[];for(let r of t){if(Number.isFinite(e.maxCount)&&(e.maxCount??0)>0&&p.value.length+n.length>=Math.trunc(e.maxCount))break;let t={uid:A(),name:r.name,size:r.size,type:r.type,status:`pending`,percent:0,raw:r,thumbUrl:j(r)};n.push(t)}return p.value.push(...n),n}function N(e,t){let n=p.value.find(t=>t.uid===e);n&&Object.assign(n,t)}function P(e){T(e),_.set(e,Symbol(e)),D.abortUpload(e),O.abort(e),g.delete(e);let t=p.value.findIndex(t=>t.uid===e);if(t!==-1){let e=p.value[t];L(e.thumbUrl),p.value.splice(t,1)}}function F(){C.abortAll(),E(),D.abortAll(),O.abortAll(),g.clear(),p.value.forEach(e=>{L(e.thumbUrl)}),p.value=[],_.clear()}async function I(t){if((e.maxSize??0)>0&&t.size>e.maxSize)return null;if(e.beforeUpload){let n=await e.beforeUpload(t);if(n===!1)return null;if(n instanceof File)return(e.maxSize??0)>0&&n.size>e.maxSize?null:n}return t}function L(e){!e||!y.has(e)||(URL.revokeObjectURL(e),y.delete(e))}function R(e,t){return _.get(e)===t&&!g.has(e)&&p.value.some(t=>t.uid===e)}async function z(e,t){T(e.uid);let n=new AbortController;w.set(e.uid,n);try{return await S(e.raw,n=>{R(e.uid,t)&&N(e.uid,{percent:n})},n.signal)}finally{w.get(e.uid)===n&&w.delete(e.uid)}}async function B(n){if(!n.raw)return;let r=Symbol(n.uid);_.set(n.uid,r),N(n.uid,{status:`validating`,error:void 0});let i;try{i=await I(n.raw)}catch(e){R(n.uid,r)&&N(n.uid,{status:`error`,error:e instanceof Error?e.message:`文件校验失败`});return}if(R(n.uid,r)){if(!i){N(n.uid,{status:`error`,error:`文件校验未通过`});return}if(i!==n.raw&&(L(n.thumbUrl),Object.assign(n,{raw:i,name:i.name,size:i.size,type:i.type,hash:void 0,chunkProgress:void 0,thumbUrl:j(i)})),!c.value&&!t.value.trim()){N(n.uid,{status:`error`,error:`未配置上传地址`});return}if(l.value&&!n.hash){N(n.uid,{status:`hashing`});try{let e=await z(n,r);if(!R(n.uid,r))return;N(n.uid,{hash:e});let t=await l.value(e,n.raw.name);if(!R(n.uid,r))return;if(t.exists){N(n.uid,{status:`instant`,percent:100,url:t.url});return}}catch{if(!R(n.uid,r))return}}e.chunked&&n.raw.size>a.value?await V(n,r):H(n,r)}}async function V(e,t){let n=e.raw,{hash:r}=e;if(!r){N(e.uid,{status:`hashing`});try{if(r=await z(e,t),!R(e.uid,t))return;N(e.uid,{hash:r})}catch{R(e.uid,t)&&N(e.uid,{status:`error`,error:`Hash 计算失败`});return}}N(e.uid,{status:`uploading`,percent:0}),await D.uploadChunks({uid:e.uid,file:n,hash:r,onProgress:n=>{if(!R(e.uid,t))return;let r=Math.round(n.uploadedBytes/n.totalBytes*100);N(e.uid,{percent:r,chunkProgress:n})},onSuccess:n=>{R(e.uid,t)&&N(e.uid,{status:`success`,percent:100,response:n})},onError:n=>{R(e.uid,t)&&N(e.uid,{status:`error`,error:n.message})},isPaused:()=>g.has(e.uid)})}function H(e,t){N(e.uid,{status:`uploading`,percent:0}),O.enqueue(e,(e,n)=>{R(e,t)&&N(e,{percent:n})},(e,n)=>{R(e,t)&&N(e,{status:`success`,percent:100,response:n})},(e,n)=>{R(e,t)&&N(e,{status:`error`,error:n.message})})}function U(){p.value.filter(e=>e.status===`pending`).forEach(e=>void B(e))}function W(){C.abortAll(),p.value.forEach(e=>{(e.status===`uploading`||e.status===`hashing`||e.status===`validating`)&&(T(e.uid),g.add(e.uid),_.set(e.uid,Symbol(e.uid)),D.abortUpload(e.uid),O.abort(e.uid),N(e.uid,{status:`paused`}))})}function G(){p.value.forEach(e=>{e.status===`paused`&&(g.delete(e.uid),N(e.uid,{status:`pending`}))}),U()}function K(e){let t=p.value.find(t=>t.uid===e);t&&t.status===`error`&&(N(e,{status:`pending`,percent:0,error:void 0}),B(t))}function q(){return p.value.filter(e=>e.status===`success`||e.status===`instant`)}return(0,r.onBeforeUnmount)(()=>{C.abortAll(),E(),D.abortAll(),O.abortAll(),_.clear(),p.value.forEach(e=>{L(e.thumbUrl)})}),{fileList:p,totalPercent:k,hashing:b,hashProgress:x,addFiles:M,removeFile:P,clearAll:F,startUpload:U,pauseAll:W,resumeAll:G,retryFile:K,processFile:B,getSuccessList:q}}function x(e,t,n,i,a){let o=(0,r.ref)(!1),s=null,c=!1;function l(e){t.value&&(e.preventDefault(),o.value=!0)}function u(e){t.value&&(e.preventDefault(),o.value=!0)}function d(n){if(!t.value)return;n.preventDefault();let r=e.value;r&&!r.contains(n.relatedTarget)&&(o.value=!1)}async function f(e){if(!t.value)return;e.preventDefault(),o.value=!1;let n=e.dataTransfer?.items;if(!n)return;let r=await S(n,e.dataTransfer);if(c||!t.value)return;let s=w(r,i.value);s.length>0&&a(s)}function p(e){if(!n.value)return;let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e=0;e<t.length;e++){let n=t[e];if(n.kind===`file`){let e=n.getAsFile();e&&r.push(e)}}let o=w(r,i.value);o.length>0&&(e.preventDefault(),a(o))}function m(){let t=e.value;!t||s===t||(s=t,t.addEventListener(`dragenter`,l),t.addEventListener(`dragover`,u),t.addEventListener(`dragleave`,d),t.addEventListener(`drop`,f),n.value&&t.addEventListener(`paste`,p))}function h(){let e=s;e&&(e.removeEventListener(`dragenter`,l),e.removeEventListener(`dragover`,u),e.removeEventListener(`dragleave`,d),e.removeEventListener(`drop`,f)),e?.removeEventListener(`paste`,p),s=null}return(0,r.onMounted)(()=>{c=!1,m()}),(0,r.onBeforeUnmount)(()=>{c=!0,h()}),(0,r.watch)([e,t,n],()=>{h(),m()}),{isDragOver:(0,r.readonly)(o)}}async function S(e,t){let n=[];for(let t=0;t<e.length;t++){let r=e[t].webkitGetAsEntry?.();r&&n.push(r)}if(n.length>0)return(await Promise.all(n.map(C))).flat();let r=[],i=t?.files;if(i)for(let e=0;e<i.length;e++)r.push(i[e]);return r}async function C(e){if(e.isFile)return new Promise(t=>{e.file(e=>t([e]),()=>t([]))});if(e.isDirectory){let t=e.createReader(),n=[];for(;;){let e=await new Promise(e=>{t.readEntries(t=>e(t),()=>e([]))});if(e.length===0)break;n.push(...e)}return(await Promise.all(n.map(C))).flat()}return[]}function w(e,t){if(!t)return e;let n=t.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean);return n.length===0?e:e.filter(e=>n.some(t=>{if(t.startsWith(`.`))return e.name.toLowerCase().endsWith(t);if(t.endsWith(`/*`)){let n=t.replace(`/*`,``);return e.type.toLowerCase().startsWith(`${n}/`)}return e.type.toLowerCase()===t}))}const T=[`tabindex`,`aria-disabled`,`onKeydown`],E=[`accept`,`multiple`,`webkitdirectory`,`disabled`],D={class:`upload-area__default`},O={class:`upload-area__text`},k={key:0},A={key:1},j={key:0,class:`upload-area__tip`},M=(0,r.defineComponent)({__name:`UploadArea`,props:{accept:{default:``},multiple:{type:Boolean,default:!1},directory:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},pasteable:{type:Boolean,default:!1},tip:{default:``}},emits:[`files`],setup(e,{expose:n,emit:i}){let a=e,o=i,s=(0,r.ref)(),c=(0,r.ref)(),{isDragOver:l}=x(s,(0,r.computed)(()=>a.draggable&&!a.disabled),(0,r.computed)(()=>a.pasteable&&!a.disabled),(0,r.computed)(()=>a.accept),e=>o(`files`,e));function u(){a.disabled||c.value?.click()}function d(e){let t=e.target,n=a.disabled?[]:w(Array.from(t.files??[]),a.accept);n.length>0&&o(`files`,n),t.value=``}return n({triggerSelect:u}),(n,i)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{ref_key:`areaRef`,ref:s,class:(0,r.normalizeClass)([`upload-area`,{"upload-area--drag-over":(0,r.unref)(l),"upload-area--disabled":e.disabled}]),role:`button`,tabindex:e.disabled?-1:0,"aria-disabled":e.disabled,onClick:u,onKeydown:[(0,r.withKeys)((0,r.withModifiers)(u,[`prevent`]),[`enter`]),(0,r.withKeys)((0,r.withModifiers)(u,[`prevent`]),[`space`])]},[(0,r.createElementVNode)(`input`,{ref_key:`inputRef`,ref:c,type:`file`,class:`upload-area__input`,accept:e.accept,multiple:e.multiple,webkitdirectory:e.directory||void 0,disabled:e.disabled,onClick:i[0]||=(0,r.withModifiers)(()=>{},[`stop`]),onChange:d},null,40,E),(0,r.renderSlot)(n.$slots,`default`,{},()=>[(0,r.createElementVNode)(`div`,D,[(0,r.createVNode)(t.t,{name:(0,r.unref)(l)?`mdi:cloud-download-outline`:`mdi:cloud-upload-outline`,class:`upload-area__icon`},null,8,[`name`]),(0,r.createElementVNode)(`div`,O,[(0,r.unref)(l)?((0,r.openBlock)(),(0,r.createElementBlock)(`span`,k,`释放文件到此处`)):((0,r.openBlock)(),(0,r.createElementBlock)(`span`,A,[i[4]||=(0,r.createTextVNode)(` 点击或拖拽文件到此区域上传 `,-1),e.pasteable?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:0},[i[1]||=(0,r.createTextVNode)(` ,支持 `,-1),i[2]||=(0,r.createElementVNode)(`kbd`,null,`Ctrl+V`,-1),i[3]||=(0,r.createTextVNode)(` 粘贴 `,-1)],64)):(0,r.createCommentVNode)(`v-if`,!0)]))]),e.tip?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,j,(0,r.toDisplayString)(e.tip),1)):(0,r.createCommentVNode)(`v-if`,!0)])],!0)],42,T))}});var N=n.t(M,[[`__scopeId`,`data-v-705892ab`]]);const P={class:`file-list__thumb`},F=[`src`,`alt`],I={class:`file-list__info`},L={class:`file-list__name`},R={class:`file-list__meta`},z={class:`file-list__size`},B={key:0,class:`file-list__instant`},V={key:1,class:`file-list__chunk-info`},H={key:2,class:`file-list__error`},U={class:`file-list__actions`},W=(0,r.defineComponent)({__name:`FileList`,props:{fileList:{},showThumbnail:{type:Boolean}},emits:[`remove`,`retry`],setup(e,{emit:n}){let a=n;return(n,o)=>((0,r.openBlock)(),(0,r.createBlock)(r.TransitionGroup,{name:`file-list`,tag:`div`,class:`file-list`},{default:(0,r.withCtx)(()=>[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(e.fileList,n=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:n.uid,class:(0,r.normalizeClass)([`file-list__item`,`file-list__item--${n.status}`])},[(0,r.createCommentVNode)(` 缩略图 / 图标 `),(0,r.createElementVNode)(`div`,P,[e.showThumbnail&&n.thumbUrl?((0,r.openBlock)(),(0,r.createElementBlock)(`img`,{key:0,src:n.thumbUrl,alt:n.name,class:`file-list__thumb-img`},null,8,F)):((0,r.openBlock)(),(0,r.createBlock)(t.t,{key:1,name:(0,r.unref)(u)(n.type),class:`file-list__thumb-icon`},null,8,[`name`]))]),(0,r.createCommentVNode)(` 文件信息 `),(0,r.createElementVNode)(`div`,I,[(0,r.createElementVNode)(`div`,L,[(0,r.createVNode)((0,r.unref)(i.NEllipsis),{"line-clamp":1},{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)(n.name),1)]),_:2},1024)]),(0,r.createElementVNode)(`div`,R,[(0,r.createElementVNode)(`span`,z,(0,r.toDisplayString)((0,r.unref)(d)(n.size)),1),(0,r.createVNode)((0,r.unref)(i.NTag),{type:(0,r.unref)(c)[n.status]||`default`,size:`tiny`,bordered:!1},{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)((0,r.unref)(s)[n.status]||n.status),1)]),_:2},1032,[`type`]),n.status===`instant`?((0,r.openBlock)(),(0,r.createElementBlock)(`span`,B,` ⚡ `)):(0,r.createCommentVNode)(`v-if`,!0)]),(0,r.createCommentVNode)(` 进度条 `),n.status===`uploading`||n.status===`hashing`?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NProgress),{key:0,percentage:n.percent,height:4,"border-radius":2,"show-indicator":!1,status:n.status===`hashing`?`info`:`success`},null,8,[`percentage`,`status`])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 分片进度描述 `),n.chunkProgress&&n.status===`uploading`?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,V,` 分片 `+(0,r.toDisplayString)(n.chunkProgress.uploadedChunks)+`/`+(0,r.toDisplayString)(n.chunkProgress.totalChunks),1)):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 错误信息 `),n.status===`error`&&n.error?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,H,(0,r.toDisplayString)(n.error),1)):(0,r.createCommentVNode)(`v-if`,!0)]),(0,r.createCommentVNode)(` 操作按钮 `),(0,r.createElementVNode)(`div`,U,[n.status===`error`?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NButton),{key:0,text:``,type:`warning`,size:`tiny`,"aria-label":`重试上传`,onClick:e=>a(`retry`,n.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:refresh`})]),_:1},8,[`onClick`])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createVNode)((0,r.unref)(i.NButton),{text:``,type:`error`,size:`tiny`,"aria-label":`移除文件`,onClick:e=>a(`remove`,n.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:close`})]),_:1},8,[`onClick`])])],2))),128))]),_:1}))}});var G=n.t(W,[[`__scopeId`,`data-v-04f26012`]]);const K={key:0,class:`image-preview`},q=[`src`,`alt`],J={class:`image-preview__overlay`},Y={key:0,class:`image-preview__progress`},X={class:`image-preview__actions`},Z={class:`image-preview__name`},Q=(0,r.defineComponent)({__name:`ImagePreview`,props:{fileList:{}},emits:[`remove`,`retry`],setup(e,{emit:n}){let a=e,o=n,s=(0,r.computed)(()=>a.fileList.filter(e=>e.type?.startsWith(`image/`)));return(e,n)=>s.value.length>0?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,K,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(s.value,e=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:e.uid,class:(0,r.normalizeClass)([`image-preview__item`,`image-preview__item--${e.status}`])},[e.thumbUrl?((0,r.openBlock)(),(0,r.createElementBlock)(`img`,{key:0,src:e.thumbUrl,alt:e.name,class:`image-preview__img`},null,8,q)):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 遮罩层 `),(0,r.createElementVNode)(`div`,J,[(0,r.createCommentVNode)(` 上传中进度 `),e.status===`uploading`||e.status===`hashing`?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,Y,[(0,r.createVNode)((0,r.unref)(i.NProgress),{type:`circle`,percentage:e.percent,"stroke-width":3,style:{width:`40px`}},null,8,[`percentage`])])):e.status===`success`||e.status===`instant`?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[(0,r.createCommentVNode)(` 状态图标 `),(0,r.createVNode)(t.t,{name:`mdi:check-circle`,class:`image-preview__status-icon image-preview__status-icon--success`})],2112)):e.status===`error`?((0,r.openBlock)(),(0,r.createBlock)(t.t,{key:2,name:`mdi:alert-circle`,class:`image-preview__status-icon image-preview__status-icon--error`})):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 操作 `),(0,r.createElementVNode)(`div`,X,[e.status===`error`?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NButton),{key:0,circle:``,size:`tiny`,type:`warning`,"aria-label":`重试上传`,onClick:t=>o(`retry`,e.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:refresh`})]),_:1},8,[`onClick`])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createVNode)((0,r.unref)(i.NButton),{circle:``,size:`tiny`,type:`error`,"aria-label":`移除文件`,onClick:t=>o(`remove`,e.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:close`})]),_:1},8,[`onClick`])])]),(0,r.createCommentVNode)(` 文件名 `),(0,r.createElementVNode)(`div`,Z,[(0,r.createVNode)((0,r.unref)(i.NEllipsis),{"line-clamp":1},{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.name),1)]),_:2},1024)])],2))),128))])):(0,r.createCommentVNode)(`v-if`,!0)}});var $=n.t(Q,[[`__scopeId`,`data-v-32d39ae9`]]);const ee={class:`c-upload`},te={key:0,class:`c-upload__total-progress`},ne={class:`c-upload__total-label`},re=(0,r.defineComponent)({__name:`index`,props:{action:{default:``},headers:{default:()=>({})},data:{default:()=>({})},multiple:{type:Boolean,default:!1},directory:{type:Boolean,default:!1},accept:{default:``},maxSize:{default:0},maxCount:{default:0},disabled:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},pasteable:{type:Boolean,default:!1},chunked:{type:Boolean,default:!1},chunkSize:{default:o},concurrency:{default:3},showFileList:{type:Boolean,default:!0},listType:{default:`text`},showThumbnail:{type:Boolean,default:!0},customRequest:{},instantCheck:{},uploadedChunksQuery:{},mergeChunks:{},beforeUpload:{},tip:{default:``},defaultFileList:{default:()=>[]}},emits:[`change`,`success`,`error`,`progress`,`remove`,`finish`,`exceed`],setup(e,{expose:t,emit:n}){let a=e,o=n,s=(0,r.ref)(),{fileList:c,totalPercent:l,addFiles:u,removeFile:d,clearAll:f,startUpload:p,pauseAll:m,resumeAll:h,retryFile:g,processFile:_,getSuccessList:v}=b(a),y=(0,r.computed)(()=>c.value.some(e=>e.status===`uploading`||e.status===`hashing`||e.status===`validating`)),x=e=>({...e}),S=()=>c.value.map(x);function C(e){let t=Math.max(0,Math.trunc(Number(a.maxCount)||0));if(t>0&&c.value.length+e.length>t){o(`exceed`,e,S());let n=t-c.value.length;if(n<=0)return;e=e.slice(0,n)}let n=u(e);o(`change`,S()),n.forEach(e=>void _(e))}function w(e){let t=c.value.find(t=>t.uid===e);t&&(o(`remove`,x(t)),d(e),o(`change`,S()))}function T(e){g(e)}let E=new Map,D=!1;return(0,r.watch)(c,e=>{let t=new Set(e.map(e=>e.uid));E.forEach((e,n)=>{t.has(n)||E.delete(n)}),e.forEach(e=>{let t=E.get(e.uid);t&&t.percent!==e.percent&&o(`progress`,x(e),e.percent),t&&t.status!==e.status&&(e.status===`success`||e.status===`instant`)&&o(`success`,x(e),e.response),t&&t.status!==`error`&&e.status===`error`&&o(`error`,x(e),Error(e.error||`上传失败`)),E.set(e.uid,{status:e.status,percent:e.percent})}),e.length>0&&e.every(e=>e.status===`success`||e.status===`instant`||e.status===`error`)?(D||o(`finish`,S()),D=!0):D=!1,o(`change`,S())},{deep:!0}),t({selectFiles:()=>s.value?.triggerSelect(),startUpload:p,pauseAll:m,resumeAll:h,clearAll:()=>{f(),o(`change`,S())},removeFile:e=>{w(e)},retryFile:g,getFileList:S,getSuccessList:()=>v().map(x),get totalPercent(){return l.value}}),(e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,ee,[(0,r.createCommentVNode)(` 上传区域 `),(0,r.createVNode)(N,{ref_key:`uploadAreaRef`,ref:s,accept:a.accept,multiple:a.multiple,directory:a.directory,disabled:a.disabled,draggable:a.draggable,pasteable:a.pasteable,tip:a.tip,onFiles:C},{default:(0,r.withCtx)(()=>[(0,r.renderSlot)(e.$slots,`area`,{},void 0,!0)]),_:3},8,[`accept`,`multiple`,`directory`,`disabled`,`draggable`,`pasteable`,`tip`]),(0,r.createCommentVNode)(` 总进度条 `),y.value?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,te,[(0,r.createElementVNode)(`div`,ne,[t[0]||=(0,r.createElementVNode)(`span`,null,`总进度`,-1),(0,r.createElementVNode)(`span`,null,(0,r.toDisplayString)((0,r.unref)(l))+`%`,1)]),(0,r.createVNode)((0,r.unref)(i.NProgress),{percentage:(0,r.unref)(l),height:6,"border-radius":3,"show-indicator":!1,status:`success`},null,8,[`percentage`])])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 图片预览模式 `),a.listType===`image`?((0,r.openBlock)(),(0,r.createBlock)($,{key:1,"file-list":(0,r.unref)(c),onRemove:w,onRetry:T},null,8,[`file-list`])):a.showFileList&&(0,r.unref)(c).length>0?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:2},[(0,r.createCommentVNode)(` 文件列表模式 `),(0,r.createVNode)(G,{"file-list":(0,r.unref)(c),"show-thumbnail":a.showThumbnail,onRemove:w,onRetry:T},null,8,[`file-list`,`show-thumbnail`])],2112)):(0,r.createCommentVNode)(`v-if`,!0)]))}});var ie=n.t(re,[[`__scopeId`,`data-v-58ca8e42`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return ie}});
1
+ const e=require(`./chunk.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`);let r=require(`vue`),i=require(`naive-ui`),a=require(`spark-md5`);a=e.n(a);const o=2*1024*1024,s={pending:`等待上传`,validating:`校验文件…`,hashing:`计算校验…`,uploading:`上传中…`,success:`上传成功`,error:`上传失败`,paused:`已暂停`,instant:`秒传成功`},c={pending:`default`,validating:`info`,hashing:`info`,uploading:`info`,success:`success`,error:`error`,paused:`warning`,instant:`success`},l={"image/":`mdi:file-image-outline`,"video/":`mdi:file-video-outline`,"audio/":`mdi:file-music-outline`,"application/pdf":`mdi:file-pdf-box`,"application/zip":`mdi:folder-zip-outline`,"application/x-rar":`mdi:folder-zip-outline`,"application/vnd.ms-excel":`mdi:file-excel-outline`,"application/vnd.openxmlformats-officedocument.spreadsheetml":`mdi:file-excel-outline`,"application/msword":`mdi:file-word-outline`,"application/vnd.openxmlformats-officedocument.wordprocessingml":`mdi:file-word-outline`,"text/":`mdi:file-document-outline`,default:`mdi:file-outline`};function u(e){for(let[t,n]of Object.entries(l))if(t!==`default`&&e.startsWith(t))return n;return l.default}function d(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=Math.floor(Math.log(e)/Math.log(1024));return`${(e/1024**n).toFixed(n>0?1:0)} ${t[n]}`}function f(e){let t=[],n=new Set,i=0,a=!1,o=()=>{if(!a){a=!0;try{let n=Math.max(1,Math.trunc(e.value)||1);for(;i<n&&t.length;)t.shift()()}finally{a=!1}}};return(0,r.watch)(e,o),Object.assign((e,r)=>{let a=!1,s=!1,c,l=(e=!0)=>a?!1:(a=!0,n.delete(d),s&&--i,e&&o(),!0),u=()=>{if(!a){s=!0,i+=1;try{c=e({...r,onProgress:e=>{a||r.onProgress?.(e)},onSuccess:e=>{l()&&r.onSuccess?.(e)},onError:e=>{l()&&r.onError?.(e)}})}catch(e){l()&&r.onError?.(e instanceof Error?e:Error(String(e)))}}},d=()=>{let e=t.indexOf(u);if(e>=0&&t.splice(e,1),l(!1))try{c?.abort()}catch{}finally{o()}};return n.add(d),t.push(u),o(),{abort:d}},{abortAll(){let e=a;a=!0,t.length=0;try{for(let e of n)e()}finally{a=e}}})}const p=e=>new Promise((t,n)=>{let r,i,a=()=>{e?.removeEventListener(`abort`,o),r!==void 0&&cancelAnimationFrame(r),i!==void 0&&clearTimeout(i)},o=()=>{a(),n(e?.reason??new DOMException(`Hash cancelled`,`AbortError`))},s=()=>{a(),t()};if(e?.addEventListener(`abort`,o,{once:!0}),e?.aborted){o();return}typeof requestAnimationFrame==`function`?r=requestAnimationFrame(s):i=setTimeout(s,0)});function m(e){let t=(0,r.ref)(0),n=(0,r.ref)(0),i=(0,r.computed)(()=>t.value>0),o=Promise.resolve();async function s(e,t,n){let r=o,i;o=new Promise(e=>{i=e}),await r;try{return await c(e,t,n)}finally{i()}}async function c(r,i,o){o?.throwIfAborted(),t.value+=1,n.value=0,i?.(0);let s=new a.default.ArrayBuffer,c=Math.max(1,Math.trunc(Number(e.value)||1)),l=Math.max(1,Math.ceil(r.size/c));try{for(let e=0;e<l;e+=1){o?.throwIfAborted();let t=e*c,a=await r.slice(t,t+c).arrayBuffer();o?.throwIfAborted(),s.append(a),n.value=Math.round((e+1)/l*100),i?.(n.value),await p(o)}return o?.throwIfAborted(),s.end()}finally{t.value=Math.max(0,t.value-1)}}return{hashing:i,hashProgress:(0,r.readonly)(n),calculateHash:s}}function h(e){let t=new Map,n=new Map;function r(t){let n=Math.max(1,Math.trunc(Number(e.chunkSize.value)||1)),r=[],i=0,a=0;for(;a<t.size;){let e=Math.min(a+n,t.size);r.push({index:i,blob:t.slice(a,e),size:e-a,uploaded:!1}),a=e,i++}return r}async function i(t,n){if(e.uploadedChunksQuery?.value)try{let r=await e.uploadedChunksQuery.value(t);for(let e of r){let t=n[e];t&&(t.uploaded=!0)}}catch{}}function a(t){return new Promise((n,r)=>{let i=!1,a=()=>{i||(i=!0,n())},o=e=>{i||(i=!0,t.setError(),r(e instanceof Error?e:Error(String(e))))},s={action:e.action.value,headers:e.headers.value,data:{...e.data.value,hash:t.hash,chunkIndex:t.chunk.index,totalChunks:t.totalChunks,filename:t.file.name},file:t.chunk.blob,filename:t.file.name,hash:t.hash,chunkIndex:t.chunk.index,totalChunks:t.totalChunks,onProgress:()=>{},onSuccess:()=>{if(!i){if(t.isCancelled()){a();return}t.chunk.uploaded=!0,t.setUploadedBytes(t.chunk.size),t.onProgress({uploadedChunks:t.chunks.filter(e=>e.uploaded).length,totalChunks:t.totalChunks,uploadedBytes:t.chunks.filter(e=>e.uploaded).reduce((e,t)=>e+t.size,0),totalBytes:t.totalBytes}),a()}},onError:o};try{let n=e.customRequest?.value??g,r=e.scheduler?e.scheduler(n,s):n(s);t.abortControllers.push(()=>{try{r.abort()}catch{}finally{a()}})}catch(e){o(e)}})}async function o(o){let{uid:c,file:l,hash:u,onProgress:d,onSuccess:f,onError:p,isPaused:m}=o,h=Symbol(c);n.set(c,h);let g=()=>n.get(c)!==h,_=()=>{g()||n.delete(c)},v=r(l),y=v.length,b=l.size,x=0;if(await i(u,v),g()||m()){_();return}x=v.filter(e=>e.uploaded).reduce((e,t)=>e+t.size,0),d({uploadedChunks:v.filter(e=>e.uploaded).length,totalChunks:y,uploadedBytes:x,totalBytes:b});let S=v.filter(e=>!e.uploaded);if(S.length===0){try{g()||await s(u,l.name,y,f,p,g)}finally{_()}return}let C=[];t.set(c,C);let w=Math.max(1,Math.trunc(Number(e.concurrency.value)||1)),T=0,E=!1;async function D(){for(;T<S.length&&!E&&!m()&&!g();){let e=S[T++];await a({chunk:e,hash:u,file:l,totalChunks:y,chunks:v,totalBytes:b,abortControllers:C,onProgress:e=>{g()||d(e)},setUploadedBytes:e=>{x+=e},setError:()=>{E=!0},isCancelled:g})}}let O=Array.from({length:Math.min(w,S.length)},()=>D());try{let e=(await Promise.allSettled(O)).find(e=>e.status===`rejected`);e&&!g()?p(e.reason instanceof Error?e.reason:Error(String(e.reason))):!E&&!m()&&!g()&&await s(u,l.name,y,f,p,g)}finally{g()||t.delete(c),_()}}async function s(t,n,r,i,a,o){if(e.mergeChunks?.value)try{let a=await e.mergeChunks.value(t,n,r);o()||i(a)}catch(e){o()||a(e instanceof Error?e:Error(`分片合并失败`))}else o()||i({message:`分片上传完成(未配置合并函数)`})}function c(e){n.delete(e),t.get(e)?.forEach(e=>e()),t.delete(e)}function l(){n.clear(),t.forEach(e=>{e.forEach(e=>e())}),t.clear()}return{createChunks:r,uploadChunks:o,abortUpload:c,abortAll:l}}function g(e){let t=new XMLHttpRequest;t.open(`POST`,e.action),e.headers&&Object.entries(e.headers).forEach(([e,n])=>{t.setRequestHeader(e,n)}),t.upload.addEventListener(`progress`,t=>{t.lengthComputable&&e.onProgress?.(Math.round(t.loaded/t.total*100))}),t.addEventListener(`load`,()=>{if(t.status>=200&&t.status<300){let n;try{n=JSON.parse(t.responseText)}catch{n=t.responseText}e.onSuccess?.(n)}else e.onError?.(Error(`上传失败: HTTP ${t.status}`))}),t.addEventListener(`error`,()=>{e.onError?.(Error(`网络错误`))}),t.addEventListener(`abort`,()=>{e.onError?.(new DOMException(`上传已取消`,`AbortError`))});let n=new FormData;return n.append(`file`,e.file,e.filename),e.data&&Object.entries(e.data).forEach(([e,t])=>{n.append(e,String(t))}),t.send(n),{abort:()=>t.abort()}}function _(e){return e instanceof Error?e:Error(String(e))}function v(e){let t=[],n=(0,r.ref)(0),i=new Map,a=()=>{n.value=i.size},o=()=>Math.max(1,Math.trunc(Number(e.concurrency.value)||1));function s(){for(;i.size<o()&&t.length>0;){let n=t.shift(),{file:r}=n;if(!r.raw||i.has(r.uid))continue;let o=!1,c=e=>{o||(o=!0,i.delete(r.uid),a(),e?.error?n.onError(r.uid,e.error):e&&`response`in e&&n.onSuccess(r.uid,e.response),s())},l={action:e.action.value,headers:e.headers.value,data:e.data.value,file:r.raw,filename:r.name,onProgress:e=>n.onProgress(r.uid,e),onSuccess:e=>c({response:e}),onError:e=>c({error:e})};i.set(r.uid,{abort:()=>void 0,settle:c}),a();try{let t=e.customRequest?.value??y,n=e.scheduler?e.scheduler(t,l):t(l),a=i.get(r.uid);a&&(a.abort=n.abort)}catch(e){c({error:_(e)})}}}function c(e,n,r,i){l(e.uid),t.push({file:e,onProgress:n,onSuccess:r,onError:i}),s()}function l(e){for(let n=t.length-1;n>=0;--n)t[n].file.uid===e&&t.splice(n,1);let n=i.get(e);if(n){n.settle();try{n.abort()}catch{}}}function u(){t.length=0;let e=[...i.values()];i.clear(),a(),e.forEach(e=>{e.settle();try{e.abort()}catch{}})}return(0,r.watch)(e.concurrency,s),{activeCount:(0,r.readonly)(n),enqueue:c,abort:l,abortAll:u}}function y(e){let t=new XMLHttpRequest;t.open(`POST`,e.action),Object.entries(e.headers??{}).forEach(([e,n])=>{t.setRequestHeader(e,n)}),t.upload.addEventListener(`progress`,t=>{t.lengthComputable&&e.onProgress?.(Math.round(t.loaded/t.total*100))}),t.addEventListener(`load`,()=>{if(t.status>=200&&t.status<300){let n=t.responseText;try{n=JSON.parse(t.responseText)}catch{}e.onSuccess?.(n)}else e.onError?.(Error(`上传失败: HTTP ${t.status}`))}),t.addEventListener(`error`,()=>e.onError?.(Error(`网络错误`)));let n=new FormData;return n.append(`file`,e.file,e.filename),Object.entries(e.data??{}).forEach(([e,t])=>{n.append(e,String(t))}),t.send(n),{abort:()=>t.abort()}}function b(e){let t=(0,r.computed)(()=>e.action??``),n=(0,r.computed)(()=>e.headers??{}),i=(0,r.computed)(()=>e.data??{}),a=(0,r.computed)(()=>{let t=Math.trunc(Number(e.chunkSize));return Number.isFinite(t)&&t>0?t:o}),s=(0,r.computed)(()=>{let t=Math.trunc(Number(e.concurrency));return Number.isFinite(t)&&t>0?t:3}),c=(0,r.computed)(()=>e.customRequest),l=(0,r.computed)(()=>e.instantCheck),u=(0,r.computed)(()=>e.uploadedChunksQuery),d=(0,r.computed)(()=>e.mergeChunks),p=(0,r.ref)((e.defaultFileList??[]).map(e=>({...e}))),g=(0,r.reactive)(new Set),_=new Map,y=new Set,{hashing:b,hashProgress:x,calculateHash:S}=m(a),C=f(s),w=new Map,T=e=>{w.get(e)?.abort(),w.delete(e)},E=()=>{w.forEach(e=>e.abort()),w.clear()},D=h({scheduler:C,chunkSize:a,concurrency:s,action:t,headers:n,data:i,customRequest:c,uploadedChunksQuery:u,mergeChunks:d}),O=v({scheduler:C,concurrency:s,action:t,headers:n,data:i,customRequest:c}),k=(0,r.computed)(()=>{let e=p.value;if(e.length===0)return 0;let t=e.reduce((e,t)=>e+t.percent,0);return Math.round(t/e.length)});function A(){return typeof crypto<`u`&&`randomUUID`in crypto?`upload-${crypto.randomUUID()}`:`upload-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function j(e){if(e.type.startsWith(`image/`)){let t=URL.createObjectURL(e);return y.add(t),t}}function M(t){let n=[];for(let r of t){if(Number.isFinite(e.maxCount)&&(e.maxCount??0)>0&&p.value.length+n.length>=Math.trunc(e.maxCount))break;let t={uid:A(),name:r.name,size:r.size,type:r.type,status:`pending`,percent:0,raw:r,thumbUrl:j(r)};n.push(t)}return p.value.push(...n),n}function N(e,t){let n=p.value.find(t=>t.uid===e);n&&Object.assign(n,t)}function P(e){T(e),_.set(e,Symbol(e)),D.abortUpload(e),O.abort(e),g.delete(e);let t=p.value.findIndex(t=>t.uid===e);if(t!==-1){let e=p.value[t];L(e.thumbUrl),p.value.splice(t,1)}}function F(){C.abortAll(),E(),D.abortAll(),O.abortAll(),g.clear(),p.value.forEach(e=>{L(e.thumbUrl)}),p.value=[],_.clear()}async function I(t){if((e.maxSize??0)>0&&t.size>e.maxSize)return null;if(e.beforeUpload){let n=await e.beforeUpload(t);if(n===!1)return null;if(n instanceof File)return(e.maxSize??0)>0&&n.size>e.maxSize?null:n}return t}function L(e){!e||!y.has(e)||(URL.revokeObjectURL(e),y.delete(e))}function R(e,t){return _.get(e)===t&&!g.has(e)&&p.value.some(t=>t.uid===e)}async function z(e,t){T(e.uid);let n=new AbortController;w.set(e.uid,n);try{return await S(e.raw,n=>{R(e.uid,t)&&N(e.uid,{percent:n})},n.signal)}finally{w.get(e.uid)===n&&w.delete(e.uid)}}async function B(n){if(!n.raw)return;let r=Symbol(n.uid);_.set(n.uid,r),N(n.uid,{status:`validating`,error:void 0});let i;try{i=await I(n.raw)}catch(e){R(n.uid,r)&&N(n.uid,{status:`error`,error:e instanceof Error?e.message:`文件校验失败`});return}if(R(n.uid,r)){if(!i){N(n.uid,{status:`error`,error:`文件校验未通过`});return}if(i!==n.raw&&(L(n.thumbUrl),Object.assign(n,{raw:i,name:i.name,size:i.size,type:i.type,hash:void 0,chunkProgress:void 0,thumbUrl:j(i)})),!c.value&&!t.value.trim()){N(n.uid,{status:`error`,error:`未配置上传地址`});return}if(l.value&&!n.hash){N(n.uid,{status:`hashing`});try{let e=await z(n,r);if(!R(n.uid,r))return;N(n.uid,{hash:e});let t=await l.value(e,n.raw.name);if(!R(n.uid,r))return;if(t.exists){N(n.uid,{status:`instant`,percent:100,url:t.url});return}}catch{if(!R(n.uid,r))return}}e.chunked&&n.raw.size>a.value?await V(n,r):H(n,r)}}async function V(e,t){let n=e.raw,{hash:r}=e;if(!r){N(e.uid,{status:`hashing`});try{if(r=await z(e,t),!R(e.uid,t))return;N(e.uid,{hash:r})}catch{R(e.uid,t)&&N(e.uid,{status:`error`,error:`Hash 计算失败`});return}}N(e.uid,{status:`uploading`,percent:0}),await D.uploadChunks({uid:e.uid,file:n,hash:r,onProgress:n=>{if(!R(e.uid,t))return;let r=Math.round(n.uploadedBytes/n.totalBytes*100);N(e.uid,{percent:r,chunkProgress:n})},onSuccess:n=>{R(e.uid,t)&&N(e.uid,{status:`success`,percent:100,response:n})},onError:n=>{R(e.uid,t)&&N(e.uid,{status:`error`,error:n.message})},isPaused:()=>g.has(e.uid)})}function H(e,t){N(e.uid,{status:`uploading`,percent:0}),O.enqueue(e,(e,n)=>{R(e,t)&&N(e,{percent:n})},(e,n)=>{R(e,t)&&N(e,{status:`success`,percent:100,response:n})},(e,n)=>{R(e,t)&&N(e,{status:`error`,error:n.message})})}function U(){p.value.filter(e=>e.status===`pending`).forEach(e=>void B(e))}function W(){C.abortAll(),p.value.forEach(e=>{(e.status===`uploading`||e.status===`hashing`||e.status===`validating`)&&(T(e.uid),g.add(e.uid),_.set(e.uid,Symbol(e.uid)),D.abortUpload(e.uid),O.abort(e.uid),N(e.uid,{status:`paused`}))})}function G(){p.value.forEach(e=>{e.status===`paused`&&(g.delete(e.uid),N(e.uid,{status:`pending`}))}),U()}function K(e){let t=p.value.find(t=>t.uid===e);t&&t.status===`error`&&(N(e,{status:`pending`,percent:0,error:void 0}),B(t))}function q(){return p.value.filter(e=>e.status===`success`||e.status===`instant`)}return(0,r.onBeforeUnmount)(()=>{C.abortAll(),E(),D.abortAll(),O.abortAll(),_.clear(),p.value.forEach(e=>{L(e.thumbUrl)})}),{fileList:p,totalPercent:k,hashing:b,hashProgress:x,addFiles:M,removeFile:P,clearAll:F,startUpload:U,pauseAll:W,resumeAll:G,retryFile:K,processFile:B,getSuccessList:q}}function x(e,t,n,i,a){let o=(0,r.ref)(!1),s=null,c=!1;function l(e){t.value&&(e.preventDefault(),o.value=!0)}function u(e){t.value&&(e.preventDefault(),o.value=!0)}function d(n){if(!t.value)return;n.preventDefault();let r=e.value;r&&!r.contains(n.relatedTarget)&&(o.value=!1)}async function f(e){if(!t.value)return;e.preventDefault(),o.value=!1;let n=e.dataTransfer?.items;if(!n)return;let r=await S(n,e.dataTransfer);if(c||!t.value)return;let s=w(r,i.value);s.length>0&&a(s)}function p(e){if(!n.value)return;let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e=0;e<t.length;e++){let n=t[e];if(n.kind===`file`){let e=n.getAsFile();e&&r.push(e)}}let o=w(r,i.value);o.length>0&&(e.preventDefault(),a(o))}function m(){let t=e.value;!t||s===t||(s=t,t.addEventListener(`dragenter`,l),t.addEventListener(`dragover`,u),t.addEventListener(`dragleave`,d),t.addEventListener(`drop`,f),n.value&&t.addEventListener(`paste`,p))}function h(){let e=s;e&&(e.removeEventListener(`dragenter`,l),e.removeEventListener(`dragover`,u),e.removeEventListener(`dragleave`,d),e.removeEventListener(`drop`,f)),e?.removeEventListener(`paste`,p),s=null}return(0,r.onMounted)(()=>{c=!1,m()}),(0,r.onBeforeUnmount)(()=>{c=!0,h()}),(0,r.watch)([e,t,n],()=>{h(),m()}),{isDragOver:(0,r.readonly)(o)}}async function S(e,t){let n=[];for(let t=0;t<e.length;t++){let r=e[t].webkitGetAsEntry?.();r&&n.push(r)}if(n.length>0)return(await Promise.all(n.map(C))).flat();let r=[],i=t?.files;if(i)for(let e=0;e<i.length;e++)r.push(i[e]);return r}async function C(e){if(e.isFile)return new Promise(t=>{e.file(e=>t([e]),()=>t([]))});if(e.isDirectory){let t=e.createReader(),n=[];for(;;){let e=await new Promise(e=>{t.readEntries(t=>e(t),()=>e([]))});if(e.length===0)break;n.push(...e)}return(await Promise.all(n.map(C))).flat()}return[]}function w(e,t){if(!t)return e;let n=t.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean);return n.length===0?e:e.filter(e=>n.some(t=>{if(t.startsWith(`.`))return e.name.toLowerCase().endsWith(t);if(t.endsWith(`/*`)){let n=t.replace(`/*`,``);return e.type.toLowerCase().startsWith(`${n}/`)}return e.type.toLowerCase()===t}))}const T=[`tabindex`,`aria-disabled`,`onKeydown`],E=[`accept`,`multiple`,`webkitdirectory`,`disabled`],D={class:`upload-area__default`},O={class:`upload-area__text`},k={key:0},A={key:1},j={key:0,class:`upload-area__tip`},M=(0,r.defineComponent)({__name:`UploadArea`,props:{accept:{default:``},multiple:{type:Boolean,default:!1},directory:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},pasteable:{type:Boolean,default:!1},tip:{default:``}},emits:[`files`],setup(e,{expose:n,emit:i}){let a=e,o=i,s=(0,r.ref)(),c=(0,r.ref)(),{isDragOver:l}=x(s,(0,r.computed)(()=>a.draggable&&!a.disabled),(0,r.computed)(()=>a.pasteable&&!a.disabled),(0,r.computed)(()=>a.accept),e=>o(`files`,e));function u(){a.disabled||c.value?.click()}function d(e){let t=e.target,n=a.disabled?[]:w(Array.from(t.files??[]),a.accept);n.length>0&&o(`files`,n),t.value=``}return n({triggerSelect:u}),(n,i)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{ref_key:`areaRef`,ref:s,class:(0,r.normalizeClass)([`upload-area`,{"upload-area--drag-over":(0,r.unref)(l),"upload-area--disabled":e.disabled}]),role:`button`,tabindex:e.disabled?-1:0,"aria-disabled":e.disabled,onClick:u,onKeydown:[(0,r.withKeys)((0,r.withModifiers)(u,[`prevent`]),[`enter`]),(0,r.withKeys)((0,r.withModifiers)(u,[`prevent`]),[`space`])]},[(0,r.createElementVNode)(`input`,{ref_key:`inputRef`,ref:c,type:`file`,class:`upload-area__input`,accept:e.accept,multiple:e.multiple,webkitdirectory:e.directory||void 0,disabled:e.disabled,onClick:i[0]||=(0,r.withModifiers)(()=>{},[`stop`]),onChange:d},null,40,E),(0,r.renderSlot)(n.$slots,`default`,{},()=>[(0,r.createElementVNode)(`div`,D,[(0,r.createVNode)(t.t,{name:(0,r.unref)(l)?`mdi:cloud-download-outline`:`mdi:cloud-upload-outline`,class:`upload-area__icon`},null,8,[`name`]),(0,r.createElementVNode)(`div`,O,[(0,r.unref)(l)?((0,r.openBlock)(),(0,r.createElementBlock)(`span`,k,`释放文件到此处`)):((0,r.openBlock)(),(0,r.createElementBlock)(`span`,A,[i[4]||=(0,r.createTextVNode)(` 点击或拖拽文件到此区域上传 `,-1),e.pasteable?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:0},[i[1]||=(0,r.createTextVNode)(` ,支持 `,-1),i[2]||=(0,r.createElementVNode)(`kbd`,null,`Ctrl+V`,-1),i[3]||=(0,r.createTextVNode)(` 粘贴 `,-1)],64)):(0,r.createCommentVNode)(`v-if`,!0)]))]),e.tip?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,j,(0,r.toDisplayString)(e.tip),1)):(0,r.createCommentVNode)(`v-if`,!0)])],!0)],42,T))}});var N=n.t(M,[[`__scopeId`,`data-v-705892ab`]]);const P={class:`file-list__thumb`},F=[`src`,`alt`],I={class:`file-list__info`},L={class:`file-list__name`},R={class:`file-list__meta`},z={class:`file-list__size`},B={key:0,class:`file-list__instant`},V={key:1,class:`file-list__chunk-info`},H={key:2,class:`file-list__error`},U={class:`file-list__actions`},W=(0,r.defineComponent)({__name:`FileList`,props:{fileList:{},showThumbnail:{type:Boolean}},emits:[`remove`,`retry`],setup(e,{emit:n}){let a=n;return(n,o)=>((0,r.openBlock)(),(0,r.createBlock)(r.TransitionGroup,{name:`file-list`,tag:`div`,class:`file-list`},{default:(0,r.withCtx)(()=>[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(e.fileList,n=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:n.uid,class:(0,r.normalizeClass)([`file-list__item`,`file-list__item--${n.status}`])},[(0,r.createCommentVNode)(` 缩略图 / 图标 `),(0,r.createElementVNode)(`div`,P,[e.showThumbnail&&n.thumbUrl?((0,r.openBlock)(),(0,r.createElementBlock)(`img`,{key:0,src:n.thumbUrl,alt:n.name,class:`file-list__thumb-img`},null,8,F)):((0,r.openBlock)(),(0,r.createBlock)(t.t,{key:1,name:(0,r.unref)(u)(n.type),class:`file-list__thumb-icon`},null,8,[`name`]))]),(0,r.createCommentVNode)(` 文件信息 `),(0,r.createElementVNode)(`div`,I,[(0,r.createElementVNode)(`div`,L,[(0,r.createVNode)((0,r.unref)(i.NEllipsis),{"line-clamp":1},{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)(n.name),1)]),_:2},1024)]),(0,r.createElementVNode)(`div`,R,[(0,r.createElementVNode)(`span`,z,(0,r.toDisplayString)((0,r.unref)(d)(n.size)),1),(0,r.createVNode)((0,r.unref)(i.NTag),{type:(0,r.unref)(c)[n.status]||`default`,size:`tiny`,bordered:!1},{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)((0,r.unref)(s)[n.status]||n.status),1)]),_:2},1032,[`type`]),n.status===`instant`?((0,r.openBlock)(),(0,r.createElementBlock)(`span`,B,` ⚡ `)):(0,r.createCommentVNode)(`v-if`,!0)]),(0,r.createCommentVNode)(` 进度条 `),n.status===`uploading`||n.status===`hashing`?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NProgress),{key:0,percentage:n.percent,height:4,"border-radius":2,"show-indicator":!1,status:n.status===`hashing`?`info`:`success`},null,8,[`percentage`,`status`])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 分片进度描述 `),n.chunkProgress&&n.status===`uploading`?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,V,` 分片 `+(0,r.toDisplayString)(n.chunkProgress.uploadedChunks)+`/`+(0,r.toDisplayString)(n.chunkProgress.totalChunks),1)):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 错误信息 `),n.status===`error`&&n.error?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,H,(0,r.toDisplayString)(n.error),1)):(0,r.createCommentVNode)(`v-if`,!0)]),(0,r.createCommentVNode)(` 操作按钮 `),(0,r.createElementVNode)(`div`,U,[n.status===`error`?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NButton),{key:0,text:``,type:`warning`,size:`tiny`,"aria-label":`重试上传`,onClick:e=>a(`retry`,n.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:refresh`})]),_:1},8,[`onClick`])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createVNode)((0,r.unref)(i.NButton),{text:``,type:`error`,size:`tiny`,"aria-label":`移除文件`,onClick:e=>a(`remove`,n.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:close`})]),_:1},8,[`onClick`])])],2))),128))]),_:1}))}});var G=n.t(W,[[`__scopeId`,`data-v-04f26012`]]);const K={key:0,class:`image-preview`},q=[`src`,`alt`],J={class:`image-preview__overlay`},Y={key:0,class:`image-preview__progress`},X={class:`image-preview__actions`},Z={class:`image-preview__name`},Q=(0,r.defineComponent)({__name:`ImagePreview`,props:{fileList:{}},emits:[`remove`,`retry`],setup(e,{emit:n}){let a=e,o=n,s=(0,r.computed)(()=>a.fileList.filter(e=>e.type?.startsWith(`image/`)));return(e,n)=>s.value.length>0?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,K,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(s.value,e=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:e.uid,class:(0,r.normalizeClass)([`image-preview__item`,`image-preview__item--${e.status}`])},[e.thumbUrl?((0,r.openBlock)(),(0,r.createElementBlock)(`img`,{key:0,src:e.thumbUrl,alt:e.name,class:`image-preview__img`},null,8,q)):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 遮罩层 `),(0,r.createElementVNode)(`div`,J,[(0,r.createCommentVNode)(` 上传中进度 `),e.status===`uploading`||e.status===`hashing`?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,Y,[(0,r.createVNode)((0,r.unref)(i.NProgress),{type:`circle`,percentage:e.percent,"stroke-width":3,style:{width:`40px`}},null,8,[`percentage`])])):e.status===`success`||e.status===`instant`?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[(0,r.createCommentVNode)(` 状态图标 `),(0,r.createVNode)(t.t,{name:`mdi:check-circle`,class:`image-preview__status-icon image-preview__status-icon--success`})],2112)):e.status===`error`?((0,r.openBlock)(),(0,r.createBlock)(t.t,{key:2,name:`mdi:alert-circle`,class:`image-preview__status-icon image-preview__status-icon--error`})):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 操作 `),(0,r.createElementVNode)(`div`,X,[e.status===`error`?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NButton),{key:0,circle:``,size:`tiny`,type:`warning`,"aria-label":`重试上传`,onClick:t=>o(`retry`,e.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:refresh`})]),_:1},8,[`onClick`])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createVNode)((0,r.unref)(i.NButton),{circle:``,size:`tiny`,type:`error`,"aria-label":`移除文件`,onClick:t=>o(`remove`,e.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:close`})]),_:1},8,[`onClick`])])]),(0,r.createCommentVNode)(` 文件名 `),(0,r.createElementVNode)(`div`,Z,[(0,r.createVNode)((0,r.unref)(i.NEllipsis),{"line-clamp":1},{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.name),1)]),_:2},1024)])],2))),128))])):(0,r.createCommentVNode)(`v-if`,!0)}});var $=n.t(Q,[[`__scopeId`,`data-v-32d39ae9`]]);const ee={class:`c-upload`},te={key:0,class:`c-upload__total-progress`},ne={class:`c-upload__total-label`},re=(0,r.defineComponent)({__name:`index`,props:{action:{default:``},headers:{default:()=>({})},data:{default:()=>({})},multiple:{type:Boolean,default:!1},directory:{type:Boolean,default:!1},accept:{default:``},maxSize:{default:0},maxCount:{default:0},disabled:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},pasteable:{type:Boolean,default:!1},chunked:{type:Boolean,default:!1},chunkSize:{default:o},concurrency:{default:3},showFileList:{type:Boolean,default:!0},listType:{default:`text`},showThumbnail:{type:Boolean,default:!0},customRequest:{},instantCheck:{},uploadedChunksQuery:{},mergeChunks:{},beforeUpload:{},tip:{default:``},defaultFileList:{default:()=>[]}},emits:[`change`,`success`,`error`,`progress`,`remove`,`finish`,`exceed`],setup(e,{expose:t,emit:n}){let a=e,o=n,s=(0,r.ref)(),{fileList:c,totalPercent:l,addFiles:u,removeFile:d,clearAll:f,startUpload:p,pauseAll:m,resumeAll:h,retryFile:g,processFile:_,getSuccessList:v}=b(a),y=(0,r.computed)(()=>c.value.some(e=>e.status===`uploading`||e.status===`hashing`||e.status===`validating`)),x=e=>({...e}),S=()=>c.value.map(x);function C(e){let t=Math.max(0,Math.trunc(Number(a.maxCount)||0));if(t>0&&c.value.length+e.length>t){o(`exceed`,e,S());let n=t-c.value.length;if(n<=0)return;e=e.slice(0,n)}let n=u(e);o(`change`,S()),n.forEach(e=>void _(e))}function w(e){let t=c.value.find(t=>t.uid===e);t&&(o(`remove`,x(t)),d(e),o(`change`,S()))}function T(e){g(e)}let E=new Map,D=!1;return(0,r.watch)(c,e=>{let t=new Set(e.map(e=>e.uid));E.forEach((e,n)=>{t.has(n)||E.delete(n)}),e.forEach(e=>{let t=E.get(e.uid);t&&t.percent!==e.percent&&o(`progress`,x(e),e.percent),t&&t.status!==e.status&&(e.status===`success`||e.status===`instant`)&&o(`success`,x(e),e.response),t&&t.status!==`error`&&e.status===`error`&&o(`error`,x(e),Error(e.error||`上传失败`)),E.set(e.uid,{status:e.status,percent:e.percent})}),e.length>0&&e.every(e=>e.status===`success`||e.status===`instant`||e.status===`error`)?(D||o(`finish`,S()),D=!0):D=!1,o(`change`,S())},{deep:!0}),t({selectFiles:()=>s.value?.triggerSelect(),startUpload:p,pauseAll:m,resumeAll:h,clearAll:()=>{f(),o(`change`,S())},removeFile:e=>{w(e)},retryFile:g,getFileList:S,getSuccessList:()=>v().map(x),get totalPercent(){return l.value}}),(e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,ee,[(0,r.createCommentVNode)(` 上传区域 `),(0,r.createVNode)(N,{ref_key:`uploadAreaRef`,ref:s,accept:a.accept,multiple:a.multiple,directory:a.directory,disabled:a.disabled,draggable:a.draggable,pasteable:a.pasteable,tip:a.tip,onFiles:C},{default:(0,r.withCtx)(()=>[(0,r.renderSlot)(e.$slots,`area`,{},void 0,!0)]),_:3},8,[`accept`,`multiple`,`directory`,`disabled`,`draggable`,`pasteable`,`tip`]),(0,r.createCommentVNode)(` 总进度条 `),y.value?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,te,[(0,r.createElementVNode)(`div`,ne,[t[0]||=(0,r.createElementVNode)(`span`,null,`总进度`,-1),(0,r.createElementVNode)(`span`,null,(0,r.toDisplayString)((0,r.unref)(l))+`%`,1)]),(0,r.createVNode)((0,r.unref)(i.NProgress),{percentage:(0,r.unref)(l),height:6,"border-radius":3,"show-indicator":!1,status:`success`},null,8,[`percentage`])])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 图片预览模式 `),a.listType===`image`?((0,r.openBlock)(),(0,r.createBlock)($,{key:1,"file-list":(0,r.unref)(c),onRemove:w,onRetry:T},null,8,[`file-list`])):a.showFileList&&(0,r.unref)(c).length>0?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:2},[(0,r.createCommentVNode)(` 文件列表模式 `),(0,r.createVNode)(G,{"file-list":(0,r.unref)(c),"show-thumbnail":a.showThumbnail,onRemove:w,onRetry:T},null,8,[`file-list`,`show-thumbnail`])],2112)):(0,r.createCommentVNode)(`v-if`,!0)]))}});var ie=n.t(re,[[`__scopeId`,`data-v-58ca8e42`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return ie}});