UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 25.2 kB
(function(W,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es"],e):(W=typeof globalThis<"u"?globalThis:W||self,e(W.calendar={},W.Vue,W.LodashES))})(this,function(W,e,H){"use strict";const X={},Z={};function U(t){const{properties:n,title:i,ignore:y}=t,u=y&&Array.isArray(y),l=Object.keys(n).reduce((o,s)=>((!u||!y.find(V=>V===s))&&(o[s]=n[s].type==="object"&&n[s].properties?U(n[s]):H.cloneDeep(n[s].default)),o),{});if(i&&(!u||!y.find(o=>o==="id"))){const o=i.toLowerCase().replace(/-/g,"_");l.id=`${o}_${Math.random().toString().slice(2,6)}`}return l}function oe(t){const{properties:n,title:i,required:y}=t;if(y&&Array.isArray(y)){const u=y.reduce((l,o)=>(l[o]=n[o].type==="object"&&n[o].properties?U(n[o]):H.cloneDeep(n[o].default),l),{});if(i&&y.find(l=>l==="id")){const l=i.toLowerCase().replace(/-/g,"_");u.id=`${l}_${Math.random().toString().slice(2,6)}`}return u}return{type:i}}function x(t,n={},i){const y=X[t];if(y){let u=oe(y);const l=Z[t];return u=l?l({getSchemaByType:x},u,n,i):u,u}return null}function ce(t,n){const i=U(n);return Object.keys(i).reduce((y,u)=>(Object.prototype.hasOwnProperty.call(t,u)&&(y[u]&&H.isPlainObject(y[u])&&H.isPlainObject(t[u]||!t[u])?Object.assign(y[u],t[u]||{}):y[u]=t[u]),y),i),i}function K(t,n){return Object.keys(t).filter(y=>t[y]!=null).reduce((y,u)=>{if(n.has(u)){const l=n.get(u);if(typeof l=="string")y[l]=t[u];else{const o=l(u,t[u],t);Object.assign(y,o)}}else y[u]=t[u];return y},{})}function se(t,n,i=new Map){const y=ce(t,n);return K(y,i)}function le(t={}){function n(a,p,w,D){if(typeof w=="number")return D[a].length===w;if(typeof w=="object"){const d=Object.keys(w)[0],h=w[d];if(d==="not")return Number(D[a].length)!==Number(h);if(d==="moreThan")return Number(D[a].length)>=Number(h);if(d==="lessThan")return Number(D[a].length)<=Number(h)}return!1}function i(a,p,w,D){return D[a]&&D[a].propertyValue&&String(D[a].propertyValue.value)===String(w)}const y=new Map([["length",n],["getProperty",i]]);Object.keys(t).reduce((a,p)=>(a.set(p,t[p]),a),y);function u(a,p){const w=a;return typeof p=="number"?[{target:w,operator:"length",param:null,value:Number(p)}]:typeof p=="boolean"?[{target:w,operator:"getProperty",param:a,value:!!p}]:typeof p=="object"?Object.keys(p).map(D=>{if(D==="length")return{target:w,operator:"length",param:null,value:p[D]};const d=D,h=p[D];return{target:w,operator:"getProperty",param:d,value:h}}):[]}function l(a){return Object.keys(a).reduce((w,D)=>{const d=u(D,a[D]);return w.push(...d),w},[])}function o(a,p){if(y.has(a.operator)){const w=y.get(a.operator);return w&&w(a.target,a.param,a.value,p)||!1}return!1}function s(a,p){return l(a).reduce((d,h)=>d&&o(h,p),!0)}function V(a,p){const w=Object.keys(a),D=w.includes("allOf"),d=w.includes("anyOf"),h=D||d,f=(h?a[h?D?"allOf":"anyOf":"allOf"]:[a]).map(c=>s(c,p));return D?!f.includes(!1):f.includes(!0)}return{parseValueSchema:V}}const ie={},ue={};le();function de(t,n,i=new Map,y=(o,s,V,a)=>s,u={},l=o=>o){return X[n.title]=n,Z[n.title]=y,ie[n.title]=u,ue[n.title]=l,(o={},s=!0)=>{if(!s)return K(o,i);const V=se(o,n,i),a=Object.keys(t).reduce((p,w)=>(p[w]=t[w].default,p),{});return Object.assign(a,V)}}function fe(t,n){return{customClass:n.class,customStyle:n.style}}const ye=new Map([["appearance",fe]]);function he(t,n,i){return n}const me={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/calendar.schema.json",title:"calendar",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for calendar",type:"string"},type:{description:"The type string of calendar",type:"string",default:"calendar"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}}},required:["id","type"]},pe={title:"calendar",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}}}},G={events:{Type:Array,default:[]},firstDayOfTheWeek:{type:String,default:"Sun."}},Q=de(G,me,ye,he,pe),B=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];var A=(t=>(t[t.previous=1]="previous",t[t.current=2]="current",t[t.next=3]="next",t))(A||{});function L(){function t(){return{year:0,month:0,day:0}}function n(a){return new Date(a.year||0,a.month?a.month-1:0,a.day||0,a.hour?a.hour:0,a.minute?a.minute:0,a.second?a.second:0,0)}function i(a){const p=new Date;return a.year||(a.year=p.getFullYear()),a.month||(a.month=p.getMonth()+1),a.day||(a.day=1),new Date(a.year,a.month-1,a.day,a.hour?a.hour:0,a.minute?a.minute:0,a.second?a.second:0,0)}function y(a){return new Date(a.year||1,(a.month||1)-1,a.day,a.hour?a.hour:0,a.minute?a.minute:0,a.second?a.second:0,0).getDay()}function u(a){return B.indexOf(a)}function l(a){return n(a).getTime()}function o(a){return Math.round(l(a)/1e3)}function s(a,p,w){const D=l(p),d=l(w),h=l(a);return d-h>h-D?p:w}function V(){const a=new Date;return{year:a.getFullYear(),month:a.getMonth()+1,day:a.getDate(),hour:a.getHours(),minute:a.getMinutes(),second:a.getSeconds()}}return{emptyDate:t,getDate:n,getDate2:i,getDayNumber:y,getEpocTime:o,getNearDate:s,getWeekdayIndex:u,getTimeInMilliseconds:l,getToday:V}}function ve(){function t(l,o){return new Date(o,l,0).getDate()}function n(l,o,s){return new Date(l,o-1,s,0,0,0,0)}function i(l,o){const s=n(o,l,1);return s.setMonth(s.getMonth()-1),t(s.getMonth()+1,s.getFullYear())}function y(l,o){const s={year:l===12?o+1:o},V=l===12?1:l+1;return s.month=V,s}function u(l,o){const s={year:l===1?o-1:o},V=l===1?12:l-1;return s.month=V,s}return{daysInMonth:t,daysInPreMonth:i,getNextMonth:y,getPreviousMonth:u}}function ee(){const{getToday:t,getDayNumber:n}=L(),{daysInMonth:i,daysInPreMonth:y,getNextMonth:u,getPreviousMonth:l}=ve();function o(m){const k=B.indexOf(m);return k>0?7-k:0}function s(m){const{day:k,month:f,year:r}=m;if(k===void 0||f===void 0||r===void 0)throw new Error("invalided date.");const c=k===1,g=c?y(f,r):k-1,N=c?f-1:f,b=N<1,v=b?12:N;return{year:b?r-1:r,month:v,day:g}}function V(m){const{day:k,month:f,year:r}=m;if(k===void 0||f===void 0||r===void 0)throw new Error("invalided date.");const c=i(f,r),g=k===c,N=g?1:k+1,b=g?f+1:f,v=b>12,M=v?1:b;return{year:v?r+1:r,month:M,day:N}}function a(m){const k=l(m.month||1,m.year||1),f=i(k.month||1,k.year||1);return{day:(m.day||1)<=f?m.day:f,month:k.month,year:k.year}}function p(m){const k=u(m.month||1,m.year||1),f=i(k.month||1,k.year||1);return{day:(m.day||1)<=f?m.day:f,month:k.month,year:k.year}}function w(m){const f=(m.day||1)-7,r=f<1,c=r?i(m.month||1,m.year||1)+f:f,g=r?l(m.month||1,m.year||1):m;return{day:c,month:g.month,year:g.year}}function D(m){const f=(m.day||1)+7,r=i(m.month||1,m.year||1),c=f>r,g=c?f-r:f,N=c?u(m.month||1,m.year||1):m;return{day:g,month:N.month,year:N.year}}function d(m,k,f,r){const c={day:m,month:k,year:f},N=o(r)===0?1:0,b=n(c)+N,v=t();let M=s(c);const T=[];for(let j=b-1;j>=1;j--){const _=M.month!==c.month?A.previous:A.current,O=M.month===k&&M.day===v.day&&M.month===v.month&&M.year===v.year;T.push({date:M,monthTag:_,isCurrent:O}),j>1&&(M=s(M))}let P=V(c);const S=[];for(let j=b+1;j<=7;j++){const _=M.month!==c.month?A.next:A.current,O=P.day===v.day&&P.month===v.month&&P.year===v.year;S.push({date:P,monthTag:_,isCurrent:O}),j<7&&(P=V(P))}const C=m===v.day&&k===v.month&&f===v.year;return{days:[...T.reverse(),{date:c,monthTag:A.current,isCurrent:C},...S],weekNumber:0,year:f}}function h(m,k,f){const r=[],c=i(m,k);for(let g=1;g<=c;g+=7){const N=d(g,m,k,f);r.push(N)}return r}return{getMonthlyCalendar:h,getWeeklyCalendar:d,getPreviousDay:s,getNextDay:V,getDayInPreviousWeek:w,getDayInNextWeek:D,getDayInPreviousMonth:a,getDayInNextMonth:p}}function F(){const{getTimeInMilliseconds:t}=L();function n(d){return d&&d.year!==0&&d.month!==0&&d.day!==0}function i(d){return d&&d.year!==0&&d.month!==0}function y(d){return d&&d.year!==0}function u(d,h){return t(d)<t(h)}function l(d,h){return t(d)<=t(h)}function o(d,h){return t(d)===t(h)}function s(d,h){const m=t(h);return t(d.from)===m||t(d.to)===m}function V(d,h){return!h||!n(h.to)||!n(h.from)?!1:l(h.from,d)&&l(d,h.to)}function a(d,h){return n(h)&&t(d)>=t(h)}function p(d,h){return n(h)&&t(d)<=t(h)}function w(d,h){return t({year:d.year,month:d.month,day:d.day})===t({year:h.year,month:h.month,day:h.day})}function D(d,h){return t({hour:d.hour,minute:d.minute,second:d.second})===t({hour:h.hour,minute:h.minute,second:h.second})}return{isDateEarlier:u,equal:o,inPeriod:V,isPoint:s,equalOrEarlier:l,isInitializedDate:n,isInitializedMonth:i,isInitializedYear:y,isMonthDisabledByDisableSince:a,isMonthDisabledByDisableUntil:p,sameTime:D,sameDay:w}}const Y={1:"Jan",2:"Feb",3:"Mar",4:"Apr",5:"May",6:"Jun",7:"Jul",8:"Aug",9:"Sep",10:"Oct",11:"Nov",12:"Dec"},te={activeView:{Type:Number,default:3},title:{Type:String,default:""},dailyViewTitle:{Type:String,default:"Day"},weeklyViewTitle:{Type:String,default:"Week"},monthlyViewTitle:{Type:String,default:"Month"}},E=e.defineComponent({name:"FCalendarHeader",props:te,emits:["ViewChange","Previous","Next","ResetToToday"],setup(t,n){const i=e.ref(t.title),y=e.ref(t.dailyViewTitle),u=e.ref(t.weeklyViewTitle),l=e.ref(t.monthlyViewTitle),o=2,s=62,V=e.ref(t.activeView),a=e.ref("Today");e.watch(()=>t.title,()=>{i.value=t.title});const p=e.computed(()=>({top:`${o}px`,left:`${V.value*(o+1)+(V.value-1)*(s+1)}px`})),w=e.computed(()=>V.value===1?y.value:V.value===2?u.value:l.value);function D(){V.value=1,n.emit("ViewChange",1)}function d(){V.value=2,n.emit("ViewChange",2)}function h(){V.value=3,n.emit("ViewChange",3)}function m(){n.emit("Previous",V.value)}function k(){n.emit("Next",V.value)}function f(){n.emit("ResetToToday")}return()=>e.createVNode("div",{class:"f-calendar-header"},[e.createVNode("div",{class:"f-calendar-title"},[i.value]),e.createVNode("div",{class:"f-calendar-navigator"},[e.createVNode("div",{class:"f-calendar-navigator-today btn btn-default",onClick:()=>f()},[a.value]),e.createVNode("div",{class:"f-calendar-navigator-button-group"},[e.createVNode("div",{class:"f-calendar-navigator-previous btn btn-default",onClick:()=>m()},[e.createVNode("i",{class:"f-icon f-icon-arrow-chevron-left"},null)]),e.createVNode("div",{class:"f-calendar-navigator-next btn btn-default",onClick:()=>k()},[e.createVNode("i",{class:"f-icon f-icon-arrow-chevron-right"},null)])])]),e.createVNode("div",{class:"f-calendar-view-switch"},[e.createVNode("div",{class:"f-calendar-view-switch-panel"},[e.createVNode("span",{class:"f-calendar-view-switch-daily",onClick:r=>D()},[y.value]),e.createVNode("span",{class:"f-calendar-view-switch-weekly",onClick:r=>d()},[u.value]),e.createVNode("span",{class:"f-calendar-view-switch-monthly",onClick:r=>h()},[l.value])]),e.createVNode("div",{class:"f-calendar-view-switch-active-view",style:p.value},[w.value])])])}}),ne={dates:{Type:Array,default:[]},daysInWeek:{Type:Array,default:B},enableKeyboadNavigate:{Type:Boolean,default:!0},enableMarkCurrent:{Type:Boolean,default:!0},events:{Type:Array,default:[]},activeDay:{Type:Object,default:null}};var z=(t=>(t[t.enter=13]="enter",t[t.esc=27]="esc",t[t.space=32]="space",t[t.leftArrow=37]="leftArrow",t[t.upArrow=38]="upArrow",t[t.rightArrow=39]="rightArrow",t[t.downArrow=40]="downArrow",t[t.tab=9]="tab",t[t.shift=16]="shift",t))(z||{});function we(){function t(n){const i=n.key||n.keyCode;return i==="Enter"||i===13?13:i==="Escape"||i===27?27:i===" "||i===32?32:i==="ArrowLeft"||i===37?37:i==="ArrowUp"||i===38?38:i==="ArrowRight"||i===39?39:i==="ArrowDown"||i===40?40:i==="Tab"||i===9?9:i==="Shift"||i===16?16:-1}return{getKeyCodeFromEvent:t}}const R=e.defineComponent({name:"FCalendarMonthView",props:ne,emits:["click","keyDown"],setup(t,n){const i=e.ref(t.daysInWeek),y=e.ref(t.enableKeyboadNavigate),u=e.ref(t.enableMarkCurrent),l=e.ref(t.activeDay),o=e.ref(t.events),{equal:s,sameDay:V}=F(),{getKeyCodeFromEvent:a}=we();function p(f,r){return f.forEach(c=>{c.days.forEach(g=>{const N=r.filter(b=>V(b.starts,g.date));N&&N.length&&(g.events=[...N])})}),f}const w=e.ref(p(t.dates,o.value));e.watch(()=>t.dates,()=>{w.value=p(t.dates,o.value)}),e.watch(()=>t.activeDay,()=>{l.value=t.activeDay}),e.watch(()=>t.events,()=>{o.value=t.events});function D(f){return!!l.value&&s({year:l.value.year,month:l.value.month,day:l.value.day},f)}const d=(f,r,c)=>{const N={"f-datepicker-no-currmonth":f.monthTag===A.previous||f.monthTag===A.next},b=`d_${r}_${c}`;return N[b]=!0,N},h=f=>{const r=f.monthTag===A.current&&D(f.date),c=f.isCurrent&&u.value;return{"f-calendar-month-view-date":!0,"f-calendar-month-view-selected":r,"f-calendar-month-view-current":c}};function m(f,r){f.stopPropagation(),n.emit("click",r.date)}function k(f,r){const c=a(f);c!==z.tab&&(f.preventDefault(),c===z.enter||c===z.space?m(f,r):y.value&&n.emit("keyDown",r.date))}return()=>e.createVNode("div",{class:"f-calendar-month-view"},[e.createVNode("table",{class:"f-datepicker-table",cellpadding:"0"},[e.createVNode("thead",null,[e.createVNode("tr",null,[i.value&&i.value.map(f=>e.createVNode("th",{scope:"col",style:"padding: 4px 4px 8px"},[f]))])]),e.createVNode("tbody",null,[w.value&&w.value.map((f,r)=>e.createVNode("tr",null,[f.days&&f.days.map((c,g)=>e.createVNode("td",{id:`d_${r}_${g}`,tabindex:"0",class:d(c,r,g),onClick:N=>m(N,c),onKeydown:N=>k(N,c)},[e.createVNode("div",{class:"f-calendar-month-view-title"},[e.createVNode("div",{class:h(c)},[c.date.day]),e.createVNode("div",{class:"f-calendar-month-view-date-month"},[c.date.day===1?Y[c.date.month||1]:""])]),c.events&&c.events.length&&c.events.map(N=>e.createVNode("div",{class:"f-calendar-month-view-event-item"},[N.title]))]))]))])])])}}),ae={daysInWeek:{Type:Array,default:B},enableMarkCurrent:{Type:Boolean,default:!0},events:{Type:Array,default:[]},week:{Type:Object,default:{days:[],weekNumber:0,year:0}}},I=e.defineComponent({name:"FCalendarWeekView",props:ae,emits:[],setup(t){const n=e.ref(),i=e.ref(),y=e.ref(t.daysInWeek),u=e.ref(t.week),l=e.ref(t.enableMarkCurrent),o=e.ref(t.events),s=e.ref([]),{equal:V}=F();function a(r){return u.value.days.map(g=>{const N={year:g.date.year,month:g.date.month,day:g.date.day,hour:r.hour,minute:r.minute,second:r.second},b=o.value.filter(v=>V(v.starts,N));return{day:N,events:b}})}function p(){const r=[];for(let c=0;c<24;c++){const g={hour:c,minute:0,second:0},N={hour:c,minute:30,second:0},b=a(g),v=a(N);r.push({time:g,events:b,title:c>0?`${c}:00`:"",part:"upper"}),r.push({time:N,events:v,title:`${c}:30`,part:"lower"})}s.value=r}p(),e.watch(()=>t.week,()=>{u.value=t.week,p()}),e.watch(()=>t.events,()=>{o.value=t.events,p()});const w=r=>({"f-calendar-week-view-date":!0,"f-calendar-week-view-current":r.isCurrent&&l.value});function D(){return e.createVNode("div",{class:"f-calendar-week-view-header"},[e.createVNode("div",{class:"f-calendar-week-view-header-corner"},null),e.createVNode("div",{class:"f-calendar-week-view-header-primary"},[e.createVNode("div",{class:"f-calendar-week-view-header-columns"},[y.value.map((r,c)=>e.createVNode("div",{class:"f-calendar-week-view-header-cell"},[e.createVNode("div",{class:w(u.value.days[c])},[u.value.days[c].date.day]),e.createVNode("span",null,[r])]))])])])}function d(){return e.createVNode("div",{class:"f-calendar-week-view-content-side"},[e.createVNode("div",{class:"f-calendar-side"},[s.value.map(r=>e.createVNode("div",{class:"f-calendar-side-row"},[e.createVNode("div",{class:"f-calendar-side-row-number"},[r.part==="upper"?r.title:""])]))])])}function h(r){return{"f-calendar-week-view-item":!0,"f-calendar-week-view-item-upper":r.part==="upper","f-calendar-week-view-item-lower":r.part==="lower"}}function m(r){const M=(r.starts.hour||0)+(r.starts.minute||0)/60;return{height:`${44*((r.ends.hour||0)+(r.ends.minute||0)/60-M)-2-2-1-1}px`}}function k(){return s.value.map(r=>e.createVNode("div",{class:h(r)},[r.events.map(c=>e.createVNode("div",{class:"f-calendar-week-view-item-cell"},[c.events.length>0&&c.events.map(g=>e.createVNode("div",{class:"f-calendar-event",style:m(g)},[g.title]))]))]))}function f(){return e.createVNode("div",{ref:i,class:"f-calendar-content-primary"},[e.createVNode("div",{class:"f-calendar-content-data"},[k()])])}return e.onMounted(()=>{n.value&&n.value.scrollTo(0,250)}),()=>e.createVNode("div",{class:"f-calendar-week-view"},[D(),e.createVNode("div",{class:"f-calendar-week-view-content",ref:n},[d(),f()])])}}),re={day:{Type:Object,default:{}},dayInWeek:{Type:String,default:""},enableMarkCurrent:{Type:Boolean,default:!0},events:{Type:Array,default:[]}},q=e.defineComponent({name:"FCalendarDayView",props:re,emits:[],setup(t){const n=e.ref(),i=e.ref(),y=e.ref(t.dayInWeek),u=e.ref(t.day),l=e.ref(t.enableMarkCurrent),o=e.ref(t.events),s=e.ref([]),{equal:V}=F();function a(r){const c={year:u.value.date.year,month:u.value.date.month,day:u.value.date.day,hour:r.hour,minute:r.minute,second:r.second},g=o.value.filter(N=>V(N.starts,c));return[{day:c,events:g}]}function p(){const r=[];for(let c=0;c<24;c++){const g={hour:c,minute:0,second:0},N={hour:c,minute:30,second:0},b=a(g),v=a(N);r.push({time:g,events:b,title:c>0?`${c}:00`:"",part:"upper"}),r.push({time:N,events:v,title:`${c}:30`,part:"lower"})}s.value=r}p(),e.watch(()=>t.day,()=>{u.value=t.day,p()}),e.watch(()=>t.events,()=>{o.value=t.events,p()});const w=r=>({"f-calendar-day-view-date":!0,"f-calendar-day-view-current":r.isCurrent&&l.value});function D(){return e.createVNode("div",{class:"f-calendar-day-view-header"},[e.createVNode("div",{class:"f-calendar-day-view-header-corner"},null),e.createVNode("div",{class:"f-calendar-day-view-header-primary"},[e.createVNode("div",{class:"f-calendar-day-view-header-columns"},[e.createVNode("div",{class:"f-calendar-day-view-header-cell"},[e.createVNode("div",{class:w(u.value)},[u.value.date.day]),e.createVNode("span",null,[y.value])])])])])}function d(){return e.createVNode("div",{class:"f-calendar-day-view-content-side"},[e.createVNode("div",{class:"f-calendar-side"},[s.value.map(r=>e.createVNode("div",{class:"f-calendar-side-row"},[e.createVNode("div",{class:"f-calendar-side-row-number"},[r.part==="upper"?r.title:""])]))])])}function h(r){return{"f-calendar-day-view-item":!0,"f-calendar-day-view-item-upper":r.part==="upper","f-calendar-day-view-item-lower":r.part==="lower"}}function m(r){const M=(r.starts.hour||0)+(r.starts.minute||0)/60;return{height:`${44*((r.ends.hour||0)+(r.ends.minute||0)/60-M)-2-2-1-1}px`}}function k(){return s.value.map(r=>e.createVNode("div",{class:h(r)},[r.events.map(c=>e.createVNode("div",{class:"f-calendar-day-view-item-cell"},[c.events.length>0&&c.events.map(g=>e.createVNode("div",{class:"f-calendar-event",style:m(g)},[g.title]))]))]))}function f(){return e.createVNode("div",{ref:i,class:"f-calendar-content-primary"},[e.createVNode("div",{class:"f-calendar-content-data"},[k()])])}return e.onMounted(()=>{n.value&&n.value.scrollTo(0,250)}),()=>e.createVNode("div",{class:"f-calendar-day-view"},[D(),e.createVNode("div",{class:"f-calendar-day-view-content",ref:n},[d(),f()])])}}),$=e.defineComponent({name:"FCalendar",props:G,emits:[],setup(t){const{sameDay:n}=F(),{getToday:i}=L(),y=e.ref(t.firstDayOfTheWeek),u=e.ref(t.events),l=i(),o=e.ref({year:l.year||1,month:l.month||1,day:l.day||1}),s=e.ref(3),{getMonthlyCalendar:V,getWeeklyCalendar:a,getPreviousDay:p,getNextDay:w,getDayInPreviousWeek:D,getDayInNextWeek:d,getDayInPreviousMonth:h,getDayInNextMonth:m}=ee(),k=e.computed(()=>`${Y[o.value.month||1]} ${o.value.year}`),f=e.computed(()=>V(o.value.month||1,o.value.year||1,y.value)),r=e.computed(()=>a(o.value.day||1,o.value.month||1,o.value.year||1,y.value)),c=e.computed(()=>r.value.days.find(C=>n(C.date,o.value))||r.value.days[1]),g=e.computed(()=>{const C=r.value.days.findIndex(j=>n(j.date,o.value)),J=C>-1?C:1;return B[J]}),N=e.computed(()=>s.value===3),b=e.computed(()=>s.value===2),v=e.computed(()=>s.value===1);function M(C){s.value=C}function T(C){C===1&&(o.value=p(o.value)),C===2&&(o.value=D(o.value)),C===3&&(o.value=h(o.value))}function P(C){C===1&&(o.value=w(o.value)),C===2&&(o.value=d(o.value)),C===3&&(o.value=m(o.value))}function S(){o.value={year:l.year||1,month:l.month||1,day:l.day||1}}return()=>e.createVNode("div",{class:"f-calendar"},[e.createVNode(E,{activeView:s.value,title:k.value,onViewChange:C=>M(C),onPrevious:C=>T(C),onNext:C=>P(C),onResetToToday:()=>S()},null),e.createVNode("div",null,[v.value&&e.createVNode(q,{day:c.value,dayInWeek:g.value,events:u.value},null),b.value&&e.createVNode(I,{week:r.value,events:u.value},null),N.value&&e.createVNode(R,{activeDay:o.value,dates:f.value,events:u.value},null)])])}});function ge(t,n,i){var b;const y="",u="",l=e.ref();function o(){return(n==null?void 0:n.schema.componentType)!=="frame"}function s(){return!1}function V(){return(n==null?void 0:n.schema.componentType)!=="frame"}function a(){return(n==null?void 0:n.schema.componentType)==="frame"}function p(v){if(!v||!v.value)return null;if(v.value.schema&&v.value.schema.type==="component")return v.value;const M=e.ref(v==null?void 0:v.value.parent),T=p(M);return T||null}function w(v=n){var S;const{componentInstance:M,designerItemElementRef:T}=v;if(!M||!M.value)return null;const{getCustomButtons:P}=M.value;return M.value.canMove||P&&((S=P())!=null&&S.length)?T:w(v.parent)}function D(v){return!!i}function d(){return(n==null?void 0:n.schema.label)||(n==null?void 0:n.schema.title)||(n==null?void 0:n.schema.name)}function h(){}function m(v,M){var T;!v||!M||(T=n==null?void 0:n.setupContext)==null||T.emit("dragEnd")}function k(v,M){const{componentType:T}=v;let P=x(T,v,M);const S=T.toLowerCase().replace(/-/g,"_");return P&&!P.id&&P.type===T&&(P.id=`${S}_${Math.random().toString().slice(2,6)}`),P}function f(v){}function r(...v){}function c(){n!=null&&n.schema.contents&&n.schema.contents.map(v=>{let M=v.id;v.type==="component-ref"&&(M=v.component);const T=t.value.querySelectorAll(`#${M}-design-item`);T!=null&&T.length&&Array.from(T).map(P=>{var S;(S=P==null?void 0:P.componentInstance)!=null&&S.value.onRemoveComponent&&P.componentInstance.value.onRemoveComponent()})})}function g(){}function N(v){}return l.value={canMove:o(),canSelectParent:s(),canDelete:V(),canNested:!a(),contents:n==null?void 0:n.schema.contents,elementRef:t,parent:(b=n==null?void 0:n.parent)==null?void 0:b.componentInstance,schema:n==null?void 0:n.schema,styles:y,designerClass:u,canAccepts:D,getBelongedComponentInstance:p,getDraggableDesignItemElement:w,getDraggingDisplayText:d,getPropConfig:r,getDragScopeElement:h,onAcceptMovedChildElement:m,onChildElementMovedOut:f,addNewChildComponentSchema:k,triggerBelongedComponentToMoveWhenMoved:e.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:e.ref(!1),onRemoveComponent:c,getCustomButtons:g,onPropertyChanged:N},l}const Ve=e.defineComponent({name:"FCalendarDesign",props:G,emits:[],setup(t,n){const{sameDay:i}=F(),{getToday:y}=L(),u=e.ref(t.firstDayOfTheWeek),l=e.ref(t.events),o=y(),s=e.ref({year:o.year||1,month:o.month||1,day:o.day||1}),V=e.ref(3),a=e.ref(),p=e.inject("design-item-context"),w=ge(a,p);e.onMounted(()=>{a.value.componentInstance=w}),n.expose(w.value);const{getMonthlyCalendar:D,getWeeklyCalendar:d,getPreviousDay:h,getNextDay:m,getDayInPreviousWeek:k,getDayInNextWeek:f,getDayInPreviousMonth:r,getDayInNextMonth:c}=ee(),g=e.computed(()=>`${Y[s.value.month||1]} ${s.value.year}`),N=e.computed(()=>D(s.value.month||1,s.value.year||1,u.value)),b=e.computed(()=>d(s.value.day||1,s.value.month||1,s.value.year||1,u.value)),v=e.computed(()=>b.value.days.find(O=>i(O.date,s.value))||b.value.days[1]),M=e.computed(()=>{const O=b.value.days.findIndex(Ne=>i(Ne.date,s.value)),ke=O>-1?O:1;return B[ke]}),T=e.computed(()=>V.value===3),P=e.computed(()=>V.value===2),S=e.computed(()=>V.value===1);function C(O){V.value=O}function J(O){O===1&&(s.value=h(s.value)),O===2&&(s.value=k(s.value)),O===3&&(s.value=r(s.value))}function j(O){O===1&&(s.value=m(s.value)),O===2&&(s.value=f(s.value)),O===3&&(s.value=c(s.value))}function _(){s.value={year:o.year||1,month:o.month||1,day:o.day||1}}return()=>e.createVNode("div",{ref:a,class:"f-calendar"},[e.createVNode(E,{activeView:V.value,title:g.value,onViewChange:O=>C(O),onPrevious:O=>J(O),onNext:O=>j(O),onResetToToday:()=>_()},null),e.createVNode("div",null,[S.value&&e.createVNode(q,{day:v.value,dayInWeek:M.value,events:l.value},null),P.value&&e.createVNode(I,{week:b.value,events:l.value},null),T.value&&e.createVNode(R,{activeDay:s.value,dates:N.value,events:l.value},null)])])}});$.install=t=>{t.component($.name,$).component(q.name,q).component(E.name,E).component(R.name,R).component(I.name,I)},$.register=(t,n,i,y)=>{t.calendar=$,n.calendar=Q},$.registerDesigner=(t,n,i)=>{t.calendar=Ve,n.calendar=Q},W.FCalendar=$,W.FCalendarDayView=q,W.FCalendarHeader=E,W.FCalendarMonthView=R,W.FCalendarWeekView=I,W.MonthTag=A,W.calendarProps=G,W.dayViewProps=re,W.default=$,W.defaultNameOfMonths=Y,W.headerProps=te,W.monthViewProps=ne,W.propsResolver=Q,W.weekDays=B,W.weekViewProps=ae,Object.defineProperties(W,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});