@robot-admin/naive-ui-components 0.17.0 → 0.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +12 -11
  3. package/README_EN.md +1 -0
  4. package/dist/C_AntV.css +105 -105
  5. package/dist/C_AntV2.cjs +3 -3
  6. package/dist/C_AntV2.js +3 -3
  7. package/dist/C_AudioPlayer.css +53 -53
  8. package/dist/C_AudioPlayer2.cjs +1 -1
  9. package/dist/C_AudioPlayer2.js +1 -1
  10. package/dist/C_Barcode.css +6 -6
  11. package/dist/C_Barcode2.cjs +1 -1
  12. package/dist/C_Barcode2.js +1 -1
  13. package/dist/C_Chat.css +269 -185
  14. package/dist/C_Chat2.cjs +1 -1
  15. package/dist/C_Chat2.js +1 -1
  16. package/dist/C_Code.css +26 -26
  17. package/dist/C_Code2.cjs +1 -1
  18. package/dist/C_Code2.js +1 -1
  19. package/dist/C_Draggable2.cjs +1 -1
  20. package/dist/C_Draggable2.js +1 -1
  21. package/dist/C_FilePreview.css +96 -57
  22. package/dist/C_FilePreview2.cjs +1 -1
  23. package/dist/C_FilePreview2.js +1 -1
  24. package/dist/C_FullCalendar.css +10 -11
  25. package/dist/C_FullCalendar2.cjs +1 -1
  26. package/dist/C_FullCalendar2.js +1 -1
  27. package/dist/C_GlobalSearch.css +140 -118
  28. package/dist/C_GlobalSearch2.cjs +1 -1
  29. package/dist/C_GlobalSearch2.js +1 -1
  30. package/dist/C_ImageCropper.css +10 -10
  31. package/dist/C_ImageCropper2.cjs +1 -1
  32. package/dist/C_ImageCropper2.js +1 -1
  33. package/dist/C_Login.css +79 -79
  34. package/dist/C_Login2.cjs +1 -1
  35. package/dist/C_Login2.js +1 -1
  36. package/dist/C_Map.css +10 -10
  37. package/dist/C_Map2.cjs +1 -1
  38. package/dist/C_Map2.js +1 -1
  39. package/dist/C_OrgChart.css +28 -4
  40. package/dist/C_OrgChart2.cjs +1 -1
  41. package/dist/C_OrgChart2.js +1 -1
  42. package/dist/C_QRCode2.cjs +1 -1
  43. package/dist/C_QRCode2.js +1 -1
  44. package/dist/C_Signature.css +15 -15
  45. package/dist/C_Signature2.cjs +1 -1
  46. package/dist/C_Signature2.js +1 -1
  47. package/dist/C_SplitPane.cjs +1 -1
  48. package/dist/C_SplitPane.css +231 -77
  49. package/dist/C_SplitPane.js +1 -1
  50. package/dist/C_SplitPane2.cjs +1 -1
  51. package/dist/C_SplitPane2.js +1 -1
  52. package/dist/C_Table.base.css +110 -117
  53. package/dist/C_Table.css +110 -117
  54. package/dist/C_Table.d.ts +1 -0
  55. package/dist/C_Tabs.css +18 -18
  56. package/dist/C_TagsView.css +51 -51
  57. package/dist/C_TagsView2.cjs +1 -1
  58. package/dist/C_TagsView2.js +1 -1
  59. package/dist/C_Transfer.css +93 -84
  60. package/dist/C_Transfer2.cjs +1 -1
  61. package/dist/C_Transfer2.js +1 -1
  62. package/dist/C_Tree.d.ts +1 -0
  63. package/dist/C_Upload.css +5 -5
  64. package/dist/C_Upload2.cjs +1 -1
  65. package/dist/C_Upload2.js +1 -1
  66. package/dist/C_VideoPlayer.css +20 -20
  67. package/dist/C_VideoPlayer2.cjs +4 -3
  68. package/dist/C_VideoPlayer2.js +4 -3
  69. package/dist/C_VtableGantt.css +44 -28
  70. package/dist/C_VtableGantt2.cjs +1 -1
  71. package/dist/C_VtableGantt2.js +1 -1
  72. package/dist/C_WaterFall.css +29 -29
  73. package/dist/C_WaterFall2.cjs +1 -1
  74. package/dist/C_WaterFall2.js +1 -1
  75. package/dist/C_WorkFlow.css +111 -111
  76. package/dist/C_WorkFlow2.cjs +1 -1
  77. package/dist/C_WorkFlow2.js +1 -1
  78. package/dist/constants3.d.cts +2 -2
  79. package/dist/constants3.d.ts +2 -2
  80. package/dist/constants4.d.cts +5 -5
  81. package/dist/constants4.d.ts +5 -5
  82. package/dist/constants5.d.cts +12 -15
  83. package/dist/constants5.d.ts +12 -15
  84. package/dist/data.d.cts +9 -9
  85. package/dist/data.d.ts +9 -9
  86. package/dist/data2.cjs +1 -1
  87. package/dist/data2.js +1 -1
  88. package/dist/helpers.cjs +1 -1
  89. package/dist/helpers.js +1 -1
  90. package/dist/index.d.ts +1 -0
  91. package/dist/index.vue.d.cts +4 -4
  92. package/dist/index.vue.d.ts +4 -4
  93. package/dist/index10.vue.d.cts +2 -2
  94. package/dist/index10.vue.d.ts +2 -2
  95. package/dist/index11.vue.d.cts +2 -2
  96. package/dist/index11.vue.d.ts +5 -5
  97. package/dist/index12.vue.d.cts +5 -5
  98. package/dist/index13.vue.d.ts +1 -1
  99. package/dist/index14.vue.d.cts +1 -1
  100. package/dist/index14.vue.d.ts +5 -5
  101. package/dist/index15.vue.d.cts +5 -5
  102. package/dist/index15.vue.d.ts +1 -1
  103. package/dist/index16.vue.d.cts +1 -1
  104. package/dist/index16.vue.d.ts +1 -1
  105. package/dist/index17.vue.d.cts +1 -1
  106. package/dist/index17.vue.d.ts +1 -1
  107. package/dist/index18.vue.d.cts +1 -1
  108. package/dist/index18.vue.d.ts +4 -4
  109. package/dist/index19.vue.d.cts +4 -4
  110. package/dist/index19.vue.d.ts +2 -2
  111. package/dist/index2.vue.d.cts +3 -3
  112. package/dist/index2.vue.d.ts +3 -3
  113. package/dist/index20.vue.d.cts +5 -1
  114. package/dist/index20.vue.d.ts +5 -1
  115. package/dist/index21.vue.d.cts +2 -2
  116. package/dist/index21.vue.d.ts +2 -2
  117. package/dist/index22.vue.d.cts +2 -2
  118. package/dist/index22.vue.d.ts +2 -2
  119. package/dist/index23.vue.d.cts +2 -2
  120. package/dist/index23.vue.d.ts +2 -2
  121. package/dist/index25.vue.d.cts +9 -4
  122. package/dist/index25.vue.d.ts +9 -4
  123. package/dist/index27.vue.d.cts +2 -2
  124. package/dist/index27.vue.d.ts +2 -2
  125. package/dist/index28.vue.d.cts +6 -2
  126. package/dist/index28.vue.d.ts +6 -2
  127. package/dist/index3.vue.d.cts +4 -4
  128. package/dist/index3.vue.d.ts +4 -4
  129. package/dist/index4.vue.d.cts +2 -2
  130. package/dist/index6.vue.d.ts +8 -5
  131. package/dist/index7.vue.d.cts +8 -5
  132. package/dist/index8.vue.d.ts +4 -6
  133. package/dist/index9.vue.d.cts +4 -6
  134. package/dist/index9.vue.d.ts +2 -2
  135. package/dist/mapUtils.d.cts +4 -4
  136. package/dist/mapUtils.d.ts +4 -4
  137. package/dist/style.css +1559 -1219
  138. package/dist/useCalendarEvents.d.cts +10 -0
  139. package/dist/useCalendarEvents.d.ts +10 -0
  140. package/dist/useCropperCore.d.cts +10 -10
  141. package/dist/useCropperCore.d.ts +10 -10
  142. package/dist/useDraggableLayout.d.cts +16 -14
  143. package/dist/useDraggableLayout.d.ts +16 -14
  144. package/dist/useEdgeInteraction.d.cts +4 -2
  145. package/dist/useEdgeInteraction.d.ts +4 -2
  146. package/dist/useFullscreen.d.cts +9 -3
  147. package/dist/useFullscreen.d.ts +9 -3
  148. package/dist/useGlobalSearch.d.cts +9 -4
  149. package/dist/useGlobalSearch.d.ts +9 -4
  150. package/dist/useInfiniteScroll.d.cts +6 -3
  151. package/dist/useInfiniteScroll.d.ts +6 -3
  152. package/dist/useQRCode.d.cts +2 -2
  153. package/dist/useQRCode.d.ts +2 -2
  154. package/dist/useSearchState.d.cts +2 -2
  155. package/dist/useSearchState.d.ts +2 -2
  156. package/dist/useSignatureHistory.d.cts +5 -5
  157. package/dist/useSignatureHistory.d.ts +5 -5
  158. package/dist/useSplitResize.d.cts +3 -3
  159. package/dist/useSplitResize.d.ts +3 -3
  160. package/dist/useTableQuery.cjs +3 -3
  161. package/dist/useTableQuery.d.cts +15 -5
  162. package/dist/useTableQuery.d.ts +15 -5
  163. package/dist/useTableQuery.js +3 -3
  164. package/dist/useTimeSelection.d.cts +2 -2
  165. package/dist/useTimeSelection.d.ts +2 -2
  166. package/dist/useWorkflowValidation.d.cts +8 -3
  167. package/dist/useWorkflowValidation.d.ts +8 -3
  168. package/dist/verification.d.cts +2 -2
  169. package/dist/verification.d.ts +2 -2
  170. package/docs/component-review-20261019.md +55 -0
  171. package/docs/components.en.md +4 -0
  172. package/docs/components.md +4 -0
  173. package/docs/guides/runtime-performance.md +38 -0
  174. package/docs/guides/split-pane.en.md +4 -0
  175. package/docs/guides/split-pane.md +4 -0
  176. package/docs/guides/table-density.md +26 -0
  177. package/docs/guides/transfer.md +11 -0
  178. package/docs/runtime-review-20261019.md +41 -0
  179. package/package.json +4 -2
