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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +4 -0
  3. package/README_EN.md +4 -0
  4. package/dist/C_ActionBar.css +75 -63
  5. package/dist/C_ActionBar2.cjs +1 -1
  6. package/dist/C_ActionBar2.js +1 -1
  7. package/dist/C_AntV.css +249 -79
  8. package/dist/C_AntV2.cjs +3 -3
  9. package/dist/C_AntV2.js +2 -2
  10. package/dist/C_AudioPlayer.css +88 -76
  11. package/dist/C_AudioPlayer2.cjs +1 -1
  12. package/dist/C_AudioPlayer2.js +1 -1
  13. package/dist/C_AvatarGroup.css +32 -28
  14. package/dist/C_AvatarGroup2.cjs +1 -1
  15. package/dist/C_AvatarGroup2.js +1 -1
  16. package/dist/C_Breadcrumb.css +35 -17
  17. package/dist/C_Breadcrumb2.cjs +1 -1
  18. package/dist/C_Breadcrumb2.js +1 -1
  19. package/dist/C_Captcha.css +66 -53
  20. package/dist/C_Captcha2.cjs +1 -1
  21. package/dist/C_Captcha2.js +1 -1
  22. package/dist/C_Cascade.css +6 -2
  23. package/dist/C_Cascade2.cjs +1 -1
  24. package/dist/C_Cascade2.js +1 -1
  25. package/dist/C_Chat.css +40 -33
  26. package/dist/C_City.css +37 -32
  27. package/dist/C_City2.cjs +1 -1
  28. package/dist/C_City2.js +1 -1
  29. package/dist/C_Code.css +53 -40
  30. package/dist/C_Code2.cjs +1 -1
  31. package/dist/C_Code2.js +1 -1
  32. package/dist/C_CollapsePanel.css +68 -55
  33. package/dist/C_CollapsePanel2.cjs +1 -1
  34. package/dist/C_CollapsePanel2.js +1 -1
  35. package/dist/C_ContextMenu.css +68 -26
  36. package/dist/C_ContextMenu2.cjs +1 -1
  37. package/dist/C_ContextMenu2.js +1 -1
  38. package/dist/C_Cron.css +95 -68
  39. package/dist/C_Cron2.cjs +1 -1
  40. package/dist/C_Cron2.js +1 -1
  41. package/dist/C_Date.css +8 -1
  42. package/dist/C_Date2.cjs +1 -1
  43. package/dist/C_Date2.js +1 -1
  44. package/dist/C_Draggable.css +60 -51
  45. package/dist/C_Draggable2.cjs +1 -1
  46. package/dist/C_Draggable2.js +1 -1
  47. package/dist/C_Editor.css +23 -15
  48. package/dist/C_Editor2.cjs +1 -1
  49. package/dist/C_Editor2.js +1 -1
  50. package/dist/C_FilePreview.css +200 -90
  51. package/dist/C_FilePreview2.cjs +1 -1
  52. package/dist/C_FilePreview2.js +1 -1
  53. package/dist/C_Form.base.css +284 -224
  54. package/dist/C_Form.css +307 -239
  55. package/dist/C_Form2.cjs +1 -1
  56. package/dist/C_Form2.js +1 -1
  57. package/dist/C_FormModal.css +18 -8
  58. package/dist/C_FormModal2.cjs +1 -1
  59. package/dist/C_FormModal2.js +1 -1
  60. package/dist/C_FormSearch.css +58 -45
  61. package/dist/C_FormSearch2.cjs +1 -1
  62. package/dist/C_FormSearch2.js +1 -1
  63. package/dist/C_FormulaEditor.css +62 -37
  64. package/dist/C_FormulaEditor2.cjs +1 -1
  65. package/dist/C_FormulaEditor2.js +1 -1
  66. package/dist/C_FullCalendar.css +16 -3
  67. package/dist/C_FullCalendar2.cjs +1 -1
  68. package/dist/C_FullCalendar2.js +1 -1
  69. package/dist/C_GlobalSearch.css +121 -112
  70. package/dist/C_GlobalSearch2.cjs +1 -1
  71. package/dist/C_GlobalSearch2.js +1 -1
  72. package/dist/C_Guide.css +30 -18
  73. package/dist/C_Guide2.cjs +1 -1
  74. package/dist/C_Guide2.js +1 -1
  75. package/dist/C_Icon.css +24 -17
  76. package/dist/C_Icon2.cjs +1 -1
  77. package/dist/C_Icon2.js +1 -1
  78. package/dist/C_ImageCropper.css +39 -22
  79. package/dist/C_ImageCropper2.cjs +1 -1
  80. package/dist/C_ImageCropper2.js +1 -1
  81. package/dist/C_Language.css +30 -17
  82. package/dist/C_Language2.cjs +1 -1
  83. package/dist/C_Language2.js +1 -1
  84. package/dist/C_Login.css +162 -137
  85. package/dist/C_Login2.cjs +1 -1
  86. package/dist/C_Login2.js +1 -1
  87. package/dist/C_Map.css +25 -4
  88. package/dist/C_Map2.cjs +1 -1
  89. package/dist/C_Map2.js +1 -1
  90. package/dist/C_Markdown.css +47 -42
  91. package/dist/C_Markdown2.cjs +1 -1
  92. package/dist/C_Markdown2.js +1 -1
  93. package/dist/C_Menu.css +7 -1
  94. package/dist/C_Menu2.cjs +1 -1
  95. package/dist/C_Menu2.js +1 -1
  96. package/dist/C_NotificationCenter.css +134 -90
  97. package/dist/C_NotificationCenter2.cjs +1 -1
  98. package/dist/C_NotificationCenter2.js +1 -1
  99. package/dist/C_OrgChart.css +10 -0
  100. package/dist/C_OrgChart2.cjs +1 -1
  101. package/dist/C_OrgChart2.js +1 -1
  102. package/dist/C_QRCode.css +12 -8
  103. package/dist/C_QRCode2.cjs +1 -1
  104. package/dist/C_QRCode2.js +1 -1
  105. package/dist/C_Signature.css +18 -14
  106. package/dist/C_Signature2.cjs +1 -1
  107. package/dist/C_Signature2.js +1 -1
  108. package/dist/C_Skeleton.css +5 -0
  109. package/dist/C_Skeleton2.cjs +1 -1
  110. package/dist/C_Skeleton2.js +1 -1
  111. package/dist/C_SplitPane.css +61 -39
  112. package/dist/C_SplitPane2.cjs +1 -1
  113. package/dist/C_SplitPane2.js +1 -1
  114. package/dist/C_Steps.css +42 -38
  115. package/dist/C_Steps2.cjs +1 -1
  116. package/dist/C_Steps2.js +1 -1
  117. package/dist/C_Table.base.css +465 -352
  118. package/dist/C_Table.css +488 -367
  119. package/dist/C_TagsView.css +93 -55
  120. package/dist/C_TagsView2.cjs +1 -1
  121. package/dist/C_TagsView2.js +1 -1
  122. package/dist/C_Theme.css +24 -17
  123. package/dist/C_Timeline.css +47 -36
  124. package/dist/C_Transfer.css +86 -67
  125. package/dist/C_Transfer2.cjs +1 -1
  126. package/dist/C_Transfer2.js +1 -1
  127. package/dist/C_Tree.css +48 -33
  128. package/dist/C_Tree2.cjs +1 -1
  129. package/dist/C_Tree2.js +1 -1
  130. package/dist/C_Upload.css +104 -51
  131. package/dist/C_Upload2.cjs +1 -1
  132. package/dist/C_Upload2.js +1 -1
  133. package/dist/C_VideoPlayer.css +140 -69
  134. package/dist/C_VideoPlayer2.cjs +1 -1
  135. package/dist/C_VideoPlayer2.js +1 -1
  136. package/dist/C_VtableGantt.css +42 -19
  137. package/dist/C_VtableGantt2.cjs +1 -1
  138. package/dist/C_VtableGantt2.js +1 -1
  139. package/dist/C_WaterFall.css +32 -16
  140. package/dist/C_WaterFall2.cjs +1 -1
  141. package/dist/C_WaterFall2.js +1 -1
  142. package/dist/C_WorkFlow.css +332 -221
  143. package/dist/C_WorkFlow2.cjs +1 -1
  144. package/dist/C_WorkFlow2.js +1 -1
  145. package/dist/constants.d.cts +4 -4
  146. package/dist/constants.d.ts +4 -4
  147. package/dist/constants2.d.cts +3 -3
  148. package/dist/constants2.d.ts +3 -3
  149. package/dist/constants3.d.cts +2 -2
  150. package/dist/constants3.d.ts +2 -2
  151. package/dist/constants4.d.cts +5 -5
  152. package/dist/constants4.d.ts +5 -5
  153. package/dist/constants5.d.cts +4 -4
  154. package/dist/constants5.d.ts +4 -4
  155. package/dist/data.d.cts +9 -9
  156. package/dist/data.d.ts +9 -9
  157. package/dist/data2.cjs +1 -1
  158. package/dist/data2.js +1 -1
  159. package/dist/index.vue.d.cts +3 -3
  160. package/dist/index.vue.d.ts +3 -3
  161. package/dist/index10.vue.d.cts +3 -3
  162. package/dist/index10.vue.d.ts +3 -3
  163. package/dist/index11.vue.d.cts +3 -3
  164. package/dist/index11.vue.d.ts +1 -1
  165. package/dist/index12.vue.d.cts +1 -1
  166. package/dist/index12.vue.d.ts +2 -2
  167. package/dist/index13.vue.d.cts +2 -2
  168. package/dist/index13.vue.d.ts +2 -2
  169. package/dist/index14.vue.d.cts +2 -2
  170. package/dist/index14.vue.d.ts +14 -12
  171. package/dist/index15.vue.d.cts +14 -12
  172. package/dist/index15.vue.d.ts +2 -2
  173. package/dist/index16.vue.d.cts +2 -2
  174. package/dist/index16.vue.d.ts +11 -2
  175. package/dist/index17.vue.d.cts +11 -2
  176. package/dist/index17.vue.d.ts +5 -5
  177. package/dist/index18.vue.d.cts +5 -5
  178. package/dist/index2.vue.d.cts +1 -1
  179. package/dist/index2.vue.d.ts +1 -1
  180. package/dist/index20.vue.d.cts +1 -1
  181. package/dist/index20.vue.d.ts +1 -1
  182. package/dist/index21.vue.d.cts +2 -2
  183. package/dist/index21.vue.d.ts +2 -2
  184. package/dist/index24.vue.d.cts +4 -4
  185. package/dist/index24.vue.d.ts +4 -4
  186. package/dist/index26.vue.d.cts +1 -1
  187. package/dist/index26.vue.d.ts +1 -1
  188. package/dist/index27.vue.d.cts +3 -3
  189. package/dist/index27.vue.d.ts +3 -3
  190. package/dist/index3.vue.d.cts +4 -4
  191. package/dist/index3.vue.d.ts +4 -4
  192. package/dist/index5.vue.d.ts +2 -2
  193. package/dist/index6.vue.d.cts +2 -2
  194. package/dist/index6.vue.d.ts +2 -2
  195. package/dist/index7.vue.d.cts +2 -2
  196. package/dist/index7.vue.d.ts +2 -2
  197. package/dist/index8.vue.d.cts +2 -2
  198. package/dist/index8.vue.d.ts +3 -3
  199. package/dist/index9.vue.d.cts +3 -3
  200. package/dist/index9.vue.d.ts +3 -3
  201. package/dist/mapUtils.d.cts +4 -4
  202. package/dist/mapUtils.d.ts +4 -4
  203. package/dist/presets.d.cts +1 -1
  204. package/dist/presets.d.ts +1 -1
  205. package/dist/style.css +3083 -1982
  206. package/dist/useCollapsePanel.d.cts +7 -7
  207. package/dist/useCollapsePanel.d.ts +7 -7
  208. package/dist/useCropperCore.d.cts +10 -10
  209. package/dist/useCropperCore.d.ts +10 -10
  210. package/dist/useDraggableLayout.d.cts +5 -5
  211. package/dist/useDraggableLayout.d.ts +5 -5
  212. package/dist/useEdgeInteraction.d.cts +1 -1
  213. package/dist/useEdgeInteraction.d.ts +1 -1
  214. package/dist/useFullscreen.d.cts +2 -2
  215. package/dist/useFullscreen.d.ts +2 -2
  216. package/dist/useInfiniteScroll.d.cts +3 -3
  217. package/dist/useInfiniteScroll.d.ts +3 -3
  218. package/dist/useQRCode.d.cts +4 -4
  219. package/dist/useQRCode.d.ts +4 -4
  220. package/dist/useSearchState.d.cts +27 -27
  221. package/dist/useSearchState.d.ts +27 -27
  222. package/dist/useSignatureHistory.d.cts +3 -3
  223. package/dist/useSignatureHistory.d.ts +3 -3
  224. package/dist/useSplitResize.d.cts +6 -6
  225. package/dist/useSplitResize.d.ts +6 -6
  226. package/dist/useTableQuery.cjs +1 -1
  227. package/dist/useTableQuery.js +1 -1
  228. package/dist/useTimeSelection.d.cts +4 -4
  229. package/dist/useTimeSelection.d.ts +4 -4
  230. package/dist/useTreeOperations.d.cts +5 -5
  231. package/dist/useTreeOperations.d.ts +5 -5
  232. package/dist/useWorkflowValidation.d.cts +2 -2
  233. package/dist/useWorkflowValidation.d.ts +2 -2
  234. package/package.json +8 -1
@@ -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-bdb41d02`]]);export{O as a,k as i,I as n,A as o,j as r,K as t};
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};