@zealicsolutions/web-ui 1.0.44 → 1.0.45-beta.1

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 (66) hide show
  1. package/dist/cjs/containers/types/moleculeTypes.d.ts +16 -10
  2. package/dist/cjs/index.js +1577 -1577
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/molecules/Calendar/CalendarMolecule.d.ts +54 -0
  5. package/dist/cjs/molecules/Calendar/CalendarMolecule.stories.d.ts +3 -0
  6. package/dist/cjs/molecules/Visit/VisitMolecule.d.ts +41 -0
  7. package/dist/esm/containers/types/moleculeTypes.d.ts +16 -10
  8. package/dist/esm/molecules/BaseMolecule.js +1 -1
  9. package/dist/esm/molecules/BaseMolecule.js.map +1 -1
  10. package/dist/esm/molecules/Calendar/CalendarMolecule.d.ts +54 -0
  11. package/dist/esm/molecules/Calendar/CalendarMolecule.js +2 -0
  12. package/dist/esm/molecules/Calendar/CalendarMolecule.js.map +1 -0
  13. package/dist/esm/molecules/Calendar/CalendarMolecule.stories.d.ts +3 -0
  14. package/dist/esm/molecules/Visit/VisitMolecule.d.ts +41 -0
  15. package/dist/esm/molecules/Visit/VisitMolecule.js +2 -0
  16. package/dist/esm/molecules/Visit/VisitMolecule.js.map +1 -0
  17. package/dist/esm/node_modules/@fullcalendar/core/index.js +2 -0
  18. package/dist/esm/node_modules/@fullcalendar/core/index.js.map +1 -0
  19. package/dist/esm/node_modules/@fullcalendar/core/internal-common.js +2 -0
  20. package/dist/esm/node_modules/@fullcalendar/core/internal-common.js.map +1 -0
  21. package/dist/esm/node_modules/@fullcalendar/daygrid/index.js +2 -0
  22. package/dist/esm/node_modules/@fullcalendar/daygrid/index.js.map +1 -0
  23. package/dist/esm/node_modules/@fullcalendar/daygrid/internal.js +2 -0
  24. package/dist/esm/node_modules/@fullcalendar/daygrid/internal.js.map +1 -0
  25. package/dist/esm/node_modules/@fullcalendar/interaction/index.js +2 -0
  26. package/dist/esm/node_modules/@fullcalendar/interaction/index.js.map +1 -0
  27. package/dist/esm/node_modules/@fullcalendar/list/index.js +2 -0
  28. package/dist/esm/node_modules/@fullcalendar/list/index.js.map +1 -0
  29. package/dist/esm/node_modules/@fullcalendar/list/internal.js +2 -0
  30. package/dist/esm/node_modules/@fullcalendar/list/internal.js.map +1 -0
  31. package/dist/esm/node_modules/@fullcalendar/premium-common/index.js +2 -0
  32. package/dist/esm/node_modules/@fullcalendar/premium-common/index.js.map +1 -0
  33. package/dist/esm/node_modules/@fullcalendar/react/dist/index.js +2 -0
  34. package/dist/esm/node_modules/@fullcalendar/react/dist/index.js.map +1 -0
  35. package/dist/esm/node_modules/@fullcalendar/resource/index.js +2 -0
  36. package/dist/esm/node_modules/@fullcalendar/resource/index.js.map +1 -0
  37. package/dist/esm/node_modules/@fullcalendar/resource/internal-common.js +2 -0
  38. package/dist/esm/node_modules/@fullcalendar/resource/internal-common.js.map +1 -0
  39. package/dist/esm/node_modules/@fullcalendar/resource-daygrid/internal.js +2 -0
  40. package/dist/esm/node_modules/@fullcalendar/resource-daygrid/internal.js.map +1 -0
  41. package/dist/esm/node_modules/@fullcalendar/resource-timegrid/index.js +2 -0
  42. package/dist/esm/node_modules/@fullcalendar/resource-timegrid/index.js.map +1 -0
  43. package/dist/esm/node_modules/@fullcalendar/resource-timegrid/internal.js +2 -0
  44. package/dist/esm/node_modules/@fullcalendar/resource-timegrid/internal.js.map +1 -0
  45. package/dist/esm/node_modules/@fullcalendar/resource-timeline/index.js +2 -0
  46. package/dist/esm/node_modules/@fullcalendar/resource-timeline/index.js.map +1 -0
  47. package/dist/esm/node_modules/@fullcalendar/resource-timeline/internal.js +2 -0
  48. package/dist/esm/node_modules/@fullcalendar/resource-timeline/internal.js.map +1 -0
  49. package/dist/esm/node_modules/@fullcalendar/scrollgrid/internal.js +2 -0
  50. package/dist/esm/node_modules/@fullcalendar/scrollgrid/internal.js.map +1 -0
  51. package/dist/esm/node_modules/@fullcalendar/timegrid/index.js +2 -0
  52. package/dist/esm/node_modules/@fullcalendar/timegrid/index.js.map +1 -0
  53. package/dist/esm/node_modules/@fullcalendar/timegrid/internal.js +2 -0
  54. package/dist/esm/node_modules/@fullcalendar/timegrid/internal.js.map +1 -0
  55. package/dist/esm/node_modules/@fullcalendar/timeline/index.js +2 -0
  56. package/dist/esm/node_modules/@fullcalendar/timeline/index.js.map +1 -0
  57. package/dist/esm/node_modules/@fullcalendar/timeline/internal.js +2 -0
  58. package/dist/esm/node_modules/@fullcalendar/timeline/internal.js.map +1 -0
  59. package/dist/esm/node_modules/preact/compat/dist/compat.mjs.js +2 -0
  60. package/dist/esm/node_modules/preact/compat/dist/compat.mjs.js.map +1 -0
  61. package/dist/esm/node_modules/preact/dist/preact.mjs.js +2 -0
  62. package/dist/esm/node_modules/preact/dist/preact.mjs.js.map +1 -0
  63. package/dist/esm/node_modules/preact/hooks/dist/hooks.mjs.js +2 -0
  64. package/dist/esm/node_modules/preact/hooks/dist/hooks.mjs.js.map +1 -0
  65. package/dist/index.d.ts +105 -10
  66. package/package.json +11 -1
