@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
48 lines (47 loc) • 70.2 kB
JavaScript
(function(B,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("../designer-canvas/index.umd.js"),require("lodash-es"),require("../common/index.umd.js"),require("../popover/index.umd.js"),require("../locale/index.umd.js"),require("../property-panel/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","../designer-canvas/index.umd.js","lodash-es","../common/index.umd.js","../popover/index.umd.js","../locale/index.umd.js","../property-panel/index.umd.js"],t):(B=typeof globalThis<"u"?globalThis:B||self,t(B.calendar={},B.Vue,B.dynamicResolver,B.designerCanvas,B.LodashES,B.common,B.FPopover,B.locale,B.propertyPanel))})(this,function(B,t,Z,oe,X,Y,ze,Ye,He){"use strict";var wn=Object.defineProperty;var Cn=(B,t,Z)=>t in B?wn(B,t,{enumerable:!0,configurable:!0,writable:!0,value:Z}):B[t]=Z;var qe=(B,t,Z)=>Cn(B,typeof t!="symbol"?t+"":t,Z);const Fe=new Map([["appearance",Z.resolveAppearance]]),Ge="root-viewmodel";function _e(e,n){const{formSchemaUtils:a,designViewModelUtils:i}=n;function m(f){return{id:`${f.componentId}-component-viewmodel`,code:`${f.componentId}-component-viewmodel`,name:f.componentName,bindTo:f.bindTo,parent:Ge,fields:[],commands:[],states:[],enableValidation:!0}}function w(f){const r=e.getSchemaByType("component-ref");return Object.assign(r,{id:`${f.componentId}-component-ref`,component:`${f.componentId}-component`}),r}function v(f,r,c){var y,d,S,s;const p=(d=(y=r==null?void 0:r.parentComponentInstance)==null?void 0:y.schema)==null?void 0:d.type,o=(s=(S=a.getFormSchema())==null?void 0:S.module)==null?void 0:s.templateId;if(["double-list-template","tree-list-template","list-template"].includes(o))return f;const l=[oe.DgControl["content-container"].type,oe.DgControl["response-layout-item"].type,oe.DgControl["splitter-pane"].type,oe.DgControl.drawer.type];if(p&&l.includes(p)){const h=e.getSchemaByType("section",{parentComponentInstance:r.parentComponentInstance,mainTitle:r.componentName},n);if(h&&h.contents&&h.contents.length){const I=h.contents[0];return I.contents=[f],h}}return f}function D(f){const r=e.getSchemaByType("calendar");return Object.assign(r,{id:f.componentId+"-calendar",appearance:{class:""},type:"calendar",dataSource:f.dataSource||"",pagination:{enable:!1}}),[r]}function x(f){var l,y,d;const r=e.getSchemaByType("component"),c=D(f);let p=!1;const o=(d=(y=(l=f.parentComponentInstance)==null?void 0:l.schema)==null?void 0:y.appearance)==null?void 0:d.class;return o&&o.includes("f-page-main")&&(p=!0),Object.assign(r,{id:`${f.componentId}-component`,viewModel:`${f.componentId}-component-viewmodel`,componentType:f.componentType,appearance:{class:p?"f-utils-fill-flex-column f-utils-overflow-auto":"f-grid-is-sub f-utils-overflow-auto"},contents:c}),r}function C(f){const r=w(f),c=x(f),p=m(f),o=a.getFormSchema();return o.module.viewmodels.push(p),o.module.components.push(c),i.assembleDesignViewModel(),v(r,f)}return{createComponent:C}}function Se(e,n,a,i){var w,v,D,x,C,f;const m=a.parentComponentInstance;if(m&&i){const r=Math.random().toString(36).slice(2,6),c={componentId:`calendar-${r}`,componentName:((w=a.bindingSourceContext)==null?void 0:w.entityTitle)||((D=(v=a.bindingSourceContext)==null?void 0:v.bindingEntity)==null?void 0:D.name)||`日历-${r}`,componentType:"calendar",parentContainerId:m.schema.id,parentComponentInstance:m,bindTo:((x=a.bindingSourceContext)==null?void 0:x.bindTo)||"",dataSource:(f=(C=a.bindingSourceContext)==null?void 0:C.bindingEntity)==null?void 0:f.label},{createComponent:p}=_e(e,i);return p(c)}else return n}const be={$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:{}},dataSource:{description:"",type:"string",default:""},visible:{description:"",type:"boolean",default:!0},fit:{description:"填充父容器",type:"boolean",default:!0},width:{description:"宽度",type:"Number",default:600},height:{description:"高度",type:"Number",default:500},firstDayOfTheWeek:{description:"每周起始日",type:"String",default:"Sun"},highLightWeekend:{description:"是否高亮周末",type:"Boolean",default:!0},eventDateField:{description:"事件日期字段",type:"String",default:""},activeDate:{description:"默认日期",type:"String",default:""},eventItemFormatter:{description:"自定义事件内容格式化",type:"String",default:""},customEventStyles:{description:"自定义事件样式",type:"String",default:""},textField:{description:"事件文本字段",type:"String",default:"title"},idField:{description:"事件id字段",type:"String",default:"id"},enableMoreView:{description:"是否启用多视图",type:"Boolean",default:!1},defaultView:{description:"默认视图",type:"String",default:"month"},enableCrossDay:{description:"是否允许跨天",type:"Boolean",default:!1},startDateField:{description:"事件开始日期字段",type:"String",default:""},endDateField:{description:"事件结束日期字段",type:"String",default:""}},required:["id","type"],events:{onEventClick:"日程点击事件",onDateChange:"日期切换事件",onMoreClick:"更多点击事件",onViewChange:"视图切换事件"}},le={events:{type:Array,default:[]},firstDayOfTheWeek:{type:String,default:"Sun"},enableMoreView:{type:Boolean,default:!1},defaultView:{type:String,default:"month"},fit:{type:Boolean,default:!0},height:{type:Number,default:600},width:{type:Number,default:800},highLightWeekend:{type:Boolean,default:!1},eventItemFormatter:{type:Function},customEventStyles:{type:Function},eventDateField:{type:String,default:"startDate"},customClass:{type:String,default:""},startDateField:{type:String,default:"startDate"},endDateField:{type:String,default:"endDate"},enableCrossDay:{type:Boolean,default:!1},idField:{type:String,default:"id"},activeDate:{type:Date,default:new Date},textField:{type:String,default:"title"},customStyle:{type:String,default:""},enableWeekdayBorder:{type:Boolean,default:!1},visible:{type:Boolean,default:!0}},Ue=Z.createPropsResolver(le,be,Fe,Se),we=Z.getPropsResolverGenerator(be,be,Fe,Se),U=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];var K=(e=>(e[e.previous=1]="previous",e[e.current=2]="current",e[e.next=3]="next",e))(K||{});function ie(){function e(){return{year:0,month:0,day:0}}function n(r){return new Date(r.year||0,r.month?r.month-1:0,r.day||0,r.hour?r.hour:0,r.minute?r.minute:0,r.second?r.second:0,0)}function a(r){const c=new Date;return r.year||(r.year=c.getFullYear()),r.month||(r.month=c.getMonth()+1),r.day||(r.day=1),new Date(r.year,r.month-1,r.day,r.hour?r.hour:0,r.minute?r.minute:0,r.second?r.second:0,0)}function i(r){return new Date(r.year||1,(r.month||1)-1,r.day,r.hour?r.hour:0,r.minute?r.minute:0,r.second?r.second:0,0).getDay()}function m(r){return U.indexOf(r)}function w(r){return n(r).getTime()}function v(r){return Math.round(w(r)/1e3)}function D(r,c,p){const o=w(c),l=w(p),y=w(r);return l-y>y-o?c:p}function x(){const r=new Date;return{year:r.getFullYear(),month:r.getMonth()+1,day:r.getDate(),hour:r.getHours(),minute:r.getMinutes(),second:r.getSeconds()}}function C(r){return r?{year:r.getFullYear(),month:r.getMonth()+1,day:r.getDate(),hour:r.getHours(),minute:r.getMinutes(),second:r.getSeconds()}:e()}function f(r){const c=i(r);return c===0||c===6}return{convertDateToDateObject:C,emptyDate:e,getDate:n,getDate2:a,getDayNumber:i,getEpocTime:v,getNearDate:D,getWeekdayIndex:m,getTimeInMilliseconds:w,getToday:x,isWeekEnd:f}}function Je(){function e(w,v){return new Date(v,w,0).getDate()}function n(w,v,D){return new Date(w,v-1,D,0,0,0,0)}function a(w,v){const D=n(v,w,1);return D.setMonth(D.getMonth()-1),e(D.getMonth()+1,D.getFullYear())}function i(w,v){const D={year:w===12?v+1:v},x=w===12?1:w+1;return D.month=x,D}function m(w,v){const D={year:w===1?v-1:v},x=w===1?12:w-1;return D.month=x,D}return{daysInMonth:e,daysInPreMonth:a,getNextMonth:i,getPreviousMonth:m}}function Xe(){const{getToday:e,getDayNumber:n,isWeekEnd:a}=ie(),{daysInMonth:i,daysInPreMonth:m,getNextMonth:w,getPreviousMonth:v}=Je();function D(d){const{day:S,month:s,year:h}=d;if(S===void 0||s===void 0||h===void 0)throw new Error("invalided date.");const I=S===1,N=I?m(s,h):S-1,R=I?s-1:s,M=R<1,P=M?12:R;return{year:M?h-1:h,month:P,day:N}}function x(d){const{day:S,month:s,year:h}=d;if(S===void 0||s===void 0||h===void 0)throw new Error("invalided date.");const I=i(s,h),N=S===I,R=N?1:S+1,M=N?s+1:s,P=M>12,k=P?1:M;return{year:P?h+1:h,month:k,day:R}}function C(d){const S=v(d.month||1,d.year||1),s=i(S.month||1,S.year||1);return{day:(d.day||1)<=s?d.day:s,month:S.month,year:S.year}}function f(d){const S=w(d.month||1,d.year||1),s=i(S.month||1,S.year||1);return{day:(d.day||1)<=s?d.day:s,month:S.month,year:S.year}}function r(d){return{day:d.day,month:d.month,year:(d.year||1)+1}}function c(d){return{day:d.day,month:d.month,year:(d.year||1)-1}}function p(d){const s=(d.day||1)-7,h=s<1,I=h?i(d.month||1,d.year||1)+s:s,N=h?v(d.month||1,d.year||1):d;return{day:I,month:N.month,year:N.year}}function o(d){const s=(d.day||1)+7,h=i(d.month||1,d.year||1),I=s>h,N=I?s-h:s,R=I?w(d.month||1,d.year||1):d;return{day:N,month:R.month,year:R.year}}function l(d,S,s,h,I){if(d<1||S<1||s<1)throw new Error("Invalid date input");const N={day:d,month:S,year:s},R=U.indexOf(h);if(R===-1)throw new Error("Invalid firstDayOfWeek value");const P=(n(N)-R+7)%7,k=e(),g=O=>O.day===k.day&&O.month===k.month&&O.year===k.year,u=[];let V={...N};for(let O=0;O<P;O++)V=D(V);for(let O=0;O<7;O++){let b;if(V.month===I.month&&V.year===I.year)b=K.current;else{const F=v(N.month,N.year);V.month===F.month&&V.year===F.year?b=K.previous:b=K.next}const L=g(V),E=a(V);u.push({date:V,monthTag:b,isCurrent:L,weekEnd:E}),O<6&&(V=x(V))}return{days:u,weekNumber:0,year:s}}function y(d,S,s,h){const I=[],N={day:1,month:d,year:S},R=n(N),M=U.indexOf(s);if(M===-1)throw new Error("Invalid firstDayOfWeek value");const P=(R-M+7)%7;let k=N;for(let u=0;u<P;u++)k=D(k);let g=k;for(let u=0;u<6;u++){const V=l(g.day,g.month,g.year,s,h);I.push(V);for(let j=0;j<7;j++)g=x(g)}return I}return{getMonthlyCalendar:y,getWeeklyCalendar:l,getPreviousDay:D,getNextDay:x,getDayInPreviousWeek:p,getDayInNextWeek:o,getDayInPreviousMonth:C,getDayInNextMonth:f,getNextYear:r,getPreviousYear:c}}const ne=["year","month","week","day"];var se=(e=>(e[e.Equal=0]="Equal",e[e.NotEqual=1]="NotEqual",e[e.Greater=2]="Greater",e[e.GreaterOrEqual=3]="GreaterOrEqual",e[e.Less=4]="Less",e[e.LessOrEqual=5]="LessOrEqual",e[e.Like=6]="Like",e[e.LikeStartWith=7]="LikeStartWith",e[e.LikeEndWith=8]="LikeEndWith",e[e.NotLike=9]="NotLike",e[e.NotLikeStartWith=10]="NotLikeStartWith",e[e.NotLikeEndWith=11]="NotLikeEndWith",e[e.Is=12]="Is",e[e.IsNot=13]="IsNot",e[e.In=14]="In",e[e.NotIn=15]="NotIn",e))(se||{}),ce=(e=>(e[e.Empty=0]="Empty",e[e.And=1]="And",e[e.Or=2]="Or",e))(ce||{});function Ce(){const{getTimeInMilliseconds:e}=ie();function n(o){return o&&o.year!==0&&o.month!==0&&o.day!==0}function a(o){return o&&o.year!==0&&o.month!==0}function i(o){return o&&o.year!==0}function m(o,l){return e(o)<e(l)}function w(o){return e({year:o.year,month:o.month,day:o.day})}function v(o,l,y=!0){return y?e(o)<=e(l):w(o)<=w(l)}function D(o,l){return e(o)===e(l)}function x(o,l){const y=e(l);return e(o.from)===y||e(o.to)===y}function C(o,l){return!l||!n(l.to)||!n(l.from)?!1:v(l.from,o)&&v(o,l.to)}function f(o,l){return n(l)&&e(o)>=e(l)}function r(o,l){return n(l)&&e(o)<=e(l)}function c(o,l){return e({year:o.year,month:o.month,day:o.day})===e({year:l.year,month:l.month,day:l.day})}function p(o,l){return e({hour:o.hour,minute:o.minute,second:o.second})===e({hour:l.hour,minute:l.minute,second:l.second})}return{isDateEarlier:m,equal:D,inPeriod:C,isPoint:x,equalOrEarlier:v,isInitializedDate:n,isInitializedMonth:a,isInitializedYear:i,isMonthDisabledByDisableSince:f,isMonthDisabledByDisableUntil:r,sameTime:p,sameDay:c}}const xe={activeView:{type:Number,default:3},title:{type:String,default:""},dailyViewTitle:{type:String,default:"Day"},weeklyViewTitle:{type:String,default:"Week"},monthlyViewTitle:{type:String,default:"Month"},todayText:{type:String,default:"Today"},previousText:{type:String,default:"Previous"},nextText:{type:String,default:"Next"},enableMoreView:{type:Boolean,default:!1},isCurrent:{type:Boolean,default:!1},yearViewTitle:{type:String,default:"Year"}},de=t.defineComponent({name:"FCalendarHeader",props:xe,emits:["viewChange","previous","next","resetToToday"],setup(e,n){const a=t.ref(e.title),i=t.ref(e.dailyViewTitle),m=t.ref(e.weeklyViewTitle),w=t.ref(e.monthlyViewTitle),v=t.ref(e.yearViewTitle),D=2,x=62,C=t.ref(e.activeView);t.watch(()=>e.activeView,(y,d)=>{C.value=y}),t.watch(()=>e.title,()=>{a.value=e.title});const f=t.computed(()=>({top:`${D}px`,left:`${C.value*(D+1)+(C.value-1)*(x+1)}px`})),r=t.computed(()=>C.value===4?i.value:C.value===3?m.value:C.value===1?v.value:w.value);function c(y){const d=ne.indexOf(y)+1;C.value=d,n.emit("viewChange",d)}function p(){n.emit("previous",C.value)}function o(){n.emit("next",C.value)}function l(){n.emit("resetToToday")}return()=>t.createVNode("div",{class:"f-calendar-header align-items-center"},[t.createVNode("div",{class:"f-calendar-title"},[a.value]),t.createVNode("div",{class:"f-calendar-navigator pl-3",style:"height:26px"},[t.createVNode("button",{class:"btn btn-secondary mr-2",onClick:()=>l(),disabled:e.isCurrent},[e.todayText||"Today"]),t.createVNode("div",{class:"f-calendar-navigator-button-group"},[t.createVNode("div",{class:"f-calendar-navigator-previous btn btn-default",onClick:()=>p(),title:e.previousText},[t.createVNode("i",{class:"f-icon f-icon-arrow-chevron-left"},null)]),t.createVNode("div",{class:"f-calendar-navigator-next btn btn-default",onClick:()=>o(),title:e.nextText},[t.createVNode("i",{class:"f-icon f-icon-arrow-chevron-right"},null)])])]),e.enableMoreView&&t.createVNode("div",{class:"f-calendar-view-switch"},[t.createVNode("div",{class:"f-calendar-view-switch-panel",style:"width: 134px;"},[t.createVNode("span",{class:"f-calendar-view-switch-monthly",onClick:y=>c("year")},[v.value]),t.createVNode("span",{class:"f-calendar-view-switch-monthly",onClick:y=>c("month")},[w.value])]),t.createVNode("div",{class:"f-calendar-view-switch-active-view",style:f.value},[r.value])])])}}),Ee={dates:{type:Array,default:[]},daysInWeek:{type:Array,default:U},enableKeyboadNavigate:{type:Boolean,default:!0},enableMarkCurrent:{type:Boolean,default:!0},events:{type:Array,default:[]},activeDay:{type:Object,default:null},width:{type:Number,default:0},height:{type:Number,default:0},disabled:{type:Boolean,default:!1},monthLabels:{type:Object,default:{}},eventDateField:{type:String,default:"startDate"},enableCrossDay:{type:Boolean,default:!1},startDateField:{type:String,default:"startDate"},endDateField:{type:String,default:"endDate"},idField:{type:String,default:"id"},customEventStyles:{type:Function,default:null},eventItemFormatter:{type:Function,default:null},popoverRef:{type:Object,default:null},showBorder:{type:Boolean,default:!1},moreText:{type:String,default:"更多"}},ue=t.defineComponent({name:"FCalendarMonthView",props:Ee,emits:["click","keyDown","moreClick"],setup(e,n){const a=t.ref(e.daysInWeek);t.ref(e.enableKeyboadNavigate);const i=t.ref(e.enableMarkCurrent),m=t.ref(e.activeDay),w=t.ref(e.events),{assignEventsToWeeks:v,assignEventsToDays:D,renderEventItem:x,useCompareCompsition:C}=t.inject("eventsComposition"),{equal:f}=C,r=t.ref();function c(g,u){return e.enableCrossDay?v(g,u):D(g,u)}const p=t.ref(c(e.dates,w.value));t.watch(()=>e.enableCrossDay,()=>{p.value=c(e.dates,e.events)}),t.watch(()=>e.dates,()=>{p.value=c(e.dates,w.value)}),t.watch(()=>e.activeDay,()=>{m.value=e.activeDay}),t.watch(()=>e.events,()=>{w.value=e.events,p.value=c(e.dates,e.events)}),t.watch(()=>e.daysInWeek,(g,u)=>{a.value=g});function o(g){return!!m.value&&f({year:m.value.year,month:m.value.month,day:m.value.day},g)}const l=(g,u,V)=>{const O={"f-datepicker-no-currmonth":g.monthTag===K.previous||g.monthTag===K.next,"f-calendar-weekday":g.weekEnd,"f-calendar-workday":!g.weekEnd,"f-calendar-today":g.isCurrent},b=`d_${u}_${V}`;return O[b]=!0,O},y=g=>{const u=g.monthTag===K.current&&o(g.date),V=g.isCurrent&&i.value;return{"f-calendar-month-view-date":!0,"f-calendar-month-view-selected":u,"f-calendar-month-view-current":V}};function d(g,u){e.disabled||u.showMore||(g.stopPropagation(),n.emit("click",{date:u.date,view:"month"}))}function S(g,u){e.disabled||n.emit("moreClick",{date:u.date,view:"month"})}const s=t.computed(()=>({width:`${e.width}px`,height:`${e.height}px`})),h=t.ref(0),I=()=>{const g=r.value;if(!g)return 0;const u=g.querySelector(".f-calendar--daygrid-row");if(!u)return 0;const V=u.offsetHeight;return Math.max(0,Math.floor(V/19)-1)};function N(){return t.createVNode("div",{class:"w-100"},[t.createVNode("table",{class:{"w-100":!0,"show-border":e.showBorder}},[a.value&&a.value.map(g=>t.createVNode("th",null,[g]))])])}function R(g,u){return t.createVNode("div",{class:"f-calendar--daygrid-row-header"},[t.createVNode("table",null,[t.createVNode("tbody",null,[t.createVNode("tr",null,[g.days&&g.days.map((V,j)=>t.createVNode("td",{class:l(V,u,j),onClick:O=>d(O,V),style:"position: relative;"},null))])])])])}function M(g,u){return g.days&&g.days.map((V,j)=>t.createVNode("td",{class:l(V,u,j)},[t.createVNode("div",{class:"f-calendar-month-view-title"},[t.createVNode("div",{class:y(V)},[V.date.day]),t.createVNode("div",{class:"f-calendar-month-view-date-month"},[V.date.day===1?e.monthLabels[V.date.month||1]:""])])]))}function P(g){const u=Math.max(0,h.value||I()),V=!!(g.events&&g.events.length>u),j=X.cloneDeep([...g.events||[]]),O=V?j.slice(0,u):j;return V&&O&&O.length>0&&O[O.length-1].forEach(b=>{b.data&&(b.showMore=!0,b.moreCount=g.events.length-u+1)}),O.map((b,L)=>t.createVNode("tr",null,[b.map((E,F)=>E.showMore?t.createVNode("td",{colspan:1,rowspan:1,onClick:q=>d(q,E)},[t.createVNode("a",{class:"f-calendar-event p-0 m-0 pl-1 more-events ",onClick:q=>S(q,g.days[F])},[t.createVNode("div",{class:"event-title"},[e.moreText.replace("#count#",E.moreCount)])])]):t.createVNode("td",{colspan:E.colspan||1,rowspan:E.rowspan||1,onClick:q=>d(q,g.days[F])},[E.data&&x(E)]))]))}function k(){return t.createVNode("div",{class:"w-100 h-100"},[t.createVNode("div",{class:"f-calendar--daygrid"},[p.value.map((g,u)=>t.createVNode("div",{class:"f-calendar--daygrid-row"},[R(g,u),t.createVNode("div",{class:"f-calendar--daygrid-content"},[t.createVNode("table",null,[t.createVNode("thead",null,[t.createVNode("tr",null,[M(g,u)])]),t.createVNode("tbody",null,[P(g)])])])]))])])}return t.watch(()=>e.height,(g,u)=>{g!==u&&t.nextTick(()=>{h.value=I(),p.value=[...p.value]})}),t.onMounted(()=>{h.value=I()}),()=>t.createVNode("div",{class:"f-calendar-month-view",ref:r},[t.createVNode("table",{class:"f-calendar-table",cellpadding:"0",style:s.value},[t.createVNode("thead",null,[t.createVNode("tr",null,[t.createVNode("td",{class:"f-calendar-header"},[N()])])]),t.createVNode("tbody",null,[t.createVNode("tr",{style:"height: 100%"},[t.createVNode("td",{class:"f-calendar-content"},[k()])])])])])}}),Ie={daysInWeek:{type:Array,default:U},enableMarkCurrent:{type:Boolean,default:!0},events:{type:Array,default:[]},week:{type:Object,default:{days:[],weekNumber:0,year:0}},dateField:{type:String,default:"date"},startDateField:{type:String,default:"startDate"},endDateField:{type:String,default:"endDate"}},fe=t.defineComponent({name:"FCalendarWeekView",props:Ie,emits:[],setup(e){const n=t.ref(),a=t.ref(),i=t.ref(e.daysInWeek),m=t.ref(e.week),w=t.ref(e.enableMarkCurrent),v=t.ref(e.events),D=t.ref([]),{equal:x}=Ce(),{convertDateToDateObject:C}=ie();function f(s){return m.value.days.map(I=>{const N={year:I.date.year,month:I.date.month,day:I.date.day,hour:s.hour,minute:s.minute,second:s.second},R=v.value.filter(M=>x(C(M[e.startDateField]),N));return{day:N,events:R}})}function r(){const s=[];for(let h=0;h<24;h++){const I={hour:h,minute:0,second:0},N={hour:h,minute:30,second:0},R=f(I),M=f(N);s.push({time:I,events:R,title:h>0?`${h}:00`:"",part:"upper"}),s.push({time:N,events:M,title:`${h}:30`,part:"lower"})}D.value=s}r(),t.watch(()=>e.week,()=>{m.value=e.week,r()}),t.watch(()=>e.events,()=>{v.value=e.events,r()});const c=s=>({"f-calendar-week-view-date":!0,"f-calendar-week-view-current":s.isCurrent&&w.value});function p(){return t.createVNode("div",{class:"f-calendar-week-view-header"},[t.createVNode("div",{class:"f-calendar-week-view-header-corner"},null),t.createVNode("div",{class:"f-calendar-week-view-header-primary"},[t.createVNode("div",{class:"f-calendar-week-view-header-columns"},[i.value.map((s,h)=>t.createVNode("div",{class:"f-calendar-week-view-header-cell"},[t.createVNode("div",{class:c(m.value.days[h])},[m.value.days[h].date.day]),t.createVNode("span",null,[s])]))])])])}function o(){return t.createVNode("div",{class:"f-calendar-week-view-content-side"},[t.createVNode("div",{class:"f-calendar-side"},[D.value.map(s=>t.createVNode("div",{class:"f-calendar-side-row"},[t.createVNode("div",{class:"f-calendar-side-row-number"},[s.part==="upper"?s.title:""])]))])])}function l(s){return{"f-calendar-week-view-item":!0,"f-calendar-week-view-item-upper":s.part==="upper","f-calendar-week-view-item-lower":s.part==="lower"}}function y(s){const P=(s[e.startDateField].hour||0)+(s[e.startDateField].minute||0)/60;return{height:`${44*((s.ends.hour||0)+(s.ends.minute||0)/60-P)-2-2-1-1}px`}}function d(){return D.value.map(s=>t.createVNode("div",{class:l(s)},[s.events.map(h=>t.createVNode("div",{class:"f-calendar-week-view-item-cell"},[h.events.length>0&&h.events.map(I=>t.createVNode("div",{class:"f-calendar-event",style:y(I)},[I.title]))]))]))}function S(){return t.createVNode("div",{ref:a,class:"f-calendar-content-primary"},[t.createVNode("div",{class:"f-calendar-content-data"},[d()])])}return t.onMounted(()=>{n.value&&n.value.scrollTo(0,250)}),()=>t.createVNode("div",{class:"f-calendar-week-view"},[p(),t.createVNode("div",{class:"f-calendar-week-view-content",ref:n},[o(),S()])])}}),Oe={day:{type:Object,default:{}},dayInWeek:{type:String,default:""},enableMarkCurrent:{type:Boolean,default:!0},events:{type:Array,default:[]},dateField:{type:String,default:"date"}},me=t.defineComponent({name:"FCalendarDayView",props:Oe,emits:[],setup(e){const n=t.ref(),a=t.ref(),i=t.ref(e.dayInWeek),m=t.ref(e.day),w=t.ref(e.enableMarkCurrent),v=t.ref(e.events),D=t.ref([]),{convertDateToDateObject:x}=ie(),{equal:C}=Ce();function f(s){const h={year:m.value.date.year,month:m.value.date.month,day:m.value.date.day,hour:s.hour,minute:s.minute,second:s.second},I=v.value.filter(N=>C(x(N[e.dateField]),h));return[{day:h,events:I}]}function r(){const s=[];for(let h=0;h<24;h++){const I={hour:h,minute:0,second:0},N={hour:h,minute:30,second:0},R=f(I),M=f(N);s.push({time:I,events:R,title:h>0?`${h}:00`:"",part:"upper"}),s.push({time:N,events:M,title:`${h}:30`,part:"lower"})}D.value=s}r(),t.watch(()=>e.day,()=>{m.value=e.day,r()}),t.watch(()=>e.events,()=>{v.value=e.events,r()});const c=s=>({"f-calendar-day-view-date":!0,"f-calendar-day-view-current":s.isCurrent&&w.value});function p(){return t.createVNode("div",{class:"f-calendar-day-view-header"},[t.createVNode("div",{class:"f-calendar-day-view-header-corner"},null),t.createVNode("div",{class:"f-calendar-day-view-header-primary"},[t.createVNode("div",{class:"f-calendar-day-view-header-columns"},[t.createVNode("div",{class:"f-calendar-day-view-header-cell"},[t.createVNode("div",{class:c(m.value)},[m.value.date.day]),t.createVNode("span",null,[i.value])])])])])}function o(){return t.createVNode("div",{class:"f-calendar-day-view-content-side"},[t.createVNode("div",{class:"f-calendar-side"},[D.value.map(s=>t.createVNode("div",{class:"f-calendar-side-row"},[t.createVNode("div",{class:"f-calendar-side-row-number"},[s.part==="upper"?s.title:""])]))])])}function l(s){return{"f-calendar-day-view-item":!0,"f-calendar-day-view-item-upper":s.part==="upper","f-calendar-day-view-item-lower":s.part==="lower"}}function y(s){var V,j,O,b;const P=(((V=s.starts)==null?void 0:V.hour)||0)+(((j=s.starts)==null?void 0:j.minute)||0)/60;return{height:`${44*((((O=s.ends)==null?void 0:O.hour)||0)+(((b=s.ends)==null?void 0:b.minute)||0)/60-P)-2-2-1-1}px`}}function d(){return D.value.map(s=>t.createVNode("div",{class:l(s)},[s.events.map(h=>t.createVNode("div",{class:"f-calendar-day-view-item-cell"},[h.events.length>0&&h.events.map(I=>t.createVNode("div",{class:"f-calendar-event",style:y(I)},[I.title]))]))]))}function S(){return t.createVNode("div",{ref:a,class:"f-calendar-content-primary"},[t.createVNode("div",{class:"f-calendar-content-data"},[d()])])}return t.onMounted(()=>{n.value&&n.value.scrollTo(0,250)}),()=>t.createVNode("div",{class:"f-calendar-day-view"},[p(),t.createVNode("div",{class:"f-calendar-day-view-content",ref:n},[o(),S()])])}}),Qe=t.defineComponent({name:"FCalendarYearView",props:{monthLabels:{type:Object,default:null},height:{type:Number,default:300},events:{type:Array,default:[]},dateField:{type:String,default:"date"},activeYear:{type:Number,default:2025},moreText:{type:String,default:"更多"}},emits:["moreClick"],setup(e,n){const a=t.ref(),i=t.ref(e.monthLabels),{assignEventsToMonths:m,renderEventItemForMonths:w}=t.inject("eventsComposition"),v=t.ref(0),D=()=>{const r=a.value;if(!r)return 0;const p=r.querySelector(".yearview-monthitem").offsetHeight;return Math.max(0,Math.floor((p-40)/24))},x=r=>{const c=!!(r&&r.length>v.value);if(c){const p=X.cloneDeep(r),o=c?p==null?void 0:p.slice(0,v.value):p;if(o&&o.length>0){const l=o[o.length-1];l.data&&(l.showMore=!0,l.moreCount=r.length-v.value+1)}return o}return r},C=t.computed(()=>m(e.activeYear,e.events));function f(r,c){const p={year:e.activeYear,month:parseInt(c,10)};n.emit("moreClick",r,{date:p,view:"year"})}return t.watch(()=>e.height,(r,c)=>{r!==c&&t.nextTick(()=>{v.value=D(),i.value={...e.monthLabels}})}),t.onMounted(()=>{v.value=D()}),()=>t.createVNode("div",{class:"h-100 w-100 f-calendar-year-view",ref:a},[t.createVNode("ul",{style:"height: 100%;overflow: auto; display: flex;flex-wrap: wrap;"},[Object.keys(e.monthLabels).map((r,c)=>{var p;return t.createVNode("li",{key:c,class:"col-md-4 col-lg-3 col-sm-12 yearview-monthitem"},[t.createVNode("div",{class:"f-calendar-year-view-content w-100 h-100 d-flex flex-column",style:"overflow: hidden;"},[t.createVNode("div",{class:"f-calendar-month-view-title px-2"},[e.monthLabels[r]]),t.createVNode("div",{class:"f-calendar-month-events p-2"},[t.createVNode("ul",{class:"events"},[(p=x(C.value[r]))==null?void 0:p.map((o,l)=>o.showMore?t.createVNode("li",{class:"event-item more-events ",key:l},[t.createVNode("a",{class:"f-calendar-event p-0 mt-0 pl-1 ",onClick:y=>f(y,r)},[e.moreText.replace("#count#",o.moreCount)])]):w(o))])])])])})])])}}),Ze=t.defineComponent({name:"MoreEventList",props:{events:Array,popoverOffsetX:Number},setup(e,n){const a=t.ref(),i=t.computed(()=>a),m=t.computed(()=>e.events),{renderEventItemForMore:w}=t.inject("eventsComposition"),v=t.ref(0);return n.expose({popoverRef:i}),()=>t.createVNode(ze,{id:"calendar-more-events",customStyles:{filter:"drop-shadow(#c5c5c5 0px 0px 6px)"},offsetX:v,ref:a,placement:"auto",keepWidthWithReference:!1,fitContent:!0},{default:()=>{var D;return[t.createVNode("div",{style:"height: 400px; width: 300px;overflow: hidden;"},[t.createVNode("div",{class:"f-calendar-more-events-list h-100",style:"overflow:auto;"},[t.createVNode("ul",null,[(D=m.value)==null?void 0:D.map(x=>w(x))])])])]}})}});function Ke(){const{getLocaleValue:e,getLocale:n}=Ye.LocaleService,a={1:e("calendar.monthLabels.1"),2:e("calendar.monthLabels.2"),3:e("calendar.monthLabels.3"),4:e("calendar.monthLabels.4"),5:e("calendar.monthLabels.5"),6:e("calendar.monthLabels.6"),7:e("calendar.monthLabels.7"),8:e("calendar.monthLabels.8"),9:e("calendar.monthLabels.9"),10:e("calendar.monthLabels.10"),11:e("calendar.monthLabels.11"),12:e("calendar.monthLabels.12")},i={Sun:e("calendar.dayLabels.Sun"),Mon:e("calendar.dayLabels.Mon"),Tue:e("calendar.dayLabels.Tue"),Wed:e("calendar.dayLabels.Wed"),Thu:e("calendar.dayLabels.Thu"),Fri:e("calendar.dayLabels.Fri"),Sat:e("calendar.dayLabels.Sat")},m=e("calendar.today"),w=e("calendar.thisYear"),v=e("calendar.yearView"),D=e("calendar.monthView"),x=e("calendar.weekView"),C=e("calendar.dayView"),f=e("calendar.titleFormat"),r=e("calendar.yearViewTitleFormat"),c=e("calendar.prevMonth"),p=e("calendar.nextMonth"),o=e("calendar.prevWeek"),l=e("calendar.nextWeek"),y=e("calendar.prevDay"),d=e("calendar.nextDay"),S=e("calendar.prevYear"),s=e("calendar.nextYear"),h=e("calendar.more","")||"还有 #count# 项...";return{monthLabels:a,weekDayLabels:i,today:m,monthViewTitle:D,weekViewTitle:x,dayViewTitle:C,titleFormat:f,prevMonth:c,nextMonth:p,prevWeek:o,nextWeek:l,prevDay:y,nextDay:d,yearViewTitle:v,yearViewTitleFormat:r,thisYear:w,prevYear:S,nextYear:s,moreText:h,locale:n()}}function et(e){const n=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&n==="[object Date]"?new e.constructor(+e):typeof e=="number"||n==="[object Number]"||typeof e=="string"||n==="[object String]"?new Date(e):new Date(NaN)}function tt(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function nt(e){if(!tt(e)&&typeof e!="number")return!1;const n=et(e);return!isNaN(Number(n))}function at(e,n,a,i,m,w,v){const{equalOrEarlier:D,sameDay:x}=i,{convertDateToDateObject:C}=n,{parseToDate:f,formatTo:r}=a;function c(M,P){M.forEach(u=>{u.days.forEach(V=>{V.events=[]})});const k=new Map,g=u=>{if(!u)return null;if(k.has(u))return k.get(u);const V=f(u,"yyyy-MM-dd");if(!V)return null;const j=C(V);return k.set(u,j),j};return P.forEach(u=>{const{eventDateField:V,startDateField:j}=e,O=Y.resolveField(u,V)||Y.resolveField(u,j),b=g(O);b&&M.forEach(L=>{L.days.forEach(E=>{var F;x(E.date,b)&&((F=E.events)==null||F.push({id:u[e.idField],data:{...u},eventDate:b,isSingleDay:!0}))})})}),M.forEach(u=>{const V=[],j=u.days.map((b,L)=>b.events&&b.events.length>0?b.events.map((E,F)=>({...E,colspan:1,rowspan:1,startIndex:L,endIndex:L})):[]),O=Math.max(...j.map(b=>b.length),0);for(let b=0;b<O;b++){const L=[];for(let E=0;E<7;E++)j[E][b]?L.push(j[E][b]):L.push({colspan:1,rowspan:1,data:null});V.push(L)}u.events=V}),M}function p(M,P){M.forEach(u=>{u.events=[]});const k=new Map,g=u=>{if(!u)return null;if(k.has(u))return k.get(u);const V=f(u,"yyyy-MM-dd");if(!V)return null;const j=C(V);return k.set(u,j),j};return P.forEach(u=>{const{startDateField:V,endDateField:j}=e,O=g(Y.resolveField(u,V)),b=g(Y.resolveField(u,j));!O||!b||M.forEach(L=>{var W,A,H,_;const E=L.days[0].date,F=L.days[L.days.length-1].date;if(!(D(b,E,!1)||D(F,O,!1)))if(x(O,b))(W=L.events)==null||W.push({id:u[e.idField],data:{...u},eventDate:O,isSingleDay:!0});else{const J=D(E,O,!1)?O:E,z=D(b,F,!1)?b:F;let ee=-1,ae=-1;L.days.forEach((pe,he)=>{x(pe.date,J)&&(ee=he),x(pe.date,z)&&(ae=he)}),ee!==-1&&ae!==-1&&((A=L.events)==null||A.push({id:u[e.idField],data:{...u},eventDate:O,startDate:J,endDate:z,startIndex:ee,endIndex:ae,colspan:ae-ee+1,isCrossDay:!0}))}else x(O,F)&&!x(b,F)&&((H=L.events)==null||H.push({id:`${u[e.idField]}_start`,data:{...u},eventDate:O,isSingleDay:!0,isOverlapping:!0,originalId:u[e.idField]})),x(b,E)&&!x(O,E)&&((_=L.events)==null||_.push({id:`${u[e.idField]}_end`,data:{...u},eventDate:b,isSingleDay:!0,isOverlapping:!0,originalId:u[e.idField]}))})}),M.forEach(u=>{u.days.forEach((V,j)=>{var E;const O=(E=u.events)==null?void 0:E.filter(F=>F.isCrossDay?j>=F.startIndex&&j<=F.endIndex:F.isSingleDay?x({year:F.eventDate.year,month:F.eventDate.month,day:F.eventDate.day},{year:V.date.year,month:V.date.month,day:V.date.day}):!1),b=O==null?void 0:O.find(F=>F.isCrossDay),L=(O==null?void 0:O.filter(F=>F.isSingleDay))||[];b&&L.length>0&&L.forEach(F=>{var W,A;((W=u.events)==null?void 0:W.some(H=>(H.originalId===F.id||H.id===F.id)&&x({year:H.eventDate.year,month:H.eventDate.month,day:H.eventDate.day},{year:V.date.year,month:V.date.month,day:V.date.day})))||(A=u.events)==null||A.push({id:F.id,data:{...F.data},eventDate:V.date,isSingleDay:!0,isOverlapping:!0,originalId:F.id})})})}),M.forEach(u=>{const V=[];for(let b=0;b<10;b++)V[b]=Array(7).fill(null);[...u.events].sort((b,L)=>{if(b.isCrossDay&&!L.isCrossDay)return-1;if(!b.isCrossDay&&L.isCrossDay)return 1;if(b.isCrossDay&&L.isCrossDay)return b.startIndex-L.startIndex;const E=b.eventDate,F=L.eventDate;return E.year!==F.year?E.year-F.year:E.month!==F.month?E.month-F.month:E.day-F.day}).forEach(b=>{let L=0,E=!1,F=0,q=1;for(b.isCrossDay?(F=b.startIndex,q=b.colspan):(F=u.days.findIndex(W=>x({year:b.eventDate.year,month:b.eventDate.month,day:b.eventDate.day},{year:W.date.year,month:W.date.month,day:W.date.day})),q=1);!E&&L<V.length;){let W=!0;for(let A=F;A<F+q;A++)if(V[L][A]!==null){W=!1;break}if(W){for(let A=F;A<F+q;A++)V[L][A]=A===F?b:{...b,isPlaceholder:!0,colspan:A===F?q:0};E=!0}else L++}});const O=[];V.forEach(b=>{if(b.some(L=>L!==null)){const L=[];for(let E=0;E<b.length;E++){const F=b[E];F===null?L.push({colspan:1,rowspan:1,data:null}):F.isPlaceholder||L.push(F),F&&(F.colspan=F.colspan||1,F.colspan>1&&(E+=F.colspan-1))}O.push(L)}}),u.events=O}),M}function o(M,P){const k={};return P.forEach(g=>{const{eventDateField:u,startDateField:V}=e,j=Y.resolveField(g,u)||Y.resolveField(g,V);if(!j)return;const O=C(f(j,"yyyy-MM-dd"));if(O.year===M){const b=""+O.month;k[b]=k[b]||[],k[b].push({data:{...g},eventDate:O})}}),k}function l(){return ne[w.value-1]}function y(M,P){M.stopPropagation(),!e.disabled&&m.emit("eventClick",{data:P.data,view:l()})}const d=(M,P,k)=>{const g=Y.resolveField(M,P);return typeof g=="string"?g:g!==null&&typeof g=="object"&&!Array.isArray(g)&&k?g[k]||"":g||""};function S(M){return X.isFunction(e.eventItemFormatter)?e.eventItemFormatter(M.data,{parseToDate:f,formatTo:r,getValue:d,view:l(),locale:v}):Y.resolveField(M.data,e.textField||"title")}function s(M){return X.isFunction(e.eventItemFormatter)?"":d(M.data,e.textField||"title",v)}const h=M=>{if(!M||!M.data)return{};if(!X.isFunction(e.customEventStyles))return{styles:{"background-color":"#f3f3f3"}};const P=e.customEventStyles(M.data,{parseToDate:f,formatTo:r,getValue:d,view:l(),locale:v});return P&&Object.keys(P).length>0?P:{}};function I(M){const{cls:P,styles:k}=h(M);return t.createVNode("a",{onClick:g=>y(g,M),style:k||{},class:"f-calendar-event p-0 mx-1 my-0 "+(P||"")},[t.createVNode("div",{class:"event-title",innerHTML:S(M),title:s(M)},null)])}function N(M){return t.createVNode("li",null,[t.createTextVNode(" "),S(M)])}function R(M){const{cls:P,styles:k}=h(M);return t.createVNode("li",{style:{...k||{},"padding-bottom":"2px"},class:P,onClick:g=>y(g,M)},[t.createVNode("div",{class:"event-title pb-0 text-truncate",innerHTML:S(M),title:s(M)},null)])}return{assignEventsToDays:c,assignEventsToWeeks:p,renderEventItem:I,useCompareCompsition:i,useDateComposition:n,useDateFormatComposition:a,renderEventItemForMore:N,assignEventsToMonths:o,renderEventItemForMonths:R,getEventItemStyles:h}}const Q=t.defineComponent({name:"FCalendar",props:le,emits:["dayClick","dateChange","eventClick","moreClick","viewChange"],setup(e,n){const{titleFormat:a,today:i,prevMonth:m,nextMonth:w,dayViewTitle:v,monthViewTitle:D,weekViewTitle:x,weekDayLabels:C,monthLabels:f,prevWeek:r,nextWeek:c,prevDay:p,nextDay:o,yearViewTitle:l,yearViewTitleFormat:y,thisYear:d,prevYear:S,nextYear:s,moreText:h,locale:I}=Ke(),N=Ce(),R=Y.useDateFormat(),M=ie(),{sameDay:P}=N,{getToday:k,convertDateToDateObject:g}=M,{parseToDate:u}=R,V=t.ref(e.firstDayOfTheWeek),j=t.ref(e.events),O=t.ref(e.enableCrossDay),b=k(),L=t.ref(e.activeDate),E=t.ref(0),F=t.ref(e.visible),q=at(e,M,R,N,n,E,I);t.provide("eventsComposition",q);const W=t.ref({year:b.year||1,month:b.month||1,day:b.day||1});function A(){typeof L.value=="string"&&(L.value=u(L.value,"yyyy-MM-dd")),nt(L.value)&&(W.value=g(L.value))}A(),t.watch(()=>e.activeDate,()=>{L.value=e.activeDate,A()}),t.watch(()=>e.firstDayOfTheWeek,(T,$)=>{T!==$&&(V.value=T)}),t.watch(()=>e.enableCrossDay,(T,$)=>{T!==$&&(O.value=T)});const H=t.ref(e.width),_=t.ref(e.height),J=t.ref();function z(){const T=ne.some($=>$===e.defaultView)?e.defaultView:"month";E.value=ne.indexOf(T)+1}z(),t.watch(()=>e.defaultView,(T,$)=>{z()});const{getMonthlyCalendar:ee,getWeeklyCalendar:ae,getPreviousDay:pe,getNextDay:he,getDayInPreviousWeek:At,getDayInNextWeek:qt,getDayInPreviousMonth:zt,getDayInNextMonth:Yt,getNextYear:Ht,getPreviousYear:Gt}=Xe(),_t=t.computed(()=>E.value===1?y.replace("yyyy",""+W.value.year):a.replace("yyyy",""+W.value.year).replace("MM",""+W.value.month)),Ut=t.computed(()=>E.value===1?d:i),Jt=t.computed(()=>{const T=[],$=U.indexOf(V.value);if($!==-1){let G=$;for(let te=0;te<U.length;te++)T.push(C[U[G]]),G=U[G]==="Sat"?0:G+1}return T}),De=t.computed(()=>ee(W.value.month||1,W.value.year||1,V.value,W.value)),ve=t.computed(()=>ae(W.value.day||1,W.value.month||1,W.value.year||1,V.value,W.value)),Xt=t.computed(()=>ve.value.days.find(T=>P(T.date,W.value))||ve.value.days[1]),Qt=t.computed(()=>{const T=ve.value.days.findIndex(G=>P(G.date,W.value)),$=T>-1?T:1;return U[$]}),Zt=t.computed(()=>(E.value===1||W.value.month===b.month)&&W.value.year===b.year),Be=(T,$)=>[{filterField:e.eventDateField,value:`${T.year}-${T.month}-${T.day} 00:00:00`,lbracket:"",rbracket:"",relation:ce.And,compare:se.GreaterOrEqual},{filterField:e.eventDateField,value:`${$.year}-${$.month}-${$.day} 23:59:59`,lbracket:"",rbracket:"",relation:ce.Empty,compare:se.LessOrEqual}],Ve=()=>{const T=De.value[0].days[0].date,$=De.value[5].days[6].date;n.emit("dateChange",{conditions:Be(T,$),start:T,end:$,view:"month"})},Te=()=>{const T={year:W.value.year,month:1,day:1},$={year:W.value.year,month:12,day:31};n.emit("dateChange",{conditions:Be(T,$),start:T,end:$,view:"year"})};function Kt(T){T===1&&(W.value=Gt(W.value),Te()),T===2&&(W.value=zt(W.value),Ve()),T===3&&(W.value=At(W.value)),T===4&&(W.value=pe(W.value))}function en(T){T===1&&(W.value=Ht(W.value),Te()),T===2&&(W.value=Yt(W.value),Ve()),T===3&&(W.value=qt(W.value)),T===4&&(W.value=he(W.value))}const Re=()=>{ne[E.value-1]==="year"?Te():Ve()},tn=t.computed(()=>[S,m,r,p][E.value-1]),nn=t.computed(()=>[s,w,c,o][E.value-1]);function an(){W.value={year:b.year||1,month:b.month||1,day:b.day||1},Re()}const rn=T=>{n.emit("dayClick",T)};function on(T){if(!T)return{width:0,height:0};if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){const $=window.getComputedStyle(T),G=T.getBoundingClientRect(),te=parseInt($.paddingLeft)||0,Me=parseInt($.paddingRight)||0,ke=parseInt($.paddingTop)||0,ge=parseInt($.paddingBottom)||0,yn=parseFloat($.borderLeftWidth)||0,pn=parseFloat($.borderRightWidth)||0,hn=parseFloat($.borderTopWidth)||0,vn=parseFloat($.borderBottomWidth)||0,gn=G.width-te-Me-yn-pn,bn=G.height-ke-ge-hn-vn;return{width:gn,height:bn}}else return{width:T.clientWidth,height:T.clientHeight}}const Ne=()=>{if(e.fit&&J.value){const T=J.value,G=window.getComputedStyle(T).minHeight;let te=800;if(G&&G.endsWith("px")){const ge=parseInt(G.replace("px",""),10);isNaN(ge)||(te=ge)}const{width:Me,height:ke}=on(T);H.value=Me,_.value=ke,navigator.userAgent.toLowerCase().indexOf("firefox")>-1?_.value-=35:_.value=_.value>te?_.value:te}};function ln(T){E.value=T,Re(),t.nextTick(()=>{Ne()})}let re=null;t.watch(()=>e.visible,(T,$)=>{T!==$&&(F.value=T,T?setTimeout(()=>{re=Y.useResizeObserver(J.value,Ne)}):re&&re())}),t.onMounted(()=>{setTimeout(()=>{F.value&&(re=Y.useResizeObserver(J.value,Ne))})}),t.onUnmounted(()=>{re&&re()});const sn=t.computed(()=>Y.getCustomClass({"f-calendar d-flex f-calendar-cross-day h-100 flex-column":!0,"f-calendar-highlight-weekend":e.highLightWeekend,["f-calendar-activeview-"+ne[E.value-1]]:!0},e.customClass));function cn(T){j.value=T||[]}const $e=t.ref([]),Ae=t.ref();function dn(T){$e.value=T.events||[],n.emit("moreClick",T)}function un(T,$){n.emit("moreClick",$)}const fn=t.computed(()=>{var T;return(T=Ae.value)==null?void 0:T.popoverRef}),mn=t.computed(()=>{const T={minHeight:"800px"};return Y.getCustomStyle(T,e==null?void 0:e.customStyle)});return n.expose({loadEvents:cn}),()=>F.value&&t.createVNode("div",{class:sn.value,ref:J,style:mn.value},[t.createVNode(de,{activeView:E.value,isCurrent:Zt.value,todayText:Ut.value,title:_t.value,enableMoreView:e.enableMoreView,previousText:tn.value,nextText:nn.value,monthlyViewTitle:D,weeklyViewTitle:x,dailyViewTitle:v,yearViewTitle:l,onViewChange:T=>ln(T),onPrevious:T=>Kt(T),onNext:T=>en(T),onResetToToday:()=>an()},null),t.createVNode("div",{class:"f-utils-fill"},[E.value===4&&t.createVNode(me,{day:Xt.value,dayInWeek:Qt.value,events:j.value},null),E.value===3&&t.createVNode(fe,{week:ve.value,events:j.value},null),E.value===2&&t.createVNode(ue,{daysInWeek:Jt.value,monthLabels:f,activeDay:W.value,dates:De.value,events:j.value,width:H.value,height:_.value-60,eventDateField:e.eventDateField,startDateField:e.startDateField,endDateField:e.endDateField,customEventStyles:e.customEventStyles,enableCrossDay:O.value,eventItemFormatter:e.eventItemFormatter,popoverRef:fn.value,moreText:h,onClick:rn,showBorder:e.enableWeekdayBorder,onMoreClick:dn},null),E.value===1&&t.createVNode(Qe,{activeYear:W.value.year,monthLabels:f,events:j.value,height:_.value-60,moreText:h,onMoreClick:(T,$)=>un(T,$)},null)]),t.createVNode(Ze,{ref:Ae,events:$e.value},null)])}}),ye={button:{type:"button",name:"按钮"},"response-toolbar":{type:"response-toolbar",name:"工具栏"},"response-toolbar-item":{type:"response-toolbar-item",name:"按钮"},"content-container":{type:"content-container",name:"容器"},"input-group":{type:"input-group",name:"文本"},textarea:{type:"textarea",name:"多行文本"},lookup:{type:"lookup",name:"帮助"},"number-spinner":{type:"number-spinner",name:"数值"},"date-picker":{type:"date-picker",name:"日期"},switch:{type:"switch",name:"开关"},"radio-group":{type:"radio-group",name:"单选组"},"check-box":{type:"check-box",name:"复选框"},"check-group":{type:"check-group",name:"复选框组"},"combo-list":{type:"combo-list",name:"下拉列表"},"response-form":{type:"response-form",name:"卡片面板"},"response-layout":{type:"response-layout",name:"布局容器",icon:"response-layout-3"},"response-layout-item":{type:"response-layout-item",name:"布局",icon:"response-layout-1"},"tree-grid":{type:"tree-grid",name:"树表格"},"tree-grid-column":{type:"tree-grid-column",name:"树表格列"},"data-grid":{type:"data-grid",name:"表格"},"data-grid-column":{type:"data-grid-column",name:"表格列"},module:{type:"Module",name:"模块"},component:{type:"component",name:"组件"},tabs:{type:"tabs",name:"标签页"},"tab-page":{type:"tab-page",name:"标签页项",dependentParentControl:"Tab"},"tab-toolbar-item":{type:"tab-toolbar-item",name:"标签页工具栏按钮"},"drawer-toolbar-item":{type:"drawer-toolbar-item",name:"抽屉工具栏按钮"},"html-template":{type:"html-template",name:"模板容器"},"time-picker":{type:"time-picker",name:"时间选择"},section:{type:"section",name:"分组面板"},"section-toolbar":{type:"section-toolbar",name:"分组面板工具栏"},"section-toolbar-item":{type:"section-toolbar-item",name:"分组面板按钮"},splitter:{type:"splitter",name:"分栏面板"},"splitter-pane":{type:"splitter-pane",name:"分栏面板项",dependentParentControl:"Splitter"},"component-ref":{type:"component-ref",name:"组件引用节点"},uploader:{type:"uploader",name:"附件上传"},"page-header":{type:"page-header",name:"页头"},"page-footer":{type:"page-footer",name:"页脚"},"tab-toolbar":{type:"tab-toolbar",name:"标签页工具栏"},"drawer-toolbar":{type:"drawer-toolbar",name:"抽屉工具栏"},fieldset:{type:"fieldset",name:"分组"},"query-solution":{type:"query-solution",name:"筛选方案"},drawer:{type:"drawer",name:"抽屉"},"external-container":{type:"external-container",name:"外部容器",icon:"content-container"},"list-nav":{type:"list-nav",name:"列表导航"},"list-view":{type:"list-view",name:"列表"},"filter-bar":{type:"filter-bar",name:"筛选条"},"language-textbox":{type:"language-textbox",name:"多语输入框"},image:{type:"image",name:"图像"},"discussion-editor":{type:"discussion-editor",name:"评论编辑区"},"discussion-list":{type:"discussion-list",name:"评论列表"},comment:{type:"comment",name:"评论区"},"rich-text-editor":{type:"rich-text-editor",name:"富文本",icon:"rich-text-box"},calendar:{type:"calendar",name:"日历",icon:"date-picker"},wizard:{type:"wizard",name:"向导",icon:"wizard"},"wizard-page":{type:"wizard-page",name:"向导页",icon:"wizard"},"wizard-page-detail":{type:"wizard-page-detail",name:"向导详情",icon:"wizard"},step:{type:"step",name:"步骤条",icon:"step"},"dynamic-form":{type:"dynamic-form",name:"动态表单"}};function Pe(e,n){return t.createVNode("h5",{style:"display: flex;justify-content: space-between;align-items: center;"},[t.createTextVNode("示例代码:"),t.createVNode("button",{class:"btn btn-link",onClick:()=>e.value.setValue(n)},[t.createVNode("span",{class:"f-icon f-icon-source-code mr-1"},null),t.createTextVNode("应用代码")])])}const We=(e=!0)=>`/*
data: 日程数据
context: 提供一些时间转换方法,以及获取日程数据的方法
// 将日期转换为Date对象 parseToDate('2021-01-01', 'yyyy-MM-dd')
parseToDate: (date: string, format: string) => Date,
// 将日期转换为指定格式的字符串 fromatTo(new Date(), 'yyyy-MM-dd')
formatTo: (date: Date, format: string) => string,
// 获取日程数据的方法 getValue(data, 'name')
// 如果字段为多语字段,需要指定语言编码 getValue(data, 'name', locale)
getValue: (data: any, field: string, locale?:string) => string,
// 当前视图
view: 'year' | 'month' | 'week' | 'day',
// 当前语言编码
locale: string
${e?"此方法返回一个字符串,可包括HTML代码,如:<div>...</div>":"此方法返回一个对象,包含cls和styles两个属性,cls为事件样式类名,styles为事件样式对象"}
*/`,rt=e=>{const n=`(data, context) => {
/**
* const {formatTo, view, locale, getValue} = context;
* 多语字段需要指定语言编码,如 getValue(data, 'name', locale)
*/
const clsNames = [
'red', 'yellow', 'green', 'blue', 'light-green'
];
const level = data.zylevel;
return {
cls: 'event-bg-' + clsNames[level],
styles: { fontWeight: 'bold' }
}
}`;return t.createVNode(t.Fragment,null,[Pe(e,n),t.createVNode("pre",{style:"height: calc(100% - 35px);margin: 0;"},[t.createVNode("code",null,[t.createTextVNode(" "),`${We(!1)}
${n}
`])])])},ot=e=>{const n=`(data, context) => {
const {formatTo, view, locale, getValue} = context;
const timeFmt = view== 'year'? 'MM-dd HH:mm':'HH:mm';
const timeWidth = view == 'year'? '80px': '40px';
const styles = 'width:' + timeWidth + ';text-align: right;';
/*
多语字段需要指定语言编码,如 getValue(data, 'name', locale)
*/
// dotted: 展示日程前的圆点
return \`
<div class="d-flex" style="justify-content: space-between;">
<div class="f-utils-fill text-truncate dotted" title="\${data.title}">\${data.title}</div>
<div style="\${styles}">\${formatTo(data.beginTime, timeFmt)}</div>
</div>\`
}`;return t.createVNode(t.Fragment,null,[Pe(e,n),t.createVNode("pre",{style:"height: calc(100% - 35px);margin: 0;"},[t.createVNode("code",null,[t.createTextVNode(" "),`${We()}
${n}
`])])])};class it extends He.BaseControlProperty{constructor(a,i){super(a,i);qe(this,"treeNodeStatus",a=>((a.raw.$type!=="SimpleField"||a.raw.selectable===!1)&&(a.disabled=!0),a))}getPropertyConfig(a){return this.getBasicPropConfig(a),this.propertyConfig.categories.appearance=this.getAppearanceConfig(a),this.propertyConfig.categories.behavior=this.getBehaviorConfig(a),this.propertyConfig.categories.calendar=this.getCalendarConfig(a),this.propertyConfig.categories.eventsEditor=this.getEventPropConfig(a),this.propertyConfig}getBehaviorConfig(a){const i=this;return{description:"Basic Infomation",title:"行为",properties:{visible:{description:"运行时组件是否可见",title:"是否可见",type:"boolean",editor:this.getPropertyEditorParams(a,["Const","Variable"])}},setPropertyRelates(m,w){if(m)switch(m.propertyID){case"visible":i.afterMutilEditorChanged(a,m);break}}}}getBasicPropConfig(a){var D,x,C;const i=(C=(x=(D=this.formSchemaUtils.getFormSchema())==null?void 0:D.module)==null?void 0:x.entity[0])==null?void 0:C.entities[0],m=this.assembleSchemaEntityToTree(i,0),w=this,v=super.getBasicPropConfig(a);this.propertyConfig.categories.basic={description:"Basic Information",title:"基本信息",properties:{...v.properties,dataSource:{description:"绑定数据源",title:"绑定数据源",refreshPanelAfterChanged:!0,editor:{type:"combo-tree",textField:"name",valueField:"label",data:m,editable:!1,idField:"label",enableClear:!1},readonly:!1}},setPropertyRelates(f,r){switch(f&&f.propertyID){case"dataSource":{const c=w.formSchemaUtils.getViewModelById(w.viewModelId);if(c){const p=m.find(o=>o.label===f.propertyValue);c.bindTo=p.bindTo}w.designViewModelUtils.assembleDesignViewModel();break}}}}}assembleSchemaEntityToTree(a,i,m,w="",v=[]){const D=w?`${w}/${a.label}`:"/";return v.push({id:a.id,name:a.name,label:a.label,layer:i,parent:m&&m.id,bindTo:D.replace("//","/")}),a.type.entities&&a.type.entities.length&&a.type.entities.map(x=>this.assembleSchemaEntityToTree(x,i+1,a,D,v)),v}onlySelectDateField(a){return a.filter(i=>{var m,w;((m=i.data.type)==null?void 0:m.$type)==="DateType"||((w=i.data.type)==null?void 0:w.$type)==="DateTimeType"?i.selectable=!0:i.selectable=!1,i.children&&i.children.length&&this.onlySelectDateField(i.children)}),a}showOptionsForMonth(a){return a.enableMoreView==null&&(a.enableMoreView=!1),a.defaultView==="month"||a.enableMoreView}getCalendarConfig(a){const i=this,m=this.designViewModelUtils.getAllFields2TreeByVMId(this.viewModelId),w=this.onlySelectDateField(X.cloneDeep(m));a.defaultView==null&&(a.defaultView="month");const v={idField:"bindingPath",type:"combo-tree",textField:"name",valueField:"bindingPath",data:m,editable:!1,enableClear:!1};return{description:"日历组件配置",title:"日历配置",properties:{activeDate:{description:"",title:"默认显示日期",type:"string",editor:{...this.getPropertyEditorParams(a,["Variable","Expression"],"",{},{newVariablePrefix:"",newVariableType:"Date"},"compute"),enableClear:!1}},enableMoreView:{description:"",title:"启用多视图",type:"boolean",default:!1,refreshPanelAfterChanged:!0},defaultView:{description:"",title:"默认视图",type:"string",refreshPanelAfterChanged:!0,editor:{type:"combo-list",idField:"value",valueField:"value",textField:"label",data:[{label:"年",value:"year"},{label:"月",value:"month"}]}},highLightWeekend:{description:"是否高亮周末",title:"高亮周六日",type:"boolean",v