@robot-admin/naive-ui-components 0.11.8 → 0.12.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 (179) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +145 -28
  3. package/README_EN.md +145 -28
  4. package/SECURITY.md +1 -0
  5. package/dist/C_ActionBar.cjs +1 -1
  6. package/dist/C_ActionBar.css +53 -53
  7. package/dist/C_ActionBar.d.cts +2 -2
  8. package/dist/C_ActionBar.d.ts +2 -2
  9. package/dist/C_ActionBar.js +1 -1
  10. package/dist/C_ActionBar2.cjs +1 -1
  11. package/dist/C_ActionBar2.js +1 -1
  12. package/dist/C_AntV.css +67 -67
  13. package/dist/C_AntV2.cjs +3 -3
  14. package/dist/C_AntV2.js +3 -3
  15. package/dist/C_AudioPlayer.d.cts +1 -1
  16. package/dist/C_AudioPlayer.d.ts +1 -1
  17. package/dist/C_AvatarGroup.d.cts +1 -1
  18. package/dist/C_AvatarGroup.d.ts +1 -1
  19. package/dist/C_Barcode.d.cts +1 -1
  20. package/dist/C_Barcode.d.ts +1 -1
  21. package/dist/C_Breadcrumb.d.cts +1 -1
  22. package/dist/C_Breadcrumb.d.ts +1 -1
  23. package/dist/C_Captcha.cjs +1 -1
  24. package/dist/C_Captcha.css +193 -51
  25. package/dist/C_Captcha.d.cts +2 -3
  26. package/dist/C_Captcha.d.ts +2 -3
  27. package/dist/C_Captcha.js +1 -1
  28. package/dist/C_Captcha2.cjs +1 -1
  29. package/dist/C_Captcha2.js +1 -1
  30. package/dist/C_Cascade.d.cts +1 -1
  31. package/dist/C_Cascade.d.ts +1 -1
  32. package/dist/C_Chat.d.cts +1 -1
  33. package/dist/C_Chat.d.ts +1 -1
  34. package/dist/C_City.d.cts +1 -1
  35. package/dist/C_City.d.ts +1 -1
  36. package/dist/C_Code.d.cts +1 -1
  37. package/dist/C_Code.d.ts +1 -1
  38. package/dist/C_ContextMenu.d.cts +1 -1
  39. package/dist/C_ContextMenu.d.ts +1 -1
  40. package/dist/C_Date.d.cts +1 -1
  41. package/dist/C_Date.d.ts +1 -1
  42. package/dist/C_Editor.d.cts +1 -1
  43. package/dist/C_Editor.d.ts +1 -1
  44. package/dist/C_FormModal.cjs +1 -0
  45. package/dist/C_FormModal.css +41 -0
  46. package/dist/C_FormModal.d.cts +2 -0
  47. package/dist/C_FormModal.d.ts +3 -0
  48. package/dist/C_FormModal.js +1 -0
  49. package/dist/C_FormModal2.cjs +1 -0
  50. package/dist/C_FormModal2.js +1 -0
  51. package/dist/C_Login.css +210 -127
  52. package/dist/C_Login2.cjs +1 -1
  53. package/dist/C_Login2.js +1 -1
  54. package/dist/C_Map.css +3 -3
  55. package/dist/C_Map2.cjs +1 -1
  56. package/dist/C_Map2.js +1 -1
  57. package/dist/C_Menu.d.cts +1 -1
  58. package/dist/C_Table.base.css +86 -86
  59. package/dist/C_Table.cjs +1 -1
  60. package/dist/C_Table.css +86 -86
  61. package/dist/C_Table.d.ts +4 -3
  62. package/dist/C_Table.js +1 -1
  63. package/dist/C_Tabs.cjs +1 -0
  64. package/dist/C_Tabs.css +1 -0
  65. package/dist/C_Tabs.d.cts +2 -0
  66. package/dist/C_Tabs.d.ts +2 -0
  67. package/dist/C_Tabs.js +1 -0
  68. package/dist/C_TagsView.css +38 -38
  69. package/dist/C_TagsView2.cjs +1 -1
  70. package/dist/C_TagsView2.js +1 -1
  71. package/dist/constants.d.cts +2 -2
  72. package/dist/constants.d.ts +2 -2
  73. package/dist/constants2.d.cts +3 -3
  74. package/dist/constants2.d.ts +3 -3
  75. package/dist/constants3.d.cts +2 -2
  76. package/dist/constants3.d.ts +2 -2
  77. package/dist/constants4.d.cts +2 -2
  78. package/dist/constants4.d.ts +2 -2
  79. package/dist/constants5.d.cts +2 -2
  80. package/dist/constants5.d.ts +2 -2
  81. package/dist/data.d.cts +108 -0
  82. package/dist/data.d.ts +108 -0
  83. package/dist/data2.cjs +1 -0
  84. package/dist/data2.js +1 -0
  85. package/dist/index.cjs +1 -1
  86. package/dist/index.d.cts +49 -48
  87. package/dist/index.d.ts +51 -49
  88. package/dist/index.js +1 -1
  89. package/dist/index.vue.d.cts +72 -69
  90. package/dist/index.vue.d.ts +72 -69
  91. package/dist/index10.vue.d.cts +80 -39
  92. package/dist/index10.vue.d.ts +68 -77
  93. package/dist/index11.vue.d.cts +68 -77
  94. package/dist/index11.vue.d.ts +53 -68
  95. package/dist/index12.vue.d.cts +53 -68
  96. package/dist/index12.vue.d.ts +52 -58
  97. package/dist/index13.vue.d.cts +52 -58
  98. package/dist/index13.vue.d.ts +3 -3
  99. package/dist/index14.vue.d.cts +3 -3
  100. package/dist/index14.vue.d.ts +4 -4
  101. package/dist/index15.vue.d.cts +4 -4
  102. package/dist/index15.vue.d.ts +2 -2
  103. package/dist/index16.vue.d.cts +2 -2
  104. package/dist/index16.vue.d.ts +15 -12
  105. package/dist/index17.vue.d.cts +15 -12
  106. package/dist/index17.vue.d.ts +3 -3
  107. package/dist/index18.vue.d.cts +3 -3
  108. package/dist/index2.vue.d.cts +70 -65
  109. package/dist/index2.vue.d.ts +70 -65
  110. package/dist/index20.vue.d.cts +1 -1
  111. package/dist/index20.vue.d.ts +1 -1
  112. package/dist/index21.vue.d.cts +2 -2
  113. package/dist/index21.vue.d.ts +2 -2
  114. package/dist/index22.vue.d.cts +2 -2
  115. package/dist/index22.vue.d.ts +2 -2
  116. package/dist/index24.vue.d.cts +2 -2
  117. package/dist/index24.vue.d.ts +2 -2
  118. package/dist/index26.vue.d.cts +3 -3
  119. package/dist/index26.vue.d.ts +3 -3
  120. package/dist/index27.vue.d.cts +2 -2
  121. package/dist/index27.vue.d.ts +2 -2
  122. package/dist/index3.vue.d.cts +30 -80
  123. package/dist/index3.vue.d.ts +30 -80
  124. package/dist/index4.vue.d.cts +130 -30
  125. package/dist/index4.vue.d.ts +22 -30
  126. package/dist/index5.vue.d.cts +18 -126
  127. package/dist/index5.vue.d.ts +22 -19
  128. package/dist/index6.vue.d.cts +22 -19
  129. package/dist/index6.vue.d.ts +117 -22
  130. package/dist/index7.vue.d.cts +117 -22
  131. package/dist/index7.vue.d.ts +17 -110
  132. package/dist/index8.vue.d.cts +17 -110
  133. package/dist/index8.vue.d.ts +37 -24
  134. package/dist/index9.vue.d.cts +37 -24
  135. package/dist/index9.vue.d.ts +80 -39
  136. package/dist/mapUtils.d.cts +1 -1
  137. package/dist/mapUtils.d.ts +1 -1
  138. package/dist/presets.d.cts +96 -0
  139. package/dist/presets.d.ts +96 -0
  140. package/dist/resolver.cjs +1 -1
  141. package/dist/resolver.d.cts +1 -1
  142. package/dist/resolver.d.ts +1 -1
  143. package/dist/resolver.js +1 -1
  144. package/dist/style.css +501 -374
  145. package/dist/useCalendarEvents.d.cts +2 -2
  146. package/dist/useCalendarEvents.d.ts +2 -2
  147. package/dist/useCollapsePanel.d.cts +3 -3
  148. package/dist/useCollapsePanel.d.ts +3 -3
  149. package/dist/useCropperCore.d.cts +7 -7
  150. package/dist/useCropperCore.d.ts +7 -7
  151. package/dist/useDraggableLayout.d.cts +3 -3
  152. package/dist/useDraggableLayout.d.ts +3 -3
  153. package/dist/useDynamicFormState.d.cts +2 -2
  154. package/dist/useDynamicFormState.d.ts +2 -2
  155. package/dist/useEdgeInteraction.d.cts +2 -1
  156. package/dist/useEdgeInteraction.d.ts +2 -1
  157. package/dist/useInfiniteScroll.d.cts +3 -3
  158. package/dist/useInfiniteScroll.d.ts +3 -3
  159. package/dist/useQRCode.d.cts +2 -2
  160. package/dist/useQRCode.d.ts +2 -2
  161. package/dist/useSearchState.d.cts +9 -9
  162. package/dist/useSearchState.d.ts +9 -9
  163. package/dist/useSplitResize.d.cts +7 -7
  164. package/dist/useSplitResize.d.ts +7 -7
  165. package/dist/useTableQuery.cjs +3 -3
  166. package/dist/useTableQuery.d.cts +11 -1
  167. package/dist/useTableQuery.d.ts +11 -1
  168. package/dist/useTableQuery.js +3 -3
  169. package/dist/useTimeSelection.d.cts +3 -3
  170. package/dist/useTimeSelection.d.ts +3 -3
  171. package/dist/useTreeOperations.d.cts +6 -6
  172. package/dist/useTreeOperations.d.ts +6 -6
  173. package/dist/useWorkflowValidation.d.cts +5 -5
  174. package/dist/useWorkflowValidation.d.ts +5 -5
  175. package/dist/verification.d.cts +69 -4
  176. package/dist/verification.d.ts +69 -4
  177. package/package.json +2 -1
  178. package/dist/types.d.ts +0 -58
  179. package/dist/types2.d.cts +0 -58
