@robot-admin/naive-ui-components 0.13.1 → 0.13.5

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 (234) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +4 -0
  3. package/README_EN.md +4 -0
  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_Login.css +162 -137
  85. package/dist/C_Login2.cjs +1 -1
  86. package/dist/C_Login2.js +1 -1
  87. package/dist/C_Map.css +25 -4
  88. package/dist/C_Map2.cjs +1 -1
  89. package/dist/C_Map2.js +1 -1
  90. package/dist/C_Markdown.css +47 -42
  91. package/dist/C_Markdown2.cjs +1 -1
  92. package/dist/C_Markdown2.js +1 -1
  93. package/dist/C_Menu.css +7 -1
  94. package/dist/C_Menu2.cjs +1 -1
  95. package/dist/C_Menu2.js +1 -1
  96. package/dist/C_NotificationCenter.css +134 -90
  97. package/dist/C_NotificationCenter2.cjs +1 -1
  98. package/dist/C_NotificationCenter2.js +1 -1
  99. package/dist/C_OrgChart.css +10 -0
  100. package/dist/C_OrgChart2.cjs +1 -1
  101. package/dist/C_OrgChart2.js +1 -1
  102. package/dist/C_QRCode.css +12 -8
  103. package/dist/C_QRCode2.cjs +1 -1
  104. package/dist/C_QRCode2.js +1 -1
  105. package/dist/C_Signature.css +18 -14
  106. package/dist/C_Signature2.cjs +1 -1
  107. package/dist/C_Signature2.js +1 -1
  108. package/dist/C_Skeleton.css +5 -0
  109. package/dist/C_Skeleton2.cjs +1 -1
  110. package/dist/C_Skeleton2.js +1 -1
  111. package/dist/C_SplitPane.css +61 -39
  112. package/dist/C_SplitPane2.cjs +1 -1
  113. package/dist/C_SplitPane2.js +1 -1
  114. package/dist/C_Steps.css +42 -38
  115. package/dist/C_Steps2.cjs +1 -1
  116. package/dist/C_Steps2.js +1 -1
  117. package/dist/C_Table.base.css +465 -352
  118. package/dist/C_Table.css +488 -367
  119. package/dist/C_TagsView.css +93 -55
  120. package/dist/C_TagsView2.cjs +1 -1
  121. package/dist/C_TagsView2.js +1 -1
  122. package/dist/C_Theme.css +24 -17
  123. package/dist/C_Timeline.css +47 -36
  124. package/dist/C_Transfer.css +86 -67
  125. package/dist/C_Transfer2.cjs +1 -1
  126. package/dist/C_Transfer2.js +1 -1
  127. package/dist/C_Tree.css +48 -33
  128. package/dist/C_Tree2.cjs +1 -1
  129. package/dist/C_Tree2.js +1 -1
  130. package/dist/C_Upload.css +104 -51
  131. package/dist/C_Upload2.cjs +1 -1
  132. package/dist/C_Upload2.js +1 -1
  133. package/dist/C_VideoPlayer.css +140 -69
  134. package/dist/C_VideoPlayer2.cjs +1 -1
  135. package/dist/C_VideoPlayer2.js +1 -1
  136. package/dist/C_VtableGantt.css +42 -19
  137. package/dist/C_VtableGantt2.cjs +1 -1
  138. package/dist/C_VtableGantt2.js +1 -1
  139. package/dist/C_WaterFall.css +32 -16
  140. package/dist/C_WaterFall2.cjs +1 -1
  141. package/dist/C_WaterFall2.js +1 -1
  142. package/dist/C_WorkFlow.css +332 -221
  143. package/dist/C_WorkFlow2.cjs +1 -1
  144. package/dist/C_WorkFlow2.js +1 -1
  145. package/dist/constants.d.cts +4 -4
  146. package/dist/constants.d.ts +4 -4
  147. package/dist/constants2.d.cts +3 -3
  148. package/dist/constants2.d.ts +3 -3
  149. package/dist/constants3.d.cts +2 -2
  150. package/dist/constants3.d.ts +2 -2
  151. package/dist/constants4.d.cts +5 -5
  152. package/dist/constants4.d.ts +5 -5
  153. package/dist/constants5.d.cts +4 -4
  154. package/dist/constants5.d.ts +4 -4
  155. package/dist/data.d.cts +9 -9
  156. package/dist/data.d.ts +9 -9
  157. package/dist/data2.cjs +1 -1
  158. package/dist/data2.js +1 -1
  159. package/dist/index.vue.d.cts +3 -3
  160. package/dist/index.vue.d.ts +3 -3
  161. package/dist/index10.vue.d.cts +3 -3
  162. package/dist/index10.vue.d.ts +3 -3
  163. package/dist/index11.vue.d.cts +3 -3
  164. package/dist/index11.vue.d.ts +1 -1
  165. package/dist/index12.vue.d.cts +1 -1
  166. package/dist/index12.vue.d.ts +2 -2
  167. package/dist/index13.vue.d.cts +2 -2
  168. package/dist/index13.vue.d.ts +2 -2
  169. package/dist/index14.vue.d.cts +2 -2
  170. package/dist/index14.vue.d.ts +14 -12
  171. package/dist/index15.vue.d.cts +14 -12
  172. package/dist/index15.vue.d.ts +2 -2
  173. package/dist/index16.vue.d.cts +2 -2
  174. package/dist/index16.vue.d.ts +11 -2
  175. package/dist/index17.vue.d.cts +11 -2
  176. package/dist/index17.vue.d.ts +5 -5
  177. package/dist/index18.vue.d.cts +5 -5
  178. package/dist/index2.vue.d.cts +1 -1
  179. package/dist/index2.vue.d.ts +1 -1
  180. package/dist/index20.vue.d.cts +1 -1
  181. package/dist/index20.vue.d.ts +1 -1
  182. package/dist/index21.vue.d.cts +2 -2
  183. package/dist/index21.vue.d.ts +2 -2
  184. package/dist/index24.vue.d.cts +4 -4
  185. package/dist/index24.vue.d.ts +4 -4
  186. package/dist/index26.vue.d.cts +1 -1
  187. package/dist/index26.vue.d.ts +1 -1
  188. package/dist/index27.vue.d.cts +3 -3
  189. package/dist/index27.vue.d.ts +3 -3
  190. package/dist/index3.vue.d.cts +4 -4
  191. package/dist/index3.vue.d.ts +4 -4
  192. package/dist/index5.vue.d.ts +2 -2
  193. package/dist/index6.vue.d.cts +2 -2
  194. package/dist/index6.vue.d.ts +2 -2
  195. package/dist/index7.vue.d.cts +2 -2
  196. package/dist/index7.vue.d.ts +2 -2
  197. package/dist/index8.vue.d.cts +2 -2
  198. package/dist/index8.vue.d.ts +3 -3
  199. package/dist/index9.vue.d.cts +3 -3
  200. package/dist/index9.vue.d.ts +3 -3
  201. package/dist/mapUtils.d.cts +4 -4
  202. package/dist/mapUtils.d.ts +4 -4
  203. package/dist/presets.d.cts +1 -1
  204. package/dist/presets.d.ts +1 -1
  205. package/dist/style.css +3083 -1982
  206. package/dist/useCollapsePanel.d.cts +7 -7
  207. package/dist/useCollapsePanel.d.ts +7 -7
  208. package/dist/useCropperCore.d.cts +10 -10
  209. package/dist/useCropperCore.d.ts +10 -10
  210. package/dist/useDraggableLayout.d.cts +5 -5
  211. package/dist/useDraggableLayout.d.ts +5 -5
  212. package/dist/useEdgeInteraction.d.cts +1 -1
  213. package/dist/useEdgeInteraction.d.ts +1 -1
  214. package/dist/useFullscreen.d.cts +2 -2
  215. package/dist/useFullscreen.d.ts +2 -2
  216. package/dist/useInfiniteScroll.d.cts +3 -3
  217. package/dist/useInfiniteScroll.d.ts +3 -3
  218. package/dist/useQRCode.d.cts +4 -4
  219. package/dist/useQRCode.d.ts +4 -4
  220. package/dist/useSearchState.d.cts +27 -27
  221. package/dist/useSearchState.d.ts +27 -27
  222. package/dist/useSignatureHistory.d.cts +3 -3
  223. package/dist/useSignatureHistory.d.ts +3 -3
  224. package/dist/useSplitResize.d.cts +6 -6
  225. package/dist/useSplitResize.d.ts +6 -6
  226. package/dist/useTableQuery.cjs +1 -1
  227. package/dist/useTableQuery.js +1 -1
  228. package/dist/useTimeSelection.d.cts +4 -4
  229. package/dist/useTimeSelection.d.ts +4 -4
  230. package/dist/useTreeOperations.d.cts +5 -5
  231. package/dist/useTreeOperations.d.ts +5 -5
  232. package/dist/useWorkflowValidation.d.cts +2 -2
  233. package/dist/useWorkflowValidation.d.ts +2 -2
  234. package/package.json +8 -1
