@robot-admin/naive-ui-components 0.12.1 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.md +60 -1
- package/README_EN.md +59 -0
- package/dist/C_ActionBar.css +60 -60
- package/dist/C_ActionBar2.cjs +1 -1
- package/dist/C_ActionBar2.js +1 -1
- package/dist/C_AntV.css +49 -49
- package/dist/C_AntV2.cjs +3 -3
- package/dist/C_AntV2.js +3 -3
- package/dist/C_AudioPlayer.css +81 -66
- package/dist/C_AudioPlayer2.cjs +1 -1
- package/dist/C_AudioPlayer2.js +1 -1
- package/dist/C_AvatarGroup.css +40 -25
- package/dist/C_AvatarGroup2.cjs +1 -1
- package/dist/C_AvatarGroup2.js +1 -1
- package/dist/C_Barcode.css +6 -6
- package/dist/C_Barcode2.cjs +1 -1
- package/dist/C_Barcode2.js +1 -1
- package/dist/C_Breadcrumb.css +14 -14
- package/dist/C_Breadcrumb2.cjs +1 -1
- package/dist/C_Breadcrumb2.js +1 -1
- package/dist/C_Captcha.css +50 -50
- package/dist/C_Captcha2.cjs +1 -1
- package/dist/C_Captcha2.js +1 -1
- package/dist/C_Cascade.css +2 -2
- package/dist/C_Cascade2.cjs +1 -1
- package/dist/C_Cascade2.js +1 -1
- package/dist/C_Chat.css +96 -78
- package/dist/C_Chat2.cjs +1 -1
- package/dist/C_Chat2.js +1 -1
- package/dist/C_City.css +52 -28
- package/dist/C_City2.cjs +1 -1
- package/dist/C_City2.js +1 -1
- package/dist/C_Code.css +48 -42
- package/dist/C_Code2.cjs +1 -1
- package/dist/C_Code2.js +1 -1
- package/dist/C_CollapsePanel.css +14 -14
- package/dist/C_CollapsePanel2.cjs +1 -1
- package/dist/C_CollapsePanel2.js +1 -1
- package/dist/C_ContextMenu.css +14 -14
- package/dist/C_ContextMenu2.cjs +1 -1
- package/dist/C_ContextMenu2.js +1 -1
- package/dist/C_Cron.css +94 -55
- package/dist/C_Cron2.cjs +1 -1
- package/dist/C_Cron2.js +1 -1
- package/dist/C_Date2.cjs +1 -1
- package/dist/C_Date2.js +1 -1
- package/dist/C_Draggable.css +48 -48
- package/dist/C_Draggable2.cjs +1 -1
- package/dist/C_Draggable2.js +1 -1
- package/dist/C_Editor.css +13 -14
- package/dist/C_Editor2.cjs +1 -1
- package/dist/C_Editor2.js +1 -1
- package/dist/C_FilePreview.css +18 -18
- package/dist/C_FilePreview2.cjs +1 -1
- package/dist/C_FilePreview2.js +1 -1
- package/dist/C_Form.base.css +36 -36
- package/dist/C_Form.css +49 -50
- package/dist/C_Form2.cjs +1 -1
- package/dist/C_Form2.js +1 -1
- package/dist/C_FormModal.css +8 -8
- package/dist/C_FormModal2.cjs +1 -1
- package/dist/C_FormModal2.js +1 -1
- package/dist/C_FormSearch.css +45 -45
- package/dist/C_FormSearch2.cjs +1 -1
- package/dist/C_FormSearch2.js +1 -1
- package/dist/C_FormulaEditor.css +94 -55
- package/dist/C_FormulaEditor2.cjs +2 -2
- package/dist/C_FormulaEditor2.js +2 -2
- package/dist/C_FullCalendar.css +8 -1
- package/dist/C_FullCalendar2.cjs +1 -1
- package/dist/C_FullCalendar2.js +1 -1
- package/dist/C_GlobalSearch2.cjs +1 -1
- package/dist/C_GlobalSearch2.js +1 -1
- package/dist/C_Guide.css +137 -14
- package/dist/C_Guide.d.cts +2 -2
- package/dist/C_Guide.d.ts +2 -2
- package/dist/C_Guide2.cjs +1 -1
- package/dist/C_Guide2.js +1 -1
- package/dist/C_Icon.css +14 -14
- package/dist/C_Icon2.cjs +1 -1
- package/dist/C_Icon2.js +1 -1
- package/dist/C_ImageCropper.css +22 -22
- package/dist/C_ImageCropper2.cjs +1 -1
- package/dist/C_ImageCropper2.js +1 -1
- package/dist/C_Language.css +14 -14
- package/dist/C_Language2.cjs +1 -1
- package/dist/C_Language2.js +1 -1
- package/dist/C_Login.css +134 -134
- package/dist/C_Login2.cjs +1 -1
- package/dist/C_Login2.js +1 -1
- package/dist/C_Map.css +3 -3
- package/dist/C_Map2.cjs +1 -1
- package/dist/C_Map2.js +1 -1
- package/dist/C_Markdown.css +35 -35
- package/dist/C_Markdown2.cjs +1 -1
- package/dist/C_Markdown2.js +1 -1
- package/dist/C_Menu2.cjs +1 -1
- package/dist/C_Menu2.js +1 -1
- package/dist/C_NotificationCenter.css +30 -30
- package/dist/C_NotificationCenter2.cjs +1 -1
- package/dist/C_NotificationCenter2.js +1 -1
- package/dist/C_OrgChart.css +4 -0
- package/dist/C_OrgChart2.cjs +1 -1
- package/dist/C_OrgChart2.js +1 -1
- package/dist/C_Progress2.cjs +1 -1
- package/dist/C_Progress2.js +1 -1
- package/dist/C_QRCode.css +8 -8
- package/dist/C_QRCode2.cjs +1 -1
- package/dist/C_QRCode2.js +1 -1
- package/dist/C_Signature.css +14 -14
- package/dist/C_Signature2.cjs +1 -1
- package/dist/C_Signature2.js +1 -1
- package/dist/C_Skeleton2.cjs +1 -1
- package/dist/C_Skeleton2.js +1 -1
- package/dist/C_SplitPane.css +39 -39
- package/dist/C_SplitPane2.cjs +1 -1
- package/dist/C_SplitPane2.js +1 -1
- package/dist/C_Steps.css +48 -38
- package/dist/C_Steps2.cjs +1 -1
- package/dist/C_Steps2.js +1 -1
- package/dist/C_Table.base.css +160 -160
- package/dist/C_Table.css +173 -174
- package/dist/C_TagsView.css +52 -52
- package/dist/C_TagsView2.cjs +1 -1
- package/dist/C_TagsView2.js +1 -1
- package/dist/C_Theme.css +14 -14
- package/dist/C_Theme2.cjs +1 -1
- package/dist/C_Theme2.js +1 -1
- package/dist/C_Time.css +4 -4
- package/dist/C_Time2.cjs +1 -1
- package/dist/C_Time2.js +1 -1
- package/dist/C_Timeline.css +76 -58
- package/dist/C_Timeline2.cjs +1 -1
- package/dist/C_Timeline2.js +1 -1
- package/dist/C_Transfer.css +51 -51
- package/dist/C_Transfer2.cjs +1 -1
- package/dist/C_Transfer2.js +1 -1
- package/dist/C_Tree.css +35 -32
- package/dist/C_Tree2.cjs +1 -1
- package/dist/C_Tree2.js +1 -1
- package/dist/C_Upload.css +53 -50
- package/dist/C_Upload2.cjs +1 -1
- package/dist/C_Upload2.js +1 -1
- package/dist/C_VideoPlayer.css +17 -13
- package/dist/C_VideoPlayer2.cjs +2 -2
- package/dist/C_VideoPlayer2.js +2 -2
- package/dist/C_VtableGantt.css +19 -19
- package/dist/C_VtableGantt2.cjs +1 -1
- package/dist/C_VtableGantt2.js +1 -1
- package/dist/C_WaterFall.css +19 -15
- package/dist/C_WaterFall2.cjs +1 -1
- package/dist/C_WaterFall2.js +1 -1
- package/dist/C_WorkFlow.css +123 -123
- package/dist/C_WorkFlow2.cjs +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/constants.d.cts +3 -3
- package/dist/constants.d.ts +3 -3
- package/dist/constants2.d.cts +2 -2
- package/dist/constants2.d.ts +2 -2
- package/dist/constants3.d.cts +12 -8
- package/dist/constants3.d.ts +12 -8
- package/dist/constants4.d.cts +9 -9
- package/dist/constants4.d.ts +9 -9
- package/dist/constants5.d.cts +4 -4
- package/dist/constants5.d.ts +4 -4
- package/dist/data.d.cts +11 -11
- package/dist/data.d.ts +11 -11
- package/dist/data2.cjs +1 -1
- package/dist/data2.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +2 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.vue.d.cts +7 -5
- package/dist/index.vue.d.ts +7 -5
- package/dist/index10.vue.d.cts +2 -2
- package/dist/index10.vue.d.ts +2 -2
- package/dist/index11.vue.d.cts +2 -2
- package/dist/index11.vue.d.ts +5 -5
- package/dist/index12.vue.d.cts +5 -5
- package/dist/index12.vue.d.ts +2 -2
- package/dist/index13.vue.d.cts +2 -2
- package/dist/index13.vue.d.ts +35 -9
- package/dist/index14.vue.d.cts +35 -9
- package/dist/index14.vue.d.ts +15 -48
- package/dist/index15.vue.d.cts +15 -48
- package/dist/index17.vue.d.ts +4 -4
- package/dist/index18.vue.d.cts +4 -4
- package/dist/index18.vue.d.ts +2 -2
- package/dist/index19.vue.d.cts +2 -2
- package/dist/index19.vue.d.ts +2 -2
- package/dist/index2.vue.d.cts +3 -3
- package/dist/index2.vue.d.ts +3 -3
- package/dist/index20.vue.d.cts +2 -2
- package/dist/index20.vue.d.ts +2 -2
- package/dist/index21.vue.d.cts +3 -3
- package/dist/index21.vue.d.ts +3 -3
- package/dist/index22.vue.d.cts +1 -1
- package/dist/index22.vue.d.ts +1 -1
- package/dist/index24.vue.d.cts +3 -3
- package/dist/index24.vue.d.ts +3 -3
- package/dist/index26.vue.d.cts +1 -1
- package/dist/index26.vue.d.ts +1 -1
- package/dist/index27.vue.d.cts +1 -1
- package/dist/index27.vue.d.ts +1 -1
- package/dist/index3.vue.d.cts +8 -8
- package/dist/index3.vue.d.ts +8 -8
- package/dist/index4.vue.d.cts +2 -2
- package/dist/index6.vue.d.ts +1 -1
- package/dist/index7.vue.d.cts +1 -1
- package/dist/index8.vue.d.ts +3 -3
- package/dist/index9.vue.d.cts +3 -3
- package/dist/index9.vue.d.ts +2 -2
- package/dist/mapUtils.d.cts +4 -4
- package/dist/mapUtils.d.ts +4 -4
- package/dist/style.css +1698 -1365
- package/dist/useCalendarEvents.d.cts +23 -18
- package/dist/useCalendarEvents.d.ts +23 -18
- package/dist/useCollapsePanel.d.cts +1 -0
- package/dist/useCollapsePanel.d.ts +1 -0
- package/dist/useCropperCore.d.cts +32 -17
- package/dist/useCropperCore.d.ts +32 -17
- package/dist/useDraggableLayout.d.cts +3 -3
- package/dist/useDraggableLayout.d.ts +3 -3
- package/dist/useDynamicFormState.d.cts +5 -0
- package/dist/useDynamicFormState.d.ts +5 -0
- package/dist/useEdgeInteraction.d.cts +19 -19
- package/dist/useEdgeInteraction.d.ts +19 -19
- package/dist/useFullscreen.d.cts +6 -6
- package/dist/useFullscreen.d.ts +6 -6
- package/dist/useInfiniteScroll.d.cts +2 -2
- package/dist/useInfiniteScroll.d.ts +2 -2
- package/dist/useQRCode.d.cts +6 -5
- package/dist/useQRCode.d.ts +6 -5
- package/dist/useSearchState.d.cts +7 -7
- package/dist/useSearchState.d.ts +7 -7
- package/dist/useSignatureHistory.d.cts +16 -8
- package/dist/useSignatureHistory.d.ts +16 -8
- package/dist/useSplitResize.d.cts +4 -4
- package/dist/useSplitResize.d.ts +4 -4
- package/dist/useTableQuery.cjs +3 -3
- package/dist/useTableQuery.d.cts +2 -5
- package/dist/useTableQuery.d.ts +2 -5
- package/dist/useTableQuery.js +3 -3
- package/dist/useTimeSelection.d.cts +5 -2
- package/dist/useTimeSelection.d.ts +5 -2
- package/dist/useTreeOperations.d.cts +6 -6
- package/dist/useTreeOperations.d.ts +6 -6
- package/dist/useWorkflowValidation.d.cts +4 -2
- package/dist/useWorkflowValidation.d.ts +4 -2
- package/dist/verification.d.cts +3 -3
- package/dist/verification.d.ts +3 -3
- package/package.json +4 -3
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=(0,n.ref)(structuredClone(o));function t(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 r(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,i]=e.split(`/`).map(Number);return r(t,`step`,{stepStart:isNaN(n)?t.min:n,stepInterval:isNaN(i)?1:i})}function s(e,t){let[n,i]=e.split(`-`).map(Number);return r(t,`range`,{rangeStart:isNaN(n)?t.min:n,rangeEnd:isNaN(i)?t.max:i})}function c(e,t){let n=i.find(e=>e.type===t);if(e===`?`)return r(n,`none`);if(e===`*`)return r(n,`every`);if(e.includes(`/`))return a(e,n);if(e.includes(`-`)&&!e.includes(`,`))return s(e,n);let o=e.split(`,`).map(Number).filter(e=>!isNaN(e));return o.length>0?r(n,`specific`,{specificValues:o}):r(n,`every`)}function l(){return d.map(n=>t(e.value[n])).join(` `)}function u(t){let n=t.trim().split(/\s+/);n.length<6||d.forEach((t,r)=>{e.value[t]=c(n[r],t)})}function f(t){t===`day`?e.value.day.mode!==`none`&&(e.value.week={...e.value.week,mode:`none`}):e.value.week.mode!==`none`&&(e.value.day={...e.value.day,mode:`none`})}function p(e){let t=(e??l()).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=_(r,i.find(e=>e.type===n));if(!a.valid)return{...a,field:n}}return{valid:!0,message:`表达式合法`}}function m(e,t){let[n,r]=e.split(`/`),i=n===`*`?t.min:Number(n),a=Number(r);return isNaN(i)||isNaN(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 h(e,t){let[n,r]=e.split(`-`).map(Number);return isNaN(n)||isNaN(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 g(e,t){let n=e.split(`,`).map(Number);return n.some(isNaN)?{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 _(e,t){return e===`*`||e===`?`?{valid:!0,message:``}:e.includes(`/`)?m(e,t):e.includes(`-`)&&!e.includes(`,`)?h(e,t):g(e,t)}return{cronValue:e,expression:(0,n.computed)(()=>l()),validation:(0,n.computed)(()=>p()),parse:u,generate:l,validate:p,handleDayWeekExclusion:f}}function p(e,t,r){let i=(0,n.ref)([]),a=(0,n.ref)(!1),o=0,s=null;function c(e,t){if(t===`*`||t===`?`)return!0;if(t.includes(`/`)){let[n,r]=t.split(`/`),i=n===`*`?0:Number(n),a=Number(r);return e-i>=0&&(e-i)%a===0}if(t.includes(`-`)&&!t.includes(`,`)){let[n,r]=t.split(`-`).map(Number);return e>=n&&e<=r}return t.split(`,`).map(Number).includes(e)}function l(e,t){if(t.length!==6)return!1;let[n,r,i,a,o,s]=t;return!(!c(e.getMonth()+1,o)||a!==`?`&&!c(e.getDate(),a)||s!==`?`&&!c(e.getDay()+1,s)||!c(e.getHours(),i)||!c(e.getMinutes(),r)||!c(e.getSeconds(),n))}async function u(n){let i=e.value;if(!i||!t.value.valid)return[];let a=i.trim().split(/\s+/);if(a.length!==6)return[];let s=[],c=new Date,u=new Date(c.getTime()+1e3);u.setMilliseconds(0);let d=/^\d{1,2}$/.test(a[0])?Number(a[0]):null,f=d===null,p=f?1e3:6e4;f||(u.setSeconds(d??0),u.getTime()<=c.getTime()&&u.setTime(u.getTime()+6e4));let m=Math.min(100,Math.max(1,Math.trunc(r.value)));for(let e=0;e<525600&&s.length<m;e++){if(n!==o)return[];l(u,a)&&s.push(new Date(u)),u.setTime(u.getTime()+p),e>0&&e%1e4==0&&await new Promise(e=>setTimeout(e,0))}return s}(0,n.watch)([e,r,t],()=>{o+=1;let e=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 u(e);e===o&&(i.value=t,a.value=!1,s=null)},0)},{immediate:!0}),(0,n.onScopeDispose)(()=>{o+=1,s&&clearTimeout(s)});function d(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 f(e){return[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`][e.getDay()]}return{nextExecutions:i,computing:a,formatDate:d,formatWeekDay:f}}function m(e){return u[Number(e)]||`周${e}`}function h(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)?`每${m(e)}`:e.includes(`/`)?`从${m(e.split(`/`)[0])}开始每 ${e.split(`/`)[1]} 天`:e.includes(`-`)?`${m(e.split(`-`)[0])}到${m(e.split(`-`)[1])}`:e.includes(`,`)?`每${e.split(`,`).map(m).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 g={class:`cron-field-editor`},_=[`onClick`],v=(0,n.defineComponent)({__name:`CronFieldEditor`,props:{modelValue:{},meta:{}},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+=e.stepInterval)n.add(r);break;case`specific`:e.specificValues.forEach(e=>n.add(e));break}return n});function c(e){if(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`,g,[(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)(`div`,{key:t.value,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`}]),onClick:e=>c(t.value)},(0,n.toDisplayString)(t.label),11,_))),128))],4)]))}});var ee=t.t(v,[[`__scopeId`,`data-v-e6fa8e5b`]]);const y={class:`cron-preview`},b={class:`cron-preview__header`},x={key:0,class:`cron-preview__list`},S={class:`cron-preview__idx`},C={class:`cron-preview__date`},w={class:`cron-preview__week`},T=(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`,y,[(0,n.createElementVNode)(`div`,b,[(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`,x,[((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`,S,(0,n.toDisplayString)(r+1),1),(0,n.createElementVNode)(`span`,C,(0,n.toDisplayString)(t.formatDate(e)),1),(0,n.createElementVNode)(`span`,w,(0,n.toDisplayString)(t.formatWeekDay(e)),1)]))),128))])):((0,n.openBlock)(),(0,n.createBlock)(s,{key:1,size:`small`,description:`暂无匹配`}))]),_:1})])}}});var te=t.t(T,[[`__scopeId`,`data-v-a695bb32`]]);const E={class:`cron-templates`},D={class:`cron-templates__header`},O={class:`cron-templates__cards`},k=[`onClick`],A={class:`cron-templates__card-name`},j={class:`cron-templates__card-expr`},M=(0,n.defineComponent)({__name:`CronTemplates`,props:{templates:{},currentValue:{}},emits:[`select`],setup(t){return(r,i)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,E,[(0,n.createElementVNode)(`div`,D,[(0,n.createVNode)(e.t,{name:`mdi:lightning-bolt`,size:15}),i[0]||=(0,n.createElementVNode)(`span`,null,`常用模板`,-1)]),(0,n.createElementVNode)(`div`,O,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.templates,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.value,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`,A,(0,n.toDisplayString)(e.label),1),(0,n.createElementVNode)(`div`,j,(0,n.toDisplayString)(e.value),1)],10,k))),128))])]))}});var ne=t.t(M,[[`__scopeId`,`data-v-fe320f38`]]);const re={class:`c-cron__header`},ie={class:`c-cron__title-row`},ae={class:`c-cron__title`},N={class:`c-cron__segments`},P=[`onClick`],F={class:`c-cron__segment-value`},I={class:`c-cron__segment-label`},L={class:`c-cron__expr-row`},R={class:`c-cron__expr-desc`},z={key:0,class:`c-cron__description`},B={key:1,class:`c-cron__error`},V={class:`c-cron__body`},H={class:`c-cron__main`},U={class:`c-cron__panel`},W={key:0,class:`c-cron__config`},G={class:`c-cron__config-row`},K={key:1,class:`c-cron__config`},q={class:`c-cron__config-row`},oe={key:2,class:`c-cron__quick`},se={key:0,class:`c-cron__quick-count`},ce={key:0,class:`c-cron__footer`},J=(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:m,validation:g,parse:_,validate:v,handleDayWeekExclusion:y}=f(),{nextExecutions:b,computing:x,formatDate:S,formatWeekDay:C}=p(m,g,(0,n.computed)(()=>l.previewCount??10)),{description:w}=h(m,g),T=(0,n.ref)(l.modelValue||s),E=(0,n.ref)(l.showSecond?`second`:`minute`),D=(0,n.computed)(()=>typeof l.height==`number`?`${l.height}px`:l.height),O=(0,n.computed)(()=>l.showSecond?i:i.filter(e=>e.type!==`second`)),k=(0,n.computed)(()=>i.find(e=>e.type===E.value)),A=(0,n.computed)(()=>d.value[E.value]);function j(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 M=(0,n.computed)(()=>{let e={};for(let t of i)e[t.type]=j(d.value[t.type]);return e});(0,n.onMounted)(()=>{let e=l.modelValue||s;_(e),T.value=e}),(0,n.watch)(()=>l.modelValue,e=>{e&&e!==m.value&&(_(e),T.value=e)}),(0,n.watch)(()=>l.showSecond,e=>{!e&&E.value===`second`&&(E.value=`minute`)}),(0,n.watch)(m,e=>{T.value=e,u(`update:modelValue`,e),u(`change`,e)}),(0,n.watch)(g,e=>{u(`validation-change`,e)});function J(e,t){d.value[e]=t,(e===`day`||e===`week`)&&y(e)}function Y(e){J(E.value,{...A.value,mode:e})}function X(e){J(E.value,{...A.value,...e})}function Z(){let{min:e,max:t}=k.value,n=Array.from({length:t-e+1},(t,n)=>e+n);J(E.value,{...A.value,specificValues:n})}function le(){J(E.value,{...A.value,specificValues:[]})}function ue(e){T.value=e}function Q(){let e=T.value.trim();e&&e!==m.value&&_(e)}function de(e){_(e),T.value=e}function $(){let e=l.modelValue||s;_(e),T.value=e}return a({getValue:()=>m.value,setValue:e=>{_(e),T.value=e},reset:$,validate:()=>v()}),(t,i)=>{let a=r.NTag,o=r.NInput,s=r.NButton,u=r.NRadioButton,f=r.NRadioGroup,p=r.NInputNumber;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:`c-cron`,style:(0,n.normalizeStyle)({height:D.value})},[(0,n.createCommentVNode)(` ═══════ 顶部 ═══════ `),(0,n.createElementVNode)(`div`,re,[(0,n.createCommentVNode)(` 标题行 `),(0,n.createElementVNode)(`div`,ie,[(0,n.createElementVNode)(`div`,ae,[(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:(0,n.unref)(g).valid?`success`:`error`,size:`small`,round:``},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:(0,n.unref)(g).valid?`mdi:check-circle`:`mdi:alert-circle`},null,8,[`name`])]),default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` `+(0,n.toDisplayString)((0,n.unref)(g).valid?`合法`:`错误`),1)]),_:1},8,[`type`])]),(0,n.createCommentVNode)(` 分段式字段选择器 `),(0,n.createElementVNode)(`div`,N,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(O.value,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.type,class:(0,n.normalizeClass)([`c-cron__segment`,{"c-cron__segment--active":E.value===e.type,"c-cron__segment--wildcard":M.value[e.type]===`*`||M.value[e.type]===`?`}]),onClick:t=>E.value=e.type},[(0,n.createElementVNode)(`div`,F,(0,n.toDisplayString)(M.value[e.type]),1),(0,n.createElementVNode)(`div`,I,(0,n.toDisplayString)(e.label),1)],10,P))),128))]),(0,n.createCommentVNode)(` 表达式行:输入 + 重置 + 描述 `),(0,n.createElementVNode)(`div`,L,[(0,n.createVNode)(o,{value:T.value,status:(0,n.unref)(g).valid?void 0:`error`,placeholder:`秒 分 时 日 月 周`,disabled:l.disabled,font:`mono`,size:`small`,clearable:``,class:`c-cron__expr-input`,"onUpdate:value":ue,onBlur:Q,onKeydown:(0,n.withKeys)(Q,[`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`,R,[(0,n.unref)(g).valid?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,z,(0,n.toDisplayString)((0,n.unref)(w)),1)):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,B,(0,n.toDisplayString)((0,n.unref)(g).message),1))])])]),(0,n.createCommentVNode)(` ═══════ 主内容 ═══════ `),(0,n.createElementVNode)(`div`,V,[(0,n.createCommentVNode)(` 左侧:值网格 `),(0,n.createElementVNode)(`div`,H,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(O.value,e=>(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createBlock)(ee,{key:e.type,"model-value":(0,n.unref)(d)[e.type],meta:e,"onUpdate:modelValue":t=>J(e.type,t)},null,8,[`model-value`,`meta`,`onUpdate:modelValue`])),[[n.vShow,E.value===e.type]])),128))]),(0,n.createCommentVNode)(` 右侧:控制面板 `),(0,n.createElementVNode)(`div`,U,[(0,n.createVNode)(f,{value:A.value.mode,size:`small`,"onUpdate:value":Y},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(u,{value:`every`},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` 每`+(0,n.toDisplayString)(k.value.label),1)]),_:1}),E.value===`day`||E.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`]),(0,n.createCommentVNode)(` 范围配置 `),A.value.mode===`range`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,W,[(0,n.createElementVNode)(`div`,G,[i[9]||=(0,n.createElementVNode)(`span`,null,`从`,-1),(0,n.createVNode)(p,{value:A.value.rangeStart,min:k.value.min,max:k.value.max,size:`small`,"show-button":!1,class:`c-cron__config-num`,"onUpdate:value":i[0]||=e=>X({rangeStart:e??k.value.min})},null,8,[`value`,`min`,`max`]),i[10]||=(0,n.createElementVNode)(`span`,null,`到`,-1),(0,n.createVNode)(p,{value:A.value.rangeEnd,min:k.value.min,max:k.value.max,size:`small`,"show-button":!1,class:`c-cron__config-num`,"onUpdate:value":i[1]||=e=>X({rangeEnd:e??k.value.max})},null,8,[`value`,`min`,`max`])])])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 步进配置 `),A.value.mode===`step`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,K,[(0,n.createElementVNode)(`div`,q,[i[11]||=(0,n.createElementVNode)(`span`,null,`从第`,-1),(0,n.createVNode)(p,{value:A.value.stepStart,min:k.value.min,max:k.value.max,size:`small`,"show-button":!1,class:`c-cron__config-num`,"onUpdate:value":i[2]||=e=>X({stepStart:e??k.value.min})},null,8,[`value`,`min`,`max`]),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(k.value.label)+`起,每`,1),(0,n.createVNode)(p,{value:A.value.stepInterval,min:1,max:k.value.max-k.value.min+1,size:`small`,"show-button":!1,class:`c-cron__config-num`,"onUpdate:value":i[3]||=e=>X({stepInterval:e??1})},null,8,[`value`,`max`]),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(k.value.label)+`执行`,1)])])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 指定快捷操作 `),A.value.mode===`specific`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,oe,[(0,n.createElementVNode)(`a`,{onClick:Z},`全选`),i[12]||=(0,n.createElementVNode)(`span`,{class:`c-cron__quick-sep`},`·`,-1),(0,n.createElementVNode)(`a`,{onClick:le},`清空`),A.value.specificValues.length>0?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,se,` 已选 `+(0,n.toDisplayString)(A.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),(0,n.createVNode)(te,{"next-executions":(0,n.unref)(b),computing:(0,n.unref)(x),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`])],64)):(0,n.createCommentVNode)(`v-if`,!0)])]),(0,n.createCommentVNode)(` ═══════ 底部模板 ═══════ `),l.showTemplates?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ce,[(0,n.createVNode)(ne,{templates:(0,n.unref)(c),"current-value":(0,n.unref)(m),onSelect:de},null,8,[`templates`,`current-value`])])):(0,n.createCommentVNode)(`v-if`,!0)],4)}}});var Y=t.t(J,[[`__scopeId`,`data-v-06e7be26`]]);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 h}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Y}}),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-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}});
|
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 le(){let e=g(structuredClone(O));function t(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 n(e,t,n={}){return{mode:t,rangeStart:e.min,rangeEnd:e.max,stepStart:e.min,stepInterval:1,specificValues:[],...n}}function i(e,t){let[r,i]=e.split(`/`).map(Number);return n(t,`step`,{stepStart:isNaN(r)?t.min:r,stepInterval:isNaN(i)?1:i})}function a(e,t){let[r,i]=e.split(`-`).map(Number);return n(t,`range`,{rangeStart:isNaN(r)?t.min:r,rangeEnd:isNaN(i)?t.max:i})}function o(e,t){let r=E.find(e=>e.type===t);if(e===`?`)return n(r,`none`);if(e===`*`)return n(r,`every`);if(e.includes(`/`))return i(e,r);if(e.includes(`-`)&&!e.includes(`,`))return a(e,r);let o=e.split(`,`).map(Number).filter(e=>!isNaN(e));return o.length>0?n(r,`specific`,{specificValues:o}):n(r,`every`)}function s(){return N.map(n=>t(e.value[n])).join(` `)}function c(t){let n=t.trim().split(/\s+/);n.length<6||N.forEach((t,r)=>{e.value[t]=o(n[r],t)})}function l(t){t===`day`?e.value.day.mode!==`none`&&(e.value.week={...e.value.week,mode:`none`}):e.value.week.mode!==`none`&&(e.value.day={...e.value.day,mode:`none`})}function u(e){let t=(e??s()).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=m(r,E.find(e=>e.type===n));if(!i.valid)return{...i,field:n}}return{valid:!0,message:`表达式合法`}}function d(e,t){let[n,r]=e.split(`/`),i=n===`*`?t.min:Number(n),a=Number(r);return isNaN(i)||isNaN(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 f(e,t){let[n,r]=e.split(`-`).map(Number);return isNaN(n)||isNaN(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 p(e,t){let n=e.split(`,`).map(Number);return n.some(isNaN)?{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 m(e,t){return e===`*`||e===`?`?{valid:!0,message:``}:e.includes(`/`)?d(e,t):e.includes(`-`)&&!e.includes(`,`)?f(e,t):p(e,t)}return{cronValue:e,expression:r(()=>s()),validation:r(()=>u()),parse:c,generate:s,validate:u,handleDayWeekExclusion:l}}function P(e,t,n){let r=g([]),i=g(!1),a=0,o=null;function s(e,t){if(t===`*`||t===`?`)return!0;if(t.includes(`/`)){let[n,r]=t.split(`/`),i=n===`*`?0:Number(n),a=Number(r);return e-i>=0&&(e-i)%a===0}if(t.includes(`-`)&&!t.includes(`,`)){let[n,r]=t.split(`-`).map(Number);return e>=n&&e<=r}return t.split(`,`).map(Number).includes(e)}function c(e,t){if(t.length!==6)return!1;let[n,r,i,a,o,c]=t;return!(!s(e.getMonth()+1,o)||a!==`?`&&!s(e.getDate(),a)||c!==`?`&&!s(e.getDay()+1,c)||!s(e.getHours(),i)||!s(e.getMinutes(),r)||!s(e.getSeconds(),n))}async function l(r){let i=e.value;if(!i||!t.value.valid)return[];let o=i.trim().split(/\s+/);if(o.length!==6)return[];let s=[],l=new Date,u=new Date(l.getTime()+1e3);u.setMilliseconds(0);let d=/^\d{1,2}$/.test(o[0])?Number(o[0]):null,f=d===null,p=f?1e3:6e4;f||(u.setSeconds(d??0),u.getTime()<=l.getTime()&&u.setTime(u.getTime()+6e4));let m=Math.min(100,Math.max(1,Math.trunc(n.value)));for(let e=0;e<525600&&s.length<m;e++){if(r!==a)return[];c(u,o)&&s.push(new Date(u)),u.setTime(u.getTime()+p),e>0&&e%1e4==0&&await new Promise(e=>setTimeout(e,0))}return s}x([e,n,t],()=>{a+=1;let e=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);e===a&&(r.value=t,i.value=!1,o=null)},0)},{immediate:!0}),m(()=>{a+=1,o&&clearTimeout(o)});function u(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 d(e){return[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`][e.getDay()]}return{nextExecutions:r,computing:i,formatDate:u,formatWeekDay:d}}function F(e){return M[Number(e)]||`周${e}`}function I(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)?`每${F(e)}`:e.includes(`/`)?`从${F(e.split(`/`)[0])}开始每 ${e.split(`/`)[1]} 天`:e.includes(`-`)?`${F(e.split(`-`)[0])}到${F(e.split(`-`)[1])}`:e.includes(`,`)?`每${e.split(`,`).map(F).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 L={class:`cron-field-editor`},R=[`onClick`];var ue=t(u({__name:`CronFieldEditor`,props:{modelValue:{},meta:{}},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+=e.stepInterval)n.add(r);break;case`specific`:e.specificValues.forEach(e=>n.add(e));break}return n});function p(e){if(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`,L,[s(`div`,{class:`cron-field-editor__grid`,style:f({"--cols":c.value})},[(h(!0),o(n,null,_(l.value,t=>(h(),o(`div`,{key:t.value,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`}]),onClick:e=>p(t.value)},y(t.label),11,R))),128))],4)]))}}),[[`__scopeId`,`data-v-e6fa8e5b`]]);const z={class:`cron-preview`},B={class:`cron-preview__header`},V={key:0,class:`cron-preview__list`},H={class:`cron-preview__idx`},U={class:`cron-preview__date`},W={class:`cron-preview__week`};var de=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`,z,[s(`div`,B,[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`,V,[(h(!0),o(n,null,_(t.nextExecutions,(e,n)=>(h(),o(`div`,{key:n,class:`cron-preview__item`},[s(`span`,H,y(n+1),1),s(`span`,U,y(t.formatDate(e)),1),s(`span`,W,y(t.formatWeekDay(e)),1)]))),128))])):(h(),i(d,{key:1,size:`small`,description:`暂无匹配`}))]),_:1})])}}}),[[`__scopeId`,`data-v-a695bb32`]]);const G={class:`cron-templates`},K={class:`cron-templates__header`},q={class:`cron-templates__cards`},J=[`onClick`],Y={class:`cron-templates__card-name`},X={class:`cron-templates__card-expr`};var fe=t(u({__name:`CronTemplates`,props:{templates:{},currentValue:{}},emits:[`select`],setup(t){return(r,i)=>(h(),o(`div`,G,[s(`div`,K,[l(e,{name:`mdi:lightning-bolt`,size:15}),i[0]||=s(`span`,null,`常用模板`,-1)]),s(`div`,q,[(h(!0),o(n,null,_(t.templates,e=>(h(),o(`div`,{key:e.value,class:d([`cron-templates__card`,{"cron-templates__card--active":e.value===t.currentValue}]),onClick:t=>r.$emit(`select`,e.value)},[s(`div`,Y,y(e.label),1),s(`div`,X,y(e.value),1)],10,J))),128))])]))}}),[[`__scopeId`,`data-v-fe320f38`]]);const pe={class:`c-cron__header`},me={class:`c-cron__title-row`},he={class:`c-cron__title`},ge={class:`c-cron__segments`},_e=[`onClick`],ve={class:`c-cron__segment-value`},ye={class:`c-cron__segment-label`},be={class:`c-cron__expr-row`},xe={class:`c-cron__expr-desc`},Se={key:0,class:`c-cron__description`},Ce={key:1,class:`c-cron__error`},we={class:`c-cron__body`},Te={class:`c-cron__main`},Ee={class:`c-cron__panel`},De={key:0,class:`c-cron__config`},Oe={class:`c-cron__config-row`},ke={key:1,class:`c-cron__config`},Ae={class:`c-cron__config-row`},je={key:2,class:`c-cron__quick`},Me={key:0,class:`c-cron__quick-count`},Ne={key:0,class:`c-cron__footer`};var Z=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}=le(),{nextExecutions:N,computing:F,formatDate:L,formatWeekDay:R}=P(T,D,r(()=>v.previewCount??10)),{description:z}=I(T,D),B=g(v.modelValue||k),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(()=>{let e=v.modelValue||k;O(e),B.value=e}),x(()=>v.modelValue,e=>{e&&e!==T.value&&(O(e),B.value=e)}),x(()=>v.showSecond,e=>{!e&&V.value===`second`&&(V.value=`minute`)}),x(T,e=>{B.value=e,C(`update:modelValue`,e),C(`change`,e)}),x(D,e=>{C(`validation-change`,e)});function J(e,t){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 Z(){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 Pe(){J(V.value,{...G.value,specificValues:[]})}function Fe(e){B.value=e}function Q(){let e=B.value.trim();e&&e!==T.value&&O(e)}function Ie(e){O(e),B.value=e}function $(){let e=v.modelValue||k;O(e),B.value=e}return u({getValue:()=>T.value,setValue:e=>{O(e),B.value=e},reset:$,validate:()=>j()}),(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`,pe,[a(` 标题行 `),s(`div`,me,[s(`div`,he,[l(e,{name:`mdi:clock-edit-outline`,size:18}),r[4]||=s(`span`,null,`Cron 表达式`,-1)]),l(u,{type:b(D).valid?`success`:`error`,size:`small`,round:``},{icon:S(()=>[l(e,{name:b(D).valid?`mdi:check-circle`:`mdi:alert-circle`},null,8,[`name`])]),default:S(()=>[c(` `+y(b(D).valid?`合法`:`错误`),1)]),_:1},8,[`type`])]),a(` 分段式字段选择器 `),s(`div`,ge,[(h(!0),o(n,null,_(U.value,e=>(h(),o(`div`,{key:e.type,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]===`?`}]),onClick:t=>V.value=e.type},[s(`div`,ve,y(q.value[e.type]),1),s(`div`,ye,y(e.label),1)],10,_e))),128))]),a(` 表达式行:输入 + 重置 + 描述 `),s(`div`,be,[l(p,{value:B.value,status:b(D).valid?void 0:`error`,placeholder:`秒 分 时 日 月 周`,disabled:v.disabled,font:`mono`,size:`small`,clearable:``,class:`c-cron__expr-input`,"onUpdate:value":Fe,onBlur:Q,onKeydown:ne(Q,[`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`,xe,[b(D).valid?(h(),o(`span`,Se,y(b(z)),1)):(h(),o(`span`,Ce,y(b(D).message),1))])])]),a(` ═══════ 主内容 ═══════ `),s(`div`,we,[a(` 左侧:值网格 `),s(`div`,Te,[(h(!0),o(n,null,_(U.value,e=>te((h(),i(ue,{key:e.type,"model-value":b(w)[e.type],meta:e,"onUpdate:modelValue":t=>J(e.type,t)},null,8,[`model-value`,`meta`,`onUpdate:modelValue`])),[[ee,V.value===e.type]])),128))]),a(` 右侧:控制面板 `),s(`div`,Ee,[l(x,{value:G.value.mode,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`]),a(` 范围配置 `),G.value.mode===`range`?(h(),o(`div`,De,[s(`div`,Oe,[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,class:`c-cron__config-num`,"onUpdate:value":r[0]||=e=>X({rangeStart:e??W.value.min})},null,8,[`value`,`min`,`max`]),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,class:`c-cron__config-num`,"onUpdate:value":r[1]||=e=>X({rangeEnd:e??W.value.max})},null,8,[`value`,`min`,`max`])])])):a(`v-if`,!0),a(` 步进配置 `),G.value.mode===`step`?(h(),o(`div`,ke,[s(`div`,Ae,[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,class:`c-cron__config-num`,"onUpdate:value":r[2]||=e=>X({stepStart:e??W.value.min})},null,8,[`value`,`min`,`max`]),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,class:`c-cron__config-num`,"onUpdate:value":r[3]||=e=>X({stepInterval:e??1})},null,8,[`value`,`max`]),s(`span`,null,y(W.value.label)+`执行`,1)])])):a(`v-if`,!0),a(` 指定快捷操作 `),G.value.mode===`specific`?(h(),o(`div`,je,[s(`a`,{onClick:Z},`全选`),r[12]||=s(`span`,{class:`c-cron__quick-sep`},`·`,-1),s(`a`,{onClick:Pe},`清空`),G.value.specificValues.length>0?(h(),o(`span`,Me,` 已选 `+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),l(de,{"next-executions":b(N),computing:b(F),count:v.previewCount??5,"format-date":b(L),"format-week-day":b(R)},null,8,[`next-executions`,`computing`,`count`,`format-date`,`format-week-day`])],64)):a(`v-if`,!0)])]),a(` ═══════ 底部模板 ═══════ `),v.showTemplates?(h(),o(`div`,Ne,[l(fe,{templates:b(A),"current-value":b(T),onSelect:Ie},null,8,[`templates`,`current-value`])])):a(`v-if`,!0)],4)}}}),[[`__scopeId`,`data-v-06e7be26`]]);export{E as a,O as c,M as d,le as i,D as l,I as n,A as o,P as r,k as s,Z 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-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};
|
package/dist/C_Date2.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./chunk.cjs`);let e=require(`vue`),t=require(`naive-ui`);
|
|
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}});
|
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";
|
|
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};
|
package/dist/C_Draggable.css
CHANGED
|
@@ -1,67 +1,67 @@
|
|
|
1
1
|
/* unplugin-vue-components disabled *//* ===== 容器布局样式 ===== */
|
|
2
|
-
.c-draggable-wrapper[data-v-
|
|
2
|
+
.c-draggable-wrapper[data-v-2b8ca093] {
|
|
3
3
|
position: relative;
|
|
4
4
|
width: 100%;
|
|
5
5
|
}
|
|
6
|
-
.c-draggable-list[data-v-
|
|
6
|
+
.c-draggable-list[data-v-2b8ca093] {
|
|
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-
|
|
13
|
+
.c-draggable-list.layout-vertical[data-v-2b8ca093] {
|
|
14
14
|
flex-direction: column;
|
|
15
15
|
}
|
|
16
|
-
.c-draggable-list[data-v-
|
|
16
|
+
.c-draggable-list[data-v-2b8ca093] {
|
|
17
17
|
/* 水平布局 */
|
|
18
18
|
}
|
|
19
|
-
.c-draggable-list.layout-horizontal[data-v-
|
|
19
|
+
.c-draggable-list.layout-horizontal[data-v-2b8ca093] {
|
|
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-
|
|
24
|
+
.c-draggable-list.layout-horizontal.flex-wrap[data-v-2b8ca093] {
|
|
25
25
|
flex-wrap: wrap;
|
|
26
26
|
}
|
|
27
|
-
.c-draggable-list[data-v-
|
|
27
|
+
.c-draggable-list[data-v-2b8ca093] {
|
|
28
28
|
/* 弹性换行布局 */
|
|
29
29
|
}
|
|
30
|
-
.c-draggable-list.layout-flex-wrap[data-v-
|
|
30
|
+
.c-draggable-list.layout-flex-wrap[data-v-2b8ca093] {
|
|
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-
|
|
36
|
+
.c-draggable-list[data-v-2b8ca093] {
|
|
37
37
|
/* 网格布局 */
|
|
38
38
|
}
|
|
39
|
-
.c-draggable-list.layout-grid[data-v-
|
|
39
|
+
.c-draggable-list.layout-grid[data-v-2b8ca093] {
|
|
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-
|
|
46
|
+
.c-draggable-list.layout-grid > .c-draggable-item[data-v-2b8ca093] {
|
|
47
47
|
width: 100%;
|
|
48
48
|
box-sizing: border-box;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
/* ===== 拖拽项目基础样式 ===== */
|
|
52
|
-
.c-draggable-item[data-v-
|
|
52
|
+
.c-draggable-item[data-v-2b8ca093] {
|
|
53
53
|
position: relative;
|
|
54
54
|
}
|
|
55
|
-
.c-draggable-item.is-disabled[data-v-
|
|
55
|
+
.c-draggable-item.is-disabled[data-v-2b8ca093] {
|
|
56
56
|
opacity: 0.6;
|
|
57
57
|
cursor: not-allowed;
|
|
58
58
|
}
|
|
59
|
-
.c-draggable-item.is-disabled[data-v-
|
|
59
|
+
.c-draggable-item.is-disabled[data-v-2b8ca093] * {
|
|
60
60
|
cursor: not-allowed !important;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
/* ===== 默认项目样式 ===== */
|
|
64
|
-
.default-item[data-v-
|
|
64
|
+
.default-item[data-v-2b8ca093] {
|
|
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-
|
|
75
|
+
.default-item[data-v-2b8ca093]: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-
|
|
80
|
+
.default-item[data-v-2b8ca093]:active {
|
|
81
81
|
cursor: grabbing;
|
|
82
82
|
}
|
|
83
|
-
.default-item .drag-handle[data-v-
|
|
83
|
+
.default-item .drag-handle[data-v-2b8ca093] {
|
|
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-
|
|
96
|
+
.default-item .drag-handle[data-v-2b8ca093]:hover {
|
|
97
97
|
background: var(--n-action-color);
|
|
98
98
|
color: var(--n-primary-color);
|
|
99
99
|
}
|
|
100
|
-
.default-item .drag-handle[data-v-
|
|
100
|
+
.default-item .drag-handle[data-v-2b8ca093]:active {
|
|
101
101
|
cursor: grabbing;
|
|
102
102
|
}
|
|
103
|
-
.default-item .drag-handle div[data-v-
|
|
103
|
+
.default-item .drag-handle div[data-v-2b8ca093] {
|
|
104
104
|
font-size: 18px;
|
|
105
105
|
}
|
|
106
|
-
.default-item .item-content[data-v-
|
|
106
|
+
.default-item .item-content[data-v-2b8ca093] {
|
|
107
107
|
flex: 1;
|
|
108
108
|
min-width: 0;
|
|
109
109
|
}
|
|
110
|
-
.default-item .item-content .item-title[data-v-
|
|
110
|
+
.default-item .item-content .item-title[data-v-2b8ca093] {
|
|
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-
|
|
118
|
+
.default-item .item-content .item-description[data-v-2b8ca093] {
|
|
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-
|
|
126
|
+
.empty-state[data-v-2b8ca093] {
|
|
127
127
|
display: flex;
|
|
128
128
|
flex-direction: column;
|
|
129
129
|
align-items: center;
|
|
@@ -133,12 +133,12 @@
|
|
|
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-
|
|
136
|
+
.empty-state .default-empty .empty-icon[data-v-2b8ca093] {
|
|
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-
|
|
141
|
+
.empty-state .default-empty .empty-text[data-v-2b8ca093] {
|
|
142
142
|
color: var(--n-text-color-disabled);
|
|
143
143
|
font-size: 16px;
|
|
144
144
|
margin: 0;
|
|
@@ -165,77 +165,77 @@
|
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
/* ===== 网格布局特殊优化 ===== */
|
|
168
|
-
.c-draggable-list.layout-grid .c-draggable-item[data-v-
|
|
168
|
+
.c-draggable-list.layout-grid .c-draggable-item[data-v-2b8ca093] {
|
|
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-
|
|
173
|
+
.c-draggable-list.layout-grid .c-draggable-item .default-item[data-v-2b8ca093] {
|
|
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-
|
|
178
|
+
.c-draggable-list.layout-grid + .empty-state[data-v-2b8ca093] {
|
|
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-
|
|
182
|
+
.c-draggable-list.layout-grid + .empty-state .default-empty .empty-icon[data-v-2b8ca093] {
|
|
183
183
|
font-size: 36px;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
/* ===== 弹性布局特殊优化 ===== */
|
|
187
|
-
.c-draggable-list.layout-horizontal .c-draggable-item[data-v-
|
|
188
|
-
.c-draggable-list.layout-flex-wrap .c-draggable-item[data-v-
|
|
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] {
|
|
189
189
|
flex-shrink: 0;
|
|
190
190
|
}
|
|
191
|
-
.c-draggable-list.layout-horizontal .c-draggable-item[data-v-
|
|
192
|
-
.c-draggable-list.layout-flex-wrap .c-draggable-item[data-v-
|
|
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) {
|
|
193
193
|
margin-right: 0;
|
|
194
194
|
}
|
|
195
|
-
.c-draggable-list.layout-horizontal .default-item[data-v-
|
|
196
|
-
.c-draggable-list.layout-flex-wrap .default-item[data-v-
|
|
195
|
+
.c-draggable-list.layout-horizontal .default-item[data-v-2b8ca093],
|
|
196
|
+
.c-draggable-list.layout-flex-wrap .default-item[data-v-2b8ca093] {
|
|
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-
|
|
203
|
+
.c-draggable-list.layout-grid[data-v-2b8ca093] {
|
|
204
204
|
grid-template-columns: repeat(2, 1fr) !important;
|
|
205
205
|
}
|
|
206
|
-
.c-draggable-list.layout-horizontal[data-v-
|
|
206
|
+
.c-draggable-list.layout-horizontal[data-v-2b8ca093] {
|
|
207
207
|
flex-wrap: wrap;
|
|
208
208
|
}
|
|
209
|
-
.default-item[data-v-
|
|
209
|
+
.default-item[data-v-2b8ca093] {
|
|
210
210
|
padding: 12px;
|
|
211
211
|
min-width: 150px !important;
|
|
212
212
|
}
|
|
213
|
-
.default-item .drag-handle[data-v-
|
|
213
|
+
.default-item .drag-handle[data-v-2b8ca093] {
|
|
214
214
|
width: 20px;
|
|
215
215
|
height: 20px;
|
|
216
216
|
margin-right: 8px;
|
|
217
217
|
}
|
|
218
|
-
.default-item .drag-handle div[data-v-
|
|
218
|
+
.default-item .drag-handle div[data-v-2b8ca093] {
|
|
219
219
|
font-size: 16px;
|
|
220
220
|
}
|
|
221
|
-
.default-item .item-content .item-title[data-v-
|
|
221
|
+
.default-item .item-content .item-title[data-v-2b8ca093] {
|
|
222
222
|
font-size: 15px;
|
|
223
223
|
}
|
|
224
|
-
.default-item .item-content .item-description[data-v-
|
|
224
|
+
.default-item .item-content .item-description[data-v-2b8ca093] {
|
|
225
225
|
font-size: 13px;
|
|
226
226
|
}
|
|
227
|
-
.empty-state[data-v-
|
|
227
|
+
.empty-state[data-v-2b8ca093] {
|
|
228
228
|
padding: 40px 16px;
|
|
229
229
|
}
|
|
230
|
-
.empty-state .default-empty .empty-icon[data-v-
|
|
230
|
+
.empty-state .default-empty .empty-icon[data-v-2b8ca093] {
|
|
231
231
|
font-size: 36px;
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
234
|
@media (max-width: 480px) {
|
|
235
|
-
.c-draggable-list.layout-grid[data-v-
|
|
235
|
+
.c-draggable-list.layout-grid[data-v-2b8ca093] {
|
|
236
236
|
grid-template-columns: 1fr !important;
|
|
237
237
|
}
|
|
238
|
-
.default-item[data-v-
|
|
238
|
+
.default-item[data-v-2b8ca093] {
|
|
239
239
|
min-width: 100% !important;
|
|
240
240
|
padding: 10px;
|
|
241
241
|
}
|
package/dist/C_Draggable2.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`vue-draggable-plus`);function r(e,n){let r=(0,t.ref)(!1),i=(0,t.computed)({get:()=>e.modelValue??[],set:e=>{n(`update:modelValue`,e),n(`list-change`,e)}});return{isDragging:r,internalList:i,isEmpty:(0,t.computed)(()=>(e.modelValue??[]).length===0),listClasses:(0,t.computed)(()=>[`c-draggable-list`,e.listClass,`layout-${e.layout}`,{"flex-wrap":e.flexWrap&&(e.layout===`horizontal`||e.layout===`flex-wrap`)}]),listStyles:(0,t.computed)(()=>{let t={"--gap":typeof e.gap==`number`?`${e.gap}px`:e.gap??`8px`,"--grid-columns":e.gridColumns??4,"--justify-content":e.justifyContent??`flex-start`,"--align-items":e.alignItems??`stretch`,...e.customStyles};return e.gridRows&&(t[`--grid-rows`]=e.gridRows),t}),draggableOptions:(0,t.computed)(()=>{let t={disabled:e.disabled,group:e.group,sort:e.sort,animation:e.animation,delay:e.delay,ghostClass:e.ghostClass,chosenClass:e.chosenClass,dragClass:e.dragClass,swapThreshold:e.swapThreshold,invertSwap:e.invertSwap,direction:e.direction,forceFallback:!1};return e.handle?t.handle=e.handle:e.showHandle&&(t.handle=`.drag-handle`),t}),getItemKey:(t,n)=>e.itemKey?e.itemKey(t,n):t.id??n,getItemTitle:t=>e.itemTitle?e.itemTitle(t):t.title||t.name||t.label||String(t.id)||`未命名项目`,getItemDescription:t=>e.itemDescription?e.itemDescription(t):t.description||``,getItemClass:()=>[`c-draggable-item`,e.itemClass,{"is-disabled":e.disabled}],handleStart:e=>{r.value=!0;let t=i.value[e.oldIndex];t&&n(`drag-start`,{oldIndex:e.oldIndex,newIndex:e.oldIndex,item:t})},handleEnd:e=>{let a=i.value[e.newIndex];a&&n(`drag-end`,{oldIndex:e.oldIndex,newIndex:e.newIndex,item:a}),(0,t.nextTick)(()=>{r.value=!1})},handleAdd:e=>{let t=i.value[e.newIndex];t&&n(`item-add`,t,e.newIndex)},handleRemove:e=>{e.item&&n(`item-remove`,e.item,e.oldIndex)},handleUpdate:()=>{},addItem:(e,t)=>{let n=[...i.value];typeof t==`number`&&t>=0&&t<=n.length?n.splice(t,0,e):n.push(e),i.value=n},removeItem:e=>{if(e>=0&&e<i.value.length){let t=[...i.value],[n]=t.splice(e,1);return i.value=t,n}return null},moveItem:(e,t)=>{let n=i.value;if(e>=0&&e<n.length&&t>=0&&t<n.length&&e!==t){let r=[...n],[a]=r.splice(e,1);return r.splice(t,0,a),i.value=r,!0}return!1},updateList:e=>{i.value=[...e]},clear:()=>{i.value=[]},getItem:e=>i.value[e],findIndex:e=>i.value.findIndex(e)}}const i=[`data-index`],a={class:`default-item`},o={key:0,class:`drag-handle`},s={class:`item-content`},c={class:`item-title`},l={key:0,class:`item-description`},u={key:0,class:`empty-state`},d={class:`default-empty`},f={class:`empty-text`},p=(0,t.defineComponent)({name:`C_Draggable`,__name:`index`,props:{modelValue:{default:()=>[]},disabled:{type:Boolean,default:!1},group:{default:`default`},sort:{type:Boolean,default:!0},animation:{default:200},delay:{default:0},handle:{default:``},showHandle:{type:Boolean,default:!1},ghostClass:{default:`sortable-ghost`},chosenClass:{default:`sortable-chosen`},dragClass:{default:`sortable-drag`},wrapperClass:{default:``},listClass:{default:``},itemClass:{default:``},showEmptyState:{type:Boolean,default:!0},emptyText:{default:`暂无数据`},itemKey:{},itemTitle:{},itemDescription:{},swapThreshold:{default:1},invertSwap:{type:Boolean,default:!1},direction:{default:`vertical`},layout:{default:`vertical`},gridColumns:{default:4},gridRows:{default:void 0},gap:{default:`8px`},flexWrap:{type:Boolean,default:!1},justifyContent:{default:`flex-start`},alignItems:{default:`stretch`},customStyles:{default:()=>({})}},emits:[`update:modelValue`,`drag-start`,`drag-end`,`item-add`,`item-remove`,`list-change`],setup(e,{expose:p,emit:m}){let{isDragging:h,internalList:g,isEmpty:_,listClasses:v,listStyles:y,draggableOptions:b,getItemKey:x,getItemTitle:S,getItemDescription:C,getItemClass:w,handleStart:T,handleEnd:E,handleAdd:D,handleRemove:O,handleUpdate:k,addItem:A,removeItem:j,moveItem:M,updateList:N,clear:P,getItem:F,findIndex:I}=r(e,m);return p({isDragging:(0,t.readonly)(h),list:(0,t.readonly)(g),isEmpty:(0,t.readonly)(_),addItem:A,removeItem:j,moveItem:M,updateList:N,clear:P,getItem:F,findIndex:I}),(r,p)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`c-draggable-wrapper`,e.wrapperClass])},[(0,t.createVNode)((0,t.unref)(n.VueDraggable),(0,t.mergeProps)({modelValue:(0,t.unref)(g),"onUpdate:modelValue":p[0]||=e=>(0,t.isRef)(g)?g.value=e:null},(0,t.unref)(b),{class:(0,t.unref)(v),style:(0,t.unref)(y),onStart:(0,t.unref)(T),onEnd:(0,t.unref)(E),onAdd:(0,t.unref)(D),onRemove:(0,t.unref)(O),onUpdate:(0,t.unref)(k)}),{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(g),(n,u)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:(0,t.unref)(x)(n,u),class:(0,t.normalizeClass)((0,t.unref)(w)(
|
|
1
|
+
require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`vue-draggable-plus`);function r(e,n){let r=(0,t.ref)(!1),i=(0,t.computed)({get:()=>e.modelValue??[],set:e=>{n(`update:modelValue`,e),n(`list-change`,e)}});return{isDragging:r,internalList:i,isEmpty:(0,t.computed)(()=>(e.modelValue??[]).length===0),listClasses:(0,t.computed)(()=>[`c-draggable-list`,e.listClass,`layout-${e.layout}`,{"flex-wrap":e.flexWrap&&(e.layout===`horizontal`||e.layout===`flex-wrap`)}]),listStyles:(0,t.computed)(()=>{let t={"--gap":typeof e.gap==`number`?`${e.gap}px`:e.gap??`8px`,"--grid-columns":e.gridColumns??4,"--justify-content":e.justifyContent??`flex-start`,"--align-items":e.alignItems??`stretch`,...e.customStyles};return e.gridRows&&(t[`--grid-rows`]=e.gridRows),t}),draggableOptions:(0,t.computed)(()=>{let t={disabled:e.disabled,group:e.group,sort:e.sort,animation:e.animation,delay:e.delay,ghostClass:e.ghostClass,chosenClass:e.chosenClass,dragClass:e.dragClass,swapThreshold:e.swapThreshold,invertSwap:e.invertSwap,direction:e.direction,forceFallback:!1};return e.handle?t.handle=e.handle:e.showHandle&&(t.handle=`.drag-handle`),t}),getItemKey:(t,n)=>e.itemKey?e.itemKey(t,n):t.id??n,getItemTitle:t=>e.itemTitle?e.itemTitle(t):t.title||t.name||t.label||String(t.id)||`未命名项目`,getItemDescription:t=>e.itemDescription?e.itemDescription(t):t.description||``,getItemClass:()=>[`c-draggable-item`,e.itemClass,{"is-disabled":e.disabled}],handleStart:e=>{r.value=!0;let t=i.value[e.oldIndex];t&&n(`drag-start`,{oldIndex:e.oldIndex,newIndex:e.oldIndex,item:t})},handleEnd:e=>{let a=i.value[e.newIndex];a&&n(`drag-end`,{oldIndex:e.oldIndex,newIndex:e.newIndex,item:a}),(0,t.nextTick)(()=>{r.value=!1})},handleAdd:e=>{let t=i.value[e.newIndex];t&&n(`item-add`,t,e.newIndex)},handleRemove:e=>{e.item&&n(`item-remove`,e.item,e.oldIndex)},handleUpdate:()=>{},addItem:(e,t)=>{let n=[...i.value];typeof t==`number`&&t>=0&&t<=n.length?n.splice(t,0,e):n.push(e),i.value=n},removeItem:e=>{if(e>=0&&e<i.value.length){let t=[...i.value],[n]=t.splice(e,1);return i.value=t,n}return null},moveItem:(e,t)=>{let n=i.value;if(e>=0&&e<n.length&&t>=0&&t<n.length&&e!==t){let r=[...n],[a]=r.splice(e,1);return r.splice(t,0,a),i.value=r,!0}return!1},updateList:e=>{i.value=[...e]},clear:()=>{i.value=[]},getItem:e=>i.value[e],findIndex:e=>i.value.findIndex(e)}}const i=[`data-index`],a={class:`default-item`},o={key:0,class:`drag-handle`},s={class:`item-content`},c={class:`item-title`},l={key:0,class:`item-description`},u={key:0,class:`empty-state`},d={class:`default-empty`},f={class:`empty-text`},p=(0,t.defineComponent)({name:`C_Draggable`,__name:`index`,props:{modelValue:{default:()=>[]},disabled:{type:Boolean,default:!1},group:{default:`default`},sort:{type:Boolean,default:!0},animation:{default:200},delay:{default:0},handle:{default:``},showHandle:{type:Boolean,default:!1},ghostClass:{default:`sortable-ghost`},chosenClass:{default:`sortable-chosen`},dragClass:{default:`sortable-drag`},wrapperClass:{default:``},listClass:{default:``},itemClass:{default:``},showEmptyState:{type:Boolean,default:!0},emptyText:{default:`暂无数据`},itemKey:{},itemTitle:{},itemDescription:{},swapThreshold:{default:1},invertSwap:{type:Boolean,default:!1},direction:{default:`vertical`},layout:{default:`vertical`},gridColumns:{default:4},gridRows:{default:void 0},gap:{default:`8px`},flexWrap:{type:Boolean,default:!1},justifyContent:{default:`flex-start`},alignItems:{default:`stretch`},customStyles:{default:()=>({})}},emits:[`update:modelValue`,`drag-start`,`drag-end`,`item-add`,`item-remove`,`list-change`],setup(e,{expose:p,emit:m}){let{isDragging:h,internalList:g,isEmpty:_,listClasses:v,listStyles:y,draggableOptions:b,getItemKey:x,getItemTitle:S,getItemDescription:C,getItemClass:w,handleStart:T,handleEnd:E,handleAdd:D,handleRemove:O,handleUpdate:k,addItem:A,removeItem:j,moveItem:M,updateList:N,clear:P,getItem:F,findIndex:I}=r(e,m);return p({isDragging:(0,t.readonly)(h),list:(0,t.readonly)(g),isEmpty:(0,t.readonly)(_),addItem:A,removeItem:j,moveItem:M,updateList:N,clear:P,getItem:F,findIndex:I}),(r,p)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`c-draggable-wrapper`,e.wrapperClass])},[(0,t.createVNode)((0,t.unref)(n.VueDraggable),(0,t.mergeProps)({modelValue:(0,t.unref)(g),"onUpdate:modelValue":p[0]||=e=>(0,t.isRef)(g)?g.value=e:null},(0,t.unref)(b),{class:(0,t.unref)(v),style:(0,t.unref)(y),onStart:(0,t.unref)(T),onEnd:(0,t.unref)(E),onAdd:(0,t.unref)(D),onRemove:(0,t.unref)(O),onUpdate:(0,t.unref)(k)}),{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(g),(n,u)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:(0,t.unref)(x)(n,u),class:(0,t.normalizeClass)((0,t.unref)(w)()),"data-index":u},[(0,t.renderSlot)(r.$slots,`default`,{item:n,index:u,isDragging:(0,t.unref)(h),isDisabled:e.disabled},()=>[(0,t.createElementVNode)(`div`,a,[e.showHandle?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,o,[...p[1]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:drag-vertical`},null,-1)]])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createElementVNode)(`div`,s,[(0,t.createElementVNode)(`div`,c,(0,t.toDisplayString)((0,t.unref)(S)(n)),1),(0,t.unref)(C)(n)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,l,(0,t.toDisplayString)((0,t.unref)(C)(n)),1)):(0,t.createCommentVNode)(`v-if`,!0)])])],!0)],10,i))),128))]),_:3},16,[`modelValue`,`class`,`style`,`onStart`,`onEnd`,`onAdd`,`onRemove`,`onUpdate`]),(0,t.unref)(_)&&e.showEmptyState?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,u,[(0,t.renderSlot)(r.$slots,`empty`,{},()=>[(0,t.createElementVNode)(`div`,d,[p[2]||=(0,t.createElementVNode)(`div`,{class:`empty-icon i-mdi:inbox-outline`},null,-1),(0,t.createElementVNode)(`p`,f,(0,t.toDisplayString)(e.emptyText),1)])],!0)])):(0,t.createCommentVNode)(`v-if`,!0)],2))}});var m=e.t(p,[[`__scopeId`,`data-v-2b8ca093`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return m}});
|
package/dist/C_Draggable2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./export-helper.js";import{Fragment as t,computed as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,createVNode as o,defineComponent as s,isRef as c,mergeProps as l,nextTick as u,normalizeClass as d,openBlock as f,readonly as p,ref as m,renderList as h,renderSlot as g,toDisplayString as _,unref as v,withCtx as y}from"vue";import{VueDraggable as b}from"vue-draggable-plus";function x(e,t){let r=m(!1),i=n({get:()=>e.modelValue??[],set:e=>{t(`update:modelValue`,e),t(`list-change`,e)}});return{isDragging:r,internalList:i,isEmpty:n(()=>(e.modelValue??[]).length===0),listClasses:n(()=>[`c-draggable-list`,e.listClass,`layout-${e.layout}`,{"flex-wrap":e.flexWrap&&(e.layout===`horizontal`||e.layout===`flex-wrap`)}]),listStyles:n(()=>{let t={"--gap":typeof e.gap==`number`?`${e.gap}px`:e.gap??`8px`,"--grid-columns":e.gridColumns??4,"--justify-content":e.justifyContent??`flex-start`,"--align-items":e.alignItems??`stretch`,...e.customStyles};return e.gridRows&&(t[`--grid-rows`]=e.gridRows),t}),draggableOptions:n(()=>{let t={disabled:e.disabled,group:e.group,sort:e.sort,animation:e.animation,delay:e.delay,ghostClass:e.ghostClass,chosenClass:e.chosenClass,dragClass:e.dragClass,swapThreshold:e.swapThreshold,invertSwap:e.invertSwap,direction:e.direction,forceFallback:!1};return e.handle?t.handle=e.handle:e.showHandle&&(t.handle=`.drag-handle`),t}),getItemKey:(t,n)=>e.itemKey?e.itemKey(t,n):t.id??n,getItemTitle:t=>e.itemTitle?e.itemTitle(t):t.title||t.name||t.label||String(t.id)||`未命名项目`,getItemDescription:t=>e.itemDescription?e.itemDescription(t):t.description||``,getItemClass:()=>[`c-draggable-item`,e.itemClass,{"is-disabled":e.disabled}],handleStart:e=>{r.value=!0;let n=i.value[e.oldIndex];n&&t(`drag-start`,{oldIndex:e.oldIndex,newIndex:e.oldIndex,item:n})},handleEnd:e=>{let n=i.value[e.newIndex];n&&t(`drag-end`,{oldIndex:e.oldIndex,newIndex:e.newIndex,item:n}),u(()=>{r.value=!1})},handleAdd:e=>{let n=i.value[e.newIndex];n&&t(`item-add`,n,e.newIndex)},handleRemove:e=>{e.item&&t(`item-remove`,e.item,e.oldIndex)},handleUpdate:()=>{},addItem:(e,t)=>{let n=[...i.value];typeof t==`number`&&t>=0&&t<=n.length?n.splice(t,0,e):n.push(e),i.value=n},removeItem:e=>{if(e>=0&&e<i.value.length){let t=[...i.value],[n]=t.splice(e,1);return i.value=t,n}return null},moveItem:(e,t)=>{let n=i.value;if(e>=0&&e<n.length&&t>=0&&t<n.length&&e!==t){let r=[...n],[a]=r.splice(e,1);return r.splice(t,0,a),i.value=r,!0}return!1},updateList:e=>{i.value=[...e]},clear:()=>{i.value=[]},getItem:e=>i.value[e],findIndex:e=>i.value.findIndex(e)}}const S=[`data-index`],C={class:`default-item`},w={key:0,class:`drag-handle`},T={class:`item-content`},E={class:`item-title`},D={key:0,class:`item-description`},O={key:0,class:`empty-state`},k={class:`default-empty`},A={class:`empty-text`};var j=e(s({name:`C_Draggable`,__name:`index`,props:{modelValue:{default:()=>[]},disabled:{type:Boolean,default:!1},group:{default:`default`},sort:{type:Boolean,default:!0},animation:{default:200},delay:{default:0},handle:{default:``},showHandle:{type:Boolean,default:!1},ghostClass:{default:`sortable-ghost`},chosenClass:{default:`sortable-chosen`},dragClass:{default:`sortable-drag`},wrapperClass:{default:``},listClass:{default:``},itemClass:{default:``},showEmptyState:{type:Boolean,default:!0},emptyText:{default:`暂无数据`},itemKey:{},itemTitle:{},itemDescription:{},swapThreshold:{default:1},invertSwap:{type:Boolean,default:!1},direction:{default:`vertical`},layout:{default:`vertical`},gridColumns:{default:4},gridRows:{default:void 0},gap:{default:`8px`},flexWrap:{type:Boolean,default:!1},justifyContent:{default:`flex-start`},alignItems:{default:`stretch`},customStyles:{default:()=>({})}},emits:[`update:modelValue`,`drag-start`,`drag-end`,`item-add`,`item-remove`,`list-change`],setup(e,{expose:n,emit:s}){let{isDragging:u,internalList:m,isEmpty:j,listClasses:M,listStyles:N,draggableOptions:P,getItemKey:F,getItemTitle:I,getItemDescription:L,getItemClass:R,handleStart:z,handleEnd:B,handleAdd:V,handleRemove:H,handleUpdate:U,addItem:W,removeItem:G,moveItem:K,updateList:q,clear:J,getItem:Y,findIndex:X}=x(e,s);return n({isDragging:p(u),list:p(m),isEmpty:p(j),addItem:W,removeItem:G,moveItem:K,updateList:q,clear:J,getItem:Y,findIndex:X}),(n,s)=>(f(),i(`div`,{class:d([`c-draggable-wrapper`,e.wrapperClass])},[o(v(b),l({modelValue:v(m),"onUpdate:modelValue":s[0]||=e=>c(m)?m.value=e:null},v(P),{class:v(M),style:v(N),onStart:v(z),onEnd:v(B),onAdd:v(V),onRemove:v(H),onUpdate:v(U)}),{default:y(()=>[(f(!0),i(t,null,h(v(m),(t,o)=>(f(),i(`div`,{key:v(F)(t,o),class:d(v(R)(
|
|
1
|
+
import{t as e}from"./export-helper.js";import{Fragment as t,computed as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,createVNode as o,defineComponent as s,isRef as c,mergeProps as l,nextTick as u,normalizeClass as d,openBlock as f,readonly as p,ref as m,renderList as h,renderSlot as g,toDisplayString as _,unref as v,withCtx as y}from"vue";import{VueDraggable as b}from"vue-draggable-plus";function x(e,t){let r=m(!1),i=n({get:()=>e.modelValue??[],set:e=>{t(`update:modelValue`,e),t(`list-change`,e)}});return{isDragging:r,internalList:i,isEmpty:n(()=>(e.modelValue??[]).length===0),listClasses:n(()=>[`c-draggable-list`,e.listClass,`layout-${e.layout}`,{"flex-wrap":e.flexWrap&&(e.layout===`horizontal`||e.layout===`flex-wrap`)}]),listStyles:n(()=>{let t={"--gap":typeof e.gap==`number`?`${e.gap}px`:e.gap??`8px`,"--grid-columns":e.gridColumns??4,"--justify-content":e.justifyContent??`flex-start`,"--align-items":e.alignItems??`stretch`,...e.customStyles};return e.gridRows&&(t[`--grid-rows`]=e.gridRows),t}),draggableOptions:n(()=>{let t={disabled:e.disabled,group:e.group,sort:e.sort,animation:e.animation,delay:e.delay,ghostClass:e.ghostClass,chosenClass:e.chosenClass,dragClass:e.dragClass,swapThreshold:e.swapThreshold,invertSwap:e.invertSwap,direction:e.direction,forceFallback:!1};return e.handle?t.handle=e.handle:e.showHandle&&(t.handle=`.drag-handle`),t}),getItemKey:(t,n)=>e.itemKey?e.itemKey(t,n):t.id??n,getItemTitle:t=>e.itemTitle?e.itemTitle(t):t.title||t.name||t.label||String(t.id)||`未命名项目`,getItemDescription:t=>e.itemDescription?e.itemDescription(t):t.description||``,getItemClass:()=>[`c-draggable-item`,e.itemClass,{"is-disabled":e.disabled}],handleStart:e=>{r.value=!0;let n=i.value[e.oldIndex];n&&t(`drag-start`,{oldIndex:e.oldIndex,newIndex:e.oldIndex,item:n})},handleEnd:e=>{let n=i.value[e.newIndex];n&&t(`drag-end`,{oldIndex:e.oldIndex,newIndex:e.newIndex,item:n}),u(()=>{r.value=!1})},handleAdd:e=>{let n=i.value[e.newIndex];n&&t(`item-add`,n,e.newIndex)},handleRemove:e=>{e.item&&t(`item-remove`,e.item,e.oldIndex)},handleUpdate:()=>{},addItem:(e,t)=>{let n=[...i.value];typeof t==`number`&&t>=0&&t<=n.length?n.splice(t,0,e):n.push(e),i.value=n},removeItem:e=>{if(e>=0&&e<i.value.length){let t=[...i.value],[n]=t.splice(e,1);return i.value=t,n}return null},moveItem:(e,t)=>{let n=i.value;if(e>=0&&e<n.length&&t>=0&&t<n.length&&e!==t){let r=[...n],[a]=r.splice(e,1);return r.splice(t,0,a),i.value=r,!0}return!1},updateList:e=>{i.value=[...e]},clear:()=>{i.value=[]},getItem:e=>i.value[e],findIndex:e=>i.value.findIndex(e)}}const S=[`data-index`],C={class:`default-item`},w={key:0,class:`drag-handle`},T={class:`item-content`},E={class:`item-title`},D={key:0,class:`item-description`},O={key:0,class:`empty-state`},k={class:`default-empty`},A={class:`empty-text`};var j=e(s({name:`C_Draggable`,__name:`index`,props:{modelValue:{default:()=>[]},disabled:{type:Boolean,default:!1},group:{default:`default`},sort:{type:Boolean,default:!0},animation:{default:200},delay:{default:0},handle:{default:``},showHandle:{type:Boolean,default:!1},ghostClass:{default:`sortable-ghost`},chosenClass:{default:`sortable-chosen`},dragClass:{default:`sortable-drag`},wrapperClass:{default:``},listClass:{default:``},itemClass:{default:``},showEmptyState:{type:Boolean,default:!0},emptyText:{default:`暂无数据`},itemKey:{},itemTitle:{},itemDescription:{},swapThreshold:{default:1},invertSwap:{type:Boolean,default:!1},direction:{default:`vertical`},layout:{default:`vertical`},gridColumns:{default:4},gridRows:{default:void 0},gap:{default:`8px`},flexWrap:{type:Boolean,default:!1},justifyContent:{default:`flex-start`},alignItems:{default:`stretch`},customStyles:{default:()=>({})}},emits:[`update:modelValue`,`drag-start`,`drag-end`,`item-add`,`item-remove`,`list-change`],setup(e,{expose:n,emit:s}){let{isDragging:u,internalList:m,isEmpty:j,listClasses:M,listStyles:N,draggableOptions:P,getItemKey:F,getItemTitle:I,getItemDescription:L,getItemClass:R,handleStart:z,handleEnd:B,handleAdd:V,handleRemove:H,handleUpdate:U,addItem:W,removeItem:G,moveItem:K,updateList:q,clear:J,getItem:Y,findIndex:X}=x(e,s);return n({isDragging:p(u),list:p(m),isEmpty:p(j),addItem:W,removeItem:G,moveItem:K,updateList:q,clear:J,getItem:Y,findIndex:X}),(n,s)=>(f(),i(`div`,{class:d([`c-draggable-wrapper`,e.wrapperClass])},[o(v(b),l({modelValue:v(m),"onUpdate:modelValue":s[0]||=e=>c(m)?m.value=e:null},v(P),{class:v(M),style:v(N),onStart:v(z),onEnd:v(B),onAdd:v(V),onRemove:v(H),onUpdate:v(U)}),{default:y(()=>[(f(!0),i(t,null,h(v(m),(t,o)=>(f(),i(`div`,{key:v(F)(t,o),class:d(v(R)()),"data-index":o},[g(n.$slots,`default`,{item:t,index:o,isDragging:v(u),isDisabled:e.disabled},()=>[a(`div`,C,[e.showHandle?(f(),i(`div`,w,[...s[1]||=[a(`div`,{class:`i-mdi:drag-vertical`},null,-1)]])):r(`v-if`,!0),a(`div`,T,[a(`div`,E,_(v(I)(t)),1),v(L)(t)?(f(),i(`div`,D,_(v(L)(t)),1)):r(`v-if`,!0)])])],!0)],10,S))),128))]),_:3},16,[`modelValue`,`class`,`style`,`onStart`,`onEnd`,`onAdd`,`onRemove`,`onUpdate`]),v(j)&&e.showEmptyState?(f(),i(`div`,O,[g(n.$slots,`empty`,{},()=>[a(`div`,k,[s[2]||=a(`div`,{class:`empty-icon i-mdi:inbox-outline`},null,-1),a(`p`,A,_(e.emptyText),1)])],!0)])):r(`v-if`,!0)],2))}}),[[`__scopeId`,`data-v-2b8ca093`]]);export{x as n,j as t};
|