@robot-admin/naive-ui-components 0.13.2 → 0.13.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/C_ActionBar.css +75 -63
- package/dist/C_ActionBar2.cjs +1 -1
- package/dist/C_ActionBar2.js +1 -1
- package/dist/C_AntV.css +249 -79
- package/dist/C_AntV2.cjs +3 -3
- package/dist/C_AntV2.js +2 -2
- package/dist/C_AudioPlayer.css +88 -76
- package/dist/C_AudioPlayer2.cjs +1 -1
- package/dist/C_AudioPlayer2.js +1 -1
- package/dist/C_AvatarGroup.css +32 -28
- package/dist/C_AvatarGroup2.cjs +1 -1
- package/dist/C_AvatarGroup2.js +1 -1
- package/dist/C_Breadcrumb.css +35 -17
- package/dist/C_Breadcrumb2.cjs +1 -1
- package/dist/C_Breadcrumb2.js +1 -1
- package/dist/C_Captcha.css +66 -53
- package/dist/C_Captcha2.cjs +1 -1
- package/dist/C_Captcha2.js +1 -1
- package/dist/C_Cascade.css +6 -2
- package/dist/C_Cascade2.cjs +1 -1
- package/dist/C_Cascade2.js +1 -1
- package/dist/C_Chat.css +40 -33
- package/dist/C_City.css +37 -32
- package/dist/C_City2.cjs +1 -1
- package/dist/C_City2.js +1 -1
- package/dist/C_Code.css +53 -40
- package/dist/C_Code2.cjs +1 -1
- package/dist/C_Code2.js +1 -1
- package/dist/C_CollapsePanel.css +68 -55
- package/dist/C_CollapsePanel2.cjs +1 -1
- package/dist/C_CollapsePanel2.js +1 -1
- package/dist/C_ContextMenu.css +68 -26
- package/dist/C_ContextMenu2.cjs +1 -1
- package/dist/C_ContextMenu2.js +1 -1
- package/dist/C_Cron.css +95 -68
- package/dist/C_Cron2.cjs +1 -1
- package/dist/C_Cron2.js +1 -1
- package/dist/C_Date.css +8 -1
- package/dist/C_Date2.cjs +1 -1
- package/dist/C_Date2.js +1 -1
- package/dist/C_Draggable.css +60 -51
- package/dist/C_Draggable2.cjs +1 -1
- package/dist/C_Draggable2.js +1 -1
- package/dist/C_Editor.css +23 -15
- package/dist/C_Editor2.cjs +1 -1
- package/dist/C_Editor2.js +1 -1
- package/dist/C_FilePreview.css +200 -90
- package/dist/C_FilePreview2.cjs +1 -1
- package/dist/C_FilePreview2.js +1 -1
- package/dist/C_Form.base.css +284 -224
- package/dist/C_Form.css +307 -239
- package/dist/C_Form2.cjs +1 -1
- package/dist/C_Form2.js +1 -1
- package/dist/C_FormModal.css +18 -8
- package/dist/C_FormModal2.cjs +1 -1
- package/dist/C_FormModal2.js +1 -1
- package/dist/C_FormSearch.css +58 -45
- package/dist/C_FormSearch2.cjs +1 -1
- package/dist/C_FormSearch2.js +1 -1
- package/dist/C_FormulaEditor.css +62 -37
- package/dist/C_FormulaEditor2.cjs +1 -1
- package/dist/C_FormulaEditor2.js +1 -1
- package/dist/C_FullCalendar.css +16 -3
- package/dist/C_FullCalendar2.cjs +1 -1
- package/dist/C_FullCalendar2.js +1 -1
- package/dist/C_GlobalSearch.css +121 -112
- package/dist/C_GlobalSearch2.cjs +1 -1
- package/dist/C_GlobalSearch2.js +1 -1
- package/dist/C_Guide.css +30 -18
- package/dist/C_Guide2.cjs +1 -1
- package/dist/C_Guide2.js +1 -1
- package/dist/C_Icon.css +24 -17
- package/dist/C_Icon2.cjs +1 -1
- package/dist/C_Icon2.js +1 -1
- package/dist/C_ImageCropper.css +39 -22
- package/dist/C_ImageCropper2.cjs +1 -1
- package/dist/C_ImageCropper2.js +1 -1
- package/dist/C_Language.css +30 -17
- package/dist/C_Language2.cjs +1 -1
- package/dist/C_Language2.js +1 -1
- package/dist/C_Login.css +162 -137
- package/dist/C_Login2.cjs +1 -1
- package/dist/C_Login2.js +1 -1
- package/dist/C_Map.css +25 -4
- package/dist/C_Map2.cjs +1 -1
- package/dist/C_Map2.js +1 -1
- package/dist/C_Markdown.css +47 -42
- package/dist/C_Markdown2.cjs +1 -1
- package/dist/C_Markdown2.js +1 -1
- package/dist/C_Menu.css +7 -1
- package/dist/C_Menu2.cjs +1 -1
- package/dist/C_Menu2.js +1 -1
- package/dist/C_NotificationCenter.css +134 -90
- package/dist/C_NotificationCenter2.cjs +1 -1
- package/dist/C_NotificationCenter2.js +1 -1
- package/dist/C_OrgChart.css +10 -0
- package/dist/C_OrgChart2.cjs +1 -1
- package/dist/C_OrgChart2.js +1 -1
- package/dist/C_QRCode.css +12 -8
- package/dist/C_QRCode2.cjs +1 -1
- package/dist/C_QRCode2.js +1 -1
- package/dist/C_Signature.css +18 -14
- package/dist/C_Signature2.cjs +1 -1
- package/dist/C_Signature2.js +1 -1
- package/dist/C_Skeleton.css +5 -0
- package/dist/C_Skeleton2.cjs +1 -1
- package/dist/C_Skeleton2.js +1 -1
- package/dist/C_SplitPane.css +61 -39
- package/dist/C_SplitPane2.cjs +1 -1
- package/dist/C_SplitPane2.js +1 -1
- package/dist/C_Steps.css +42 -38
- package/dist/C_Steps2.cjs +1 -1
- package/dist/C_Steps2.js +1 -1
- package/dist/C_Table.base.css +465 -352
- package/dist/C_Table.css +488 -367
- package/dist/C_TagsView.css +93 -55
- package/dist/C_TagsView2.cjs +1 -1
- package/dist/C_TagsView2.js +1 -1
- package/dist/C_Theme.css +24 -17
- package/dist/C_Timeline.css +47 -36
- package/dist/C_Transfer.css +86 -67
- package/dist/C_Transfer2.cjs +1 -1
- package/dist/C_Transfer2.js +1 -1
- package/dist/C_Tree.css +48 -33
- package/dist/C_Tree2.cjs +1 -1
- package/dist/C_Tree2.js +1 -1
- package/dist/C_Upload.css +104 -51
- package/dist/C_Upload2.cjs +1 -1
- package/dist/C_Upload2.js +1 -1
- package/dist/C_VideoPlayer.css +140 -69
- package/dist/C_VideoPlayer2.cjs +1 -1
- package/dist/C_VideoPlayer2.js +1 -1
- package/dist/C_VtableGantt.css +42 -19
- package/dist/C_VtableGantt2.cjs +1 -1
- package/dist/C_VtableGantt2.js +1 -1
- package/dist/C_WaterFall.css +32 -16
- package/dist/C_WaterFall2.cjs +1 -1
- package/dist/C_WaterFall2.js +1 -1
- package/dist/C_WorkFlow.css +332 -221
- package/dist/C_WorkFlow2.cjs +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/constants.d.cts +5 -5
- package/dist/constants.d.ts +5 -5
- package/dist/constants2.d.cts +5 -5
- package/dist/constants2.d.ts +5 -5
- package/dist/constants3.d.cts +3 -3
- package/dist/constants3.d.ts +3 -3
- package/dist/constants4.d.cts +6 -6
- package/dist/constants4.d.ts +6 -6
- package/dist/data.d.cts +9 -9
- package/dist/data.d.ts +9 -9
- package/dist/data2.cjs +1 -1
- package/dist/data2.js +1 -1
- package/dist/index.vue.d.cts +5 -5
- package/dist/index.vue.d.ts +5 -5
- package/dist/index10.vue.d.cts +2 -2
- package/dist/index10.vue.d.ts +3 -3
- package/dist/index11.vue.d.cts +3 -3
- package/dist/index11.vue.d.ts +6 -6
- package/dist/index12.vue.d.cts +6 -6
- package/dist/index13.vue.d.ts +3 -3
- package/dist/index14.vue.d.cts +3 -3
- package/dist/index14.vue.d.ts +16 -14
- package/dist/index15.vue.d.cts +16 -14
- package/dist/index15.vue.d.ts +3 -3
- package/dist/index16.vue.d.cts +3 -3
- package/dist/index16.vue.d.ts +1 -1
- package/dist/index17.vue.d.cts +1 -1
- package/dist/index17.vue.d.ts +6 -6
- package/dist/index18.vue.d.cts +6 -6
- package/dist/index19.vue.d.cts +1 -1
- package/dist/index19.vue.d.ts +1 -1
- package/dist/index2.vue.d.cts +2 -2
- package/dist/index2.vue.d.ts +2 -2
- package/dist/index20.vue.d.cts +1 -1
- package/dist/index20.vue.d.ts +1 -1
- package/dist/index22.vue.d.cts +1 -1
- package/dist/index22.vue.d.ts +1 -1
- package/dist/index24.vue.d.cts +4 -4
- package/dist/index24.vue.d.ts +4 -4
- package/dist/index26.vue.d.cts +4 -4
- package/dist/index26.vue.d.ts +4 -4
- package/dist/index27.vue.d.cts +4 -4
- package/dist/index27.vue.d.ts +4 -4
- package/dist/index3.vue.d.cts +5 -5
- package/dist/index3.vue.d.ts +5 -5
- package/dist/index5.vue.d.ts +2 -2
- package/dist/index6.vue.d.cts +2 -2
- package/dist/index6.vue.d.ts +2 -2
- package/dist/index7.vue.d.cts +2 -2
- package/dist/index7.vue.d.ts +2 -2
- package/dist/index8.vue.d.cts +2 -2
- package/dist/index8.vue.d.ts +1 -1
- package/dist/index9.vue.d.cts +1 -1
- package/dist/index9.vue.d.ts +2 -2
- package/dist/mapUtils.d.cts +2 -2
- package/dist/mapUtils.d.ts +2 -2
- package/dist/presets.d.cts +1 -1
- package/dist/presets.d.ts +1 -1
- package/dist/style.css +3083 -1982
- package/dist/useCalendarEvents.d.cts +1 -1
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.cts +2 -2
- package/dist/useCollapsePanel.d.ts +2 -2
- package/dist/useCropperCore.d.cts +5 -5
- package/dist/useCropperCore.d.ts +5 -5
- package/dist/useDraggableLayout.d.cts +5 -5
- package/dist/useDraggableLayout.d.ts +5 -5
- package/dist/useDynamicFormState.d.cts +2 -2
- package/dist/useDynamicFormState.d.ts +2 -2
- package/dist/useEdgeInteraction.d.cts +2 -2
- package/dist/useEdgeInteraction.d.ts +2 -2
- package/dist/useFullscreen.d.cts +2 -2
- package/dist/useFullscreen.d.ts +2 -2
- package/dist/useQRCode.d.cts +5 -5
- package/dist/useQRCode.d.ts +5 -5
- package/dist/useSearchState.d.cts +27 -27
- package/dist/useSearchState.d.ts +27 -27
- package/dist/useSignatureHistory.d.cts +6 -6
- package/dist/useSignatureHistory.d.ts +6 -6
- package/dist/useSplitResize.d.cts +8 -8
- package/dist/useSplitResize.d.ts +8 -8
- package/dist/useTableQuery.cjs +1 -1
- package/dist/useTableQuery.js +1 -1
- package/dist/useTimeSelection.d.cts +5 -5
- package/dist/useTimeSelection.d.ts +5 -5
- package/dist/useTreeOperations.d.cts +5 -5
- package/dist/useTreeOperations.d.ts +5 -5
- package/dist/useWorkflowValidation.d.cts +7 -7
- package/dist/useWorkflowValidation.d.ts +7 -7
- package/dist/verification.d.cts +3 -3
- package/dist/verification.d.ts +3 -3
- package/package.json +8 -1
package/dist/C_FullCalendar2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./config.js";import{t}from"./export-helper.js";import{Fragment as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createTextVNode as s,createVNode as c,defineComponent as l,isRef as u,normalizeStyle as d,openBlock as f,ref as p,renderList as m,shallowRef as h,unref as g,watch as _,withCtx as v}from"vue";import{NButton as y,NDatePicker as b,NInput as x,NModal as S}from"naive-ui";import C from"@fullcalendar/vue3";import w from"@fullcalendar/daygrid";import T from"@fullcalendar/interaction";import E from"@fullcalendar/list";import D from"@fullcalendar/core/locales/zh-cn";const O=[`#3f86ff`,`#ff6b6b`,`#67c23a`,`#e6a23c`,`#9c27b0`,`#00bcd4`,`#ff5722`],k={id:``,title:``,date:Date.now(),startTime:`09:00`,endTime:`10:00`,color:`#3f86ff`},A={left:`prev,next today`,center:`title`,right:`dayGridMonth,dayGridWeek,dayGridDay,listWeek`},j={today:`今天`,month:`月`,week:`周`,day:`日`,list:`列表`},M=/^([01]\d|2[0-3]):([0-5]\d)$/;function N(e,t,n){if(e===null||!Number.isFinite(e))return null;let r=M.exec(t),i=M.exec(n);if(!r||!i)return null;let a=Number(r[1])*60+Number(r[2]),o=Number(i[1])*60+Number(i[2]);if(o<=a)return null;let s=new Date(e);if(Number.isNaN(s.getTime()))return null;let c=e=>new Date(s.getFullYear(),s.getMonth(),s.getDate(),Math.floor(e/60),e%60),l=c(a),u=c(o);return l.getHours()*60+l.getMinutes()!==a||u.getHours()*60+u.getMinutes()!==o?null:{start:l,end:u}}let P=0;const F=()=>globalThis.crypto?.randomUUID?.()??`calendar-${Date.now()}-${++P}`;function I(t,n){let r=e(),i=p(null),a=p([...t.events??[]]),o=p(!1),s=p(!1),c=p(!1),l=h(null),u=p({...k}),d=e=>{a.value=[...a.value,e],n(`update:events`,a.value)},f=e=>{let t=a.value.findIndex(t=>t.id===e.id);t!==-1&&(a.value=a.value.map((n,r)=>r===t?{...n,...e}:n),n(`update:events`,a.value))},m=e=>{a.value=a.value.filter(t=>t.id!==e),n(`update:events`,a.value)};function g(e){t.editable&&(e.jsEvent.preventDefault(),l.value=e.event,t.showEditDialog&&(o.value=!0))}function v(e){!t.editable||!t.showAddDialog||x(e.date)}function y(e){let t={id:e.event.id,start:e.event.start??void 0,end:e.event.end??void 0};f(t),n(`event-dropped`,t),r.success(`事件 "${e.event.title}" 时间已更新`)}function b(e){let t={id:e.event.id,start:e.event.start??void 0,end:e.event.end??void 0};f(t),n(`event-updated`,t)}function x(e){c.value=!1,u.value={...k,date:e.getTime(),color:O[Math.floor(Math.random()*O.length)]},s.value=!0}function S(){let e=l.value;if(!e?.start)return;let{start:t}=e;c.value=!0;let n=new Date(t),r=e.end&&!e.allDay?new Date(e.end):new Date(t.getTime()+36e5);u.value={id:e.id,title:e.title,date:n.getTime(),startTime:`${String(n.getHours()).padStart(2,`0`)}:${String(n.getMinutes()).padStart(2,`0`)}`,endTime:`${String(r.getHours()).padStart(2,`0`)}:${String(r.getMinutes()).padStart(2,`0`)}`,color:e.backgroundColor||`#3f86ff`},o.value=!1,s.value=!0}function C(){if(!u.value.title.trim())return r.error(`请输入事件标题`),!1;let e=N(u.value.date,u.value.startTime,u.value.endTime);if(!e)return r.error(`请选择有效日期和时间,且结束时间须晚于开始时间`),!1;if(c.value&&!a.value.some(e=>e.id===u.value.id))return r.error(`事件已不存在,请刷新后重试`),!1;let t={id:c.value?u.value.id:F(),title:u.value.title.trim(),...e,color:u.value.color};return c.value?(f(t),n(`event-updated`,t),r.success(`事件已更新`)):(d(t),n(`event-added`,t),r.success(`事件已添加`)),s.value=!1,!0}function M(){if(!l.value)return;let{id:e,title:t}=l.value;if(!a.value.some(t=>t.id===e)){o.value=!1;return}m(e),n(`event-deleted`,{id:e,title:t}),o.value=!1,r.success(`已删除事件: ${t}`)}let P=h({plugins:[w,T,E],locale:D,initialView:t.initialView??`dayGridMonth`,events:a.value,headerToolbar:A,buttonText:j,editable:t.editable??!0,eventClick:g,dateClick:v,eventDrop:y,eventResize:b});return _(()=>t.events,e=>{a.value=[...e??[]]},{deep:!0}),_(a,e=>{P.value={...P.value,events:e}},{deep:!0}),_(()=>t.editable,e=>{P.value={...P.value,editable:e??!0}}),_(()=>t.initialView,e=>{e&&i.value?.getApi().changeView(e)}),{calendarRef:i,calendarOptions:P,showActionDialog:o,showEditModal:s,isEditing:c,selectedEvent:l,editForm:u,eventColors:O,openEditModal:S,saveEvent:C,deleteEvent:M,expose:{getApi:()=>i.value?.getApi(),addEvent:d,updateEvent:f,deleteEvent:m,getEvents:()=>a.value.map(e=>({...e,start:e.start instanceof Date?new Date(e.start):e.start,end:e.end instanceof Date?new Date(e.end):e.end}))}}}const L={class:`c-full-calendar`},R={class:`ml-10% mt-20px`},z={style:{padding:`20px`}},B={style:{"margin-bottom":`16px`}},V={style:{"margin-bottom":`16px`}},H={style:{display:`grid`,"grid-template-columns":`1fr 1fr`,gap:`16px`}},U={style:{"margin-top":`16px`}},W={style:{display:`flex`,gap:`8px`}},G=[`aria-label`,`aria-pressed`,`onClick`];var K=t(l({name:`C_FullCalendar`,__name:`index`,props:{events:{default:()=>[]},initialView:{default:`dayGridMonth`},editable:{type:Boolean,default:!0},showAddDialog:{type:Boolean,default:!0},showEditDialog:{type:Boolean,default:!0}},emits:[`update:events`,`event-added`,`event-updated`,`event-deleted`,`event-dropped`],setup(e,{expose:t,emit:l}){let{calendarRef:p,calendarOptions:h,showActionDialog:_,showEditModal:w,isEditing:T,selectedEvent:E,editForm:D,eventColors:O,openEditModal:k,saveEvent:A,deleteEvent:j,expose:M}=I(e,l);return t(M),(e,t)=>(f(),a(`div`,L,[c(g(C),{ref_key:`calendarRef`,ref:p,options:g(h)},null,8,[`options`]),g(_)?(f(),r(g(S),{key:0,show:g(_),"onUpdate:show":t[0]||=e=>u(_)?_.value=e:null,preset:`dialog`,title:`事件操作 - ${g(E)?.title}`,style:{width:`400px`}},{default:v(()=>[o(`div`,R,[c(g(y),{type:`primary`,onClick:g(k),style:{"margin-right":`12px`},size:`small`},{default:v(()=>[...t[6]||=[s(` 编辑 `,-1)]]),_:1},8,[`onClick`]),c(g(y),{type:`error`,onClick:g(j),size:`small`},{default:v(()=>[...t[7]||=[s(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),_:1},8,[`show`,`title`])):i(`v-if`,!0),c(g(S),{show:g(w),"onUpdate:show":t[5]||=e=>u(w)?w.value=e:null,preset:`dialog`,title:g(T)?`编辑事件`:`添加事件`,"positive-text":`保存`,"negative-text":`取消`,onPositiveClick:g(A)},{default:v(()=>[o(`div`,z,[o(`div`,B,[t[8]||=o(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件标题`,-1),c(g(x),{value:g(D).title,"onUpdate:value":t[1]||=e=>g(D).title=e,placeholder:`请输入事件标题`,"aria-label":`事件标题`},null,8,[`value`])]),o(`div`,V,[t[9]||=o(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件日期`,-1),c(g(b),{value:g(D).date,"onUpdate:value":t[2]||=e=>g(D).date=e,type:`date`,format:`yyyy-MM-dd`,style:{width:`100%`},"aria-label":`事件日期`},null,8,[`value`])]),o(`div`,H,[o(`div`,null,[t[10]||=o(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`开始时间`,-1),c(g(x),{value:g(D).startTime,"onUpdate:value":t[3]||=e=>g(D).startTime=e,placeholder:`09:00`,"aria-label":`开始时间(24 小时制)`},null,8,[`value`])]),o(`div`,null,[t[11]||=o(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`结束时间`,-1),c(g(x),{value:g(D).endTime,"onUpdate:value":t[4]||=e=>g(D).endTime=e,placeholder:`10:00`,"aria-label":`结束时间(24 小时制)`},null,8,[`value`])])]),o(`div`,U,[t[12]||=o(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件颜色`,-1),o(`div`,W,[(f(!0),a(n,null,m(g(O),e=>(f(),a(`button`,{key:e,type:`button`,class:`event-color-swatch`,"aria-label":`事件颜色 ${e}`,"aria-pressed":g(D).color===e,style:d({width:`30px`,height:`30px`,backgroundColor:e,borderRadius:`50%`,border:g(D).color===e?`3px solid #000`:`2px solid #ddd`}),onClick:t=>g(D).color=e},null,12,G))),128))])])])]),_:1},8,[`show`,`title`,`onPositiveClick`])]))}}),[[`__scopeId`,`data-v-
|
|
1
|
+
import{r as e}from"./config.js";import{t}from"./export-helper.js";import{Fragment as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createTextVNode as s,createVNode as c,defineComponent as l,isRef as u,normalizeStyle as d,openBlock as f,ref as p,renderList as m,shallowRef as h,unref as g,watch as _,withCtx as v}from"vue";import{NButton as y,NDatePicker as b,NInput as x,NModal as S}from"naive-ui";import C from"@fullcalendar/vue3";import w from"@fullcalendar/daygrid";import T from"@fullcalendar/interaction";import E from"@fullcalendar/list";import D from"@fullcalendar/core/locales/zh-cn";const O=[`#3f86ff`,`#ff6b6b`,`#67c23a`,`#e6a23c`,`#9c27b0`,`#00bcd4`,`#ff5722`],k={id:``,title:``,date:Date.now(),startTime:`09:00`,endTime:`10:00`,color:`#3f86ff`},A={left:`prev,next today`,center:`title`,right:`dayGridMonth,dayGridWeek,dayGridDay,listWeek`},j={today:`今天`,month:`月`,week:`周`,day:`日`,list:`列表`},M=/^([01]\d|2[0-3]):([0-5]\d)$/;function N(e,t,n){if(e===null||!Number.isFinite(e))return null;let r=M.exec(t),i=M.exec(n);if(!r||!i)return null;let a=Number(r[1])*60+Number(r[2]),o=Number(i[1])*60+Number(i[2]);if(o<=a)return null;let s=new Date(e);if(Number.isNaN(s.getTime()))return null;let c=e=>new Date(s.getFullYear(),s.getMonth(),s.getDate(),Math.floor(e/60),e%60),l=c(a),u=c(o);return l.getHours()*60+l.getMinutes()!==a||u.getHours()*60+u.getMinutes()!==o?null:{start:l,end:u}}let P=0;const F=()=>globalThis.crypto?.randomUUID?.()??`calendar-${Date.now()}-${++P}`;function I(t,n){let r=e(),i=p(null),a=p([...t.events??[]]),o=p(!1),s=p(!1),c=p(!1),l=h(null),u=p({...k}),d=e=>{a.value=[...a.value,e],n(`update:events`,a.value)},f=e=>{let t=a.value.findIndex(t=>t.id===e.id);t!==-1&&(a.value=a.value.map((n,r)=>r===t?{...n,...e}:n),n(`update:events`,a.value))},m=e=>{a.value=a.value.filter(t=>t.id!==e),n(`update:events`,a.value)};function g(e){t.editable&&(e.jsEvent.preventDefault(),l.value=e.event,t.showEditDialog&&(o.value=!0))}function v(e){!t.editable||!t.showAddDialog||x(e.date)}function y(e){let t={id:e.event.id,start:e.event.start??void 0,end:e.event.end??void 0};f(t),n(`event-dropped`,t),r.success(`事件 "${e.event.title}" 时间已更新`)}function b(e){let t={id:e.event.id,start:e.event.start??void 0,end:e.event.end??void 0};f(t),n(`event-updated`,t)}function x(e){c.value=!1,u.value={...k,date:e.getTime(),color:O[Math.floor(Math.random()*O.length)]},s.value=!0}function S(){let e=l.value;if(!e?.start)return;let{start:t}=e;c.value=!0;let n=new Date(t),r=e.end&&!e.allDay?new Date(e.end):new Date(t.getTime()+36e5);u.value={id:e.id,title:e.title,date:n.getTime(),startTime:`${String(n.getHours()).padStart(2,`0`)}:${String(n.getMinutes()).padStart(2,`0`)}`,endTime:`${String(r.getHours()).padStart(2,`0`)}:${String(r.getMinutes()).padStart(2,`0`)}`,color:e.backgroundColor||`#3f86ff`},o.value=!1,s.value=!0}function C(){if(!u.value.title.trim())return r.error(`请输入事件标题`),!1;let e=N(u.value.date,u.value.startTime,u.value.endTime);if(!e)return r.error(`请选择有效日期和时间,且结束时间须晚于开始时间`),!1;if(c.value&&!a.value.some(e=>e.id===u.value.id))return r.error(`事件已不存在,请刷新后重试`),!1;let t={id:c.value?u.value.id:F(),title:u.value.title.trim(),...e,color:u.value.color};return c.value?(f(t),n(`event-updated`,t),r.success(`事件已更新`)):(d(t),n(`event-added`,t),r.success(`事件已添加`)),s.value=!1,!0}function M(){if(!l.value)return;let{id:e,title:t}=l.value;if(!a.value.some(t=>t.id===e)){o.value=!1;return}m(e),n(`event-deleted`,{id:e,title:t}),o.value=!1,r.success(`已删除事件: ${t}`)}let P=h({plugins:[w,T,E],locale:D,initialView:t.initialView??`dayGridMonth`,events:a.value,headerToolbar:A,buttonText:j,editable:t.editable??!0,eventClick:g,dateClick:v,eventDrop:y,eventResize:b});return _(()=>t.events,e=>{a.value=[...e??[]]},{deep:!0}),_(a,e=>{P.value={...P.value,events:e}},{deep:!0}),_(()=>t.editable,e=>{P.value={...P.value,editable:e??!0}}),_(()=>t.initialView,e=>{e&&i.value?.getApi().changeView(e)}),{calendarRef:i,calendarOptions:P,showActionDialog:o,showEditModal:s,isEditing:c,selectedEvent:l,editForm:u,eventColors:O,openEditModal:S,saveEvent:C,deleteEvent:M,expose:{getApi:()=>i.value?.getApi(),addEvent:d,updateEvent:f,deleteEvent:m,getEvents:()=>a.value.map(e=>({...e,start:e.start instanceof Date?new Date(e.start):e.start,end:e.end instanceof Date?new Date(e.end):e.end}))}}}const L={class:`c-full-calendar`},R={class:`ml-10% mt-20px`},z={style:{padding:`20px`}},B={style:{"margin-bottom":`16px`}},V={style:{"margin-bottom":`16px`}},H={style:{display:`grid`,"grid-template-columns":`1fr 1fr`,gap:`16px`}},U={style:{"margin-top":`16px`}},W={style:{display:`flex`,gap:`8px`}},G=[`aria-label`,`aria-pressed`,`onClick`];var K=t(l({name:`C_FullCalendar`,__name:`index`,props:{events:{default:()=>[]},initialView:{default:`dayGridMonth`},editable:{type:Boolean,default:!0},showAddDialog:{type:Boolean,default:!0},showEditDialog:{type:Boolean,default:!0}},emits:[`update:events`,`event-added`,`event-updated`,`event-deleted`,`event-dropped`],setup(e,{expose:t,emit:l}){let{calendarRef:p,calendarOptions:h,showActionDialog:_,showEditModal:w,isEditing:T,selectedEvent:E,editForm:D,eventColors:O,openEditModal:k,saveEvent:A,deleteEvent:j,expose:M}=I(e,l);return t(M),(e,t)=>(f(),a(`div`,L,[c(g(C),{ref_key:`calendarRef`,ref:p,options:g(h)},null,8,[`options`]),g(_)?(f(),r(g(S),{key:0,show:g(_),"onUpdate:show":t[0]||=e=>u(_)?_.value=e:null,preset:`dialog`,title:`事件操作 - ${g(E)?.title}`,style:{width:`400px`}},{default:v(()=>[o(`div`,R,[c(g(y),{type:`primary`,onClick:g(k),style:{"margin-right":`12px`},size:`small`},{default:v(()=>[...t[6]||=[s(` 编辑 `,-1)]]),_:1},8,[`onClick`]),c(g(y),{type:`error`,onClick:g(j),size:`small`},{default:v(()=>[...t[7]||=[s(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),_:1},8,[`show`,`title`])):i(`v-if`,!0),c(g(S),{show:g(w),"onUpdate:show":t[5]||=e=>u(w)?w.value=e:null,preset:`dialog`,title:g(T)?`编辑事件`:`添加事件`,"positive-text":`保存`,"negative-text":`取消`,onPositiveClick:g(A)},{default:v(()=>[o(`div`,z,[o(`div`,B,[t[8]||=o(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件标题`,-1),c(g(x),{value:g(D).title,"onUpdate:value":t[1]||=e=>g(D).title=e,placeholder:`请输入事件标题`,"aria-label":`事件标题`},null,8,[`value`])]),o(`div`,V,[t[9]||=o(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件日期`,-1),c(g(b),{value:g(D).date,"onUpdate:value":t[2]||=e=>g(D).date=e,type:`date`,format:`yyyy-MM-dd`,style:{width:`100%`},"aria-label":`事件日期`},null,8,[`value`])]),o(`div`,H,[o(`div`,null,[t[10]||=o(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`开始时间`,-1),c(g(x),{value:g(D).startTime,"onUpdate:value":t[3]||=e=>g(D).startTime=e,placeholder:`09:00`,"aria-label":`开始时间(24 小时制)`},null,8,[`value`])]),o(`div`,null,[t[11]||=o(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`结束时间`,-1),c(g(x),{value:g(D).endTime,"onUpdate:value":t[4]||=e=>g(D).endTime=e,placeholder:`10:00`,"aria-label":`结束时间(24 小时制)`},null,8,[`value`])])]),o(`div`,U,[t[12]||=o(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件颜色`,-1),o(`div`,W,[(f(!0),a(n,null,m(g(O),e=>(f(),a(`button`,{key:e,type:`button`,class:`event-color-swatch`,"aria-label":`事件颜色 ${e}`,"aria-pressed":g(D).color===e,style:d({width:`30px`,height:`30px`,backgroundColor:e,borderRadius:`50%`,border:g(D).color===e?`3px solid #000`:`2px solid #ddd`}),onClick:t=>g(D).color=e},null,12,G))),128))])])])]),_:1},8,[`show`,`title`,`onPositiveClick`])]))}}),[[`__scopeId`,`data-v-a9cd14da`]]);export{O as a,k as i,I as n,A as o,j as r,K as t};
|