package/dist/C_Cron2.cjs CHANGED
@@ -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`);const i=[{type:`second`,label:`秒`,min:0,max:59},{type:`minute`,label:`分`,min:0,max:59},{type:`hour`,label:`时`,min:0,max:23},{type:`day`,label:`日`,min:1,max:31},{type:`month`,label:`月`,min:1,max:12},{type:`week`,label:`周`,min:1,max:7,valueLabels:{1:`周日`,2:`周一`,3:`周二`,4:`周三`,5:`周四`,6:`周五`,7:`周六`}}],a={mode:`every`,rangeStart:0,rangeEnd:0,stepStart:0,stepInterval:1,specificValues:[]},o={second:{...a,rangeEnd:59},minute:{...a,rangeEnd:59},hour:{...a,rangeEnd:23},day:{...a,rangeStart:1,rangeEnd:31},month:{...a,rangeStart:1,rangeEnd:12},week:{...a,mode:`none`,rangeStart:1,rangeEnd:7}},s=`0 0 0 * * ?`,c=[{label:`每秒执行`,value:`* * * * * ?`,description:`每秒执行一次`,icon:`mdi:timer-sand`},{label:`每分钟执行`,value:`0 * * * * ?`,description:`每分钟第 0 秒执行`,icon:`mdi:clock-outline`},{label:`每小时执行`,value:`0 0 * * * ?`,description:`每小时整点执行`,icon:`mdi:clock-time-twelve-outline`},{label:`每天 0 点`,value:`0 0 0 * * ?`,description:`每天凌晨 00:00 执行`,icon:`mdi:weather-night`},{label:`每天 8:30`,value:`0 30 8 * * ?`,description:`每天早上 08:30 执行`,icon:`mdi:weather-sunny`},{label:`每天 12:00`,value:`0 0 12 * * ?`,description:`每天中午 12:00 执行`,icon:`mdi:food`},{label:`工作日 9:00`,value:`0 0 9 ? * 2-6`,description:`周一至周五 09:00 执行`,icon:`mdi:briefcase-outline`},{label:`每周一 0 点`,value:`0 0 0 ? * 2`,description:`每周一凌晨 00:00 执行`,icon:`mdi:calendar-week`},{label:`每月 1 号 0 点`,value:`0 0 0 1 * ?`,description:`每月 1 号凌晨 00:00 执行`,icon:`mdi:calendar-month`},{label:`每 5 分钟`,value:`0 0/5 * * * ?`,description:`每隔 5 分钟执行一次`,icon:`mdi:timer-5`},{label:`每 30 分钟`,value:`0 0/30 * * * ?`,description:`每隔 30 分钟执行一次`,icon:`mdi:timer-30`},{label:`每 2 小时`,value:`0 0 0/2 * * ?`,description:`每隔 2 小时执行一次`,icon:`mdi:timer-2`}],l={1:`一月`,2:`二月`,3:`三月`,4:`四月`,5:`五月`,6:`六月`,7:`七月`,8:`八月`,9:`九月`,10:`十月`,11:`十一月`,12:`十二月`},u={1:`周日`,2:`周一`,3:`周二`,4:`周三`,5:`周四`,6:`周五`,7:`周六`},d=[`second`,`minute`,`hour`,`day`,`month`,`week`];function f(){let e=structuredClone(o);for(let t of d)e[t].specificValues=[];let t=(0,n.ref)(e);function r(e){switch(e.mode){case`every`:return`*`;case`range`:return`${e.rangeStart}-${e.rangeEnd}`;case`step`:return`${e.stepStart}/${e.stepInterval}`;case`specific`:return e.specificValues.length>0?[...e.specificValues].sort((e,t)=>e-t).join(`,`):`*`;case`none`:return`?`;default:return`*`}}function a(e,t,n={}){return{mode:t,rangeStart:e.min,rangeEnd:e.max,stepStart:e.min,stepInterval:1,specificValues:[],...n}}function s(e,t){let[n,r]=e.split(`/`).map(Number);return a(t,`step`,{stepStart:isNaN(n)?t.min:n,stepInterval:isNaN(r)?1:r})}function c(e,t){let[n,r]=e.split(`-`).map(Number);return a(t,`range`,{rangeStart:isNaN(n)?t.min:n,rangeEnd:isNaN(r)?t.max:r})}function l(e,t){let n=i.find(e=>e.type===t);if(e===`?`)return a(n,`none`);if(e===`*`)return a(n,`every`);if(e.includes(`/`))return s(e,n);if(e.includes(`-`)&&!e.includes(`,`))return c(e,n);let r=e.split(`,`).map(Number).filter(e=>!isNaN(e));return r.length>0?a(n,`specific`,{specificValues:r}):a(n,`every`)}function u(){return d.map(e=>r(t.value[e])).join(` `)}function f(e){if(!m(e).valid)return!1;let n=e.trim().split(/\s+/);return d.forEach((e,r)=>{t.value[e]=l(n[r],e)}),!0}function p(e){e===`day`?t.value.day.mode!==`none`&&(t.value.week={...t.value.week,mode:`none`}):t.value.week.mode!==`none`&&(t.value.day={...t.value.day,mode:`none`})}function m(e){let t=(e??u()).trim().split(/\s+/);if(t.length!==6)return{valid:!1,message:`表达式应包含 6 个字段,当前为 ${t.length} 个`};let n=t[3],r=t[5];if(n!==`?`&&r!==`?`)return{valid:!1,message:`日和周不能同时指定,其中一个必须为 ?`,field:`day`};if(n===`?`&&r===`?`)return{valid:!1,message:`日和周不能同时为 ?,至少指定一个`,field:`day`};for(let e=0;e<d.length;e++){let n=d[e],r=t[e],a=v(r,i.find(e=>e.type===n));if(!a.valid)return{...a,field:n}}return{valid:!0,message:`表达式合法`}}function h(e,t){let[n,r]=e.split(`/`),i=n===`*`?t.min:Number(n),a=Number(r);return!Number.isInteger(i)||!Number.isInteger(a)?{valid:!1,message:`${t.label}字段步进格式错误`}:i<t.min||i>t.max?{valid:!1,message:`${t.label}字段步进起始值超出范围 (${t.min}-${t.max})`}:a<1?{valid:!1,message:`${t.label}字段步进间隔必须大于 0`}:{valid:!0,message:``}}function g(e,t){let[n,r]=e.split(`-`).map(Number);return!Number.isInteger(n)||!Number.isInteger(r)?{valid:!1,message:`${t.label}字段范围格式错误`}:n<t.min||r>t.max?{valid:!1,message:`${t.label}字段范围超出 (${t.min}-${t.max})`}:n>r?{valid:!1,message:`${t.label}字段范围起始不能大于结束`}:{valid:!0,message:``}}function _(e,t){let n=e.split(`,`).map(Number);return n.some(e=>!Number.isInteger(e))?{valid:!1,message:`${t.label}字段包含非数字字符`}:n.some(e=>e<t.min||e>t.max)?{valid:!1,message:`${t.label}字段值超出范围 (${t.min}-${t.max})`}:{valid:!0,message:``}}function v(e,t){return e===`*`?{valid:!0,message:``}:e===`?`?t.type===`day`||t.type===`week`?{valid:!0,message:``}:{valid:!1,message:`${t.label}字段不能使用 ?`}:/^(\*|\d+)\/\d+$/.test(e)?h(e,t):/^\d+-\d+$/.test(e)?g(e,t):/^\d+(,\d+)*$/.test(e)?_(e,t):{valid:!1,message:`${t.label}字段格式错误`}}return{cronValue:t,expression:(0,n.computed)(()=>u()),validation:(0,n.computed)(()=>m()),parse:f,generate:u,validate:m,handleDayWeekExclusion:p}}function p(e,t,n){if(t===`*`||t===`?`)return!0;if(t.includes(`/`)){let[r,i]=t.split(`/`),a=r===`*`?n:Number(r),o=Number(i);return o>0&&e>=a&&(e-a)%o===0}if(t.includes(`-`)){let[n,r]=t.split(`-`).map(Number);return e>=n&&e<=r}return t.split(`,`).some(t=>Number(t)===e)}function m(e,t){let[,n,r,i,a,o]=t;return p(e.getMinutes(),n,0)&&p(e.getHours(),r,0)&&p(e.getDate(),i,1)&&p(e.getMonth()+1,a,1)&&p(e.getDay()+1,o,1)}function h(e,t,n,r,i){for(let a of n){let n=new Date(t.getTime()+a*1e3);if(!(n.getTime()<=r.getTime())&&(e.push(n),e.length>=i))return!0}return!1}function g(e){return Number.isFinite(e)?Math.min(100,Math.max(1,Math.trunc(e))):10}function _(e){return e>0&&e%1e4==0}async function v(e,t,n=new Date,r=()=>!1){let i=e.trim().split(/\s+/);if(i.length!==6)return[];let a=Array.from({length:60},(e,t)=>t).filter(e=>p(e,i[0],0));if(a.length===0)return[];let o=g(t),s=[],c=new Date(n);c.setSeconds(0,0);for(let e=0;e<527040;e++){if(r())return[];if(m(c,i)&&h(s,c,a,n,o))return s;c.setTime(c.getTime()+6e4),_(e)&&await new Promise(e=>setTimeout(e,0))}return s}function y(e,t,r){let i=(0,n.ref)([]),a=(0,n.ref)(!1),o=0,s=null;(0,n.watch)([e,r,t],()=>{o+=1;let n=o;if(s&&clearTimeout(s),!t.value.valid){i.value=[],a.value=!1,s=null;return}a.value=!0,s=setTimeout(async()=>{let t=await v(e.value,r.value,new Date,()=>n!==o);n===o&&(i.value=t,a.value=!1,s=null)},0)},{immediate:!0}),(0,n.onScopeDispose)(()=>{o+=1,s&&clearTimeout(s)});function c(e){let t=e=>String(e).padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())} ${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}`}function l(e){return[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`][e.getDay()]}return{nextExecutions:i,computing:a,formatDate:c,formatWeekDay:l}}function b(e){return u[Number(e)]||`周${e}`}function x(e,t){let r=(0,n.computed)(()=>t.value.valid?i(e.value):`表达式不合法`);function i(e){let t=e.trim().split(/\s+/);if(t.length!==6)return`表达式格式错误`;let[n,r,i,l,f,p]=t,m=[];return m.push(u(f)),p===`?`?m.push(c(l)):m.push(d(p)),m.push(s(i)),m.push(o(r)),m.push(a(n)),m.filter(Boolean).join(` `)+` 执行`}function a(e){return e===`0`?``:e===`*`?`每秒`:f(e,`秒`)}function o(e){return e===`*`?`每分钟`:e===`0`?``:f(e,`分`)}function s(e){return e===`*`?`每小时`:/^\d+$/.test(e)?`${e.padStart(2,`0`)}:`:f(e,`时`)}function c(e){if(e===`*`||e===`?`)return`每天`;if(/^\d+$/.test(e))return`每月 ${e} 号`;if(e.includes(`/`)){let[t,n]=e.split(`/`);return`从 ${t} 号开始每 ${n} 天`}if(e.includes(`-`)){let[t,n]=e.split(`-`);return`${t} 号到 ${n} 号`}return e.includes(`,`)?`每月 ${e} 号`:``}function u(e){if(e===`*`)return``;if(/^\d+$/.test(e)){let t=Number(e);return l[t]?`${l[t]}`:`${t} 月`}if(e.includes(`/`)){let[t,n]=e.split(`/`);return`从 ${t} 月开始每 ${n} 个月`}if(e.includes(`-`)){let[t,n]=e.split(`-`);return`${t} 月到 ${n} 月`}return e.includes(`,`)?e.split(`,`).map(e=>l[Number(e)]||`${e}月`).join(`、`):``}function d(e){return e===`*`||e===`?`?``:/^\d+$/.test(e)?`每${b(e)}`:e.includes(`/`)?`从${b(e.split(`/`)[0])}开始每 ${e.split(`/`)[1]} 天`:e.includes(`-`)?`${b(e.split(`-`)[0])}到${b(e.split(`-`)[1])}`:e.includes(`,`)?`每${e.split(`,`).map(b).join(`、`)}`:``}function f(e,t){if(e.includes(`/`)){let[n,r]=e.split(`/`);return`${n===`*`||n===`0`?``:`从第 ${n} ${t}开始`}每 ${r} ${t}`}if(e.includes(`-`)){let[n,r]=e.split(`-`);return`${n} ${t}到 ${r} ${t}`}return e.includes(`,`)?`第 ${e} ${t}`:/^\d+$/.test(e)?`${e.padStart(2,`0`)}`:``}return{description:r}}const S={class:`cron-field-editor`},C=[`disabled`,`aria-pressed`,`onClick`],w=(0,n.defineComponent)({__name:`CronFieldEditor`,props:{modelValue:{},meta:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.computed)(()=>{switch(r.meta.type){case`second`:case`minute`:return 10;case`hour`:return 12;case`day`:return 7;case`month`:return 6;case`week`:return 7;default:return 10}}),o=(0,n.computed)(()=>{let e=[];for(let t=r.meta.min;t<=r.meta.max;t++)e.push({value:t,label:r.meta.valueLabels?.[t]??String(t)});return e}),s=(0,n.computed)(()=>{let{modelValue:e,meta:t}=r,n=new Set;switch(e.mode){case`every`:for(let e=t.min;e<=t.max;e++)n.add(e);break;case`none`:break;case`range`:for(let t=e.rangeStart;t<=e.rangeEnd;t++)n.add(t);break;case`step`:for(let r=e.stepStart;r<=t.max;r+=Math.max(1,e.stepInterval))n.add(r);break;case`specific`:e.specificValues.forEach(e=>n.add(e));break}return n});function c(e){if(r.disabled||r.modelValue.mode!==`specific`)return;let t=[...r.modelValue.specificValues],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),i(`update:modelValue`,{...r.modelValue,specificValues:t})}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,S,[(0,n.createElementVNode)(`div`,{class:`cron-field-editor__grid`,style:(0,n.normalizeStyle)({"--cols":a.value})},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(o.value,t=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:t.value,type:`button`,class:(0,n.normalizeClass)([`cron-field-editor__cell`,{"cron-field-editor__cell--on":s.value.has(t.value),"cron-field-editor__cell--pick":e.modelValue.mode===`specific`}]),disabled:e.disabled||e.modelValue.mode!==`specific`,"aria-pressed":e.modelValue.mode===`specific`?s.value.has(t.value):void 0,onClick:e=>c(t.value)},(0,n.toDisplayString)(t.label),11,C))),128))],4)]))}});var T=t.t(w,[[`__scopeId`,`data-v-60c57fc6`]]);const E={class:`cron-preview`},D={class:`cron-preview__header`},O={key:0,class:`cron-preview__list`},k={class:`cron-preview__idx`},A={class:`cron-preview__date`},j={class:`cron-preview__week`},M=(0,n.defineComponent)({__name:`CronPreview`,props:{nextExecutions:{},computing:{type:Boolean},count:{},formatDate:{type:Function},formatWeekDay:{type:Function}},setup(t){return(i,a)=>{let o=r.NSpin,s=r.NEmpty,c=r.NScrollbar;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,E,[(0,n.createElementVNode)(`div`,D,[(0,n.createVNode)(e.t,{name:`mdi:calendar-clock`,size:15}),a[0]||=(0,n.createElementVNode)(`span`,null,`未来执行`,-1),t.computing?((0,n.openBlock)(),(0,n.createBlock)(o,{key:0,size:14})):(0,n.createCommentVNode)(`v-if`,!0)]),(0,n.createVNode)(c,{style:{"max-height":`220px`}},{default:(0,n.withCtx)(()=>[t.nextExecutions.length>0?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,O,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.nextExecutions,(e,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:r,class:`cron-preview__item`},[(0,n.createElementVNode)(`span`,k,(0,n.toDisplayString)(r+1),1),(0,n.createElementVNode)(`span`,A,(0,n.toDisplayString)(t.formatDate(e)),1),(0,n.createElementVNode)(`span`,j,(0,n.toDisplayString)(t.formatWeekDay(e)),1)]))),128))])):((0,n.openBlock)(),(0,n.createBlock)(s,{key:1,size:`small`,description:`暂无匹配`}))]),_:1})])}}});var N=t.t(M,[[`__scopeId`,`data-v-a695bb32`]]);const P={class:`cron-templates`},F={class:`cron-templates__header`},I={class:`cron-templates__cards`},L=[`disabled`,`aria-pressed`,`onClick`],R={class:`cron-templates__card-name`},z={class:`cron-templates__card-expr`},B=(0,n.defineComponent)({__name:`CronTemplates`,props:{templates:{},currentValue:{},disabled:{type:Boolean}},emits:[`select`],setup(t){return(r,i)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,P,[(0,n.createElementVNode)(`div`,F,[(0,n.createVNode)(e.t,{name:`mdi:lightning-bolt`,size:15}),i[0]||=(0,n.createElementVNode)(`span`,null,`常用模板`,-1)]),(0,n.createElementVNode)(`div`,I,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.templates,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:e.value,type:`button`,disabled:t.disabled,"aria-pressed":e.value===t.currentValue,class:(0,n.normalizeClass)([`cron-templates__card`,{"cron-templates__card--active":e.value===t.currentValue}]),onClick:t=>r.$emit(`select`,e.value)},[(0,n.createElementVNode)(`div`,R,(0,n.toDisplayString)(e.label),1),(0,n.createElementVNode)(`div`,z,(0,n.toDisplayString)(e.value),1)],10,L))),128))])]))}});var ee=t.t(B,[[`__scopeId`,`data-v-241e79f6`]]);const te={class:`c-cron__header`},ne={class:`c-cron__title-row`},re={class:`c-cron__title`},ie={class:`c-cron__segments`},V=[`aria-pressed`,`onClick`],H={class:`c-cron__segment-value`},U={class:`c-cron__segment-label`},W={class:`c-cron__expr-row`},G={class:`c-cron__expr-desc`},K={key:0,class:`c-cron__description`},q={key:1,class:`c-cron__error`},J={class:`c-cron__body`},ae={class:`c-cron__main`},oe={class:`c-cron__panel`},se={key:0,class:`c-cron__config`},ce={class:`c-cron__config-row`},le={key:1,class:`c-cron__config`},ue={class:`c-cron__config-row`},de={key:2,class:`c-cron__quick`},fe=[`disabled`],pe=[`disabled`],me={key:0,class:`c-cron__quick-count`},he={key:1,class:`c-cron__error`},ge={key:0,class:`c-cron__footer`},Y=(0,n.defineComponent)({name:`C_Cron`,__name:`index`,props:{modelValue:{default:s},disabled:{type:Boolean,default:!1},previewCount:{default:10},showTemplates:{type:Boolean,default:!0},showPreview:{type:Boolean,default:!0},showSecond:{type:Boolean,default:!0},height:{default:`auto`}},emits:[`update:modelValue`,`change`,`validation-change`],setup(t,{expose:a,emit:o}){let l=t,u=o,{cronValue:d,expression:p,validation:m,parse:h,validate:g,handleDayWeekExclusion:_}=f(),{nextExecutions:v,computing:b,formatDate:S,formatWeekDay:C}=y(p,m,(0,n.computed)(()=>l.previewCount??10)),{description:w}=x(p,m),E=(0,n.ref)(l.modelValue||s),D=(0,n.ref)(null),O=(0,n.computed)(()=>D.value??m.value),k=(0,n.ref)(l.showSecond?`second`:`minute`),A=(0,n.computed)(()=>typeof l.height==`number`?`${l.height}px`:l.height),j=(0,n.computed)(()=>l.showSecond?i:i.filter(e=>e.type!==`second`)),M=(0,n.computed)(()=>i.find(e=>e.type===k.value)),P=(0,n.computed)(()=>d.value[k.value]);function F(e){switch(e.mode){case`every`:return`*`;case`none`:return`?`;case`range`:return`${e.rangeStart}-${e.rangeEnd}`;case`step`:return`${e.stepStart}/${e.stepInterval}`;case`specific`:return e.specificValues.length>0?[...e.specificValues].sort((e,t)=>e-t).join(`,`):`*`;default:return`*`}}let I=(0,n.computed)(()=>{let e={};for(let t of i)e[t.type]=F(d.value[t.type]);return e});(0,n.onMounted)(()=>{Q(l.modelValue||s)}),(0,n.watch)(()=>l.modelValue,e=>{e!==p.value&&Q(e||s)}),(0,n.watch)(()=>l.showSecond,e=>{!e&&k.value===`second`&&(k.value=`minute`)}),(0,n.watch)(p,e=>{E.value=e,D.value=null,u(`update:modelValue`,e),u(`change`,e)}),(0,n.watch)(O,e=>{u(`validation-change`,e)});function L(e,t){l.disabled||(D.value=null,d.value[e]=t,(e===`day`||e===`week`)&&_(e))}function R(e){L(k.value,{...P.value,mode:e})}function z(e){L(k.value,{...P.value,...e})}function B(){let{min:e,max:t}=M.value,n=Array.from({length:t-e+1},(t,n)=>e+n);L(k.value,{...P.value,specificValues:n})}function Y(){L(k.value,{...P.value,specificValues:[]})}function X(e){E.value=e,D.value=g(e)}function Z(){l.disabled||Q(E.value.trim())}function Q(e){E.value=e;let t=g(e);D.value=t.valid?null:t,t.valid&&h(e)}function _e(e){l.disabled||Q(e)}function $(){Q(l.modelValue||s)}return a({getValue:()=>p.value,setValue:e=>{Q(e)},reset:$,validate:()=>O.value}),(t,i)=>{let a=r.NTag,o=r.NInput,s=r.NButton,u=r.NRadioButton,f=r.NRadioGroup,m=r.NInputNumber;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:`c-cron`,style:(0,n.normalizeStyle)({height:A.value})},[(0,n.createCommentVNode)(` ═══════ 顶部 ═══════ `),(0,n.createElementVNode)(`div`,te,[(0,n.createCommentVNode)(` 标题行 `),(0,n.createElementVNode)(`div`,ne,[(0,n.createElementVNode)(`div`,re,[(0,n.createVNode)(e.t,{name:`mdi:clock-edit-outline`,size:18}),i[4]||=(0,n.createElementVNode)(`span`,null,`Cron 表达式`,-1)]),(0,n.createVNode)(a,{type:O.value.valid?`success`:`error`,size:`small`,round:``},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:O.value.valid?`mdi:check-circle`:`mdi:alert-circle`},null,8,[`name`])]),default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` `+(0,n.toDisplayString)(O.value.valid?`合法`:`错误`),1)]),_:1},8,[`type`])]),(0,n.createCommentVNode)(` 分段式字段选择器 `),(0,n.createElementVNode)(`div`,ie,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(j.value,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:e.type,type:`button`,class:(0,n.normalizeClass)([`c-cron__segment`,{"c-cron__segment--active":k.value===e.type,"c-cron__segment--wildcard":I.value[e.type]===`*`||I.value[e.type]===`?`}]),"aria-pressed":k.value===e.type,onClick:t=>k.value=e.type},[(0,n.createElementVNode)(`div`,H,(0,n.toDisplayString)(I.value[e.type]),1),(0,n.createElementVNode)(`div`,U,(0,n.toDisplayString)(e.label),1)],10,V))),128))]),(0,n.createCommentVNode)(` 表达式行:输入 + 重置 + 描述 `),(0,n.createElementVNode)(`div`,W,[(0,n.createVNode)(o,{value:E.value,status:O.value.valid?void 0:`error`,placeholder:`秒 分 时 日 月 周`,disabled:l.disabled,font:`mono`,size:`small`,clearable:``,class:`c-cron__expr-input`,"onUpdate:value":X,onBlur:Z,onKeydown:(0,n.withKeys)(Z,[`enter`])},{prefix:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:console`,size:14,style:{opacity:`0.4`}})]),_:1},8,[`value`,`status`,`disabled`]),(0,n.createVNode)(s,{size:`small`,quaternary:``,disabled:l.disabled,onClick:$},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:refresh`})]),_:1},8,[`disabled`]),(0,n.createElementVNode)(`div`,G,[O.value.valid?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,K,(0,n.toDisplayString)((0,n.unref)(w)),1)):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,q,(0,n.toDisplayString)(O.value.message),1))])])]),(0,n.createCommentVNode)(` ═══════ 主内容 ═══════ `),(0,n.createElementVNode)(`div`,J,[(0,n.createCommentVNode)(` 左侧:值网格 `),(0,n.createElementVNode)(`div`,ae,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(j.value,e=>(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createBlock)(T,{key:e.type,"model-value":(0,n.unref)(d)[e.type],meta:e,disabled:l.disabled,"onUpdate:modelValue":t=>L(e.type,t)},null,8,[`model-value`,`meta`,`disabled`,`onUpdate:modelValue`])),[[n.vShow,k.value===e.type]])),128))]),(0,n.createCommentVNode)(` 右侧:控制面板 `),(0,n.createElementVNode)(`div`,oe,[(0,n.createVNode)(f,{value:P.value.mode,disabled:l.disabled,size:`small`,"onUpdate:value":R},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(u,{value:`every`},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` 每`+(0,n.toDisplayString)(M.value.label),1)]),_:1}),k.value===`day`||k.value===`week`?((0,n.openBlock)(),(0,n.createBlock)(u,{key:0,value:`none`},{default:(0,n.withCtx)(()=>[...i[5]||=[(0,n.createTextVNode)(` 不指定 `,-1)]]),_:1})):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createVNode)(u,{value:`range`},{default:(0,n.withCtx)(()=>[...i[6]||=[(0,n.createTextVNode)(`范围`,-1)]]),_:1}),(0,n.createVNode)(u,{value:`step`},{default:(0,n.withCtx)(()=>[...i[7]||=[(0,n.createTextVNode)(`步进`,-1)]]),_:1}),(0,n.createVNode)(u,{value:`specific`},{default:(0,n.withCtx)(()=>[...i[8]||=[(0,n.createTextVNode)(`指定`,-1)]]),_:1})]),_:1},8,[`value`,`disabled`]),(0,n.createCommentVNode)(` 范围配置 `),P.value.mode===`range`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,se,[(0,n.createElementVNode)(`div`,ce,[i[9]||=(0,n.createElementVNode)(`span`,null,`从`,-1),(0,n.createVNode)(m,{value:P.value.rangeStart,min:M.value.min,max:M.value.max,size:`small`,"show-button":!1,disabled:l.disabled,class:`c-cron__config-num`,"onUpdate:value":i[0]||=e=>z({rangeStart:e??M.value.min})},null,8,[`value`,`min`,`max`,`disabled`]),i[10]||=(0,n.createElementVNode)(`span`,null,`到`,-1),(0,n.createVNode)(m,{value:P.value.rangeEnd,min:M.value.min,max:M.value.max,size:`small`,"show-button":!1,disabled:l.disabled,class:`c-cron__config-num`,"onUpdate:value":i[1]||=e=>z({rangeEnd:e??M.value.max})},null,8,[`value`,`min`,`max`,`disabled`])])])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 步进配置 `),P.value.mode===`step`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,le,[(0,n.createElementVNode)(`div`,ue,[i[11]||=(0,n.createElementVNode)(`span`,null,`从第`,-1),(0,n.createVNode)(m,{value:P.value.stepStart,min:M.value.min,max:M.value.max,size:`small`,"show-button":!1,disabled:l.disabled,class:`c-cron__config-num`,"onUpdate:value":i[2]||=e=>z({stepStart:e??M.value.min})},null,8,[`value`,`min`,`max`,`disabled`]),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(M.value.label)+`起,每`,1),(0,n.createVNode)(m,{value:P.value.stepInterval,min:1,max:M.value.max-M.value.min+1,size:`small`,"show-button":!1,disabled:l.disabled,class:`c-cron__config-num`,"onUpdate:value":i[3]||=e=>z({stepInterval:e??1})},null,8,[`value`,`max`,`disabled`]),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(M.value.label)+`执行`,1)])])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 指定快捷操作 `),P.value.mode===`specific`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,de,[(0,n.createElementVNode)(`button`,{type:`button`,disabled:l.disabled,onClick:B},`全选`,8,fe),i[12]||=(0,n.createElementVNode)(`span`,{class:`c-cron__quick-sep`},`·`,-1),(0,n.createElementVNode)(`button`,{type:`button`,disabled:l.disabled,onClick:Y},`清空`,8,pe),P.value.specificValues.length>0?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,me,` 已选 `+(0,n.toDisplayString)(P.value.specificValues.length),1)):(0,n.createCommentVNode)(`v-if`,!0)])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 执行预览 `),l.showPreview?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:3},[i[13]||=(0,n.createElementVNode)(`div`,{class:`c-cron__panel-line`},null,-1),O.value.valid?((0,n.openBlock)(),(0,n.createBlock)(N,{key:0,"next-executions":(0,n.unref)(v),computing:(0,n.unref)(b),count:l.previewCount??5,"format-date":(0,n.unref)(S),"format-week-day":(0,n.unref)(C)},null,8,[`next-executions`,`computing`,`count`,`format-date`,`format-week-day`])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,he,`请先修正表达式`))],64)):(0,n.createCommentVNode)(`v-if`,!0)])]),(0,n.createCommentVNode)(` ═══════ 底部模板 ═══════ `),l.showTemplates?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ge,[(0,n.createVNode)(ee,{templates:(0,n.unref)(c),"current-value":(0,n.unref)(p),disabled:l.disabled,onSelect:_e},null,8,[`templates`,`current-value`,`disabled`])])):(0,n.createCommentVNode)(`v-if`,!0)],4)}}});var X=t.t(Y,[[`__scopeId`,`data-v-2594f81f`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
1
+ require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i=[{type:`second`,label:`秒`,min:0,max:59},{type:`minute`,label:`分`,min:0,max:59},{type:`hour`,label:`时`,min:0,max:23},{type:`day`,label:`日`,min:1,max:31},{type:`month`,label:`月`,min:1,max:12},{type:`week`,label:`周`,min:1,max:7,valueLabels:{1:`周日`,2:`周一`,3:`周二`,4:`周三`,5:`周四`,6:`周五`,7:`周六`}}],a={mode:`every`,rangeStart:0,rangeEnd:0,stepStart:0,stepInterval:1,specificValues:[]},o={second:{...a,rangeEnd:59},minute:{...a,rangeEnd:59},hour:{...a,rangeEnd:23},day:{...a,rangeStart:1,rangeEnd:31},month:{...a,rangeStart:1,rangeEnd:12},week:{...a,mode:`none`,rangeStart:1,rangeEnd:7}},s=`0 0 0 * * ?`,c=[{label:`每秒执行`,value:`* * * * * ?`,description:`每秒执行一次`,icon:`mdi:timer-sand`},{label:`每分钟执行`,value:`0 * * * * ?`,description:`每分钟第 0 秒执行`,icon:`mdi:clock-outline`},{label:`每小时执行`,value:`0 0 * * * ?`,description:`每小时整点执行`,icon:`mdi:clock-time-twelve-outline`},{label:`每天 0 点`,value:`0 0 0 * * ?`,description:`每天凌晨 00:00 执行`,icon:`mdi:weather-night`},{label:`每天 8:30`,value:`0 30 8 * * ?`,description:`每天早上 08:30 执行`,icon:`mdi:weather-sunny`},{label:`每天 12:00`,value:`0 0 12 * * ?`,description:`每天中午 12:00 执行`,icon:`mdi:food`},{label:`工作日 9:00`,value:`0 0 9 ? * 2-6`,description:`周一至周五 09:00 执行`,icon:`mdi:briefcase-outline`},{label:`每周一 0 点`,value:`0 0 0 ? * 2`,description:`每周一凌晨 00:00 执行`,icon:`mdi:calendar-week`},{label:`每月 1 号 0 点`,value:`0 0 0 1 * ?`,description:`每月 1 号凌晨 00:00 执行`,icon:`mdi:calendar-month`},{label:`每 5 分钟`,value:`0 0/5 * * * ?`,description:`每隔 5 分钟执行一次`,icon:`mdi:timer-5`},{label:`每 30 分钟`,value:`0 0/30 * * * ?`,description:`每隔 30 分钟执行一次`,icon:`mdi:timer-30`},{label:`每 2 小时`,value:`0 0 0/2 * * ?`,description:`每隔 2 小时执行一次`,icon:`mdi:timer-2`}],l={1:`一月`,2:`二月`,3:`三月`,4:`四月`,5:`五月`,6:`六月`,7:`七月`,8:`八月`,9:`九月`,10:`十月`,11:`十一月`,12:`十二月`},u={1:`周日`,2:`周一`,3:`周二`,4:`周三`,5:`周四`,6:`周五`,7:`周六`},d=[`second`,`minute`,`hour`,`day`,`month`,`week`];function f(){let e=structuredClone(o);for(let t of d)e[t].specificValues=[];let t=(0,n.ref)(e);function r(e){switch(e.mode){case`every`:return`*`;case`range`:return`${e.rangeStart}-${e.rangeEnd}`;case`step`:return`${e.stepStart}/${e.stepInterval}`;case`specific`:return e.specificValues.length>0?[...e.specificValues].sort((e,t)=>e-t).join(`,`):`*`;case`none`:return`?`;default:return`*`}}function a(e,t,n={}){return{mode:t,rangeStart:e.min,rangeEnd:e.max,stepStart:e.min,stepInterval:1,specificValues:[],...n}}function s(e,t){let[n,r]=e.split(`/`).map(Number);return a(t,`step`,{stepStart:isNaN(n)?t.min:n,stepInterval:isNaN(r)?1:r})}function c(e,t){let[n,r]=e.split(`-`).map(Number);return a(t,`range`,{rangeStart:isNaN(n)?t.min:n,rangeEnd:isNaN(r)?t.max:r})}function l(e,t){let n=i.find(e=>e.type===t);if(e===`?`)return a(n,`none`);if(e===`*`)return a(n,`every`);if(e.includes(`/`))return s(e,n);if(e.includes(`-`)&&!e.includes(`,`))return c(e,n);let r=e.split(`,`).map(Number).filter(e=>!isNaN(e));return r.length>0?a(n,`specific`,{specificValues:r}):a(n,`every`)}function u(){return d.map(e=>r(t.value[e])).join(` `)}function f(e){if(!m(e).valid)return!1;let n=e.trim().split(/\s+/);return d.forEach((e,r)=>{t.value[e]=l(n[r],e)}),!0}function p(e){e===`day`?t.value.day.mode!==`none`&&(t.value.week={...t.value.week,mode:`none`}):t.value.week.mode!==`none`&&(t.value.day={...t.value.day,mode:`none`})}function m(e){let t=(e??u()).trim().split(/\s+/);if(t.length!==6)return{valid:!1,message:`表达式应包含 6 个字段,当前为 ${t.length} 个`};let n=t[3],r=t[5];if(n!==`?`&&r!==`?`)return{valid:!1,message:`日和周不能同时指定,其中一个必须为 ?`,field:`day`};if(n===`?`&&r===`?`)return{valid:!1,message:`日和周不能同时为 ?,至少指定一个`,field:`day`};for(let e=0;e<d.length;e++){let n=d[e],r=t[e],a=v(r,i.find(e=>e.type===n));if(!a.valid)return{...a,field:n}}return{valid:!0,message:`表达式合法`}}function h(e,t){let[n,r]=e.split(`/`),i=n===`*`?t.min:Number(n),a=Number(r);return!Number.isInteger(i)||!Number.isInteger(a)?{valid:!1,message:`${t.label}字段步进格式错误`}:i<t.min||i>t.max?{valid:!1,message:`${t.label}字段步进起始值超出范围 (${t.min}-${t.max})`}:a<1?{valid:!1,message:`${t.label}字段步进间隔必须大于 0`}:{valid:!0,message:``}}function g(e,t){let[n,r]=e.split(`-`).map(Number);return!Number.isInteger(n)||!Number.isInteger(r)?{valid:!1,message:`${t.label}字段范围格式错误`}:n<t.min||r>t.max?{valid:!1,message:`${t.label}字段范围超出 (${t.min}-${t.max})`}:n>r?{valid:!1,message:`${t.label}字段范围起始不能大于结束`}:{valid:!0,message:``}}function _(e,t){let n=e.split(`,`).map(Number);return n.some(e=>!Number.isInteger(e))?{valid:!1,message:`${t.label}字段包含非数字字符`}:n.some(e=>e<t.min||e>t.max)?{valid:!1,message:`${t.label}字段值超出范围 (${t.min}-${t.max})`}:{valid:!0,message:``}}function v(e,t){return e===`*`?{valid:!0,message:``}:e===`?`?t.type===`day`||t.type===`week`?{valid:!0,message:``}:{valid:!1,message:`${t.label}字段不能使用 ?`}:/^(\*|\d+)\/\d+$/.test(e)?h(e,t):/^\d+-\d+$/.test(e)?g(e,t):/^\d+(,\d+)*$/.test(e)?_(e,t):{valid:!1,message:`${t.label}字段格式错误`}}return{cronValue:t,expression:(0,n.computed)(()=>u()),validation:(0,n.computed)(()=>m()),parse:f,generate:u,validate:m,handleDayWeekExclusion:p}}function p(e,t,n){if(t===`*`||t===`?`)return!0;if(t.includes(`/`)){let[r,i]=t.split(`/`),a=r===`*`?n:Number(r),o=Number(i);return o>0&&e>=a&&(e-a)%o===0}if(t.includes(`-`)){let[n,r]=t.split(`-`).map(Number);return e>=n&&e<=r}return t.split(`,`).some(t=>Number(t)===e)}function m(e,t){let[,n,r,i,a,o]=t;return p(e.getMinutes(),n,0)&&p(e.getHours(),r,0)&&p(e.getDate(),i,1)&&p(e.getMonth()+1,a,1)&&p(e.getDay()+1,o,1)}function h(e,t,n,r,i){for(let a of n){let n=new Date(t.getTime()+a*1e3);if(!(n.getTime()<=r.getTime())&&(e.push(n),e.length>=i))return!0}return!1}function g(e){return Number.isFinite(e)?Math.min(100,Math.max(1,Math.trunc(e))):10}function _(e){return e>0&&e%1e4==0}async function v(e,t,n=new Date,r=()=>!1){let i=e.trim().split(/\s+/);if(i.length!==6)return[];let a=Array.from({length:60},(e,t)=>t).filter(e=>p(e,i[0],0));if(a.length===0)return[];let o=g(t),s=[],c=new Date(n);c.setSeconds(0,0);for(let e=0;e<527040;e++){if(r())return[];if(m(c,i)&&h(s,c,a,n,o))return s;c.setTime(c.getTime()+6e4),_(e)&&await new Promise(e=>setTimeout(e,0))}return s}function y(e,t,r){let i=(0,n.ref)([]),a=(0,n.ref)(!1),o=0,s=null;(0,n.watch)([e,r,t],()=>{o+=1;let n=o;if(s&&clearTimeout(s),!t.value.valid){i.value=[],a.value=!1,s=null;return}a.value=!0,s=setTimeout(async()=>{let t=await v(e.value,r.value,new Date,()=>n!==o);n===o&&(i.value=t,a.value=!1,s=null)},0)},{immediate:!0}),(0,n.onScopeDispose)(()=>{o+=1,s&&clearTimeout(s)});function c(e){let t=e=>String(e).padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())} ${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}`}function l(e){return[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`][e.getDay()]}return{nextExecutions:i,computing:a,formatDate:c,formatWeekDay:l}}function b(e){return u[Number(e)]||`周${e}`}function x(e,t){let r=(0,n.computed)(()=>t.value.valid?i(e.value):`表达式不合法`);function i(e){let t=e.trim().split(/\s+/);if(t.length!==6)return`表达式格式错误`;let[n,r,i,l,f,p]=t,m=[];return m.push(u(f)),p===`?`?m.push(c(l)):m.push(d(p)),m.push(s(i)),m.push(o(r)),m.push(a(n)),m.filter(Boolean).join(` `)+` 执行`}function a(e){return e===`0`?``:e===`*`?`每秒`:f(e,`秒`)}function o(e){return e===`*`?`每分钟`:e===`0`?``:f(e,`分`)}function s(e){return e===`*`?`每小时`:/^\d+$/.test(e)?`${e.padStart(2,`0`)}:`:f(e,`时`)}function c(e){if(e===`*`||e===`?`)return`每天`;if(/^\d+$/.test(e))return`每月 ${e} 号`;if(e.includes(`/`)){let[t,n]=e.split(`/`);return`从 ${t} 号开始每 ${n} 天`}if(e.includes(`-`)){let[t,n]=e.split(`-`);return`${t} 号到 ${n} 号`}return e.includes(`,`)?`每月 ${e} 号`:``}function u(e){if(e===`*`)return``;if(/^\d+$/.test(e)){let t=Number(e);return l[t]?`${l[t]}`:`${t} 月`}if(e.includes(`/`)){let[t,n]=e.split(`/`);return`从 ${t} 月开始每 ${n} 个月`}if(e.includes(`-`)){let[t,n]=e.split(`-`);return`${t} 月到 ${n} 月`}return e.includes(`,`)?e.split(`,`).map(e=>l[Number(e)]||`${e}月`).join(`、`):``}function d(e){return e===`*`||e===`?`?``:/^\d+$/.test(e)?`每${b(e)}`:e.includes(`/`)?`从${b(e.split(`/`)[0])}开始每 ${e.split(`/`)[1]} 天`:e.includes(`-`)?`${b(e.split(`-`)[0])}到${b(e.split(`-`)[1])}`:e.includes(`,`)?`每${e.split(`,`).map(b).join(`、`)}`:``}function f(e,t){if(e.includes(`/`)){let[n,r]=e.split(`/`);return`${n===`*`||n===`0`?``:`从第 ${n} ${t}开始`}每 ${r} ${t}`}if(e.includes(`-`)){let[n,r]=e.split(`-`);return`${n} ${t}到 ${r} ${t}`}return e.includes(`,`)?`第 ${e} ${t}`:/^\d+$/.test(e)?`${e.padStart(2,`0`)}`:``}return{description:r}}const S={class:`cron-field-editor`},C=[`disabled`,`aria-pressed`,`onClick`],w=(0,n.defineComponent)({__name:`CronFieldEditor`,props:{modelValue:{},meta:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let r=e,i=t,a=(0,n.computed)(()=>{switch(r.meta.type){case`second`:case`minute`:return 10;case`hour`:return 12;case`day`:return 7;case`month`:return 6;case`week`:return 7;default:return 10}}),o=(0,n.computed)(()=>{let e=[];for(let t=r.meta.min;t<=r.meta.max;t++)e.push({value:t,label:r.meta.valueLabels?.[t]??String(t)});return e}),s=(0,n.computed)(()=>{let{modelValue:e,meta:t}=r,n=new Set;switch(e.mode){case`every`:for(let e=t.min;e<=t.max;e++)n.add(e);break;case`none`:break;case`range`:for(let t=e.rangeStart;t<=e.rangeEnd;t++)n.add(t);break;case`step`:for(let r=e.stepStart;r<=t.max;r+=Math.max(1,e.stepInterval))n.add(r);break;case`specific`:e.specificValues.forEach(e=>n.add(e));break}return n});function c(e){if(r.disabled||r.modelValue.mode!==`specific`)return;let t=[...r.modelValue.specificValues],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),i(`update:modelValue`,{...r.modelValue,specificValues:t})}return(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,S,[(0,n.createElementVNode)(`div`,{class:`cron-field-editor__grid`,style:(0,n.normalizeStyle)({"--cols":a.value})},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(o.value,t=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:t.value,type:`button`,class:(0,n.normalizeClass)([`cron-field-editor__cell`,{"cron-field-editor__cell--on":s.value.has(t.value),"cron-field-editor__cell--pick":e.modelValue.mode===`specific`}]),disabled:e.disabled||e.modelValue.mode!==`specific`,"aria-pressed":e.modelValue.mode===`specific`?s.value.has(t.value):void 0,onClick:e=>c(t.value)},(0,n.toDisplayString)(t.label),11,C))),128))],4)]))}});var T=t.t(w,[[`__scopeId`,`data-v-153f242b`]]);const E={class:`cron-preview`},D={class:`cron-preview__header`},O={key:0,class:`cron-preview__list`},k={class:`cron-preview__idx`},A={class:`cron-preview__date`},j={class:`cron-preview__week`},M=(0,n.defineComponent)({__name:`CronPreview`,props:{nextExecutions:{},computing:{type:Boolean},count:{},formatDate:{type:Function},formatWeekDay:{type:Function}},setup(t){return(i,a)=>{let o=r.NSpin,s=r.NEmpty,c=r.NScrollbar;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,E,[(0,n.createElementVNode)(`div`,D,[(0,n.createVNode)(e.t,{name:`mdi:calendar-clock`,size:15}),a[0]||=(0,n.createElementVNode)(`span`,null,`未来执行`,-1),t.computing?((0,n.openBlock)(),(0,n.createBlock)(o,{key:0,size:14})):(0,n.createCommentVNode)(`v-if`,!0)]),(0,n.createVNode)(c,{style:{"max-height":`220px`}},{default:(0,n.withCtx)(()=>[t.nextExecutions.length>0?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,O,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.nextExecutions,(e,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:r,class:`cron-preview__item`},[(0,n.createElementVNode)(`span`,k,(0,n.toDisplayString)(r+1),1),(0,n.createElementVNode)(`span`,A,(0,n.toDisplayString)(t.formatDate(e)),1),(0,n.createElementVNode)(`span`,j,(0,n.toDisplayString)(t.formatWeekDay(e)),1)]))),128))])):((0,n.openBlock)(),(0,n.createBlock)(s,{key:1,size:`small`,description:`暂无匹配`}))]),_:1})])}}});var N=t.t(M,[[`__scopeId`,`data-v-15b88794`]]);const P={class:`cron-templates`},F={class:`cron-templates__header`},I={class:`cron-templates__cards`},L=[`disabled`,`aria-pressed`,`onClick`],R={class:`cron-templates__card-name`},z={class:`cron-templates__card-expr`},B=(0,n.defineComponent)({__name:`CronTemplates`,props:{templates:{},currentValue:{},disabled:{type:Boolean}},emits:[`select`],setup(t){return(r,i)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,P,[(0,n.createElementVNode)(`div`,F,[(0,n.createVNode)(e.t,{name:`mdi:lightning-bolt`,size:15}),i[0]||=(0,n.createElementVNode)(`span`,null,`常用模板`,-1)]),(0,n.createElementVNode)(`div`,I,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.templates,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:e.value,type:`button`,disabled:t.disabled,"aria-pressed":e.value===t.currentValue,class:(0,n.normalizeClass)([`cron-templates__card`,{"cron-templates__card--active":e.value===t.currentValue}]),onClick:t=>r.$emit(`select`,e.value)},[(0,n.createElementVNode)(`div`,R,(0,n.toDisplayString)(e.label),1),(0,n.createElementVNode)(`div`,z,(0,n.toDisplayString)(e.value),1)],10,L))),128))])]))}});var ee=t.t(B,[[`__scopeId`,`data-v-1b50e9c2`]]);const te={class:`c-cron__header`},ne={class:`c-cron__title-row`},re={class:`c-cron__title`},ie={class:`c-cron__segments`},V=[`aria-pressed`,`onClick`],H={class:`c-cron__segment-value`},U={class:`c-cron__segment-label`},W={class:`c-cron__expr-row`},G={class:`c-cron__expr-desc`},K={key:0,class:`c-cron__description`},q={key:1,class:`c-cron__error`},J={class:`c-cron__body`},ae={class:`c-cron__main`},oe={class:`c-cron__panel`},se={key:0,class:`c-cron__config`},ce={class:`c-cron__config-row`},le={key:1,class:`c-cron__config`},ue={class:`c-cron__config-row`},de={key:2,class:`c-cron__quick`},fe=[`disabled`],pe=[`disabled`],me={key:0,class:`c-cron__quick-count`},he={key:1,class:`c-cron__error`},ge={key:0,class:`c-cron__footer`},Y=(0,n.defineComponent)({name:`C_Cron`,__name:`index`,props:{modelValue:{default:s},disabled:{type:Boolean,default:!1},previewCount:{default:10},showTemplates:{type:Boolean,default:!0},showPreview:{type:Boolean,default:!0},showSecond:{type:Boolean,default:!0},height:{default:`auto`}},emits:[`update:modelValue`,`change`,`validation-change`],setup(t,{expose:a,emit:o}){let l=t,u=o,{cronValue:d,expression:p,validation:m,parse:h,validate:g,handleDayWeekExclusion:_}=f(),{nextExecutions:v,computing:b,formatDate:S,formatWeekDay:C}=y(p,m,(0,n.computed)(()=>l.previewCount??10)),{description:w}=x(p,m),E=(0,n.ref)(l.modelValue||s),D=(0,n.ref)(null),O=(0,n.computed)(()=>D.value??m.value),k=(0,n.ref)(l.showSecond?`second`:`minute`),A=(0,n.computed)(()=>typeof l.height==`number`?`${l.height}px`:l.height),j=(0,n.computed)(()=>l.showSecond?i:i.filter(e=>e.type!==`second`)),M=(0,n.computed)(()=>i.find(e=>e.type===k.value)),P=(0,n.computed)(()=>d.value[k.value]);function F(e){switch(e.mode){case`every`:return`*`;case`none`:return`?`;case`range`:return`${e.rangeStart}-${e.rangeEnd}`;case`step`:return`${e.stepStart}/${e.stepInterval}`;case`specific`:return e.specificValues.length>0?[...e.specificValues].sort((e,t)=>e-t).join(`,`):`*`;default:return`*`}}let I=(0,n.computed)(()=>{let e={};for(let t of i)e[t.type]=F(d.value[t.type]);return e});(0,n.onMounted)(()=>{Q(l.modelValue||s)}),(0,n.watch)(()=>l.modelValue,e=>{e!==p.value&&Q(e||s)}),(0,n.watch)(()=>l.showSecond,e=>{!e&&k.value===`second`&&(k.value=`minute`)}),(0,n.watch)(p,e=>{E.value=e,D.value=null,u(`update:modelValue`,e),u(`change`,e)}),(0,n.watch)(O,e=>{u(`validation-change`,e)});function L(e,t){l.disabled||(D.value=null,d.value[e]=t,(e===`day`||e===`week`)&&_(e))}function R(e){L(k.value,{...P.value,mode:e})}function z(e){L(k.value,{...P.value,...e})}function B(){let{min:e,max:t}=M.value,n=Array.from({length:t-e+1},(t,n)=>e+n);L(k.value,{...P.value,specificValues:n})}function Y(){L(k.value,{...P.value,specificValues:[]})}function X(e){E.value=e,D.value=g(e)}function Z(){l.disabled||Q(E.value.trim())}function Q(e){E.value=e;let t=g(e);D.value=t.valid?null:t,t.valid&&h(e)}function _e(e){l.disabled||Q(e)}function $(){Q(l.modelValue||s)}return a({getValue:()=>p.value,setValue:e=>{Q(e)},reset:$,validate:()=>O.value}),(t,i)=>{let a=r.NTag,o=r.NInput,s=r.NButton,u=r.NRadioButton,f=r.NRadioGroup,m=r.NInputNumber;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:`c-cron`,style:(0,n.normalizeStyle)({height:A.value})},[(0,n.createCommentVNode)(` ═══════ 顶部 ═══════ `),(0,n.createElementVNode)(`div`,te,[(0,n.createCommentVNode)(` 标题行 `),(0,n.createElementVNode)(`div`,ne,[(0,n.createElementVNode)(`div`,re,[(0,n.createVNode)(e.t,{name:`mdi:clock-edit-outline`,size:18}),i[4]||=(0,n.createElementVNode)(`span`,null,`Cron 表达式`,-1)]),(0,n.createVNode)(a,{type:O.value.valid?`success`:`error`,size:`small`,round:``},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:O.value.valid?`mdi:check-circle`:`mdi:alert-circle`},null,8,[`name`])]),default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` `+(0,n.toDisplayString)(O.value.valid?`合法`:`错误`),1)]),_:1},8,[`type`])]),(0,n.createCommentVNode)(` 分段式字段选择器 `),(0,n.createElementVNode)(`div`,ie,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(j.value,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:e.type,type:`button`,class:(0,n.normalizeClass)([`c-cron__segment`,{"c-cron__segment--active":k.value===e.type,"c-cron__segment--wildcard":I.value[e.type]===`*`||I.value[e.type]===`?`}]),"aria-pressed":k.value===e.type,onClick:t=>k.value=e.type},[(0,n.createElementVNode)(`div`,H,(0,n.toDisplayString)(I.value[e.type]),1),(0,n.createElementVNode)(`div`,U,(0,n.toDisplayString)(e.label),1)],10,V))),128))]),(0,n.createCommentVNode)(` 表达式行:输入 + 重置 + 描述 `),(0,n.createElementVNode)(`div`,W,[(0,n.createVNode)(o,{value:E.value,status:O.value.valid?void 0:`error`,placeholder:`秒 分 时 日 月 周`,disabled:l.disabled,font:`mono`,size:`small`,clearable:``,class:`c-cron__expr-input`,"onUpdate:value":X,onBlur:Z,onKeydown:(0,n.withKeys)(Z,[`enter`])},{prefix:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:console`,size:14,style:{opacity:`0.4`}})]),_:1},8,[`value`,`status`,`disabled`]),(0,n.createVNode)(s,{size:`small`,quaternary:``,disabled:l.disabled,onClick:$},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:refresh`})]),_:1},8,[`disabled`]),(0,n.createElementVNode)(`div`,G,[O.value.valid?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,K,(0,n.toDisplayString)((0,n.unref)(w)),1)):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,q,(0,n.toDisplayString)(O.value.message),1))])])]),(0,n.createCommentVNode)(` ═══════ 主内容 ═══════ `),(0,n.createElementVNode)(`div`,J,[(0,n.createCommentVNode)(` 左侧:值网格 `),(0,n.createElementVNode)(`div`,ae,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(j.value,e=>(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createBlock)(T,{key:e.type,"model-value":(0,n.unref)(d)[e.type],meta:e,disabled:l.disabled,"onUpdate:modelValue":t=>L(e.type,t)},null,8,[`model-value`,`meta`,`disabled`,`onUpdate:modelValue`])),[[n.vShow,k.value===e.type]])),128))]),(0,n.createCommentVNode)(` 右侧:控制面板 `),(0,n.createElementVNode)(`div`,oe,[(0,n.createVNode)(f,{value:P.value.mode,disabled:l.disabled,size:`small`,"onUpdate:value":R},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(u,{value:`every`},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` 每`+(0,n.toDisplayString)(M.value.label),1)]),_:1}),k.value===`day`||k.value===`week`?((0,n.openBlock)(),(0,n.createBlock)(u,{key:0,value:`none`},{default:(0,n.withCtx)(()=>[...i[5]||=[(0,n.createTextVNode)(` 不指定 `,-1)]]),_:1})):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createVNode)(u,{value:`range`},{default:(0,n.withCtx)(()=>[...i[6]||=[(0,n.createTextVNode)(`范围`,-1)]]),_:1}),(0,n.createVNode)(u,{value:`step`},{default:(0,n.withCtx)(()=>[...i[7]||=[(0,n.createTextVNode)(`步进`,-1)]]),_:1}),(0,n.createVNode)(u,{value:`specific`},{default:(0,n.withCtx)(()=>[...i[8]||=[(0,n.createTextVNode)(`指定`,-1)]]),_:1})]),_:1},8,[`value`,`disabled`]),(0,n.createCommentVNode)(` 范围配置 `),P.value.mode===`range`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,se,[(0,n.createElementVNode)(`div`,ce,[i[9]||=(0,n.createElementVNode)(`span`,null,`从`,-1),(0,n.createVNode)(m,{value:P.value.rangeStart,min:M.value.min,max:M.value.max,size:`small`,"show-button":!1,disabled:l.disabled,class:`c-cron__config-num`,"onUpdate:value":i[0]||=e=>z({rangeStart:e??M.value.min})},null,8,[`value`,`min`,`max`,`disabled`]),i[10]||=(0,n.createElementVNode)(`span`,null,`到`,-1),(0,n.createVNode)(m,{value:P.value.rangeEnd,min:M.value.min,max:M.value.max,size:`small`,"show-button":!1,disabled:l.disabled,class:`c-cron__config-num`,"onUpdate:value":i[1]||=e=>z({rangeEnd:e??M.value.max})},null,8,[`value`,`min`,`max`,`disabled`])])])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 步进配置 `),P.value.mode===`step`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,le,[(0,n.createElementVNode)(`div`,ue,[i[11]||=(0,n.createElementVNode)(`span`,null,`从第`,-1),(0,n.createVNode)(m,{value:P.value.stepStart,min:M.value.min,max:M.value.max,size:`small`,"show-button":!1,disabled:l.disabled,class:`c-cron__config-num`,"onUpdate:value":i[2]||=e=>z({stepStart:e??M.value.min})},null,8,[`value`,`min`,`max`,`disabled`]),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(M.value.label)+`起,每`,1),(0,n.createVNode)(m,{value:P.value.stepInterval,min:1,max:M.value.max-M.value.min+1,size:`small`,"show-button":!1,disabled:l.disabled,class:`c-cron__config-num`,"onUpdate:value":i[3]||=e=>z({stepInterval:e??1})},null,8,[`value`,`max`,`disabled`]),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(M.value.label)+`执行`,1)])])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 指定快捷操作 `),P.value.mode===`specific`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,de,[(0,n.createElementVNode)(`button`,{type:`button`,disabled:l.disabled,onClick:B},`全选`,8,fe),i[12]||=(0,n.createElementVNode)(`span`,{class:`c-cron__quick-sep`},`·`,-1),(0,n.createElementVNode)(`button`,{type:`button`,disabled:l.disabled,onClick:Y},`清空`,8,pe),P.value.specificValues.length>0?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,me,` 已选 `+(0,n.toDisplayString)(P.value.specificValues.length),1)):(0,n.createCommentVNode)(`v-if`,!0)])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 执行预览 `),l.showPreview?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:3},[i[13]||=(0,n.createElementVNode)(`div`,{class:`c-cron__panel-line`},null,-1),O.value.valid?((0,n.openBlock)(),(0,n.createBlock)(N,{key:0,"next-executions":(0,n.unref)(v),computing:(0,n.unref)(b),count:l.previewCount??5,"format-date":(0,n.unref)(S),"format-week-day":(0,n.unref)(C)},null,8,[`next-executions`,`computing`,`count`,`format-date`,`format-week-day`])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,he,`请先修正表达式`))],64)):(0,n.createCommentVNode)(`v-if`,!0)])]),(0,n.createCommentVNode)(` ═══════ 底部模板 ═══════ `),l.showTemplates?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ge,[(0,n.createVNode)(ee,{templates:(0,n.unref)(c),"current-value":(0,n.unref)(p),disabled:l.disabled,onSelect:_e},null,8,[`templates`,`current-value`,`disabled`])])):(0,n.createCommentVNode)(`v-if`,!0)],4)}}});var X=t.t(Y,[[`__scopeId`,`data-v-f4b0a99d`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
package/dist/C_Cron2.js CHANGED
@@ -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,normalizeClass as d,normalizeStyle as f,onMounted as p,onScopeDispose as m,openBlock as h,ref as g,renderList as _,resolveComponent as v,toDisplayString as y,unref as b,vShow as ee,watch as x,withCtx as S,withDirectives as te,withKeys as ne}from"vue";import{NButton as re,NEmpty as C,NInput as ie,NInputNumber as ae,NRadioButton as oe,NRadioGroup as se,NScrollbar as w,NSpin as T,NTag as ce}from"naive-ui";const E=[{type:`second`,label:`秒`,min:0,max:59},{type:`minute`,label:`分`,min:0,max:59},{type:`hour`,label:`时`,min:0,max:23},{type:`day`,label:`日`,min:1,max:31},{type:`month`,label:`月`,min:1,max:12},{type:`week`,label:`周`,min:1,max:7,valueLabels:{1:`周日`,2:`周一`,3:`周二`,4:`周三`,5:`周四`,6:`周五`,7:`周六`}}],D={mode:`every`,rangeStart:0,rangeEnd:0,stepStart:0,stepInterval:1,specificValues:[]},O={second:{...D,rangeEnd:59},minute:{...D,rangeEnd:59},hour:{...D,rangeEnd:23},day:{...D,rangeStart:1,rangeEnd:31},month:{...D,rangeStart:1,rangeEnd:12},week:{...D,mode:`none`,rangeStart:1,rangeEnd:7}},k=`0 0 0 * * ?`,A=[{label:`每秒执行`,value:`* * * * * ?`,description:`每秒执行一次`,icon:`mdi:timer-sand`},{label:`每分钟执行`,value:`0 * * * * ?`,description:`每分钟第 0 秒执行`,icon:`mdi:clock-outline`},{label:`每小时执行`,value:`0 0 * * * ?`,description:`每小时整点执行`,icon:`mdi:clock-time-twelve-outline`},{label:`每天 0 点`,value:`0 0 0 * * ?`,description:`每天凌晨 00:00 执行`,icon:`mdi:weather-night`},{label:`每天 8:30`,value:`0 30 8 * * ?`,description:`每天早上 08:30 执行`,icon:`mdi:weather-sunny`},{label:`每天 12:00`,value:`0 0 12 * * ?`,description:`每天中午 12:00 执行`,icon:`mdi:food`},{label:`工作日 9:00`,value:`0 0 9 ? * 2-6`,description:`周一至周五 09:00 执行`,icon:`mdi:briefcase-outline`},{label:`每周一 0 点`,value:`0 0 0 ? * 2`,description:`每周一凌晨 00:00 执行`,icon:`mdi:calendar-week`},{label:`每月 1 号 0 点`,value:`0 0 0 1 * ?`,description:`每月 1 号凌晨 00:00 执行`,icon:`mdi:calendar-month`},{label:`每 5 分钟`,value:`0 0/5 * * * ?`,description:`每隔 5 分钟执行一次`,icon:`mdi:timer-5`},{label:`每 30 分钟`,value:`0 0/30 * * * ?`,description:`每隔 30 分钟执行一次`,icon:`mdi:timer-30`},{label:`每 2 小时`,value:`0 0 0/2 * * ?`,description:`每隔 2 小时执行一次`,icon:`mdi:timer-2`}],j={1:`一月`,2:`二月`,3:`三月`,4:`四月`,5:`五月`,6:`六月`,7:`七月`,8:`八月`,9:`九月`,10:`十月`,11:`十一月`,12:`十二月`},M={1:`周日`,2:`周一`,3:`周二`,4:`周三`,5:`周四`,6:`周五`,7:`周六`},N=[`second`,`minute`,`hour`,`day`,`month`,`week`];function P(){let e=structuredClone(O);for(let t of N)e[t].specificValues=[];let t=g(e);function n(e){switch(e.mode){case`every`:return`*`;case`range`:return`${e.rangeStart}-${e.rangeEnd}`;case`step`:return`${e.stepStart}/${e.stepInterval}`;case`specific`:return e.specificValues.length>0?[...e.specificValues].sort((e,t)=>e-t).join(`,`):`*`;case`none`:return`?`;default:return`*`}}function i(e,t,n={}){return{mode:t,rangeStart:e.min,rangeEnd:e.max,stepStart:e.min,stepInterval:1,specificValues:[],...n}}function a(e,t){let[n,r]=e.split(`/`).map(Number);return i(t,`step`,{stepStart:isNaN(n)?t.min:n,stepInterval:isNaN(r)?1:r})}function o(e,t){let[n,r]=e.split(`-`).map(Number);return i(t,`range`,{rangeStart:isNaN(n)?t.min:n,rangeEnd:isNaN(r)?t.max:r})}function s(e,t){let n=E.find(e=>e.type===t);if(e===`?`)return i(n,`none`);if(e===`*`)return i(n,`every`);if(e.includes(`/`))return a(e,n);if(e.includes(`-`)&&!e.includes(`,`))return o(e,n);let r=e.split(`,`).map(Number).filter(e=>!isNaN(e));return r.length>0?i(n,`specific`,{specificValues:r}):i(n,`every`)}function c(){return N.map(e=>n(t.value[e])).join(` `)}function l(e){if(!d(e).valid)return!1;let n=e.trim().split(/\s+/);return N.forEach((e,r)=>{t.value[e]=s(n[r],e)}),!0}function u(e){e===`day`?t.value.day.mode!==`none`&&(t.value.week={...t.value.week,mode:`none`}):t.value.week.mode!==`none`&&(t.value.day={...t.value.day,mode:`none`})}function d(e){let t=(e??c()).trim().split(/\s+/);if(t.length!==6)return{valid:!1,message:`表达式应包含 6 个字段,当前为 ${t.length} 个`};let n=t[3],r=t[5];if(n!==`?`&&r!==`?`)return{valid:!1,message:`日和周不能同时指定,其中一个必须为 ?`,field:`day`};if(n===`?`&&r===`?`)return{valid:!1,message:`日和周不能同时为 ?,至少指定一个`,field:`day`};for(let e=0;e<N.length;e++){let n=N[e],r=t[e],i=h(r,E.find(e=>e.type===n));if(!i.valid)return{...i,field:n}}return{valid:!0,message:`表达式合法`}}function f(e,t){let[n,r]=e.split(`/`),i=n===`*`?t.min:Number(n),a=Number(r);return!Number.isInteger(i)||!Number.isInteger(a)?{valid:!1,message:`${t.label}字段步进格式错误`}:i<t.min||i>t.max?{valid:!1,message:`${t.label}字段步进起始值超出范围 (${t.min}-${t.max})`}:a<1?{valid:!1,message:`${t.label}字段步进间隔必须大于 0`}:{valid:!0,message:``}}function p(e,t){let[n,r]=e.split(`-`).map(Number);return!Number.isInteger(n)||!Number.isInteger(r)?{valid:!1,message:`${t.label}字段范围格式错误`}:n<t.min||r>t.max?{valid:!1,message:`${t.label}字段范围超出 (${t.min}-${t.max})`}:n>r?{valid:!1,message:`${t.label}字段范围起始不能大于结束`}:{valid:!0,message:``}}function m(e,t){let n=e.split(`,`).map(Number);return n.some(e=>!Number.isInteger(e))?{valid:!1,message:`${t.label}字段包含非数字字符`}:n.some(e=>e<t.min||e>t.max)?{valid:!1,message:`${t.label}字段值超出范围 (${t.min}-${t.max})`}:{valid:!0,message:``}}function h(e,t){return e===`*`?{valid:!0,message:``}:e===`?`?t.type===`day`||t.type===`week`?{valid:!0,message:``}:{valid:!1,message:`${t.label}字段不能使用 ?`}:/^(\*|\d+)\/\d+$/.test(e)?f(e,t):/^\d+-\d+$/.test(e)?p(e,t):/^\d+(,\d+)*$/.test(e)?m(e,t):{valid:!1,message:`${t.label}字段格式错误`}}return{cronValue:t,expression:r(()=>c()),validation:r(()=>d()),parse:l,generate:c,validate:d,handleDayWeekExclusion:u}}function F(e,t,n){if(t===`*`||t===`?`)return!0;if(t.includes(`/`)){let[r,i]=t.split(`/`),a=r===`*`?n:Number(r),o=Number(i);return o>0&&e>=a&&(e-a)%o===0}if(t.includes(`-`)){let[n,r]=t.split(`-`).map(Number);return e>=n&&e<=r}return t.split(`,`).some(t=>Number(t)===e)}function le(e,t){let[,n,r,i,a,o]=t;return F(e.getMinutes(),n,0)&&F(e.getHours(),r,0)&&F(e.getDate(),i,1)&&F(e.getMonth()+1,a,1)&&F(e.getDay()+1,o,1)}function ue(e,t,n,r,i){for(let a of n){let n=new Date(t.getTime()+a*1e3);if(!(n.getTime()<=r.getTime())&&(e.push(n),e.length>=i))return!0}return!1}function de(e){return Number.isFinite(e)?Math.min(100,Math.max(1,Math.trunc(e))):10}function I(e){return e>0&&e%1e4==0}async function L(e,t,n=new Date,r=()=>!1){let i=e.trim().split(/\s+/);if(i.length!==6)return[];let a=Array.from({length:60},(e,t)=>t).filter(e=>F(e,i[0],0));if(a.length===0)return[];let o=de(t),s=[],c=new Date(n);c.setSeconds(0,0);for(let e=0;e<527040;e++){if(r())return[];if(le(c,i)&&ue(s,c,a,n,o))return s;c.setTime(c.getTime()+6e4),I(e)&&await new Promise(e=>setTimeout(e,0))}return s}function R(e,t,n){let r=g([]),i=g(!1),a=0,o=null;x([e,n,t],()=>{a+=1;let s=a;if(o&&clearTimeout(o),!t.value.valid){r.value=[],i.value=!1,o=null;return}i.value=!0,o=setTimeout(async()=>{let t=await L(e.value,n.value,new Date,()=>s!==a);s===a&&(r.value=t,i.value=!1,o=null)},0)},{immediate:!0}),m(()=>{a+=1,o&&clearTimeout(o)});function s(e){let t=e=>String(e).padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())} ${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}`}function c(e){return[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`][e.getDay()]}return{nextExecutions:r,computing:i,formatDate:s,formatWeekDay:c}}function z(e){return M[Number(e)]||`周${e}`}function B(e,t){let n=r(()=>t.value.valid?i(e.value):`表达式不合法`);function i(e){let t=e.trim().split(/\s+/);if(t.length!==6)return`表达式格式错误`;let[n,r,i,d,f,p]=t,m=[];return m.push(l(f)),p===`?`?m.push(c(d)):m.push(u(p)),m.push(s(i)),m.push(o(r)),m.push(a(n)),m.filter(Boolean).join(` `)+` 执行`}function a(e){return e===`0`?``:e===`*`?`每秒`:d(e,`秒`)}function o(e){return e===`*`?`每分钟`:e===`0`?``:d(e,`分`)}function s(e){return e===`*`?`每小时`:/^\d+$/.test(e)?`${e.padStart(2,`0`)}:`:d(e,`时`)}function c(e){if(e===`*`||e===`?`)return`每天`;if(/^\d+$/.test(e))return`每月 ${e} 号`;if(e.includes(`/`)){let[t,n]=e.split(`/`);return`从 ${t} 号开始每 ${n} 天`}if(e.includes(`-`)){let[t,n]=e.split(`-`);return`${t} 号到 ${n} 号`}return e.includes(`,`)?`每月 ${e} 号`:``}function l(e){if(e===`*`)return``;if(/^\d+$/.test(e)){let t=Number(e);return j[t]?`${j[t]}`:`${t} 月`}if(e.includes(`/`)){let[t,n]=e.split(`/`);return`从 ${t} 月开始每 ${n} 个月`}if(e.includes(`-`)){let[t,n]=e.split(`-`);return`${t} 月到 ${n} 月`}return e.includes(`,`)?e.split(`,`).map(e=>j[Number(e)]||`${e}月`).join(`、`):``}function u(e){return e===`*`||e===`?`?``:/^\d+$/.test(e)?`每${z(e)}`:e.includes(`/`)?`从${z(e.split(`/`)[0])}开始每 ${e.split(`/`)[1]} 天`:e.includes(`-`)?`${z(e.split(`-`)[0])}到${z(e.split(`-`)[1])}`:e.includes(`,`)?`每${e.split(`,`).map(z).join(`、`)}`:``}function d(e,t){if(e.includes(`/`)){let[n,r]=e.split(`/`);return`${n===`*`||n===`0`?``:`从第 ${n} ${t}开始`}每 ${r} ${t}`}if(e.includes(`-`)){let[n,r]=e.split(`-`);return`${n} ${t}到 ${r} ${t}`}return e.includes(`,`)?`第 ${e} ${t}`:/^\d+$/.test(e)?`${e.padStart(2,`0`)}`:``}return{description:n}}const V={class:`cron-field-editor`},H=[`disabled`,`aria-pressed`,`onClick`];var fe=t(u({__name:`CronFieldEditor`,props:{modelValue:{},meta:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let i=e,a=t,c=r(()=>{switch(i.meta.type){case`second`:case`minute`:return 10;case`hour`:return 12;case`day`:return 7;case`month`:return 6;case`week`:return 7;default:return 10}}),l=r(()=>{let e=[];for(let t=i.meta.min;t<=i.meta.max;t++)e.push({value:t,label:i.meta.valueLabels?.[t]??String(t)});return e}),u=r(()=>{let{modelValue:e,meta:t}=i,n=new Set;switch(e.mode){case`every`:for(let e=t.min;e<=t.max;e++)n.add(e);break;case`none`:break;case`range`:for(let t=e.rangeStart;t<=e.rangeEnd;t++)n.add(t);break;case`step`:for(let r=e.stepStart;r<=t.max;r+=Math.max(1,e.stepInterval))n.add(r);break;case`specific`:e.specificValues.forEach(e=>n.add(e));break}return n});function p(e){if(i.disabled||i.modelValue.mode!==`specific`)return;let t=[...i.modelValue.specificValues],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),a(`update:modelValue`,{...i.modelValue,specificValues:t})}return(t,r)=>(h(),o(`div`,V,[s(`div`,{class:`cron-field-editor__grid`,style:f({"--cols":c.value})},[(h(!0),o(n,null,_(l.value,t=>(h(),o(`button`,{key:t.value,type:`button`,class:d([`cron-field-editor__cell`,{"cron-field-editor__cell--on":u.value.has(t.value),"cron-field-editor__cell--pick":e.modelValue.mode===`specific`}]),disabled:e.disabled||e.modelValue.mode!==`specific`,"aria-pressed":e.modelValue.mode===`specific`?u.value.has(t.value):void 0,onClick:e=>p(t.value)},y(t.label),11,H))),128))],4)]))}}),[[`__scopeId`,`data-v-60c57fc6`]]);const U={class:`cron-preview`},W={class:`cron-preview__header`},G={key:0,class:`cron-preview__list`},K={class:`cron-preview__idx`},q={class:`cron-preview__date`},J={class:`cron-preview__week`};var pe=t(u({__name:`CronPreview`,props:{nextExecutions:{},computing:{type:Boolean},count:{},formatDate:{type:Function},formatWeekDay:{type:Function}},setup(t){return(r,c)=>{let u=T,d=C,f=w;return h(),o(`div`,U,[s(`div`,W,[l(e,{name:`mdi:calendar-clock`,size:15}),c[0]||=s(`span`,null,`未来执行`,-1),t.computing?(h(),i(u,{key:0,size:14})):a(`v-if`,!0)]),l(f,{style:{"max-height":`220px`}},{default:S(()=>[t.nextExecutions.length>0?(h(),o(`div`,G,[(h(!0),o(n,null,_(t.nextExecutions,(e,n)=>(h(),o(`div`,{key:n,class:`cron-preview__item`},[s(`span`,K,y(n+1),1),s(`span`,q,y(t.formatDate(e)),1),s(`span`,J,y(t.formatWeekDay(e)),1)]))),128))])):(h(),i(d,{key:1,size:`small`,description:`暂无匹配`}))]),_:1})])}}}),[[`__scopeId`,`data-v-a695bb32`]]);const Y={class:`cron-templates`},X={class:`cron-templates__header`},me={class:`cron-templates__cards`},he=[`disabled`,`aria-pressed`,`onClick`],ge={class:`cron-templates__card-name`},Z={class:`cron-templates__card-expr`};var _e=t(u({__name:`CronTemplates`,props:{templates:{},currentValue:{},disabled:{type:Boolean}},emits:[`select`],setup(t){return(r,i)=>(h(),o(`div`,Y,[s(`div`,X,[l(e,{name:`mdi:lightning-bolt`,size:15}),i[0]||=s(`span`,null,`常用模板`,-1)]),s(`div`,me,[(h(!0),o(n,null,_(t.templates,e=>(h(),o(`button`,{key:e.value,type:`button`,disabled:t.disabled,"aria-pressed":e.value===t.currentValue,class:d([`cron-templates__card`,{"cron-templates__card--active":e.value===t.currentValue}]),onClick:t=>r.$emit(`select`,e.value)},[s(`div`,ge,y(e.label),1),s(`div`,Z,y(e.value),1)],10,he))),128))])]))}}),[[`__scopeId`,`data-v-241e79f6`]]);const ve={class:`c-cron__header`},ye={class:`c-cron__title-row`},be={class:`c-cron__title`},xe={class:`c-cron__segments`},Se=[`aria-pressed`,`onClick`],Ce={class:`c-cron__segment-value`},we={class:`c-cron__segment-label`},Te={class:`c-cron__expr-row`},Ee={class:`c-cron__expr-desc`},De={key:0,class:`c-cron__description`},Oe={key:1,class:`c-cron__error`},ke={class:`c-cron__body`},Ae={class:`c-cron__main`},je={class:`c-cron__panel`},Me={key:0,class:`c-cron__config`},Ne={class:`c-cron__config-row`},Pe={key:1,class:`c-cron__config`},Fe={class:`c-cron__config-row`},Ie={key:2,class:`c-cron__quick`},Le=[`disabled`],Re=[`disabled`],ze={key:0,class:`c-cron__quick-count`},Be={key:1,class:`c-cron__error`},Ve={key:0,class:`c-cron__footer`};var Q=t(u({name:`C_Cron`,__name:`index`,props:{modelValue:{default:k},disabled:{type:Boolean,default:!1},previewCount:{default:10},showTemplates:{type:Boolean,default:!0},showPreview:{type:Boolean,default:!0},showSecond:{type:Boolean,default:!0},height:{default:`auto`}},emits:[`update:modelValue`,`change`,`validation-change`],setup(t,{expose:u,emit:m}){let v=t,C=m,{cronValue:w,expression:T,validation:D,parse:O,validate:j,handleDayWeekExclusion:M}=P(),{nextExecutions:N,computing:F,formatDate:le,formatWeekDay:ue}=R(T,D,r(()=>v.previewCount??10)),{description:de}=B(T,D),I=g(v.modelValue||k),L=g(null),z=r(()=>L.value??D.value),V=g(v.showSecond?`second`:`minute`),H=r(()=>typeof v.height==`number`?`${v.height}px`:v.height),U=r(()=>v.showSecond?E:E.filter(e=>e.type!==`second`)),W=r(()=>E.find(e=>e.type===V.value)),G=r(()=>w.value[V.value]);function K(e){switch(e.mode){case`every`:return`*`;case`none`:return`?`;case`range`:return`${e.rangeStart}-${e.rangeEnd}`;case`step`:return`${e.stepStart}/${e.stepInterval}`;case`specific`:return e.specificValues.length>0?[...e.specificValues].sort((e,t)=>e-t).join(`,`):`*`;default:return`*`}}let q=r(()=>{let e={};for(let t of E)e[t.type]=K(w.value[t.type]);return e});p(()=>{Q(v.modelValue||k)}),x(()=>v.modelValue,e=>{e!==T.value&&Q(e||k)}),x(()=>v.showSecond,e=>{!e&&V.value===`second`&&(V.value=`minute`)}),x(T,e=>{I.value=e,L.value=null,C(`update:modelValue`,e),C(`change`,e)}),x(z,e=>{C(`validation-change`,e)});function J(e,t){v.disabled||(L.value=null,w.value[e]=t,(e===`day`||e===`week`)&&M(e))}function Y(e){J(V.value,{...G.value,mode:e})}function X(e){J(V.value,{...G.value,...e})}function me(){let{min:e,max:t}=W.value,n=Array.from({length:t-e+1},(t,n)=>e+n);J(V.value,{...G.value,specificValues:n})}function he(){J(V.value,{...G.value,specificValues:[]})}function ge(e){I.value=e,L.value=j(e)}function Z(){v.disabled||Q(I.value.trim())}function Q(e){I.value=e;let t=j(e);L.value=t.valid?null:t,t.valid&&O(e)}function He(e){v.disabled||Q(e)}function $(){Q(v.modelValue||k)}return u({getValue:()=>T.value,setValue:e=>{Q(e)},reset:$,validate:()=>z.value}),(t,r)=>{let u=ce,p=ie,m=re,g=oe,x=se,C=ae;return h(),o(`div`,{class:`c-cron`,style:f({height:H.value})},[a(` ═══════ 顶部 ═══════ `),s(`div`,ve,[a(` 标题行 `),s(`div`,ye,[s(`div`,be,[l(e,{name:`mdi:clock-edit-outline`,size:18}),r[4]||=s(`span`,null,`Cron 表达式`,-1)]),l(u,{type:z.value.valid?`success`:`error`,size:`small`,round:``},{icon:S(()=>[l(e,{name:z.value.valid?`mdi:check-circle`:`mdi:alert-circle`},null,8,[`name`])]),default:S(()=>[c(` `+y(z.value.valid?`合法`:`错误`),1)]),_:1},8,[`type`])]),a(` 分段式字段选择器 `),s(`div`,xe,[(h(!0),o(n,null,_(U.value,e=>(h(),o(`button`,{key:e.type,type:`button`,class:d([`c-cron__segment`,{"c-cron__segment--active":V.value===e.type,"c-cron__segment--wildcard":q.value[e.type]===`*`||q.value[e.type]===`?`}]),"aria-pressed":V.value===e.type,onClick:t=>V.value=e.type},[s(`div`,Ce,y(q.value[e.type]),1),s(`div`,we,y(e.label),1)],10,Se))),128))]),a(` 表达式行:输入 + 重置 + 描述 `),s(`div`,Te,[l(p,{value:I.value,status:z.value.valid?void 0:`error`,placeholder:`秒 分 时 日 月 周`,disabled:v.disabled,font:`mono`,size:`small`,clearable:``,class:`c-cron__expr-input`,"onUpdate:value":ge,onBlur:Z,onKeydown:ne(Z,[`enter`])},{prefix:S(()=>[l(e,{name:`mdi:console`,size:14,style:{opacity:`0.4`}})]),_:1},8,[`value`,`status`,`disabled`]),l(m,{size:`small`,quaternary:``,disabled:v.disabled,onClick:$},{icon:S(()=>[l(e,{name:`mdi:refresh`})]),_:1},8,[`disabled`]),s(`div`,Ee,[z.value.valid?(h(),o(`span`,De,y(b(de)),1)):(h(),o(`span`,Oe,y(z.value.message),1))])])]),a(` ═══════ 主内容 ═══════ `),s(`div`,ke,[a(` 左侧:值网格 `),s(`div`,Ae,[(h(!0),o(n,null,_(U.value,e=>te((h(),i(fe,{key:e.type,"model-value":b(w)[e.type],meta:e,disabled:v.disabled,"onUpdate:modelValue":t=>J(e.type,t)},null,8,[`model-value`,`meta`,`disabled`,`onUpdate:modelValue`])),[[ee,V.value===e.type]])),128))]),a(` 右侧:控制面板 `),s(`div`,je,[l(x,{value:G.value.mode,disabled:v.disabled,size:`small`,"onUpdate:value":Y},{default:S(()=>[l(g,{value:`every`},{default:S(()=>[c(` 每`+y(W.value.label),1)]),_:1}),V.value===`day`||V.value===`week`?(h(),i(g,{key:0,value:`none`},{default:S(()=>[...r[5]||=[c(` 不指定 `,-1)]]),_:1})):a(`v-if`,!0),l(g,{value:`range`},{default:S(()=>[...r[6]||=[c(`范围`,-1)]]),_:1}),l(g,{value:`step`},{default:S(()=>[...r[7]||=[c(`步进`,-1)]]),_:1}),l(g,{value:`specific`},{default:S(()=>[...r[8]||=[c(`指定`,-1)]]),_:1})]),_:1},8,[`value`,`disabled`]),a(` 范围配置 `),G.value.mode===`range`?(h(),o(`div`,Me,[s(`div`,Ne,[r[9]||=s(`span`,null,`从`,-1),l(C,{value:G.value.rangeStart,min:W.value.min,max:W.value.max,size:`small`,"show-button":!1,disabled:v.disabled,class:`c-cron__config-num`,"onUpdate:value":r[0]||=e=>X({rangeStart:e??W.value.min})},null,8,[`value`,`min`,`max`,`disabled`]),r[10]||=s(`span`,null,`到`,-1),l(C,{value:G.value.rangeEnd,min:W.value.min,max:W.value.max,size:`small`,"show-button":!1,disabled:v.disabled,class:`c-cron__config-num`,"onUpdate:value":r[1]||=e=>X({rangeEnd:e??W.value.max})},null,8,[`value`,`min`,`max`,`disabled`])])])):a(`v-if`,!0),a(` 步进配置 `),G.value.mode===`step`?(h(),o(`div`,Pe,[s(`div`,Fe,[r[11]||=s(`span`,null,`从第`,-1),l(C,{value:G.value.stepStart,min:W.value.min,max:W.value.max,size:`small`,"show-button":!1,disabled:v.disabled,class:`c-cron__config-num`,"onUpdate:value":r[2]||=e=>X({stepStart:e??W.value.min})},null,8,[`value`,`min`,`max`,`disabled`]),s(`span`,null,y(W.value.label)+`起,每`,1),l(C,{value:G.value.stepInterval,min:1,max:W.value.max-W.value.min+1,size:`small`,"show-button":!1,disabled:v.disabled,class:`c-cron__config-num`,"onUpdate:value":r[3]||=e=>X({stepInterval:e??1})},null,8,[`value`,`max`,`disabled`]),s(`span`,null,y(W.value.label)+`执行`,1)])])):a(`v-if`,!0),a(` 指定快捷操作 `),G.value.mode===`specific`?(h(),o(`div`,Ie,[s(`button`,{type:`button`,disabled:v.disabled,onClick:me},`全选`,8,Le),r[12]||=s(`span`,{class:`c-cron__quick-sep`},`·`,-1),s(`button`,{type:`button`,disabled:v.disabled,onClick:he},`清空`,8,Re),G.value.specificValues.length>0?(h(),o(`span`,ze,` 已选 `+y(G.value.specificValues.length),1)):a(`v-if`,!0)])):a(`v-if`,!0),a(` 执行预览 `),v.showPreview?(h(),o(n,{key:3},[r[13]||=s(`div`,{class:`c-cron__panel-line`},null,-1),z.value.valid?(h(),i(pe,{key:0,"next-executions":b(N),computing:b(F),count:v.previewCount??5,"format-date":b(le),"format-week-day":b(ue)},null,8,[`next-executions`,`computing`,`count`,`format-date`,`format-week-day`])):(h(),o(`div`,Be,`请先修正表达式`))],64)):a(`v-if`,!0)])]),a(` ═══════ 底部模板 ═══════ `),v.showTemplates?(h(),o(`div`,Ve,[l(_e,{templates:b(A),"current-value":b(T),disabled:v.disabled,onSelect:He},null,8,[`templates`,`current-value`,`disabled`])])):a(`v-if`,!0)],4)}}}),[[`__scopeId`,`data-v-2594f81f`]]);export{E as a,O as c,M as d,P as i,D as l,B as n,A as o,R as r,k as s,Q as t,j as u};
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,normalizeClass as d,normalizeStyle as f,onMounted as p,onScopeDispose as m,openBlock as h,ref as g,renderList as _,resolveComponent as v,toDisplayString as y,unref as b,vShow as ee,watch as x,withCtx as S,withDirectives as te,withKeys as ne}from"vue";import{NButton as re,NEmpty as C,NInput as ie,NInputNumber as ae,NRadioButton as oe,NRadioGroup as se,NScrollbar as w,NSpin as T,NTag as ce}from"naive-ui";const E=[{type:`second`,label:`秒`,min:0,max:59},{type:`minute`,label:`分`,min:0,max:59},{type:`hour`,label:`时`,min:0,max:23},{type:`day`,label:`日`,min:1,max:31},{type:`month`,label:`月`,min:1,max:12},{type:`week`,label:`周`,min:1,max:7,valueLabels:{1:`周日`,2:`周一`,3:`周二`,4:`周三`,5:`周四`,6:`周五`,7:`周六`}}],D={mode:`every`,rangeStart:0,rangeEnd:0,stepStart:0,stepInterval:1,specificValues:[]},O={second:{...D,rangeEnd:59},minute:{...D,rangeEnd:59},hour:{...D,rangeEnd:23},day:{...D,rangeStart:1,rangeEnd:31},month:{...D,rangeStart:1,rangeEnd:12},week:{...D,mode:`none`,rangeStart:1,rangeEnd:7}},k=`0 0 0 * * ?`,A=[{label:`每秒执行`,value:`* * * * * ?`,description:`每秒执行一次`,icon:`mdi:timer-sand`},{label:`每分钟执行`,value:`0 * * * * ?`,description:`每分钟第 0 秒执行`,icon:`mdi:clock-outline`},{label:`每小时执行`,value:`0 0 * * * ?`,description:`每小时整点执行`,icon:`mdi:clock-time-twelve-outline`},{label:`每天 0 点`,value:`0 0 0 * * ?`,description:`每天凌晨 00:00 执行`,icon:`mdi:weather-night`},{label:`每天 8:30`,value:`0 30 8 * * ?`,description:`每天早上 08:30 执行`,icon:`mdi:weather-sunny`},{label:`每天 12:00`,value:`0 0 12 * * ?`,description:`每天中午 12:00 执行`,icon:`mdi:food`},{label:`工作日 9:00`,value:`0 0 9 ? * 2-6`,description:`周一至周五 09:00 执行`,icon:`mdi:briefcase-outline`},{label:`每周一 0 点`,value:`0 0 0 ? * 2`,description:`每周一凌晨 00:00 执行`,icon:`mdi:calendar-week`},{label:`每月 1 号 0 点`,value:`0 0 0 1 * ?`,description:`每月 1 号凌晨 00:00 执行`,icon:`mdi:calendar-month`},{label:`每 5 分钟`,value:`0 0/5 * * * ?`,description:`每隔 5 分钟执行一次`,icon:`mdi:timer-5`},{label:`每 30 分钟`,value:`0 0/30 * * * ?`,description:`每隔 30 分钟执行一次`,icon:`mdi:timer-30`},{label:`每 2 小时`,value:`0 0 0/2 * * ?`,description:`每隔 2 小时执行一次`,icon:`mdi:timer-2`}],j={1:`一月`,2:`二月`,3:`三月`,4:`四月`,5:`五月`,6:`六月`,7:`七月`,8:`八月`,9:`九月`,10:`十月`,11:`十一月`,12:`十二月`},M={1:`周日`,2:`周一`,3:`周二`,4:`周三`,5:`周四`,6:`周五`,7:`周六`},N=[`second`,`minute`,`hour`,`day`,`month`,`week`];function P(){let e=structuredClone(O);for(let t of N)e[t].specificValues=[];let t=g(e);function n(e){switch(e.mode){case`every`:return`*`;case`range`:return`${e.rangeStart}-${e.rangeEnd}`;case`step`:return`${e.stepStart}/${e.stepInterval}`;case`specific`:return e.specificValues.length>0?[...e.specificValues].sort((e,t)=>e-t).join(`,`):`*`;case`none`:return`?`;default:return`*`}}function i(e,t,n={}){return{mode:t,rangeStart:e.min,rangeEnd:e.max,stepStart:e.min,stepInterval:1,specificValues:[],...n}}function a(e,t){let[n,r]=e.split(`/`).map(Number);return i(t,`step`,{stepStart:isNaN(n)?t.min:n,stepInterval:isNaN(r)?1:r})}function o(e,t){let[n,r]=e.split(`-`).map(Number);return i(t,`range`,{rangeStart:isNaN(n)?t.min:n,rangeEnd:isNaN(r)?t.max:r})}function s(e,t){let n=E.find(e=>e.type===t);if(e===`?`)return i(n,`none`);if(e===`*`)return i(n,`every`);if(e.includes(`/`))return a(e,n);if(e.includes(`-`)&&!e.includes(`,`))return o(e,n);let r=e.split(`,`).map(Number).filter(e=>!isNaN(e));return r.length>0?i(n,`specific`,{specificValues:r}):i(n,`every`)}function c(){return N.map(e=>n(t.value[e])).join(` `)}function l(e){if(!d(e).valid)return!1;let n=e.trim().split(/\s+/);return N.forEach((e,r)=>{t.value[e]=s(n[r],e)}),!0}function u(e){e===`day`?t.value.day.mode!==`none`&&(t.value.week={...t.value.week,mode:`none`}):t.value.week.mode!==`none`&&(t.value.day={...t.value.day,mode:`none`})}function d(e){let t=(e??c()).trim().split(/\s+/);if(t.length!==6)return{valid:!1,message:`表达式应包含 6 个字段,当前为 ${t.length} 个`};let n=t[3],r=t[5];if(n!==`?`&&r!==`?`)return{valid:!1,message:`日和周不能同时指定,其中一个必须为 ?`,field:`day`};if(n===`?`&&r===`?`)return{valid:!1,message:`日和周不能同时为 ?,至少指定一个`,field:`day`};for(let e=0;e<N.length;e++){let n=N[e],r=t[e],i=h(r,E.find(e=>e.type===n));if(!i.valid)return{...i,field:n}}return{valid:!0,message:`表达式合法`}}function f(e,t){let[n,r]=e.split(`/`),i=n===`*`?t.min:Number(n),a=Number(r);return!Number.isInteger(i)||!Number.isInteger(a)?{valid:!1,message:`${t.label}字段步进格式错误`}:i<t.min||i>t.max?{valid:!1,message:`${t.label}字段步进起始值超出范围 (${t.min}-${t.max})`}:a<1?{valid:!1,message:`${t.label}字段步进间隔必须大于 0`}:{valid:!0,message:``}}function p(e,t){let[n,r]=e.split(`-`).map(Number);return!Number.isInteger(n)||!Number.isInteger(r)?{valid:!1,message:`${t.label}字段范围格式错误`}:n<t.min||r>t.max?{valid:!1,message:`${t.label}字段范围超出 (${t.min}-${t.max})`}:n>r?{valid:!1,message:`${t.label}字段范围起始不能大于结束`}:{valid:!0,message:``}}function m(e,t){let n=e.split(`,`).map(Number);return n.some(e=>!Number.isInteger(e))?{valid:!1,message:`${t.label}字段包含非数字字符`}:n.some(e=>e<t.min||e>t.max)?{valid:!1,message:`${t.label}字段值超出范围 (${t.min}-${t.max})`}:{valid:!0,message:``}}function h(e,t){return e===`*`?{valid:!0,message:``}:e===`?`?t.type===`day`||t.type===`week`?{valid:!0,message:``}:{valid:!1,message:`${t.label}字段不能使用 ?`}:/^(\*|\d+)\/\d+$/.test(e)?f(e,t):/^\d+-\d+$/.test(e)?p(e,t):/^\d+(,\d+)*$/.test(e)?m(e,t):{valid:!1,message:`${t.label}字段格式错误`}}return{cronValue:t,expression:r(()=>c()),validation:r(()=>d()),parse:l,generate:c,validate:d,handleDayWeekExclusion:u}}function F(e,t,n){if(t===`*`||t===`?`)return!0;if(t.includes(`/`)){let[r,i]=t.split(`/`),a=r===`*`?n:Number(r),o=Number(i);return o>0&&e>=a&&(e-a)%o===0}if(t.includes(`-`)){let[n,r]=t.split(`-`).map(Number);return e>=n&&e<=r}return t.split(`,`).some(t=>Number(t)===e)}function le(e,t){let[,n,r,i,a,o]=t;return F(e.getMinutes(),n,0)&&F(e.getHours(),r,0)&&F(e.getDate(),i,1)&&F(e.getMonth()+1,a,1)&&F(e.getDay()+1,o,1)}function ue(e,t,n,r,i){for(let a of n){let n=new Date(t.getTime()+a*1e3);if(!(n.getTime()<=r.getTime())&&(e.push(n),e.length>=i))return!0}return!1}function de(e){return Number.isFinite(e)?Math.min(100,Math.max(1,Math.trunc(e))):10}function I(e){return e>0&&e%1e4==0}async function L(e,t,n=new Date,r=()=>!1){let i=e.trim().split(/\s+/);if(i.length!==6)return[];let a=Array.from({length:60},(e,t)=>t).filter(e=>F(e,i[0],0));if(a.length===0)return[];let o=de(t),s=[],c=new Date(n);c.setSeconds(0,0);for(let e=0;e<527040;e++){if(r())return[];if(le(c,i)&&ue(s,c,a,n,o))return s;c.setTime(c.getTime()+6e4),I(e)&&await new Promise(e=>setTimeout(e,0))}return s}function R(e,t,n){let r=g([]),i=g(!1),a=0,o=null;x([e,n,t],()=>{a+=1;let s=a;if(o&&clearTimeout(o),!t.value.valid){r.value=[],i.value=!1,o=null;return}i.value=!0,o=setTimeout(async()=>{let t=await L(e.value,n.value,new Date,()=>s!==a);s===a&&(r.value=t,i.value=!1,o=null)},0)},{immediate:!0}),m(()=>{a+=1,o&&clearTimeout(o)});function s(e){let t=e=>String(e).padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())} ${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}`}function c(e){return[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`][e.getDay()]}return{nextExecutions:r,computing:i,formatDate:s,formatWeekDay:c}}function z(e){return M[Number(e)]||`周${e}`}function B(e,t){let n=r(()=>t.value.valid?i(e.value):`表达式不合法`);function i(e){let t=e.trim().split(/\s+/);if(t.length!==6)return`表达式格式错误`;let[n,r,i,d,f,p]=t,m=[];return m.push(l(f)),p===`?`?m.push(c(d)):m.push(u(p)),m.push(s(i)),m.push(o(r)),m.push(a(n)),m.filter(Boolean).join(` `)+` 执行`}function a(e){return e===`0`?``:e===`*`?`每秒`:d(e,`秒`)}function o(e){return e===`*`?`每分钟`:e===`0`?``:d(e,`分`)}function s(e){return e===`*`?`每小时`:/^\d+$/.test(e)?`${e.padStart(2,`0`)}:`:d(e,`时`)}function c(e){if(e===`*`||e===`?`)return`每天`;if(/^\d+$/.test(e))return`每月 ${e} 号`;if(e.includes(`/`)){let[t,n]=e.split(`/`);return`从 ${t} 号开始每 ${n} 天`}if(e.includes(`-`)){let[t,n]=e.split(`-`);return`${t} 号到 ${n} 号`}return e.includes(`,`)?`每月 ${e} 号`:``}function l(e){if(e===`*`)return``;if(/^\d+$/.test(e)){let t=Number(e);return j[t]?`${j[t]}`:`${t} 月`}if(e.includes(`/`)){let[t,n]=e.split(`/`);return`从 ${t} 月开始每 ${n} 个月`}if(e.includes(`-`)){let[t,n]=e.split(`-`);return`${t} 月到 ${n} 月`}return e.includes(`,`)?e.split(`,`).map(e=>j[Number(e)]||`${e}月`).join(`、`):``}function u(e){return e===`*`||e===`?`?``:/^\d+$/.test(e)?`每${z(e)}`:e.includes(`/`)?`从${z(e.split(`/`)[0])}开始每 ${e.split(`/`)[1]} 天`:e.includes(`-`)?`${z(e.split(`-`)[0])}到${z(e.split(`-`)[1])}`:e.includes(`,`)?`每${e.split(`,`).map(z).join(`、`)}`:``}function d(e,t){if(e.includes(`/`)){let[n,r]=e.split(`/`);return`${n===`*`||n===`0`?``:`从第 ${n} ${t}开始`}每 ${r} ${t}`}if(e.includes(`-`)){let[n,r]=e.split(`-`);return`${n} ${t}到 ${r} ${t}`}return e.includes(`,`)?`第 ${e} ${t}`:/^\d+$/.test(e)?`${e.padStart(2,`0`)}`:``}return{description:n}}const V={class:`cron-field-editor`},H=[`disabled`,`aria-pressed`,`onClick`];var fe=t(u({__name:`CronFieldEditor`,props:{modelValue:{},meta:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let i=e,a=t,c=r(()=>{switch(i.meta.type){case`second`:case`minute`:return 10;case`hour`:return 12;case`day`:return 7;case`month`:return 6;case`week`:return 7;default:return 10}}),l=r(()=>{let e=[];for(let t=i.meta.min;t<=i.meta.max;t++)e.push({value:t,label:i.meta.valueLabels?.[t]??String(t)});return e}),u=r(()=>{let{modelValue:e,meta:t}=i,n=new Set;switch(e.mode){case`every`:for(let e=t.min;e<=t.max;e++)n.add(e);break;case`none`:break;case`range`:for(let t=e.rangeStart;t<=e.rangeEnd;t++)n.add(t);break;case`step`:for(let r=e.stepStart;r<=t.max;r+=Math.max(1,e.stepInterval))n.add(r);break;case`specific`:e.specificValues.forEach(e=>n.add(e));break}return n});function p(e){if(i.disabled||i.modelValue.mode!==`specific`)return;let t=[...i.modelValue.specificValues],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),a(`update:modelValue`,{...i.modelValue,specificValues:t})}return(t,r)=>(h(),o(`div`,V,[s(`div`,{class:`cron-field-editor__grid`,style:f({"--cols":c.value})},[(h(!0),o(n,null,_(l.value,t=>(h(),o(`button`,{key:t.value,type:`button`,class:d([`cron-field-editor__cell`,{"cron-field-editor__cell--on":u.value.has(t.value),"cron-field-editor__cell--pick":e.modelValue.mode===`specific`}]),disabled:e.disabled||e.modelValue.mode!==`specific`,"aria-pressed":e.modelValue.mode===`specific`?u.value.has(t.value):void 0,onClick:e=>p(t.value)},y(t.label),11,H))),128))],4)]))}}),[[`__scopeId`,`data-v-153f242b`]]);const U={class:`cron-preview`},W={class:`cron-preview__header`},G={key:0,class:`cron-preview__list`},K={class:`cron-preview__idx`},q={class:`cron-preview__date`},J={class:`cron-preview__week`};var pe=t(u({__name:`CronPreview`,props:{nextExecutions:{},computing:{type:Boolean},count:{},formatDate:{type:Function},formatWeekDay:{type:Function}},setup(t){return(r,c)=>{let u=T,d=C,f=w;return h(),o(`div`,U,[s(`div`,W,[l(e,{name:`mdi:calendar-clock`,size:15}),c[0]||=s(`span`,null,`未来执行`,-1),t.computing?(h(),i(u,{key:0,size:14})):a(`v-if`,!0)]),l(f,{style:{"max-height":`220px`}},{default:S(()=>[t.nextExecutions.length>0?(h(),o(`div`,G,[(h(!0),o(n,null,_(t.nextExecutions,(e,n)=>(h(),o(`div`,{key:n,class:`cron-preview__item`},[s(`span`,K,y(n+1),1),s(`span`,q,y(t.formatDate(e)),1),s(`span`,J,y(t.formatWeekDay(e)),1)]))),128))])):(h(),i(d,{key:1,size:`small`,description:`暂无匹配`}))]),_:1})])}}}),[[`__scopeId`,`data-v-15b88794`]]);const Y={class:`cron-templates`},X={class:`cron-templates__header`},me={class:`cron-templates__cards`},he=[`disabled`,`aria-pressed`,`onClick`],ge={class:`cron-templates__card-name`},Z={class:`cron-templates__card-expr`};var _e=t(u({__name:`CronTemplates`,props:{templates:{},currentValue:{},disabled:{type:Boolean}},emits:[`select`],setup(t){return(r,i)=>(h(),o(`div`,Y,[s(`div`,X,[l(e,{name:`mdi:lightning-bolt`,size:15}),i[0]||=s(`span`,null,`常用模板`,-1)]),s(`div`,me,[(h(!0),o(n,null,_(t.templates,e=>(h(),o(`button`,{key:e.value,type:`button`,disabled:t.disabled,"aria-pressed":e.value===t.currentValue,class:d([`cron-templates__card`,{"cron-templates__card--active":e.value===t.currentValue}]),onClick:t=>r.$emit(`select`,e.value)},[s(`div`,ge,y(e.label),1),s(`div`,Z,y(e.value),1)],10,he))),128))])]))}}),[[`__scopeId`,`data-v-1b50e9c2`]]);const ve={class:`c-cron__header`},ye={class:`c-cron__title-row`},be={class:`c-cron__title`},xe={class:`c-cron__segments`},Se=[`aria-pressed`,`onClick`],Ce={class:`c-cron__segment-value`},we={class:`c-cron__segment-label`},Te={class:`c-cron__expr-row`},Ee={class:`c-cron__expr-desc`},De={key:0,class:`c-cron__description`},Oe={key:1,class:`c-cron__error`},ke={class:`c-cron__body`},Ae={class:`c-cron__main`},je={class:`c-cron__panel`},Me={key:0,class:`c-cron__config`},Ne={class:`c-cron__config-row`},Pe={key:1,class:`c-cron__config`},Fe={class:`c-cron__config-row`},Ie={key:2,class:`c-cron__quick`},Le=[`disabled`],Re=[`disabled`],ze={key:0,class:`c-cron__quick-count`},Be={key:1,class:`c-cron__error`},Ve={key:0,class:`c-cron__footer`};var Q=t(u({name:`C_Cron`,__name:`index`,props:{modelValue:{default:k},disabled:{type:Boolean,default:!1},previewCount:{default:10},showTemplates:{type:Boolean,default:!0},showPreview:{type:Boolean,default:!0},showSecond:{type:Boolean,default:!0},height:{default:`auto`}},emits:[`update:modelValue`,`change`,`validation-change`],setup(t,{expose:u,emit:m}){let v=t,C=m,{cronValue:w,expression:T,validation:D,parse:O,validate:j,handleDayWeekExclusion:M}=P(),{nextExecutions:N,computing:F,formatDate:le,formatWeekDay:ue}=R(T,D,r(()=>v.previewCount??10)),{description:de}=B(T,D),I=g(v.modelValue||k),L=g(null),z=r(()=>L.value??D.value),V=g(v.showSecond?`second`:`minute`),H=r(()=>typeof v.height==`number`?`${v.height}px`:v.height),U=r(()=>v.showSecond?E:E.filter(e=>e.type!==`second`)),W=r(()=>E.find(e=>e.type===V.value)),G=r(()=>w.value[V.value]);function K(e){switch(e.mode){case`every`:return`*`;case`none`:return`?`;case`range`:return`${e.rangeStart}-${e.rangeEnd}`;case`step`:return`${e.stepStart}/${e.stepInterval}`;case`specific`:return e.specificValues.length>0?[...e.specificValues].sort((e,t)=>e-t).join(`,`):`*`;default:return`*`}}let q=r(()=>{let e={};for(let t of E)e[t.type]=K(w.value[t.type]);return e});p(()=>{Q(v.modelValue||k)}),x(()=>v.modelValue,e=>{e!==T.value&&Q(e||k)}),x(()=>v.showSecond,e=>{!e&&V.value===`second`&&(V.value=`minute`)}),x(T,e=>{I.value=e,L.value=null,C(`update:modelValue`,e),C(`change`,e)}),x(z,e=>{C(`validation-change`,e)});function J(e,t){v.disabled||(L.value=null,w.value[e]=t,(e===`day`||e===`week`)&&M(e))}function Y(e){J(V.value,{...G.value,mode:e})}function X(e){J(V.value,{...G.value,...e})}function me(){let{min:e,max:t}=W.value,n=Array.from({length:t-e+1},(t,n)=>e+n);J(V.value,{...G.value,specificValues:n})}function he(){J(V.value,{...G.value,specificValues:[]})}function ge(e){I.value=e,L.value=j(e)}function Z(){v.disabled||Q(I.value.trim())}function Q(e){I.value=e;let t=j(e);L.value=t.valid?null:t,t.valid&&O(e)}function He(e){v.disabled||Q(e)}function $(){Q(v.modelValue||k)}return u({getValue:()=>T.value,setValue:e=>{Q(e)},reset:$,validate:()=>z.value}),(t,r)=>{let u=ce,p=ie,m=re,g=oe,x=se,C=ae;return h(),o(`div`,{class:`c-cron`,style:f({height:H.value})},[a(` ═══════ 顶部 ═══════ `),s(`div`,ve,[a(` 标题行 `),s(`div`,ye,[s(`div`,be,[l(e,{name:`mdi:clock-edit-outline`,size:18}),r[4]||=s(`span`,null,`Cron 表达式`,-1)]),l(u,{type:z.value.valid?`success`:`error`,size:`small`,round:``},{icon:S(()=>[l(e,{name:z.value.valid?`mdi:check-circle`:`mdi:alert-circle`},null,8,[`name`])]),default:S(()=>[c(` `+y(z.value.valid?`合法`:`错误`),1)]),_:1},8,[`type`])]),a(` 分段式字段选择器 `),s(`div`,xe,[(h(!0),o(n,null,_(U.value,e=>(h(),o(`button`,{key:e.type,type:`button`,class:d([`c-cron__segment`,{"c-cron__segment--active":V.value===e.type,"c-cron__segment--wildcard":q.value[e.type]===`*`||q.value[e.type]===`?`}]),"aria-pressed":V.value===e.type,onClick:t=>V.value=e.type},[s(`div`,Ce,y(q.value[e.type]),1),s(`div`,we,y(e.label),1)],10,Se))),128))]),a(` 表达式行:输入 + 重置 + 描述 `),s(`div`,Te,[l(p,{value:I.value,status:z.value.valid?void 0:`error`,placeholder:`秒 分 时 日 月 周`,disabled:v.disabled,font:`mono`,size:`small`,clearable:``,class:`c-cron__expr-input`,"onUpdate:value":ge,onBlur:Z,onKeydown:ne(Z,[`enter`])},{prefix:S(()=>[l(e,{name:`mdi:console`,size:14,style:{opacity:`0.4`}})]),_:1},8,[`value`,`status`,`disabled`]),l(m,{size:`small`,quaternary:``,disabled:v.disabled,onClick:$},{icon:S(()=>[l(e,{name:`mdi:refresh`})]),_:1},8,[`disabled`]),s(`div`,Ee,[z.value.valid?(h(),o(`span`,De,y(b(de)),1)):(h(),o(`span`,Oe,y(z.value.message),1))])])]),a(` ═══════ 主内容 ═══════ `),s(`div`,ke,[a(` 左侧:值网格 `),s(`div`,Ae,[(h(!0),o(n,null,_(U.value,e=>te((h(),i(fe,{key:e.type,"model-value":b(w)[e.type],meta:e,disabled:v.disabled,"onUpdate:modelValue":t=>J(e.type,t)},null,8,[`model-value`,`meta`,`disabled`,`onUpdate:modelValue`])),[[ee,V.value===e.type]])),128))]),a(` 右侧:控制面板 `),s(`div`,je,[l(x,{value:G.value.mode,disabled:v.disabled,size:`small`,"onUpdate:value":Y},{default:S(()=>[l(g,{value:`every`},{default:S(()=>[c(` 每`+y(W.value.label),1)]),_:1}),V.value===`day`||V.value===`week`?(h(),i(g,{key:0,value:`none`},{default:S(()=>[...r[5]||=[c(` 不指定 `,-1)]]),_:1})):a(`v-if`,!0),l(g,{value:`range`},{default:S(()=>[...r[6]||=[c(`范围`,-1)]]),_:1}),l(g,{value:`step`},{default:S(()=>[...r[7]||=[c(`步进`,-1)]]),_:1}),l(g,{value:`specific`},{default:S(()=>[...r[8]||=[c(`指定`,-1)]]),_:1})]),_:1},8,[`value`,`disabled`]),a(` 范围配置 `),G.value.mode===`range`?(h(),o(`div`,Me,[s(`div`,Ne,[r[9]||=s(`span`,null,`从`,-1),l(C,{value:G.value.rangeStart,min:W.value.min,max:W.value.max,size:`small`,"show-button":!1,disabled:v.disabled,class:`c-cron__config-num`,"onUpdate:value":r[0]||=e=>X({rangeStart:e??W.value.min})},null,8,[`value`,`min`,`max`,`disabled`]),r[10]||=s(`span`,null,`到`,-1),l(C,{value:G.value.rangeEnd,min:W.value.min,max:W.value.max,size:`small`,"show-button":!1,disabled:v.disabled,class:`c-cron__config-num`,"onUpdate:value":r[1]||=e=>X({rangeEnd:e??W.value.max})},null,8,[`value`,`min`,`max`,`disabled`])])])):a(`v-if`,!0),a(` 步进配置 `),G.value.mode===`step`?(h(),o(`div`,Pe,[s(`div`,Fe,[r[11]||=s(`span`,null,`从第`,-1),l(C,{value:G.value.stepStart,min:W.value.min,max:W.value.max,size:`small`,"show-button":!1,disabled:v.disabled,class:`c-cron__config-num`,"onUpdate:value":r[2]||=e=>X({stepStart:e??W.value.min})},null,8,[`value`,`min`,`max`,`disabled`]),s(`span`,null,y(W.value.label)+`起,每`,1),l(C,{value:G.value.stepInterval,min:1,max:W.value.max-W.value.min+1,size:`small`,"show-button":!1,disabled:v.disabled,class:`c-cron__config-num`,"onUpdate:value":r[3]||=e=>X({stepInterval:e??1})},null,8,[`value`,`max`,`disabled`]),s(`span`,null,y(W.value.label)+`执行`,1)])])):a(`v-if`,!0),a(` 指定快捷操作 `),G.value.mode===`specific`?(h(),o(`div`,Ie,[s(`button`,{type:`button`,disabled:v.disabled,onClick:me},`全选`,8,Le),r[12]||=s(`span`,{class:`c-cron__quick-sep`},`·`,-1),s(`button`,{type:`button`,disabled:v.disabled,onClick:he},`清空`,8,Re),G.value.specificValues.length>0?(h(),o(`span`,ze,` 已选 `+y(G.value.specificValues.length),1)):a(`v-if`,!0)])):a(`v-if`,!0),a(` 执行预览 `),v.showPreview?(h(),o(n,{key:3},[r[13]||=s(`div`,{class:`c-cron__panel-line`},null,-1),z.value.valid?(h(),i(pe,{key:0,"next-executions":b(N),computing:b(F),count:v.previewCount??5,"format-date":b(le),"format-week-day":b(ue)},null,8,[`next-executions`,`computing`,`count`,`format-date`,`format-week-day`])):(h(),o(`div`,Be,`请先修正表达式`))],64)):a(`v-if`,!0)])]),a(` ═══════ 底部模板 ═══════ `),v.showTemplates?(h(),o(`div`,Ve,[l(_e,{templates:b(A),"current-value":b(T),disabled:v.disabled,onSelect:He},null,8,[`templates`,`current-value`,`disabled`])])):a(`v-if`,!0)],4)}}}),[[`__scopeId`,`data-v-f4b0a99d`]]);export{E as a,O as c,M as d,P as i,D as l,B as n,A as o,R as r,k as s,Q as t,j as u};
package/dist/C_Date.css CHANGED
@@ -1 +1,8 @@
1
- /* C_Date has no component-specific styles. */
1
+ /* unplugin-vue-components disabled */
2
+ /* layer: default */
3
+ .inline-block[data-v-872c208c]{display:inline-block;}
4
+ .flex[data-v-872c208c]{display:flex;}
5
+ .flex-1[data-v-872c208c]{flex:1 1 0%;}
6
+ .items-center[data-v-872c208c]{align-items:center;}
7
+ .gap-2\.5[data-v-872c208c]{gap:0.625rem;}
8
+
package/dist/C_Date2.cjs CHANGED
@@ -1 +1 @@
1
- require(`./chunk.cjs`);let e=require(`vue`),t=require(`naive-ui`);function n(e){let t=/^(\d{4})-(\d{2})-(\d{2})/.exec(e);if(t)return new Date(Number(t[1]),Number(t[2])-1,Number(t[3])).getTime();let n=new Date(e);return new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime()}const r={class:`inline-block`},i={key:4,class:`inline-block`},a={class:`flex gap-2.5 items-center`},o=(0,e.defineComponent)({name:`C_Date`,__name:`index`,props:{modelValue:{},mode:{default:`date`},placeholder:{default:``},startPlaceholder:{default:``},endPlaceholder:{default:``},disabled:{type:Boolean,default:!1},disabledBeforeToday:{type:Boolean,default:!1},disabledAfterToday:{type:Boolean,default:!1},valueFormat:{},startDateProps:{default:()=>({})},endDateProps:{default:()=>({})},singleDate:{default:null},singleDateTime:{default:null},dateRange:{default:null},dateTimeRange:{default:null},smartRange:{default:null}},emits:[`update:modelValue`,`update:singleDate`,`update:singleDateTime`,`update:dateRange`,`update:dateTimeRange`,`update:smartRange`,`change`],setup(o,{expose:s,emit:c}){let l=o,u=c,d=()=>{let e=new Date;return e.setHours(0,0,0,0),e.getTime()},f=(0,e.computed)(()=>l.valueFormat?l.valueFormat:l.mode.includes(`datetime`)?`yyyy-MM-dd HH:mm:ss`:`yyyy-MM-dd`),p=(0,e.computed)({get:()=>l.modelValue===void 0?l.singleDate??null:l.modelValue,set:e=>{u(`update:modelValue`,e),u(`update:singleDate`,e),u(`change`,e)}}),m=(0,e.computed)({get:()=>l.modelValue===void 0?l.singleDateTime??null:l.modelValue,set:e=>{u(`update:modelValue`,e),u(`update:singleDateTime`,e),u(`change`,e)}}),h=(0,e.computed)({get:()=>l.modelValue===void 0?l.dateRange??null:l.modelValue,set:e=>{u(`update:modelValue`,e),u(`update:dateRange`,e),u(`change`,e)}}),g=(0,e.computed)({get:()=>l.modelValue===void 0?l.dateTimeRange??null:l.modelValue,set:e=>{u(`update:modelValue`,e),u(`update:dateTimeRange`,e),u(`change`,e)}}),_=(0,e.ref)(null),v=(0,e.ref)(null),y=(0,e.computed)(()=>l.disabled||_.value===null),b=!1;(0,e.watch)(()=>[l.modelValue,l.smartRange,l.mode],([e,t,n])=>{let r=n===`smart-range`&&e!==void 0?e:t,i=r?.[0]??null,a=r?.[1]??null;i===_.value&&a===v.value||(b=!0,_.value=i,v.value=a,b=!1)},{immediate:!0,deep:!0}),(0,e.watch)(()=>[_.value,v.value],([e,t])=>{if(b)return;if(e===null&&t!==null){v.value=null;return}if(e!==null&&t!==null&&n(t)<n(e)){v.value=null;return}let r=e!==null&&t!==null?[e,t]:null;u(`update:modelValue`,r),u(`update:smartRange`,r),u(`change`,r)},{deep:!0,flush:`sync`});let x=e=>{let t=d();return!!(l.disabledBeforeToday&&e<t||l.disabledAfterToday&&e>t)},S=e=>_.value===null||e<n(_.value)?!0:x(e);return s({clearAll:()=>{b=!0,_.value=null,v.value=null,b=!1,u(`update:modelValue`,null),u(`update:singleDate`,null),u(`update:singleDateTime`,null),u(`update:dateRange`,null),u(`update:dateTimeRange`,null),u(`update:smartRange`,null),u(`change`,null)}}),(n,s)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,r,[o.mode===`date`?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.NDatePicker),(0,e.mergeProps)({key:0,"formatted-value":p.value,"onUpdate:formattedValue":s[0]||=e=>p.value=e,type:`date`,placeholder:o.placeholder||`请选择日期`,disabled:o.disabled,"is-date-disabled":x,"value-format":f.value,clearable:``},n.$attrs),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`])):o.mode===`datetime`?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.NDatePicker),(0,e.mergeProps)({key:1,"formatted-value":m.value,"onUpdate:formattedValue":s[1]||=e=>m.value=e,type:`datetime`,placeholder:o.placeholder||`请选择日期时间`,disabled:o.disabled,"is-date-disabled":x,"value-format":f.value,clearable:``},n.$attrs),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`])):o.mode===`daterange`?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.NDatePicker),(0,e.mergeProps)({key:2,"formatted-value":h.value,"onUpdate:formattedValue":s[2]||=e=>h.value=e,type:`daterange`,"start-placeholder":o.startPlaceholder||`开始日期`,"end-placeholder":o.endPlaceholder||`结束日期`,disabled:o.disabled,"is-date-disabled":x,"value-format":f.value,clearable:``},n.$attrs),null,16,[`formatted-value`,`start-placeholder`,`end-placeholder`,`disabled`,`value-format`])):o.mode===`datetimerange`?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.NDatePicker),(0,e.mergeProps)({key:3,"formatted-value":g.value,"onUpdate:formattedValue":s[3]||=e=>g.value=e,type:`datetimerange`,"start-placeholder":o.startPlaceholder||`开始日期时间`,"end-placeholder":o.endPlaceholder||`结束日期时间`,disabled:o.disabled,"is-date-disabled":x,"value-format":f.value,clearable:``},n.$attrs),null,16,[`formatted-value`,`start-placeholder`,`end-placeholder`,`disabled`,`value-format`])):o.mode===`smart-range`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,i,[(0,e.createElementVNode)(`div`,a,[(0,e.createVNode)((0,e.unref)(t.NDatePicker),(0,e.mergeProps)({class:`flex-1`,"formatted-value":_.value,"onUpdate:formattedValue":s[4]||=e=>_.value=e,type:`date`,placeholder:o.startPlaceholder||`请选择开始日期`,disabled:o.disabled,"is-date-disabled":x,"value-format":f.value,clearable:``},o.startDateProps),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`]),(0,e.createVNode)((0,e.unref)(t.NDatePicker),(0,e.mergeProps)({class:`flex-1`,"formatted-value":v.value,"onUpdate:formattedValue":s[5]||=e=>v.value=e,type:`date`,placeholder:o.endPlaceholder||`请选择结束日期`,disabled:y.value,"is-date-disabled":S,"value-format":f.value,clearable:``},o.endDateProps),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`])])])):(0,e.createCommentVNode)(`v-if`,!0)]))}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
1
+ require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`naive-ui`);function r(e){let t=/^(\d{4})-(\d{2})-(\d{2})/.exec(e);if(t)return new Date(Number(t[1]),Number(t[2])-1,Number(t[3])).getTime();let n=new Date(e);return new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime()}const i={class:`inline-block`},a={key:4,class:`inline-block`},o={class:`flex gap-2.5 items-center`},s=(0,t.defineComponent)({name:`C_Date`,__name:`index`,props:{modelValue:{},mode:{default:`date`},placeholder:{default:``},startPlaceholder:{default:``},endPlaceholder:{default:``},disabled:{type:Boolean,default:!1},disabledBeforeToday:{type:Boolean,default:!1},disabledAfterToday:{type:Boolean,default:!1},valueFormat:{},startDateProps:{default:()=>({})},endDateProps:{default:()=>({})},singleDate:{default:null},singleDateTime:{default:null},dateRange:{default:null},dateTimeRange:{default:null},smartRange:{default:null}},emits:[`update:modelValue`,`update:singleDate`,`update:singleDateTime`,`update:dateRange`,`update:dateTimeRange`,`update:smartRange`,`change`],setup(e,{expose:s,emit:c}){let l=e,u=c,d=()=>{let e=new Date;return e.setHours(0,0,0,0),e.getTime()},f=(0,t.computed)(()=>l.valueFormat?l.valueFormat:l.mode.includes(`datetime`)?`yyyy-MM-dd HH:mm:ss`:`yyyy-MM-dd`),p=(0,t.computed)({get:()=>l.modelValue===void 0?l.singleDate??null:l.modelValue,set:e=>{u(`update:modelValue`,e),u(`update:singleDate`,e),u(`change`,e)}}),m=(0,t.computed)({get:()=>l.modelValue===void 0?l.singleDateTime??null:l.modelValue,set:e=>{u(`update:modelValue`,e),u(`update:singleDateTime`,e),u(`change`,e)}}),h=(0,t.computed)({get:()=>l.modelValue===void 0?l.dateRange??null:l.modelValue,set:e=>{u(`update:modelValue`,e),u(`update:dateRange`,e),u(`change`,e)}}),g=(0,t.computed)({get:()=>l.modelValue===void 0?l.dateTimeRange??null:l.modelValue,set:e=>{u(`update:modelValue`,e),u(`update:dateTimeRange`,e),u(`change`,e)}}),_=(0,t.ref)(null),v=(0,t.ref)(null),y=(0,t.computed)(()=>l.disabled||_.value===null),b=!1;(0,t.watch)(()=>[l.modelValue,l.smartRange,l.mode],([e,t,n])=>{let r=n===`smart-range`&&e!==void 0?e:t,i=r?.[0]??null,a=r?.[1]??null;i===_.value&&a===v.value||(b=!0,_.value=i,v.value=a,b=!1)},{immediate:!0,deep:!0}),(0,t.watch)(()=>[_.value,v.value],([e,t])=>{if(b)return;if(e===null&&t!==null){v.value=null;return}if(e!==null&&t!==null&&r(t)<r(e)){v.value=null;return}let n=e!==null&&t!==null?[e,t]:null;u(`update:modelValue`,n),u(`update:smartRange`,n),u(`change`,n)},{deep:!0,flush:`sync`});let x=e=>{let t=d();return!!(l.disabledBeforeToday&&e<t||l.disabledAfterToday&&e>t)},S=e=>_.value===null||e<r(_.value)?!0:x(e);return s({clearAll:()=>{b=!0,_.value=null,v.value=null,b=!1,u(`update:modelValue`,null),u(`update:singleDate`,null),u(`update:singleDateTime`,null),u(`update:dateRange`,null),u(`update:dateTimeRange`,null),u(`update:smartRange`,null),u(`change`,null)}}),(r,s)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,i,[e.mode===`date`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.NDatePicker),(0,t.mergeProps)({key:0,"formatted-value":p.value,"onUpdate:formattedValue":s[0]||=e=>p.value=e,type:`date`,placeholder:e.placeholder||`请选择日期`,disabled:e.disabled,"is-date-disabled":x,"value-format":f.value,clearable:``},r.$attrs),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`])):e.mode===`datetime`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.NDatePicker),(0,t.mergeProps)({key:1,"formatted-value":m.value,"onUpdate:formattedValue":s[1]||=e=>m.value=e,type:`datetime`,placeholder:e.placeholder||`请选择日期时间`,disabled:e.disabled,"is-date-disabled":x,"value-format":f.value,clearable:``},r.$attrs),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`])):e.mode===`daterange`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.NDatePicker),(0,t.mergeProps)({key:2,"formatted-value":h.value,"onUpdate:formattedValue":s[2]||=e=>h.value=e,type:`daterange`,"start-placeholder":e.startPlaceholder||`开始日期`,"end-placeholder":e.endPlaceholder||`结束日期`,disabled:e.disabled,"is-date-disabled":x,"value-format":f.value,clearable:``},r.$attrs),null,16,[`formatted-value`,`start-placeholder`,`end-placeholder`,`disabled`,`value-format`])):e.mode===`datetimerange`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.NDatePicker),(0,t.mergeProps)({key:3,"formatted-value":g.value,"onUpdate:formattedValue":s[3]||=e=>g.value=e,type:`datetimerange`,"start-placeholder":e.startPlaceholder||`开始日期时间`,"end-placeholder":e.endPlaceholder||`结束日期时间`,disabled:e.disabled,"is-date-disabled":x,"value-format":f.value,clearable:``},r.$attrs),null,16,[`formatted-value`,`start-placeholder`,`end-placeholder`,`disabled`,`value-format`])):e.mode===`smart-range`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,a,[(0,t.createElementVNode)(`div`,o,[(0,t.createVNode)((0,t.unref)(n.NDatePicker),(0,t.mergeProps)({class:`flex-1`,"formatted-value":_.value,"onUpdate:formattedValue":s[4]||=e=>_.value=e,type:`date`,placeholder:e.startPlaceholder||`请选择开始日期`,disabled:e.disabled,"is-date-disabled":x,"value-format":f.value,clearable:``},e.startDateProps),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`]),(0,t.createVNode)((0,t.unref)(n.NDatePicker),(0,t.mergeProps)({class:`flex-1`,"formatted-value":v.value,"onUpdate:formattedValue":s[5]||=e=>v.value=e,type:`date`,placeholder:e.endPlaceholder||`请选择结束日期`,disabled:y.value,"is-date-disabled":S,"value-format":f.value,clearable:``},e.endDateProps),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`])])])):(0,t.createCommentVNode)(`v-if`,!0)]))}});var c=e.t(s,[[`__scopeId`,`data-v-872c208c`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return c}});
package/dist/C_Date2.js CHANGED
@@ -1 +1 @@
1
- import{computed as e,createBlock as t,createCommentVNode as n,createElementBlock as r,createElementVNode as i,createVNode as a,defineComponent as o,mergeProps as s,openBlock as c,ref as l,unref as u,watch as d}from"vue";import{NDatePicker as f}from"naive-ui";function p(e){let t=/^(\d{4})-(\d{2})-(\d{2})/.exec(e);if(t)return new Date(Number(t[1]),Number(t[2])-1,Number(t[3])).getTime();let n=new Date(e);return new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime()}const m={class:`inline-block`},h={key:4,class:`inline-block`},g={class:`flex gap-2.5 items-center`},_=o({name:`C_Date`,__name:`index`,props:{modelValue:{},mode:{default:`date`},placeholder:{default:``},startPlaceholder:{default:``},endPlaceholder:{default:``},disabled:{type:Boolean,default:!1},disabledBeforeToday:{type:Boolean,default:!1},disabledAfterToday:{type:Boolean,default:!1},valueFormat:{},startDateProps:{default:()=>({})},endDateProps:{default:()=>({})},singleDate:{default:null},singleDateTime:{default:null},dateRange:{default:null},dateTimeRange:{default:null},smartRange:{default:null}},emits:[`update:modelValue`,`update:singleDate`,`update:singleDateTime`,`update:dateRange`,`update:dateTimeRange`,`update:smartRange`,`change`],setup(o,{expose:_,emit:v}){let y=o,b=v,x=()=>{let e=new Date;return e.setHours(0,0,0,0),e.getTime()},S=e(()=>y.valueFormat?y.valueFormat:y.mode.includes(`datetime`)?`yyyy-MM-dd HH:mm:ss`:`yyyy-MM-dd`),C=e({get:()=>y.modelValue===void 0?y.singleDate??null:y.modelValue,set:e=>{b(`update:modelValue`,e),b(`update:singleDate`,e),b(`change`,e)}}),w=e({get:()=>y.modelValue===void 0?y.singleDateTime??null:y.modelValue,set:e=>{b(`update:modelValue`,e),b(`update:singleDateTime`,e),b(`change`,e)}}),T=e({get:()=>y.modelValue===void 0?y.dateRange??null:y.modelValue,set:e=>{b(`update:modelValue`,e),b(`update:dateRange`,e),b(`change`,e)}}),E=e({get:()=>y.modelValue===void 0?y.dateTimeRange??null:y.modelValue,set:e=>{b(`update:modelValue`,e),b(`update:dateTimeRange`,e),b(`change`,e)}}),D=l(null),O=l(null),k=e(()=>y.disabled||D.value===null),A=!1;d(()=>[y.modelValue,y.smartRange,y.mode],([e,t,n])=>{let r=n===`smart-range`&&e!==void 0?e:t,i=r?.[0]??null,a=r?.[1]??null;i===D.value&&a===O.value||(A=!0,D.value=i,O.value=a,A=!1)},{immediate:!0,deep:!0}),d(()=>[D.value,O.value],([e,t])=>{if(A)return;if(e===null&&t!==null){O.value=null;return}if(e!==null&&t!==null&&p(t)<p(e)){O.value=null;return}let n=e!==null&&t!==null?[e,t]:null;b(`update:modelValue`,n),b(`update:smartRange`,n),b(`change`,n)},{deep:!0,flush:`sync`});let j=e=>{let t=x();return!!(y.disabledBeforeToday&&e<t||y.disabledAfterToday&&e>t)},M=e=>D.value===null||e<p(D.value)?!0:j(e);return _({clearAll:()=>{A=!0,D.value=null,O.value=null,A=!1,b(`update:modelValue`,null),b(`update:singleDate`,null),b(`update:singleDateTime`,null),b(`update:dateRange`,null),b(`update:dateTimeRange`,null),b(`update:smartRange`,null),b(`change`,null)}}),(e,l)=>(c(),r(`div`,m,[o.mode===`date`?(c(),t(u(f),s({key:0,"formatted-value":C.value,"onUpdate:formattedValue":l[0]||=e=>C.value=e,type:`date`,placeholder:o.placeholder||`请选择日期`,disabled:o.disabled,"is-date-disabled":j,"value-format":S.value,clearable:``},e.$attrs),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`])):o.mode===`datetime`?(c(),t(u(f),s({key:1,"formatted-value":w.value,"onUpdate:formattedValue":l[1]||=e=>w.value=e,type:`datetime`,placeholder:o.placeholder||`请选择日期时间`,disabled:o.disabled,"is-date-disabled":j,"value-format":S.value,clearable:``},e.$attrs),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`])):o.mode===`daterange`?(c(),t(u(f),s({key:2,"formatted-value":T.value,"onUpdate:formattedValue":l[2]||=e=>T.value=e,type:`daterange`,"start-placeholder":o.startPlaceholder||`开始日期`,"end-placeholder":o.endPlaceholder||`结束日期`,disabled:o.disabled,"is-date-disabled":j,"value-format":S.value,clearable:``},e.$attrs),null,16,[`formatted-value`,`start-placeholder`,`end-placeholder`,`disabled`,`value-format`])):o.mode===`datetimerange`?(c(),t(u(f),s({key:3,"formatted-value":E.value,"onUpdate:formattedValue":l[3]||=e=>E.value=e,type:`datetimerange`,"start-placeholder":o.startPlaceholder||`开始日期时间`,"end-placeholder":o.endPlaceholder||`结束日期时间`,disabled:o.disabled,"is-date-disabled":j,"value-format":S.value,clearable:``},e.$attrs),null,16,[`formatted-value`,`start-placeholder`,`end-placeholder`,`disabled`,`value-format`])):o.mode===`smart-range`?(c(),r(`div`,h,[i(`div`,g,[a(u(f),s({class:`flex-1`,"formatted-value":D.value,"onUpdate:formattedValue":l[4]||=e=>D.value=e,type:`date`,placeholder:o.startPlaceholder||`请选择开始日期`,disabled:o.disabled,"is-date-disabled":j,"value-format":S.value,clearable:``},o.startDateProps),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`]),a(u(f),s({class:`flex-1`,"formatted-value":O.value,"onUpdate:formattedValue":l[5]||=e=>O.value=e,type:`date`,placeholder:o.endPlaceholder||`请选择结束日期`,disabled:k.value,"is-date-disabled":M,"value-format":S.value,clearable:``},o.endDateProps),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`])])])):n(`v-if`,!0)]))}});export{_ as t};
1
+ import{t as e}from"./export-helper.js";import{computed as t,createBlock as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,createVNode as o,defineComponent as s,mergeProps as c,openBlock as l,ref as u,unref as d,watch as f}from"vue";import{NDatePicker as p}from"naive-ui";function m(e){let t=/^(\d{4})-(\d{2})-(\d{2})/.exec(e);if(t)return new Date(Number(t[1]),Number(t[2])-1,Number(t[3])).getTime();let n=new Date(e);return new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime()}const h={class:`inline-block`},g={key:4,class:`inline-block`},_={class:`flex gap-2.5 items-center`};var v=e(s({name:`C_Date`,__name:`index`,props:{modelValue:{},mode:{default:`date`},placeholder:{default:``},startPlaceholder:{default:``},endPlaceholder:{default:``},disabled:{type:Boolean,default:!1},disabledBeforeToday:{type:Boolean,default:!1},disabledAfterToday:{type:Boolean,default:!1},valueFormat:{},startDateProps:{default:()=>({})},endDateProps:{default:()=>({})},singleDate:{default:null},singleDateTime:{default:null},dateRange:{default:null},dateTimeRange:{default:null},smartRange:{default:null}},emits:[`update:modelValue`,`update:singleDate`,`update:singleDateTime`,`update:dateRange`,`update:dateTimeRange`,`update:smartRange`,`change`],setup(e,{expose:s,emit:v}){let y=e,b=v,x=()=>{let e=new Date;return e.setHours(0,0,0,0),e.getTime()},S=t(()=>y.valueFormat?y.valueFormat:y.mode.includes(`datetime`)?`yyyy-MM-dd HH:mm:ss`:`yyyy-MM-dd`),C=t({get:()=>y.modelValue===void 0?y.singleDate??null:y.modelValue,set:e=>{b(`update:modelValue`,e),b(`update:singleDate`,e),b(`change`,e)}}),w=t({get:()=>y.modelValue===void 0?y.singleDateTime??null:y.modelValue,set:e=>{b(`update:modelValue`,e),b(`update:singleDateTime`,e),b(`change`,e)}}),T=t({get:()=>y.modelValue===void 0?y.dateRange??null:y.modelValue,set:e=>{b(`update:modelValue`,e),b(`update:dateRange`,e),b(`change`,e)}}),E=t({get:()=>y.modelValue===void 0?y.dateTimeRange??null:y.modelValue,set:e=>{b(`update:modelValue`,e),b(`update:dateTimeRange`,e),b(`change`,e)}}),D=u(null),O=u(null),k=t(()=>y.disabled||D.value===null),A=!1;f(()=>[y.modelValue,y.smartRange,y.mode],([e,t,n])=>{let r=n===`smart-range`&&e!==void 0?e:t,i=r?.[0]??null,a=r?.[1]??null;i===D.value&&a===O.value||(A=!0,D.value=i,O.value=a,A=!1)},{immediate:!0,deep:!0}),f(()=>[D.value,O.value],([e,t])=>{if(A)return;if(e===null&&t!==null){O.value=null;return}if(e!==null&&t!==null&&m(t)<m(e)){O.value=null;return}let n=e!==null&&t!==null?[e,t]:null;b(`update:modelValue`,n),b(`update:smartRange`,n),b(`change`,n)},{deep:!0,flush:`sync`});let j=e=>{let t=x();return!!(y.disabledBeforeToday&&e<t||y.disabledAfterToday&&e>t)},M=e=>D.value===null||e<m(D.value)?!0:j(e);return s({clearAll:()=>{A=!0,D.value=null,O.value=null,A=!1,b(`update:modelValue`,null),b(`update:singleDate`,null),b(`update:singleDateTime`,null),b(`update:dateRange`,null),b(`update:dateTimeRange`,null),b(`update:smartRange`,null),b(`change`,null)}}),(t,s)=>(l(),i(`div`,h,[e.mode===`date`?(l(),n(d(p),c({key:0,"formatted-value":C.value,"onUpdate:formattedValue":s[0]||=e=>C.value=e,type:`date`,placeholder:e.placeholder||`请选择日期`,disabled:e.disabled,"is-date-disabled":j,"value-format":S.value,clearable:``},t.$attrs),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`])):e.mode===`datetime`?(l(),n(d(p),c({key:1,"formatted-value":w.value,"onUpdate:formattedValue":s[1]||=e=>w.value=e,type:`datetime`,placeholder:e.placeholder||`请选择日期时间`,disabled:e.disabled,"is-date-disabled":j,"value-format":S.value,clearable:``},t.$attrs),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`])):e.mode===`daterange`?(l(),n(d(p),c({key:2,"formatted-value":T.value,"onUpdate:formattedValue":s[2]||=e=>T.value=e,type:`daterange`,"start-placeholder":e.startPlaceholder||`开始日期`,"end-placeholder":e.endPlaceholder||`结束日期`,disabled:e.disabled,"is-date-disabled":j,"value-format":S.value,clearable:``},t.$attrs),null,16,[`formatted-value`,`start-placeholder`,`end-placeholder`,`disabled`,`value-format`])):e.mode===`datetimerange`?(l(),n(d(p),c({key:3,"formatted-value":E.value,"onUpdate:formattedValue":s[3]||=e=>E.value=e,type:`datetimerange`,"start-placeholder":e.startPlaceholder||`开始日期时间`,"end-placeholder":e.endPlaceholder||`结束日期时间`,disabled:e.disabled,"is-date-disabled":j,"value-format":S.value,clearable:``},t.$attrs),null,16,[`formatted-value`,`start-placeholder`,`end-placeholder`,`disabled`,`value-format`])):e.mode===`smart-range`?(l(),i(`div`,g,[a(`div`,_,[o(d(p),c({class:`flex-1`,"formatted-value":D.value,"onUpdate:formattedValue":s[4]||=e=>D.value=e,type:`date`,placeholder:e.startPlaceholder||`请选择开始日期`,disabled:e.disabled,"is-date-disabled":j,"value-format":S.value,clearable:``},e.startDateProps),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`]),o(d(p),c({class:`flex-1`,"formatted-value":O.value,"onUpdate:formattedValue":s[5]||=e=>O.value=e,type:`date`,placeholder:e.endPlaceholder||`请选择结束日期`,disabled:k.value,"is-date-disabled":M,"value-format":S.value,clearable:``},e.endDateProps),null,16,[`formatted-value`,`placeholder`,`disabled`,`value-format`])])])):r(`v-if`,!0)]))}}),[[`__scopeId`,`data-v-872c208c`]]);export{v as t};
@@ -1,67 +1,67 @@
1
1
  /* unplugin-vue-components disabled *//* ===== 容器布局样式 ===== */