@@ -0,0 +1,2 @@
1
+ import{createPlugin as d}from"../core/index.js";import{DayGridView as a,TableDateProfileGenerator as r}from"./internal.js";var e=d({name:"@fullcalendar/daygrid",initialView:"dayGridMonth",views:{dayGrid:{component:a,dateProfileGeneratorClass:r},dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},fixedWeekCount:!0},dayGridYear:{type:"dayGrid",duration:{years:1}}}});export{e as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../node_modules/@fullcalendar/daygrid/index.js"],"sourcesContent":["import { createPlugin } from '@fullcalendar/core/index.js';\nimport { DayGridView as DayTableView, TableDateProfileGenerator } from './internal.js';\nimport '@fullcalendar/core/internal.js';\nimport '@fullcalendar/core/preact.js';\n\nvar index = createPlugin({\n name: '@fullcalendar/daygrid',\n initialView: 'dayGridMonth',\n views: {\n dayGrid: {\n component: DayTableView,\n dateProfileGeneratorClass: TableDateProfileGenerator,\n },\n dayGridDay: {\n type: 'dayGrid',\n duration: { days: 1 },\n },\n dayGridWeek: {\n type: 'dayGrid',\n duration: { weeks: 1 },\n },\n dayGridMonth: {\n type: 'dayGrid',\n duration: { months: 1 },\n fixedWeekCount: true,\n },\n dayGridYear: {\n type: 'dayGrid',\n duration: { years: 1 },\n },\n },\n});\n\nexport { index as default };\n"],"names":["index","createPlugin","name","initialView","views","dayGrid","component","DayTableView","dateProfileGeneratorClass","TableDateProfileGenerator","dayGridDay","type","duration","days","dayGridWeek","weeks","dayGridMonth","months","fixedWeekCount","dayGridYear","years"],"mappings":"2HAKG,IAACA,EAAQC,EAAa,CACrBC,KAAM,wBACNC,YAAa,eACbC,MAAO,CACHC,QAAS,CACLC,UAAWC,EACXC,0BAA2BC,GAE/BC,WAAY,CACRC,KAAM,UACNC,SAAU,CAAEC,KAAM,IAEtBC,YAAa,CACTH,KAAM,UACNC,SAAU,CAAEG,MAAO,IAEvBC,aAAc,CACVL,KAAM,UACNC,SAAU,CAAEK,OAAQ,GACpBC,gBAAgB,GAEpBC,YAAa,CACTR,KAAM,UACNC,SAAU,CAAEQ,MAAO"}
@@ -0,0 +1,2 @@
1
+ import{x as e,E as t,z as s,bI as n,bM as i,bT as r,R as a,bf as o,t as l,bg as d,ct as c,bc as g,ca as f,bZ as h,cq as u,c9 as p,c8 as y,cd as v,bP as m,bQ as b,cm as R,cl as x,bR as S,b8 as E,B as w,cg as C,bO as D,bS as k,ck as P,a3 as M,W as H,cn as T,a_ as z,cj as N,ci as W,be as O,o as I,by as j,bz as A,bD as B,bv as q,bt as G,bU as F,co as V,a6 as U}from"../core/internal-common.js";import{createRef as L,createElement as $,Fragment as Y}from"../../preact/dist/preact.mjs.js";class Z extends g{constructor(){super(...arguments),this.headerElRef=L()}renderSimpleLayout(e,t){let{props:s,context:n}=this,i=[],r=f(n.options);return e&&i.push({type:"header",key:"header",isSticky:r,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),i.push({type:"body",key:"body",liquid:!0,chunk:{content:t}}),$(u,{elClasses:["fc-daygrid"],viewSpec:n.viewSpec},$(h,{liquid:!s.isHeightAuto&&!s.forPrint,collapsibleWidth:s.forPrint,cols:[],sections:i}))}renderHScrollLayout(e,t,s,n){let i=this.context.pluginHooks.scrollGridImpl;if(!i)throw new Error("No ScrollGrid implementation");let{props:r,context:a}=this,o=!r.forPrint&&f(a.options),l=!r.forPrint&&p(a.options),d=[];return e&&d.push({type:"header",key:"header",isSticky:o,chunks:[{key:"main",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),d.push({type:"body",key:"body",liquid:!0,chunks:[{key:"main",content:t}]}),l&&d.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:y}]}),$(u,{elClasses:["fc-daygrid"],viewSpec:a.viewSpec},$(i,{liquid:!r.isHeightAuto&&!r.forPrint,forPrint:r.forPrint,collapsibleWidth:r.forPrint,colGroups:[{cols:[{span:s,minWidth:n}]}],sections:d}))}}function Q(e,t){let s=[];for(let e=0;e<t;e+=1)s[e]=[];for(let t of e)s[t.row].push(t);return s}function _(e,t){let s=[];for(let e=0;e<t;e+=1)s[e]=[];for(let t of e)s[t.firstCol].push(t);return s}function J(e,t){let s=[];if(e){for(let n=0;n<t;n+=1)s[n]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(let t of e.segs)s[t.row].segs.push(t)}else for(let e=0;e<t;e+=1)s[e]=null;return s}const K=e({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});function X(e){let{display:t}=e.eventRange.ui;return"list-item"===t||"auto"===t&&!e.eventRange.def.allDay&&e.firstCol===e.lastCol&&e.isStart&&e.isEnd}class ee extends w{render(){let{props:e}=this;return $(C,Object.assign({},e,{elClasses:["fc-daygrid-event","fc-daygrid-block-event","fc-h-event"],defaultTimeFormat:K,defaultDisplayEventEnd:e.defaultDisplayEventEnd,disableResizing:!e.seg.eventRange.def.allDay}))}}class te extends w{render(){let{props:e,context:t}=this,{options:s}=t,{seg:n}=e,i=s.eventTimeFormat||K,r=D(n,i,t,!0,e.defaultDisplayEventEnd);return $(P,Object.assign({},e,{elTag:"a",elClasses:["fc-daygrid-event","fc-daygrid-dot-event"],elAttrs:k(e.seg,t),defaultGenerator:se,timeText:r,isResizing:!1,isDateSelecting:!1}))}}function se(e){return $(Y,null,$("div",{className:"fc-daygrid-event-dot",style:{borderColor:e.borderColor||e.backgroundColor}}),e.timeText&&$("div",{className:"fc-event-time"},e.timeText),$("div",{className:"fc-event-title"},e.event.title||$(Y,null," ")))}class ne extends w{constructor(){super(...arguments),this.compileSegs=s(ie)}render(){let{props:e}=this,{allSegs:t,invisibleSegs:s}=this.compileSegs(e.singlePlacements);return $(V,{elClasses:["fc-daygrid-more-link"],dateProfile:e.dateProfile,todayRange:e.todayRange,allDayDate:e.allDayDate,moreCnt:e.moreCnt,allSegs:t,hiddenSegs:s,alignmentElRef:e.alignmentElRef,alignGridTop:e.alignGridTop,extraDateSpan:e.extraDateSpan,popoverContent:()=>{let s=(e.eventDrag?e.eventDrag.affectedInstances:null)||(e.eventResize?e.eventResize.affectedInstances:null)||{};return $(Y,null,t.map((t=>{let n=t.eventRange.instance.instanceId;return $("div",{className:"fc-daygrid-event-harness",key:n,style:{visibility:s[n]?"hidden":""}},X(t)?$(te,Object.assign({seg:t,isDragging:!1,isSelected:n===e.eventSelection,defaultDisplayEventEnd:!1},b(t,e.todayRange))):$(ee,Object.assign({seg:t,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:n===e.eventSelection,defaultDisplayEventEnd:!1},b(t,e.todayRange))))})))}})}}function ie(e){let t=[],s=[];for(let n of e)t.push(n.seg),n.isVisible||s.push(n.seg);return{allSegs:t,invisibleSegs:s}}const re=e({week:"narrow"});class ae extends g{constructor(){super(...arguments),this.rootElRef=L(),this.state={dayNumberId:M()},this.handleRootEl=e=>{H(this.rootElRef,e),H(this.props.elRef,e)}}render(){let{context:e,props:t,state:s,rootElRef:n}=this,{options:i,dateEnv:r}=e,{date:a,dateProfile:o}=t;const l=t.showDayNumber&&function(e,t,s){const{start:n,end:i}=t,r=O(i,-1),a=s.getYear(n),o=s.getMonth(n),l=s.getYear(r),d=s.getMonth(r);return!(a===l&&o===d)&&Boolean(e.valueOf()===n.valueOf()||1===s.getDay(e)&&e.valueOf()<i.valueOf())}(a,o.currentRange,r);return $(W,{elTag:"td",elRef:this.handleRootEl,elClasses:["fc-daygrid-day",...t.extraClassNames||[]],elAttrs:Object.assign(Object.assign(Object.assign({},t.extraDataAttrs),t.showDayNumber?{"aria-labelledby":s.dayNumberId}:{}),{role:"gridcell"}),defaultGenerator:oe,date:a,dateProfile:o,todayRange:t.todayRange,showDayNumber:t.showDayNumber,isMonthStart:l,extraRenderProps:t.extraRenderProps},((r,o)=>$("div",{ref:t.innerElRef,className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",style:{minHeight:t.minHeight}},t.showWeekNumber&&$(T,{elTag:"a",elClasses:["fc-daygrid-week-number"],elAttrs:z(e,a,"week"),date:a,defaultFormat:re}),!o.isDisabled&&(t.showDayNumber||N(i)||t.forceDayTop)?$("div",{className:"fc-daygrid-day-top"},$(r,{elTag:"a",elClasses:["fc-daygrid-day-number",l&&"fc-daygrid-month-start"],elAttrs:Object.assign(Object.assign({},z(e,a)),{id:s.dayNumberId})})):t.showDayNumber?$("div",{className:"fc-daygrid-day-top",style:{visibility:"hidden"}},$("a",{className:"fc-daygrid-day-number"}," ")):void 0,$("div",{className:"fc-daygrid-day-events",ref:t.fgContentElRef},t.fgContent,$("div",{className:"fc-daygrid-day-bottom",style:{marginTop:t.moreMarginTop}},$(ne,{allDayDate:a,singlePlacements:t.singlePlacements,moreCnt:t.moreCnt,alignmentElRef:n,alignGridTop:!t.showDayNumber,extraDateSpan:t.extraDateSpan,dateProfile:t.dateProfile,eventSelection:t.eventSelection,eventDrag:t.eventDrag,eventResize:t.eventResize,todayRange:t.todayRange}))),$("div",{className:"fc-daygrid-day-bg"},t.bgContent))))}}function oe(e){return e.dayNumberText||$(Y,null," ")}function le(e){return e.eventRange.instance.instanceId+":"+e.firstCol}function de(e){return le(e)+":"+e.lastCol}function ce(e,t,s,n,i,r,a){let o=new fe((t=>{let s=e[t.index].eventRange.instance.instanceId+":"+t.span.start+":"+(t.span.end-1);return i[s]||1}));o.allowReslicing=!0,o.strictOrder=n,!0===t||!0===s?(o.maxCoord=r,o.hiddenConsumes=!0):"number"==typeof t?o.maxStackCnt=t:"number"==typeof s&&(o.maxStackCnt=s,o.hiddenConsumes=!0);let l=[],d=[];for(let t=0;t<e.length;t+=1){let s=e[t],n=de(s);null!=i[n]?l.push({index:t,span:{start:s.firstCol,end:s.lastCol+1}}):d.push(s)}let c=o.addSegs(l),g=o.toRects(),{singleColPlacements:f,multiColPlacements:h,leftoverMargins:u}=function(e,t,s){let n=function(e,t){let s=[];for(let e=0;e<t;e+=1)s.push([]);for(let t of e)for(let e=t.span.start;e<t.span.end;e+=1)s[e].push(t);return s}(e,s.length),i=[],r=[],a=[];for(let e=0;e<s.length;e+=1){let o=n[e],l=[],d=0,c=0;for(let n of o){let i=t[n.index];l.push({seg:ge(i,e,e+1,s),isVisible:!0,isAbsolute:!1,absoluteTop:n.levelCoord,marginTop:n.levelCoord-d}),d=n.levelCoord+n.thickness}let g=[];d=0,c=0;for(let n of o){let i=t[n.index],r=n.span.end-n.span.start>1,a=n.span.start===e;c+=n.levelCoord-d,d=n.levelCoord+n.thickness,r?(c+=n.thickness,a&&g.push({seg:ge(i,n.span.start,n.span.end,s),isVisible:!0,isAbsolute:!0,absoluteTop:n.levelCoord,marginTop:0})):a&&(g.push({seg:ge(i,n.span.start,n.span.end,s),isVisible:!0,isAbsolute:!1,absoluteTop:n.levelCoord,marginTop:c}),c=0)}i.push(l),r.push(g),a.push(c)}return{singleColPlacements:i,multiColPlacements:r,leftoverMargins:a}}(g,e,a),p=[],y=[];for(let e of d){h[e.firstCol].push({seg:e,isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let t=e.firstCol;t<=e.lastCol;t+=1)f[t].push({seg:ge(e,t,t+1,a),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<a.length;e+=1)p.push(0);for(let t of c){let s=e[t.index],n=t.span;h[n.start].push({seg:ge(s,n.start,n.end,a),isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let e=n.start;e<n.end;e+=1)p[e]+=1,f[e].push({seg:ge(s,e,e+1,a),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let e=0;e<a.length;e+=1)y.push(u[e]);return{singleColPlacements:f,multiColPlacements:h,moreCnts:p,moreMarginTops:y}}function ge(e,t,s,n){if(e.firstCol===t&&e.lastCol===s-1)return e;let i=e.eventRange,r=i.range,a=I(r,{start:n[t].date,end:l(n[s-1].date,1)});return Object.assign(Object.assign({},e),{firstCol:t,lastCol:s-1,eventRange:{def:i.def,ui:Object.assign(Object.assign({},i.ui),{durationEditable:!1}),instance:i.instance,range:a},isStart:e.isStart&&a.start.valueOf()===r.start.valueOf(),isEnd:e.isEnd&&a.end.valueOf()===r.end.valueOf()})}class fe extends j{constructor(){super(...arguments),this.hiddenConsumes=!1,this.forceHidden={}}addSegs(e){const t=super.addSegs(e),{entriesByLevel:s}=this,n=e=>!this.forceHidden[A(e)];for(let e=0;e<s.length;e+=1)s[e]=s[e].filter(n);return t}handleInvalidInsertion(e,t,s){const{entriesByLevel:n,forceHidden:i}=this,{touchingEntry:r,touchingLevel:a,touchingLateral:o}=e;if(this.hiddenConsumes&&r){const e=A(r);if(!i[e])if(this.allowReslicing){const e=Object.assign(Object.assign({},r),{span:B(r.span,t.span)});i[A(e)]=!0,n[a][o]=e,s.push(e),this.splitEntry(r,t,s)}else i[e]=!0,s.push(r)}super.handleInvalidInsertion(e,t,s)}}class he extends g{constructor(){super(...arguments),this.cellElRefs=new v,this.frameElRefs=new v,this.fgElRefs=new v,this.segHarnessRefs=new v,this.rootElRef=L(),this.state={framePositions:null,maxContentHeight:null,segHeights:{}},this.handleResize=e=>{e&&this.updateSizing(!0)}}render(){let{props:e,state:t,context:s}=this,{options:n}=s,i=e.cells.length,r=_(e.businessHourSegs,i),a=_(e.bgEventSegs,i),o=_(this.getHighlightSegs(),i),l=_(this.getMirrorSegs(),i),{singleColPlacements:d,multiColPlacements:c,moreCnts:g,moreMarginTops:f}=ce(m(e.fgEventSegs,n.eventOrder),e.dayMaxEvents,e.dayMaxEventRows,n.eventOrderStrict,t.segHeights,t.maxContentHeight,e.cells),h=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{};return $("tr",{ref:this.rootElRef,role:"row"},e.renderIntro&&e.renderIntro(),e.cells.map(((t,s)=>{let n=this.renderFgSegs(s,e.forPrint?d[s]:c[s],e.todayRange,h),i=this.renderFgSegs(s,function(e,t){if(!e.length)return[];let s=function(e){let t={};for(let s of e)for(let e of s)t[e.seg.eventRange.instance.instanceId]=e.absoluteTop;return t}(t);return e.map((e=>({seg:e,isVisible:!0,isAbsolute:!0,absoluteTop:s[e.eventRange.instance.instanceId],marginTop:0})))}(l[s],c),e.todayRange,{},Boolean(e.eventDrag),Boolean(e.eventResize),!1);return $(ae,{key:t.key,elRef:this.cellElRefs.createRef(t.key),innerElRef:this.frameElRefs.createRef(t.key),dateProfile:e.dateProfile,date:t.date,showDayNumber:e.showDayNumbers,showWeekNumber:e.showWeekNumbers&&0===s,forceDayTop:e.showWeekNumbers,todayRange:e.todayRange,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,extraRenderProps:t.extraRenderProps,extraDataAttrs:t.extraDataAttrs,extraClassNames:t.extraClassNames,extraDateSpan:t.extraDateSpan,moreCnt:g[s],moreMarginTop:f[s],singlePlacements:d[s],fgContentElRef:this.fgElRefs.createRef(t.key),fgContent:$(Y,null,$(Y,null,n),$(Y,null,i)),bgContent:$(Y,null,this.renderFillSegs(o[s],"highlight"),this.renderFillSegs(r[s],"non-business"),this.renderFillSegs(a[s],"bg-event")),minHeight:e.cellMinHeight})})))}componentDidMount(){this.updateSizing(!0),this.context.addResizeHandler(this.handleResize)}componentDidUpdate(e,s){let n=this.props;this.updateSizing(!t(e,n))}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}getHighlightSegs(){let{props:e}=this;return e.eventDrag&&e.eventDrag.segs.length?e.eventDrag.segs:e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:e.dateSelectionSegs}getMirrorSegs(){let{props:e}=this;return e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:[]}renderFgSegs(e,t,s,n,i,r,a){let{context:o}=this,{eventSelection:l}=this.props,{framePositions:d}=this.state,c=1===this.props.cells.length,g=i||r||a,f=[];if(d)for(let e of t){let{seg:t}=e,{instanceId:h}=t.eventRange.instance,u=e.isVisible&&!n[h],p=e.isAbsolute,y="",v="";p&&(o.isRtl?(v=0,y=d.lefts[t.lastCol]-d.lefts[t.firstCol]):(y=0,v=d.rights[t.firstCol]-d.rights[t.lastCol])),f.push($("div",{className:"fc-daygrid-event-harness"+(p?" fc-daygrid-event-harness-abs":""),key:le(t),ref:g?null:this.segHarnessRefs.createRef(de(t)),style:{visibility:u?"":"hidden",marginTop:p?"":e.marginTop,top:p?e.absoluteTop:"",left:y,right:v}},X(t)?$(te,Object.assign({seg:t,isDragging:i,isSelected:h===l,defaultDisplayEventEnd:c},b(t,s))):$(ee,Object.assign({seg:t,isDragging:i,isResizing:r,isDateSelecting:a,isSelected:h===l,defaultDisplayEventEnd:c},b(t,s)))))}return f}renderFillSegs(e,t){let{isRtl:s}=this.context,{todayRange:n}=this.props,{framePositions:i}=this.state,r=[];if(i)for(let a of e){let e=s?{right:0,left:i.lefts[a.lastCol]-i.lefts[a.firstCol]}:{left:0,right:i.rights[a.firstCol]-i.rights[a.lastCol]};r.push($("div",{key:S(a.eventRange),className:"fc-daygrid-bg-harness",style:e},"bg-event"===t?$(R,Object.assign({seg:a},b(a,n))):x(t)))}return $(Y,{},...r)}updateSizing(e){let{props:t,state:s,frameElRefs:n}=this;if(!t.forPrint&&null!==t.clientWidth){if(e){let e=t.cells.map((e=>n.currentMap[e.key]));if(e.length){let t=this.rootElRef.current,n=new E(t,e,!0,!1);s.framePositions&&s.framePositions.similarTo(n)||this.setState({framePositions:new E(t,e,!0,!1)})}}const i=this.state.segHeights,r=this.querySegHeights(),a=!0===t.dayMaxEvents||!0===t.dayMaxEventRows;this.safeSetState({segHeights:Object.assign(Object.assign({},i),r),maxContentHeight:a?this.computeMaxContentHeight():null})}}querySegHeights(){let e=this.segHarnessRefs.currentMap,t={};for(let s in e){let n=Math.round(e[s].getBoundingClientRect().height);t[s]=Math.max(t[s]||0,n)}return t}computeMaxContentHeight(){let e=this.props.cells[0].key,t=this.cellElRefs.currentMap[e],s=this.fgElRefs.currentMap[e];return t.getBoundingClientRect().bottom-s.getBoundingClientRect().top}getCellEls(){let e=this.cellElRefs.currentMap;return this.props.cells.map((t=>e[t.key]))}}he.addStateEquality({segHeights:t});class ue extends g{constructor(){super(...arguments),this.splitBusinessHourSegs=s(Q),this.splitBgEventSegs=s(Q),this.splitFgEventSegs=s(Q),this.splitDateSelectionSegs=s(Q),this.splitEventDrag=s(J),this.splitEventResize=s(J),this.rowRefs=new v}render(){let{props:e,context:t}=this,s=e.cells.length,n=this.splitBusinessHourSegs(e.businessHourSegs,s),i=this.splitBgEventSegs(e.bgEventSegs,s),r=this.splitFgEventSegs(e.fgEventSegs,s),a=this.splitDateSelectionSegs(e.dateSelectionSegs,s),o=this.splitEventDrag(e.eventDrag,s),l=this.splitEventResize(e.eventResize,s),d=s>=7&&e.clientWidth?e.clientWidth/t.options.aspectRatio/6:null;return $(U,{unit:"day"},((t,c)=>$(Y,null,e.cells.map(((t,g)=>$(he,{ref:this.rowRefs.createRef(g),key:t.length?t[0].date.toISOString():g,showDayNumbers:s>1,showWeekNumbers:e.showWeekNumbers,todayRange:c,dateProfile:e.dateProfile,cells:t,renderIntro:e.renderRowIntro,businessHourSegs:n[g],eventSelection:e.eventSelection,bgEventSegs:i[g].filter(pe),fgEventSegs:r[g],dateSelectionSegs:a[g],eventDrag:o[g],eventResize:l[g],dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,clientWidth:e.clientWidth,clientHeight:e.clientHeight,cellMinHeight:d,forPrint:e.forPrint}))))))}componentDidMount(){this.registerInteractiveComponent()}componentDidUpdate(){this.registerInteractiveComponent()}registerInteractiveComponent(){if(!this.rootEl){const e=this.rowRefs.currentMap[0].getCellEls()[0],t=e?e.closest(".fc-daygrid-body"):null;t&&(this.rootEl=t,this.context.registerInteractiveComponent(this,{el:t,isHitComboAllowed:this.props.isHitComboAllowed}))}}componentWillUnmount(){this.rootEl&&(this.context.unregisterInteractiveComponent(this),this.rootEl=null)}prepareHits(){this.rowPositions=new E(this.rootEl,this.rowRefs.collect().map((e=>e.getCellEls()[0])),!1,!0),this.colPositions=new E(this.rootEl,this.rowRefs.currentMap[0].getCellEls(),!0,!1)}queryHit(e,t){let{colPositions:s,rowPositions:n}=this,i=s.leftToIndex(e),r=n.topToIndex(t);if(null!=r&&null!=i){let e=this.props.cells[r][i];return{dateProfile:this.props.dateProfile,dateSpan:Object.assign({range:this.getCellRange(r,i),allDay:!0},e.extraDateSpan),dayEl:this.getCellEl(r,i),rect:{left:s.lefts[i],right:s.rights[i],top:n.tops[r],bottom:n.bottoms[r]},layer:0}}return null}getCellEl(e,t){return this.rowRefs.currentMap[e].getCellEls()[t]}getCellRange(e,t){let s=this.props.cells[e][t].date;return{start:s,end:l(s,1)}}}function pe(e){return e.eventRange.def.allDay}class ye extends g{constructor(){super(...arguments),this.elRef=L(),this.needsScrollReset=!1}render(){let{props:e}=this,{dayMaxEventRows:t,dayMaxEvents:s,expandRows:n}=e,i=!0===s||!0===t;i&&!n&&(i=!1,t=null,s=null);let r=["fc-daygrid-body",i?"fc-daygrid-body-balanced":"fc-daygrid-body-unbalanced",n?"":"fc-daygrid-body-natural"];return $("div",{ref:this.elRef,className:r.join(" "),style:{width:e.clientWidth,minWidth:e.tableMinWidth}},$("table",{role:"presentation",className:"fc-scrollgrid-sync-table",style:{width:e.clientWidth,minWidth:e.tableMinWidth,height:n?e.clientHeight:""}},e.colGroupNode,$("tbody",{role:"presentation"},$(ue,{dateProfile:e.dateProfile,cells:e.cells,renderRowIntro:e.renderRowIntro,showWeekNumbers:e.showWeekNumbers,clientWidth:e.clientWidth,clientHeight:e.clientHeight,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,dayMaxEvents:s,dayMaxEventRows:t,forPrint:e.forPrint,isHitComboAllowed:e.isHitComboAllowed}))))}componentDidMount(){this.requestScrollReset()}componentDidUpdate(e){e.dateProfile!==this.props.dateProfile?this.requestScrollReset():this.flushScrollReset()}requestScrollReset(){this.needsScrollReset=!0,this.flushScrollReset()}flushScrollReset(){if(this.needsScrollReset&&this.props.clientWidth){const e=function(e,t){let s;t.currentRangeUnit.match(/year|month/)&&(s=e.querySelector(`[data-date="${q(t.currentDate)}-01"]`));s||(s=e.querySelector(`[data-date="${G(t.currentDate)}"]`));return s}(this.elRef.current,this.props.dateProfile);if(e){const t=e.closest(".fc-daygrid-body"),s=t.closest(".fc-scroller"),n=e.getBoundingClientRect().top-t.getBoundingClientRect().top;s.scrollTop=n?n+1:0}this.needsScrollReset=!1}}}class ve extends F{constructor(){super(...arguments),this.forceDayIfListItem=!0}sliceRange(e,t){return t.sliceRange(e)}}class me extends g{constructor(){super(...arguments),this.slicer=new ve,this.tableRef=L()}render(){let{props:e,context:t}=this;return $(ye,Object.assign({ref:this.tableRef},this.slicer.sliceProps(e,e.dateProfile,e.nextDayThreshold,t,e.dayTableModel),{dateProfile:e.dateProfile,cells:e.dayTableModel.cells,colGroupNode:e.colGroupNode,tableMinWidth:e.tableMinWidth,renderRowIntro:e.renderRowIntro,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.showWeekNumbers,expandRows:e.expandRows,headerAlignElRef:e.headerAlignElRef,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint}))}}class be extends Z{constructor(){super(...arguments),this.buildDayTableModel=s(Re),this.headerRef=L(),this.tableRef=L()}render(){let{options:e,dateProfileGenerator:t}=this.context,{props:s}=this,i=this.buildDayTableModel(s.dateProfile,t),r=e.dayHeaders&&$(n,{ref:this.headerRef,dateProfile:s.dateProfile,dates:i.headerDates,datesRepDistinctDays:1===i.rowCnt}),a=t=>$(me,{ref:this.tableRef,dateProfile:s.dateProfile,dayTableModel:i,businessHours:s.businessHours,dateSelection:s.dateSelection,eventStore:s.eventStore,eventUiBases:s.eventUiBases,eventSelection:s.eventSelection,eventDrag:s.eventDrag,eventResize:s.eventResize,nextDayThreshold:e.nextDayThreshold,colGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.weekNumbers,expandRows:!s.isHeightAuto,headerAlignElRef:this.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:s.forPrint});return e.dayMinWidth?this.renderHScrollLayout(r,a,i.colCnt,e.dayMinWidth):this.renderSimpleLayout(r,a)}}function Re(e,t){let s=new i(e.renderRange,t);return new r(s,/year|month|week/.test(e.currentRangeUnit))}class xe extends a{buildRenderRange(e,t,s){let n=super.buildRenderRange(e,t,s),{props:i}=this;return Se({currentRange:n,snapToWeek:/^(year|month)$/.test(t),fixedWeekCount:i.fixedWeekCount,dateEnv:i.dateEnv})}}function Se(e){let t,{dateEnv:s,currentRange:n}=e,{start:i,end:r}=n;if(e.snapToWeek&&(i=s.startOfWeek(i),t=s.startOfWeek(r),t.valueOf()!==r.valueOf()&&(r=o(t,1))),e.fixedWeekCount){let e=s.startOfWeek(s.startOfMonth(l(n.end,-1))),t=Math.ceil(d(e,r));r=o(r,6-t)}return{start:i,end:r}}c(':root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:"";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:"";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}');export{be as DayGridView,me as DayTable,ve as DayTableSlicer,ye as Table,xe as TableDateProfileGenerator,ue as TableRows,Z as TableView,Re as buildDayTableModel,Se as buildDayTableRenderRange};
2
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sources":["../../../../../node_modules/@fullcalendar/daygrid/internal.js"],"sourcesContent":["import { DateComponent, getStickyHeaderDates, ViewContainer, SimpleScrollGrid, getStickyFooterScrollbar, renderScrollShim, createFormatter, BaseComponent, StandardEvent, buildSegTimeText, EventContainer, getSegAnchorAttrs, memoize, MoreLinkContainer, getSegMeta, getUniqueDomId, setRef, DayCellContainer, WeekNumberContainer, buildNavLinkAttrs, hasCustomDayCellContent, addMs, intersectRanges, addDays, SegHierarchy, buildEntryKey, intersectSpans, RefMap, sortEventSegs, isPropsEqual, buildEventRangeKey, BgEvent, renderFill, PositionCache, NowTimer, formatIsoMonthStr, formatDayString, Slicer, DayHeader, DaySeriesModel, DayTableModel, DateProfileGenerator, addWeeks, diffWeeks, injectStyles } from '@fullcalendar/core/internal.js';\nimport { createRef, createElement, Fragment } from '@fullcalendar/core/preact.js';\n\n/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.\n----------------------------------------------------------------------------------------------------------------------*/\n// It is a manager for a Table subcomponent, which does most of the heavy lifting.\n// It is responsible for managing width/height.\nclass TableView extends DateComponent {\n constructor() {\n super(...arguments);\n this.headerElRef = createRef();\n }\n renderSimpleLayout(headerRowContent, bodyContent) {\n let { props, context } = this;\n let sections = [];\n let stickyHeaderDates = getStickyHeaderDates(context.options);\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunk: {\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n });\n }\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunk: { content: bodyContent },\n });\n return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },\n createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })));\n }\n renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {\n let ScrollGrid = this.context.pluginHooks.scrollGridImpl;\n if (!ScrollGrid) {\n throw new Error('No ScrollGrid implementation');\n }\n let { props, context } = this;\n let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);\n let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);\n let sections = [];\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunks: [{\n key: 'main',\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n }],\n });\n }\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunks: [{\n key: 'main',\n content: bodyContent,\n }],\n });\n if (stickyFooterScrollbar) {\n sections.push({\n type: 'footer',\n key: 'footer',\n isSticky: true,\n chunks: [{\n key: 'main',\n content: renderScrollShim,\n }],\n });\n }\n return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },\n createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })));\n }\n}\n\nfunction splitSegsByRow(segs, rowCnt) {\n let byRow = [];\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = [];\n }\n for (let seg of segs) {\n byRow[seg.row].push(seg);\n }\n return byRow;\n}\nfunction splitSegsByFirstCol(segs, colCnt) {\n let byCol = [];\n for (let i = 0; i < colCnt; i += 1) {\n byCol[i] = [];\n }\n for (let seg of segs) {\n byCol[seg.firstCol].push(seg);\n }\n return byCol;\n}\nfunction splitInteractionByRow(ui, rowCnt) {\n let byRow = [];\n if (!ui) {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = null;\n }\n }\n else {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = {\n affectedInstances: ui.affectedInstances,\n isEvent: ui.isEvent,\n segs: [],\n };\n }\n for (let seg of ui.segs) {\n byRow[seg.row].segs.push(seg);\n }\n }\n return byRow;\n}\n\nconst DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'narrow',\n});\nfunction hasListItemDisplay(seg) {\n let { display } = seg.eventRange.ui;\n return display === 'list-item' || (display === 'auto' &&\n !seg.eventRange.def.allDay &&\n seg.firstCol === seg.lastCol && // can't be multi-day\n seg.isStart && // \"\n seg.isEnd // \"\n );\n}\n\nclass TableBlockEvent extends BaseComponent {\n render() {\n let { props } = this;\n return (createElement(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));\n }\n}\n\nclass TableListItemEvent extends BaseComponent {\n render() {\n let { props, context } = this;\n let { options } = context;\n let { seg } = props;\n let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;\n let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);\n return (createElement(EventContainer, Object.assign({}, props, { elTag: \"a\", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent, timeText: timeText, isResizing: false, isDateSelecting: false })));\n }\n}\nfunction renderInnerContent(renderProps) {\n return (createElement(Fragment, null,\n createElement(\"div\", { className: \"fc-daygrid-event-dot\", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),\n renderProps.timeText && (createElement(\"div\", { className: \"fc-event-time\" }, renderProps.timeText)),\n createElement(\"div\", { className: \"fc-event-title\" }, renderProps.event.title || createElement(Fragment, null, \"\\u00A0\"))));\n}\n\nclass TableCellMoreLink extends BaseComponent {\n constructor() {\n super(...arguments);\n this.compileSegs = memoize(compileSegs);\n }\n render() {\n let { props } = this;\n let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);\n return (createElement(MoreLinkContainer, { elClasses: ['fc-daygrid-more-link'], dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {\n let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||\n (props.eventResize ? props.eventResize.affectedInstances : null) ||\n {};\n return (createElement(Fragment, null, allSegs.map((seg) => {\n let instanceId = seg.eventRange.instance.instanceId;\n return (createElement(\"div\", { className: \"fc-daygrid-event-harness\", key: instanceId, style: {\n visibility: isForcedInvisible[instanceId] ? 'hidden' : '',\n } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));\n })));\n } }));\n }\n}\nfunction compileSegs(singlePlacements) {\n let allSegs = [];\n let invisibleSegs = [];\n for (let placement of singlePlacements) {\n allSegs.push(placement.seg);\n if (!placement.isVisible) {\n invisibleSegs.push(placement.seg);\n }\n }\n return { allSegs, invisibleSegs };\n}\n\nconst DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'narrow' });\nclass TableCell extends DateComponent {\n constructor() {\n super(...arguments);\n this.rootElRef = createRef();\n this.state = {\n dayNumberId: getUniqueDomId(),\n };\n this.handleRootEl = (el) => {\n setRef(this.rootElRef, el);\n setRef(this.props.elRef, el);\n };\n }\n render() {\n let { context, props, state, rootElRef } = this;\n let { options, dateEnv } = context;\n let { date, dateProfile } = props;\n // TODO: memoize this?\n const isMonthStart = props.showDayNumber &&\n shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);\n return (createElement(DayCellContainer, { elTag: \"td\", elRef: this.handleRootEl, elClasses: [\n 'fc-daygrid-day',\n ...(props.extraClassNames || []),\n ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (createElement(\"div\", { ref: props.innerElRef, className: \"fc-daygrid-day-frame fc-scrollgrid-sync-inner\", style: { minHeight: props.minHeight } },\n props.showWeekNumber && (createElement(WeekNumberContainer, { elTag: \"a\", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT })),\n !renderProps.isDisabled &&\n (props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (createElement(\"div\", { className: \"fc-daygrid-day-top\" },\n createElement(InnerContent, { elTag: \"a\", elClasses: [\n 'fc-daygrid-day-number',\n isMonthStart && 'fc-daygrid-month-start',\n ], elAttrs: Object.assign(Object.assign({}, buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))) : props.showDayNumber ? (\n // for creating correct amount of space (see issue #7162)\n createElement(\"div\", { className: \"fc-daygrid-day-top\", style: { visibility: 'hidden' } },\n createElement(\"a\", { className: \"fc-daygrid-day-number\" }, \"\\u00A0\"))) : undefined,\n createElement(\"div\", { className: \"fc-daygrid-day-events\", ref: props.fgContentElRef },\n props.fgContent,\n createElement(\"div\", { className: \"fc-daygrid-day-bottom\", style: { marginTop: props.moreMarginTop } },\n createElement(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),\n createElement(\"div\", { className: \"fc-daygrid-day-bg\" }, props.bgContent)))));\n }\n}\nfunction renderTopInner(props) {\n return props.dayNumberText || createElement(Fragment, null, \"\\u00A0\");\n}\nfunction shouldDisplayMonthStart(date, currentRange, dateEnv) {\n const { start: currentStart, end: currentEnd } = currentRange;\n const currentEndIncl = addMs(currentEnd, -1);\n const currentFirstYear = dateEnv.getYear(currentStart);\n const currentFirstMonth = dateEnv.getMonth(currentStart);\n const currentLastYear = dateEnv.getYear(currentEndIncl);\n const currentLastMonth = dateEnv.getMonth(currentEndIncl);\n // spans more than one month?\n return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) &&\n Boolean(\n // first date in current view?\n date.valueOf() === currentStart.valueOf() ||\n // a month-start that's within the current range?\n (dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));\n}\n\nfunction generateSegKey(seg) {\n return seg.eventRange.instance.instanceId + ':' + seg.firstCol;\n}\nfunction generateSegUid(seg) {\n return generateSegKey(seg) + ':' + seg.lastCol;\n}\nfunction computeFgSegPlacement(segs, // assumed already sorted\ndayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {\n let hierarchy = new DayGridSegHierarchy((segEntry) => {\n // TODO: more DRY with generateSegUid\n let segUid = segs[segEntry.index].eventRange.instance.instanceId +\n ':' + segEntry.span.start +\n ':' + (segEntry.span.end - 1);\n // if no thickness known, assume 1 (if 0, so small it always fits)\n return segHeights[segUid] || 1;\n });\n hierarchy.allowReslicing = true;\n hierarchy.strictOrder = strictOrder;\n if (dayMaxEvents === true || dayMaxEventRows === true) {\n hierarchy.maxCoord = maxContentHeight;\n hierarchy.hiddenConsumes = true;\n }\n else if (typeof dayMaxEvents === 'number') {\n hierarchy.maxStackCnt = dayMaxEvents;\n }\n else if (typeof dayMaxEventRows === 'number') {\n hierarchy.maxStackCnt = dayMaxEventRows;\n hierarchy.hiddenConsumes = true;\n }\n // create segInputs only for segs with known heights\n let segInputs = [];\n let unknownHeightSegs = [];\n for (let i = 0; i < segs.length; i += 1) {\n let seg = segs[i];\n let segUid = generateSegUid(seg);\n let eventHeight = segHeights[segUid];\n if (eventHeight != null) {\n segInputs.push({\n index: i,\n span: {\n start: seg.firstCol,\n end: seg.lastCol + 1,\n },\n });\n }\n else {\n unknownHeightSegs.push(seg);\n }\n }\n let hiddenEntries = hierarchy.addSegs(segInputs);\n let segRects = hierarchy.toRects();\n let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);\n let moreCnts = [];\n let moreMarginTops = [];\n // add segs with unknown heights\n for (let seg of unknownHeightSegs) {\n multiColPlacements[seg.firstCol].push({\n seg,\n isVisible: false,\n isAbsolute: true,\n absoluteTop: 0,\n marginTop: 0,\n });\n for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {\n singleColPlacements[col].push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: false,\n isAbsolute: false,\n absoluteTop: 0,\n marginTop: 0,\n });\n }\n }\n // add the hidden entries\n for (let col = 0; col < cells.length; col += 1) {\n moreCnts.push(0);\n }\n for (let hiddenEntry of hiddenEntries) {\n let seg = segs[hiddenEntry.index];\n let hiddenSpan = hiddenEntry.span;\n multiColPlacements[hiddenSpan.start].push({\n seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),\n isVisible: false,\n isAbsolute: true,\n absoluteTop: 0,\n marginTop: 0,\n });\n for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {\n moreCnts[col] += 1;\n singleColPlacements[col].push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: false,\n isAbsolute: false,\n absoluteTop: 0,\n marginTop: 0,\n });\n }\n }\n // deal with leftover margins\n for (let col = 0; col < cells.length; col += 1) {\n moreMarginTops.push(leftoverMargins[col]);\n }\n return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };\n}\n// rects ordered by top coord, then left\nfunction placeRects(allRects, segs, cells) {\n let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);\n let singleColPlacements = [];\n let multiColPlacements = [];\n let leftoverMargins = [];\n for (let col = 0; col < cells.length; col += 1) {\n let rects = rectsByEachCol[col];\n // compute all static segs in singlePlacements\n let singlePlacements = [];\n let currentHeight = 0;\n let currentMarginTop = 0;\n for (let rect of rects) {\n let seg = segs[rect.index];\n singlePlacements.push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: true,\n isAbsolute: false,\n absoluteTop: rect.levelCoord,\n marginTop: rect.levelCoord - currentHeight,\n });\n currentHeight = rect.levelCoord + rect.thickness;\n }\n // compute mixed static/absolute segs in multiPlacements\n let multiPlacements = [];\n currentHeight = 0;\n currentMarginTop = 0;\n for (let rect of rects) {\n let seg = segs[rect.index];\n let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?\n let isFirstCol = rect.span.start === col;\n currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg\n currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg\n if (isAbsolute) {\n currentMarginTop += rect.thickness;\n if (isFirstCol) {\n multiPlacements.push({\n seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n isVisible: true,\n isAbsolute: true,\n absoluteTop: rect.levelCoord,\n marginTop: 0,\n });\n }\n }\n else if (isFirstCol) {\n multiPlacements.push({\n seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n isVisible: true,\n isAbsolute: false,\n absoluteTop: rect.levelCoord,\n marginTop: currentMarginTop, // claim the margin\n });\n currentMarginTop = 0;\n }\n }\n singleColPlacements.push(singlePlacements);\n multiColPlacements.push(multiPlacements);\n leftoverMargins.push(currentMarginTop);\n }\n return { singleColPlacements, multiColPlacements, leftoverMargins };\n}\nfunction groupRectsByEachCol(rects, colCnt) {\n let rectsByEachCol = [];\n for (let col = 0; col < colCnt; col += 1) {\n rectsByEachCol.push([]);\n }\n for (let rect of rects) {\n for (let col = rect.span.start; col < rect.span.end; col += 1) {\n rectsByEachCol[col].push(rect);\n }\n }\n return rectsByEachCol;\n}\nfunction resliceSeg(seg, spanStart, spanEnd, cells) {\n if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {\n return seg;\n }\n let eventRange = seg.eventRange;\n let origRange = eventRange.range;\n let slicedRange = intersectRanges(origRange, {\n start: cells[spanStart].date,\n end: addDays(cells[spanEnd - 1].date, 1),\n });\n return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {\n def: eventRange.def,\n ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),\n instance: eventRange.instance,\n range: slicedRange,\n }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });\n}\nclass DayGridSegHierarchy extends SegHierarchy {\n constructor() {\n super(...arguments);\n // config\n this.hiddenConsumes = false;\n // allows us to keep hidden entries in the hierarchy so they take up space\n this.forceHidden = {};\n }\n addSegs(segInputs) {\n const hiddenSegs = super.addSegs(segInputs);\n const { entriesByLevel } = this;\n const excludeHidden = (entry) => !this.forceHidden[buildEntryKey(entry)];\n // remove the forced-hidden segs\n for (let level = 0; level < entriesByLevel.length; level += 1) {\n entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);\n }\n return hiddenSegs;\n }\n handleInvalidInsertion(insertion, entry, hiddenEntries) {\n const { entriesByLevel, forceHidden } = this;\n const { touchingEntry, touchingLevel, touchingLateral } = insertion;\n // the entry that the new insertion is touching must be hidden\n if (this.hiddenConsumes && touchingEntry) {\n const touchingEntryId = buildEntryKey(touchingEntry);\n if (!forceHidden[touchingEntryId]) {\n if (this.allowReslicing) {\n // split up the touchingEntry, reinsert it\n const hiddenEntry = Object.assign(Object.assign({}, touchingEntry), { span: intersectSpans(touchingEntry.span, entry.span) });\n // reinsert the area that turned into a \"more\" link (so no other entries try to\n // occupy the space) but mark it forced-hidden\n const hiddenEntryId = buildEntryKey(hiddenEntry);\n forceHidden[hiddenEntryId] = true;\n entriesByLevel[touchingLevel][touchingLateral] = hiddenEntry;\n hiddenEntries.push(hiddenEntry);\n this.splitEntry(touchingEntry, entry, hiddenEntries);\n }\n else {\n forceHidden[touchingEntryId] = true;\n hiddenEntries.push(touchingEntry);\n }\n }\n }\n // will try to reslice...\n super.handleInvalidInsertion(insertion, entry, hiddenEntries);\n }\n}\n\nclass TableRow extends DateComponent {\n constructor() {\n super(...arguments);\n this.cellElRefs = new RefMap(); // the <td>\n this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame\n this.fgElRefs = new RefMap(); // the fc-daygrid-day-events\n this.segHarnessRefs = new RefMap(); // indexed by \"instanceId:firstCol\"\n this.rootElRef = createRef();\n this.state = {\n framePositions: null,\n maxContentHeight: null,\n segHeights: {},\n };\n this.handleResize = (isForced) => {\n if (isForced) {\n this.updateSizing(true); // isExternal=true\n }\n };\n }\n render() {\n let { props, state, context } = this;\n let { options } = context;\n let colCnt = props.cells.length;\n let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);\n let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);\n let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);\n let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);\n let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);\n let isForcedInvisible = // TODO: messy way to compute this\n (props.eventDrag && props.eventDrag.affectedInstances) ||\n (props.eventResize && props.eventResize.affectedInstances) ||\n {};\n return (createElement(\"tr\", { ref: this.rootElRef, role: \"row\" },\n props.renderIntro && props.renderIntro(),\n props.cells.map((cell, col) => {\n let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);\n let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);\n return (createElement(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys\n createElement(Fragment, null,\n createElement(Fragment, null, normalFgNodes),\n createElement(Fragment, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys\n createElement(Fragment, null,\n this.renderFillSegs(highlightSegsByCol[col], 'highlight'),\n this.renderFillSegs(businessHoursByCol[col], 'non-business'),\n this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))), minHeight: props.cellMinHeight }));\n })));\n }\n componentDidMount() {\n this.updateSizing(true);\n this.context.addResizeHandler(this.handleResize);\n }\n componentDidUpdate(prevProps, prevState) {\n let currentProps = this.props;\n this.updateSizing(!isPropsEqual(prevProps, currentProps));\n }\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleResize);\n }\n getHighlightSegs() {\n let { props } = this;\n if (props.eventDrag && props.eventDrag.segs.length) { // messy check\n return props.eventDrag.segs;\n }\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs;\n }\n return props.dateSelectionSegs;\n }\n getMirrorSegs() {\n let { props } = this;\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs;\n }\n return [];\n }\n renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {\n let { context } = this;\n let { eventSelection } = this.props;\n let { framePositions } = this.state;\n let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1\n let isMirror = isDragging || isResizing || isDateSelecting;\n let nodes = [];\n if (framePositions) {\n for (let placement of segPlacements) {\n let { seg } = placement;\n let { instanceId } = seg.eventRange.instance;\n let isVisible = placement.isVisible && !isForcedInvisible[instanceId];\n let isAbsolute = placement.isAbsolute;\n let left = '';\n let right = '';\n if (isAbsolute) {\n if (context.isRtl) {\n right = 0;\n left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol];\n }\n else {\n left = 0;\n right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol];\n }\n }\n /*\n known bug: events that are force to be list-item but span multiple days still take up space in later columns\n todo: in print view, for multi-day events, don't display title within non-start/end segs\n */\n nodes.push(createElement(\"div\", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: generateSegKey(seg), ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid(seg)), style: {\n visibility: isVisible ? '' : 'hidden',\n marginTop: isAbsolute ? '' : placement.marginTop,\n top: isAbsolute ? placement.absoluteTop : '',\n left,\n right,\n } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));\n }\n }\n return nodes;\n }\n renderFillSegs(segs, fillType) {\n let { isRtl } = this.context;\n let { todayRange } = this.props;\n let { framePositions } = this.state;\n let nodes = [];\n if (framePositions) {\n for (let seg of segs) {\n let leftRightCss = isRtl ? {\n right: 0,\n left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],\n } : {\n left: 0,\n right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],\n };\n nodes.push(createElement(\"div\", { key: buildEventRangeKey(seg.eventRange), className: \"fc-daygrid-bg-harness\", style: leftRightCss }, fillType === 'bg-event' ?\n createElement(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, todayRange))) :\n renderFill(fillType)));\n }\n }\n return createElement(Fragment, {}, ...nodes);\n }\n updateSizing(isExternalSizingChange) {\n let { props, state, frameElRefs } = this;\n if (!props.forPrint &&\n props.clientWidth !== null // positioning ready?\n ) {\n if (isExternalSizingChange) {\n let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);\n if (frameEls.length) {\n let originEl = this.rootElRef.current;\n let newPositionCache = new PositionCache(originEl, frameEls, true, // isHorizontal\n false);\n if (!state.framePositions || !state.framePositions.similarTo(newPositionCache)) {\n this.setState({\n framePositions: new PositionCache(originEl, frameEls, true, // isHorizontal\n false),\n });\n }\n }\n }\n const oldSegHeights = this.state.segHeights;\n const newSegHeights = this.querySegHeights();\n const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;\n this.safeSetState({\n // HACK to prevent oscillations of events being shown/hidden from max-event-rows\n // Essentially, once you compute an element's height, never null-out.\n // TODO: always display all events, as visibility:hidden?\n segHeights: Object.assign(Object.assign({}, oldSegHeights), newSegHeights),\n maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,\n });\n }\n }\n querySegHeights() {\n let segElMap = this.segHarnessRefs.currentMap;\n let segHeights = {};\n // get the max height amongst instance segs\n for (let segUid in segElMap) {\n let height = Math.round(segElMap[segUid].getBoundingClientRect().height);\n segHeights[segUid] = Math.max(segHeights[segUid] || 0, height);\n }\n return segHeights;\n }\n computeMaxContentHeight() {\n let firstKey = this.props.cells[0].key;\n let cellEl = this.cellElRefs.currentMap[firstKey];\n let fcContainerEl = this.fgElRefs.currentMap[firstKey];\n return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;\n }\n getCellEls() {\n let elMap = this.cellElRefs.currentMap;\n return this.props.cells.map((cell) => elMap[cell.key]);\n }\n}\nTableRow.addStateEquality({\n segHeights: isPropsEqual,\n});\nfunction buildMirrorPlacements(mirrorSegs, colPlacements) {\n if (!mirrorSegs.length) {\n return [];\n }\n let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?\n return mirrorSegs.map((seg) => ({\n seg,\n isVisible: true,\n isAbsolute: true,\n absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],\n marginTop: 0,\n }));\n}\nfunction buildAbsoluteTopHash(colPlacements) {\n let topsByInstanceId = {};\n for (let placements of colPlacements) {\n for (let placement of placements) {\n topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;\n }\n }\n return topsByInstanceId;\n}\n\nclass TableRows extends DateComponent {\n constructor() {\n super(...arguments);\n this.splitBusinessHourSegs = memoize(splitSegsByRow);\n this.splitBgEventSegs = memoize(splitSegsByRow);\n this.splitFgEventSegs = memoize(splitSegsByRow);\n this.splitDateSelectionSegs = memoize(splitSegsByRow);\n this.splitEventDrag = memoize(splitInteractionByRow);\n this.splitEventResize = memoize(splitInteractionByRow);\n this.rowRefs = new RefMap();\n }\n render() {\n let { props, context } = this;\n let rowCnt = props.cells.length;\n let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);\n let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);\n let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);\n let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);\n let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);\n let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);\n // for DayGrid view with many rows, force a min-height on cells so doesn't appear squished\n // choose 7 because a month view will have max 6 rows\n let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?\n props.clientWidth / context.options.aspectRatio / 6 :\n null;\n return (createElement(NowTimer, { unit: \"day\" }, (nowDate, todayRange) => (createElement(Fragment, null, props.cells.map((cells, row) => (createElement(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length\n ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */\n : row // in case there are no cells (like when resource view is loading)\n , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));\n }\n componentDidMount() {\n this.registerInteractiveComponent();\n }\n componentDidUpdate() {\n // for if started with zero cells\n this.registerInteractiveComponent();\n }\n registerInteractiveComponent() {\n if (!this.rootEl) {\n // HACK: need a daygrid wrapper parent to do positioning\n // NOTE: a daygrid resource view w/o resources can have zero cells\n const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];\n const rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;\n if (rootEl) {\n this.rootEl = rootEl;\n this.context.registerInteractiveComponent(this, {\n el: rootEl,\n isHitComboAllowed: this.props.isHitComboAllowed,\n });\n }\n }\n }\n componentWillUnmount() {\n if (this.rootEl) {\n this.context.unregisterInteractiveComponent(this);\n this.rootEl = null;\n }\n }\n // Hit System\n // ----------------------------------------------------------------------------------------------------\n prepareHits() {\n this.rowPositions = new PositionCache(this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal\n false, true);\n this.colPositions = new PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row\n true, // horizontal\n false);\n }\n queryHit(positionLeft, positionTop) {\n let { colPositions, rowPositions } = this;\n let col = colPositions.leftToIndex(positionLeft);\n let row = rowPositions.topToIndex(positionTop);\n if (row != null && col != null) {\n let cell = this.props.cells[row][col];\n return {\n dateProfile: this.props.dateProfile,\n dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),\n dayEl: this.getCellEl(row, col),\n rect: {\n left: colPositions.lefts[col],\n right: colPositions.rights[col],\n top: rowPositions.tops[row],\n bottom: rowPositions.bottoms[row],\n },\n layer: 0,\n };\n }\n return null;\n }\n getCellEl(row, col) {\n return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal\n }\n getCellRange(row, col) {\n let start = this.props.cells[row][col].date;\n let end = addDays(start, 1);\n return { start, end };\n }\n}\nfunction isSegAllDay(seg) {\n return seg.eventRange.def.allDay;\n}\n\nclass Table extends DateComponent {\n constructor() {\n super(...arguments);\n this.elRef = createRef();\n this.needsScrollReset = false;\n }\n render() {\n let { props } = this;\n let { dayMaxEventRows, dayMaxEvents, expandRows } = props;\n let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;\n // if rows can't expand to fill fixed height, can't do balanced-height event limit\n // TODO: best place to normalize these options?\n if (limitViaBalanced && !expandRows) {\n limitViaBalanced = false;\n dayMaxEventRows = null;\n dayMaxEvents = null;\n }\n let classNames = [\n 'fc-daygrid-body',\n limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',\n expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?\n ];\n return (createElement(\"div\", { ref: this.elRef, className: classNames.join(' '), style: {\n // these props are important to give this wrapper correct dimensions for interactions\n // TODO: if we set it here, can we avoid giving to inner tables?\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n } },\n createElement(\"table\", { role: \"presentation\", className: \"fc-scrollgrid-sync-table\", style: {\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n height: expandRows ? props.clientHeight : '',\n } },\n props.colGroupNode,\n createElement(\"tbody\", { role: \"presentation\" },\n createElement(TableRows, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));\n }\n componentDidMount() {\n this.requestScrollReset();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.dateProfile !== this.props.dateProfile) {\n this.requestScrollReset();\n }\n else {\n this.flushScrollReset();\n }\n }\n requestScrollReset() {\n this.needsScrollReset = true;\n this.flushScrollReset();\n }\n flushScrollReset() {\n if (this.needsScrollReset &&\n this.props.clientWidth // sizes computed?\n ) {\n const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);\n if (subjectEl) {\n const originEl = subjectEl.closest('.fc-daygrid-body');\n const scrollEl = originEl.closest('.fc-scroller');\n const scrollTop = subjectEl.getBoundingClientRect().top -\n originEl.getBoundingClientRect().top;\n scrollEl.scrollTop = scrollTop ? (scrollTop + 1) : 0; // overcome border\n }\n this.needsScrollReset = false;\n }\n }\n}\nfunction getScrollSubjectEl(containerEl, dateProfile) {\n let el;\n if (dateProfile.currentRangeUnit.match(/year|month/)) {\n el = containerEl.querySelector(`[data-date=\"${formatIsoMonthStr(dateProfile.currentDate)}-01\"]`);\n // even if view is month-based, first-of-month might be hidden...\n }\n if (!el) {\n el = containerEl.querySelector(`[data-date=\"${formatDayString(dateProfile.currentDate)}\"]`);\n // could still be hidden if an interior-view hidden day\n }\n return el;\n}\n\nclass DayTableSlicer extends Slicer {\n constructor() {\n super(...arguments);\n this.forceDayIfListItem = true;\n }\n sliceRange(dateRange, dayTableModel) {\n return dayTableModel.sliceRange(dateRange);\n }\n}\n\nclass DayTable extends DateComponent {\n constructor() {\n super(...arguments);\n this.slicer = new DayTableSlicer();\n this.tableRef = createRef();\n }\n render() {\n let { props, context } = this;\n return (createElement(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));\n }\n}\n\nclass DayTableView extends TableView {\n constructor() {\n super(...arguments);\n this.buildDayTableModel = memoize(buildDayTableModel);\n this.headerRef = createRef();\n this.tableRef = createRef();\n // can't override any lifecycle methods from parent\n }\n render() {\n let { options, dateProfileGenerator } = this.context;\n let { props } = this;\n let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);\n let headerContent = options.dayHeaders && (createElement(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));\n let bodyContent = (contentArg) => (createElement(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));\n return options.dayMinWidth\n ? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)\n : this.renderSimpleLayout(headerContent, bodyContent);\n }\n}\nfunction buildDayTableModel(dateProfile, dateProfileGenerator) {\n let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);\n return new DayTableModel(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));\n}\n\nclass TableDateProfileGenerator extends DateProfileGenerator {\n // Computes the date range that will be rendered\n buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {\n let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);\n let { props } = this;\n return buildDayTableRenderRange({\n currentRange: renderRange,\n snapToWeek: /^(year|month)$/.test(currentRangeUnit),\n fixedWeekCount: props.fixedWeekCount,\n dateEnv: props.dateEnv,\n });\n }\n}\nfunction buildDayTableRenderRange(props) {\n let { dateEnv, currentRange } = props;\n let { start, end } = currentRange;\n let endOfWeek;\n // year and month views should be aligned with weeks. this is already done for week\n if (props.snapToWeek) {\n start = dateEnv.startOfWeek(start);\n // make end-of-week if not already\n endOfWeek = dateEnv.startOfWeek(end);\n if (endOfWeek.valueOf() !== end.valueOf()) {\n end = addWeeks(endOfWeek, 1);\n }\n }\n // ensure 6 weeks\n if (props.fixedWeekCount) {\n // TODO: instead of these date-math gymnastics (for multimonth view),\n // compute dateprofiles of all months, then use start of first and end of last.\n let lastMonthRenderStart = dateEnv.startOfWeek(dateEnv.startOfMonth(addDays(currentRange.end, -1)));\n let rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\n diffWeeks(lastMonthRenderStart, end));\n end = addWeeks(end, 6 - rowCnt);\n }\n return { start, end };\n}\n\nvar css_248z = \":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\\\"\\\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\\\"\\\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}\";\ninjectStyles(css_248z);\n\nexport { DayTableView as DayGridView, DayTable, DayTableSlicer, Table, TableDateProfileGenerator, TableRows, TableView, buildDayTableModel, buildDayTableRenderRange };\n"],"names":["TableView","DateComponent","constructor","super","arguments","this","headerElRef","createRef","renderSimpleLayout","headerRowContent","bodyContent","props","context","sections","stickyHeaderDates","getStickyHeaderDates","options","push","type","key","isSticky","chunk","elRef","tableClassName","rowContent","liquid","content","createElement","ViewContainer","elClasses","viewSpec","SimpleScrollGrid","isHeightAuto","forPrint","collapsibleWidth","cols","renderHScrollLayout","colCnt","dayMinWidth","ScrollGrid","pluginHooks","scrollGridImpl","Error","stickyFooterScrollbar","getStickyFooterScrollbar","chunks","renderScrollShim","colGroups","span","minWidth","splitSegsByRow","segs","rowCnt","byRow","i","seg","row","splitSegsByFirstCol","byCol","firstCol","splitInteractionByRow","ui","affectedInstances","isEvent","DEFAULT_TABLE_EVENT_TIME_FORMAT","createFormatter","hour","minute","omitZeroMinute","meridiem","hasListItemDisplay","display","eventRange","def","allDay","lastCol","isStart","isEnd","TableBlockEvent","BaseComponent","render","StandardEvent","Object","assign","defaultTimeFormat","defaultDisplayEventEnd","disableResizing","TableListItemEvent","timeFormat","eventTimeFormat","timeText","buildSegTimeText","EventContainer","elTag","elAttrs","getSegAnchorAttrs","defaultGenerator","renderInnerContent","isResizing","isDateSelecting","renderProps","Fragment","className","style","borderColor","backgroundColor","event","title","TableCellMoreLink","compileSegs","memoize","allSegs","invisibleSegs","singlePlacements","MoreLinkContainer","dateProfile","todayRange","allDayDate","moreCnt","hiddenSegs","alignmentElRef","alignGridTop","extraDateSpan","popoverContent","isForcedInvisible","eventDrag","eventResize","map","instanceId","instance","visibility","isDragging","isSelected","eventSelection","getSegMeta","placement","isVisible","DEFAULT_WEEK_NUM_FORMAT","week","TableCell","rootElRef","state","dayNumberId","getUniqueDomId","handleRootEl","el","setRef","dateEnv","date","isMonthStart","showDayNumber","currentRange","start","currentStart","end","currentEnd","currentEndIncl","addMs","currentFirstYear","getYear","currentFirstMonth","getMonth","currentLastYear","currentLastMonth","Boolean","valueOf","getDay","shouldDisplayMonthStart","DayCellContainer","extraClassNames","extraDataAttrs","role","renderTopInner","extraRenderProps","InnerContent","ref","innerElRef","minHeight","showWeekNumber","WeekNumberContainer","buildNavLinkAttrs","defaultFormat","isDisabled","hasCustomDayCellContent","forceDayTop","id","undefined","fgContentElRef","fgContent","marginTop","moreMarginTop","bgContent","dayNumberText","generateSegKey","generateSegUid","computeFgSegPlacement","dayMaxEvents","dayMaxEventRows","strictOrder","segHeights","maxContentHeight","cells","hierarchy","DayGridSegHierarchy","segEntry","segUid","index","allowReslicing","maxCoord","hiddenConsumes","maxStackCnt","segInputs","unknownHeightSegs","length","hiddenEntries","addSegs","segRects","toRects","singleColPlacements","multiColPlacements","leftoverMargins","allRects","rectsByEachCol","rects","col","rect","groupRectsByEachCol","currentHeight","currentMarginTop","resliceSeg","isAbsolute","absoluteTop","levelCoord","thickness","multiPlacements","isFirstCol","placeRects","moreCnts","moreMarginTops","hiddenEntry","hiddenSpan","spanStart","spanEnd","origRange","range","slicedRange","intersectRanges","addDays","durationEditable","SegHierarchy","forceHidden","entriesByLevel","excludeHidden","entry","buildEntryKey","level","filter","handleInvalidInsertion","insertion","touchingEntry","touchingLevel","touchingLateral","touchingEntryId","intersectSpans","splitEntry","TableRow","cellElRefs","RefMap","frameElRefs","fgElRefs","segHarnessRefs","framePositions","handleResize","isForced","updateSizing","businessHoursByCol","businessHourSegs","bgEventSegsByCol","bgEventSegs","highlightSegsByCol","getHighlightSegs","mirrorSegsByCol","getMirrorSegs","sortEventSegs","fgEventSegs","eventOrder","eventOrderStrict","renderIntro","cell","normalFgNodes","renderFgSegs","mirrorFgNodes","mirrorSegs","colPlacements","topsByInstanceId","placements","buildAbsoluteTopHash","buildMirrorPlacements","showDayNumbers","showWeekNumbers","renderFillSegs","cellMinHeight","componentDidMount","addResizeHandler","componentDidUpdate","prevProps","prevState","currentProps","isPropsEqual","componentWillUnmount","removeResizeHandler","dateSelectionSegs","segPlacements","isMirror","nodes","left","right","isRtl","lefts","rights","top","fillType","leftRightCss","buildEventRangeKey","BgEvent","renderFill","isExternalSizingChange","clientWidth","frameEls","currentMap","originEl","current","newPositionCache","PositionCache","similarTo","setState","oldSegHeights","newSegHeights","querySegHeights","limitByContentHeight","safeSetState","computeMaxContentHeight","segElMap","height","Math","round","getBoundingClientRect","max","firstKey","cellEl","fcContainerEl","bottom","getCellEls","elMap","addStateEquality","TableRows","splitBusinessHourSegs","splitBgEventSegs","splitFgEventSegs","splitDateSelectionSegs","splitEventDrag","splitEventResize","rowRefs","businessHourSegsByRow","bgEventSegsByRow","fgEventSegsByRow","dateSelectionSegsByRow","eventDragByRow","eventResizeByRow","aspectRatio","NowTimer","unit","nowDate","toISOString","renderRowIntro","isSegAllDay","clientHeight","registerInteractiveComponent","rootEl","firstCellEl","closest","isHitComboAllowed","unregisterInteractiveComponent","prepareHits","rowPositions","collect","rowObj","colPositions","queryHit","positionLeft","positionTop","leftToIndex","topToIndex","dateSpan","getCellRange","dayEl","getCellEl","tops","bottoms","layer","Table","needsScrollReset","expandRows","limitViaBalanced","classNames","join","width","tableMinWidth","colGroupNode","requestScrollReset","flushScrollReset","subjectEl","containerEl","currentRangeUnit","match","querySelector","formatIsoMonthStr","currentDate","formatDayString","getScrollSubjectEl","scrollEl","scrollTop","DayTableSlicer","Slicer","forceDayIfListItem","sliceRange","dateRange","dayTableModel","DayTable","slicer","tableRef","sliceProps","nextDayThreshold","headerAlignElRef","DayTableView","buildDayTableModel","headerRef","dateProfileGenerator","headerContent","dayHeaders","DayHeader","dates","headerDates","datesRepDistinctDays","contentArg","businessHours","dateSelection","eventStore","eventUiBases","tableColGroupNode","weekNumbers","daySeries","DaySeriesModel","renderRange","DayTableModel","test","TableDateProfileGenerator","DateProfileGenerator","buildRenderRange","isRangeAllDay","buildDayTableRenderRange","snapToWeek","fixedWeekCount","endOfWeek","startOfWeek","addWeeks","lastMonthRenderStart","startOfMonth","ceil","diffWeeks","injectStyles"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{createPlugin as t}from"../core/index.js";import{e,bG as i,bF as s,ap as n,ar as r,aq as o,as as l,X as a,bE as h,bY as c,au as d,av as g,cr as u,Y as p,aT as v,Z as E,_ as m,bV as S,bX as D,H as f,w,a5 as y,q as b,ay as T,d as M,aP as R,n as C,aU as j,bH as x,aO as P,aj as I,ai as L,cs as A,ah as H,F as N,aN as Y,b0 as X,aM as V,b4 as U,aE as _,aC as O,aF as q,aG as W,a as F,b7 as G,bd as k,at as z,ba as B,b1 as Z,bb as Q,b3 as J,aD as K,b9 as $}from"../core/internal-common.js";i.touchMouseIgnoreWait=500;let tt=0,et=0,it=!1;class st{constructor(t){this.subjectEl=null,this.selector="",this.handleSelector="",this.shouldIgnoreMove=!1,this.shouldWatchScroll=!0,this.isDragging=!1,this.isTouchDragging=!1,this.wasTouchScroll=!1,this.handleMouseDown=t=>{if(!this.shouldIgnoreMouse()&&function(t){return 0===t.button&&!t.ctrlKey}(t)&&this.tryStart(t)){let e=this.createEventFromMouse(t,!0);this.emitter.trigger("pointerdown",e),this.initScrollWatch(e),this.shouldIgnoreMove||document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp)}},this.handleMouseMove=t=>{let e=this.createEventFromMouse(t);this.recordCoords(e),this.emitter.trigger("pointermove",e)},this.handleMouseUp=t=>{document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),this.emitter.trigger("pointerup",this.createEventFromMouse(t)),this.cleanup()},this.handleTouchStart=t=>{if(this.tryStart(t)){this.isTouchDragging=!0;let e=this.createEventFromTouch(t,!0);this.emitter.trigger("pointerdown",e),this.initScrollWatch(e);let i=t.target;this.shouldIgnoreMove||i.addEventListener("touchmove",this.handleTouchMove),i.addEventListener("touchend",this.handleTouchEnd),i.addEventListener("touchcancel",this.handleTouchEnd),window.addEventListener("scroll",this.handleTouchScroll,!0)}},this.handleTouchMove=t=>{let e=this.createEventFromTouch(t);this.recordCoords(e),this.emitter.trigger("pointermove",e)},this.handleTouchEnd=t=>{if(this.isDragging){let e=t.target;e.removeEventListener("touchmove",this.handleTouchMove),e.removeEventListener("touchend",this.handleTouchEnd),e.removeEventListener("touchcancel",this.handleTouchEnd),window.removeEventListener("scroll",this.handleTouchScroll,!0),this.emitter.trigger("pointerup",this.createEventFromTouch(t)),this.cleanup(),this.isTouchDragging=!1,tt+=1,setTimeout((()=>{tt-=1}),i.touchMouseIgnoreWait)}},this.handleTouchScroll=()=>{this.wasTouchScroll=!0},this.handleScroll=t=>{if(!this.shouldIgnoreMove){let e=window.scrollX-this.prevScrollX+this.prevPageX,i=window.scrollY-this.prevScrollY+this.prevPageY;this.emitter.trigger("pointermove",{origEvent:t,isTouch:this.isTouchDragging,subjectEl:this.subjectEl,pageX:e,pageY:i,deltaX:e-this.origPageX,deltaY:i-this.origPageY})}},this.containerEl=t,this.emitter=new N,t.addEventListener("mousedown",this.handleMouseDown),t.addEventListener("touchstart",this.handleTouchStart,{passive:!0}),et+=1,1===et&&window.addEventListener("touchmove",nt,{passive:!1})}destroy(){this.containerEl.removeEventListener("mousedown",this.handleMouseDown),this.containerEl.removeEventListener("touchstart",this.handleTouchStart,{passive:!0}),et-=1,et||window.removeEventListener("touchmove",nt,{passive:!1})}tryStart(t){let e=this.querySubjectEl(t),i=t.target;return!(!e||this.handleSelector&&!E(i,this.handleSelector))&&(this.subjectEl=e,this.isDragging=!0,this.wasTouchScroll=!1,!0)}cleanup(){it=!1,this.isDragging=!1,this.subjectEl=null,this.destroyScrollWatch()}querySubjectEl(t){return this.selector?E(t.target,this.selector):this.containerEl}shouldIgnoreMouse(){return tt||this.isTouchDragging}cancelTouchScroll(){this.isDragging&&(it=!0)}initScrollWatch(t){this.shouldWatchScroll&&(this.recordCoords(t),window.addEventListener("scroll",this.handleScroll,!0))}recordCoords(t){this.shouldWatchScroll&&(this.prevPageX=t.pageX,this.prevPageY=t.pageY,this.prevScrollX=window.scrollX,this.prevScrollY=window.scrollY)}destroyScrollWatch(){this.shouldWatchScroll&&window.removeEventListener("scroll",this.handleScroll,!0)}createEventFromMouse(t,e){let i=0,s=0;return e?(this.origPageX=t.pageX,this.origPageY=t.pageY):(i=t.pageX-this.origPageX,s=t.pageY-this.origPageY),{origEvent:t,isTouch:!1,subjectEl:this.subjectEl,pageX:t.pageX,pageY:t.pageY,deltaX:i,deltaY:s}}createEventFromTouch(t,e){let i,s,n=t.touches,r=0,o=0;return n&&n.length?(i=n[0].pageX,s=n[0].pageY):(i=t.pageX,s=t.pageY),e?(this.origPageX=i,this.origPageY=s):(r=i-this.origPageX,o=s-this.origPageY),{origEvent:t,isTouch:!0,subjectEl:this.subjectEl,pageX:i,pageY:s,deltaX:r,deltaY:o}}}function nt(t){it&&t.preventDefault()}class rt{constructor(){this.isVisible=!1,this.sourceEl=null,this.mirrorEl=null,this.sourceElRect=null,this.parentNode=document.body,this.zIndex=9999,this.revertDuration=0}start(t,e,i){this.sourceEl=t,this.sourceElRect=this.sourceEl.getBoundingClientRect(),this.origScreenX=e-window.scrollX,this.origScreenY=i-window.scrollY,this.deltaX=0,this.deltaY=0,this.updateElPosition()}handleMove(t,e){this.deltaX=t-window.scrollX-this.origScreenX,this.deltaY=e-window.scrollY-this.origScreenY,this.updateElPosition()}setIsVisible(t){t?this.isVisible||(this.mirrorEl&&(this.mirrorEl.style.display=""),this.isVisible=t,this.updateElPosition()):this.isVisible&&(this.mirrorEl&&(this.mirrorEl.style.display="none"),this.isVisible=t)}stop(t,e){let i=()=>{this.cleanup(),e()};t&&this.mirrorEl&&this.isVisible&&this.revertDuration&&(this.deltaX||this.deltaY)?this.doRevertAnimation(i,this.revertDuration):setTimeout(i,0)}doRevertAnimation(t,e){let i=this.mirrorEl,s=this.sourceEl.getBoundingClientRect();i.style.transition="top "+e+"ms,left "+e+"ms",Y(i,{left:s.left,top:s.top}),X(i,(()=>{i.style.transition="",t()}))}cleanup(){this.mirrorEl&&(V(this.mirrorEl),this.mirrorEl=null),this.sourceEl=null}updateElPosition(){this.sourceEl&&this.isVisible&&Y(this.getMirrorEl(),{left:this.sourceElRect.left+this.deltaX,top:this.sourceElRect.top+this.deltaY})}getMirrorEl(){let t=this.sourceElRect,e=this.mirrorEl;return e||(e=this.mirrorEl=this.sourceEl.cloneNode(!0),e.style.userSelect="none",e.style.webkitUserSelect="none",e.style.pointerEvents="none",e.classList.add("fc-event-dragging"),Y(e,{position:"fixed",zIndex:this.zIndex,visibility:"",boxSizing:"border-box",width:t.right-t.left,height:t.bottom-t.top,right:"auto",bottom:"auto",margin:0}),this.parentNode.appendChild(e)),e}}class ot extends ${constructor(t,e){super(),this.handleScroll=()=>{this.scrollTop=this.scrollController.getScrollTop(),this.scrollLeft=this.scrollController.getScrollLeft(),this.handleScrollChange()},this.scrollController=t,this.doesListening=e,this.scrollTop=this.origScrollTop=t.getScrollTop(),this.scrollLeft=this.origScrollLeft=t.getScrollLeft(),this.scrollWidth=t.getScrollWidth(),this.scrollHeight=t.getScrollHeight(),this.clientWidth=t.getClientWidth(),this.clientHeight=t.getClientHeight(),this.clientRect=this.computeClientRect(),this.doesListening&&this.getEventTarget().addEventListener("scroll",this.handleScroll)}destroy(){this.doesListening&&this.getEventTarget().removeEventListener("scroll",this.handleScroll)}getScrollTop(){return this.scrollTop}getScrollLeft(){return this.scrollLeft}setScrollTop(t){this.scrollController.setScrollTop(t),this.doesListening||(this.scrollTop=Math.max(Math.min(t,this.getMaxScrollTop()),0),this.handleScrollChange())}setScrollLeft(t){this.scrollController.setScrollLeft(t),this.doesListening||(this.scrollLeft=Math.max(Math.min(t,this.getMaxScrollLeft()),0),this.handleScrollChange())}getClientWidth(){return this.clientWidth}getClientHeight(){return this.clientHeight}getScrollWidth(){return this.scrollWidth}getScrollHeight(){return this.scrollHeight}handleScrollChange(){}}class lt extends ot{constructor(t,e){super(new B(t),e)}getEventTarget(){return this.scrollController.el}computeClientRect(){return Z(this.scrollController.el)}}class at extends ot{constructor(t){super(new Q,t)}getEventTarget(){return window}computeClientRect(){return{left:this.scrollLeft,right:this.scrollLeft+this.clientWidth,top:this.scrollTop,bottom:this.scrollTop+this.clientHeight}}handleScrollChange(){this.clientRect=this.computeClientRect()}}const ht="function"==typeof performance?performance.now:Date.now;class ct{constructor(){this.isEnabled=!0,this.scrollQuery=[window,".fc-scroller"],this.edgeThreshold=50,this.maxVelocity=300,this.pointerScreenX=null,this.pointerScreenY=null,this.isAnimating=!1,this.scrollCaches=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.animate=()=>{if(this.isAnimating){let t=this.computeBestEdge(this.pointerScreenX+window.scrollX,this.pointerScreenY+window.scrollY);if(t){let e=ht();this.handleSide(t,(e-this.msSinceRequest)/1e3),this.requestAnimation(e)}else this.isAnimating=!1}}}start(t,e,i){this.isEnabled&&(this.scrollCaches=this.buildCaches(i),this.pointerScreenX=null,this.pointerScreenY=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.handleMove(t,e))}handleMove(t,e){if(this.isEnabled){let i=t-window.scrollX,s=e-window.scrollY,n=null===this.pointerScreenY?0:s-this.pointerScreenY,r=null===this.pointerScreenX?0:i-this.pointerScreenX;n<0?this.everMovedUp=!0:n>0&&(this.everMovedDown=!0),r<0?this.everMovedLeft=!0:r>0&&(this.everMovedRight=!0),this.pointerScreenX=i,this.pointerScreenY=s,this.isAnimating||(this.isAnimating=!0,this.requestAnimation(ht()))}}stop(){if(this.isEnabled){this.isAnimating=!1;for(let t of this.scrollCaches)t.destroy();this.scrollCaches=null}}requestAnimation(t){this.msSinceRequest=t,requestAnimationFrame(this.animate)}handleSide(t,e){let{scrollCache:i}=t,{edgeThreshold:s}=this,n=s-t.distance,r=n*n/(s*s)*this.maxVelocity*e,o=1;switch(t.name){case"left":o=-1;case"right":i.setScrollLeft(i.getScrollLeft()+r*o);break;case"top":o=-1;case"bottom":i.setScrollTop(i.getScrollTop()+r*o)}}computeBestEdge(t,e){let{edgeThreshold:i}=this,s=null,n=this.scrollCaches||[];for(let r of n){let n=r.clientRect,o=t-n.left,l=n.right-t,a=e-n.top,h=n.bottom-e;o>=0&&l>=0&&a>=0&&h>=0&&(a<=i&&this.everMovedUp&&r.canScrollUp()&&(!s||s.distance>a)&&(s={scrollCache:r,name:"top",distance:a}),h<=i&&this.everMovedDown&&r.canScrollDown()&&(!s||s.distance>h)&&(s={scrollCache:r,name:"bottom",distance:h}),o<=i&&this.everMovedLeft&&r.canScrollLeft()&&(!s||s.distance>o)&&(s={scrollCache:r,name:"left",distance:o}),l<=i&&this.everMovedRight&&r.canScrollRight()&&(!s||s.distance>l)&&(s={scrollCache:r,name:"right",distance:l}))}return s}buildCaches(t){return this.queryScrollEls(t).map((t=>t===window?new at(!1):new lt(t,!1)))}queryScrollEls(t){let e=[];for(let i of this.scrollQuery)"object"==typeof i?e.push(i):e.push(...Array.prototype.slice.call(t.getRootNode().querySelectorAll(i)));return e}}class dt extends s{constructor(t,e){super(t),this.containerEl=t,this.delay=null,this.minDistance=0,this.touchScrollAllowed=!0,this.mirrorNeedsRevert=!1,this.isInteracting=!1,this.isDragging=!1,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,this.delayTimeoutId=null,this.onPointerDown=t=>{this.isDragging||(this.isInteracting=!0,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,n(document.body),r(document.body),t.isTouch||t.origEvent.preventDefault(),this.emitter.trigger("pointerdown",t),this.isInteracting&&!this.pointer.shouldIgnoreMove&&(this.mirror.setIsVisible(!1),this.mirror.start(t.subjectEl,t.pageX,t.pageY),this.startDelay(t),this.minDistance||this.handleDistanceSurpassed(t)))},this.onPointerMove=t=>{if(this.isInteracting){if(this.emitter.trigger("pointermove",t),!this.isDistanceSurpassed){let e,i=this.minDistance,{deltaX:s,deltaY:n}=t;e=s*s+n*n,e>=i*i&&this.handleDistanceSurpassed(t)}this.isDragging&&("scroll"!==t.origEvent.type&&(this.mirror.handleMove(t.pageX,t.pageY),this.autoScroller.handleMove(t.pageX,t.pageY)),this.emitter.trigger("dragmove",t))}},this.onPointerUp=t=>{this.isInteracting&&(this.isInteracting=!1,o(document.body),l(document.body),this.emitter.trigger("pointerup",t),this.isDragging&&(this.autoScroller.stop(),this.tryStopDrag(t)),this.delayTimeoutId&&(clearTimeout(this.delayTimeoutId),this.delayTimeoutId=null))};let i=this.pointer=new st(t);i.emitter.on("pointerdown",this.onPointerDown),i.emitter.on("pointermove",this.onPointerMove),i.emitter.on("pointerup",this.onPointerUp),e&&(i.selector=e),this.mirror=new rt,this.autoScroller=new ct}destroy(){this.pointer.destroy(),this.onPointerUp({})}startDelay(t){"number"==typeof this.delay?this.delayTimeoutId=setTimeout((()=>{this.delayTimeoutId=null,this.handleDelayEnd(t)}),this.delay):this.handleDelayEnd(t)}handleDelayEnd(t){this.isDelayEnded=!0,this.tryStartDrag(t)}handleDistanceSurpassed(t){this.isDistanceSurpassed=!0,this.tryStartDrag(t)}tryStartDrag(t){this.isDelayEnded&&this.isDistanceSurpassed&&(this.pointer.wasTouchScroll&&!this.touchScrollAllowed||(this.isDragging=!0,this.mirrorNeedsRevert=!1,this.autoScroller.start(t.pageX,t.pageY,this.containerEl),this.emitter.trigger("dragstart",t),!1===this.touchScrollAllowed&&this.pointer.cancelTouchScroll()))}tryStopDrag(t){this.mirror.stop(this.mirrorNeedsRevert,this.stopDrag.bind(this,t))}stopDrag(t){this.isDragging=!1,this.emitter.trigger("dragend",t)}setIgnoreMove(t){this.pointer.shouldIgnoreMove=t}setMirrorIsVisible(t){this.mirror.setIsVisible(t)}setMirrorNeedsRevert(t){this.mirrorNeedsRevert=t}setAutoScrollEnabled(t){this.autoScroller.isEnabled=t}}class gt{constructor(t){this.el=t,this.origRect=U(t),this.scrollCaches=J(t).map((t=>new lt(t,!0)))}destroy(){for(let t of this.scrollCaches)t.destroy()}computeLeft(){let t=this.origRect.left;for(let e of this.scrollCaches)t+=e.origScrollLeft-e.getScrollLeft();return t}computeTop(){let t=this.origRect.top;for(let e of this.scrollCaches)t+=e.origScrollTop-e.getScrollTop();return t}isWithinClipping(t,e){let i={left:t,top:e};for(let t of this.scrollCaches)if(!ut(t.getEventTarget())&&!K(i,t.clientRect))return!1;return!0}}function ut(t){let e=t.tagName;return"HTML"===e||"BODY"===e}class pt{constructor(t,e){this.useSubjectCenter=!1,this.requireInitial=!0,this.disablePointCheck=!1,this.initialHit=null,this.movingHit=null,this.finalHit=null,this.handlePointerDown=t=>{let{dragging:e}=this;this.initialHit=null,this.movingHit=null,this.finalHit=null,this.prepareHits(),this.processFirstCoord(t),this.initialHit||!this.requireInitial?(e.setIgnoreMove(!1),this.emitter.trigger("pointerdown",t)):e.setIgnoreMove(!0)},this.handleDragStart=t=>{this.emitter.trigger("dragstart",t),this.handleMove(t,!0)},this.handleDragMove=t=>{this.emitter.trigger("dragmove",t),this.handleMove(t)},this.handlePointerUp=t=>{this.releaseHits(),this.emitter.trigger("pointerup",t)},this.handleDragEnd=t=>{this.movingHit&&this.emitter.trigger("hitupdate",null,!0,t),this.finalHit=this.movingHit,this.movingHit=null,this.emitter.trigger("dragend",t)},this.droppableStore=e,t.emitter.on("pointerdown",this.handlePointerDown),t.emitter.on("dragstart",this.handleDragStart),t.emitter.on("dragmove",this.handleDragMove),t.emitter.on("pointerup",this.handlePointerUp),t.emitter.on("dragend",this.handleDragEnd),this.dragging=t,this.emitter=new N}processFirstCoord(t){let e,i={left:t.pageX,top:t.pageY},s=i,n=t.subjectEl;n instanceof HTMLElement&&(e=U(n),s=_(s,e));let r=this.initialHit=this.queryHitForOffset(s.left,s.top);if(r){if(this.useSubjectCenter&&e){let t=O(e,r.rect);t&&(s=q(t))}this.coordAdjust=W(s,i)}else this.coordAdjust={left:0,top:0}}handleMove(t,e){let i=this.queryHitForOffset(t.pageX+this.coordAdjust.left,t.pageY+this.coordAdjust.top);!e&&vt(this.movingHit,i)||(this.movingHit=i,this.emitter.trigger("hitupdate",i,!1,t))}prepareHits(){this.offsetTrackers=F(this.droppableStore,(t=>(t.component.prepareHits(),new gt(t.el))))}releaseHits(){let{offsetTrackers:t}=this;for(let e in t)t[e].destroy();this.offsetTrackers={}}queryHitForOffset(t,e){let{droppableStore:i,offsetTrackers:s}=this,n=null;for(let r in i){let o=i[r].component,l=s[r];if(l&&l.isWithinClipping(t,e)){let i=l.computeLeft(),s=l.computeTop(),a=t-i,h=e-s,{origRect:c}=l,d=c.right-c.left,g=c.bottom-c.top;if(a>=0&&a<d&&h>=0&&h<g){let t=o.queryHit(a,h,d,g);t&&G(t.dateProfile.activeRange,t.dateSpan.range)&&(this.disablePointCheck||l.el.contains(l.el.getRootNode().elementFromPoint(a+i-window.scrollX,h+s-window.scrollY)))&&(!n||t.layer>n.layer)&&(t.componentId=r,t.context=o.context,t.rect.left+=i,t.rect.right+=i,t.rect.top+=s,t.rect.bottom+=s,n=t)}}}return n}}function vt(t,e){return!t&&!e||Boolean(t)===Boolean(e)&&k(t.dateSpan,e.dateSpan)}function Et(t,e){let i={};for(let s of e.pluginHooks.datePointTransforms)Object.assign(i,s(t,e));var s,n;return Object.assign(i,(s=t,{date:(n=e.dateEnv).toDate(s.range.start),dateStr:n.formatIso(s.range.start,{omitTime:s.allDay}),allDay:s.allDay})),i}class mt extends a{constructor(t){super(t),this.subjectEl=null,this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=t=>{let e=t.origEvent.target,{component:i,dragging:s}=this,{mirror:n}=s,{options:r}=i.context,o=i.context;this.subjectEl=t.subjectEl;let l=this.subjectSeg=p(t.subjectEl),a=(this.eventRange=l.eventRange).instance.instanceId;this.relevantEvents=v(o.getCurrentData().eventStore,a),s.minDistance=t.isTouch?0:r.eventDragMinDistance,s.delay=t.isTouch&&a!==i.props.eventSelection?function(t){let{options:e}=t.context,i=e.eventLongPressDelay;null==i&&(i=e.longPressDelay);return i}(i):null,r.fixedMirrorParent?n.parentNode=r.fixedMirrorParent:n.parentNode=E(e,".fc"),n.revertDuration=r.dragRevertDuration;let h=i.isValidSegDownEl(e)&&!E(e,".fc-event-resizer");s.setIgnoreMove(!h),this.isDragging=h&&t.subjectEl.classList.contains("fc-event-draggable")},this.handleDragStart=t=>{let e=this.component.context,i=this.eventRange,s=i.instance.instanceId;t.isTouch?s!==this.component.props.eventSelection&&e.dispatch({type:"SELECT_EVENT",eventInstanceId:s}):e.dispatch({type:"UNSELECT_EVENT"}),this.isDragging&&(e.calendarApi.unselect(t),e.emitter.trigger("eventDragStart",{el:this.subjectEl,event:new m(e,i.def,i.instance),jsEvent:t.origEvent,view:e.viewApi}))},this.handleHitUpdate=(t,e)=>{if(!this.isDragging)return;let i=this.relevantEvents,s=this.hitDragging.initialHit,n=this.component.context,r=null,o=null,l=null,a=!1,h={affectedEvents:i,mutatedEvents:f(),isEvent:!0};if(t){r=t.context;let e=r.options;n===r||e.editable&&e.droppable?(o=function(t,e,i,s){let n=t.dateSpan,r=e.dateSpan,o=n.range.start,l=r.range.start,a={};n.allDay!==r.allDay&&(a.allDay=r.allDay,a.hasEnd=e.context.options.allDayMaintainDuration,o=r.allDay?b(i):i);let h=T(o,l,t.context.dateEnv,t.componentId===e.componentId?t.largeUnit:null);h.milliseconds&&(a.allDay=!1);let c={datesDelta:h,standardProps:a};for(let i of s)i(c,t,e);return c}(s,t,this.eventRange.instance.range.start,r.getCurrentData().pluginHooks.eventDragMutationMassagers),o&&(l=S(i,r.getCurrentData().eventUiBases,o,r),h.mutatedEvents=l,D(h,t.dateProfile,r)||(a=!0,o=null,l=null,h.mutatedEvents=f()))):r=null}this.displayDrag(r,h),a?g():d(),e||(n===r&&vt(s,t)&&(o=null),this.dragging.setMirrorNeedsRevert(!o),this.dragging.setMirrorIsVisible(!t||!this.subjectEl.getRootNode().querySelector(".fc-event-mirror")),this.receivingContext=r,this.validMutation=o,this.mutatedRelevantEvents=l)},this.handlePointerUp=()=>{this.isDragging||this.cleanup()},this.handleDragEnd=t=>{if(this.isDragging){let e=this.component.context,i=e.viewApi,{receivingContext:s,validMutation:n}=this,r=this.eventRange.def,o=this.eventRange.instance,l=new m(e,r,o),a=this.relevantEvents,h=this.mutatedRelevantEvents,{finalHit:c}=this.hitDragging;if(this.clearDrag(),e.emitter.trigger("eventDragStop",{el:this.subjectEl,event:l,jsEvent:t.origEvent,view:i}),n){if(s===e){let s=new m(e,h.defs[r.defId],o?h.instances[o.instanceId]:null);e.dispatch({type:"MERGE_EVENTS",eventStore:h});let c={oldEvent:l,event:s,relatedEvents:w(h,e,o),revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:a})}},d={};for(let t of e.getCurrentData().pluginHooks.eventDropTransformers)Object.assign(d,t(n,e));e.emitter.trigger("eventDrop",Object.assign(Object.assign(Object.assign({},c),d),{el:t.subjectEl,delta:n.datesDelta,jsEvent:t.origEvent,view:i})),e.emitter.trigger("eventChange",c)}else if(s){let n={event:l,relatedEvents:w(a,e,o),revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:a})}};e.emitter.trigger("eventLeave",Object.assign(Object.assign({},n),{draggedEl:t.subjectEl,view:i})),e.dispatch({type:"REMOVE_EVENTS",eventStore:a}),e.emitter.trigger("eventRemove",n);let d=h.defs[r.defId],g=h.instances[o.instanceId],u=new m(s,d,g);s.dispatch({type:"MERGE_EVENTS",eventStore:h});let p={event:u,relatedEvents:w(h,s,g),revert(){s.dispatch({type:"REMOVE_EVENTS",eventStore:h})}};s.emitter.trigger("eventAdd",p),t.isTouch&&s.dispatch({type:"SELECT_EVENT",eventInstanceId:o.instanceId}),s.emitter.trigger("drop",Object.assign(Object.assign({},Et(c.dateSpan,s)),{draggedEl:t.subjectEl,jsEvent:t.origEvent,view:c.context.viewApi})),s.emitter.trigger("eventReceive",Object.assign(Object.assign({},p),{draggedEl:t.subjectEl,view:c.context.viewApi}))}}else e.emitter.trigger("_noEventDrop")}this.cleanup()};let{component:e}=this,{options:i}=e.context,s=this.dragging=new dt(t.el);s.pointer.selector=mt.SELECTOR,s.touchScrollAllowed=!1,s.autoScroller.isEnabled=i.dragScroll;let n=this.hitDragging=new pt(this.dragging,y);n.useSubjectCenter=t.useEventCenter,n.emitter.on("pointerdown",this.handlePointerDown),n.emitter.on("dragstart",this.handleDragStart),n.emitter.on("hitupdate",this.handleHitUpdate),n.emitter.on("pointerup",this.handlePointerUp),n.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}displayDrag(t,e){let i=this.component.context,s=this.receivingContext;s&&s!==t&&(s===i?s.dispatch({type:"SET_EVENT_DRAG",state:{affectedEvents:e.affectedEvents,mutatedEvents:f(),isEvent:!0}}):s.dispatch({type:"UNSET_EVENT_DRAG"})),t&&t.dispatch({type:"SET_EVENT_DRAG",state:e})}clearDrag(){let t=this.component.context,{receivingContext:e}=this;e&&e.dispatch({type:"UNSET_EVENT_DRAG"}),t!==e&&t.dispatch({type:"UNSET_EVENT_DRAG"})}cleanup(){this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null}}mt.SELECTOR=".fc-event-draggable, .fc-event-resizable";const St={fixedMirrorParent:C},Dt={dateClick:C,eventDragStart:C,eventDragStop:C,eventDrop:C,eventResizeStart:C,eventResizeStop:C,eventResize:C,drop:C,eventReceive:C,eventLeave:C};class ft{constructor(t,e){this.receivingContext=null,this.droppableEvent=null,this.suppliedDragMeta=null,this.dragMeta=null,this.handleDragStart=t=>{this.dragMeta=this.buildDragMeta(t.subjectEl)},this.handleHitUpdate=(t,e,i)=>{let{dragging:s}=this.hitDragging,n=null,r=null,o=!1,l={affectedEvents:f(),mutatedEvents:f(),isEvent:this.dragMeta.create};t&&(n=t.context,this.canDropElOnCalendar(i.subjectEl,n)&&(r=function(t,e,i){let s=Object.assign({},e.leftoverProps);for(let n of i.pluginHooks.externalDefTransforms)Object.assign(s,n(t,e));let{refined:n,extra:r}=I(s,i),o=L(n,r,e.sourceId,t.allDay,i.options.forceEventDuration||Boolean(e.duration),i),l=t.range.start;t.allDay&&e.startTime&&(l=i.dateEnv.add(l,e.startTime));let a=e.duration?i.dateEnv.add(l,e.duration):A(t.allDay,l,i),h=H(o.defId,{start:l,end:a});return{def:o,instance:h}}(t.dateSpan,this.dragMeta,n),l.mutatedEvents=j(r),o=!D(l,t.dateProfile,n),o&&(l.mutatedEvents=f(),r=null))),this.displayDrag(n,l),s.setMirrorIsVisible(e||!r||!document.querySelector(".fc-event-mirror")),o?g():d(),e||(s.setMirrorNeedsRevert(!r),this.receivingContext=n,this.droppableEvent=r)},this.handleDragEnd=t=>{let{receivingContext:e,droppableEvent:i}=this;if(this.clearDrag(),e&&i){let s=this.hitDragging.finalHit,n=s.context.viewApi,r=this.dragMeta;if(e.emitter.trigger("drop",Object.assign(Object.assign({},Et(s.dateSpan,e)),{draggedEl:t.subjectEl,jsEvent:t.origEvent,view:n})),r.create){let s=j(i);e.dispatch({type:"MERGE_EVENTS",eventStore:s}),t.isTouch&&e.dispatch({type:"SELECT_EVENT",eventInstanceId:i.instance.instanceId}),e.emitter.trigger("eventReceive",{event:new m(e,i.def,i.instance),relatedEvents:[],revert(){e.dispatch({type:"REMOVE_EVENTS",eventStore:s})},draggedEl:t.subjectEl,view:n})}}this.receivingContext=null,this.droppableEvent=null};let i=this.hitDragging=new pt(t,y);i.requireInitial=!1,i.emitter.on("dragstart",this.handleDragStart),i.emitter.on("hitupdate",this.handleHitUpdate),i.emitter.on("dragend",this.handleDragEnd),this.suppliedDragMeta=e}buildDragMeta(t){return"object"==typeof this.suppliedDragMeta?x(this.suppliedDragMeta):"function"==typeof this.suppliedDragMeta?x(this.suppliedDragMeta(t)):function(t){let e=function(t,e){let s=i.dataAttrPrefix,n=(s?s+"-":"")+e;return t.getAttribute("data-"+n)||""}(t,"event"),s=e?JSON.parse(e):{create:!1};return x(s)}(t)}displayDrag(t,e){let i=this.receivingContext;i&&i!==t&&i.dispatch({type:"UNSET_EVENT_DRAG"}),t&&t.dispatch({type:"SET_EVENT_DRAG",state:e})}clearDrag(){this.receivingContext&&this.receivingContext.dispatch({type:"UNSET_EVENT_DRAG"})}canDropElOnCalendar(t,e){let i=e.options.dropAccept;return"function"==typeof i?i.call(e.calendarApi,t):"string"!=typeof i||!i||Boolean(P(t,i))}}i.dataAttrPrefix="";class wt{constructor(t,i={}){this.handlePointerDown=t=>{let{dragging:i}=this,{minDistance:s,longPressDelay:n}=this.settings;i.minDistance=null!=s?s:t.isTouch?0:e.eventDragMinDistance,i.delay=t.isTouch?null!=n?n:e.longPressDelay:0},this.handleDragStart=t=>{t.isTouch&&this.dragging.delay&&t.subjectEl.classList.contains("fc-event")&&this.dragging.mirror.getMirrorEl().classList.add("fc-event-selected")},this.settings=i;let s=this.dragging=new dt(t);s.touchScrollAllowed=!1,null!=i.itemSelector&&(s.pointer.selector=i.itemSelector),null!=i.appendTo&&(s.mirror.parentNode=i.appendTo),s.emitter.on("pointerdown",this.handlePointerDown),s.emitter.on("dragstart",this.handleDragStart),new ft(s,i.eventData)}destroy(){this.dragging.destroy()}}var yt=t({name:"@fullcalendar/interaction",componentInteractions:[class extends a{constructor(t){super(t),this.handlePointerDown=t=>{let{dragging:e}=this,i=t.origEvent.target;e.setIgnoreMove(!this.component.isValidDateDownEl(i))},this.handleDragEnd=t=>{let{component:e}=this,{pointer:i}=this.dragging;if(!i.wasTouchScroll){let{initialHit:i,finalHit:s}=this.hitDragging;if(i&&s&&vt(i,s)){let{context:s}=e,n=Object.assign(Object.assign({},Et(i.dateSpan,s)),{dayEl:i.dayEl,jsEvent:t.origEvent,view:s.viewApi||s.calendarApi.view});s.emitter.trigger("dateClick",n)}}},this.dragging=new dt(t.el),this.dragging.autoScroller.isEnabled=!1;let e=this.hitDragging=new pt(this.dragging,h(t));e.emitter.on("pointerdown",this.handlePointerDown),e.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}},class extends a{constructor(t){super(t),this.dragSelection=null,this.handlePointerDown=t=>{let{component:e,dragging:i}=this,{options:s}=e.context,n=s.selectable&&e.isValidDateDownEl(t.origEvent.target);i.setIgnoreMove(!n),i.delay=t.isTouch?function(t){let{options:e}=t.context,i=e.selectLongPressDelay;null==i&&(i=e.longPressDelay);return i}(e):null},this.handleDragStart=t=>{this.component.context.calendarApi.unselect(t)},this.handleHitUpdate=(t,e)=>{let{context:i}=this.component,s=null,n=!1;if(t){let e=this.hitDragging.initialHit;t.componentId===e.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(e,t)||(s=function(t,e,i){let s=t.dateSpan,n=e.dateSpan,r=[s.range.start,s.range.end,n.range.start,n.range.end];r.sort(z);let o={};for(let s of i){let i=s(t,e);if(!1===i)return null;i&&Object.assign(o,i)}return o.range={start:r[0],end:r[3]},o.allDay=s.allDay,o}(e,t,i.pluginHooks.dateSelectionTransformers)),s&&c(s,t.dateProfile,i)||(n=!0,s=null)}s?i.dispatch({type:"SELECT_DATES",selection:s}):e||i.dispatch({type:"UNSELECT_DATES"}),n?g():d(),e||(this.dragSelection=s)},this.handlePointerUp=t=>{this.dragSelection&&(u(this.dragSelection,t,this.component.context),this.dragSelection=null)};let{component:e}=t,{options:i}=e.context,s=this.dragging=new dt(t.el);s.touchScrollAllowed=!1,s.minDistance=i.selectMinDistance||0,s.autoScroller.isEnabled=i.dragScroll;let n=this.hitDragging=new pt(this.dragging,h(t));n.emitter.on("pointerdown",this.handlePointerDown),n.emitter.on("dragstart",this.handleDragStart),n.emitter.on("hitupdate",this.handleHitUpdate),n.emitter.on("pointerup",this.handlePointerUp)}destroy(){this.dragging.destroy()}},mt,class extends a{constructor(t){super(t),this.draggingSegEl=null,this.draggingSeg=null,this.eventRange=null,this.relevantEvents=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=t=>{let{component:e}=this,i=this.querySegEl(t),s=p(i),n=this.eventRange=s.eventRange;this.dragging.minDistance=e.context.options.eventDragMinDistance,this.dragging.setIgnoreMove(!this.component.isValidSegDownEl(t.origEvent.target)||t.isTouch&&this.component.props.eventSelection!==n.instance.instanceId)},this.handleDragStart=t=>{let{context:e}=this.component,i=this.eventRange;this.relevantEvents=v(e.getCurrentData().eventStore,this.eventRange.instance.instanceId);let s=this.querySegEl(t);this.draggingSegEl=s,this.draggingSeg=p(s),e.calendarApi.unselect(),e.emitter.trigger("eventResizeStart",{el:s,event:new m(e,i.def,i.instance),jsEvent:t.origEvent,view:e.viewApi})},this.handleHitUpdate=(t,e,i)=>{let{context:s}=this.component,n=this.relevantEvents,r=this.hitDragging.initialHit,o=this.eventRange.instance,l=null,a=null,h=!1,c={affectedEvents:n,mutatedEvents:f(),isEvent:!0};if(t){t.componentId===r.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(r,t)||(l=function(t,e,i,s){let n=t.context.dateEnv,r=t.dateSpan.range.start,o=e.dateSpan.range.start,l=T(r,o,n,t.largeUnit);if(i){if(n.add(s.start,l)<s.end)return{startDelta:l}}else if(n.add(s.end,l)>s.start)return{endDelta:l};return null}(r,t,i.subjectEl.classList.contains("fc-event-resizer-start"),o.range))}l&&(a=S(n,s.getCurrentData().eventUiBases,l,s),c.mutatedEvents=a,D(c,t.dateProfile,s)||(h=!0,l=null,a=null,c.mutatedEvents=null)),a?s.dispatch({type:"SET_EVENT_RESIZE",state:c}):s.dispatch({type:"UNSET_EVENT_RESIZE"}),h?g():d(),e||(l&&vt(r,t)&&(l=null),this.validMutation=l,this.mutatedRelevantEvents=a)},this.handleDragEnd=t=>{let{context:e}=this.component,i=this.eventRange.def,s=this.eventRange.instance,n=new m(e,i,s),r=this.relevantEvents,o=this.mutatedRelevantEvents;if(e.emitter.trigger("eventResizeStop",{el:this.draggingSegEl,event:n,jsEvent:t.origEvent,view:e.viewApi}),this.validMutation){let l=new m(e,o.defs[i.defId],s?o.instances[s.instanceId]:null);e.dispatch({type:"MERGE_EVENTS",eventStore:o});let a={oldEvent:n,event:l,relatedEvents:w(o,e,s),revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:r})}};e.emitter.trigger("eventResize",Object.assign(Object.assign({},a),{el:this.draggingSegEl,startDelta:this.validMutation.startDelta||M(0),endDelta:this.validMutation.endDelta||M(0),jsEvent:t.origEvent,view:e.viewApi})),e.emitter.trigger("eventChange",a)}else e.emitter.trigger("_noEventResize");this.draggingSeg=null,this.relevantEvents=null,this.validMutation=null};let{component:e}=t,i=this.dragging=new dt(t.el);i.pointer.selector=".fc-event-resizer",i.touchScrollAllowed=!1,i.autoScroller.isEnabled=e.context.options.dragScroll;let s=this.hitDragging=new pt(this.dragging,h(t));s.emitter.on("pointerdown",this.handlePointerDown),s.emitter.on("dragstart",this.handleDragStart),s.emitter.on("hitupdate",this.handleHitUpdate),s.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}querySegEl(t){return E(t.subjectEl,".fc-event")}}],calendarInteractions:[class{constructor(t){this.context=t,this.isRecentPointerDateSelect=!1,this.matchesCancel=!1,this.matchesEvent=!1,this.onSelect=t=>{t.jsEvent&&(this.isRecentPointerDateSelect=!0)},this.onDocumentPointerDown=t=>{let e=this.context.options.unselectCancel,i=R(t.origEvent);this.matchesCancel=!!E(i,e),this.matchesEvent=!!E(i,mt.SELECTOR)},this.onDocumentPointerUp=t=>{let{context:e}=this,{documentPointer:i}=this,s=e.getCurrentData();if(!i.wasTouchScroll){if(s.dateSelection&&!this.isRecentPointerDateSelect){let i=e.options.unselectAuto;!i||i&&this.matchesCancel||e.calendarApi.unselect(t)}s.eventSelection&&!this.matchesEvent&&e.dispatch({type:"UNSELECT_EVENT"})}this.isRecentPointerDateSelect=!1};let e=this.documentPointer=new st(document);e.shouldIgnoreMove=!0,e.shouldWatchScroll=!1,e.emitter.on("pointerdown",this.onDocumentPointerDown),e.emitter.on("pointerup",this.onDocumentPointerUp),t.emitter.on("select",this.onSelect)}destroy(){this.context.emitter.off("select",this.onSelect),this.documentPointer.destroy()}}],elementDraggingImpl:dt,optionRefiners:St,listenerRefiners:Dt});export{wt as Draggable,yt as default};
2
+ //# sourceMappingURL=index.js.map