@@ -1 +1 @@
1
- import{t as e}from"./feedback.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,isRef as d,normalizeStyle as f,openBlock as p,ref as m,renderList as h,shallowRef as g,unref as _,watch as v,withCtx as y}from"vue";import{NButton as b,NDatePicker as x,NInput as S,NModal as C}from"naive-ui";import w from"@fullcalendar/vue3";import T from"@fullcalendar/daygrid";import E from"@fullcalendar/interaction";import D from"@fullcalendar/list";import O from"@fullcalendar/core/locales/zh-cn";const k=[`#3f86ff`,`#ff6b6b`,`#67c23a`,`#e6a23c`,`#9c27b0`,`#00bcd4`,`#ff5722`],A={id:``,title:``,date:Date.now(),startTime:`09:00`,endTime:`10:00`,color:`#3f86ff`},j={left:`prev,next today`,center:`title`,right:`dayGridMonth,dayGridWeek,dayGridDay,listWeek`},M={today:`今天`,month:`月`,week:`周`,day:`日`,list:`列表`},N=/^([01]\d|2[0-3]):([0-5]\d)$/;function P(e,t,n){if(e===null||!Number.isFinite(e))return null;let r=N.exec(t),i=N.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 F=0;const I=()=>globalThis.crypto?.randomUUID?.()??`calendar-${Date.now()}-${++F}`;function L(t,n){let i=e(),a=m(null),o=m([...t.events??[]]),s=m(!1),c=m(!1),l=m(!1),u=g(null),d=m({...A}),f=e=>{o.value=[...o.value,e],n(`update:events`,o.value)},p=e=>{let t=o.value.findIndex(t=>t.id===e.id);t!==-1&&(o.value=o.value.map((n,r)=>r===t?{...n,...e}:n),n(`update:events`,o.value))},h=e=>{o.value=o.value.filter(t=>t.id!==e),n(`update:events`,o.value)};function _(e){t.editable&&(e.jsEvent.preventDefault(),u.value=e.event,t.showEditDialog&&(s.value=!0))}function y(e){!t.editable||!t.showAddDialog||S(e.date)}function b(e){let t={id:e.event.id,start:e.event.start??void 0,end:e.event.end??void 0};p(t),n(`event-dropped`,t),i.success(`事件 "${e.event.title}" 时间已更新`)}function x(e){let t={id:e.event.id,start:e.event.start??void 0,end:e.event.end??void 0};p(t),n(`event-updated`,t)}function S(e){l.value=!1,d.value={...A,date:e.getTime(),color:k[Math.floor(Math.random()*k.length)]},c.value=!0}function C(){let e=u.value;if(!e?.start)return;let{start:t}=e;l.value=!0;let n=new Date(t),r=e.end&&!e.allDay?new Date(e.end):new Date(t.getTime()+36e5);d.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`},s.value=!1,c.value=!0}function w(){if(!d.value.title.trim())return i.error(`请输入事件标题`),!1;let e=P(d.value.date,d.value.startTime,d.value.endTime);if(!e)return i.error(`请选择有效日期和时间,且结束时间须晚于开始时间`),!1;if(l.value&&!o.value.some(e=>e.id===d.value.id))return i.error(`事件已不存在,请刷新后重试`),!1;let t={id:l.value?d.value.id:I(),title:d.value.title.trim(),...e,color:d.value.color};return l.value?(p(t),n(`event-updated`,t),i.success(`事件已更新`)):(f(t),n(`event-added`,t),i.success(`事件已添加`)),c.value=!1,!0}function N(){if(!u.value)return;let{id:e,title:t}=u.value;if(!o.value.some(t=>t.id===e)){s.value=!1;return}h(e),n(`event-deleted`,{id:e,title:t}),s.value=!1,i.success(`已删除事件: ${t}`)}let F=r(()=>({locale:O,headerToolbar:j,buttonText:M,eventClick:_,dateClick:y,eventDrop:b,eventResize:x,...t.config,plugins:[T,E,D],initialView:t.initialView??`dayGridMonth`,events:o.value,eventSources:void 0,editable:t.editable??!0}));return v(()=>t.events,e=>{o.value=[...e??[]]},{deep:!0}),v(()=>t.initialView,e=>{e&&a.value?.getApi().changeView(e)}),{calendarRef:a,calendarOptions:F,showActionDialog:s,showEditModal:c,isEditing:l,selectedEvent:u,editForm:d,eventColors:k,openEditModal:C,saveEvent:w,deleteEvent:N,expose:{getApi:()=>a.value?.getApi(),addEvent:f,updateEvent:p,deleteEvent:h,getEvents:()=>o.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 R={class:`c-full-calendar`},z={class:`ml-10% mt-20px`},B={style:{padding:`20px`}},V={style:{"margin-bottom":`16px`}},H={style:{"margin-bottom":`16px`}},U={style:{display:`grid`,"grid-template-columns":`1fr 1fr`,gap:`16px`}},W={style:{"margin-top":`16px`}},G={style:{display:`flex`,gap:`8px`}},K=[`aria-label`,`aria-pressed`,`onClick`];var q=t(u({name:`C_FullCalendar`,__name:`index`,props:{config:{},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:r}){let{calendarRef:u,calendarOptions:m,showActionDialog:g,showEditModal:v,isEditing:T,selectedEvent:E,editForm:D,eventColors:O,openEditModal:k,saveEvent:A,deleteEvent:j,expose:M}=L(e,r);return t(M),(e,t)=>(p(),o(`div`,R,[l(_(w),{ref_key:`calendarRef`,ref:u,options:_(m)},null,8,[`options`]),_(g)?(p(),i(_(C),{key:0,show:_(g),"onUpdate:show":t[0]||=e=>d(g)?g.value=e:null,preset:`dialog`,title:`事件操作 - ${_(E)?.title}`,style:{width:`400px`}},{default:y(()=>[s(`div`,z,[l(_(b),{type:`primary`,onClick:_(k),style:{"margin-right":`12px`},size:`small`},{default:y(()=>[...t[6]||=[c(` 编辑 `,-1)]]),_:1},8,[`onClick`]),l(_(b),{type:`error`,onClick:_(j),size:`small`},{default:y(()=>[...t[7]||=[c(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),_:1},8,[`show`,`title`])):a(`v-if`,!0),l(_(C),{show:_(v),"onUpdate:show":t[5]||=e=>d(v)?v.value=e:null,preset:`dialog`,title:_(T)?`编辑事件`:`添加事件`,"positive-text":`保存`,"negative-text":`取消`,onPositiveClick:_(A)},{default:y(()=>[s(`div`,B,[s(`div`,V,[t[8]||=s(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件标题`,-1),l(_(S),{value:_(D).title,"onUpdate:value":t[1]||=e=>_(D).title=e,placeholder:`请输入事件标题`,"aria-label":`事件标题`},null,8,[`value`])]),s(`div`,H,[t[9]||=s(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件日期`,-1),l(_(x),{value:_(D).date,"onUpdate:value":t[2]||=e=>_(D).date=e,type:`date`,format:`yyyy-MM-dd`,style:{width:`100%`},"aria-label":`事件日期`},null,8,[`value`])]),s(`div`,U,[s(`div`,null,[t[10]||=s(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`开始时间`,-1),l(_(S),{value:_(D).startTime,"onUpdate:value":t[3]||=e=>_(D).startTime=e,placeholder:`09:00`,"aria-label":`开始时间(24 小时制)`},null,8,[`value`])]),s(`div`,null,[t[11]||=s(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`结束时间`,-1),l(_(S),{value:_(D).endTime,"onUpdate:value":t[4]||=e=>_(D).endTime=e,placeholder:`10:00`,"aria-label":`结束时间(24 小时制)`},null,8,[`value`])])]),s(`div`,W,[t[12]||=s(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件颜色`,-1),s(`div`,G,[(p(!0),o(n,null,h(_(O),e=>(p(),o(`button`,{key:e,type:`button`,class:`event-color-swatch`,"aria-label":`事件颜色 ${e}`,"aria-pressed":_(D).color===e,style:f({width:`30px`,height:`30px`,backgroundColor:e,borderRadius:`50%`,border:_(D).color===e?`3px solid #000`:`2px solid #ddd`}),onClick:t=>_(D).color=e},null,12,K))),128))])])])]),_:1},8,[`show`,`title`,`onPositiveClick`])]))}}),[[`__scopeId`,`data-v-01d32289`]]);export{k as a,A as i,L as n,j as o,M as r,q as t};
1
+ import{t as e}from"./feedback.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,isRef as d,normalizeStyle as f,openBlock as p,ref as m,renderList as h,shallowRef as g,unref as _,watch as v,withCtx as y}from"vue";import{NButton as b,NCheckbox as x,NDatePicker as S,NInput as C,NModal as w}from"naive-ui";import T from"@fullcalendar/vue3";import E from"@fullcalendar/daygrid";import D from"@fullcalendar/interaction";import O from"@fullcalendar/list";import k from"@fullcalendar/core/locales/zh-cn";const A=[`#3f86ff`,`#ff6b6b`,`#67c23a`,`#e6a23c`,`#9c27b0`,`#00bcd4`,`#ff5722`],j={id:``,title:``,date:Date.now(),startTime:`09:00`,endTime:`10:00`,color:`#3f86ff`},M={left:`prev,next today`,center:`title`,right:`dayGridMonth,dayGridWeek,dayGridDay,listWeek`},N={today:`今天`,month:`月`,week:`周`,day:`日`,list:`列表`},P=/^([01]\d|2[0-3]):([0-5]\d)$/,F=e=>{if(e===null||!Number.isFinite(e))return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t},I=(e,t)=>{let n=P.exec(t);if(!n)return null;let r=Number(n[1]),i=Number(n[2]),a=new Date(e.getFullYear(),e.getMonth(),e.getDate(),r,i);return a.getHours()===r&&a.getMinutes()===i?a:null};function L(e,t,n,r=e,i=!1){let a=F(e),o=F(r);if(!a||!o)return null;if(i){let e=new Date(a.getFullYear(),a.getMonth(),a.getDate()),t=new Date(o.getFullYear(),o.getMonth(),o.getDate()+1);return t>e?{start:e,end:t}:null}let s=I(a,t),c=I(o,n);return s&&c&&c>s?{start:s,end:c}:null}let R=0;const z=()=>globalThis.crypto?.randomUUID?.()??`calendar-${Date.now()}-${++R}`;function B(t,n){let i=e(),a=m(null),o=m([...t.events??[]]),s=m(!1),c=m(!1),l=m(!1),u=g(null),d=m({...j}),f=e=>[e.date,e.endDate,e.startTime,e.endTime,e.allDay],p=[];v(()=>[d.value,d.value.date],([e,t],[n,r])=>{if(e!==n)return;let{endDate:i}=d.value;if(t==null||r==null||i==null)return;let a=new Date(r),o=new Date(i);a.toDateString()===o.toDateString()&&(d.value.endDate=t)},{flush:`sync`});let h=e=>{o.value=[...o.value,e],n(`update:events`,o.value)},_=e=>{let t=o.value.findIndex(t=>t.id===e.id);t!==-1&&(o.value=o.value.map((n,r)=>r===t?{...n,...e}:n),n(`update:events`,o.value))},y=e=>{o.value=o.value.filter(t=>t.id!==e),n(`update:events`,o.value)};function b(e){t.editable&&(e.jsEvent.preventDefault(),u.value=e.event,t.showEditDialog&&(s.value=!0))}function x(e){!t.editable||!t.showAddDialog||w(e.date)}function S(e){if(t.editable===!1){e.revert();return}let r={id:e.event.id,start:e.event.start??void 0,end:e.event.end??void 0,allDay:e.event.allDay};_(r),n(`event-dropped`,r),i.success(`事件 "${e.event.title}" 时间已更新`)}function C(e){if(t.editable===!1){e.revert();return}let r={id:e.event.id,start:e.event.start??void 0,end:e.event.end??void 0,allDay:e.event.allDay};_(r),n(`event-updated`,r)}function w(e){t.editable!==!1&&(l.value=!1,d.value={...j,date:e.getTime(),endDate:e.getTime(),allDay:!1,color:A[Math.floor(Math.random()*A.length)]},c.value=!0)}function T(){if(t.editable===!1)return;let e=u.value;if(!e?.start)return;let{start:n}=e;l.value=!0;let r=new Date(n),i=e.end?new Date(e.end):new Date(n.getTime()+(e.allDay?0:36e5));e.allDay&&e.end&&i.setDate(i.getDate()-1),d.value={id:e.id,title:e.title,date:r.getTime(),endDate:i.getTime(),allDay:e.allDay,startTime:`${String(r.getHours()).padStart(2,`0`)}:${String(r.getMinutes()).padStart(2,`0`)}`,endTime:`${String(i.getHours()).padStart(2,`0`)}:${String(i.getMinutes()).padStart(2,`0`)}`,color:e.backgroundColor||`#3f86ff`},p=f(d.value),s.value=!1,c.value=!0}function P(e){if(e&&f(d.value).every((e,t)=>e===p[t]))return{start:e.start,end:e.end,allDay:e.allDay};let t=L(d.value.date,d.value.startTime,d.value.endTime,d.value.endDate===void 0?d.value.date:d.value.endDate,d.value.allDay);return t&&{...t,allDay:!!d.value.allDay}}function F(){if(t.editable===!1)return!1;if(!d.value.title.trim())return i.error(`请输入事件标题`),!1;let e=l.value?o.value.find(e=>e.id===d.value.id):void 0;if(l.value&&!e)return i.error(`事件已不存在,请刷新后重试`),!1;let r=P(e);if(!r)return i.error(`请选择有效日期和时间,且结束时间须晚于开始时间`),!1;let a={id:l.value?d.value.id:z(),title:d.value.title.trim(),...r,color:d.value.color};return l.value?(_(a),n(`event-updated`,a),i.success(`事件已更新`)):(h(a),n(`event-added`,a),i.success(`事件已添加`)),c.value=!1,!0}function I(){if(t.editable===!1||!u.value)return;let{id:e,title:r}=u.value;if(!o.value.some(t=>t.id===e)){s.value=!1;return}y(e),n(`event-deleted`,{id:e,title:r}),s.value=!1,i.success(`已删除事件: ${r}`)}let R=r(()=>({locale:k,headerToolbar:M,buttonText:N,eventClick:b,dateClick:x,eventDrop:S,eventResize:C,...t.config,plugins:[E,D,O],initialView:t.initialView??`dayGridMonth`,events:o.value,eventSources:void 0,editable:t.editable??!0}));return v(()=>t.editable,e=>{e===!1&&(s.value=!1,c.value=!1,u.value=null)},{flush:`sync`}),v(()=>t.events,e=>{o.value=[...e??[]]},{deep:!0}),v(()=>t.initialView,e=>{e&&a.value?.getApi().changeView(e)}),{calendarRef:a,calendarOptions:R,showActionDialog:s,showEditModal:c,isEditing:l,selectedEvent:u,editForm:d,eventColors:A,openEditModal:T,saveEvent:F,deleteEvent:I,expose:{getApi:()=>a.value?.getApi(),addEvent:h,updateEvent:_,deleteEvent:y,getEvents:()=>o.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 V={class:`c-full-calendar`},H={class:`ml-10% mt-20px`},U={style:{padding:`20px`}},W={style:{"margin-bottom":`16px`}},G={style:{"margin-bottom":`16px`}},K={style:{"margin-bottom":`16px`}},q={key:0,style:{display:`grid`,"grid-template-columns":`1fr 1fr`,gap:`16px`}},J={style:{"margin-top":`16px`}},Y={style:{display:`flex`,gap:`8px`}},X=[`aria-label`,`aria-pressed`,`onClick`];var Z=t(u({name:`C_FullCalendar`,__name:`index`,props:{config:{},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:r}){let{calendarRef:u,calendarOptions:m,showActionDialog:g,showEditModal:v,isEditing:E,selectedEvent:D,editForm:O,eventColors:k,openEditModal:A,saveEvent:j,deleteEvent:M,expose:N}=B(e,r);return t(N),(e,t)=>(p(),o(`div`,V,[l(_(T),{ref_key:`calendarRef`,ref:u,options:_(m)},null,8,[`options`]),_(g)?(p(),i(_(w),{key:0,show:_(g),"onUpdate:show":t[0]||=e=>d(g)?g.value=e:null,preset:`dialog`,title:`事件操作 - ${_(D)?.title}`,style:{width:`400px`}},{default:y(()=>[s(`div`,H,[l(_(b),{type:`primary`,onClick:_(A),style:{"margin-right":`12px`},size:`small`},{default:y(()=>[...t[8]||=[c(` 编辑 `,-1)]]),_:1},8,[`onClick`]),l(_(b),{type:`error`,onClick:_(M),size:`small`},{default:y(()=>[...t[9]||=[c(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),_:1},8,[`show`,`title`])):a(`v-if`,!0),l(_(w),{show:_(v),"onUpdate:show":t[7]||=e=>d(v)?v.value=e:null,preset:`dialog`,title:_(E)?`编辑事件`:`添加事件`,"positive-text":`保存`,"negative-text":`取消`,onPositiveClick:_(j)},{default:y(()=>[s(`div`,U,[s(`div`,W,[t[10]||=s(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件标题`,-1),l(_(C),{value:_(O).title,"onUpdate:value":t[1]||=e=>_(O).title=e,placeholder:`请输入事件标题`,"aria-label":`事件标题`},null,8,[`value`])]),s(`div`,G,[t[11]||=s(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`开始日期`,-1),l(_(S),{value:_(O).date,"onUpdate:value":t[2]||=e=>_(O).date=e,type:`date`,format:`yyyy-MM-dd`,style:{width:`100%`},"aria-label":`开始日期`},null,8,[`value`])]),s(`div`,K,[t[12]||=s(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`结束日期`,-1),l(_(S),{value:_(O).endDate,"onUpdate:value":t[3]||=e=>_(O).endDate=e,type:`date`,format:`yyyy-MM-dd`,style:{width:`100%`},"aria-label":`结束日期`},null,8,[`value`])]),l(_(x),{checked:_(O).allDay,"onUpdate:checked":t[4]||=e=>_(O).allDay=e,style:{"margin-bottom":`16px`}},{default:y(()=>[...t[13]||=[c(` 全天事件 `,-1)]]),_:1},8,[`checked`]),_(O).allDay?a(`v-if`,!0):(p(),o(`div`,q,[s(`div`,null,[t[14]||=s(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`开始时间`,-1),l(_(C),{value:_(O).startTime,"onUpdate:value":t[5]||=e=>_(O).startTime=e,placeholder:`09:00`,"aria-label":`开始时间(24 小时制)`},null,8,[`value`])]),s(`div`,null,[t[15]||=s(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`结束时间`,-1),l(_(C),{value:_(O).endTime,"onUpdate:value":t[6]||=e=>_(O).endTime=e,placeholder:`10:00`,"aria-label":`结束时间(24 小时制)`},null,8,[`value`])])])),s(`div`,J,[t[16]||=s(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件颜色`,-1),s(`div`,Y,[(p(!0),o(n,null,h(_(k),e=>(p(),o(`button`,{key:e,type:`button`,class:`event-color-swatch`,"aria-label":`事件颜色 ${e}`,"aria-pressed":_(O).color===e,style:f({width:`30px`,height:`30px`,backgroundColor:e,borderRadius:`50%`,border:_(O).color===e?`3px solid #000`:`2px solid #ddd`}),onClick:t=>_(O).color=e},null,12,X))),128))])])])]),_:1},8,[`show`,`title`,`onPositiveClick`])]))}}),[[`__scopeId`,`data-v-3604329b`]]);export{A as a,j as i,B as n,M as o,N as r,Z as t};