2
- .c-draggable-wrapper[data-v-2b8ca093] {
2
+ .c-draggable-wrapper[data-v-3abe32c6] {
3
3
  position: relative;
4
4
  width: 100%;
5
5
  }
6
- .c-draggable-list[data-v-2b8ca093] {
6
+ .c-draggable-list[data-v-3abe32c6] {
7
7
  min-height: 50px;
8
8
  width: 100%;
9
9
  display: flex;
10
10
  gap: var(--gap, 8px);
11
11
  /* 默认垂直布局 */
12
12
  }
13
- .c-draggable-list.layout-vertical[data-v-2b8ca093] {
13
+ .c-draggable-list.layout-vertical[data-v-3abe32c6] {
14
14
  flex-direction: column;
15
15
  }
16
- .c-draggable-list[data-v-2b8ca093] {
16
+ .c-draggable-list[data-v-3abe32c6] {
17
17
  /* 水平布局 */
18
18
  }
19
- .c-draggable-list.layout-horizontal[data-v-2b8ca093] {
19
+ .c-draggable-list.layout-horizontal[data-v-3abe32c6] {
20
20
  flex-direction: row;
21
21
  align-items: var(--align-items, stretch);
22
22
  justify-content: var(--justify-content, flex-start);
23
23
  }
24
- .c-draggable-list.layout-horizontal.flex-wrap[data-v-2b8ca093] {
24
+ .c-draggable-list.layout-horizontal.flex-wrap[data-v-3abe32c6] {
25
25
  flex-wrap: wrap;
26
26
  }
27
- .c-draggable-list[data-v-2b8ca093] {
27
+ .c-draggable-list[data-v-3abe32c6] {
28
28
  /* 弹性换行布局 */
29
29
  }
30
- .c-draggable-list.layout-flex-wrap[data-v-2b8ca093] {
30
+ .c-draggable-list.layout-flex-wrap[data-v-3abe32c6] {
31
31
  flex-direction: row;
32
32
  flex-wrap: wrap;
33
33
  align-items: var(--align-items, stretch);
34
34
  justify-content: var(--justify-content, flex-start);
35
35
  }
36
- .c-draggable-list[data-v-2b8ca093] {
36
+ .c-draggable-list[data-v-3abe32c6] {
37
37
  /* 网格布局 */
38
38
  }
39
- .c-draggable-list.layout-grid[data-v-2b8ca093] {
39
+ .c-draggable-list.layout-grid[data-v-3abe32c6] {
40
40
  display: grid;
41
41
  grid-template-columns: repeat(var(--grid-columns, 4), 1fr);
42
42
  grid-template-rows: var(--grid-rows, auto);
43
43
  align-items: var(--align-items, stretch);
44
44
  justify-content: var(--justify-content, stretch);
45
45
  }
46
- .c-draggable-list.layout-grid > .c-draggable-item[data-v-2b8ca093] {
46
+ .c-draggable-list.layout-grid > .c-draggable-item[data-v-3abe32c6] {
47
47
  width: 100%;
48
48
  box-sizing: border-box;
49
49
  }
50
50
 
51
51
  /* ===== 拖拽项目基础样式 ===== */
52
- .c-draggable-item[data-v-2b8ca093] {
52
+ .c-draggable-item[data-v-3abe32c6] {
53
53
  position: relative;
54
54
  }
55
- .c-draggable-item.is-disabled[data-v-2b8ca093] {
55
+ .c-draggable-item.is-disabled[data-v-3abe32c6] {
56
56
  opacity: 0.6;
57
57
  cursor: not-allowed;
58
58
  }
59
- .c-draggable-item.is-disabled[data-v-2b8ca093] * {
59
+ .c-draggable-item.is-disabled[data-v-3abe32c6] * {
60
60
  cursor: not-allowed !important;
61
61
  }
62
62
 
63
63
  /* ===== 默认项目样式 ===== */
64
- .default-item[data-v-2b8ca093] {
64
+ .default-item[data-v-3abe32c6] {
65
65
  display: flex;
66
66
  align-items: center;
67
67
  padding: 16px;
@@ -72,15 +72,15 @@
72
72
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
73
73
  position: relative;
74
74
  }
75
- .default-item[data-v-2b8ca093]:hover {
75
+ .default-item[data-v-3abe32c6]:hover {
76
76
  border-color: var(--n-primary-color);
77
77
  box-shadow: 0 2px 8px var(--n-box-shadow-color);
78
78
  transform: translateY(-1px);
79
79
  }
80
- .default-item[data-v-2b8ca093]:active {
80
+ .default-item[data-v-3abe32c6]:active {
81
81
  cursor: grabbing;
82
82
  }
83
- .default-item .drag-handle[data-v-2b8ca093] {
83
+ .default-item .drag-handle[data-v-3abe32c6] {
84
84
  display: flex;
85
85
  align-items: center;
86
86
  justify-content: center;
@@ -93,21 +93,21 @@
93
93
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
94
94
  flex-shrink: 0;
95
95
  }
96
- .default-item .drag-handle[data-v-2b8ca093]:hover {
96
+ .default-item .drag-handle[data-v-3abe32c6]:hover {
97
97
  background: var(--n-action-color);
98
98
  color: var(--n-primary-color);
99
99
  }
100
- .default-item .drag-handle[data-v-2b8ca093]:active {
100
+ .default-item .drag-handle[data-v-3abe32c6]:active {
101
101
  cursor: grabbing;
102
102
  }
103
- .default-item .drag-handle div[data-v-2b8ca093] {
103
+ .default-item .drag-handle div[data-v-3abe32c6] {
104
104
  font-size: 18px;
105
105
  }
106
- .default-item .item-content[data-v-2b8ca093] {
106
+ .default-item .item-content[data-v-3abe32c6] {
107
107
  flex: 1;
108
108
  min-width: 0;
109
109
  }
110
- .default-item .item-content .item-title[data-v-2b8ca093] {
110
+ .default-item .item-content .item-title[data-v-3abe32c6] {
111
111
  font-size: 16px;
112
112
  font-weight: 600;
113
113
  color: var(--n-text-color);
@@ -115,7 +115,7 @@
115
115
  margin-bottom: 4px;
116
116
  word-break: break-word;
117
117
  }
118
- .default-item .item-content .item-description[data-v-2b8ca093] {
118
+ .default-item .item-content .item-description[data-v-3abe32c6] {
119
119
  font-size: 14px;
120
120
  color: var(--n-text-color-disabled);
121
121
  line-height: 1.4;
@@ -123,7 +123,7 @@
123
123
  }
124
124
 
125
125
  /* ===== 空状态样式 ===== */
126
- .empty-state[data-v-2b8ca093] {
126
+ .empty-state[data-v-3abe32c6] {
127
127
  display: flex;
128
128
  flex-direction: column;
129
129
  align-items: center;
@@ -133,31 +133,31 @@
133
133
  border: 2px dashed var(--n-border-color);
134
134
  border-radius: 8px;
135
135
  }
136
- .empty-state .default-empty .empty-icon[data-v-2b8ca093] {
136
+ .empty-state .default-empty .empty-icon[data-v-3abe32c6] {
137
137
  font-size: 48px;
138
138
  color: var(--n-text-color-disabled);
139
139
  margin-bottom: 16px;
140
140
  }
141
- .empty-state .default-empty .empty-text[data-v-2b8ca093] {
141
+ .empty-state .default-empty .empty-text[data-v-3abe32c6] {
142
142
  color: var(--n-text-color-disabled);
143
143
  font-size: 16px;
144
144
  margin: 0;
145
145
  }
146
146
 
147
147
  /* ===== 拖拽状态样式 ===== */
148
- .sortable-ghost {
148
+ .c-draggable-ghost {
149
149
  opacity: 0.5 !important;
150
150
  background: var(--n-primary-color-suppl) !important;
151
151
  border: 2px dashed var(--n-primary-color) !important;
152
152
  transform: scale(0.98) !important;
153
153
  }
154
- .sortable-chosen {
154
+ .c-draggable-chosen {
155
155
  outline: 2px solid var(--n-primary-color) !important;
156
156
  outline-offset: 2px !important;
157
157
  transform: scale(1.02) !important;
158
158
  z-index: 999 !important;
159
159
  }
160
- .sortable-drag {
160
+ .c-draggable-drag {
161
161
  opacity: 0.9 !important;
162
162
  transform: rotate(2deg) scale(1.05) !important;
163
163
  z-index: 1000 !important;
@@ -165,78 +165,87 @@
165
165
  }
166
166
 
167
167
  /* ===== 网格布局特殊优化 ===== */
168
- .c-draggable-list.layout-grid .c-draggable-item[data-v-2b8ca093] {
168
+ .c-draggable-list.layout-grid .c-draggable-item[data-v-3abe32c6] {
169
169
  display: flex;
170
170
  flex-direction: column;
171
171
  height: 100%;
172
172
  }
173
- .c-draggable-list.layout-grid .c-draggable-item .default-item[data-v-2b8ca093] {
173
+ .c-draggable-list.layout-grid .c-draggable-item .default-item[data-v-3abe32c6] {
174
174
  flex: 1;
175
175
  height: 100%;
176
176
  min-height: 80px;
177
177
  }
178
- .c-draggable-list.layout-grid + .empty-state[data-v-2b8ca093] {
178
+ .c-draggable-list.layout-grid + .empty-state[data-v-3abe32c6] {
179
179
  grid-column: 1/-1;
180
180
  padding: 40px 20px;
181
181
  }
182
- .c-draggable-list.layout-grid + .empty-state .default-empty .empty-icon[data-v-2b8ca093] {
182
+ .c-draggable-list.layout-grid + .empty-state .default-empty .empty-icon[data-v-3abe32c6] {
183
183
  font-size: 36px;
184
184
  }
185
185
 
186
186
  /* ===== 弹性布局特殊优化 ===== */
187
- .c-draggable-list.layout-horizontal .c-draggable-item[data-v-2b8ca093],
188
- .c-draggable-list.layout-flex-wrap .c-draggable-item[data-v-2b8ca093] {
187
+ .c-draggable-list.layout-horizontal .c-draggable-item[data-v-3abe32c6],
188
+ .c-draggable-list.layout-flex-wrap .c-draggable-item[data-v-3abe32c6] {
189
189
  flex-shrink: 0;
190
190
  }
191
- .c-draggable-list.layout-horizontal .c-draggable-item[data-v-2b8ca093]:not(:last-child),
192
- .c-draggable-list.layout-flex-wrap .c-draggable-item[data-v-2b8ca093]:not(:last-child) {
191
+ .c-draggable-list.layout-horizontal .c-draggable-item[data-v-3abe32c6]:not(:last-child),
192
+ .c-draggable-list.layout-flex-wrap .c-draggable-item[data-v-3abe32c6]:not(:last-child) {
193
193
  margin-right: 0;
194
194
  }
195
- .c-draggable-list.layout-horizontal .default-item[data-v-2b8ca093],
196
- .c-draggable-list.layout-flex-wrap .default-item[data-v-2b8ca093] {
195
+ .c-draggable-list.layout-horizontal .default-item[data-v-3abe32c6],
196
+ .c-draggable-list.layout-flex-wrap .default-item[data-v-3abe32c6] {
197
197
  min-width: 200px;
198
198
  width: 100%;
199
199
  }
200
200
 
201
201
  /* ===== 响应式设计 ===== */
202
202
  @media (max-width: 768px) {
203
- .c-draggable-list.layout-grid[data-v-2b8ca093] {
203
+ .c-draggable-list.layout-grid[data-v-3abe32c6] {
204
204
  grid-template-columns: repeat(2, 1fr) !important;
205
205
  }
206
- .c-draggable-list.layout-horizontal[data-v-2b8ca093] {
206
+ .c-draggable-list.layout-horizontal[data-v-3abe32c6] {
207
207
  flex-wrap: wrap;
208
208
  }
209
- .default-item[data-v-2b8ca093] {
209
+ .default-item[data-v-3abe32c6] {
210
210
  padding: 12px;
211
211
  min-width: 150px !important;
212
212
  }
213
- .default-item .drag-handle[data-v-2b8ca093] {
213
+ .default-item .drag-handle[data-v-3abe32c6] {
214
214
  width: 20px;
215
215
  height: 20px;
216
216
  margin-right: 8px;
217
217
  }
218
- .default-item .drag-handle div[data-v-2b8ca093] {
218
+ .default-item .drag-handle div[data-v-3abe32c6] {
219
219
  font-size: 16px;
220
220
  }
221
- .default-item .item-content .item-title[data-v-2b8ca093] {
221
+ .default-item .item-content .item-title[data-v-3abe32c6] {
222
222
  font-size: 15px;
223
223
  }
224
- .default-item .item-content .item-description[data-v-2b8ca093] {
224
+ .default-item .item-content .item-description[data-v-3abe32c6] {
225
225
  font-size: 13px;
226
226
  }
227
- .empty-state[data-v-2b8ca093] {
227
+ .empty-state[data-v-3abe32c6] {
228
228
  padding: 40px 16px;
229
229
  }
230
- .empty-state .default-empty .empty-icon[data-v-2b8ca093] {
230
+ .empty-state .default-empty .empty-icon[data-v-3abe32c6] {
231
231
  font-size: 36px;
232
232
  }
233
233
  }
234
234
  @media (max-width: 480px) {
235
- .c-draggable-list.layout-grid[data-v-2b8ca093] {
235
+ .c-draggable-list.layout-grid[data-v-3abe32c6] {
236
236
  grid-template-columns: 1fr !important;
237
237
  }
238
- .default-item[data-v-2b8ca093] {
238
+ .default-item[data-v-3abe32c6] {
239
239
  min-width: 100% !important;
240
240
  padding: 10px;
241
241
  }
242
242
  }
243
+ /* unplugin-vue-components disabled */
244
+ /* layer: icons */
245
+ .i-mdi\:drag-vertical[data-v-3abe32c6]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M9 3h2v2H9zm4 0h2v2h-2zM9 7h2v2H9zm4 0h2v2h-2zm-4 4h2v2H9zm4 0h2v2h-2zm-4 4h2v2H9zm4 0h2v2h-2zm-4 4h2v2H9zm4 0h2v2h-2z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1em;height:1em;}
246
+ .i-mdi\:inbox-outline[data-v-3abe32c6]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2M5 19v-2h3.13a4.13 4.13 0 0 0 1.27 2m9.6 0h-4.4a4.13 4.13 0 0 0 1.27-2H19m0-2h-5v1a2 2 0 0 1-4 0v-1H5V5h14Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1em;height:1em;}
247
+ /* layer: default */
248
+ .grid[data-v-3abe32c6]{display:grid;}
249
+ .flex-wrap[data-v-3abe32c6]{flex-wrap:wrap;}
250
+ .px[data-v-3abe32c6]{padding-left:1rem;padding-right:1rem;}
251
+