@@ -61,7 +61,7 @@
61
61
  * 标签组件样式 - 精简版
62
62
  * =========================================== */
63
63
  /* --------- 标签视图容器 --------- */
64
- .tags-view-container[data-v-2f4c32a7] {
64
+ .tags-view-container[data-v-7078e2ed] {
65
65
  border-bottom: 1px solid var(--color-border);
66
66
  padding: 8px 16px 0;
67
67
  position: relative;
@@ -69,14 +69,14 @@
69
69
  }
70
70
 
71
71
  /* --------- 滚动轨道容器 --------- */
72
- .tags-track[data-v-2f4c32a7] {
72
+ .tags-track[data-v-7078e2ed] {
73
73
  width: 100%;
74
74
  overflow: hidden;
75
75
  position: relative;
76
76
  }
77
77
 
78
78
  /* --------- 滚动容器 --------- */
79
- .tags-container[data-v-2f4c32a7] {
79
+ .tags-container[data-v-7078e2ed] {
80
80
  display: flex;
81
81
  overflow-x: auto;
82
82
  overflow-y: hidden;
@@ -86,12 +86,12 @@
86
86
  align-items: center;
87
87
  min-height: 40px;
88
88
  }
89
- .tags-container[data-v-2f4c32a7]::-webkit-scrollbar {
89
+ .tags-container[data-v-7078e2ed]::-webkit-scrollbar {
90
90
  display: none;
91
91
  }
92
92
 
93
93
  /* --------- 现代化标签样式 --------- */
94
- .n-tag[data-v-2f4c32a7] {
94
+ .n-tag[data-v-7078e2ed] {
95
95
  position: relative;
96
96
  display: inline-flex;
97
97
  align-items: center;
@@ -108,7 +108,7 @@
108
108
  white-space: nowrap;
109
109
  /* 内部高光效果 */
110
110
  }
111
- .n-tag[data-v-2f4c32a7]::before {
111
+ .n-tag[data-v-7078e2ed]::before {
112
112
  content: "";
113
113
  position: absolute;
114
114
  top: 1px;
@@ -120,67 +120,67 @@
120
120
  opacity: 0.5;
121
121
  transition: opacity 0.22s ease;
122
122
  }
123
- .n-tag[data-v-2f4c32a7] {
123
+ .n-tag[data-v-7078e2ed] {
124
124
  /* --------- 悬停效果 --------- */
125
125
  }
126
- .n-tag[data-v-2f4c32a7]:hover:not([type=primary]) {
126
+ .n-tag[data-v-7078e2ed]:hover:not([type=primary]) {
127
127
  color: var(--color-primary) !important;
128
128
  border-color: var(--color-primary);
129
129
  transform: scale(1.02);
130
130
  }
131
- .n-tag[data-v-2f4c32a7]:hover:not([type=primary])::before {
131
+ .n-tag[data-v-7078e2ed]:hover:not([type=primary])::before {
132
132
  opacity: 0.8;
133
133
  }
134
- .n-tag[data-v-2f4c32a7]:hover:not([type=primary]) .c-icon,
135
- .n-tag[data-v-2f4c32a7]:hover:not([type=primary]) [class*='c-icon'] {
134
+ .n-tag[data-v-7078e2ed]:hover:not([type=primary]) .c-icon,
135
+ .n-tag[data-v-7078e2ed]:hover:not([type=primary]) [class*='c-icon'] {
136
136
  color: var(--color-primary) !important;
137
137
  }
138
- .n-tag:hover:not([type=primary]) i[data-v-2f4c32a7],
139
- .n-tag:hover:not([type=primary]) .icon[data-v-2f4c32a7] {
138
+ .n-tag:hover:not([type=primary]) i[data-v-7078e2ed],
139
+ .n-tag:hover:not([type=primary]) .icon[data-v-7078e2ed] {
140
140
  color: var(--color-primary) !important;
141
141
  }
142
- .n-tag[data-v-2f4c32a7]:hover:not([type=primary]) .n-tag__close {
142
+ .n-tag[data-v-7078e2ed]:hover:not([type=primary]) .n-tag__close {
143
143
  color: var(--color-primary) !important;
144
144
  opacity: 0.8;
145
145
  transform: scale(1.05);
146
146
  }
147
- .n-tag[data-v-2f4c32a7] {
147
+ .n-tag[data-v-7078e2ed] {
148
148
  /* --------- 激活状态 --------- */
149
149
  }
150
- .n-tag[type=primary][data-v-2f4c32a7] {
150
+ .n-tag[type=primary][data-v-7078e2ed] {
151
151
  background: var(--tag-active-bg, rgba(32, 128, 240, 0.08)) !important;
152
152
  color: var(--color-primary) !important;
153
153
  border-color: var(--color-primary) !important;
154
154
  font-weight: 600;
155
155
  transform: scale(1.02);
156
156
  }
157
- .n-tag[type=primary][data-v-2f4c32a7]::before {
157
+ .n-tag[type=primary][data-v-7078e2ed]::before {
158
158
  opacity: 0.6;
159
159
  }
160
- .n-tag[type=primary][data-v-2f4c32a7] .n-tag__content,
161
- .n-tag[type=primary][data-v-2f4c32a7] *:not(.n-tag__close) {
160
+ .n-tag[type=primary][data-v-7078e2ed] .n-tag__content,
161
+ .n-tag[type=primary][data-v-7078e2ed] *:not(.n-tag__close) {
162
162
  color: var(--color-primary) !important;
163
163
  }
164
- .n-tag[type=primary][data-v-2f4c32a7] .c-icon,
165
- .n-tag[type=primary][data-v-2f4c32a7] [class*='c-icon'] {
164
+ .n-tag[type=primary][data-v-7078e2ed] .c-icon,
165
+ .n-tag[type=primary][data-v-7078e2ed] [class*='c-icon'] {
166
166
  color: var(--color-primary) !important;
167
167
  }
168
- .n-tag[type=primary] i[data-v-2f4c32a7],
169
- .n-tag[type=primary] .icon[data-v-2f4c32a7] {
168
+ .n-tag[type=primary] i[data-v-7078e2ed],
169
+ .n-tag[type=primary] .icon[data-v-7078e2ed] {
170
170
  color: var(--color-primary) !important;
171
171
  }
172
- .n-tag[type=primary][data-v-2f4c32a7]:hover {
172
+ .n-tag[type=primary][data-v-7078e2ed]:hover {
173
173
  background: var(--tag-active-hover-bg, rgba(32, 128, 240, 0.12)) !important;
174
174
  transform: scale(1.03);
175
175
  }
176
- .n-tag[type=primary][data-v-2f4c32a7] .n-tag__close {
176
+ .n-tag[type=primary][data-v-7078e2ed] .n-tag__close {
177
177
  color: var(--color-primary) !important;
178
178
  opacity: 0.8;
179
179
  }
180
- .n-tag[data-v-2f4c32a7] {
180
+ .n-tag[data-v-7078e2ed] {
181
181
  /* --------- 关闭按钮 --------- */
182
182
  }
183
- .n-tag[data-v-2f4c32a7] .n-tag__close {
183
+ .n-tag[data-v-7078e2ed] .n-tag__close {
184
184
  width: 16px !important;
185
185
  height: 16px !important;
186
186
  border-radius: 8px !important;
@@ -195,10 +195,10 @@
195
195
  background: rgba(0, 0, 0, 0.02) !important;
196
196
  border: 1px solid transparent;
197
197
  }
198
- .n-tag[data-v-2f4c32a7] .n-tag__close:not(:hover) {
198
+ .n-tag[data-v-7078e2ed] .n-tag__close:not(:hover) {
199
199
  transform: scale(0.9);
200
200
  }
201
- .n-tag[data-v-2f4c32a7] .n-tag__close:hover {
201
+ .n-tag[data-v-7078e2ed] .n-tag__close:hover {
202
202
  background: linear-gradient(135deg, rgba(248, 113, 113, 0.1), rgba(239, 68, 68, 0.08)) !important;
203
203
  border-color: rgba(239, 68, 68, 0.15) !important;
204
204
  color: #ef4444 !important;
@@ -206,13 +206,13 @@
206
206
  transform: scale(0.6) !important;
207
207
  box-shadow: 0 2px 6px rgba(239, 68, 68, 0.2) !important;
208
208
  }
209
- .n-tag[data-v-2f4c32a7] .n-tag__close:active {
209
+ .n-tag[data-v-7078e2ed] .n-tag__close:active {
210
210
  transform: scale(0.95) !important;
211
211
  transition-duration: 0.1s !important;
212
212
  }
213
213
 
214
214
  /* --------- C_Icon --------- */
215
- [data-v-2f4c32a7] .c-icon {
215
+ [data-v-7078e2ed] .c-icon {
216
216
  margin-right: 4px;
217
217
  font-size: 12px;
218
218
  transition: color 0.22s ease;
@@ -222,36 +222,36 @@
222
222
 
223
223
  /* --------- 响应式 --------- */
224
224
  @media (max-width: 768px) {
225
- .tags-view-container[data-v-2f4c32a7] {
225
+ .tags-view-container[data-v-7078e2ed] {
226
226
  padding: 6px 12px 0;
227
227
  }
228
- .n-tag[data-v-2f4c32a7] {
228
+ .n-tag[data-v-7078e2ed] {
229
229
  height: 26px;
230
230
  padding: 0 10px;
231
231
  font-size: 11px;
232
232
  margin-right: 3px;
233
233
  border-radius: 13px;
234
234
  }
235
- .n-tag[data-v-2f4c32a7] .n-tag__close {
235
+ .n-tag[data-v-7078e2ed] .n-tag__close {
236
236
  width: 14px;
237
237
  height: 14px;
238
238
  font-size: 11px;
239
239
  margin-left: 4px;
240
240
  }
241
- .tags-container[data-v-2f4c32a7] {
241
+ .tags-container[data-v-7078e2ed] {
242
242
  padding: 0 12px;
243
243
  min-height: 36px;
244
244
  }
245
- [data-v-2f4c32a7] .c-icon {
245
+ [data-v-7078e2ed] .c-icon {
246
246
  font-size: 11px;
247
247
  margin-right: 3px;
248
248
  }
249
249
  }
250
250
  /* --------- 暗色主题 --------- */
251
- [data-theme=dark] .n-tag[data-v-2f4c32a7] .n-tag__close {
251
+ [data-theme=dark] .n-tag[data-v-7078e2ed] .n-tag__close {
252
252
  background: rgba(255, 255, 255, 0.03) !important;
253
253
  }
254
- [data-theme=dark] .n-tag[data-v-2f4c32a7] .n-tag__close:hover {
254
+ [data-theme=dark] .n-tag[data-v-7078e2ed] .n-tag__close:hover {
255
255
  background: linear-gradient(135deg, rgba(248, 113, 113, 0.12), rgba(239, 68, 68, 0.1)) !important;
256
256
  box-shadow: 0 2px 6px rgba(239, 68, 68, 0.25) !important;
257
257
  }
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`),i=require(`vue-router`);function a(e={}){let{persistKey:t=`__tags_view_list__`,homePath:r=`/home`}=e,i=()=>{if(!t)return[];try{let e=localStorage.getItem(t);return e?JSON.parse(e):[]}catch{return[]}},a=e=>{if(t)try{localStorage.setItem(t,JSON.stringify(e))}catch{}},o=(0,n.ref)(i()),s=(0,n.ref)(``),c=()=>a(o.value),l=e=>{e?o.value=e:o.value=[...new Map(o.value.map(e=>[e.path,e])).values()],c()},u=e=>{s.value=e};return{tagsViewList:o,activeTag:s,homePath:r,initTags:l,setActiveTag:u,addTag:e=>{let t=o.value.findIndex(t=>t.path===e.path);if(t===-1)o.value.push(e);else{let n=o.value[t];(n.title!==e.title||!n.originalTitle)&&(n.title=e.title,n.originalTitle=e.originalTitle||n.originalTitle)}u(e.path),c()},removeTag:e=>{if(e>=0&&e<o.value.length){let t=o.value.splice(e,1)[0]?.path??null;return c(),t}return null},removeOtherTags:e=>{e===0?o.value=[o.value[0]].filter(Boolean):o.value=[o.value[0],o.value[e]].filter(Boolean),c()},removeLeftTags:e=>{o.value=[o.value[0],...o.value.slice(e)],c()},removeRightTags:e=>{o.value=o.value.slice(0,e+1),c()},removeAllTags:()=>{o.value=o.value.filter(e=>e.meta?.affix),c()}}}const o={class:`tags-view-container`},s=(0,n.defineComponent)({name:`C_TagsView`,__name:`index`,props:{labelFormatter:{},homePath:{default:`/home`},homeTitle:{default:`首页`},homeIcon:{default:`mdi:home`},persistKey:{default:`__tags_view_list__`},contextMenuLabels:{default:()=>({close:`关闭`,closeOthers:`关闭其他`,closeLeft:`关闭左侧`,closeRight:`关闭右侧`,closeAll:`关闭所有`})},tagsViewOptions:{}},emits:[`close`,`closeAll`],setup(t,{expose:s,emit:c}){let l=t,u=c,d=(0,i.useRoute)(),f=(0,i.useRouter)(),p=a(l.tagsViewOptions??{persistKey:l.persistKey,homePath:l.homePath});if(p.tagsViewList.value.length>0&&l.labelFormatter){let e=f.getRoutes(),t=p.tagsViewList.value.map(t=>{let n=e.find(e=>e.path===t.path),r=t.originalTitle||n?.meta?.title||t.title;return{...t,originalTitle:r,title:l.labelFormatter(r)}});p.initTags(t)}let m=e=>l.labelFormatter?l.labelFormatter(e):e,h=(0,n.ref)(!1),g=(0,n.ref)(0),_=(0,n.ref)(0),v=(0,n.ref)(null),y=(0,n.ref)(-1),b=(0,n.ref)(),x=(0,n.ref)(),S=e=>e.path===d.path,C=e=>e.meta?.affix,w=e=>{let t=x.value;t&&(e.preventDefault(),t.scrollTo({left:t.scrollLeft+e.deltaY,behavior:`smooth`}))},T=e=>{(0,n.nextTick)(()=>{let t=x.value?.querySelector(`[data-path="${e}"]`);t&&t.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`center`})})},E=e=>{e.path!==d.path&&f.push(e.path),T(e.path)},D=(e,t)=>{if(C(e))return;let n=S(e),r=p.tagsViewList.value.length;if(p.removeTag(t),n){let e=p.tagsViewList.value,n=t===r-1,i;i=n?e[t-1]?.path||l.homePath:e[e.length-1]?.path||l.homePath,f.push(i),u(`close`,i)}},O=(e,t,n)=>{e.preventDefault(),v.value=t,y.value=n,h.value=!0,g.value=e.clientX,_.value=e.clientY},k=()=>h.value=!1,A=(0,n.computed)(()=>{let e=l.contextMenuLabels;return[{type:`option`,label:e.close??`关闭`,key:`close`,disabled:C(v.value),icon:()=>(0,n.h)(`span`,{class:`i-mdi:close`})},{type:`option`,label:e.closeOthers??`关闭其他`,key:`closeOthers`,icon:()=>(0,n.h)(`span`,{class:`i-mdi:arrow-left-right-bold`})},{type:`option`,label:e.closeLeft??`关闭左侧`,key:`closeLeft`,icon:()=>(0,n.h)(`span`,{class:`i-mdi:align-horizontal-left`})},{type:`option`,label:e.closeRight??`关闭右侧`,key:`closeRight`,icon:()=>(0,n.h)(`span`,{class:`i-mdi:align-horizontal-right`})},{type:`option`,label:e.closeAll??`关闭所有`,key:`closeAll`,icon:()=>(0,n.h)(`span`,{class:`i-mdi:tally-mark-5`})}]}),j=e=>{if(!(!v.value||y.value===-1)){switch(e){case`close`:D(v.value,y.value);break;case`closeOthers`:p.removeOtherTags(y.value);break;case`closeLeft`:p.removeLeftTags(y.value);break;case`closeRight`:p.removeRightTags(y.value);break;case`closeAll`:p.removeAllTags(),f.push(l.homePath),u(`closeAll`);break}k()}};return(0,n.watch)(()=>d.path,e=>{let t=e===l.homePath?l.homeTitle:d.meta.title||`Unnamed Page`;p.addTag({path:e,originalTitle:t,title:m(t),icon:e===l.homePath?l.homeIcon:d.meta.icon,meta:{affix:d.meta.affix}}),p.setActiveTag(e),T(e)},{immediate:!0}),s({tags:p,scrollToTag:T}),(t,i)=>{let a=r.NTag,s=r.NDropdown;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,o,[(0,n.createElementVNode)(`div`,{class:`tags-track`,ref_key:`tagsTrack`,ref:b,onWheel:w},[(0,n.createElementVNode)(`div`,{class:`tags-container`,ref_key:`tagsContainer`,ref:x},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)((0,n.unref)(p).tagsViewList.value,(t,r)=>((0,n.openBlock)(),(0,n.createBlock)(a,{key:t.path,type:S(t)?`primary`:`default`,closable:!C(t),"data-path":t.path,onClose:(0,n.withModifiers)(e=>D(t,r),[`stop`]),onClick:e=>E(t),onContextmenu:(0,n.withModifiers)(e=>O(e,t,r),[`prevent`])},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(e.t),{name:t.icon,size:12},null,8,[`name`])]),default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` `+(0,n.toDisplayString)(t.title),1)]),_:2},1032,[`type`,`closable`,`data-path`,`onClose`,`onClick`,`onContextmenu`]))),128))],512)],544),h.value?((0,n.openBlock)(),(0,n.createBlock)(s,{key:0,show:h.value,options:A.value,x:g.value,y:_.value,onClickoutside:k,onSelect:j},null,8,[`show`,`options`,`x`,`y`])):(0,n.createCommentVNode)(`v-if`,!0)])}}});var c=t.t(s,[[`__scopeId`,`data-v-2f4c32a7`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return c}});
1
+ require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`),i=require(`vue-router`);function a(e={}){let{persistKey:t=`__tags_view_list__`,homePath:r=`/home`}=e,i=()=>{if(!t)return[];try{let e=localStorage.getItem(t);return e?JSON.parse(e):[]}catch{return[]}},a=e=>{if(t)try{localStorage.setItem(t,JSON.stringify(e))}catch{}},o=(0,n.ref)(i()),s=(0,n.ref)(``),c=()=>a(o.value),l=e=>{e?o.value=e:o.value=[...new Map(o.value.map(e=>[e.path,e])).values()],c()},u=e=>{s.value=e};return{tagsViewList:o,activeTag:s,homePath:r,initTags:l,setActiveTag:u,addTag:e=>{let t=o.value.findIndex(t=>t.path===e.path);if(t===-1)o.value.push(e);else{let n=o.value[t];(n.title!==e.title||!n.originalTitle)&&(n.title=e.title,n.originalTitle=e.originalTitle||n.originalTitle)}u(e.path),c()},removeTag:e=>{if(e>=0&&e<o.value.length){let t=o.value.splice(e,1)[0]?.path??null;return c(),t}return null},removeOtherTags:e=>{e===0?o.value=[o.value[0]].filter(Boolean):o.value=[o.value[0],o.value[e]].filter(Boolean),c()},removeLeftTags:e=>{o.value=[o.value[0],...o.value.slice(e)],c()},removeRightTags:e=>{o.value=o.value.slice(0,e+1),c()},removeAllTags:()=>{o.value=o.value.filter(e=>e.meta?.affix),c()}}}const o={class:`tags-view-container`},s=(0,n.defineComponent)({name:`C_TagsView`,__name:`index`,props:{labelFormatter:{},homePath:{default:`/home`},homeTitle:{default:`首页`},homeIcon:{default:`mdi:home`},persistKey:{default:`__tags_view_list__`},contextMenuLabels:{default:()=>({close:`关闭`,closeOthers:`关闭其他`,closeLeft:`关闭左侧`,closeRight:`关闭右侧`,closeAll:`关闭所有`})},tagsViewOptions:{}},emits:[`close`,`closeAll`],setup(t,{expose:s,emit:c}){let l=t,u=c,d=(0,i.useRoute)(),f=(0,i.useRouter)(),p=a(l.tagsViewOptions??{persistKey:l.persistKey,homePath:l.homePath});if(p.tagsViewList.value.length>0&&l.labelFormatter){let e=f.getRoutes(),t=p.tagsViewList.value.map(t=>{let n=e.find(e=>e.path===t.path),r=t.originalTitle||n?.meta?.title||t.title;return{...t,originalTitle:r,title:l.labelFormatter(r)}});p.initTags(t)}let m=e=>l.labelFormatter?l.labelFormatter(e):e,h=(0,n.ref)(!1),g=(0,n.ref)(0),_=(0,n.ref)(0),v=(0,n.ref)(null),y=(0,n.ref)(-1),b=(0,n.ref)(),x=(0,n.ref)(),S=e=>e.path===d.path,C=e=>e.meta?.affix,w=e=>{let t=x.value;t&&(e.preventDefault(),t.scrollTo({left:t.scrollLeft+e.deltaY,behavior:`smooth`}))},T=e=>{(0,n.nextTick)(()=>{let t=x.value?.querySelector(`[data-path="${e}"]`);t&&t.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`center`})})},E=e=>{e.path!==d.path&&f.push(e.path).catch(()=>void 0),T(e.path)},D=(e,t)=>{if(C(e))return;let n=S(e),r=p.tagsViewList.value.length;if(p.removeTag(t),n){let e=p.tagsViewList.value,n=t===r-1,i;i=n?e[t-1]?.path||l.homePath:e[e.length-1]?.path||l.homePath,f.push(i).catch(()=>void 0),u(`close`,i)}},O=(e,t,n)=>{e.preventDefault(),v.value=t,y.value=n,h.value=!0,g.value=e.clientX,_.value=e.clientY},k=()=>h.value=!1,A=(0,n.computed)(()=>{let e=l.contextMenuLabels;return[{type:`option`,label:e.close??`关闭`,key:`close`,disabled:C(v.value),icon:()=>(0,n.h)(`span`,{class:`i-mdi:close`})},{type:`option`,label:e.closeOthers??`关闭其他`,key:`closeOthers`,icon:()=>(0,n.h)(`span`,{class:`i-mdi:arrow-left-right-bold`})},{type:`option`,label:e.closeLeft??`关闭左侧`,key:`closeLeft`,icon:()=>(0,n.h)(`span`,{class:`i-mdi:align-horizontal-left`})},{type:`option`,label:e.closeRight??`关闭右侧`,key:`closeRight`,icon:()=>(0,n.h)(`span`,{class:`i-mdi:align-horizontal-right`})},{type:`option`,label:e.closeAll??`关闭所有`,key:`closeAll`,icon:()=>(0,n.h)(`span`,{class:`i-mdi:tally-mark-5`})}]}),j=e=>{if(!(!v.value||y.value===-1)){switch(e){case`close`:D(v.value,y.value);break;case`closeOthers`:p.removeOtherTags(y.value);break;case`closeLeft`:p.removeLeftTags(y.value);break;case`closeRight`:p.removeRightTags(y.value);break;case`closeAll`:p.removeAllTags(),f.push(l.homePath).catch(()=>void 0),u(`closeAll`);break}k()}};return(0,n.watch)(()=>d.path,e=>{let t=e===l.homePath?l.homeTitle:d.meta.title||`Unnamed Page`;p.addTag({path:e,originalTitle:t,title:m(t),icon:e===l.homePath?l.homeIcon:d.meta.icon,meta:{affix:d.meta.affix}}),p.setActiveTag(e),T(e)},{immediate:!0}),s({tags:p,scrollToTag:T}),(t,i)=>{let a=r.NTag,s=r.NDropdown;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,o,[(0,n.createElementVNode)(`div`,{class:`tags-track`,ref_key:`tagsTrack`,ref:b,onWheel:w},[(0,n.createElementVNode)(`div`,{class:`tags-container`,ref_key:`tagsContainer`,ref:x},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)((0,n.unref)(p).tagsViewList.value,(t,r)=>((0,n.openBlock)(),(0,n.createBlock)(a,{key:t.path,type:S(t)?`primary`:`default`,closable:!C(t),"data-path":t.path,onClose:(0,n.withModifiers)(e=>D(t,r),[`stop`]),onClick:e=>E(t),onContextmenu:(0,n.withModifiers)(e=>O(e,t,r),[`prevent`])},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(e.t),{name:t.icon,size:12},null,8,[`name`])]),default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` `+(0,n.toDisplayString)(t.title),1)]),_:2},1032,[`type`,`closable`,`data-path`,`onClose`,`onClick`,`onContextmenu`]))),128))],512)],544),h.value?((0,n.openBlock)(),(0,n.createBlock)(s,{key:0,show:h.value,options:A.value,x:g.value,y:_.value,onClickoutside:k,onSelect:j},null,8,[`show`,`options`,`x`,`y`])):(0,n.createCommentVNode)(`v-if`,!0)])}}});var c=t.t(s,[[`__scopeId`,`data-v-7078e2ed`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return c}});
@@ -1 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,h as d,nextTick as f,openBlock as p,ref as m,renderList as h,resolveComponent as g,toDisplayString as _,unref as v,watch as y,withCtx as b,withModifiers as x}from"vue";import{NDropdown as S,NTag as C}from"naive-ui";import{useRoute as w,useRouter as T}from"vue-router";function E(e={}){let{persistKey:t=`__tags_view_list__`,homePath:n=`/home`}=e,r=()=>{if(!t)return[];try{let e=localStorage.getItem(t);return e?JSON.parse(e):[]}catch{return[]}},i=e=>{if(t)try{localStorage.setItem(t,JSON.stringify(e))}catch{}},a=m(r()),o=m(``),s=()=>i(a.value),c=e=>{e?a.value=e:a.value=[...new Map(a.value.map(e=>[e.path,e])).values()],s()},l=e=>{o.value=e};return{tagsViewList:a,activeTag:o,homePath:n,initTags:c,setActiveTag:l,addTag:e=>{let t=a.value.findIndex(t=>t.path===e.path);if(t===-1)a.value.push(e);else{let n=a.value[t];(n.title!==e.title||!n.originalTitle)&&(n.title=e.title,n.originalTitle=e.originalTitle||n.originalTitle)}l(e.path),s()},removeTag:e=>{if(e>=0&&e<a.value.length){let t=a.value.splice(e,1)[0]?.path??null;return s(),t}return null},removeOtherTags:e=>{e===0?a.value=[a.value[0]].filter(Boolean):a.value=[a.value[0],a.value[e]].filter(Boolean),s()},removeLeftTags:e=>{a.value=[a.value[0],...a.value.slice(e)],s()},removeRightTags:e=>{a.value=a.value.slice(0,e+1),s()},removeAllTags:()=>{a.value=a.value.filter(e=>e.meta?.affix),s()}}}const D={class:`tags-view-container`};var O=t(u({name:`C_TagsView`,__name:`index`,props:{labelFormatter:{},homePath:{default:`/home`},homeTitle:{default:`首页`},homeIcon:{default:`mdi:home`},persistKey:{default:`__tags_view_list__`},contextMenuLabels:{default:()=>({close:`关闭`,closeOthers:`关闭其他`,closeLeft:`关闭左侧`,closeRight:`关闭右侧`,closeAll:`关闭所有`})},tagsViewOptions:{}},emits:[`close`,`closeAll`],setup(t,{expose:u,emit:g}){let O=t,k=g,A=w(),j=T(),M=E(O.tagsViewOptions??{persistKey:O.persistKey,homePath:O.homePath});if(M.tagsViewList.value.length>0&&O.labelFormatter){let e=j.getRoutes(),t=M.tagsViewList.value.map(t=>{let n=e.find(e=>e.path===t.path),r=t.originalTitle||n?.meta?.title||t.title;return{...t,originalTitle:r,title:O.labelFormatter(r)}});M.initTags(t)}let N=e=>O.labelFormatter?O.labelFormatter(e):e,P=m(!1),F=m(0),I=m(0),L=m(null),R=m(-1),z=m(),B=m(),V=e=>e.path===A.path,H=e=>e.meta?.affix,U=e=>{let t=B.value;t&&(e.preventDefault(),t.scrollTo({left:t.scrollLeft+e.deltaY,behavior:`smooth`}))},W=e=>{f(()=>{let t=B.value?.querySelector(`[data-path="${e}"]`);t&&t.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`center`})})},G=e=>{e.path!==A.path&&j.push(e.path),W(e.path)},K=(e,t)=>{if(H(e))return;let n=V(e),r=M.tagsViewList.value.length;if(M.removeTag(t),n){let e=M.tagsViewList.value,n=t===r-1,i;i=n?e[t-1]?.path||O.homePath:e[e.length-1]?.path||O.homePath,j.push(i),k(`close`,i)}},q=(e,t,n)=>{e.preventDefault(),L.value=t,R.value=n,P.value=!0,F.value=e.clientX,I.value=e.clientY},J=()=>P.value=!1,Y=r(()=>{let e=O.contextMenuLabels;return[{type:`option`,label:e.close??`关闭`,key:`close`,disabled:H(L.value),icon:()=>d(`span`,{class:`i-mdi:close`})},{type:`option`,label:e.closeOthers??`关闭其他`,key:`closeOthers`,icon:()=>d(`span`,{class:`i-mdi:arrow-left-right-bold`})},{type:`option`,label:e.closeLeft??`关闭左侧`,key:`closeLeft`,icon:()=>d(`span`,{class:`i-mdi:align-horizontal-left`})},{type:`option`,label:e.closeRight??`关闭右侧`,key:`closeRight`,icon:()=>d(`span`,{class:`i-mdi:align-horizontal-right`})},{type:`option`,label:e.closeAll??`关闭所有`,key:`closeAll`,icon:()=>d(`span`,{class:`i-mdi:tally-mark-5`})}]}),X=e=>{if(!(!L.value||R.value===-1)){switch(e){case`close`:K(L.value,R.value);break;case`closeOthers`:M.removeOtherTags(R.value);break;case`closeLeft`:M.removeLeftTags(R.value);break;case`closeRight`:M.removeRightTags(R.value);break;case`closeAll`:M.removeAllTags(),j.push(O.homePath),k(`closeAll`);break}J()}};return y(()=>A.path,e=>{let t=e===O.homePath?O.homeTitle:A.meta.title||`Unnamed Page`;M.addTag({path:e,originalTitle:t,title:N(t),icon:e===O.homePath?O.homeIcon:A.meta.icon,meta:{affix:A.meta.affix}}),M.setActiveTag(e),W(e)},{immediate:!0}),u({tags:M,scrollToTag:W}),(t,r)=>{let u=C,d=S;return p(),o(`div`,D,[s(`div`,{class:`tags-track`,ref_key:`tagsTrack`,ref:z,onWheel:U},[s(`div`,{class:`tags-container`,ref_key:`tagsContainer`,ref:B},[(p(!0),o(n,null,h(v(M).tagsViewList.value,(t,n)=>(p(),i(u,{key:t.path,type:V(t)?`primary`:`default`,closable:!H(t),"data-path":t.path,onClose:x(e=>K(t,n),[`stop`]),onClick:e=>G(t),onContextmenu:x(e=>q(e,t,n),[`prevent`])},{icon:b(()=>[l(v(e),{name:t.icon,size:12},null,8,[`name`])]),default:b(()=>[c(` `+_(t.title),1)]),_:2},1032,[`type`,`closable`,`data-path`,`onClose`,`onClick`,`onContextmenu`]))),128))],512)],544),P.value?(p(),i(d,{key:0,show:P.value,options:Y.value,x:F.value,y:I.value,onClickoutside:J,onSelect:X},null,8,[`show`,`options`,`x`,`y`])):a(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-2f4c32a7`]]);export{E as n,O as t};
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,h as d,nextTick as f,openBlock as p,ref as m,renderList as h,resolveComponent as g,toDisplayString as _,unref as v,watch as y,withCtx as b,withModifiers as x}from"vue";import{NDropdown as S,NTag as C}from"naive-ui";import{useRoute as w,useRouter as T}from"vue-router";function E(e={}){let{persistKey:t=`__tags_view_list__`,homePath:n=`/home`}=e,r=()=>{if(!t)return[];try{let e=localStorage.getItem(t);return e?JSON.parse(e):[]}catch{return[]}},i=e=>{if(t)try{localStorage.setItem(t,JSON.stringify(e))}catch{}},a=m(r()),o=m(``),s=()=>i(a.value),c=e=>{e?a.value=e:a.value=[...new Map(a.value.map(e=>[e.path,e])).values()],s()},l=e=>{o.value=e};return{tagsViewList:a,activeTag:o,homePath:n,initTags:c,setActiveTag:l,addTag:e=>{let t=a.value.findIndex(t=>t.path===e.path);if(t===-1)a.value.push(e);else{let n=a.value[t];(n.title!==e.title||!n.originalTitle)&&(n.title=e.title,n.originalTitle=e.originalTitle||n.originalTitle)}l(e.path),s()},removeTag:e=>{if(e>=0&&e<a.value.length){let t=a.value.splice(e,1)[0]?.path??null;return s(),t}return null},removeOtherTags:e=>{e===0?a.value=[a.value[0]].filter(Boolean):a.value=[a.value[0],a.value[e]].filter(Boolean),s()},removeLeftTags:e=>{a.value=[a.value[0],...a.value.slice(e)],s()},removeRightTags:e=>{a.value=a.value.slice(0,e+1),s()},removeAllTags:()=>{a.value=a.value.filter(e=>e.meta?.affix),s()}}}const D={class:`tags-view-container`};var O=t(u({name:`C_TagsView`,__name:`index`,props:{labelFormatter:{},homePath:{default:`/home`},homeTitle:{default:`首页`},homeIcon:{default:`mdi:home`},persistKey:{default:`__tags_view_list__`},contextMenuLabels:{default:()=>({close:`关闭`,closeOthers:`关闭其他`,closeLeft:`关闭左侧`,closeRight:`关闭右侧`,closeAll:`关闭所有`})},tagsViewOptions:{}},emits:[`close`,`closeAll`],setup(t,{expose:u,emit:g}){let O=t,k=g,A=w(),j=T(),M=E(O.tagsViewOptions??{persistKey:O.persistKey,homePath:O.homePath});if(M.tagsViewList.value.length>0&&O.labelFormatter){let e=j.getRoutes(),t=M.tagsViewList.value.map(t=>{let n=e.find(e=>e.path===t.path),r=t.originalTitle||n?.meta?.title||t.title;return{...t,originalTitle:r,title:O.labelFormatter(r)}});M.initTags(t)}let N=e=>O.labelFormatter?O.labelFormatter(e):e,P=m(!1),F=m(0),I=m(0),L=m(null),R=m(-1),z=m(),B=m(),V=e=>e.path===A.path,H=e=>e.meta?.affix,U=e=>{let t=B.value;t&&(e.preventDefault(),t.scrollTo({left:t.scrollLeft+e.deltaY,behavior:`smooth`}))},W=e=>{f(()=>{let t=B.value?.querySelector(`[data-path="${e}"]`);t&&t.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`center`})})},G=e=>{e.path!==A.path&&j.push(e.path).catch(()=>void 0),W(e.path)},K=(e,t)=>{if(H(e))return;let n=V(e),r=M.tagsViewList.value.length;if(M.removeTag(t),n){let e=M.tagsViewList.value,n=t===r-1,i;i=n?e[t-1]?.path||O.homePath:e[e.length-1]?.path||O.homePath,j.push(i).catch(()=>void 0),k(`close`,i)}},q=(e,t,n)=>{e.preventDefault(),L.value=t,R.value=n,P.value=!0,F.value=e.clientX,I.value=e.clientY},J=()=>P.value=!1,Y=r(()=>{let e=O.contextMenuLabels;return[{type:`option`,label:e.close??`关闭`,key:`close`,disabled:H(L.value),icon:()=>d(`span`,{class:`i-mdi:close`})},{type:`option`,label:e.closeOthers??`关闭其他`,key:`closeOthers`,icon:()=>d(`span`,{class:`i-mdi:arrow-left-right-bold`})},{type:`option`,label:e.closeLeft??`关闭左侧`,key:`closeLeft`,icon:()=>d(`span`,{class:`i-mdi:align-horizontal-left`})},{type:`option`,label:e.closeRight??`关闭右侧`,key:`closeRight`,icon:()=>d(`span`,{class:`i-mdi:align-horizontal-right`})},{type:`option`,label:e.closeAll??`关闭所有`,key:`closeAll`,icon:()=>d(`span`,{class:`i-mdi:tally-mark-5`})}]}),X=e=>{if(!(!L.value||R.value===-1)){switch(e){case`close`:K(L.value,R.value);break;case`closeOthers`:M.removeOtherTags(R.value);break;case`closeLeft`:M.removeLeftTags(R.value);break;case`closeRight`:M.removeRightTags(R.value);break;case`closeAll`:M.removeAllTags(),j.push(O.homePath).catch(()=>void 0),k(`closeAll`);break}J()}};return y(()=>A.path,e=>{let t=e===O.homePath?O.homeTitle:A.meta.title||`Unnamed Page`;M.addTag({path:e,originalTitle:t,title:N(t),icon:e===O.homePath?O.homeIcon:A.meta.icon,meta:{affix:A.meta.affix}}),M.setActiveTag(e),W(e)},{immediate:!0}),u({tags:M,scrollToTag:W}),(t,r)=>{let u=C,d=S;return p(),o(`div`,D,[s(`div`,{class:`tags-track`,ref_key:`tagsTrack`,ref:z,onWheel:U},[s(`div`,{class:`tags-container`,ref_key:`tagsContainer`,ref:B},[(p(!0),o(n,null,h(v(M).tagsViewList.value,(t,n)=>(p(),i(u,{key:t.path,type:V(t)?`primary`:`default`,closable:!H(t),"data-path":t.path,onClose:x(e=>K(t,n),[`stop`]),onClick:e=>G(t),onContextmenu:x(e=>q(e,t,n),[`prevent`])},{icon:b(()=>[l(v(e),{name:t.icon,size:12},null,8,[`name`])]),default:b(()=>[c(` `+_(t.title),1)]),_:2},1032,[`type`,`closable`,`data-path`,`onClose`,`onClick`,`onContextmenu`]))),128))],512)],544),P.value?(p(),i(d,{key:0,show:P.value,options:Y.value,x:F.value,y:I.value,onClickoutside:J,onSelect:X},null,8,[`show`,`options`,`x`,`y`])):a(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-7078e2ed`]]);export{E as n,O as t};
@@ -110,12 +110,12 @@ declare const __VLS_export: vue.DefineComponent<CronProps, {
110
110
  reset: typeof handleReset;
111
111
  validate: () => CronValidation;
112
112
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
113
- "update:modelValue": (value: string) => any;
114
113
  change: (value: string) => any;
114
+ "update:modelValue": (value: string) => any;
115
115
  "validation-change": (result: CronValidation) => any;
116
116
  }, string, vue.PublicProps, Readonly<CronProps> & Readonly<{
117
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
118
117
  onChange?: ((value: string) => any) | undefined;
118
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
119
119
  "onValidation-change"?: ((result: CronValidation) => any) | undefined;
120
120
  }>, {
121
121
  height: string | number;
@@ -110,12 +110,12 @@ declare const __VLS_export: vue.DefineComponent<CronProps, {
110
110
  reset: typeof handleReset;
111
111
  validate: () => CronValidation;
112
112
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
113
- "update:modelValue": (value: string) => any;
114
113
  change: (value: string) => any;
114
+ "update:modelValue": (value: string) => any;
115
115
  "validation-change": (result: CronValidation) => any;
116
116
  }, string, vue.PublicProps, Readonly<CronProps> & Readonly<{
117
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
118
117
  onChange?: ((value: string) => any) | undefined;
118
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
119
119
  "onValidation-change"?: ((result: CronValidation) => any) | undefined;
120
120
  }>, {
121
121
  height: string | number;
@@ -112,22 +112,22 @@ interface FormulaEditorExpose {
112
112
  //#endregion
113
113
  //#region src/components/C_FormulaEditor/index.vue.d.ts
114
114
  declare const __VLS_export: vue.DefineComponent<FormulaEditorProps, FormulaEditorExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
115
- "update:modelValue": (value: string) => any;
116
115
  change: (value: string) => any;
116
+ "update:modelValue": (value: string) => any;
117
117
  "validation-change": (result: FormulaValidation) => any;
118
118
  }, string, vue.PublicProps, Readonly<FormulaEditorProps> & Readonly<{
119
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
120
119
  onChange?: ((value: string) => any) | undefined;
120
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
121
121
  "onValidation-change"?: ((result: FormulaValidation) => any) | undefined;
122
122
  }>, {
123
123
  height: string | number;
124
124
  modelValue: string;
125
125
  placeholder: string;
126
126
  disabled: boolean;
127
+ showPreview: boolean;
127
128
  variables: FormulaVariable[];
128
129
  functions: FormulaFunction[];
129
130
  sampleData: Record<string, number | string | boolean>;
130
- showPreview: boolean;
131
131
  showKeyboard: boolean;
132
132
  showVariablePanel: boolean;
133
133
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -112,22 +112,22 @@ interface FormulaEditorExpose {
112
112
  //#endregion
113
113
  //#region src/components/C_FormulaEditor/index.vue.d.ts
114
114
  declare const __VLS_export: vue.DefineComponent<FormulaEditorProps, FormulaEditorExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
115
- "update:modelValue": (value: string) => any;
116
115
  change: (value: string) => any;
116
+ "update:modelValue": (value: string) => any;
117
117
  "validation-change": (result: FormulaValidation) => any;
118
118
  }, string, vue.PublicProps, Readonly<FormulaEditorProps> & Readonly<{
119
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
120
119
  onChange?: ((value: string) => any) | undefined;
120
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
121
121
  "onValidation-change"?: ((result: FormulaValidation) => any) | undefined;
122
122
  }>, {
123
123
  height: string | number;
124
124
  modelValue: string;
125
125
  placeholder: string;
126
126
  disabled: boolean;
127
+ showPreview: boolean;
127
128
  variables: FormulaVariable[];
128
129
  functions: FormulaFunction[];
129
130
  sampleData: Record<string, number | string | boolean>;
130
- showPreview: boolean;
131
131
  showKeyboard: boolean;
132
132
  showVariablePanel: boolean;
133
133
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -172,11 +172,11 @@ declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, Notific
172
172
  onNewMessage?: ((message: NotificationMessage) => any) | undefined;
173
173
  onNavigate?: ((url: string) => any) | undefined;
174
174
  }>, {
175
+ pageSize: number;
175
176
  storageKey: string;
176
177
  desktopNotification: boolean;
177
178
  maxBadgeCount: number;
178
179
  pollingInterval: number;
179
- pageSize: number;
180
180
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
181
181
  declare const _default: typeof __VLS_export;
182
182
  //#endregion
@@ -221,7 +221,7 @@ declare function useNotificationCore(props: NotificationCenterProps): {
221
221
  actionText?: string | undefined;
222
222
  extra?: Record<string, unknown> | undefined;
223
223
  }[]>;
224
- activeCategory: vue.Ref<"all" | NotificationCategory, "all" | NotificationCategory>;
224
+ activeCategory: vue.Ref<NotificationCategory | "all", NotificationCategory | "all">;
225
225
  loading: vue.Ref<boolean, boolean>;
226
226
  total: vue.Ref<number, number>;
227
227
  page: vue.Ref<number, number>;
@@ -172,11 +172,11 @@ declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, Notific
172
172
  onNewMessage?: ((message: NotificationMessage) => any) | undefined;
173
173
  onNavigate?: ((url: string) => any) | undefined;
174
174
  }>, {
175
+ pageSize: number;
175
176
  storageKey: string;
176
177
  desktopNotification: boolean;
177
178
  maxBadgeCount: number;
178
179
  pollingInterval: number;
179
- pageSize: number;
180
180
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
181
181
  declare const _default: typeof __VLS_export;
182
182
  //#endregion
@@ -221,7 +221,7 @@ declare function useNotificationCore(props: NotificationCenterProps): {
221
221
  actionText?: string | undefined;
222
222
  extra?: Record<string, unknown> | undefined;
223
223
  }[]>;
224
- activeCategory: vue.Ref<"all" | NotificationCategory, "all" | NotificationCategory>;
224
+ activeCategory: vue.Ref<NotificationCategory | "all", NotificationCategory | "all">;
225
225
  loading: vue.Ref<boolean, boolean>;
226
226
  total: vue.Ref<number, number>;
227
227
  page: vue.Ref<number, number>;
@@ -213,14 +213,14 @@ declare const __VLS_base: vue.DefineComponent<UploadProps, UploadExpose, {}, {},
213
213
  onExceed?: ((files: File[], fileList: UploadFileItem[]) => any) | undefined;
214
214
  }>, {
215
215
  disabled: boolean;
216
+ data: Record<string, unknown>;
216
217
  multiple: boolean;
217
218
  draggable: boolean;
218
219
  action: string;
220
+ maxSize: number;
219
221
  headers: Record<string, string>;
220
- data: Record<string, unknown>;
221
222
  directory: boolean;
222
223
  accept: string;
223
- maxSize: number;
224
224
  maxCount: number;
225
225
  pasteable: boolean;
226
226
  chunked: boolean;
@@ -213,14 +213,14 @@ declare const __VLS_base: vue.DefineComponent<UploadProps, UploadExpose, {}, {},
213
213
  onExceed?: ((files: File[], fileList: UploadFileItem[]) => any) | undefined;
214
214
  }>, {
215
215
  disabled: boolean;
216
+ data: Record<string, unknown>;
216
217
  multiple: boolean;
217
218
  draggable: boolean;
218
219
  action: string;
220
+ maxSize: number;
219
221
  headers: Record<string, string>;
220
- data: Record<string, unknown>;
221
222
  directory: boolean;
222
223
  accept: string;
223
- maxSize: number;
224
224
  maxCount: number;
225
225
  pasteable: boolean;
226
226
  chunked: boolean;
@@ -259,10 +259,10 @@ type PlayerInstance = InstanceType<typeof xgplayer.default>;
259
259
  //#region src/components/C_VideoPlayer/index.vue.d.ts
260
260
  declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
261
261
  error: (error: Error) => any;
262
+ ended: () => any;
262
263
  ready: () => any;
263
264
  stateChange: (state: PlayerState) => any;
264
265
  timeUpdate: (currentTime: number, duration: number) => any;
265
- ended: () => any;
266
266
  qualityChange: (quality: QualityLevel) => any;
267
267
  rateChange: (rate: number) => any;
268
268
  fullscreenChange: (isFullscreen: boolean) => any;
@@ -272,10 +272,10 @@ declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExp
272
272
  progressUpdate: (data: ProgressData) => any;
273
273
  }, string, vue.PublicProps, Readonly<VideoPlayerProps> & Readonly<{
274
274
  onError?: ((error: Error) => any) | undefined;
275
+ onEnded?: (() => any) | undefined;
275
276
  onReady?: (() => any) | undefined;
276
277
  onStateChange?: ((state: PlayerState) => any) | undefined;
277
278
  onTimeUpdate?: ((currentTime: number, duration: number) => any) | undefined;
278
- onEnded?: (() => any) | undefined;
279
279
  onQualityChange?: ((quality: QualityLevel) => any) | undefined;
280
280
  onRateChange?: ((rate: number) => any) | undefined;
281
281
  onFullscreenChange?: ((isFullscreen: boolean) => any) | undefined;
@@ -259,10 +259,10 @@ type PlayerInstance = InstanceType<typeof xgplayer.default>;
259
259
  //#region src/components/C_VideoPlayer/index.vue.d.ts
260
260
  declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
261
261
  error: (error: Error) => any;
262
+ ended: () => any;
262
263
  ready: () => any;
263
264
  stateChange: (state: PlayerState) => any;
264
265
  timeUpdate: (currentTime: number, duration: number) => any;
265
- ended: () => any;
266
266
  qualityChange: (quality: QualityLevel) => any;
267
267
  rateChange: (rate: number) => any;
268
268
  fullscreenChange: (isFullscreen: boolean) => any;
@@ -272,10 +272,10 @@ declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExp
272
272
  progressUpdate: (data: ProgressData) => any;
273
273
  }, string, vue.PublicProps, Readonly<VideoPlayerProps> & Readonly<{
274
274
  onError?: ((error: Error) => any) | undefined;
275
+ onEnded?: (() => any) | undefined;
275
276
  onReady?: (() => any) | undefined;
276
277
  onStateChange?: ((state: PlayerState) => any) | undefined;
277
278
  onTimeUpdate?: ((currentTime: number, duration: number) => any) | undefined;
278
- onEnded?: (() => any) | undefined;
279
279
  onQualityChange?: ((quality: QualityLevel) => any) | undefined;
280
280
  onRateChange?: ((rate: number) => any) | undefined;
281
281
  onFullscreenChange?: ((isFullscreen: boolean) => any) | undefined;
@@ -0,0 +1,108 @@
1
+ import * as vue from "vue";
2
+ import { CSSProperties, VNodeChild } from "vue";
3
+
4
+ //#region src/components/C_Tabs/types.d.ts
5
+ type TabsValue = string | number;
6
+ type TabsType = 'line' | 'card' | 'bar' | 'segment';
7
+ type TabsSize = 'small' | 'medium' | 'large';
8
+ type TabsPlacement = 'top' | 'right' | 'bottom' | 'left';
9
+ type TabsJustifyContent = 'start' | 'end' | 'center' | 'space-around' | 'space-between';
10
+ type TabsDisplayDirective = 'if' | 'show' | 'show:lazy';
11
+ type TabsBadgeType = 'default' | 'error' | 'info' | 'success' | 'warning';
12
+ interface TabsItem {
13
+ key: TabsValue;
14
+ label: string;
15
+ icon?: string;
16
+ badge?: string | number;
17
+ badgeType?: TabsBadgeType;
18
+ disabled?: boolean;
19
+ closable?: boolean;
20
+ /** 数据驱动的标签渲染;常规场景只传 label/icon/badge。 */
21
+ renderTab?: (item: TabsItem) => VNodeChild;
22
+ /** 数据驱动的内容渲染;复杂页面也可以改用 pane 或 pane-{key} 插槽。 */
23
+ render?: (item: TabsItem) => VNodeChild;
24
+ }
25
+ interface CTabsProps {
26
+ modelValue?: TabsValue | null;
27
+ defaultValue?: TabsValue | null;
28
+ items?: readonly TabsItem[];
29
+ type?: TabsType;
30
+ size?: TabsSize;
31
+ placement?: TabsPlacement;
32
+ justifyContent?: TabsJustifyContent;
33
+ animated?: boolean;
34
+ closable?: boolean;
35
+ addable?: boolean;
36
+ tabsOnly?: boolean;
37
+ displayDirective?: TabsDisplayDirective;
38
+ paneClass?: string;
39
+ paneStyle?: string | CSSProperties;
40
+ beforeChange?: (target: TabsValue, current: TabsValue | null) => boolean | Promise<boolean>;
41
+ }
42
+ interface CTabsEmits {
43
+ (event: 'update:modelValue', value: TabsValue): void;
44
+ (event: 'change', value: TabsValue, item: TabsItem | undefined): void;
45
+ (event: 'close', value: TabsValue): void;
46
+ (event: 'add'): void;
47
+ }
48
+ //#endregion
49
+ //#region src/components/C_Tabs/index.vue.d.ts
50
+ declare var __VLS_18: {
51
+ item: TabsItem;
52
+ active: boolean;
53
+ }, __VLS_36: string, __VLS_37: {
54
+ item: TabsItem;
55
+ active: boolean;
56
+ }, __VLS_44: {
57
+ item: TabsItem;
58
+ active: boolean;
59
+ };
60
+ type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_36>]?: (props: typeof __VLS_37) => any } & {
61
+ tab?: (props: typeof __VLS_18) => any;
62
+ } & {
63
+ pane?: (props: typeof __VLS_44) => any;
64
+ };
65
+ declare const __VLS_base: vue.DefineComponent<CTabsProps, {
66
+ activeValue: vue.WritableComputedRef<TabsValue | null, TabsValue | null>;
67
+ }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
68
+ add: () => any;
69
+ change: (value: TabsValue, item: TabsItem | undefined) => any;
70
+ "update:modelValue": (value: TabsValue) => any;
71
+ close: (value: TabsValue) => any;
72
+ }, string, vue.PublicProps, Readonly<CTabsProps> & Readonly<{
73
+ onAdd?: (() => any) | undefined;
74
+ onChange?: ((value: TabsValue, item: TabsItem | undefined) => any) | undefined;
75
+ "onUpdate:modelValue"?: ((value: TabsValue) => any) | undefined;
76
+ onClose?: ((value: TabsValue) => any) | undefined;
77
+ }>, {
78
+ type: TabsType;
79
+ size: TabsSize;
80
+ items: readonly TabsItem[];
81
+ modelValue: TabsValue | null;
82
+ animated: boolean;
83
+ placement: TabsPlacement;
84
+ displayDirective: TabsDisplayDirective;
85
+ defaultValue: TabsValue | null;
86
+ closable: boolean;
87
+ justifyContent: TabsJustifyContent;
88
+ addable: boolean;
89
+ tabsOnly: boolean;
90
+ paneClass: string;
91
+ paneStyle: string | vue.CSSProperties;
92
+ beforeChange: (target: TabsValue, current: TabsValue | null) => boolean | Promise<boolean>;
93
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
94
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
95
+ declare const _default: typeof __VLS_export;
96
+ type __VLS_WithSlots<T, S> = T & {
97
+ new (): {
98
+ $slots: S;
99
+ };
100
+ };
101
+ //#endregion
102
+ //#region src/components/C_Tabs/data.d.ts
103
+ /**
104
+ * 提供轻量的运行时校验并保持调用侧扁平;返回原数组,不复制、不注入隐藏字段。
105
+ */
106
+ declare function defineTabs<const T extends readonly TabsItem[]>(items: T): T;
107
+ //#endregion
108
+ export { TabsBadgeType as a, TabsJustifyContent as c, TabsType as d, TabsValue as f, CTabsProps as i, TabsPlacement as l, _default as n, TabsDisplayDirective as o, CTabsEmits as r, TabsItem as s, defineTabs as t, TabsSize as u };