@robot-admin/naive-ui-components 0.13.2 → 0.13.6

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 (292) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +25 -5
  3. package/README_EN.md +17 -5
  4. package/dist/C_ActionBar.css +75 -63
  5. package/dist/C_ActionBar2.cjs +1 -1
  6. package/dist/C_ActionBar2.js +1 -1
  7. package/dist/C_AntV.css +249 -79
  8. package/dist/C_AntV2.cjs +3 -3
  9. package/dist/C_AntV2.js +2 -2
  10. package/dist/C_AudioPlayer.css +88 -76
  11. package/dist/C_AudioPlayer2.cjs +1 -1
  12. package/dist/C_AudioPlayer2.js +1 -1
  13. package/dist/C_AvatarGroup.css +32 -28
  14. package/dist/C_AvatarGroup2.cjs +1 -1
  15. package/dist/C_AvatarGroup2.js +1 -1
  16. package/dist/C_Breadcrumb.css +35 -17
  17. package/dist/C_Breadcrumb2.cjs +1 -1
  18. package/dist/C_Breadcrumb2.js +1 -1
  19. package/dist/C_Captcha.css +66 -53
  20. package/dist/C_Captcha2.cjs +1 -1
  21. package/dist/C_Captcha2.js +1 -1
  22. package/dist/C_Cascade.css +6 -2
  23. package/dist/C_Cascade2.cjs +1 -1
  24. package/dist/C_Cascade2.js +1 -1
  25. package/dist/C_Chat.css +40 -33
  26. package/dist/C_City.css +37 -32
  27. package/dist/C_City2.cjs +1 -1
  28. package/dist/C_City2.js +1 -1
  29. package/dist/C_Code.css +53 -40
  30. package/dist/C_Code2.cjs +1 -1
  31. package/dist/C_Code2.js +1 -1
  32. package/dist/C_CollapsePanel.css +68 -55
  33. package/dist/C_CollapsePanel2.cjs +1 -1
  34. package/dist/C_CollapsePanel2.js +1 -1
  35. package/dist/C_ContextMenu.css +68 -26
  36. package/dist/C_ContextMenu2.cjs +1 -1
  37. package/dist/C_ContextMenu2.js +1 -1
  38. package/dist/C_Cron.css +95 -68
  39. package/dist/C_Cron2.cjs +1 -1
  40. package/dist/C_Cron2.js +1 -1
  41. package/dist/C_Date.css +8 -1
  42. package/dist/C_Date2.cjs +1 -1
  43. package/dist/C_Date2.js +1 -1
  44. package/dist/C_Draggable.css +60 -51
  45. package/dist/C_Draggable2.cjs +1 -1
  46. package/dist/C_Draggable2.js +1 -1
  47. package/dist/C_Editor.css +23 -15
  48. package/dist/C_Editor2.cjs +1 -1
  49. package/dist/C_Editor2.js +1 -1
  50. package/dist/C_FilePreview.css +200 -90
  51. package/dist/C_FilePreview2.cjs +1 -1
  52. package/dist/C_FilePreview2.js +1 -1
  53. package/dist/C_Form.base.css +284 -224
  54. package/dist/C_Form.css +307 -239
  55. package/dist/C_Form2.cjs +1 -1
  56. package/dist/C_Form2.js +1 -1
  57. package/dist/C_FormModal.css +18 -8
  58. package/dist/C_FormModal2.cjs +1 -1
  59. package/dist/C_FormModal2.js +1 -1
  60. package/dist/C_FormSearch.css +58 -45
  61. package/dist/C_FormSearch2.cjs +1 -1
  62. package/dist/C_FormSearch2.js +1 -1
  63. package/dist/C_FormulaEditor.css +62 -37
  64. package/dist/C_FormulaEditor2.cjs +1 -1
  65. package/dist/C_FormulaEditor2.js +1 -1
  66. package/dist/C_FullCalendar.css +16 -3
  67. package/dist/C_FullCalendar2.cjs +1 -1
  68. package/dist/C_FullCalendar2.js +1 -1
  69. package/dist/C_GlobalSearch.css +121 -112
  70. package/dist/C_GlobalSearch2.cjs +1 -1
  71. package/dist/C_GlobalSearch2.js +1 -1
  72. package/dist/C_Guide.css +30 -18
  73. package/dist/C_Guide2.cjs +1 -1
  74. package/dist/C_Guide2.js +1 -1
  75. package/dist/C_Icon.css +24 -17
  76. package/dist/C_Icon2.cjs +1 -1
  77. package/dist/C_Icon2.js +1 -1
  78. package/dist/C_ImageCropper.css +39 -22
  79. package/dist/C_ImageCropper2.cjs +1 -1
  80. package/dist/C_ImageCropper2.js +1 -1
  81. package/dist/C_Language.css +30 -17
  82. package/dist/C_Language2.cjs +1 -1
  83. package/dist/C_Language2.js +1 -1
  84. package/dist/C_Loading.cjs +1 -0
  85. package/dist/C_Loading.css +119 -0
  86. package/dist/C_Loading.d.cts +2 -0
  87. package/dist/C_Loading.d.ts +2 -0
  88. package/dist/C_Loading.js +1 -0
  89. package/dist/C_Loading2.cjs +1 -0
  90. package/dist/C_Loading2.js +1 -0
  91. package/dist/C_Login.css +162 -137
  92. package/dist/C_Login.d.cts +1 -1
  93. package/dist/C_Login.d.ts +1 -1
  94. package/dist/C_Login2.cjs +1 -1
  95. package/dist/C_Login2.js +1 -1
  96. package/dist/C_Map.css +25 -4
  97. package/dist/C_Map2.cjs +1 -1
  98. package/dist/C_Map2.js +1 -1
  99. package/dist/C_Markdown.css +47 -42
  100. package/dist/C_Markdown.d.cts +1 -1
  101. package/dist/C_Markdown.d.ts +1 -1
  102. package/dist/C_Markdown2.cjs +1 -1
  103. package/dist/C_Markdown2.js +1 -1
  104. package/dist/C_Menu.css +7 -1
  105. package/dist/C_Menu.d.ts +1 -1
  106. package/dist/C_Menu2.cjs +1 -1
  107. package/dist/C_Menu2.js +1 -1
  108. package/dist/C_NotificationCenter.css +134 -90
  109. package/dist/C_NotificationCenter2.cjs +1 -1
  110. package/dist/C_NotificationCenter2.js +1 -1
  111. package/dist/C_OrgChart.css +10 -0
  112. package/dist/C_OrgChart.d.cts +1 -1
  113. package/dist/C_OrgChart.d.ts +1 -1
  114. package/dist/C_OrgChart2.cjs +1 -1
  115. package/dist/C_OrgChart2.js +1 -1
  116. package/dist/C_Progress.d.cts +1 -1
  117. package/dist/C_Progress.d.ts +1 -1
  118. package/dist/C_QRCode.css +12 -8
  119. package/dist/C_QRCode2.cjs +1 -1
  120. package/dist/C_QRCode2.js +1 -1
  121. package/dist/C_Signature.css +18 -14
  122. package/dist/C_Signature2.cjs +1 -1
  123. package/dist/C_Signature2.js +1 -1
  124. package/dist/C_Skeleton.css +5 -0
  125. package/dist/C_Skeleton.d.cts +1 -1
  126. package/dist/C_Skeleton.d.ts +1 -1
  127. package/dist/C_Skeleton2.cjs +1 -1
  128. package/dist/C_Skeleton2.js +1 -1
  129. package/dist/C_SplitPane.css +61 -39
  130. package/dist/C_SplitPane2.cjs +1 -1
  131. package/dist/C_SplitPane2.js +1 -1
  132. package/dist/C_Steps.css +42 -38
  133. package/dist/C_Steps.d.cts +1 -1
  134. package/dist/C_Steps.d.ts +1 -1
  135. package/dist/C_Steps2.cjs +1 -1
  136. package/dist/C_Steps2.js +1 -1
  137. package/dist/C_Table.base.css +585 -352
  138. package/dist/C_Table.cjs +1 -1
  139. package/dist/C_Table.css +608 -367
  140. package/dist/C_Table.d.ts +2 -2
  141. package/dist/C_Table.js +1 -1
  142. package/dist/C_TagsView.css +93 -55
  143. package/dist/C_TagsView.d.cts +1 -1
  144. package/dist/C_TagsView.d.ts +1 -1
  145. package/dist/C_TagsView2.cjs +1 -1
  146. package/dist/C_TagsView2.js +1 -1
  147. package/dist/C_Theme.css +24 -17
  148. package/dist/C_Theme.d.cts +1 -1
  149. package/dist/C_Theme.d.ts +1 -1
  150. package/dist/C_Timeline.css +47 -36
  151. package/dist/C_Timeline.d.cts +1 -1
  152. package/dist/C_Timeline.d.ts +1 -1
  153. package/dist/C_Transfer.css +86 -67
  154. package/dist/C_Transfer.d.cts +1 -1
  155. package/dist/C_Transfer.d.ts +1 -1
  156. package/dist/C_Transfer2.cjs +1 -1
  157. package/dist/C_Transfer2.js +1 -1
  158. package/dist/C_Tree.css +48 -33
  159. package/dist/C_Tree2.cjs +1 -1
  160. package/dist/C_Tree2.js +1 -1
  161. package/dist/C_Upload.css +104 -51
  162. package/dist/C_Upload2.cjs +1 -1
  163. package/dist/C_Upload2.js +1 -1
  164. package/dist/C_VideoPlayer.css +140 -69
  165. package/dist/C_VideoPlayer2.cjs +1 -1
  166. package/dist/C_VideoPlayer2.js +1 -1
  167. package/dist/C_VtableGantt.css +42 -19
  168. package/dist/C_VtableGantt.d.cts +1 -1
  169. package/dist/C_VtableGantt.d.ts +1 -1
  170. package/dist/C_VtableGantt2.cjs +1 -1
  171. package/dist/C_VtableGantt2.js +1 -1
  172. package/dist/C_WaterFall.css +32 -16
  173. package/dist/C_WaterFall2.cjs +1 -1
  174. package/dist/C_WaterFall2.js +1 -1
  175. package/dist/C_WorkFlow.css +332 -221
  176. package/dist/C_WorkFlow2.cjs +1 -1
  177. package/dist/C_WorkFlow2.js +1 -1
  178. package/dist/config.cjs +1 -1
  179. package/dist/config.js +1 -1
  180. package/dist/constants.d.cts +4 -4
  181. package/dist/constants.d.ts +4 -4
  182. package/dist/constants2.d.cts +4 -4
  183. package/dist/constants2.d.ts +4 -4
  184. package/dist/constants3.d.cts +3 -3
  185. package/dist/constants3.d.ts +3 -3
  186. package/dist/constants4.d.cts +6 -6
  187. package/dist/constants4.d.ts +6 -6
  188. package/dist/constants5.d.cts +2 -2
  189. package/dist/constants5.d.ts +2 -2
  190. package/dist/data.d.cts +8 -8
  191. package/dist/data.d.ts +8 -8
  192. package/dist/data2.cjs +1 -1
  193. package/dist/data2.js +1 -1
  194. package/dist/index.cjs +1 -1
  195. package/dist/index.d.cts +28 -27
  196. package/dist/index.d.ts +28 -27
  197. package/dist/index.js +1 -1
  198. package/dist/index.vue.d.cts +1 -1
  199. package/dist/index.vue.d.ts +1 -1
  200. package/dist/index10.vue.d.cts +5 -5
  201. package/dist/index10.vue.d.ts +3 -3
  202. package/dist/index11.vue.d.cts +3 -3
  203. package/dist/index11.vue.d.ts +2 -2
  204. package/dist/index12.vue.d.cts +2 -2
  205. package/dist/index13.vue.d.ts +1 -1
  206. package/dist/index14.vue.d.cts +1 -1
  207. package/dist/index14.vue.d.ts +11 -9
  208. package/dist/index15.vue.d.cts +11 -9
  209. package/dist/index15.vue.d.ts +3 -3
  210. package/dist/index16.vue.d.cts +3 -3
  211. package/dist/index16.vue.d.ts +13 -129
  212. package/dist/index17.vue.d.cts +13 -129
  213. package/dist/index17.vue.d.ts +129 -76
  214. package/dist/index18.vue.d.cts +129 -76
  215. package/dist/index18.vue.d.ts +75 -71
  216. package/dist/index19.vue.d.cts +75 -93
  217. package/dist/index19.vue.d.ts +68 -90
  218. package/dist/index2.vue.d.cts +2 -2
  219. package/dist/index2.vue.d.ts +2 -2
  220. package/dist/index20.vue.d.cts +87 -40
  221. package/dist/index20.vue.d.ts +87 -40
  222. package/dist/index21.vue.d.cts +40 -89
  223. package/dist/index21.vue.d.ts +40 -89
  224. package/dist/index22.vue.d.cts +95 -37
  225. package/dist/index22.vue.d.ts +95 -37
  226. package/dist/index23.vue.d.cts +34 -8
  227. package/dist/index23.vue.d.ts +34 -8
  228. package/dist/index24.vue.d.cts +12 -654
  229. package/dist/index24.vue.d.ts +12 -654
  230. package/dist/index25.vue.d.cts +650 -85
  231. package/dist/index25.vue.d.ts +650 -85
  232. package/dist/index26.vue.d.cts +85 -100
  233. package/dist/index26.vue.d.ts +85 -100
  234. package/dist/index27.vue.d.cts +92 -61
  235. package/dist/index27.vue.d.ts +92 -61
  236. package/dist/index28.vue.d.cts +80 -0
  237. package/dist/index28.vue.d.ts +80 -0
  238. package/dist/index3.vue.d.cts +5 -5
  239. package/dist/index3.vue.d.ts +5 -5
  240. package/dist/index5.vue.d.ts +2 -2
  241. package/dist/index6.vue.d.cts +2 -2
  242. package/dist/index6.vue.d.ts +1 -1
  243. package/dist/index7.vue.d.cts +1 -1
  244. package/dist/index7.vue.d.ts +2 -2
  245. package/dist/index8.vue.d.cts +2 -2
  246. package/dist/index8.vue.d.ts +3 -3
  247. package/dist/index9.vue.d.cts +3 -3
  248. package/dist/index9.vue.d.ts +5 -5
  249. package/dist/mapUtils.d.cts +2 -2
  250. package/dist/mapUtils.d.ts +2 -2
  251. package/dist/presets.d.cts +1 -1
  252. package/dist/presets.d.ts +1 -1
  253. package/dist/resolver.cjs +1 -1
  254. package/dist/resolver.d.cts +1 -1
  255. package/dist/resolver.d.ts +1 -1
  256. package/dist/resolver.js +1 -1
  257. package/dist/style.css +3205 -1982
  258. package/dist/useCollapsePanel.d.cts +2 -2
  259. package/dist/useCollapsePanel.d.ts +2 -2
  260. package/dist/useCropperCore.d.cts +8 -8
  261. package/dist/useCropperCore.d.ts +8 -8
  262. package/dist/useDraggableLayout.d.cts +5 -5
  263. package/dist/useDraggableLayout.d.ts +5 -5
  264. package/dist/useDynamicFormState.d.cts +2 -2
  265. package/dist/useDynamicFormState.d.ts +2 -2
  266. package/dist/useEdgeInteraction.d.cts +1 -1
  267. package/dist/useEdgeInteraction.d.ts +1 -1
  268. package/dist/useFullscreen.d.cts +2 -2
  269. package/dist/useFullscreen.d.ts +2 -2
  270. package/dist/useInfiniteScroll.d.cts +3 -3
  271. package/dist/useInfiniteScroll.d.ts +3 -3
  272. package/dist/useQRCode.d.cts +2 -2
  273. package/dist/useQRCode.d.ts +2 -2
  274. package/dist/useSearchState.d.cts +6 -6
  275. package/dist/useSearchState.d.ts +6 -6
  276. package/dist/useSignatureHistory.d.cts +6 -6
  277. package/dist/useSignatureHistory.d.ts +6 -6
  278. package/dist/useSplitResize.d.cts +4 -4
  279. package/dist/useSplitResize.d.ts +4 -4
  280. package/dist/useTableQuery.cjs +3 -3
  281. package/dist/useTableQuery.d.cts +3 -1
  282. package/dist/useTableQuery.d.ts +3 -1
  283. package/dist/useTableQuery.js +3 -3
  284. package/dist/useTimeSelection.d.cts +4 -4
  285. package/dist/useTimeSelection.d.ts +4 -4
  286. package/dist/useTreeOperations.d.cts +6 -6
  287. package/dist/useTreeOperations.d.ts +6 -6
  288. package/dist/useWorkflowValidation.d.cts +6 -6
  289. package/dist/useWorkflowValidation.d.ts +6 -6
  290. package/dist/verification.d.cts +2 -2
  291. package/dist/verification.d.ts +2 -2
  292. package/package.json +10 -3
@@ -1,17 +1,17 @@
1
- /* unplugin-vue-components disabled */.c-waterfall[data-v-f5a6939b] {
1
+ /* unplugin-vue-components disabled */.c-waterfall[data-v-8bf18c79] {
2
2
  width: 100%;
3
3
  }
4
- .waterfall__body[data-v-f5a6939b] {
4
+ .waterfall__body[data-v-8bf18c79] {
5
5
  overflow: hidden;
6
6
  }
7
- .waterfall__item[data-v-f5a6939b] {
7
+ .waterfall__item[data-v-8bf18c79] {
8
8
  cursor: pointer;
9
9
  }
10
- .waterfall__item[data-v-f5a6939b]:focus-visible {
10
+ .waterfall__item[data-v-8bf18c79]:focus-visible {
11
11
  outline: 2px solid var(--primary-color, #2080f0);
12
12
  outline-offset: 2px;
13
13
  }
14
- .waterfall__card[data-v-f5a6939b] {
14
+ .waterfall__card[data-v-8bf18c79] {
15
15
  overflow: hidden;
16
16
  border-radius: 8px;
17
17
  border: 1px solid var(--border-color);
@@ -19,36 +19,36 @@
19
19
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
20
20
  transition: box-shadow 0.2s ease, transform 0.2s ease;
21
21
  }
22
- .waterfall__card[data-v-f5a6939b]:hover {
22
+ .waterfall__card[data-v-8bf18c79]:hover {
23
23
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
24
24
  transform: translateY(-2px);
25
25
  }
26
- .waterfall__image[data-v-f5a6939b] {
26
+ .waterfall__image[data-v-8bf18c79] {
27
27
  display: block;
28
28
  width: 100%;
29
29
  object-fit: cover;
30
30
  background: var(--body-color);
31
31
  }
32
- .waterfall__title[data-v-f5a6939b] {
32
+ .waterfall__title[data-v-8bf18c79] {
33
33
  padding: 10px 12px;
34
34
  font-size: 13px;
35
35
  line-height: 1.5;
36
36
  color: var(--text-color-1);
37
37
  word-break: break-all;
38
38
  }
39
- .waterfall__skeleton[data-v-f5a6939b] {
39
+ .waterfall__skeleton[data-v-8bf18c79] {
40
40
  overflow: hidden;
41
41
  border-radius: 8px;
42
42
  }
43
- .waterfall__skeleton-inner[data-v-f5a6939b] {
43
+ .waterfall__skeleton-inner[data-v-8bf18c79] {
44
44
  width: 100%;
45
45
  height: 100%;
46
46
  border-radius: 8px;
47
47
  background: linear-gradient(90deg, var(--body-color) 25%, color-mix(in srgb, var(--body-color) 80%, var(--border-color)) 37%, var(--body-color) 63%);
48
48
  background-size: 400% 100%;
49
- animation: shimmer-f5a6939b 1.4s ease infinite;
49
+ animation: shimmer-8bf18c79 1.4s ease infinite;
50
50
  }
51
- @keyframes shimmer-f5a6939b {
51
+ @keyframes shimmer-8bf18c79 {
52
52
  0% {
53
53
  background-position: 100% 50%;
54
54
  }
@@ -56,20 +56,36 @@
56
56
  background-position: 0 50%;
57
57
  }
58
58
  }
59
- .waterfall__footer[data-v-f5a6939b] {
59
+ .waterfall__footer[data-v-8bf18c79] {
60
60
  padding: 24px 0;
61
61
  text-align: center;
62
62
  }
63
- .waterfall__sentinel[data-v-f5a6939b] {
63
+ .waterfall__sentinel[data-v-8bf18c79] {
64
64
  height: 1px;
65
65
  }
66
- .waterfall__status[data-v-f5a6939b] {
66
+ .waterfall__status[data-v-8bf18c79] {
67
67
  display: inline-flex;
68
68
  gap: 8px;
69
69
  align-items: center;
70
70
  font-size: 13px;
71
71
  color: var(--text-color-3);
72
72
  }
73
- .waterfall__status--done[data-v-f5a6939b] {
73
+ .waterfall__status--done[data-v-8bf18c79] {
74
74
  color: var(--text-color-4);
75
75
  }
76
+ /* unplugin-vue-components disabled */
77
+ /* layer: default */
78
+ .absolute[data-v-8bf18c79]{position:absolute;}
79
+ .relative[data-v-8bf18c79]{position:relative;}
80
+ .ms[data-v-8bf18c79]{margin-inline-start:1rem;}
81
+ .block[data-v-8bf18c79]{display:block;}
82
+ .hidden[data-v-8bf18c79]{display:none;}
83
+ .inline-flex[data-v-8bf18c79]{display:inline-flex;}
84
+ .transform[data-v-8bf18c79]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
85
+ .break-all[data-v-8bf18c79]{word-break:break-all;}
86
+ .border[data-v-8bf18c79]{border-width:1px;}
87
+ .px[data-v-8bf18c79]{padding-left:1rem;padding-right:1rem;}
88
+ .outline[data-v-8bf18c79]{outline-style:solid;}
89
+ .transition[data-v-8bf18c79]{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;}
90
+ .ease[data-v-8bf18c79]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
91
+
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`naive-ui`);const r=[{minWidth:1600,columns:6},{minWidth:1200,columns:5},{minWidth:992,columns:4},{minWidth:768,columns:3},{minWidth:480,columns:2},{minWidth:0,columns:1}],i=[180,360];function a(e,n,i){let a=(0,t.ref)(4),o=(0,t.ref)(0);function s(e){if(n?.value&&n.value>0)return n.value;let t=[...i?.value?.length?i.value:r].sort((e,t)=>t.minWidth-e.minWidth);for(let n of t)if(e>=n.minWidth)return n.columns;return 1}let c=null;function l(){let t=e.value;if(!t)return;c=new ResizeObserver(e=>{for(let t of e){let{width:e}=t.contentRect;o.value=e,a.value=s(e)}}),c.observe(t);let n=t.getBoundingClientRect();o.value=n.width,a.value=s(n.width)}function u(){c?.disconnect(),c=null}return(0,t.onMounted)(l),(0,t.onBeforeUnmount)(u),(0,t.watch)(e,()=>{u(),l()}),(0,t.watch)([()=>n?.value,()=>i?.value],()=>{o.value>0&&(a.value=s(o.value))}),{columns:(0,t.readonly)(a),containerWidth:(0,t.readonly)(o)}}function o(e,n,r,i){let a=(0,t.ref)([]),o=(0,t.ref)(0),s=new Map;function c(e,t,n){let r=e/t;return Number.isFinite(r)&&r>0?r*n:n}function l(e,t){let n=s.get(e.id),r=n?.src&&n.src!==e.src?void 0:n;return r&&!r.basisWidth?r.height:r?.basisWidth?c(r.height,r.basisWidth,t):c(e.height,e.width,t)}function u(){a.value=[],o.value=0,e.value.length===0&&s.clear()}function d(t,n,r){return Number.isFinite(t)&&Number.isFinite(n)&&Number.isFinite(r)&&n>0&&e.value.length>0}function f(e,t,n,r){if(!Number.isFinite(t)||t<=0||n!==void 0&&(!Number.isFinite(n)||n<=0))return;let i=s.get(e);i?.height===t&&i.basisWidth===n&&i.src===r||(s.set(e,{height:t,basisWidth:n,src:r}),p())}function p(){let t=Math.min(24,Math.max(1,Math.floor(n.value))),c=r.value,f=Math.max(0,i.value??16);if(!d(t,c,f)){u();return}let p=(c-(t-1)*f)/t;if(p<=0){u();return}let m=Array.from({length:t},(e,t)=>({index:t,height:0})),h=[],g=new Set;for(let t of e.value){g.add(t.id);let e=m.reduce((e,t)=>t.height<e.height?t:e),n=l(t,p),r=e.index*(p+f),i=e.height;h.push({item:t,columnIndex:e.index,x:r,y:i,width:p,height:n}),e.height=i+n+f}for(let e of s.keys())g.has(e)||s.delete(e);a.value=h,o.value=Math.max(...m.map(e=>e.height))-f}return(0,t.watch)([e,()=>e.value.length,n,r,i],p,{immediate:!0}),{layoutItems:(0,t.readonly)(a),containerHeight:(0,t.readonly)(o),cacheImageHeight:f,relayout:p}}function s(e,n,r,i,a){let o=(0,t.ref)(`idle`),s=null,c=!1;function l(e){if(!e[0]?.isIntersecting){c=!1;return}!n.value||r.value||i.value||c||(c=!0,o.value=`loading`,a())}function u(){let t=e.value;!t||!n.value||(s=new IntersectionObserver(l,{rootMargin:`200px 0px`}),s.observe(t))}function d(){s?.disconnect(),s=null,c=!1}return(0,t.watch)([r,i],()=>{i.value?o.value=`no-more`:r.value?o.value=`loading`:(o.value=`idle`,c=!1)}),(0,t.onMounted)(u),(0,t.onBeforeUnmount)(d),(0,t.watch)([e,n],()=>{d(),u()}),{status:(0,t.readonly)(o)}}const c=[`aria-label`,`onClick`,`onKeydown`],l={class:`waterfall__card`},u=[`src`,`alt`,`loading`,`onLoad`,`onError`],d={key:0,class:`waterfall__title`},f={key:0,class:`waterfall__footer`},p={key:0,class:`waterfall__status`},m={key:1,class:`waterfall__status waterfall__status--done`},h=(0,t.defineComponent)({name:`C_WaterFall`,__name:`index`,props:{items:{},columns:{default:void 0},gap:{default:16},lazy:{type:Boolean,default:!0},infinite:{type:Boolean,default:!1},skeleton:{type:Boolean,default:!0},skeletonCount:{default:8},animationDuration:{default:300},breakpoints:{default:void 0},loading:{type:Boolean,default:!1},noMore:{type:Boolean,default:!1}},emits:[`load-more`,`item-click`,`image-loaded`,`image-error`],setup(e,{expose:r,emit:h}){let g=e,_=h,v=(0,t.ref)(),y=(0,t.ref)(),{columns:b,containerWidth:x}=a(v,(0,t.computed)(()=>g.columns),(0,t.computed)(()=>g.breakpoints)),{layoutItems:S,containerHeight:C,cacheImageHeight:w,relayout:T}=o((0,t.computed)(()=>g.items),b,x,(0,t.computed)(()=>g.gap)),E=(0,t.computed)(()=>g.skeleton&&g.loading&&S.value.length===0),D=(0,t.computed)(()=>{let e=Math.min(24,Math.max(1,Math.floor(b.value))),t=x.value,n=Math.max(0,g.gap);if(!Number.isFinite(e)||t<=0)return[];let r=(t-(e-1)*n)/e;if(r<=0)return[];let a=Math.min(100,Math.max(0,Math.floor(g.skeletonCount??8))),o=Array(e).fill(0),s=[];for(let e=0;e<a;e++){let t=o.indexOf(Math.min(...o)),a=i[0]+e*73%(i[1]-i[0]);s.push({x:t*(r+n),y:o[t],width:r,height:a}),o[t]+=a+n}return s}),O=(0,t.computed)(()=>D.value.length===0?0:Math.max(...D.value.map(e=>e.y+e.height))),k=(0,t.computed)(()=>E.value?O.value:C.value),{status:A}=s(y,(0,t.computed)(()=>g.infinite),(0,t.computed)(()=>g.loading),(0,t.computed)(()=>g.noMore),()=>_(`load-more`));function j(e,t){let n=t.target;if(n.naturalHeight&&n.naturalWidth){let t=n.naturalHeight/n.naturalWidth*e.width;w(e.item.id,t,e.width,e.item.src)}_(`image-loaded`,e.item)}function M(e){_(`image-error`,e.item)}function N(){v.value?.scrollIntoView({behavior:`smooth`,block:`start`})}return r({relayout:T,scrollToTop:N,getColumns:()=>b.value,getContainerHeight:()=>C.value}),(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`containerRef`,ref:v,class:`c-waterfall`},[(0,t.createElementVNode)(`div`,{class:`waterfall__body`,style:(0,t.normalizeStyle)({height:`${k.value}px`,position:`relative`})},[E.value?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(D.value,(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`sk-${i}`,class:`waterfall__skeleton`,style:(0,t.normalizeStyle)({position:`absolute`,left:`${n.x}px`,top:`${n.y}px`,width:`${n.width}px`,height:`${n.height}px`,transition:`all ${g.animationDuration??(0,t.unref)(300)}ms ease`})},[(0,t.renderSlot)(e.$slots,`skeleton`,{},()=>[r[0]||=(0,t.createElementVNode)(`div`,{class:`waterfall__skeleton-inner`},null,-1)],!0)],4))),128)):(0,t.createCommentVNode)(`v-if`,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(S),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.item.id,class:`waterfall__item`,role:`button`,tabindex:`0`,"aria-label":n.item.title||`瀑布流项目 ${r+1}`,style:(0,t.normalizeStyle)({position:`absolute`,left:`${n.x}px`,top:`${n.y}px`,width:`${n.width}px`,transition:`all ${g.animationDuration??(0,t.unref)(300)}ms ease`}),onClick:e=>_(`item-click`,n.item,r),onKeydown:[(0,t.withKeys)(e=>_(`item-click`,n.item,r),[`enter`]),(0,t.withKeys)((0,t.withModifiers)(e=>_(`item-click`,n.item,r),[`prevent`]),[`space`])]},[(0,t.renderSlot)(e.$slots,`item`,{item:n.item,index:r,width:n.width,height:n.height},()=>[(0,t.createElementVNode)(`div`,l,[(0,t.createElementVNode)(`img`,{src:n.item.src,alt:n.item.title||``,loading:g.lazy?`lazy`:`eager`,class:`waterfall__image`,style:(0,t.normalizeStyle)({height:`${n.height}px`}),onLoad:e=>j(n,e),onError:e=>M(n)},null,44,u),n.item.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,d,(0,t.toDisplayString)(n.item.title),1)):(0,t.createCommentVNode)(`v-if`,!0)])],!0)],44,c))),128))],4),g.infinite?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,f,[(0,t.createElementVNode)(`div`,{ref_key:`sentinelRef`,ref:y,class:`waterfall__sentinel`},null,512),(0,t.renderSlot)(e.$slots,`footer`,{status:(0,t.unref)(A)},()=>[g.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,p,[(0,t.createVNode)((0,t.unref)(n.NSpin),{size:`small`}),r[1]||=(0,t.createElementVNode)(`span`,null,`加载中…`,-1)])):g.noMore?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,m,` 没有更多了 `)):(0,t.createCommentVNode)(`v-if`,!0)],!0)])):(0,t.createCommentVNode)(`v-if`,!0)],512))}});var g=e.t(h,[[`__scopeId`,`data-v-f5a6939b`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return 300}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return 8}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return 200}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return 16}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return i}});
1
+ require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`naive-ui`);const r=[{minWidth:1600,columns:6},{minWidth:1200,columns:5},{minWidth:992,columns:4},{minWidth:768,columns:3},{minWidth:480,columns:2},{minWidth:0,columns:1}],i=[180,360];function a(e,n,i){let a=(0,t.ref)(4),o=(0,t.ref)(0);function s(e){if(n?.value&&n.value>0)return n.value;let t=[...i?.value?.length?i.value:r].sort((e,t)=>t.minWidth-e.minWidth);for(let n of t)if(e>=n.minWidth)return n.columns;return 1}let c=null;function l(){let t=e.value;if(!t)return;c=new ResizeObserver(e=>{for(let t of e){let{width:e}=t.contentRect;o.value=e,a.value=s(e)}}),c.observe(t);let n=t.getBoundingClientRect();o.value=n.width,a.value=s(n.width)}function u(){c?.disconnect(),c=null}return(0,t.onMounted)(l),(0,t.onBeforeUnmount)(u),(0,t.watch)(e,()=>{u(),l()}),(0,t.watch)([()=>n?.value,()=>i?.value],()=>{o.value>0&&(a.value=s(o.value))}),{columns:(0,t.readonly)(a),containerWidth:(0,t.readonly)(o)}}function o(e,n,r,i){let a=(0,t.ref)([]),o=(0,t.ref)(0),s=new Map;function c(e,t,n){let r=e/t;return Number.isFinite(r)&&r>0?r*n:n}function l(e,t){let n=s.get(e.id),r=n?.src&&n.src!==e.src?void 0:n;return r&&!r.basisWidth?r.height:r?.basisWidth?c(r.height,r.basisWidth,t):c(e.height,e.width,t)}function u(){a.value=[],o.value=0,e.value.length===0&&s.clear()}function d(t,n,r){return Number.isFinite(t)&&Number.isFinite(n)&&Number.isFinite(r)&&n>0&&e.value.length>0}function f(e,t,n,r){if(!Number.isFinite(t)||t<=0||n!==void 0&&(!Number.isFinite(n)||n<=0))return;let i=s.get(e);i?.height===t&&i.basisWidth===n&&i.src===r||(s.set(e,{height:t,basisWidth:n,src:r}),p())}function p(){let t=Math.min(24,Math.max(1,Math.floor(n.value))),c=r.value,f=Math.max(0,i.value??16);if(!d(t,c,f)){u();return}let p=(c-(t-1)*f)/t;if(p<=0){u();return}let m=Array.from({length:t},(e,t)=>({index:t,height:0})),h=[],g=new Set;for(let t of e.value){g.add(t.id);let e=m.reduce((e,t)=>t.height<e.height?t:e),n=l(t,p),r=e.index*(p+f),i=e.height;h.push({item:t,columnIndex:e.index,x:r,y:i,width:p,height:n}),e.height=i+n+f}for(let e of s.keys())g.has(e)||s.delete(e);a.value=h,o.value=Math.max(...m.map(e=>e.height))-f}return(0,t.watch)([e,()=>e.value.length,n,r,i],p,{immediate:!0}),{layoutItems:(0,t.readonly)(a),containerHeight:(0,t.readonly)(o),cacheImageHeight:f,relayout:p}}function s(e,n,r,i,a){let o=(0,t.ref)(`idle`),s=null,c=!1;function l(e){if(!e[0]?.isIntersecting){c=!1;return}!n.value||r.value||i.value||c||(c=!0,o.value=`loading`,a())}function u(){let t=e.value;!t||!n.value||(s=new IntersectionObserver(l,{rootMargin:`200px 0px`}),s.observe(t))}function d(){s?.disconnect(),s=null,c=!1}return(0,t.watch)([r,i],()=>{i.value?o.value=`no-more`:r.value?o.value=`loading`:(o.value=`idle`,c=!1)}),(0,t.onMounted)(u),(0,t.onBeforeUnmount)(d),(0,t.watch)([e,n],()=>{d(),u()}),{status:(0,t.readonly)(o)}}const c=[`aria-label`,`onClick`,`onKeydown`],l={class:`waterfall__card`},u=[`src`,`alt`,`loading`,`onLoad`,`onError`],d={key:0,class:`waterfall__title`},f={key:0,class:`waterfall__footer`},p={key:0,class:`waterfall__status`},m={key:1,class:`waterfall__status waterfall__status--done`},h=(0,t.defineComponent)({name:`C_WaterFall`,__name:`index`,props:{items:{},columns:{default:void 0},gap:{default:16},lazy:{type:Boolean,default:!0},infinite:{type:Boolean,default:!1},skeleton:{type:Boolean,default:!0},skeletonCount:{default:8},animationDuration:{default:300},breakpoints:{default:void 0},loading:{type:Boolean,default:!1},noMore:{type:Boolean,default:!1}},emits:[`load-more`,`item-click`,`image-loaded`,`image-error`],setup(e,{expose:r,emit:h}){let g=e,_=h,v=(0,t.ref)(),y=(0,t.ref)(),{columns:b,containerWidth:x}=a(v,(0,t.computed)(()=>g.columns),(0,t.computed)(()=>g.breakpoints)),{layoutItems:S,containerHeight:C,cacheImageHeight:w,relayout:T}=o((0,t.computed)(()=>g.items),b,x,(0,t.computed)(()=>g.gap)),E=(0,t.computed)(()=>g.skeleton&&g.loading&&S.value.length===0),D=(0,t.computed)(()=>{let e=Math.min(24,Math.max(1,Math.floor(b.value))),t=x.value,n=Math.max(0,g.gap);if(!Number.isFinite(e)||t<=0)return[];let r=(t-(e-1)*n)/e;if(r<=0)return[];let a=Math.min(100,Math.max(0,Math.floor(g.skeletonCount??8))),o=Array(e).fill(0),s=[];for(let e=0;e<a;e++){let t=o.indexOf(Math.min(...o)),a=i[0]+e*73%(i[1]-i[0]);s.push({x:t*(r+n),y:o[t],width:r,height:a}),o[t]+=a+n}return s}),O=(0,t.computed)(()=>D.value.length===0?0:Math.max(...D.value.map(e=>e.y+e.height))),k=(0,t.computed)(()=>E.value?O.value:C.value),{status:A}=s(y,(0,t.computed)(()=>g.infinite),(0,t.computed)(()=>g.loading),(0,t.computed)(()=>g.noMore),()=>_(`load-more`));function j(e,t){let n=t.target;if(n.naturalHeight&&n.naturalWidth){let t=n.naturalHeight/n.naturalWidth*e.width;w(e.item.id,t,e.width,e.item.src)}_(`image-loaded`,e.item)}function M(e){_(`image-error`,e.item)}function N(){v.value?.scrollIntoView({behavior:`smooth`,block:`start`})}return r({relayout:T,scrollToTop:N,getColumns:()=>b.value,getContainerHeight:()=>C.value}),(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`containerRef`,ref:v,class:`c-waterfall`},[(0,t.createElementVNode)(`div`,{class:`waterfall__body`,style:(0,t.normalizeStyle)({height:`${k.value}px`,position:`relative`})},[E.value?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(D.value,(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`sk-${i}`,class:`waterfall__skeleton`,style:(0,t.normalizeStyle)({position:`absolute`,left:`${n.x}px`,top:`${n.y}px`,width:`${n.width}px`,height:`${n.height}px`,transition:`all ${g.animationDuration??(0,t.unref)(300)}ms ease`})},[(0,t.renderSlot)(e.$slots,`skeleton`,{},()=>[r[0]||=(0,t.createElementVNode)(`div`,{class:`waterfall__skeleton-inner`},null,-1)],!0)],4))),128)):(0,t.createCommentVNode)(`v-if`,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(S),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.item.id,class:`waterfall__item`,role:`button`,tabindex:`0`,"aria-label":n.item.title||`瀑布流项目 ${r+1}`,style:(0,t.normalizeStyle)({position:`absolute`,left:`${n.x}px`,top:`${n.y}px`,width:`${n.width}px`,transition:`all ${g.animationDuration??(0,t.unref)(300)}ms ease`}),onClick:e=>_(`item-click`,n.item,r),onKeydown:[(0,t.withKeys)(e=>_(`item-click`,n.item,r),[`enter`]),(0,t.withKeys)((0,t.withModifiers)(e=>_(`item-click`,n.item,r),[`prevent`]),[`space`])]},[(0,t.renderSlot)(e.$slots,`item`,{item:n.item,index:r,width:n.width,height:n.height},()=>[(0,t.createElementVNode)(`div`,l,[(0,t.createElementVNode)(`img`,{src:n.item.src,alt:n.item.title||``,loading:g.lazy?`lazy`:`eager`,class:`waterfall__image`,style:(0,t.normalizeStyle)({height:`${n.height}px`}),onLoad:e=>j(n,e),onError:e=>M(n)},null,44,u),n.item.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,d,(0,t.toDisplayString)(n.item.title),1)):(0,t.createCommentVNode)(`v-if`,!0)])],!0)],44,c))),128))],4),g.infinite?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,f,[(0,t.createElementVNode)(`div`,{ref_key:`sentinelRef`,ref:y,class:`waterfall__sentinel`},null,512),(0,t.renderSlot)(e.$slots,`footer`,{status:(0,t.unref)(A)},()=>[g.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,p,[(0,t.createVNode)((0,t.unref)(n.NSpin),{size:`small`}),r[1]||=(0,t.createElementVNode)(`span`,null,`加载中…`,-1)])):g.noMore?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,m,` 没有更多了 `)):(0,t.createCommentVNode)(`v-if`,!0)],!0)])):(0,t.createCommentVNode)(`v-if`,!0)],512))}});var g=e.t(h,[[`__scopeId`,`data-v-8bf18c79`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return 300}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return 8}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return 200}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return 16}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return i}});
@@ -1 +1 @@
1
- import{t as e}from"./export-helper.js";import{Fragment as t,computed as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,createVNode as o,defineComponent as s,normalizeStyle as c,onBeforeUnmount as l,onMounted as u,openBlock as d,readonly as f,ref as p,renderList as m,renderSlot as h,toDisplayString as g,unref as _,watch as v,withKeys as y,withModifiers as b}from"vue";import{NSpin as x}from"naive-ui";const S=16,C=300,w=8,T=200,E=[{minWidth:1600,columns:6},{minWidth:1200,columns:5},{minWidth:992,columns:4},{minWidth:768,columns:3},{minWidth:480,columns:2},{minWidth:0,columns:1}],D=[180,360];function O(e,t,n){let r=p(4),i=p(0);function a(e){if(t?.value&&t.value>0)return t.value;let r=[...n?.value?.length?n.value:E].sort((e,t)=>t.minWidth-e.minWidth);for(let t of r)if(e>=t.minWidth)return t.columns;return 1}let o=null;function s(){let t=e.value;if(!t)return;o=new ResizeObserver(e=>{for(let t of e){let{width:e}=t.contentRect;i.value=e,r.value=a(e)}}),o.observe(t);let n=t.getBoundingClientRect();i.value=n.width,r.value=a(n.width)}function c(){o?.disconnect(),o=null}return u(s),l(c),v(e,()=>{c(),s()}),v([()=>t?.value,()=>n?.value],()=>{i.value>0&&(r.value=a(i.value))}),{columns:f(r),containerWidth:f(i)}}function k(e,t,n,r){let i=p([]),a=p(0),o=new Map;function s(e,t,n){let r=e/t;return Number.isFinite(r)&&r>0?r*n:n}function c(e,t){let n=o.get(e.id),r=n?.src&&n.src!==e.src?void 0:n;return r&&!r.basisWidth?r.height:r?.basisWidth?s(r.height,r.basisWidth,t):s(e.height,e.width,t)}function l(){i.value=[],a.value=0,e.value.length===0&&o.clear()}function u(t,n,r){return Number.isFinite(t)&&Number.isFinite(n)&&Number.isFinite(r)&&n>0&&e.value.length>0}function d(e,t,n,r){if(!Number.isFinite(t)||t<=0||n!==void 0&&(!Number.isFinite(n)||n<=0))return;let i=o.get(e);i?.height===t&&i.basisWidth===n&&i.src===r||(o.set(e,{height:t,basisWidth:n,src:r}),m())}function m(){let s=Math.min(24,Math.max(1,Math.floor(t.value))),d=n.value,f=Math.max(0,r.value??16);if(!u(s,d,f)){l();return}let p=(d-(s-1)*f)/s;if(p<=0){l();return}let m=Array.from({length:s},(e,t)=>({index:t,height:0})),h=[],g=new Set;for(let t of e.value){g.add(t.id);let e=m.reduce((e,t)=>t.height<e.height?t:e),n=c(t,p),r=e.index*(p+f),i=e.height;h.push({item:t,columnIndex:e.index,x:r,y:i,width:p,height:n}),e.height=i+n+f}for(let e of o.keys())g.has(e)||o.delete(e);i.value=h,a.value=Math.max(...m.map(e=>e.height))-f}return v([e,()=>e.value.length,t,n,r],m,{immediate:!0}),{layoutItems:f(i),containerHeight:f(a),cacheImageHeight:d,relayout:m}}function A(e,t,n,r,i){let a=p(`idle`),o=null,s=!1;function c(e){if(!e[0]?.isIntersecting){s=!1;return}!t.value||n.value||r.value||s||(s=!0,a.value=`loading`,i())}function d(){let n=e.value;!n||!t.value||(o=new IntersectionObserver(c,{rootMargin:`200px 0px`}),o.observe(n))}function m(){o?.disconnect(),o=null,s=!1}return v([n,r],()=>{r.value?a.value=`no-more`:n.value?a.value=`loading`:(a.value=`idle`,s=!1)}),u(d),l(m),v([e,t],()=>{m(),d()}),{status:f(a)}}const j=[`aria-label`,`onClick`,`onKeydown`],M={class:`waterfall__card`},N=[`src`,`alt`,`loading`,`onLoad`,`onError`],P={key:0,class:`waterfall__title`},F={key:0,class:`waterfall__footer`},I={key:0,class:`waterfall__status`},L={key:1,class:`waterfall__status waterfall__status--done`};var R=e(s({name:`C_WaterFall`,__name:`index`,props:{items:{},columns:{default:void 0},gap:{default:16},lazy:{type:Boolean,default:!0},infinite:{type:Boolean,default:!1},skeleton:{type:Boolean,default:!0},skeletonCount:{default:8},animationDuration:{default:300},breakpoints:{default:void 0},loading:{type:Boolean,default:!1},noMore:{type:Boolean,default:!1}},emits:[`load-more`,`item-click`,`image-loaded`,`image-error`],setup(e,{expose:s,emit:l}){let u=e,f=l,v=p(),S=p(),{columns:C,containerWidth:w}=O(v,n(()=>u.columns),n(()=>u.breakpoints)),{layoutItems:T,containerHeight:E,cacheImageHeight:R,relayout:z}=k(n(()=>u.items),C,w,n(()=>u.gap)),B=n(()=>u.skeleton&&u.loading&&T.value.length===0),V=n(()=>{let e=Math.min(24,Math.max(1,Math.floor(C.value))),t=w.value,n=Math.max(0,u.gap);if(!Number.isFinite(e)||t<=0)return[];let r=(t-(e-1)*n)/e;if(r<=0)return[];let i=Math.min(100,Math.max(0,Math.floor(u.skeletonCount??8))),a=Array(e).fill(0),o=[];for(let e=0;e<i;e++){let t=a.indexOf(Math.min(...a)),i=D[0]+e*73%(D[1]-D[0]);o.push({x:t*(r+n),y:a[t],width:r,height:i}),a[t]+=i+n}return o}),H=n(()=>V.value.length===0?0:Math.max(...V.value.map(e=>e.y+e.height))),U=n(()=>B.value?H.value:E.value),{status:W}=A(S,n(()=>u.infinite),n(()=>u.loading),n(()=>u.noMore),()=>f(`load-more`));function G(e,t){let n=t.target;if(n.naturalHeight&&n.naturalWidth){let t=n.naturalHeight/n.naturalWidth*e.width;R(e.item.id,t,e.width,e.item.src)}f(`image-loaded`,e.item)}function K(e){f(`image-error`,e.item)}function q(){v.value?.scrollIntoView({behavior:`smooth`,block:`start`})}return s({relayout:z,scrollToTop:q,getColumns:()=>C.value,getContainerHeight:()=>E.value}),(e,n)=>(d(),i(`div`,{ref_key:`containerRef`,ref:v,class:`c-waterfall`},[a(`div`,{class:`waterfall__body`,style:c({height:`${U.value}px`,position:`relative`})},[B.value?(d(!0),i(t,{key:0},m(V.value,(t,r)=>(d(),i(`div`,{key:`sk-${r}`,class:`waterfall__skeleton`,style:c({position:`absolute`,left:`${t.x}px`,top:`${t.y}px`,width:`${t.width}px`,height:`${t.height}px`,transition:`all ${u.animationDuration??_(300)}ms ease`})},[h(e.$slots,`skeleton`,{},()=>[n[0]||=a(`div`,{class:`waterfall__skeleton-inner`},null,-1)],!0)],4))),128)):r(`v-if`,!0),(d(!0),i(t,null,m(_(T),(t,n)=>(d(),i(`div`,{key:t.item.id,class:`waterfall__item`,role:`button`,tabindex:`0`,"aria-label":t.item.title||`瀑布流项目 ${n+1}`,style:c({position:`absolute`,left:`${t.x}px`,top:`${t.y}px`,width:`${t.width}px`,transition:`all ${u.animationDuration??_(300)}ms ease`}),onClick:e=>f(`item-click`,t.item,n),onKeydown:[y(e=>f(`item-click`,t.item,n),[`enter`]),y(b(e=>f(`item-click`,t.item,n),[`prevent`]),[`space`])]},[h(e.$slots,`item`,{item:t.item,index:n,width:t.width,height:t.height},()=>[a(`div`,M,[a(`img`,{src:t.item.src,alt:t.item.title||``,loading:u.lazy?`lazy`:`eager`,class:`waterfall__image`,style:c({height:`${t.height}px`}),onLoad:e=>G(t,e),onError:e=>K(t)},null,44,N),t.item.title?(d(),i(`div`,P,g(t.item.title),1)):r(`v-if`,!0)])],!0)],44,j))),128))],4),u.infinite?(d(),i(`div`,F,[a(`div`,{ref_key:`sentinelRef`,ref:S,class:`waterfall__sentinel`},null,512),h(e.$slots,`footer`,{status:_(W)},()=>[u.loading?(d(),i(`div`,I,[o(_(x),{size:`small`}),n[1]||=a(`span`,null,`加载中…`,-1)])):u.noMore?(d(),i(`div`,L,` 没有更多了 `)):r(`v-if`,!0)],!0)])):r(`v-if`,!0)],512))}}),[[`__scopeId`,`data-v-f5a6939b`]]);export{C as a,w as c,O as i,T as l,A as n,E as o,k as r,S as s,R as t,D as u};
1
+ import{t as e}from"./export-helper.js";import{Fragment as t,computed as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,createVNode as o,defineComponent as s,normalizeStyle as c,onBeforeUnmount as l,onMounted as u,openBlock as d,readonly as f,ref as p,renderList as m,renderSlot as h,toDisplayString as g,unref as _,watch as v,withKeys as y,withModifiers as b}from"vue";import{NSpin as x}from"naive-ui";const S=16,C=300,w=8,T=200,E=[{minWidth:1600,columns:6},{minWidth:1200,columns:5},{minWidth:992,columns:4},{minWidth:768,columns:3},{minWidth:480,columns:2},{minWidth:0,columns:1}],D=[180,360];function O(e,t,n){let r=p(4),i=p(0);function a(e){if(t?.value&&t.value>0)return t.value;let r=[...n?.value?.length?n.value:E].sort((e,t)=>t.minWidth-e.minWidth);for(let t of r)if(e>=t.minWidth)return t.columns;return 1}let o=null;function s(){let t=e.value;if(!t)return;o=new ResizeObserver(e=>{for(let t of e){let{width:e}=t.contentRect;i.value=e,r.value=a(e)}}),o.observe(t);let n=t.getBoundingClientRect();i.value=n.width,r.value=a(n.width)}function c(){o?.disconnect(),o=null}return u(s),l(c),v(e,()=>{c(),s()}),v([()=>t?.value,()=>n?.value],()=>{i.value>0&&(r.value=a(i.value))}),{columns:f(r),containerWidth:f(i)}}function k(e,t,n,r){let i=p([]),a=p(0),o=new Map;function s(e,t,n){let r=e/t;return Number.isFinite(r)&&r>0?r*n:n}function c(e,t){let n=o.get(e.id),r=n?.src&&n.src!==e.src?void 0:n;return r&&!r.basisWidth?r.height:r?.basisWidth?s(r.height,r.basisWidth,t):s(e.height,e.width,t)}function l(){i.value=[],a.value=0,e.value.length===0&&o.clear()}function u(t,n,r){return Number.isFinite(t)&&Number.isFinite(n)&&Number.isFinite(r)&&n>0&&e.value.length>0}function d(e,t,n,r){if(!Number.isFinite(t)||t<=0||n!==void 0&&(!Number.isFinite(n)||n<=0))return;let i=o.get(e);i?.height===t&&i.basisWidth===n&&i.src===r||(o.set(e,{height:t,basisWidth:n,src:r}),m())}function m(){let s=Math.min(24,Math.max(1,Math.floor(t.value))),d=n.value,f=Math.max(0,r.value??16);if(!u(s,d,f)){l();return}let p=(d-(s-1)*f)/s;if(p<=0){l();return}let m=Array.from({length:s},(e,t)=>({index:t,height:0})),h=[],g=new Set;for(let t of e.value){g.add(t.id);let e=m.reduce((e,t)=>t.height<e.height?t:e),n=c(t,p),r=e.index*(p+f),i=e.height;h.push({item:t,columnIndex:e.index,x:r,y:i,width:p,height:n}),e.height=i+n+f}for(let e of o.keys())g.has(e)||o.delete(e);i.value=h,a.value=Math.max(...m.map(e=>e.height))-f}return v([e,()=>e.value.length,t,n,r],m,{immediate:!0}),{layoutItems:f(i),containerHeight:f(a),cacheImageHeight:d,relayout:m}}function A(e,t,n,r,i){let a=p(`idle`),o=null,s=!1;function c(e){if(!e[0]?.isIntersecting){s=!1;return}!t.value||n.value||r.value||s||(s=!0,a.value=`loading`,i())}function d(){let n=e.value;!n||!t.value||(o=new IntersectionObserver(c,{rootMargin:`200px 0px`}),o.observe(n))}function m(){o?.disconnect(),o=null,s=!1}return v([n,r],()=>{r.value?a.value=`no-more`:n.value?a.value=`loading`:(a.value=`idle`,s=!1)}),u(d),l(m),v([e,t],()=>{m(),d()}),{status:f(a)}}const j=[`aria-label`,`onClick`,`onKeydown`],M={class:`waterfall__card`},N=[`src`,`alt`,`loading`,`onLoad`,`onError`],P={key:0,class:`waterfall__title`},F={key:0,class:`waterfall__footer`},I={key:0,class:`waterfall__status`},L={key:1,class:`waterfall__status waterfall__status--done`};var R=e(s({name:`C_WaterFall`,__name:`index`,props:{items:{},columns:{default:void 0},gap:{default:16},lazy:{type:Boolean,default:!0},infinite:{type:Boolean,default:!1},skeleton:{type:Boolean,default:!0},skeletonCount:{default:8},animationDuration:{default:300},breakpoints:{default:void 0},loading:{type:Boolean,default:!1},noMore:{type:Boolean,default:!1}},emits:[`load-more`,`item-click`,`image-loaded`,`image-error`],setup(e,{expose:s,emit:l}){let u=e,f=l,v=p(),S=p(),{columns:C,containerWidth:w}=O(v,n(()=>u.columns),n(()=>u.breakpoints)),{layoutItems:T,containerHeight:E,cacheImageHeight:R,relayout:z}=k(n(()=>u.items),C,w,n(()=>u.gap)),B=n(()=>u.skeleton&&u.loading&&T.value.length===0),V=n(()=>{let e=Math.min(24,Math.max(1,Math.floor(C.value))),t=w.value,n=Math.max(0,u.gap);if(!Number.isFinite(e)||t<=0)return[];let r=(t-(e-1)*n)/e;if(r<=0)return[];let i=Math.min(100,Math.max(0,Math.floor(u.skeletonCount??8))),a=Array(e).fill(0),o=[];for(let e=0;e<i;e++){let t=a.indexOf(Math.min(...a)),i=D[0]+e*73%(D[1]-D[0]);o.push({x:t*(r+n),y:a[t],width:r,height:i}),a[t]+=i+n}return o}),H=n(()=>V.value.length===0?0:Math.max(...V.value.map(e=>e.y+e.height))),U=n(()=>B.value?H.value:E.value),{status:W}=A(S,n(()=>u.infinite),n(()=>u.loading),n(()=>u.noMore),()=>f(`load-more`));function G(e,t){let n=t.target;if(n.naturalHeight&&n.naturalWidth){let t=n.naturalHeight/n.naturalWidth*e.width;R(e.item.id,t,e.width,e.item.src)}f(`image-loaded`,e.item)}function K(e){f(`image-error`,e.item)}function q(){v.value?.scrollIntoView({behavior:`smooth`,block:`start`})}return s({relayout:z,scrollToTop:q,getColumns:()=>C.value,getContainerHeight:()=>E.value}),(e,n)=>(d(),i(`div`,{ref_key:`containerRef`,ref:v,class:`c-waterfall`},[a(`div`,{class:`waterfall__body`,style:c({height:`${U.value}px`,position:`relative`})},[B.value?(d(!0),i(t,{key:0},m(V.value,(t,r)=>(d(),i(`div`,{key:`sk-${r}`,class:`waterfall__skeleton`,style:c({position:`absolute`,left:`${t.x}px`,top:`${t.y}px`,width:`${t.width}px`,height:`${t.height}px`,transition:`all ${u.animationDuration??_(300)}ms ease`})},[h(e.$slots,`skeleton`,{},()=>[n[0]||=a(`div`,{class:`waterfall__skeleton-inner`},null,-1)],!0)],4))),128)):r(`v-if`,!0),(d(!0),i(t,null,m(_(T),(t,n)=>(d(),i(`div`,{key:t.item.id,class:`waterfall__item`,role:`button`,tabindex:`0`,"aria-label":t.item.title||`瀑布流项目 ${n+1}`,style:c({position:`absolute`,left:`${t.x}px`,top:`${t.y}px`,width:`${t.width}px`,transition:`all ${u.animationDuration??_(300)}ms ease`}),onClick:e=>f(`item-click`,t.item,n),onKeydown:[y(e=>f(`item-click`,t.item,n),[`enter`]),y(b(e=>f(`item-click`,t.item,n),[`prevent`]),[`space`])]},[h(e.$slots,`item`,{item:t.item,index:n,width:t.width,height:t.height},()=>[a(`div`,M,[a(`img`,{src:t.item.src,alt:t.item.title||``,loading:u.lazy?`lazy`:`eager`,class:`waterfall__image`,style:c({height:`${t.height}px`}),onLoad:e=>G(t,e),onError:e=>K(t)},null,44,N),t.item.title?(d(),i(`div`,P,g(t.item.title),1)):r(`v-if`,!0)])],!0)],44,j))),128))],4),u.infinite?(d(),i(`div`,F,[a(`div`,{ref_key:`sentinelRef`,ref:S,class:`waterfall__sentinel`},null,512),h(e.$slots,`footer`,{status:_(W)},()=>[u.loading?(d(),i(`div`,I,[o(_(x),{size:`small`}),n[1]||=a(`span`,null,`加载中…`,-1)])):u.noMore?(d(),i(`div`,L,` 没有更多了 `)):r(`v-if`,!0)],!0)])):r(`v-if`,!0)],512))}}),[[`__scopeId`,`data-v-8bf18c79`]]);export{C as a,w as c,O as i,T as l,A as n,E as o,k as r,S as s,R as t,D as u};