@zealicsolutions/web-ui 1.0.44-beta-2 → 1.0.44-beta-3

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.
@@ -1,2 +1,2 @@
1
- import{__assign as e}from"../../node_modules/tslib/tslib.es6.js";import{jsx as i}from"../../node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.esm.js";import{useRef as o,useEffect as t}from"react";import r from"../../node_modules/@fullcalendar/react/dist/index.js";import n,{Draggable as d}from"../../node_modules/@fullcalendar/interaction/index.js";import a from"../../node_modules/@fullcalendar/daygrid/index.js";import l from"../../node_modules/@fullcalendar/timegrid/index.js";import s from"../../node_modules/@fullcalendar/list/index.js";import m from"../../node_modules/@fullcalendar/resource/index.js";import u from"../../node_modules/@fullcalendar/resource-timegrid/index.js";import p from"../../node_modules/@fullcalendar/timeline/index.js";import c from"../../node_modules/@mui/material/Box/Box.js";var v=function(v){var f=v.events,g=v.resources,h=v.initialView,b=void 0===h?"dayGridMonth":h,x=v.enableDayGrid,j=void 0===x||x,y=v.enableTimeGrid,_=void 0===y||y,D=v.enableList,T=void 0!==D&&D,S=v.enableTimeline,B=void 0!==S&&S,C=v.enableResourceTimeline,G=void 0!==C&&C,k=v.slotDuration,L=void 0===k?"00:15:00":k,R=v.snapDuration,w=void 0===R?"00:05:00":R,W=v.businessHours,I=v.width,M=v.height,N=void 0===M?"auto":M,A=v.backgroundColor,E=v.themeSystem,H=void 0===E?"standard":E,O=v.marginLeft,V=void 0===O?"0":O,J=v.marginTop,K=void 0===J?"0":J,P=v.marginRight,q=void 0===P?"0":P,z=v.marginBottom,F=void 0===z?"0":z,Q=v.paddingLeft,U=void 0===Q?"0":Q,X=v.paddingTop,Y=void 0===X?"0":X,Z=v.paddingRight,$=void 0===Z?"0":Z,ee=v.paddingBottom,ie=void 0===ee?"0":ee,oe=v.primaryColor,te=v.secondaryColor,re=v.onEventAdd,ne=v.configurationItemInfo,de=o(null);t((function(){var e=document.getElementById("external-events");e&&new d(e,{itemSelector:".fc-event-external",eventData:function(e){var i=JSON.parse(e.dataset.event),o=i.id,t=i.title,r=i.duration,n=Math.floor(r/60),d=r%60;return{id:o,title:t,duration:"".concat(n,":").concat(d.toString().padStart(2,"0"))}}})}),[]);var ae=[n],le=[];return j&&(ae.push(a),le.push("dayGridMonth")),_&&(ae.push(l),le.push("timeGridWeek,timeGridDay")),T&&(ae.push(s),le.push("listWeek")),B&&(ae.push(p),le.push("timelineWeek")),ae.push(m),G&&(ae.push(u),le.push("resourceTimeGridWeek")),i(c,e({sx:{width:I,height:N,backgroundColor:A,marginLeft:V,marginTop:K,marginRight:q,marginBottom:F,paddingLeft:U,paddingTop:Y,paddingRight:$,paddingBottom:ie,"--fc-button-bg":oe,"--fc-event-bg":te}},ne,{children:i(r,{ref:de,themeSystem:H,schedulerLicenseKey:"CC-Attribution-NonCommercial-NoDerivatives",plugins:ae,initialView:b,headerToolbar:{left:"prev,next today",center:"title",right:le.join(",")},editable:!0,droppable:!0,businessHours:W,slotDuration:L,snapDuration:w,events:f,resources:g,eventReceive:function(e){var i=e.event.toPlainObject();null==re||re({id:i.id,title:i.title,start:i.startStr,end:i.endStr}),e.event.remove()}})}))};export{v as CalendarMolecule};
1
+ import{__assign as e}from"../../node_modules/tslib/tslib.es6.js";import{jsx as i}from"../../node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.esm.js";import{useRef as t,useEffect as o}from"react";import r from"../../node_modules/@fullcalendar/react/dist/index.js";import n,{Draggable as d}from"../../node_modules/@fullcalendar/interaction/index.js";import a from"../../node_modules/@fullcalendar/daygrid/index.js";import l from"../../node_modules/@fullcalendar/timegrid/index.js";import m from"../../node_modules/@fullcalendar/list/index.js";import s from"../../node_modules/@fullcalendar/resource/index.js";import u from"../../node_modules/@fullcalendar/resource-timegrid/index.js";import c from"../../node_modules/@fullcalendar/timeline/index.js";import f from"../../node_modules/@fullcalendar/resource-timeline/index.js";import v from"../../node_modules/@mui/material/Box/Box.js";var p=function(p){var g=p.events,h=p.resources,b=p.initialView,y=void 0===b?"dayGridMonth":b,x=p.enableDayGrid,j=void 0===x||x,D=p.enableTimeGrid,T=void 0===D||D,_=p.enableList,G=void 0!==_&&_,k=p.enableTimeline,S=void 0!==k&&k,B=p.enableResourceTimeline,C=void 0!==B&&B,M=p.slotDuration,L=void 0===M?"00:15:00":M,R=p.snapDuration,W=void 0===R?"00:05:00":R,w=p.businessHours,I=p.width,N=p.height,O=void 0===N?"auto":N,A=p.backgroundColor,E=p.themeSystem,H=void 0===E?"standard":E,V=p.marginLeft,Y=void 0===V?"0":V,J=p.marginTop,K=void 0===J?"0":J,P=p.marginRight,q=void 0===P?"0":P,z=p.marginBottom,F=void 0===z?"0":z,Q=p.paddingLeft,U=void 0===Q?"0":Q,X=p.paddingTop,Z=void 0===X?"0":X,$=p.paddingRight,ee=void 0===$?"0":$,ie=p.paddingBottom,te=void 0===ie?"0":ie,oe=p.primaryColor,re=p.secondaryColor,ne=p.onEventAdd,de=p.configurationItemInfo,ae=t(null),le=[n,a,l,m,c,s,u,f];o((function(){var e=document.getElementById("external-events");e&&new d(e,{itemSelector:".fc-event-external",eventData:function(e){var i=JSON.parse(e.dataset.event),t=i.id,o=i.title,r=i.duration,n=Math.floor(r/60),d=r%60;return{id:t,title:o,duration:"".concat(n,":").concat(d.toString().padStart(2,"0"))}}})}),[]);var me={dayGridMonth:j,dayGridWeek:j,dayGridDay:j,timeGridWeek:T,timeGridDay:T,listYear:G,listMonth:G,listWeek:G,listDay:G,timelineYear:S,timelineMonth:S,timelineWeek:S,timelineDay:S,resourceTimeGridWeek:C,resourceTimeGridDay:C,resourceTimelineMonth:C,resourceTimelineWeek:C,resourceTimelineDay:C},se=Object.entries(me).filter((function(e){return e[0],e[1]})).map((function(e){return e[0]})).join(","),ue=me[y]?y:se.split(",")[0]||"dayGridMonth";return i(v,e({sx:{width:I,height:O,backgroundColor:A,marginLeft:Y,marginTop:K,marginRight:q,marginBottom:F,paddingLeft:U,paddingTop:Z,paddingRight:ee,paddingBottom:te,"--fc-button-bg":oe,"--fc-event-bg":re}},de,{children:i(r,{ref:ae,themeSystem:H,schedulerLicenseKey:"CC-Attribution-NonCommercial-NoDerivatives",plugins:le,initialView:ue,headerToolbar:{left:"prev,next today",center:"title",right:se},editable:!0,droppable:!0,businessHours:w,slotDuration:L,snapDuration:W,events:g,resources:h,eventReceive:function(e){var i=e.event.toPlainObject();null==ne||ne({id:i.id,title:i.title,start:i.startStr,end:i.endStr}),e.event.remove()}})}))};export{p as CalendarMolecule};
2
2
  //# sourceMappingURL=CalendarMolecule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarMolecule.js","sources":["../../../../../src/molecules/Calendar/CalendarMolecule.tsx"],"sourcesContent":[null],"names":["CalendarMolecule","_a","events","resources","_b","initialView","_c","enableDayGrid","_d","enableTimeGrid","_e","enableList","_f","enableTimeline","_g","enableResourceTimeline","_h","slotDuration","_j","snapDuration","businessHours","width","_k","height","backgroundColor","_l","themeSystem","_m","marginLeft","_o","marginTop","_p","marginRight","_q","marginBottom","_r","paddingLeft","_s","paddingTop","_t","paddingRight","_u","paddingBottom","primaryColor","secondaryColor","onEventAdd","configurationItemInfo","calRef","useRef","useEffect","box","document","getElementById","Draggable","itemSelector","eventData","el","JSON","parse","dataset","event","id","title","duration","hrs","Math","floor","mins","concat","toString","padStart","plugins","interactionPlugin","btns","push","dayGridPlugin","timeGridPlugin","listPlugin","timelinePlugin","resourcePlugin","resourceTimeGridPlugin","_jsx","Box","__assign","sx","FullCalendar","ref","schedulerLicenseKey","headerToolbar","left","center","right","join","editable","droppable","eventReceive","info","e","toPlainObject","start","startStr","end","endStr","remove"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarMolecule.js","sources":["../../../../../src/molecules/Calendar/CalendarMolecule.tsx"],"sourcesContent":[null],"names":["CalendarMolecule","_a","events","resources","_b","initialView","_c","enableDayGrid","_d","enableTimeGrid","_e","enableList","_f","enableTimeline","_g","enableResourceTimeline","_h","slotDuration","_j","snapDuration","businessHours","width","_k","height","backgroundColor","_l","themeSystem","_m","marginLeft","_o","marginTop","_p","marginRight","_q","marginBottom","_r","paddingLeft","_s","paddingTop","_t","paddingRight","_u","paddingBottom","primaryColor","secondaryColor","onEventAdd","configurationItemInfo","calRef","useRef","ALL_PLUGINS","interactionPlugin","dayGridPlugin","timeGridPlugin","listPlugin","timelinePlugin","resourcePlugin","resourceTimeGridPlugin","resourceTimelinePlugin","useEffect","box","document","getElementById","Draggable","itemSelector","eventData","el","JSON","parse","dataset","event","id","title","duration","hrs","Math","floor","mins","concat","toString","padStart","viewMap","dayGridMonth","dayGridWeek","dayGridDay","timeGridWeek","timeGridDay","listYear","listMonth","listWeek","listDay","timelineYear","timelineMonth","timelineWeek","timelineDay","resourceTimeGridWeek","resourceTimeGridDay","resourceTimelineMonth","resourceTimelineWeek","resourceTimelineDay","toolbarViews","Object","entries","filter","map","join","safeInitialView","split","_jsx","Box","__assign","sx","FullCalendar","ref","schedulerLicenseKey","plugins","headerToolbar","left","center","right","editable","droppable","eventReceive","info","e","toPlainObject","start","startStr","end","endStr","remove"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{__assign as o}from"../../node_modules/tslib/tslib.es6.js";import{jsxs as i,jsx as d}from"../../node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.esm.js";var r=function(r){var t=r.id,e=r.title,n=r.duration,a=r.description,g=r.resourceId,m=r.backgroundColor,c=void 0===m?"#eee":m,v=r.textColor,l=void 0===v?"#000":v,s=r.borderColor,p=void 0===s?"#ccc":s,u=r.borderRadius,f=void 0===u?"4px":u,b=r.paddingTop,h=void 0===b?"0":b,x=r.paddingRight,R=void 0===x?"0":x,T=r.paddingBottom,j=void 0===T?"0":T,B=r.paddingLeft,C=void 0===B?"0":B,I=r.marginTop,L=void 0===I?"0":I,y=r.marginRight,S=void 0===y?"0":y,k=r.marginBottom,z=void 0===k?"0":k,N=r.marginLeft,O=void 0===N?"0":N,W=r.fontSize,_=void 0===W?"14px":W,D=r.fontWeight,J=void 0===D?400:D,q=r.draggable,w=void 0===q||q,A=r.createOnDrop,E=void 0===A||A,F=r.configurationItemInfo,G=void 0===F?{}:F,H={id:t,title:e,duration:n};return g&&(H.resourceId=g),E||(H.create=!1),i("div",o({className:"fc-event-external","data-event":JSON.stringify(H),draggable:w,style:{backgroundColor:c,color:l,border:"1px solid ".concat(p),borderRadius:f,paddingTop:h,paddingRight:R,paddingBottom:j,paddingLeft:C,marginTop:L,marginRight:S,marginBottom:z,marginLeft:O,fontSize:_,fontWeight:J,cursor:w?"grab":"default"}},G,{children:[i("div",{children:[e," — ",n," min"]}),a&&d("div",o({style:{marginTop:"4px",color:l}},{children:a}))]}))};export{r as VisitMolecule};
1
+ import{__assign as o}from"../../node_modules/tslib/tslib.es6.js";import{jsxs as i,jsx as t}from"../../node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.esm.js";var d=function(d){var e=d.id,r=d.title,n=d.duration,a=d.description,g=d.resourceId,m=d.backgroundColor,c=void 0===m?"#eee":m,v=d.textColor,l=void 0===v?"#000":v,s=d.borderColor,p=void 0===s?"#ccc":s,f=d.borderRadius,u=void 0===f?"4px":f,h=d.paddingTop,b=void 0===h?"0":h,x=d.paddingRight,R=void 0===x?"0":x,T=d.paddingBottom,j=void 0===T?"0":T,B=d.paddingLeft,C=void 0===B?"0":B,I=d.marginTop,L=void 0===I?"0":I,y=d.marginRight,S=void 0===y?"0":y,k=d.marginBottom,z=void 0===k?"0":k,N=d.marginLeft,O=void 0===N?"0":N,W=d.fontSize,_=void 0===W?"14px":W,w=d.fontWeight,D=void 0===w?400:w,J=d.draggable,q=void 0===J||J,A=d.createOnDrop,E=void 0===A||A,F=d.configurationItemInfo,G=void 0===F?{}:F,H={id:e,title:r,duration:n};return g&&(H.resourceId=g),E||(H.create=!1),i("div",o({className:"fc-event-external","data-event":JSON.stringify(H),draggable:q,style:{backgroundColor:c,color:l,border:"1px solid ".concat(p),borderRadius:u,paddingTop:b,paddingRight:R,paddingBottom:j,paddingLeft:C,marginTop:L,marginRight:S,marginBottom:z,marginLeft:O,fontSize:_,fontWeight:D,width:"fit-content",height:"fit-content",cursor:q?"grab":"default"}},G,{children:[i("div",{children:[r," — ",n," min"]}),a&&t("div",o({style:{marginTop:"4px",color:l}},{children:a}))]}))};export{d as VisitMolecule};
2
2
  //# sourceMappingURL=VisitMolecule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VisitMolecule.js","sources":["../../../../../src/molecules/Visit/VisitMolecule.tsx"],"sourcesContent":[null],"names":["VisitMolecule","_a","id","title","duration","description","resourceId","_b","backgroundColor","_c","textColor","_d","borderColor","_e","borderRadius","_f","paddingTop","_g","paddingRight","_h","paddingBottom","_j","paddingLeft","_k","marginTop","_l","marginRight","_m","marginBottom","_o","marginLeft","_p","fontSize","_q","fontWeight","_r","draggable","_s","createOnDrop","_t","configurationItemInfo","eventData","create","_jsxs","__assign","className","JSON","stringify","style","color","border","concat","cursor","children","_jsx"],"mappings":"qLAoDO,IAAMA,EAA8C,SAACC,GAC1D,IAAAC,EAAED,EAAAC,GACFC,EAAKF,EAAAE,MACLC,EAAQH,EAAAG,SACRC,EAAWJ,EAAAI,YACXC,EAAUL,EAAAK,WACVC,EAAwBN,EAAAO,gBAAxBA,OAAe,IAAAD,EAAG,OAAMA,EACxBE,EAAAR,EAAAS,UAAAA,OAAY,IAAAD,EAAA,OAAMA,EAClBE,gBAAAC,OAAc,IAAAD,EAAA,OAAMA,EACpBE,EAAoBZ,EAAAa,aAApBA,OAAY,IAAAD,EAAG,MAAKA,EACpBE,EAAAd,EAAAe,WAAAA,aAAa,IAAGD,EAChBE,EAAAhB,EAAAiB,aAAAA,OAAe,IAAAD,EAAA,IAAGA,EAClBE,EAAmBlB,EAAAmB,cAAnBA,OAAa,IAAAD,EAAG,IAAGA,EACnBE,EAAiBpB,EAAAqB,YAAjBA,OAAW,IAAAD,EAAG,IAAGA,EACjBE,EAAAtB,EAAAuB,UAAAA,OAAY,IAAAD,EAAA,IAAGA,EACfE,EAAiBxB,EAAAyB,YAAjBA,OAAc,IAAAD,EAAA,IAAGA,EACjBE,EAAkB1B,EAAA2B,aAAlBA,OAAY,IAAAD,EAAG,IAAGA,EAClBE,EAAA5B,EAAA6B,WAAAA,OAAa,IAAAD,EAAA,MACbE,EAAA9B,EAAA+B,SAAAA,OAAW,IAAAD,EAAA,OAAMA,EACjBE,EAAgBhC,EAAAiC,WAAhBA,OAAU,IAAAD,EAAG,IAAGA,EAChBE,EAAAlC,EAAAmC,UAAAA,OAAS,IAAAD,GAAOA,EAChBE,EAAApC,EAAAqC,aAAAA,OAAe,IAAAD,GAAIA,EACnBE,EAA0BtC,EAAAuC,sBAA1BA,OAAqB,IAAAD,EAAG,CAAE,EAAAA,EAGpBE,EAAiB,CAAEvC,GAAEA,EAAEC,MAAKA,EAAEC,SAAQA,GAI5C,OAHIE,IAAYmC,EAAUnC,WAAaA,GAClCgC,IAAcG,EAAUC,QAAS,GAGpCC,EACE,MAAAC,EAAA,CAAAC,UAAU,oBAAmB,aACjBC,KAAKC,UAAUN,GAC3BL,UAAWA,EACXY,MAAO,CACLxC,gBAAeA,EACfyC,MAAOvC,EACPwC,OAAQ,aAAaC,OAAAvC,GACrBE,aAAYA,EACZE,WAAUA,EACVE,aAAYA,EACZE,cAAaA,EACbE,YAAWA,EACXE,UAASA,EACTE,YAAWA,EACXE,aAAYA,EACZE,WAAUA,EACVE,SAAQA,EACRE,WAAUA,EACVkB,OAAQhB,EAAY,OAAS,YAE3BI,EACJ,CAAAa,SAAA,CAAAV,EAAA,MAAA,CAAAU,SAAA,CACGlD,EAAK,MAAKC,EAAQ,UAEpBC,GAAeiD,EAAA,MAAAV,EAAA,CAAKI,MAAO,CAAExB,UAAW,MAAOyB,MAAOvC,IAAW,CAAA2C,SAAGhD,QAG3E"}
1
+ {"version":3,"file":"VisitMolecule.js","sources":["../../../../../src/molecules/Visit/VisitMolecule.tsx"],"sourcesContent":[null],"names":["VisitMolecule","_a","id","title","duration","description","resourceId","_b","backgroundColor","_c","textColor","_d","borderColor","_e","borderRadius","_f","paddingTop","_g","paddingRight","_h","paddingBottom","_j","paddingLeft","_k","marginTop","_l","marginRight","_m","marginBottom","_o","marginLeft","_p","fontSize","_q","fontWeight","_r","draggable","_s","createOnDrop","_t","configurationItemInfo","eventData","create","_jsxs","__assign","className","JSON","stringify","style","color","border","concat","width","height","cursor","children","_jsx"],"mappings":"qLAoDO,IAAMA,EAA8C,SAACC,GAC1D,IAAAC,EAAED,EAAAC,GACFC,EAAKF,EAAAE,MACLC,EAAQH,EAAAG,SACRC,EAAWJ,EAAAI,YACXC,EAAUL,EAAAK,WACVC,EAAwBN,EAAAO,gBAAxBA,OAAe,IAAAD,EAAG,OAAMA,EACxBE,EAAAR,EAAAS,UAAAA,OAAY,IAAAD,EAAA,OAAMA,EAClBE,gBAAAC,OAAc,IAAAD,EAAA,OAAMA,EACpBE,EAAoBZ,EAAAa,aAApBA,OAAY,IAAAD,EAAG,MAAKA,EACpBE,EAAAd,EAAAe,WAAAA,aAAa,IAAGD,EAChBE,EAAAhB,EAAAiB,aAAAA,OAAe,IAAAD,EAAA,IAAGA,EAClBE,EAAmBlB,EAAAmB,cAAnBA,OAAa,IAAAD,EAAG,IAAGA,EACnBE,EAAiBpB,EAAAqB,YAAjBA,OAAW,IAAAD,EAAG,IAAGA,EACjBE,EAAAtB,EAAAuB,UAAAA,OAAY,IAAAD,EAAA,IAAGA,EACfE,EAAiBxB,EAAAyB,YAAjBA,OAAc,IAAAD,EAAA,IAAGA,EACjBE,EAAkB1B,EAAA2B,aAAlBA,OAAY,IAAAD,EAAG,IAAGA,EAClBE,EAAA5B,EAAA6B,WAAAA,OAAa,IAAAD,EAAA,MACbE,EAAA9B,EAAA+B,SAAAA,OAAW,IAAAD,EAAA,OAAMA,EACjBE,EAAgBhC,EAAAiC,WAAhBA,OAAU,IAAAD,EAAG,IAAGA,EAChBE,EAAAlC,EAAAmC,UAAAA,OAAS,IAAAD,GAAOA,EAChBE,EAAApC,EAAAqC,aAAAA,OAAe,IAAAD,GAAIA,EACnBE,EAA0BtC,EAAAuC,sBAA1BA,OAAqB,IAAAD,EAAG,CAAE,EAAAA,EAGpBE,EAAiB,CAAEvC,GAAEA,EAAEC,MAAKA,EAAEC,SAAQA,GAI5C,OAHIE,IAAYmC,EAAUnC,WAAaA,GAClCgC,IAAcG,EAAUC,QAAS,GAGpCC,EACE,MAAAC,EAAA,CAAAC,UAAU,oBAAmB,aACjBC,KAAKC,UAAUN,GAC3BL,UAAWA,EACXY,MAAO,CACLxC,gBAAeA,EACfyC,MAAOvC,EACPwC,OAAQ,aAAaC,OAAAvC,GACrBE,aAAYA,EACZE,WAAUA,EACVE,aAAYA,EACZE,cAAaA,EACbE,YAAWA,EACXE,UAASA,EACTE,YAAWA,EACXE,aAAYA,EACZE,WAAUA,EACVE,SAAQA,EACRE,WAAUA,EACVkB,MAAO,cACPC,OAAQ,cACRC,OAAQlB,EAAY,OAAS,YAE3BI,EACJ,CAAAe,SAAA,CAAAZ,EAAA,MAAA,CAAAY,SAAA,CACGpD,EAAK,MAAKC,EAAQ,UAEpBC,GAAemD,EAAA,MAAAZ,EAAA,CAAKI,MAAO,CAAExB,UAAW,MAAOyB,MAAOvC,IAAW,CAAA6C,SAAGlD,QAG3E"}
@@ -1,2 +1,2 @@
1
- import{aW as e,am as t,B as r,A as s,V as o,z as n,a6 as l,bK as i,bL as a,a as u,ag as c,g as d,U as h,S as g,_ as p,C as f,bt as C,bJ as v,n as S,aQ as b,ao as x,an as m}from"../core/internal-common.js";import{createElement as E,Fragment as y}from"../../preact/dist/preact.mjs.js";const D="_fc:",R={id:String,parentId:String,children:S,title:String,businessHours:S,extendedProps:S,eventEditable:Boolean,eventStartEditable:Boolean,eventDurationEditable:Boolean,eventConstraint:S,eventOverlap:Boolean,eventAllow:S,eventClassNames:b,eventBackgroundColor:String,eventBorderColor:String,eventTextColor:String,eventColor:String};function j(e,t="",r,s){let{refined:o,extra:n}=c(e,R),l={id:o.id||D+d(),parentId:o.parentId||t,title:o.title||"",businessHours:o.businessHours?h(o.businessHours,s):null,ui:g({editable:o.eventEditable,startEditable:o.eventStartEditable,durationEditable:o.eventDurationEditable,constraint:o.eventConstraint,overlap:o.eventOverlap,allow:o.eventAllow,classNames:o.eventClassNames,backgroundColor:o.eventBackgroundColor,borderColor:o.eventBorderColor,textColor:o.eventTextColor,color:o.eventColor},s),extendedProps:Object.assign(Object.assign({},n),o.extendedProps)};if(Object.freeze(l.ui.classNames),Object.freeze(l.extendedProps),r[l.id]);else if(r[l.id]=l,o.children)for(let e of o.children)j(e,l.id,r,s);return l}function _(e){return 0===e.indexOf(D)?"":e}class I{constructor(e,t){this._context=e,this._resource=t}setProp(e,t){let r=this._resource;this._context.dispatch({type:"SET_RESOURCE_PROP",resourceId:r.id,propName:e,propValue:t}),this.sync(r)}setExtendedProp(e,t){let r=this._resource;this._context.dispatch({type:"SET_RESOURCE_EXTENDED_PROP",resourceId:r.id,propName:e,propValue:t}),this.sync(r)}sync(e){let t=this._context,r=e.id;this._resource=t.getCurrentData().resourceStore[r],t.emitter.trigger("resourceChange",{oldResource:new I(t,e),resource:this,revert(){t.dispatch({type:"ADD_RESOURCE",resourceHash:{[r]:e}})}})}remove(){let e=this._context,t=this._resource,r=t.id;e.dispatch({type:"REMOVE_RESOURCE",resourceId:r}),e.emitter.trigger("resourceRemove",{resource:this,revert(){e.dispatch({type:"ADD_RESOURCE",resourceHash:{[r]:t}})}})}getParent(){let e=this._context,t=this._resource.parentId;return t?new I(e,e.getCurrentData().resourceStore[t]):null}getChildren(){let e=this._resource.id,t=this._context,{resourceStore:r}=t.getCurrentData(),s=[];for(let o in r)r[o].parentId===e&&s.push(new I(t,r[o]));return s}getEvents(){let e=this._resource.id,t=this._context,{defs:r,instances:s}=t.getCurrentData().eventStore,o=[];for(let n in s){let l=s[n],i=r[l.defId];-1!==i.resourceIds.indexOf(e)&&o.push(new p(t,i,l))}return o}get id(){return _(this._resource.id)}get title(){return this._resource.title}get eventConstraint(){return this._resource.ui.constraints[0]||null}get eventOverlap(){return this._resource.ui.overlap}get eventAllow(){return this._resource.ui.allows[0]||null}get eventBackgroundColor(){return this._resource.ui.backgroundColor}get eventBorderColor(){return this._resource.ui.borderColor}get eventTextColor(){return this._resource.ui.textColor}get eventClassNames(){return this._resource.ui.classNames}get extendedProps(){return this._resource.extendedProps}toPlainObject(e={}){let t=this._resource,{ui:r}=t,s=this.id,o={};return s&&(o.id=s),t.title&&(o.title=t.title),e.collapseEventColor&&r.backgroundColor&&r.backgroundColor===r.borderColor?o.eventColor=r.backgroundColor:(r.backgroundColor&&(o.eventBackgroundColor=r.backgroundColor),r.borderColor&&(o.eventBorderColor=r.borderColor)),r.textColor&&(o.eventTextColor=r.textColor),r.classNames.length&&(o.eventClassNames=r.classNames),Object.keys(t.extendedProps).length&&(e.collapseExtendedProps?Object.assign(o,t.extendedProps):o.extendedProps=t.extendedProps),o}toJSON(){return this.toPlainObject()}}class O extends e{getKeyInfo(e){return Object.assign({"":{}},e.resourceStore)}getKeysForDateSpan(e){return[e.resourceId||""]}getKeysForEventDef(e){let t=e.resourceIds;return t.length?t:[""]}}const w=t("id,title");function P(e,t){let{emitter:r}=t;r.hasHandlers("resourcesSet")&&r.trigger("resourcesSet",function(e,t){let r=[];for(let s in e)r.push(new I(t,e[s]));return r}(e,t))}class k extends r{constructor(){super(...arguments),this.refineRenderProps=s(B)}render(){const{props:e}=this;return E(o.Consumer,null,(t=>{let{options:r}=t,s=this.refineRenderProps({resource:e.resource,date:e.date,context:t});return E(f,Object.assign({},e,{elAttrs:Object.assign(Object.assign({},e.elAttrs),{"data-resource-id":e.resource.id,"data-date":e.date?C(e.date):void 0}),renderProps:s,generatorName:"resourceLabelContent",customGenerator:r.resourceLabelContent,defaultGenerator:T,classNameGenerator:r.resourceLabelClassNames,didMount:r.resourceLabelDidMount,willUnmount:r.resourceLabelWillUnmount}))}))}}function T(e){return e.resource.title||e.resource.id}function B(e){return{resource:new I(e.context,e.resource),date:e.date?e.context.dateEnv.toDate(e.date):null,view:e.context.viewApi}}class A extends r{render(){let{props:e}=this;return E(k,{elTag:"th",elClasses:["fc-col-header-cell","fc-resource"],elAttrs:{role:"columnheader",colSpan:e.colSpan},resource:e.resource,date:e.date},(t=>E("div",{className:"fc-scrollgrid-sync-inner"},E(t,{elTag:"span",elClasses:["fc-col-header-cell-cushion",e.isSticky&&"fc-sticky"]}))))}}class F extends r{constructor(){super(...arguments),this.buildDateFormat=n(N)}render(){let{props:e,context:t}=this,r=this.buildDateFormat(t.options.dayHeaderFormat,e.datesRepDistinctDays,e.dates.length);return E(l,{unit:"day"},((s,o)=>1===e.dates.length?this.renderResourceRow(e.resources,e.dates[0]):t.options.datesAboveResources?this.renderDayAndResourceRows(e.dates,r,o,e.resources):this.renderResourceAndDayRows(e.resources,e.dates,r,o)))}renderResourceRow(e,t){let r=e.map((e=>E(A,{key:e.id,resource:e,colSpan:1,date:t})));return this.buildTr(r,"resources")}renderDayAndResourceRows(e,t,r,s){let o=[],n=[];for(let l of e){o.push(this.renderDateCell(l,t,r,s.length,null,!0));for(let e of s)n.push(E(A,{key:e.id+":"+l.toISOString(),resource:e,colSpan:1,date:l}))}return E(y,null,this.buildTr(o,"day"),this.buildTr(n,"resources"))}renderResourceAndDayRows(e,t,r,s){let o=[],n=[];for(let l of e){o.push(E(A,{key:l.id,resource:l,colSpan:t.length,isSticky:!0}));for(let e of t)n.push(this.renderDateCell(e,r,s,1,l))}return E(y,null,this.buildTr(o,"resources"),this.buildTr(n,"day"))}renderDateCell(e,t,r,s,o,n){let{props:l}=this,u=o?`:${o.id}`:"",c=o?{resource:new I(this.context,o)}:{},d=o?{"data-resource-id":o.id}:{};return l.datesRepDistinctDays?E(i,{key:e.toISOString()+u,date:e,dateProfile:l.dateProfile,todayRange:r,colCnt:l.dates.length*l.resources.length,dayHeaderFormat:t,colSpan:s,isSticky:n,extraRenderProps:c,extraDataAttrs:d}):E(a,{key:e.getUTCDay()+u,dow:e.getUTCDay(),dayHeaderFormat:t,colSpan:s,isSticky:n,extraRenderProps:c,extraDataAttrs:d})}buildTr(e,t){let{renderIntro:r}=this.props;return e.length||(e=[E("td",{key:0}," ")]),E("tr",{key:t,role:"row"},r&&r(t),e)}}function N(e,t,r){return e||v(t,r)}class H{constructor(e){let t={},r=[];for(let s=0;s<e.length;s+=1){let o=e[s].id;r.push(o),t[o]=s}this.ids=r,this.indicesById=t,this.length=e.length}}class U{constructor(e,t,r){this.dayTableModel=e,this.resources=t,this.context=r,this.resourceIndex=new H(t),this.rowCnt=e.rowCnt,this.colCnt=e.colCnt*t.length,this.cells=this.buildCells()}buildCells(){let{rowCnt:e,dayTableModel:t,resources:r}=this,s=[];for(let o=0;o<e;o+=1){let e=[];for(let s=0;s<t.colCnt;s+=1)for(let n=0;n<r.length;n+=1){let l=r[n],i={resource:new I(this.context,l)},a={"data-resource-id":l.id},u=["fc-resource"],c={resourceId:l.id},d=t.cells[o][s].date;e[this.computeCol(s,n)]={key:l.id+":"+d.toISOString(),date:d,extraRenderProps:i,extraDataAttrs:a,extraClassNames:u,extraDateSpan:c}}s.push(e)}return s}}class z extends U{computeCol(e,t){return t*this.dayTableModel.colCnt+e}computeColRanges(e,t,r){return[{firstCol:this.computeCol(e,r),lastCol:this.computeCol(t,r),isStart:!0,isEnd:!0}]}}class K extends U{computeCol(e,t){return e*this.resources.length+t}computeColRanges(e,t,r){let s=[];for(let o=e;o<=t;o+=1){let n=this.computeCol(o,r);s.push({firstCol:n,lastCol:n,isStart:o===e,isEnd:o===t})}return s}}const M=[];class L{constructor(){this.joinDateSelection=n(this.joinSegs),this.joinBusinessHours=n(this.joinSegs),this.joinFgEvents=n(this.joinSegs),this.joinBgEvents=n(this.joinSegs),this.joinEventDrags=n(this.joinInteractions),this.joinEventResizes=n(this.joinInteractions)}joinProps(e,t){let r=[],s=[],o=[],n=[],l=[],i=[],a="",u=t.resourceIndex.ids.concat([""]);for(let t of u){let u=e[t];r.push(u.dateSelectionSegs),s.push(t?u.businessHourSegs:M),o.push(t?u.fgEventSegs:M),n.push(u.bgEventSegs),l.push(u.eventDrag),i.push(u.eventResize),a=a||u.eventSelection}return{dateSelectionSegs:this.joinDateSelection(t,...r),businessHourSegs:this.joinBusinessHours(t,...s),fgEventSegs:this.joinFgEvents(t,...o),bgEventSegs:this.joinBgEvents(t,...n),eventDrag:this.joinEventDrags(t,...l),eventResize:this.joinEventResizes(t,...i),eventSelection:a}}joinSegs(e,...t){let r=e.resources.length,s=[];for(let o=0;o<r;o+=1){for(let r of t[o])s.push(...this.transformSeg(r,e,o));for(let n of t[r])s.push(...this.transformSeg(n,e,o))}return s}expandSegs(e,t){let r=e.resources.length,s=[];for(let o=0;o<r;o+=1)for(let r of t)s.push(...this.transformSeg(r,e,o));return s}joinInteractions(e,...t){let r=e.resources.length,s={},o=[],n=!1,l=!1;for(let i=0;i<r;i+=1){let a=t[i];if(a){n=!0;for(let t of a.segs)o.push(...this.transformSeg(t,e,i));Object.assign(s,a.affectedInstances),l=l||a.isEvent}if(t[r])for(let s of t[r].segs)o.push(...this.transformSeg(s,e,i))}return n?{affectedInstances:s,segs:o,isEvent:l}:null}}class V extends e{getKeyInfo(e){let{resourceDayTableModel:t}=e,r=u(t.resourceIndex.indicesById,(e=>t.resources[e]));return r[""]={},r}getKeysForDateSpan(e){return[e.resourceId||""]}getKeysForEventDef(e){let t=e.resourceIds;return t.length?t:[""]}}function G(e,t){return J(e,[],t,!1,{},!0).map((e=>e.resource))}function J(e,t,r,s,o,n){let l=function(e,t,r,s){let o=function(e,t){let r={};for(let t in e){let s=e[t];r[t]={resource:s,resourceFields:$(s),children:[]}}for(let s in e){let o=e[s];if(o.parentId){let e=r[o.parentId];e&&X(r[s],e.children,t)}}return r}(e,s),n=[];for(let e in o){let l=o[e];l.resource.parentId||Q(l,n,r,0,t,s)}return n}(e,s?-1:1,t,r),i=[];return W(l,i,s,[],0,o,n),i}function W(e,t,r,s,o,n,l){for(let i=0;i<e.length;i+=1){let a=e[i],u=a.group;if(u)if(r){let e=t.length,i=s.length;if(W(a.children,t,r,s.concat(0),o,n,l),e<t.length){let r=t[e];(r.rowSpans=r.rowSpans.slice())[i]=t.length-e}}else{let e=u.spec.field+":"+u.value,i=null!=n[e]?n[e]:l;t.push({id:e,group:u,isExpanded:i}),i&&W(a.children,t,r,s,o+1,n,l)}else if(a.resource){let e=a.resource.id,i=null!=n[e]?n[e]:l;t.push({id:e,rowSpans:s,depth:o,isExpanded:i,hasChildren:Boolean(a.children.length),resource:a.resource,resourceFields:a.resourceFields}),i&&W(a.children,t,r,s,o+1,n,l)}}}function Q(e,t,r,s,o,n){if(r.length&&(-1===o||s<=o)){let l=function(e,t,r){let s,o,n=e.resourceFields[r.field];if(r.order)for(o=0;o<t.length;o+=1){let e=t[o];if(e.group){let t=x(n,e.group.value)*r.order;if(0===t){s=e;break}if(t<0)break}}else for(o=0;o<t.length;o+=1){let e=t[o];if(e.group&&n===e.group.value){s=e;break}}s||(s={group:{value:n,spec:r},children:[]},t.splice(o,0,s));return s}(e,t,r[0]);Q(e,l.children,r.slice(1),s+1,o,n)}else X(e,t,n)}function X(e,t,r){let s;for(s=0;s<t.length;s+=1){if(m(t[s].resourceFields,e.resourceFields,r)>0)break}t.splice(s,0,e)}function $(e){let t=Object.assign(Object.assign(Object.assign({},e.extendedProps),e.ui),e);return delete t.ui,delete t.extendedProps,t}export{U as A,w as D,I as R,L as V,O as a,F as b,z as c,K as d,V as e,G as f,_ as g,P as h,J as j,$ as k,k as l,j as p};
1
+ import{aW as e,am as t,B as r,A as s,V as o,z as n,a6 as l,bK as i,bL as a,a as u,ag as c,g as d,U as h,S as g,_ as p,C as f,bt as C,bJ as v,n as S,aQ as b,ao as x,an as m}from"../core/internal-common.js";import{createElement as E,Fragment as y}from"../../preact/dist/preact.mjs.js";const D="_fc:",R={id:String,parentId:String,children:S,title:String,businessHours:S,extendedProps:S,eventEditable:Boolean,eventStartEditable:Boolean,eventDurationEditable:Boolean,eventConstraint:S,eventOverlap:Boolean,eventAllow:S,eventClassNames:b,eventBackgroundColor:String,eventBorderColor:String,eventTextColor:String,eventColor:String};function j(e,t="",r,s){let{refined:o,extra:n}=c(e,R),l={id:o.id||D+d(),parentId:o.parentId||t,title:o.title||"",businessHours:o.businessHours?h(o.businessHours,s):null,ui:g({editable:o.eventEditable,startEditable:o.eventStartEditable,durationEditable:o.eventDurationEditable,constraint:o.eventConstraint,overlap:o.eventOverlap,allow:o.eventAllow,classNames:o.eventClassNames,backgroundColor:o.eventBackgroundColor,borderColor:o.eventBorderColor,textColor:o.eventTextColor,color:o.eventColor},s),extendedProps:Object.assign(Object.assign({},n),o.extendedProps)};if(Object.freeze(l.ui.classNames),Object.freeze(l.extendedProps),r[l.id]);else if(r[l.id]=l,o.children)for(let e of o.children)j(e,l.id,r,s);return l}function _(e){return 0===e.indexOf(D)?"":e}class I{constructor(e,t){this._context=e,this._resource=t}setProp(e,t){let r=this._resource;this._context.dispatch({type:"SET_RESOURCE_PROP",resourceId:r.id,propName:e,propValue:t}),this.sync(r)}setExtendedProp(e,t){let r=this._resource;this._context.dispatch({type:"SET_RESOURCE_EXTENDED_PROP",resourceId:r.id,propName:e,propValue:t}),this.sync(r)}sync(e){let t=this._context,r=e.id;this._resource=t.getCurrentData().resourceStore[r],t.emitter.trigger("resourceChange",{oldResource:new I(t,e),resource:this,revert(){t.dispatch({type:"ADD_RESOURCE",resourceHash:{[r]:e}})}})}remove(){let e=this._context,t=this._resource,r=t.id;e.dispatch({type:"REMOVE_RESOURCE",resourceId:r}),e.emitter.trigger("resourceRemove",{resource:this,revert(){e.dispatch({type:"ADD_RESOURCE",resourceHash:{[r]:t}})}})}getParent(){let e=this._context,t=this._resource.parentId;return t?new I(e,e.getCurrentData().resourceStore[t]):null}getChildren(){let e=this._resource.id,t=this._context,{resourceStore:r}=t.getCurrentData(),s=[];for(let o in r)r[o].parentId===e&&s.push(new I(t,r[o]));return s}getEvents(){let e=this._resource.id,t=this._context,{defs:r,instances:s}=t.getCurrentData().eventStore,o=[];for(let n in s){let l=s[n],i=r[l.defId];-1!==i.resourceIds.indexOf(e)&&o.push(new p(t,i,l))}return o}get id(){return _(this._resource.id)}get title(){return this._resource.title}get eventConstraint(){return this._resource.ui.constraints[0]||null}get eventOverlap(){return this._resource.ui.overlap}get eventAllow(){return this._resource.ui.allows[0]||null}get eventBackgroundColor(){return this._resource.ui.backgroundColor}get eventBorderColor(){return this._resource.ui.borderColor}get eventTextColor(){return this._resource.ui.textColor}get eventClassNames(){return this._resource.ui.classNames}get extendedProps(){return this._resource.extendedProps}toPlainObject(e={}){let t=this._resource,{ui:r}=t,s=this.id,o={};return s&&(o.id=s),t.title&&(o.title=t.title),e.collapseEventColor&&r.backgroundColor&&r.backgroundColor===r.borderColor?o.eventColor=r.backgroundColor:(r.backgroundColor&&(o.eventBackgroundColor=r.backgroundColor),r.borderColor&&(o.eventBorderColor=r.borderColor)),r.textColor&&(o.eventTextColor=r.textColor),r.classNames.length&&(o.eventClassNames=r.classNames),Object.keys(t.extendedProps).length&&(e.collapseExtendedProps?Object.assign(o,t.extendedProps):o.extendedProps=t.extendedProps),o}toJSON(){return this.toPlainObject()}}class O extends e{getKeyInfo(e){return Object.assign({"":{}},e.resourceStore)}getKeysForDateSpan(e){return[e.resourceId||""]}getKeysForEventDef(e){let t=e.resourceIds;return t.length?t:[""]}}const w=t("id,title");function P(e,t){let{emitter:r}=t;r.hasHandlers("resourcesSet")&&r.trigger("resourcesSet",function(e,t){let r=[];for(let s in e)r.push(new I(t,e[s]));return r}(e,t))}function k(e){return{resource:new I(e.context,e.resource)}}class T extends r{constructor(){super(...arguments),this.refineRenderProps=s(A)}render(){const{props:e}=this;return E(o.Consumer,null,(t=>{let{options:r}=t,s=this.refineRenderProps({resource:e.resource,date:e.date,context:t});return E(f,Object.assign({},e,{elAttrs:Object.assign(Object.assign({},e.elAttrs),{"data-resource-id":e.resource.id,"data-date":e.date?C(e.date):void 0}),renderProps:s,generatorName:"resourceLabelContent",customGenerator:r.resourceLabelContent,defaultGenerator:B,classNameGenerator:r.resourceLabelClassNames,didMount:r.resourceLabelDidMount,willUnmount:r.resourceLabelWillUnmount}))}))}}function B(e){return e.resource.title||e.resource.id}function A(e){return{resource:new I(e.context,e.resource),date:e.date?e.context.dateEnv.toDate(e.date):null,view:e.context.viewApi}}class F extends r{render(){let{props:e}=this;return E(T,{elTag:"th",elClasses:["fc-col-header-cell","fc-resource"],elAttrs:{role:"columnheader",colSpan:e.colSpan},resource:e.resource,date:e.date},(t=>E("div",{className:"fc-scrollgrid-sync-inner"},E(t,{elTag:"span",elClasses:["fc-col-header-cell-cushion",e.isSticky&&"fc-sticky"]}))))}}class N extends r{constructor(){super(...arguments),this.buildDateFormat=n(H)}render(){let{props:e,context:t}=this,r=this.buildDateFormat(t.options.dayHeaderFormat,e.datesRepDistinctDays,e.dates.length);return E(l,{unit:"day"},((s,o)=>1===e.dates.length?this.renderResourceRow(e.resources,e.dates[0]):t.options.datesAboveResources?this.renderDayAndResourceRows(e.dates,r,o,e.resources):this.renderResourceAndDayRows(e.resources,e.dates,r,o)))}renderResourceRow(e,t){let r=e.map((e=>E(F,{key:e.id,resource:e,colSpan:1,date:t})));return this.buildTr(r,"resources")}renderDayAndResourceRows(e,t,r,s){let o=[],n=[];for(let l of e){o.push(this.renderDateCell(l,t,r,s.length,null,!0));for(let e of s)n.push(E(F,{key:e.id+":"+l.toISOString(),resource:e,colSpan:1,date:l}))}return E(y,null,this.buildTr(o,"day"),this.buildTr(n,"resources"))}renderResourceAndDayRows(e,t,r,s){let o=[],n=[];for(let l of e){o.push(E(F,{key:l.id,resource:l,colSpan:t.length,isSticky:!0}));for(let e of t)n.push(this.renderDateCell(e,r,s,1,l))}return E(y,null,this.buildTr(o,"resources"),this.buildTr(n,"day"))}renderDateCell(e,t,r,s,o,n){let{props:l}=this,u=o?`:${o.id}`:"",c=o?{resource:new I(this.context,o)}:{},d=o?{"data-resource-id":o.id}:{};return l.datesRepDistinctDays?E(i,{key:e.toISOString()+u,date:e,dateProfile:l.dateProfile,todayRange:r,colCnt:l.dates.length*l.resources.length,dayHeaderFormat:t,colSpan:s,isSticky:n,extraRenderProps:c,extraDataAttrs:d}):E(a,{key:e.getUTCDay()+u,dow:e.getUTCDay(),dayHeaderFormat:t,colSpan:s,isSticky:n,extraRenderProps:c,extraDataAttrs:d})}buildTr(e,t){let{renderIntro:r}=this.props;return e.length||(e=[E("td",{key:0}," ")]),E("tr",{key:t,role:"row"},r&&r(t),e)}}function H(e,t,r){return e||v(t,r)}class U{constructor(e){let t={},r=[];for(let s=0;s<e.length;s+=1){let o=e[s].id;r.push(o),t[o]=s}this.ids=r,this.indicesById=t,this.length=e.length}}class z{constructor(e,t,r){this.dayTableModel=e,this.resources=t,this.context=r,this.resourceIndex=new U(t),this.rowCnt=e.rowCnt,this.colCnt=e.colCnt*t.length,this.cells=this.buildCells()}buildCells(){let{rowCnt:e,dayTableModel:t,resources:r}=this,s=[];for(let o=0;o<e;o+=1){let e=[];for(let s=0;s<t.colCnt;s+=1)for(let n=0;n<r.length;n+=1){let l=r[n],i={resource:new I(this.context,l)},a={"data-resource-id":l.id},u=["fc-resource"],c={resourceId:l.id},d=t.cells[o][s].date;e[this.computeCol(s,n)]={key:l.id+":"+d.toISOString(),date:d,extraRenderProps:i,extraDataAttrs:a,extraClassNames:u,extraDateSpan:c}}s.push(e)}return s}}class K extends z{computeCol(e,t){return t*this.dayTableModel.colCnt+e}computeColRanges(e,t,r){return[{firstCol:this.computeCol(e,r),lastCol:this.computeCol(t,r),isStart:!0,isEnd:!0}]}}class M extends z{computeCol(e,t){return e*this.resources.length+t}computeColRanges(e,t,r){let s=[];for(let o=e;o<=t;o+=1){let n=this.computeCol(o,r);s.push({firstCol:n,lastCol:n,isStart:o===e,isEnd:o===t})}return s}}const L=[];class V{constructor(){this.joinDateSelection=n(this.joinSegs),this.joinBusinessHours=n(this.joinSegs),this.joinFgEvents=n(this.joinSegs),this.joinBgEvents=n(this.joinSegs),this.joinEventDrags=n(this.joinInteractions),this.joinEventResizes=n(this.joinInteractions)}joinProps(e,t){let r=[],s=[],o=[],n=[],l=[],i=[],a="",u=t.resourceIndex.ids.concat([""]);for(let t of u){let u=e[t];r.push(u.dateSelectionSegs),s.push(t?u.businessHourSegs:L),o.push(t?u.fgEventSegs:L),n.push(u.bgEventSegs),l.push(u.eventDrag),i.push(u.eventResize),a=a||u.eventSelection}return{dateSelectionSegs:this.joinDateSelection(t,...r),businessHourSegs:this.joinBusinessHours(t,...s),fgEventSegs:this.joinFgEvents(t,...o),bgEventSegs:this.joinBgEvents(t,...n),eventDrag:this.joinEventDrags(t,...l),eventResize:this.joinEventResizes(t,...i),eventSelection:a}}joinSegs(e,...t){let r=e.resources.length,s=[];for(let o=0;o<r;o+=1){for(let r of t[o])s.push(...this.transformSeg(r,e,o));for(let n of t[r])s.push(...this.transformSeg(n,e,o))}return s}expandSegs(e,t){let r=e.resources.length,s=[];for(let o=0;o<r;o+=1)for(let r of t)s.push(...this.transformSeg(r,e,o));return s}joinInteractions(e,...t){let r=e.resources.length,s={},o=[],n=!1,l=!1;for(let i=0;i<r;i+=1){let a=t[i];if(a){n=!0;for(let t of a.segs)o.push(...this.transformSeg(t,e,i));Object.assign(s,a.affectedInstances),l=l||a.isEvent}if(t[r])for(let s of t[r].segs)o.push(...this.transformSeg(s,e,i))}return n?{affectedInstances:s,segs:o,isEvent:l}:null}}class G extends e{getKeyInfo(e){let{resourceDayTableModel:t}=e,r=u(t.resourceIndex.indicesById,(e=>t.resources[e]));return r[""]={},r}getKeysForDateSpan(e){return[e.resourceId||""]}getKeysForEventDef(e){let t=e.resourceIds;return t.length?t:[""]}}function J(e,t){return W(e,[],t,!1,{},!0).map((e=>e.resource))}function W(e,t,r,s,o,n){let l=function(e,t,r,s){let o=function(e,t){let r={};for(let t in e){let s=e[t];r[t]={resource:s,resourceFields:q(s),children:[]}}for(let s in e){let o=e[s];if(o.parentId){let e=r[o.parentId];e&&$(r[s],e.children,t)}}return r}(e,s),n=[];for(let e in o){let l=o[e];l.resource.parentId||X(l,n,r,0,t,s)}return n}(e,s?-1:1,t,r),i=[];return Q(l,i,s,[],0,o,n),i}function Q(e,t,r,s,o,n,l){for(let i=0;i<e.length;i+=1){let a=e[i],u=a.group;if(u)if(r){let e=t.length,i=s.length;if(Q(a.children,t,r,s.concat(0),o,n,l),e<t.length){let r=t[e];(r.rowSpans=r.rowSpans.slice())[i]=t.length-e}}else{let e=u.spec.field+":"+u.value,i=null!=n[e]?n[e]:l;t.push({id:e,group:u,isExpanded:i}),i&&Q(a.children,t,r,s,o+1,n,l)}else if(a.resource){let e=a.resource.id,i=null!=n[e]?n[e]:l;t.push({id:e,rowSpans:s,depth:o,isExpanded:i,hasChildren:Boolean(a.children.length),resource:a.resource,resourceFields:a.resourceFields}),i&&Q(a.children,t,r,s,o+1,n,l)}}}function X(e,t,r,s,o,n){if(r.length&&(-1===o||s<=o)){let l=function(e,t,r){let s,o,n=e.resourceFields[r.field];if(r.order)for(o=0;o<t.length;o+=1){let e=t[o];if(e.group){let t=x(n,e.group.value)*r.order;if(0===t){s=e;break}if(t<0)break}}else for(o=0;o<t.length;o+=1){let e=t[o];if(e.group&&n===e.group.value){s=e;break}}s||(s={group:{value:n,spec:r},children:[]},t.splice(o,0,s));return s}(e,t,r[0]);X(e,l.children,r.slice(1),s+1,o,n)}else $(e,t,n)}function $(e,t,r){let s;for(s=0;s<t.length;s+=1){if(m(t[s].resourceFields,e.resourceFields,r)>0)break}t.splice(s,0,e)}function q(e){let t=Object.assign(Object.assign(Object.assign({},e.extendedProps),e.ui),e);return delete t.ui,delete t.extendedProps,t}function Y(e,t){return e.spec===t.spec&&e.value===t.value}export{z as A,w as D,I as R,V,O as a,N as b,K as c,M as d,G as e,J as f,_ as g,P as h,Y as i,W as j,q as k,T as l,j as p,k as r};
2
2
  //# sourceMappingURL=internal-common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal-common.js","sources":["../../../../../node_modules/@fullcalendar/resource/internal-common.js"],"sourcesContent":["import { refineProps, guid, parseBusinessHours, createEventUi, identity, parseClassNames, EventImpl, Splitter, parseFieldSpecs, BaseComponent, memoizeObjArg, ViewContextType, ContentContainer, formatDayString, memoize, NowTimer, TableDateCell, TableDowCell, computeFallbackHeaderFormat, mapHash, flexibleCompare, compareByFieldSpecs } from '@fullcalendar/core/internal.js';\nimport { createElement, Fragment } from '@fullcalendar/core/preact.js';\n\nconst PRIVATE_ID_PREFIX = '_fc:';\nconst RESOURCE_REFINERS = {\n id: String,\n parentId: String,\n children: identity,\n title: String,\n businessHours: identity,\n extendedProps: identity,\n // event-ui\n eventEditable: Boolean,\n eventStartEditable: Boolean,\n eventDurationEditable: Boolean,\n eventConstraint: identity,\n eventOverlap: Boolean,\n eventAllow: identity,\n eventClassNames: parseClassNames,\n eventBackgroundColor: String,\n eventBorderColor: String,\n eventTextColor: String,\n eventColor: String,\n};\n/*\nneeds a full store so that it can populate children too\n*/\nfunction parseResource(raw, parentId = '', store, context) {\n let { refined, extra } = refineProps(raw, RESOURCE_REFINERS);\n let resource = {\n id: refined.id || (PRIVATE_ID_PREFIX + guid()),\n parentId: refined.parentId || parentId,\n title: refined.title || '',\n businessHours: refined.businessHours ? parseBusinessHours(refined.businessHours, context) : null,\n ui: createEventUi({\n editable: refined.eventEditable,\n startEditable: refined.eventStartEditable,\n durationEditable: refined.eventDurationEditable,\n constraint: refined.eventConstraint,\n overlap: refined.eventOverlap,\n allow: refined.eventAllow,\n classNames: refined.eventClassNames,\n backgroundColor: refined.eventBackgroundColor,\n borderColor: refined.eventBorderColor,\n textColor: refined.eventTextColor,\n color: refined.eventColor,\n }, context),\n extendedProps: Object.assign(Object.assign({}, extra), refined.extendedProps),\n };\n // help out ResourceApi from having user modify props\n Object.freeze(resource.ui.classNames);\n Object.freeze(resource.extendedProps);\n if (store[resource.id]) ;\n else {\n store[resource.id] = resource;\n if (refined.children) {\n for (let childInput of refined.children) {\n parseResource(childInput, resource.id, store, context);\n }\n }\n }\n return resource;\n}\n/*\nTODO: use this in more places\n*/\nfunction getPublicId(id) {\n if (id.indexOf(PRIVATE_ID_PREFIX) === 0) {\n return '';\n }\n return id;\n}\n\nclass ResourceApi {\n constructor(_context, _resource) {\n this._context = _context;\n this._resource = _resource;\n }\n setProp(name, value) {\n let oldResource = this._resource;\n this._context.dispatch({\n type: 'SET_RESOURCE_PROP',\n resourceId: oldResource.id,\n propName: name,\n propValue: value,\n });\n this.sync(oldResource);\n }\n setExtendedProp(name, value) {\n let oldResource = this._resource;\n this._context.dispatch({\n type: 'SET_RESOURCE_EXTENDED_PROP',\n resourceId: oldResource.id,\n propName: name,\n propValue: value,\n });\n this.sync(oldResource);\n }\n sync(oldResource) {\n let context = this._context;\n let resourceId = oldResource.id;\n // TODO: what if dispatch didn't complete synchronously?\n this._resource = context.getCurrentData().resourceStore[resourceId];\n context.emitter.trigger('resourceChange', {\n oldResource: new ResourceApi(context, oldResource),\n resource: this,\n revert() {\n context.dispatch({\n type: 'ADD_RESOURCE',\n resourceHash: {\n [resourceId]: oldResource,\n },\n });\n },\n });\n }\n remove() {\n let context = this._context;\n let internalResource = this._resource;\n let resourceId = internalResource.id;\n context.dispatch({\n type: 'REMOVE_RESOURCE',\n resourceId,\n });\n context.emitter.trigger('resourceRemove', {\n resource: this,\n revert() {\n context.dispatch({\n type: 'ADD_RESOURCE',\n resourceHash: {\n [resourceId]: internalResource,\n },\n });\n },\n });\n }\n getParent() {\n let context = this._context;\n let parentId = this._resource.parentId;\n if (parentId) {\n return new ResourceApi(context, context.getCurrentData().resourceStore[parentId]);\n }\n return null;\n }\n getChildren() {\n let thisResourceId = this._resource.id;\n let context = this._context;\n let { resourceStore } = context.getCurrentData();\n let childApis = [];\n for (let resourceId in resourceStore) {\n if (resourceStore[resourceId].parentId === thisResourceId) {\n childApis.push(new ResourceApi(context, resourceStore[resourceId]));\n }\n }\n return childApis;\n }\n /*\n this is really inefficient!\n TODO: make EventApi::resourceIds a hash or keep an index in the Calendar's state\n */\n getEvents() {\n let thisResourceId = this._resource.id;\n let context = this._context;\n let { defs, instances } = context.getCurrentData().eventStore;\n let eventApis = [];\n for (let instanceId in instances) {\n let instance = instances[instanceId];\n let def = defs[instance.defId];\n if (def.resourceIds.indexOf(thisResourceId) !== -1) { // inefficient!!!\n eventApis.push(new EventImpl(context, def, instance));\n }\n }\n return eventApis;\n }\n get id() { return getPublicId(this._resource.id); }\n get title() { return this._resource.title; }\n get eventConstraint() { return this._resource.ui.constraints[0] || null; } // TODO: better type\n get eventOverlap() { return this._resource.ui.overlap; }\n get eventAllow() { return this._resource.ui.allows[0] || null; } // TODO: better type\n get eventBackgroundColor() { return this._resource.ui.backgroundColor; }\n get eventBorderColor() { return this._resource.ui.borderColor; }\n get eventTextColor() { return this._resource.ui.textColor; }\n // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n get eventClassNames() { return this._resource.ui.classNames; }\n get extendedProps() { return this._resource.extendedProps; }\n toPlainObject(settings = {}) {\n let internal = this._resource;\n let { ui } = internal;\n let publicId = this.id;\n let res = {};\n if (publicId) {\n res.id = publicId;\n }\n if (internal.title) {\n res.title = internal.title;\n }\n if (settings.collapseEventColor && ui.backgroundColor && ui.backgroundColor === ui.borderColor) {\n res.eventColor = ui.backgroundColor;\n }\n else {\n if (ui.backgroundColor) {\n res.eventBackgroundColor = ui.backgroundColor;\n }\n if (ui.borderColor) {\n res.eventBorderColor = ui.borderColor;\n }\n }\n if (ui.textColor) {\n res.eventTextColor = ui.textColor;\n }\n if (ui.classNames.length) {\n res.eventClassNames = ui.classNames;\n }\n if (Object.keys(internal.extendedProps).length) {\n if (settings.collapseExtendedProps) {\n Object.assign(res, internal.extendedProps);\n }\n else {\n res.extendedProps = internal.extendedProps;\n }\n }\n return res;\n }\n toJSON() {\n return this.toPlainObject();\n }\n}\nfunction buildResourceApis(resourceStore, context) {\n let resourceApis = [];\n for (let resourceId in resourceStore) {\n resourceApis.push(new ResourceApi(context, resourceStore[resourceId]));\n }\n return resourceApis;\n}\n\n/*\nsplits things BASED OFF OF which resources they are associated with.\ncreates a '' entry which is when something has NO resource.\n*/\nclass ResourceSplitter extends Splitter {\n getKeyInfo(props) {\n return Object.assign({ '': {} }, props.resourceStore);\n }\n getKeysForDateSpan(dateSpan) {\n return [dateSpan.resourceId || ''];\n }\n getKeysForEventDef(eventDef) {\n let resourceIds = eventDef.resourceIds;\n if (!resourceIds.length) {\n return [''];\n }\n return resourceIds;\n }\n}\n\nconst DEFAULT_RESOURCE_ORDER = parseFieldSpecs('id,title');\nfunction handleResourceStore(resourceStore, calendarData) {\n let { emitter } = calendarData;\n if (emitter.hasHandlers('resourcesSet')) {\n emitter.trigger('resourcesSet', buildResourceApis(resourceStore, calendarData));\n }\n}\n\nfunction refineRenderProps$1(input) {\n return {\n resource: new ResourceApi(input.context, input.resource),\n };\n}\n\n// TODO: not used for Spreadsheet. START USING. difficult because of col-specific rendering props\nclass ResourceLabelContainer extends BaseComponent {\n constructor() {\n super(...arguments);\n this.refineRenderProps = memoizeObjArg(refineRenderProps);\n }\n render() {\n const { props } = this;\n return (createElement(ViewContextType.Consumer, null, (context) => {\n let { options } = context;\n let renderProps = this.refineRenderProps({\n resource: props.resource,\n date: props.date,\n context,\n });\n return (createElement(ContentContainer, Object.assign({}, props, { elAttrs: Object.assign(Object.assign({}, props.elAttrs), { 'data-resource-id': props.resource.id, 'data-date': props.date ? formatDayString(props.date) : undefined }), renderProps: renderProps, generatorName: \"resourceLabelContent\", customGenerator: options.resourceLabelContent, defaultGenerator: renderInnerContent, classNameGenerator: options.resourceLabelClassNames, didMount: options.resourceLabelDidMount, willUnmount: options.resourceLabelWillUnmount })));\n }));\n }\n}\nfunction renderInnerContent(props) {\n return props.resource.title || props.resource.id;\n}\nfunction refineRenderProps(input) {\n return {\n resource: new ResourceApi(input.context, input.resource),\n date: input.date ? input.context.dateEnv.toDate(input.date) : null,\n view: input.context.viewApi,\n };\n}\n\nclass ResourceCell extends BaseComponent {\n render() {\n let { props } = this;\n return (createElement(ResourceLabelContainer, { elTag: \"th\", elClasses: ['fc-col-header-cell', 'fc-resource'], elAttrs: {\n role: 'columnheader',\n colSpan: props.colSpan,\n }, resource: props.resource, date: props.date }, (InnerContent) => (createElement(\"div\", { className: \"fc-scrollgrid-sync-inner\" },\n createElement(InnerContent, { elTag: \"span\", elClasses: [\n 'fc-col-header-cell-cushion',\n props.isSticky && 'fc-sticky',\n ] })))));\n }\n}\n\nclass ResourceDayHeader extends BaseComponent {\n constructor() {\n super(...arguments);\n this.buildDateFormat = memoize(buildDateFormat);\n }\n render() {\n let { props, context } = this;\n let dateFormat = this.buildDateFormat(context.options.dayHeaderFormat, props.datesRepDistinctDays, props.dates.length);\n return (createElement(NowTimer, { unit: \"day\" }, (nowDate, todayRange) => {\n if (props.dates.length === 1) {\n return this.renderResourceRow(props.resources, props.dates[0]);\n }\n if (context.options.datesAboveResources) {\n return this.renderDayAndResourceRows(props.dates, dateFormat, todayRange, props.resources);\n }\n return this.renderResourceAndDayRows(props.resources, props.dates, dateFormat, todayRange);\n }));\n }\n renderResourceRow(resources, date) {\n let resourceCells = resources.map((resource) => (createElement(ResourceCell, { key: resource.id, resource: resource, colSpan: 1, date: date })));\n return this.buildTr(resourceCells, 'resources');\n }\n renderDayAndResourceRows(dates, dateFormat, todayRange, resources) {\n let dateCells = [];\n let resourceCells = [];\n for (let date of dates) {\n dateCells.push(this.renderDateCell(date, dateFormat, todayRange, resources.length, null, true));\n for (let resource of resources) {\n resourceCells.push(createElement(ResourceCell, { key: resource.id + ':' + date.toISOString(), resource: resource, colSpan: 1, date: date }));\n }\n }\n return (createElement(Fragment, null,\n this.buildTr(dateCells, 'day'),\n this.buildTr(resourceCells, 'resources')));\n }\n renderResourceAndDayRows(resources, dates, dateFormat, todayRange) {\n let resourceCells = [];\n let dateCells = [];\n for (let resource of resources) {\n resourceCells.push(createElement(ResourceCell, { key: resource.id, resource: resource, colSpan: dates.length, isSticky: true }));\n for (let date of dates) {\n dateCells.push(this.renderDateCell(date, dateFormat, todayRange, 1, resource));\n }\n }\n return (createElement(Fragment, null,\n this.buildTr(resourceCells, 'resources'),\n this.buildTr(dateCells, 'day')));\n }\n // a cell with date text. might have a resource associated with it\n renderDateCell(date, dateFormat, todayRange, colSpan, resource, isSticky) {\n let { props } = this;\n let keyPostfix = resource ? `:${resource.id}` : '';\n let extraRenderProps = resource ? { resource: new ResourceApi(this.context, resource) } : {};\n let extraDataAttrs = resource ? { 'data-resource-id': resource.id } : {};\n return props.datesRepDistinctDays ? (createElement(TableDateCell, { key: date.toISOString() + keyPostfix, date: date, dateProfile: props.dateProfile, todayRange: todayRange, colCnt: props.dates.length * props.resources.length, dayHeaderFormat: dateFormat, colSpan: colSpan, isSticky: isSticky, extraRenderProps: extraRenderProps, extraDataAttrs: extraDataAttrs })) : (createElement(TableDowCell // we can't leverage the pure-componentness becausae the extra* props are new every time :(\n , { key: date.getUTCDay() + keyPostfix, dow: date.getUTCDay(), dayHeaderFormat: dateFormat, colSpan: colSpan, isSticky: isSticky, extraRenderProps: extraRenderProps, extraDataAttrs: extraDataAttrs }));\n }\n buildTr(cells, key) {\n let { renderIntro } = this.props;\n if (!cells.length) {\n cells = [createElement(\"td\", { key: 0 }, \"\\u00A0\")];\n }\n return (createElement(\"tr\", { key: key, role: \"row\" },\n renderIntro && renderIntro(key),\n cells));\n }\n}\nfunction buildDateFormat(dayHeaderFormat, datesRepDistinctDays, dayCnt) {\n return dayHeaderFormat || computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt);\n}\n\nclass ResourceIndex {\n constructor(resources) {\n let indicesById = {};\n let ids = [];\n for (let i = 0; i < resources.length; i += 1) {\n let id = resources[i].id;\n ids.push(id);\n indicesById[id] = i;\n }\n this.ids = ids;\n this.indicesById = indicesById;\n this.length = resources.length;\n }\n}\n\nclass AbstractResourceDayTableModel {\n constructor(dayTableModel, resources, context) {\n this.dayTableModel = dayTableModel;\n this.resources = resources;\n this.context = context;\n this.resourceIndex = new ResourceIndex(resources);\n this.rowCnt = dayTableModel.rowCnt;\n this.colCnt = dayTableModel.colCnt * resources.length;\n this.cells = this.buildCells();\n }\n buildCells() {\n let { rowCnt, dayTableModel, resources } = this;\n let rows = [];\n for (let row = 0; row < rowCnt; row += 1) {\n let rowCells = [];\n for (let dateCol = 0; dateCol < dayTableModel.colCnt; dateCol += 1) {\n for (let resourceCol = 0; resourceCol < resources.length; resourceCol += 1) {\n let resource = resources[resourceCol];\n let extraRenderProps = { resource: new ResourceApi(this.context, resource) };\n let extraDataAttrs = { 'data-resource-id': resource.id };\n let extraClassNames = ['fc-resource'];\n let extraDateSpan = { resourceId: resource.id };\n let date = dayTableModel.cells[row][dateCol].date;\n rowCells[this.computeCol(dateCol, resourceCol)] = {\n key: resource.id + ':' + date.toISOString(),\n date,\n extraRenderProps,\n extraDataAttrs,\n extraClassNames,\n extraDateSpan,\n };\n }\n }\n rows.push(rowCells);\n }\n return rows;\n }\n}\n\n/*\nresources over dates\n*/\nclass ResourceDayTableModel extends AbstractResourceDayTableModel {\n computeCol(dateI, resourceI) {\n return resourceI * this.dayTableModel.colCnt + dateI;\n }\n /*\n all date ranges are intact\n */\n computeColRanges(dateStartI, dateEndI, resourceI) {\n return [\n {\n firstCol: this.computeCol(dateStartI, resourceI),\n lastCol: this.computeCol(dateEndI, resourceI),\n isStart: true,\n isEnd: true,\n },\n ];\n }\n}\n\n/*\ndates over resources\n*/\nclass DayResourceTableModel extends AbstractResourceDayTableModel {\n computeCol(dateI, resourceI) {\n return dateI * this.resources.length + resourceI;\n }\n /*\n every single day is broken up\n */\n computeColRanges(dateStartI, dateEndI, resourceI) {\n let segs = [];\n for (let i = dateStartI; i <= dateEndI; i += 1) {\n let col = this.computeCol(i, resourceI);\n segs.push({\n firstCol: col,\n lastCol: col,\n isStart: i === dateStartI,\n isEnd: i === dateEndI,\n });\n }\n return segs;\n }\n}\n\nconst NO_SEGS = []; // for memoizing\nclass VResourceJoiner {\n constructor() {\n this.joinDateSelection = memoize(this.joinSegs);\n this.joinBusinessHours = memoize(this.joinSegs);\n this.joinFgEvents = memoize(this.joinSegs);\n this.joinBgEvents = memoize(this.joinSegs);\n this.joinEventDrags = memoize(this.joinInteractions);\n this.joinEventResizes = memoize(this.joinInteractions);\n }\n /*\n propSets also has a '' key for things with no resource\n */\n joinProps(propSets, resourceDayTable) {\n let dateSelectionSets = [];\n let businessHoursSets = [];\n let fgEventSets = [];\n let bgEventSets = [];\n let eventDrags = [];\n let eventResizes = [];\n let eventSelection = '';\n let keys = resourceDayTable.resourceIndex.ids.concat(['']); // add in the all-resource key\n for (let key of keys) {\n let props = propSets[key];\n dateSelectionSets.push(props.dateSelectionSegs);\n businessHoursSets.push(key ? props.businessHourSegs : NO_SEGS); // don't include redundant all-resource businesshours\n fgEventSets.push(key ? props.fgEventSegs : NO_SEGS); // don't include fg all-resource segs\n bgEventSets.push(props.bgEventSegs);\n eventDrags.push(props.eventDrag);\n eventResizes.push(props.eventResize);\n eventSelection = eventSelection || props.eventSelection;\n }\n return {\n dateSelectionSegs: this.joinDateSelection(resourceDayTable, ...dateSelectionSets),\n businessHourSegs: this.joinBusinessHours(resourceDayTable, ...businessHoursSets),\n fgEventSegs: this.joinFgEvents(resourceDayTable, ...fgEventSets),\n bgEventSegs: this.joinBgEvents(resourceDayTable, ...bgEventSets),\n eventDrag: this.joinEventDrags(resourceDayTable, ...eventDrags),\n eventResize: this.joinEventResizes(resourceDayTable, ...eventResizes),\n eventSelection,\n };\n }\n joinSegs(resourceDayTable, ...segGroups) {\n let resourceCnt = resourceDayTable.resources.length;\n let transformedSegs = [];\n for (let i = 0; i < resourceCnt; i += 1) {\n for (let seg of segGroups[i]) {\n transformedSegs.push(...this.transformSeg(seg, resourceDayTable, i));\n }\n for (let seg of segGroups[resourceCnt]) { // one beyond. the all-resource\n transformedSegs.push(...this.transformSeg(seg, resourceDayTable, i));\n }\n }\n return transformedSegs;\n }\n /*\n for expanding non-resource segs to all resources.\n only for public use.\n no memoizing.\n */\n expandSegs(resourceDayTable, segs) {\n let resourceCnt = resourceDayTable.resources.length;\n let transformedSegs = [];\n for (let i = 0; i < resourceCnt; i += 1) {\n for (let seg of segs) {\n transformedSegs.push(...this.transformSeg(seg, resourceDayTable, i));\n }\n }\n return transformedSegs;\n }\n joinInteractions(resourceDayTable, ...interactions) {\n let resourceCnt = resourceDayTable.resources.length;\n let affectedInstances = {};\n let transformedSegs = [];\n let anyInteractions = false;\n let isEvent = false;\n for (let i = 0; i < resourceCnt; i += 1) {\n let interaction = interactions[i];\n if (interaction) {\n anyInteractions = true;\n for (let seg of interaction.segs) {\n transformedSegs.push(...this.transformSeg(seg, resourceDayTable, i));\n }\n Object.assign(affectedInstances, interaction.affectedInstances);\n isEvent = isEvent || interaction.isEvent;\n }\n if (interactions[resourceCnt]) { // one beyond. the all-resource\n for (let seg of interactions[resourceCnt].segs) {\n transformedSegs.push(...this.transformSeg(seg, resourceDayTable, i));\n }\n }\n }\n if (anyInteractions) {\n return {\n affectedInstances,\n segs: transformedSegs,\n isEvent,\n };\n }\n return null;\n }\n}\n\n/*\nTODO: just use ResourceHash somehow? could then use the generic ResourceSplitter\n*/\nclass VResourceSplitter extends Splitter {\n getKeyInfo(props) {\n let { resourceDayTableModel } = props;\n let hash = mapHash(resourceDayTableModel.resourceIndex.indicesById, (i) => resourceDayTableModel.resources[i]); // :(\n hash[''] = {};\n return hash;\n }\n getKeysForDateSpan(dateSpan) {\n return [dateSpan.resourceId || ''];\n }\n getKeysForEventDef(eventDef) {\n let resourceIds = eventDef.resourceIds;\n if (!resourceIds.length) {\n return [''];\n }\n return resourceIds;\n }\n}\n\n/*\ndoesn't accept grouping\n*/\nfunction flattenResources(resourceStore, orderSpecs) {\n return buildRowNodes(resourceStore, [], orderSpecs, false, {}, true)\n .map((node) => node.resource);\n}\nfunction buildRowNodes(resourceStore, groupSpecs, orderSpecs, isVGrouping, expansions, expansionDefault) {\n let complexNodes = buildHierarchy(resourceStore, isVGrouping ? -1 : 1, groupSpecs, orderSpecs);\n let flatNodes = [];\n flattenNodes(complexNodes, flatNodes, isVGrouping, [], 0, expansions, expansionDefault);\n return flatNodes;\n}\nfunction flattenNodes(complexNodes, res, isVGrouping, rowSpans, depth, expansions, expansionDefault) {\n for (let i = 0; i < complexNodes.length; i += 1) {\n let complexNode = complexNodes[i];\n let group = complexNode.group;\n if (group) {\n if (isVGrouping) {\n let firstRowIndex = res.length;\n let rowSpanIndex = rowSpans.length;\n flattenNodes(complexNode.children, res, isVGrouping, rowSpans.concat(0), depth, expansions, expansionDefault);\n if (firstRowIndex < res.length) {\n let firstRow = res[firstRowIndex];\n let firstRowSpans = firstRow.rowSpans = firstRow.rowSpans.slice();\n firstRowSpans[rowSpanIndex] = res.length - firstRowIndex;\n }\n }\n else {\n let id = group.spec.field + ':' + group.value;\n let isExpanded = expansions[id] != null ? expansions[id] : expansionDefault;\n res.push({ id, group, isExpanded });\n if (isExpanded) {\n flattenNodes(complexNode.children, res, isVGrouping, rowSpans, depth + 1, expansions, expansionDefault);\n }\n }\n }\n else if (complexNode.resource) {\n let id = complexNode.resource.id;\n let isExpanded = expansions[id] != null ? expansions[id] : expansionDefault;\n res.push({\n id,\n rowSpans,\n depth,\n isExpanded,\n hasChildren: Boolean(complexNode.children.length),\n resource: complexNode.resource,\n resourceFields: complexNode.resourceFields,\n });\n if (isExpanded) {\n flattenNodes(complexNode.children, res, isVGrouping, rowSpans, depth + 1, expansions, expansionDefault);\n }\n }\n }\n}\nfunction buildHierarchy(resourceStore, maxDepth, groupSpecs, orderSpecs) {\n let resourceNodes = buildResourceNodes(resourceStore, orderSpecs);\n let builtNodes = [];\n for (let resourceId in resourceNodes) {\n let resourceNode = resourceNodes[resourceId];\n if (!resourceNode.resource.parentId) {\n insertResourceNode(resourceNode, builtNodes, groupSpecs, 0, maxDepth, orderSpecs);\n }\n }\n return builtNodes;\n}\nfunction buildResourceNodes(resourceStore, orderSpecs) {\n let nodeHash = {};\n for (let resourceId in resourceStore) {\n let resource = resourceStore[resourceId];\n nodeHash[resourceId] = {\n resource,\n resourceFields: buildResourceFields(resource),\n children: [],\n };\n }\n for (let resourceId in resourceStore) {\n let resource = resourceStore[resourceId];\n if (resource.parentId) {\n let parentNode = nodeHash[resource.parentId];\n if (parentNode) {\n insertResourceNodeInSiblings(nodeHash[resourceId], parentNode.children, orderSpecs);\n }\n }\n }\n return nodeHash;\n}\nfunction insertResourceNode(resourceNode, nodes, groupSpecs, depth, maxDepth, orderSpecs) {\n if (groupSpecs.length && (maxDepth === -1 || depth <= maxDepth)) {\n let groupNode = ensureGroupNodes(resourceNode, nodes, groupSpecs[0]);\n insertResourceNode(resourceNode, groupNode.children, groupSpecs.slice(1), depth + 1, maxDepth, orderSpecs);\n }\n else {\n insertResourceNodeInSiblings(resourceNode, nodes, orderSpecs);\n }\n}\nfunction ensureGroupNodes(resourceNode, nodes, groupSpec) {\n let groupValue = resourceNode.resourceFields[groupSpec.field];\n let groupNode;\n let newGroupIndex;\n // find an existing group that matches, or determine the position for a new group\n if (groupSpec.order) {\n for (newGroupIndex = 0; newGroupIndex < nodes.length; newGroupIndex += 1) {\n let node = nodes[newGroupIndex];\n if (node.group) {\n let cmp = flexibleCompare(groupValue, node.group.value) * groupSpec.order;\n if (cmp === 0) {\n groupNode = node;\n break;\n }\n else if (cmp < 0) {\n break;\n }\n }\n }\n }\n else { // the groups are unordered\n for (newGroupIndex = 0; newGroupIndex < nodes.length; newGroupIndex += 1) {\n let node = nodes[newGroupIndex];\n if (node.group && groupValue === node.group.value) {\n groupNode = node;\n break;\n }\n }\n }\n if (!groupNode) {\n groupNode = {\n group: {\n value: groupValue,\n spec: groupSpec,\n },\n children: [],\n };\n nodes.splice(newGroupIndex, 0, groupNode);\n }\n return groupNode;\n}\nfunction insertResourceNodeInSiblings(resourceNode, siblings, orderSpecs) {\n let i;\n for (i = 0; i < siblings.length; i += 1) {\n let cmp = compareByFieldSpecs(siblings[i].resourceFields, resourceNode.resourceFields, orderSpecs); // TODO: pass in ResourceApi?\n if (cmp > 0) { // went 1 past. insert at i\n break;\n }\n }\n siblings.splice(i, 0, resourceNode);\n}\nfunction buildResourceFields(resource) {\n let obj = Object.assign(Object.assign(Object.assign({}, resource.extendedProps), resource.ui), resource);\n delete obj.ui;\n delete obj.extendedProps;\n return obj;\n}\nfunction isGroupsEqual(group0, group1) {\n return group0.spec === group1.spec && group0.value === group1.value;\n}\n\nexport { AbstractResourceDayTableModel as A, DEFAULT_RESOURCE_ORDER as D, ResourceApi as R, VResourceJoiner as V, ResourceSplitter as a, ResourceDayHeader as b, ResourceDayTableModel as c, DayResourceTableModel as d, VResourceSplitter as e, flattenResources as f, getPublicId as g, handleResourceStore as h, isGroupsEqual as i, buildRowNodes as j, buildResourceFields as k, ResourceLabelContainer as l, parseResource as p, refineRenderProps$1 as r };\n"],"names":["PRIVATE_ID_PREFIX","RESOURCE_REFINERS","id","String","parentId","children","identity","title","businessHours","extendedProps","eventEditable","Boolean","eventStartEditable","eventDurationEditable","eventConstraint","eventOverlap","eventAllow","eventClassNames","parseClassNames","eventBackgroundColor","eventBorderColor","eventTextColor","eventColor","parseResource","raw","store","context","refined","extra","refineProps","resource","guid","parseBusinessHours","ui","createEventUi","editable","startEditable","durationEditable","constraint","overlap","allow","classNames","backgroundColor","borderColor","textColor","color","Object","assign","freeze","childInput","getPublicId","indexOf","ResourceApi","constructor","_context","_resource","this","setProp","name","value","oldResource","dispatch","type","resourceId","propName","propValue","sync","setExtendedProp","getCurrentData","resourceStore","emitter","trigger","revert","resourceHash","remove","internalResource","getParent","getChildren","thisResourceId","childApis","push","getEvents","defs","instances","eventStore","eventApis","instanceId","instance","def","defId","resourceIds","EventImpl","constraints","allows","toPlainObject","settings","internal","publicId","res","collapseEventColor","length","keys","collapseExtendedProps","toJSON","ResourceSplitter","Splitter","getKeyInfo","props","getKeysForDateSpan","dateSpan","getKeysForEventDef","eventDef","DEFAULT_RESOURCE_ORDER","parseFieldSpecs","handleResourceStore","calendarData","hasHandlers","resourceApis","buildResourceApis","ResourceLabelContainer","BaseComponent","super","arguments","refineRenderProps","memoizeObjArg","render","createElement","ViewContextType","Consumer","options","renderProps","date","ContentContainer","elAttrs","formatDayString","undefined","generatorName","customGenerator","resourceLabelContent","defaultGenerator","renderInnerContent","classNameGenerator","resourceLabelClassNames","didMount","resourceLabelDidMount","willUnmount","resourceLabelWillUnmount","input","dateEnv","toDate","view","viewApi","ResourceCell","elTag","elClasses","role","colSpan","InnerContent","className","isSticky","ResourceDayHeader","buildDateFormat","memoize","dateFormat","dayHeaderFormat","datesRepDistinctDays","dates","NowTimer","unit","nowDate","todayRange","renderResourceRow","resources","datesAboveResources","renderDayAndResourceRows","renderResourceAndDayRows","resourceCells","map","key","buildTr","dateCells","renderDateCell","toISOString","Fragment","keyPostfix","extraRenderProps","extraDataAttrs","TableDateCell","dateProfile","colCnt","TableDowCell","getUTCDay","dow","cells","renderIntro","dayCnt","computeFallbackHeaderFormat","ResourceIndex","indicesById","ids","i","AbstractResourceDayTableModel","dayTableModel","resourceIndex","rowCnt","buildCells","rows","row","rowCells","dateCol","resourceCol","extraClassNames","extraDateSpan","computeCol","ResourceDayTableModel","dateI","resourceI","computeColRanges","dateStartI","dateEndI","firstCol","lastCol","isStart","isEnd","DayResourceTableModel","segs","col","NO_SEGS","VResourceJoiner","joinDateSelection","joinSegs","joinBusinessHours","joinFgEvents","joinBgEvents","joinEventDrags","joinInteractions","joinEventResizes","joinProps","propSets","resourceDayTable","dateSelectionSets","businessHoursSets","fgEventSets","bgEventSets","eventDrags","eventResizes","eventSelection","concat","dateSelectionSegs","businessHourSegs","fgEventSegs","bgEventSegs","eventDrag","eventResize","segGroups","resourceCnt","transformedSegs","seg","transformSeg","expandSegs","interactions","affectedInstances","anyInteractions","isEvent","interaction","VResourceSplitter","resourceDayTableModel","hash","mapHash","flattenResources","orderSpecs","buildRowNodes","node","groupSpecs","isVGrouping","expansions","expansionDefault","complexNodes","maxDepth","resourceNodes","nodeHash","resourceFields","buildResourceFields","parentNode","insertResourceNodeInSiblings","buildResourceNodes","builtNodes","resourceNode","insertResourceNode","buildHierarchy","flatNodes","flattenNodes","rowSpans","depth","complexNode","group","firstRowIndex","rowSpanIndex","firstRow","slice","spec","field","isExpanded","hasChildren","nodes","groupNode","groupSpec","newGroupIndex","groupValue","order","cmp","flexibleCompare","splice","ensureGroupNodes","siblings","compareByFieldSpecs","obj"],"mappings":"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"}
1
+ {"version":3,"file":"internal-common.js","sources":["../../../../../node_modules/@fullcalendar/resource/internal-common.js"],"sourcesContent":["import { refineProps, guid, parseBusinessHours, createEventUi, identity, parseClassNames, EventImpl, Splitter, parseFieldSpecs, BaseComponent, memoizeObjArg, ViewContextType, ContentContainer, formatDayString, memoize, NowTimer, TableDateCell, TableDowCell, computeFallbackHeaderFormat, mapHash, flexibleCompare, compareByFieldSpecs } from '@fullcalendar/core/internal.js';\nimport { createElement, Fragment } from '@fullcalendar/core/preact.js';\n\nconst PRIVATE_ID_PREFIX = '_fc:';\nconst RESOURCE_REFINERS = {\n id: String,\n parentId: String,\n children: identity,\n title: String,\n businessHours: identity,\n extendedProps: identity,\n // event-ui\n eventEditable: Boolean,\n eventStartEditable: Boolean,\n eventDurationEditable: Boolean,\n eventConstraint: identity,\n eventOverlap: Boolean,\n eventAllow: identity,\n eventClassNames: parseClassNames,\n eventBackgroundColor: String,\n eventBorderColor: String,\n eventTextColor: String,\n eventColor: String,\n};\n/*\nneeds a full store so that it can populate children too\n*/\nfunction parseResource(raw, parentId = '', store, context) {\n let { refined, extra } = refineProps(raw, RESOURCE_REFINERS);\n let resource = {\n id: refined.id || (PRIVATE_ID_PREFIX + guid()),\n parentId: refined.parentId || parentId,\n title: refined.title || '',\n businessHours: refined.businessHours ? parseBusinessHours(refined.businessHours, context) : null,\n ui: createEventUi({\n editable: refined.eventEditable,\n startEditable: refined.eventStartEditable,\n durationEditable: refined.eventDurationEditable,\n constraint: refined.eventConstraint,\n overlap: refined.eventOverlap,\n allow: refined.eventAllow,\n classNames: refined.eventClassNames,\n backgroundColor: refined.eventBackgroundColor,\n borderColor: refined.eventBorderColor,\n textColor: refined.eventTextColor,\n color: refined.eventColor,\n }, context),\n extendedProps: Object.assign(Object.assign({}, extra), refined.extendedProps),\n };\n // help out ResourceApi from having user modify props\n Object.freeze(resource.ui.classNames);\n Object.freeze(resource.extendedProps);\n if (store[resource.id]) ;\n else {\n store[resource.id] = resource;\n if (refined.children) {\n for (let childInput of refined.children) {\n parseResource(childInput, resource.id, store, context);\n }\n }\n }\n return resource;\n}\n/*\nTODO: use this in more places\n*/\nfunction getPublicId(id) {\n if (id.indexOf(PRIVATE_ID_PREFIX) === 0) {\n return '';\n }\n return id;\n}\n\nclass ResourceApi {\n constructor(_context, _resource) {\n this._context = _context;\n this._resource = _resource;\n }\n setProp(name, value) {\n let oldResource = this._resource;\n this._context.dispatch({\n type: 'SET_RESOURCE_PROP',\n resourceId: oldResource.id,\n propName: name,\n propValue: value,\n });\n this.sync(oldResource);\n }\n setExtendedProp(name, value) {\n let oldResource = this._resource;\n this._context.dispatch({\n type: 'SET_RESOURCE_EXTENDED_PROP',\n resourceId: oldResource.id,\n propName: name,\n propValue: value,\n });\n this.sync(oldResource);\n }\n sync(oldResource) {\n let context = this._context;\n let resourceId = oldResource.id;\n // TODO: what if dispatch didn't complete synchronously?\n this._resource = context.getCurrentData().resourceStore[resourceId];\n context.emitter.trigger('resourceChange', {\n oldResource: new ResourceApi(context, oldResource),\n resource: this,\n revert() {\n context.dispatch({\n type: 'ADD_RESOURCE',\n resourceHash: {\n [resourceId]: oldResource,\n },\n });\n },\n });\n }\n remove() {\n let context = this._context;\n let internalResource = this._resource;\n let resourceId = internalResource.id;\n context.dispatch({\n type: 'REMOVE_RESOURCE',\n resourceId,\n });\n context.emitter.trigger('resourceRemove', {\n resource: this,\n revert() {\n context.dispatch({\n type: 'ADD_RESOURCE',\n resourceHash: {\n [resourceId]: internalResource,\n },\n });\n },\n });\n }\n getParent() {\n let context = this._context;\n let parentId = this._resource.parentId;\n if (parentId) {\n return new ResourceApi(context, context.getCurrentData().resourceStore[parentId]);\n }\n return null;\n }\n getChildren() {\n let thisResourceId = this._resource.id;\n let context = this._context;\n let { resourceStore } = context.getCurrentData();\n let childApis = [];\n for (let resourceId in resourceStore) {\n if (resourceStore[resourceId].parentId === thisResourceId) {\n childApis.push(new ResourceApi(context, resourceStore[resourceId]));\n }\n }\n return childApis;\n }\n /*\n this is really inefficient!\n TODO: make EventApi::resourceIds a hash or keep an index in the Calendar's state\n */\n getEvents() {\n let thisResourceId = this._resource.id;\n let context = this._context;\n let { defs, instances } = context.getCurrentData().eventStore;\n let eventApis = [];\n for (let instanceId in instances) {\n let instance = instances[instanceId];\n let def = defs[instance.defId];\n if (def.resourceIds.indexOf(thisResourceId) !== -1) { // inefficient!!!\n eventApis.push(new EventImpl(context, def, instance));\n }\n }\n return eventApis;\n }\n get id() { return getPublicId(this._resource.id); }\n get title() { return this._resource.title; }\n get eventConstraint() { return this._resource.ui.constraints[0] || null; } // TODO: better type\n get eventOverlap() { return this._resource.ui.overlap; }\n get eventAllow() { return this._resource.ui.allows[0] || null; } // TODO: better type\n get eventBackgroundColor() { return this._resource.ui.backgroundColor; }\n get eventBorderColor() { return this._resource.ui.borderColor; }\n get eventTextColor() { return this._resource.ui.textColor; }\n // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n get eventClassNames() { return this._resource.ui.classNames; }\n get extendedProps() { return this._resource.extendedProps; }\n toPlainObject(settings = {}) {\n let internal = this._resource;\n let { ui } = internal;\n let publicId = this.id;\n let res = {};\n if (publicId) {\n res.id = publicId;\n }\n if (internal.title) {\n res.title = internal.title;\n }\n if (settings.collapseEventColor && ui.backgroundColor && ui.backgroundColor === ui.borderColor) {\n res.eventColor = ui.backgroundColor;\n }\n else {\n if (ui.backgroundColor) {\n res.eventBackgroundColor = ui.backgroundColor;\n }\n if (ui.borderColor) {\n res.eventBorderColor = ui.borderColor;\n }\n }\n if (ui.textColor) {\n res.eventTextColor = ui.textColor;\n }\n if (ui.classNames.length) {\n res.eventClassNames = ui.classNames;\n }\n if (Object.keys(internal.extendedProps).length) {\n if (settings.collapseExtendedProps) {\n Object.assign(res, internal.extendedProps);\n }\n else {\n res.extendedProps = internal.extendedProps;\n }\n }\n return res;\n }\n toJSON() {\n return this.toPlainObject();\n }\n}\nfunction buildResourceApis(resourceStore, context) {\n let resourceApis = [];\n for (let resourceId in resourceStore) {\n resourceApis.push(new ResourceApi(context, resourceStore[resourceId]));\n }\n return resourceApis;\n}\n\n/*\nsplits things BASED OFF OF which resources they are associated with.\ncreates a '' entry which is when something has NO resource.\n*/\nclass ResourceSplitter extends Splitter {\n getKeyInfo(props) {\n return Object.assign({ '': {} }, props.resourceStore);\n }\n getKeysForDateSpan(dateSpan) {\n return [dateSpan.resourceId || ''];\n }\n getKeysForEventDef(eventDef) {\n let resourceIds = eventDef.resourceIds;\n if (!resourceIds.length) {\n return [''];\n }\n return resourceIds;\n }\n}\n\nconst DEFAULT_RESOURCE_ORDER = parseFieldSpecs('id,title');\nfunction handleResourceStore(resourceStore, calendarData) {\n let { emitter } = calendarData;\n if (emitter.hasHandlers('resourcesSet')) {\n emitter.trigger('resourcesSet', buildResourceApis(resourceStore, calendarData));\n }\n}\n\nfunction refineRenderProps$1(input) {\n return {\n resource: new ResourceApi(input.context, input.resource),\n };\n}\n\n// TODO: not used for Spreadsheet. START USING. difficult because of col-specific rendering props\nclass ResourceLabelContainer extends BaseComponent {\n constructor() {\n super(...arguments);\n this.refineRenderProps = memoizeObjArg(refineRenderProps);\n }\n render() {\n const { props } = this;\n return (createElement(ViewContextType.Consumer, null, (context) => {\n let { options } = context;\n let renderProps = this.refineRenderProps({\n resource: props.resource,\n date: props.date,\n context,\n });\n return (createElement(ContentContainer, Object.assign({}, props, { elAttrs: Object.assign(Object.assign({}, props.elAttrs), { 'data-resource-id': props.resource.id, 'data-date': props.date ? formatDayString(props.date) : undefined }), renderProps: renderProps, generatorName: \"resourceLabelContent\", customGenerator: options.resourceLabelContent, defaultGenerator: renderInnerContent, classNameGenerator: options.resourceLabelClassNames, didMount: options.resourceLabelDidMount, willUnmount: options.resourceLabelWillUnmount })));\n }));\n }\n}\nfunction renderInnerContent(props) {\n return props.resource.title || props.resource.id;\n}\nfunction refineRenderProps(input) {\n return {\n resource: new ResourceApi(input.context, input.resource),\n date: input.date ? input.context.dateEnv.toDate(input.date) : null,\n view: input.context.viewApi,\n };\n}\n\nclass ResourceCell extends BaseComponent {\n render() {\n let { props } = this;\n return (createElement(ResourceLabelContainer, { elTag: \"th\", elClasses: ['fc-col-header-cell', 'fc-resource'], elAttrs: {\n role: 'columnheader',\n colSpan: props.colSpan,\n }, resource: props.resource, date: props.date }, (InnerContent) => (createElement(\"div\", { className: \"fc-scrollgrid-sync-inner\" },\n createElement(InnerContent, { elTag: \"span\", elClasses: [\n 'fc-col-header-cell-cushion',\n props.isSticky && 'fc-sticky',\n ] })))));\n }\n}\n\nclass ResourceDayHeader extends BaseComponent {\n constructor() {\n super(...arguments);\n this.buildDateFormat = memoize(buildDateFormat);\n }\n render() {\n let { props, context } = this;\n let dateFormat = this.buildDateFormat(context.options.dayHeaderFormat, props.datesRepDistinctDays, props.dates.length);\n return (createElement(NowTimer, { unit: \"day\" }, (nowDate, todayRange) => {\n if (props.dates.length === 1) {\n return this.renderResourceRow(props.resources, props.dates[0]);\n }\n if (context.options.datesAboveResources) {\n return this.renderDayAndResourceRows(props.dates, dateFormat, todayRange, props.resources);\n }\n return this.renderResourceAndDayRows(props.resources, props.dates, dateFormat, todayRange);\n }));\n }\n renderResourceRow(resources, date) {\n let resourceCells = resources.map((resource) => (createElement(ResourceCell, { key: resource.id, resource: resource, colSpan: 1, date: date })));\n return this.buildTr(resourceCells, 'resources');\n }\n renderDayAndResourceRows(dates, dateFormat, todayRange, resources) {\n let dateCells = [];\n let resourceCells = [];\n for (let date of dates) {\n dateCells.push(this.renderDateCell(date, dateFormat, todayRange, resources.length, null, true));\n for (let resource of resources) {\n resourceCells.push(createElement(ResourceCell, { key: resource.id + ':' + date.toISOString(), resource: resource, colSpan: 1, date: date }));\n }\n }\n return (createElement(Fragment, null,\n this.buildTr(dateCells, 'day'),\n this.buildTr(resourceCells, 'resources')));\n }\n renderResourceAndDayRows(resources, dates, dateFormat, todayRange) {\n let resourceCells = [];\n let dateCells = [];\n for (let resource of resources) {\n resourceCells.push(createElement(ResourceCell, { key: resource.id, resource: resource, colSpan: dates.length, isSticky: true }));\n for (let date of dates) {\n dateCells.push(this.renderDateCell(date, dateFormat, todayRange, 1, resource));\n }\n }\n return (createElement(Fragment, null,\n this.buildTr(resourceCells, 'resources'),\n this.buildTr(dateCells, 'day')));\n }\n // a cell with date text. might have a resource associated with it\n renderDateCell(date, dateFormat, todayRange, colSpan, resource, isSticky) {\n let { props } = this;\n let keyPostfix = resource ? `:${resource.id}` : '';\n let extraRenderProps = resource ? { resource: new ResourceApi(this.context, resource) } : {};\n let extraDataAttrs = resource ? { 'data-resource-id': resource.id } : {};\n return props.datesRepDistinctDays ? (createElement(TableDateCell, { key: date.toISOString() + keyPostfix, date: date, dateProfile: props.dateProfile, todayRange: todayRange, colCnt: props.dates.length * props.resources.length, dayHeaderFormat: dateFormat, colSpan: colSpan, isSticky: isSticky, extraRenderProps: extraRenderProps, extraDataAttrs: extraDataAttrs })) : (createElement(TableDowCell // we can't leverage the pure-componentness becausae the extra* props are new every time :(\n , { key: date.getUTCDay() + keyPostfix, dow: date.getUTCDay(), dayHeaderFormat: dateFormat, colSpan: colSpan, isSticky: isSticky, extraRenderProps: extraRenderProps, extraDataAttrs: extraDataAttrs }));\n }\n buildTr(cells, key) {\n let { renderIntro } = this.props;\n if (!cells.length) {\n cells = [createElement(\"td\", { key: 0 }, \"\\u00A0\")];\n }\n return (createElement(\"tr\", { key: key, role: \"row\" },\n renderIntro && renderIntro(key),\n cells));\n }\n}\nfunction buildDateFormat(dayHeaderFormat, datesRepDistinctDays, dayCnt) {\n return dayHeaderFormat || computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt);\n}\n\nclass ResourceIndex {\n constructor(resources) {\n let indicesById = {};\n let ids = [];\n for (let i = 0; i < resources.length; i += 1) {\n let id = resources[i].id;\n ids.push(id);\n indicesById[id] = i;\n }\n this.ids = ids;\n this.indicesById = indicesById;\n this.length = resources.length;\n }\n}\n\nclass AbstractResourceDayTableModel {\n constructor(dayTableModel, resources, context) {\n this.dayTableModel = dayTableModel;\n this.resources = resources;\n this.context = context;\n this.resourceIndex = new ResourceIndex(resources);\n this.rowCnt = dayTableModel.rowCnt;\n this.colCnt = dayTableModel.colCnt * resources.length;\n this.cells = this.buildCells();\n }\n buildCells() {\n let { rowCnt, dayTableModel, resources } = this;\n let rows = [];\n for (let row = 0; row < rowCnt; row += 1) {\n let rowCells = [];\n for (let dateCol = 0; dateCol < dayTableModel.colCnt; dateCol += 1) {\n for (let resourceCol = 0; resourceCol < resources.length; resourceCol += 1) {\n let resource = resources[resourceCol];\n let extraRenderProps = { resource: new ResourceApi(this.context, resource) };\n let extraDataAttrs = { 'data-resource-id': resource.id };\n let extraClassNames = ['fc-resource'];\n let extraDateSpan = { resourceId: resource.id };\n let date = dayTableModel.cells[row][dateCol].date;\n rowCells[this.computeCol(dateCol, resourceCol)] = {\n key: resource.id + ':' + date.toISOString(),\n date,\n extraRenderProps,\n extraDataAttrs,\n extraClassNames,\n extraDateSpan,\n };\n }\n }\n rows.push(rowCells);\n }\n return rows;\n }\n}\n\n/*\nresources over dates\n*/\nclass ResourceDayTableModel extends AbstractResourceDayTableModel {\n computeCol(dateI, resourceI) {\n return resourceI * this.dayTableModel.colCnt + dateI;\n }\n /*\n all date ranges are intact\n */\n computeColRanges(dateStartI, dateEndI, resourceI) {\n return [\n {\n firstCol: this.computeCol(dateStartI, resourceI),\n lastCol: this.computeCol(dateEndI, resourceI),\n isStart: true,\n isEnd: true,\n },\n ];\n }\n}\n\n/*\ndates over resources\n*/\nclass DayResourceTableModel extends AbstractResourceDayTableModel {\n computeCol(dateI, resourceI) {\n return dateI * this.resources.length + resourceI;\n }\n /*\n every single day is broken up\n */\n computeColRanges(dateStartI, dateEndI, resourceI) {\n let segs = [];\n for (let i = dateStartI; i <= dateEndI; i += 1) {\n let col = this.computeCol(i, resourceI);\n segs.push({\n firstCol: col,\n lastCol: col,\n isStart: i === dateStartI,\n isEnd: i === dateEndI,\n });\n }\n return segs;\n }\n}\n\nconst NO_SEGS = []; // for memoizing\nclass VResourceJoiner {\n constructor() {\n this.joinDateSelection = memoize(this.joinSegs);\n this.joinBusinessHours = memoize(this.joinSegs);\n this.joinFgEvents = memoize(this.joinSegs);\n this.joinBgEvents = memoize(this.joinSegs);\n this.joinEventDrags = memoize(this.joinInteractions);\n this.joinEventResizes = memoize(this.joinInteractions);\n }\n /*\n propSets also has a '' key for things with no resource\n */\n joinProps(propSets, resourceDayTable) {\n let dateSelectionSets = [];\n let businessHoursSets = [];\n let fgEventSets = [];\n let bgEventSets = [];\n let eventDrags = [];\n let eventResizes = [];\n let eventSelection = '';\n let keys = resourceDayTable.resourceIndex.ids.concat(['']); // add in the all-resource key\n for (let key of keys) {\n let props = propSets[key];\n dateSelectionSets.push(props.dateSelectionSegs);\n businessHoursSets.push(key ? props.businessHourSegs : NO_SEGS); // don't include redundant all-resource businesshours\n fgEventSets.push(key ? props.fgEventSegs : NO_SEGS); // don't include fg all-resource segs\n bgEventSets.push(props.bgEventSegs);\n eventDrags.push(props.eventDrag);\n eventResizes.push(props.eventResize);\n eventSelection = eventSelection || props.eventSelection;\n }\n return {\n dateSelectionSegs: this.joinDateSelection(resourceDayTable, ...dateSelectionSets),\n businessHourSegs: this.joinBusinessHours(resourceDayTable, ...businessHoursSets),\n fgEventSegs: this.joinFgEvents(resourceDayTable, ...fgEventSets),\n bgEventSegs: this.joinBgEvents(resourceDayTable, ...bgEventSets),\n eventDrag: this.joinEventDrags(resourceDayTable, ...eventDrags),\n eventResize: this.joinEventResizes(resourceDayTable, ...eventResizes),\n eventSelection,\n };\n }\n joinSegs(resourceDayTable, ...segGroups) {\n let resourceCnt = resourceDayTable.resources.length;\n let transformedSegs = [];\n for (let i = 0; i < resourceCnt; i += 1) {\n for (let seg of segGroups[i]) {\n transformedSegs.push(...this.transformSeg(seg, resourceDayTable, i));\n }\n for (let seg of segGroups[resourceCnt]) { // one beyond. the all-resource\n transformedSegs.push(...this.transformSeg(seg, resourceDayTable, i));\n }\n }\n return transformedSegs;\n }\n /*\n for expanding non-resource segs to all resources.\n only for public use.\n no memoizing.\n */\n expandSegs(resourceDayTable, segs) {\n let resourceCnt = resourceDayTable.resources.length;\n let transformedSegs = [];\n for (let i = 0; i < resourceCnt; i += 1) {\n for (let seg of segs) {\n transformedSegs.push(...this.transformSeg(seg, resourceDayTable, i));\n }\n }\n return transformedSegs;\n }\n joinInteractions(resourceDayTable, ...interactions) {\n let resourceCnt = resourceDayTable.resources.length;\n let affectedInstances = {};\n let transformedSegs = [];\n let anyInteractions = false;\n let isEvent = false;\n for (let i = 0; i < resourceCnt; i += 1) {\n let interaction = interactions[i];\n if (interaction) {\n anyInteractions = true;\n for (let seg of interaction.segs) {\n transformedSegs.push(...this.transformSeg(seg, resourceDayTable, i));\n }\n Object.assign(affectedInstances, interaction.affectedInstances);\n isEvent = isEvent || interaction.isEvent;\n }\n if (interactions[resourceCnt]) { // one beyond. the all-resource\n for (let seg of interactions[resourceCnt].segs) {\n transformedSegs.push(...this.transformSeg(seg, resourceDayTable, i));\n }\n }\n }\n if (anyInteractions) {\n return {\n affectedInstances,\n segs: transformedSegs,\n isEvent,\n };\n }\n return null;\n }\n}\n\n/*\nTODO: just use ResourceHash somehow? could then use the generic ResourceSplitter\n*/\nclass VResourceSplitter extends Splitter {\n getKeyInfo(props) {\n let { resourceDayTableModel } = props;\n let hash = mapHash(resourceDayTableModel.resourceIndex.indicesById, (i) => resourceDayTableModel.resources[i]); // :(\n hash[''] = {};\n return hash;\n }\n getKeysForDateSpan(dateSpan) {\n return [dateSpan.resourceId || ''];\n }\n getKeysForEventDef(eventDef) {\n let resourceIds = eventDef.resourceIds;\n if (!resourceIds.length) {\n return [''];\n }\n return resourceIds;\n }\n}\n\n/*\ndoesn't accept grouping\n*/\nfunction flattenResources(resourceStore, orderSpecs) {\n return buildRowNodes(resourceStore, [], orderSpecs, false, {}, true)\n .map((node) => node.resource);\n}\nfunction buildRowNodes(resourceStore, groupSpecs, orderSpecs, isVGrouping, expansions, expansionDefault) {\n let complexNodes = buildHierarchy(resourceStore, isVGrouping ? -1 : 1, groupSpecs, orderSpecs);\n let flatNodes = [];\n flattenNodes(complexNodes, flatNodes, isVGrouping, [], 0, expansions, expansionDefault);\n return flatNodes;\n}\nfunction flattenNodes(complexNodes, res, isVGrouping, rowSpans, depth, expansions, expansionDefault) {\n for (let i = 0; i < complexNodes.length; i += 1) {\n let complexNode = complexNodes[i];\n let group = complexNode.group;\n if (group) {\n if (isVGrouping) {\n let firstRowIndex = res.length;\n let rowSpanIndex = rowSpans.length;\n flattenNodes(complexNode.children, res, isVGrouping, rowSpans.concat(0), depth, expansions, expansionDefault);\n if (firstRowIndex < res.length) {\n let firstRow = res[firstRowIndex];\n let firstRowSpans = firstRow.rowSpans = firstRow.rowSpans.slice();\n firstRowSpans[rowSpanIndex] = res.length - firstRowIndex;\n }\n }\n else {\n let id = group.spec.field + ':' + group.value;\n let isExpanded = expansions[id] != null ? expansions[id] : expansionDefault;\n res.push({ id, group, isExpanded });\n if (isExpanded) {\n flattenNodes(complexNode.children, res, isVGrouping, rowSpans, depth + 1, expansions, expansionDefault);\n }\n }\n }\n else if (complexNode.resource) {\n let id = complexNode.resource.id;\n let isExpanded = expansions[id] != null ? expansions[id] : expansionDefault;\n res.push({\n id,\n rowSpans,\n depth,\n isExpanded,\n hasChildren: Boolean(complexNode.children.length),\n resource: complexNode.resource,\n resourceFields: complexNode.resourceFields,\n });\n if (isExpanded) {\n flattenNodes(complexNode.children, res, isVGrouping, rowSpans, depth + 1, expansions, expansionDefault);\n }\n }\n }\n}\nfunction buildHierarchy(resourceStore, maxDepth, groupSpecs, orderSpecs) {\n let resourceNodes = buildResourceNodes(resourceStore, orderSpecs);\n let builtNodes = [];\n for (let resourceId in resourceNodes) {\n let resourceNode = resourceNodes[resourceId];\n if (!resourceNode.resource.parentId) {\n insertResourceNode(resourceNode, builtNodes, groupSpecs, 0, maxDepth, orderSpecs);\n }\n }\n return builtNodes;\n}\nfunction buildResourceNodes(resourceStore, orderSpecs) {\n let nodeHash = {};\n for (let resourceId in resourceStore) {\n let resource = resourceStore[resourceId];\n nodeHash[resourceId] = {\n resource,\n resourceFields: buildResourceFields(resource),\n children: [],\n };\n }\n for (let resourceId in resourceStore) {\n let resource = resourceStore[resourceId];\n if (resource.parentId) {\n let parentNode = nodeHash[resource.parentId];\n if (parentNode) {\n insertResourceNodeInSiblings(nodeHash[resourceId], parentNode.children, orderSpecs);\n }\n }\n }\n return nodeHash;\n}\nfunction insertResourceNode(resourceNode, nodes, groupSpecs, depth, maxDepth, orderSpecs) {\n if (groupSpecs.length && (maxDepth === -1 || depth <= maxDepth)) {\n let groupNode = ensureGroupNodes(resourceNode, nodes, groupSpecs[0]);\n insertResourceNode(resourceNode, groupNode.children, groupSpecs.slice(1), depth + 1, maxDepth, orderSpecs);\n }\n else {\n insertResourceNodeInSiblings(resourceNode, nodes, orderSpecs);\n }\n}\nfunction ensureGroupNodes(resourceNode, nodes, groupSpec) {\n let groupValue = resourceNode.resourceFields[groupSpec.field];\n let groupNode;\n let newGroupIndex;\n // find an existing group that matches, or determine the position for a new group\n if (groupSpec.order) {\n for (newGroupIndex = 0; newGroupIndex < nodes.length; newGroupIndex += 1) {\n let node = nodes[newGroupIndex];\n if (node.group) {\n let cmp = flexibleCompare(groupValue, node.group.value) * groupSpec.order;\n if (cmp === 0) {\n groupNode = node;\n break;\n }\n else if (cmp < 0) {\n break;\n }\n }\n }\n }\n else { // the groups are unordered\n for (newGroupIndex = 0; newGroupIndex < nodes.length; newGroupIndex += 1) {\n let node = nodes[newGroupIndex];\n if (node.group && groupValue === node.group.value) {\n groupNode = node;\n break;\n }\n }\n }\n if (!groupNode) {\n groupNode = {\n group: {\n value: groupValue,\n spec: groupSpec,\n },\n children: [],\n };\n nodes.splice(newGroupIndex, 0, groupNode);\n }\n return groupNode;\n}\nfunction insertResourceNodeInSiblings(resourceNode, siblings, orderSpecs) {\n let i;\n for (i = 0; i < siblings.length; i += 1) {\n let cmp = compareByFieldSpecs(siblings[i].resourceFields, resourceNode.resourceFields, orderSpecs); // TODO: pass in ResourceApi?\n if (cmp > 0) { // went 1 past. insert at i\n break;\n }\n }\n siblings.splice(i, 0, resourceNode);\n}\nfunction buildResourceFields(resource) {\n let obj = Object.assign(Object.assign(Object.assign({}, resource.extendedProps), resource.ui), resource);\n delete obj.ui;\n delete obj.extendedProps;\n return obj;\n}\nfunction isGroupsEqual(group0, group1) {\n return group0.spec === group1.spec && group0.value === group1.value;\n}\n\nexport { AbstractResourceDayTableModel as A, DEFAULT_RESOURCE_ORDER as D, ResourceApi as R, VResourceJoiner as V, ResourceSplitter as a, ResourceDayHeader as b, ResourceDayTableModel as c, DayResourceTableModel as d, VResourceSplitter as e, flattenResources as f, getPublicId as g, handleResourceStore as h, isGroupsEqual as i, buildRowNodes as j, buildResourceFields as k, ResourceLabelContainer as l, parseResource as p, refineRenderProps$1 as r };\n"],"names":["PRIVATE_ID_PREFIX","RESOURCE_REFINERS","id","String","parentId","children","identity","title","businessHours","extendedProps","eventEditable","Boolean","eventStartEditable","eventDurationEditable","eventConstraint","eventOverlap","eventAllow","eventClassNames","parseClassNames","eventBackgroundColor","eventBorderColor","eventTextColor","eventColor","parseResource","raw","store","context","refined","extra","refineProps","resource","guid","parseBusinessHours","ui","createEventUi","editable","startEditable","durationEditable","constraint","overlap","allow","classNames","backgroundColor","borderColor","textColor","color","Object","assign","freeze","childInput","getPublicId","indexOf","ResourceApi","constructor","_context","_resource","this","setProp","name","value","oldResource","dispatch","type","resourceId","propName","propValue","sync","setExtendedProp","getCurrentData","resourceStore","emitter","trigger","revert","resourceHash","remove","internalResource","getParent","getChildren","thisResourceId","childApis","push","getEvents","defs","instances","eventStore","eventApis","instanceId","instance","def","defId","resourceIds","EventImpl","constraints","allows","toPlainObject","settings","internal","publicId","res","collapseEventColor","length","keys","collapseExtendedProps","toJSON","ResourceSplitter","Splitter","getKeyInfo","props","getKeysForDateSpan","dateSpan","getKeysForEventDef","eventDef","DEFAULT_RESOURCE_ORDER","parseFieldSpecs","handleResourceStore","calendarData","hasHandlers","resourceApis","buildResourceApis","refineRenderProps$1","input","ResourceLabelContainer","BaseComponent","super","arguments","refineRenderProps","memoizeObjArg","render","createElement","ViewContextType","Consumer","options","renderProps","date","ContentContainer","elAttrs","formatDayString","undefined","generatorName","customGenerator","resourceLabelContent","defaultGenerator","renderInnerContent","classNameGenerator","resourceLabelClassNames","didMount","resourceLabelDidMount","willUnmount","resourceLabelWillUnmount","dateEnv","toDate","view","viewApi","ResourceCell","elTag","elClasses","role","colSpan","InnerContent","className","isSticky","ResourceDayHeader","buildDateFormat","memoize","dateFormat","dayHeaderFormat","datesRepDistinctDays","dates","NowTimer","unit","nowDate","todayRange","renderResourceRow","resources","datesAboveResources","renderDayAndResourceRows","renderResourceAndDayRows","resourceCells","map","key","buildTr","dateCells","renderDateCell","toISOString","Fragment","keyPostfix","extraRenderProps","extraDataAttrs","TableDateCell","dateProfile","colCnt","TableDowCell","getUTCDay","dow","cells","renderIntro","dayCnt","computeFallbackHeaderFormat","ResourceIndex","indicesById","ids","i","AbstractResourceDayTableModel","dayTableModel","resourceIndex","rowCnt","buildCells","rows","row","rowCells","dateCol","resourceCol","extraClassNames","extraDateSpan","computeCol","ResourceDayTableModel","dateI","resourceI","computeColRanges","dateStartI","dateEndI","firstCol","lastCol","isStart","isEnd","DayResourceTableModel","segs","col","NO_SEGS","VResourceJoiner","joinDateSelection","joinSegs","joinBusinessHours","joinFgEvents","joinBgEvents","joinEventDrags","joinInteractions","joinEventResizes","joinProps","propSets","resourceDayTable","dateSelectionSets","businessHoursSets","fgEventSets","bgEventSets","eventDrags","eventResizes","eventSelection","concat","dateSelectionSegs","businessHourSegs","fgEventSegs","bgEventSegs","eventDrag","eventResize","segGroups","resourceCnt","transformedSegs","seg","transformSeg","expandSegs","interactions","affectedInstances","anyInteractions","isEvent","interaction","VResourceSplitter","resourceDayTableModel","hash","mapHash","flattenResources","orderSpecs","buildRowNodes","node","groupSpecs","isVGrouping","expansions","expansionDefault","complexNodes","maxDepth","resourceNodes","nodeHash","resourceFields","buildResourceFields","parentNode","insertResourceNodeInSiblings","buildResourceNodes","builtNodes","resourceNode","insertResourceNode","buildHierarchy","flatNodes","flattenNodes","rowSpans","depth","complexNode","group","firstRowIndex","rowSpanIndex","firstRow","slice","spec","field","isExpanded","hasChildren","nodes","groupNode","groupSpec","newGroupIndex","groupValue","order","cmp","flexibleCompare","splice","ensureGroupNodes","siblings","compareByFieldSpecs","obj","isGroupsEqual","group0","group1"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{createPlugin as e}from"../core/index.js";import r from"../premium-common/index.js";import i from"../timeline/index.js";import o from"../resource/index.js";import{ResourceTimelineView as n}from"./internal.js";import"../resource/internal-common.js";var m=e({name:"@fullcalendar/resource-timeline",premiumReleaseDate:"2025-04-02",deps:[r,o,i],initialView:"resourceTimelineDay",views:{resourceTimeline:{type:"timeline",component:n,needsResourceData:!0,resourceAreaWidth:"30%",resourcesInitiallyExpanded:!0,eventResizableFromStart:!0},resourceTimelineDay:{type:"resourceTimeline",duration:{days:1}},resourceTimelineWeek:{type:"resourceTimeline",duration:{weeks:1}},resourceTimelineMonth:{type:"resourceTimeline",duration:{months:1}},resourceTimelineYear:{type:"resourceTimeline",duration:{years:1}}}});export{m as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../node_modules/@fullcalendar/resource-timeline/index.js"],"sourcesContent":["import { createPlugin } from '@fullcalendar/core/index.js';\nimport premiumCommonPlugin from '@fullcalendar/premium-common/index.js';\nimport timelinePlugin from '@fullcalendar/timeline/index.js';\nimport resourcePlugin from '@fullcalendar/resource/index.js';\nimport { ResourceTimelineView } from './internal.js';\nimport '@fullcalendar/core/internal.js';\nimport '@fullcalendar/core/preact.js';\nimport '@fullcalendar/timeline/internal.js';\nimport '@fullcalendar/resource/internal.js';\nimport '@fullcalendar/scrollgrid/internal.js';\n\nvar index = createPlugin({\n name: '@fullcalendar/resource-timeline',\n premiumReleaseDate: '2025-04-02',\n deps: [\n premiumCommonPlugin,\n resourcePlugin,\n timelinePlugin,\n ],\n initialView: 'resourceTimelineDay',\n views: {\n resourceTimeline: {\n type: 'timeline',\n component: ResourceTimelineView,\n needsResourceData: true,\n resourceAreaWidth: '30%',\n resourcesInitiallyExpanded: true,\n eventResizableFromStart: true, // TODO: not DRY with this same setting in the main timeline config\n },\n resourceTimelineDay: {\n type: 'resourceTimeline',\n duration: { days: 1 },\n },\n resourceTimelineWeek: {\n type: 'resourceTimeline',\n duration: { weeks: 1 },\n },\n resourceTimelineMonth: {\n type: 'resourceTimeline',\n duration: { months: 1 },\n },\n resourceTimelineYear: {\n type: 'resourceTimeline',\n duration: { years: 1 },\n },\n },\n});\n\nexport { index as default };\n"],"names":["index","createPlugin","name","premiumReleaseDate","deps","premiumCommonPlugin","resourcePlugin","timelinePlugin","initialView","views","resourceTimeline","type","component","ResourceTimelineView","needsResourceData","resourceAreaWidth","resourcesInitiallyExpanded","eventResizableFromStart","resourceTimelineDay","duration","days","resourceTimelineWeek","weeks","resourceTimelineMonth","months","resourceTimelineYear","years"],"mappings":"8PAWG,IAACA,EAAQC,EAAa,CACrBC,KAAM,kCACNC,mBAAoB,aACpBC,KAAM,CACFC,EACAC,EACAC,GAEJC,YAAa,sBACbC,MAAO,CACHC,iBAAkB,CACdC,KAAM,WACNC,UAAWC,EACXC,mBAAmB,EACnBC,kBAAmB,MACnBC,4BAA4B,EAC5BC,yBAAyB,GAE7BC,oBAAqB,CACjBP,KAAM,mBACNQ,SAAU,CAAEC,KAAM,IAEtBC,qBAAsB,CAClBV,KAAM,mBACNQ,SAAU,CAAEG,MAAO,IAEvBC,sBAAuB,CACnBZ,KAAM,mBACNQ,SAAU,CAAEK,OAAQ,IAExBC,qBAAsB,CAClBd,KAAM,mBACNQ,SAAU,CAAEO,MAAO"}
@@ -0,0 +1,2 @@
1
+ import{buildTimelineDateProfile as e,buildSlatCols as t,TimelineHeader as r,TimelineLaneSlicer as s,TimelineSlats as o,TimelineLaneBg as i,coordToCss as l,TimelineLane as n}from"../timeline/internal.js";import{i as a,j as d,D as c,k as u,g as h,a as p,R as f,r as g}from"../resource/internal-common.js";import"../resource/index.js";import{ScrollGrid as m}from"../scrollgrid/internal.js";import{i as C,B as R,z as w,cq as S,ct as b,C as x,cd as y,aK as H,Z as N,bc as v,c as D,a6 as E,ch as W,bG as P,ca as M,c9 as G,c8 as k,A,b8 as T}from"../core/internal-common.js";import{createRef as U,createElement as z,Fragment as L}from"../../preact/dist/preact.mjs.js";function I({depth:e,hasChildren:t,isExpanded:r,onExpanderClick:s}){let o=[];for(let t=0;t<e;t+=1)o.push(z("span",{className:"fc-icon"}));let i=["fc-icon"];return t&&(r?i.push("fc-icon-minus-square"):i.push("fc-icon-plus-square")),o.push(z("span",{className:"fc-datagrid-expander"+(t?"":" fc-datagrid-expander-placeholder"),onClick:s},z("span",{className:i.join(" ")}))),z(L,{},...o)}class B extends R{constructor(){super(...arguments),this.refineRenderProps=A(V),this.onExpanderClick=e=>{let{props:t}=this;t.hasChildren&&this.context.dispatch({type:"SET_RESOURCE_ENTITY_EXPANDED",id:t.resource.id,isExpanded:!t.isExpanded})}}render(){let{props:e,context:t}=this,{colSpec:r}=e,s=this.refineRenderProps({resource:e.resource,fieldValue:e.fieldValue,context:t});return z(x,{elTag:"td",elClasses:["fc-datagrid-cell","fc-resource"],elAttrs:{role:"gridcell","data-resource-id":e.resource.id},renderProps:s,generatorName:r.isMain?"resourceLabelContent":void 0,customGenerator:r.cellContent,defaultGenerator:q,classNameGenerator:r.cellClassNames,didMount:r.cellDidMount,willUnmount:r.cellWillUnmount},(t=>z("div",{className:"fc-datagrid-cell-frame",style:{height:e.innerHeight}},z("div",{className:"fc-datagrid-cell-cushion fc-scrollgrid-sync-inner"},r.isMain&&z(I,{depth:e.depth,hasChildren:e.hasChildren,isExpanded:e.isExpanded,onExpanderClick:this.onExpanderClick}),z(t,{elTag:"span",elClasses:["fc-datagrid-cell-main"]})))))}}function q(e){return e.fieldValue||z(L,null," ")}function V(e){return{resource:new f(e.context,e.resource),fieldValue:e.fieldValue,view:e.context.viewApi}}class j extends R{render(){let{props:e,context:t}=this,{colSpec:r}=e,s={groupValue:e.fieldValue,view:t.viewApi};return z(x,{elTag:"td",elClasses:["fc-datagrid-cell","fc-resource-group"],elAttrs:{role:"gridcell",rowSpan:e.rowSpan},renderProps:s,generatorName:"resourceGroupLabelContent",customGenerator:r.cellContent,defaultGenerator:O,classNameGenerator:r.cellClassNames,didMount:r.cellDidMount,willUnmount:r.cellWillUnmount},(e=>z("div",{className:"fc-datagrid-cell-frame fc-datagrid-cell-frame-liquid"},z(e,{elTag:"div",elClasses:["fc-datagrid-cell-cushion","fc-sticky"]}))))}}function O(e){return e.groupValue||z(L,null," ")}class _ extends R{render(){let{props:e}=this,{resource:t,rowSpans:r,depth:s}=e,o=u(t);return z("tr",{role:"row"},e.colSpecs.map(((i,l)=>{let n=r[l];if(0===n)return null;null==n&&(n=1);let a=i.field?o[i.field]:t.title||h(t.id);return n>1?z(j,{key:l,colSpec:i,fieldValue:a,rowSpan:n}):z(B,{key:l,colSpec:i,resource:t,fieldValue:a,depth:s,hasChildren:e.hasChildren,isExpanded:e.isExpanded,innerHeight:e.innerHeight})})))}}_.addPropsEquality({rowSpans:C});class F extends R{constructor(){super(...arguments),this.innerInnerRef=U(),this.onExpanderClick=()=>{let{props:e}=this;this.context.dispatch({type:"SET_RESOURCE_ENTITY_EXPANDED",id:e.id,isExpanded:!e.isExpanded})}}render(){let{props:e,context:t}=this,r={groupValue:e.group.value,view:t.viewApi},s=e.group.spec;return z("tr",{role:"row"},z(x,{elTag:"th",elClasses:["fc-datagrid-cell","fc-resource-group",t.theme.getClass("tableCellShaded")],elAttrs:{role:"columnheader",scope:"colgroup",colSpan:e.spreadsheetColCnt},renderProps:r,generatorName:"resourceGroupLabelContent",customGenerator:s.labelContent,defaultGenerator:X,classNameGenerator:s.labelClassNames,didMount:s.labelDidMount,willUnmount:s.labelWillUnmount},(t=>z("div",{className:"fc-datagrid-cell-frame",style:{height:e.innerHeight}},z("div",{className:"fc-datagrid-cell-cushion fc-scrollgrid-sync-inner",ref:this.innerInnerRef},z(I,{depth:0,hasChildren:!0,isExpanded:e.isExpanded,onExpanderClick:this.onExpanderClick}),z(t,{elTag:"span",elClasses:["fc-datagrid-cell-main"]}))))))}}function X(e){return e.groupValue||z(L,null," ")}F.addPropsEquality({group:a});class Y extends R{constructor(){super(...arguments),this.resizerElRefs=new y(this._handleColResizerEl.bind(this)),this.colDraggings={}}render(){let{colSpecs:e,superHeaderRendering:t,rowInnerHeights:r}=this.props,s={view:this.context.viewApi},o=[];if(r=r.slice(),t){let i=r.shift();o.push(z("tr",{key:"row-super",role:"row"},z(x,{elTag:"th",elClasses:["fc-datagrid-cell","fc-datagrid-cell-super"],elAttrs:{role:"columnheader",scope:"colgroup",colSpan:e.length},renderProps:s,generatorName:"resourceAreaHeaderContent",customGenerator:t.headerContent,defaultGenerator:t.headerDefault,classNameGenerator:t.headerClassNames,didMount:t.headerDidMount,willUnmount:t.headerWillUnmount},(e=>z("div",{className:"fc-datagrid-cell-frame",style:{height:i}},z(e,{elTag:"div",elClasses:["fc-datagrid-cell-cushion","fc-scrollgrid-sync-inner"]}))))))}let i=r.shift();return o.push(z("tr",{key:"row",role:"row"},e.map(((t,r)=>{let o=r===e.length-1;return z(x,{key:r,elTag:"th",elClasses:["fc-datagrid-cell"],elAttrs:{role:"columnheader"},renderProps:s,generatorName:"resourceAreaHeaderContent",customGenerator:t.headerContent,defaultGenerator:t.headerDefault,classNameGenerator:t.headerClassNames,didMount:t.headerDidMount,willUnmount:t.headerWillUnmount},(e=>z("div",{className:"fc-datagrid-cell-frame",style:{height:i}},z("div",{className:"fc-datagrid-cell-cushion fc-scrollgrid-sync-inner"},t.isMain&&z("span",{className:"fc-datagrid-expander fc-datagrid-expander-placeholder"},z("span",{className:"fc-icon"})),z(e,{elTag:"span",elClasses:["fc-datagrid-cell-main"]})),!o&&z("div",{className:"fc-datagrid-cell-resizer",ref:this.resizerElRefs.createRef(r)}))))})))),z(L,null,o)}_handleColResizerEl(e,t){let{colDraggings:r}=this;if(e){let s=this.initColResizing(e,parseInt(t,10));s&&(r[t]=s)}else{let e=r[t];e&&(e.destroy(),delete r[t])}}initColResizing(e,t){let{pluginHooks:r,isRtl:s}=this.context,{onColWidthChange:o}=this.props,i=r.elementDraggingImpl;if(i){let r,l,n=new i(e);return n.emitter.on("dragstart",(()=>{let s=H(N(e,"tr"),"th");l=s.map((e=>e.getBoundingClientRect().width)),r=l[t]})),n.emitter.on("dragmove",(e=>{l[t]=Math.max(r+e.deltaX*(s?-1:1),20),o&&o(l.slice())})),n.setAutoScrollEnabled(!1),n}return null}}class Z extends R{constructor(){super(...arguments),this.refineRenderProps=A(g),this.handleHeightChange=(e,t)=>{this.props.onHeightChange&&this.props.onHeightChange(N(e,"tr"),t)}}render(){let{props:e,context:t}=this,{options:r}=t,s=this.refineRenderProps({resource:e.resource,context:t});return z("tr",{ref:e.elRef},z(x,{elTag:"td",elClasses:["fc-timeline-lane","fc-resource"],elAttrs:{"data-resource-id":e.resource.id},renderProps:s,generatorName:"resourceLaneContent",customGenerator:r.resourceLaneContent,classNameGenerator:r.resourceLaneClassNames,didMount:r.resourceLaneDidMount,willUnmount:r.resourceLaneWillUnmount},(t=>z("div",{className:"fc-timeline-lane-frame",style:{height:e.innerHeight}},z(t,{elTag:"div",elClasses:["fc-timeline-lane-misc"]}),z(n,{dateProfile:e.dateProfile,tDateProfile:e.tDateProfile,nowDate:e.nowDate,todayRange:e.todayRange,nextDayThreshold:e.nextDayThreshold,businessHours:e.businessHours,eventStore:e.eventStore,eventUiBases:e.eventUiBases,dateSelection:e.dateSelection,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,timelineCoords:e.timelineCoords,onHeightChange:this.handleHeightChange,resourceId:e.resource.id})))))}}class K extends R{render(){let{props:e,context:t}=this,{renderHooks:r}=e,s={groupValue:e.groupValue,view:t.viewApi};return z("tr",{ref:e.elRef},z(x,{elTag:"td",elRef:e.elRef,elClasses:["fc-timeline-lane","fc-resource-group",t.theme.getClass("tableCellShaded")],renderProps:s,generatorName:"resourceGroupLaneContent",customGenerator:r.laneContent,classNameGenerator:r.laneClassNames,didMount:r.laneDidMount,willUnmount:r.laneWillUnmount},(t=>z(t,{elTag:"div",elStyle:{height:e.innerHeight}}))))}}class J extends R{render(){let{props:e,context:t}=this,{rowElRefs:r,innerHeights:s}=e;return z("tbody",null,e.rowNodes.map(((o,i)=>{if(o.group)return z(K,{key:o.id,elRef:r.createRef(o.id),groupValue:o.group.value,renderHooks:o.group.spec,innerHeight:s[i]||""});if(o.resource){let l=o.resource;return z(Z,Object.assign({key:o.id,elRef:r.createRef(o.id)},e.splitProps[l.id],{resource:l,dateProfile:e.dateProfile,tDateProfile:e.tDateProfile,nowDate:e.nowDate,todayRange:e.todayRange,nextDayThreshold:t.options.nextDayThreshold,businessHours:l.businessHours||e.fallbackBusinessHours,innerHeight:s[i]||"",timelineCoords:e.slatCoords,onHeightChange:e.onRowHeightChange}))}return null})))}}class Q extends R{constructor(){super(...arguments),this.rootElRef=U(),this.rowElRefs=new y}render(){let{props:e,context:t}=this;return z("table",{ref:this.rootElRef,"aria-hidden":!0,className:"fc-scrollgrid-sync-table "+t.theme.getClass("table"),style:{minWidth:e.tableMinWidth,width:e.clientWidth,height:e.minHeight}},z(J,{rowElRefs:this.rowElRefs,rowNodes:e.rowNodes,dateProfile:e.dateProfile,tDateProfile:e.tDateProfile,nowDate:e.nowDate,todayRange:e.todayRange,splitProps:e.splitProps,fallbackBusinessHours:e.fallbackBusinessHours,slatCoords:e.slatCoords,innerHeights:e.innerHeights,onRowHeightChange:e.onRowHeightChange}))}componentDidMount(){this.updateCoords()}componentDidUpdate(){this.updateCoords()}componentWillUnmount(){this.props.onRowCoords&&this.props.onRowCoords(null)}updateCoords(){let{props:e}=this;var t;e.onRowCoords&&null!==e.clientWidth&&this.props.onRowCoords(new T(this.rootElRef.current,(t=this.rowElRefs.currentMap,e.rowNodes.map((e=>t[e.id]))),!1,!0))}}class $ extends v{constructor(){super(...arguments),this.computeHasResourceBusinessHours=w(ee),this.resourceSplitter=new p,this.bgSlicer=new s,this.slatsRef=U(),this.state={slatCoords:null},this.handleEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e}):this.context.unregisterInteractiveComponent(this)},this.handleSlatCoords=e=>{this.setState({slatCoords:e}),this.props.onSlatCoords&&this.props.onSlatCoords(e)},this.handleRowCoords=e=>{this.rowCoords=e,this.props.onRowCoords&&this.props.onRowCoords(e)}}render(){let{props:e,state:t,context:r}=this,{dateProfile:s,tDateProfile:n}=e,a=D(n.slotDuration).unit,d=this.computeHasResourceBusinessHours(e.rowNodes),c=this.resourceSplitter.splitProps(e),u=c[""],h=this.bgSlicer.sliceProps(u,s,n.isTimeScale?null:e.nextDayThreshold,r,s,r.dateProfileGenerator,n,r.dateEnv),p=t.slatCoords&&t.slatCoords.dateProfile===e.dateProfile?t.slatCoords:null;return z("div",{ref:this.handleEl,className:["fc-timeline-body",e.expandRows?"fc-timeline-body-expandrows":""].join(" "),style:{minWidth:e.tableMinWidth}},z(E,{unit:a},((t,a)=>z(L,null,z(o,{ref:this.slatsRef,dateProfile:s,tDateProfile:n,nowDate:t,todayRange:a,clientWidth:e.clientWidth,tableColGroupNode:e.tableColGroupNode,tableMinWidth:e.tableMinWidth,onCoords:this.handleSlatCoords,onScrollLeftRequest:e.onScrollLeftRequest}),z(i,{businessHourSegs:d?null:h.businessHourSegs,bgEventSegs:h.bgEventSegs,timelineCoords:p,eventResizeSegs:h.eventResize?h.eventResize.segs:[],dateSelectionSegs:h.dateSelectionSegs,nowDate:t,todayRange:a}),z(Q,{rowNodes:e.rowNodes,dateProfile:s,tDateProfile:e.tDateProfile,nowDate:t,todayRange:a,splitProps:c,fallbackBusinessHours:d?e.businessHours:null,clientWidth:e.clientWidth,minHeight:e.expandRows?e.clientHeight:"",tableMinWidth:e.tableMinWidth,innerHeights:e.rowInnerHeights,slatCoords:p,onRowCoords:this.handleRowCoords,onRowHeightChange:e.onRowHeightChange}),r.options.nowIndicator&&p&&p.isDateInRange(t)&&z("div",{className:"fc-timeline-now-indicator-container"},z(W,{elClasses:["fc-timeline-now-indicator-line"],elStyle:l(p.dateToCoord(t),r.isRtl),isAxis:!1,date:t}))))))}queryHit(e,t){let r=this.rowCoords,s=r.topToIndex(t);if(null!=s){let t=this.props.rowNodes[s].resource;if(t){let o=this.slatsRef.current.positionToHit(e);if(o)return{dateProfile:this.props.dateProfile,dateSpan:{range:o.dateSpan.range,allDay:o.dateSpan.allDay,resourceId:t.id},rect:{left:o.left,right:o.right,top:r.tops[s],bottom:r.bottoms[s]},dayEl:o.dayEl,layer:0}}}return null}}function ee(e){for(let t of e){let e=t.resource;if(e&&e.businessHours)return!0}return!1}class te extends R{constructor(){super(...arguments),this.scrollGridRef=U(),this.timeBodyScrollerElRef=U(),this.spreadsheetHeaderChunkElRef=U(),this.rootElRef=U(),this.ensureScrollGridResizeId=0,this.state={resourceAreaWidthOverride:null},this.ensureScrollGridResize=()=>{this.ensureScrollGridResizeId&&clearTimeout(this.ensureScrollGridResizeId),this.ensureScrollGridResizeId=setTimeout((()=>{this.scrollGridRef.current.handleSizing(!1)}),P.SCROLLGRID_RESIZE_INTERVAL+1)}}render(){let{props:e,state:t,context:r}=this,{options:s}=r,o=!e.forPrint&&M(s),i=!e.forPrint&&G(s),l=[{type:"header",key:"header",syncRowHeights:!0,isSticky:o,chunks:[{key:"datagrid",elRef:this.spreadsheetHeaderChunkElRef,tableClassName:"fc-datagrid-header",rowContent:e.spreadsheetHeaderRows},{key:"divider",outerContent:z("td",{role:"presentation",className:"fc-resource-timeline-divider "+r.theme.getClass("tableCellShaded")})},{key:"timeline",content:e.timeHeaderContent}]},{type:"body",key:"body",syncRowHeights:!0,liquid:!0,expandRows:Boolean(s.expandRows),chunks:[{key:"datagrid",tableClassName:"fc-datagrid-body",rowContent:e.spreadsheetBodyRows},{key:"divider",outerContent:z("td",{role:"presentation",className:"fc-resource-timeline-divider "+r.theme.getClass("tableCellShaded")})},{key:"timeline",scrollerElRef:this.timeBodyScrollerElRef,content:e.timeBodyContent}]}];i&&l.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"datagrid",content:k},{key:"divider",outerContent:z("td",{role:"presentation",className:"fc-resource-timeline-divider "+r.theme.getClass("tableCellShaded")})},{key:"timeline",content:k}]});let n=null!=t.resourceAreaWidthOverride?t.resourceAreaWidthOverride:s.resourceAreaWidth;return z(m,{ref:this.scrollGridRef,elRef:this.rootElRef,liquid:!e.isHeightAuto&&!e.forPrint,forPrint:e.forPrint,collapsibleWidth:!1,colGroups:[{cols:e.spreadsheetCols,width:n},{cols:[]},{cols:e.timeCols}],sections:l})}forceTimeScroll(e){this.scrollGridRef.current.forceScrollLeft(2,e)}forceResourceScroll(e){this.scrollGridRef.current.forceScrollTop(1,e)}getResourceScroll(){return this.timeBodyScrollerElRef.current.scrollTop}componentDidMount(){this.initSpreadsheetResizing()}componentWillUnmount(){this.destroySpreadsheetResizing()}initSpreadsheetResizing(){let{isRtl:e,pluginHooks:t}=this.context,r=t.elementDraggingImpl,s=this.spreadsheetHeaderChunkElRef.current;if(r){let t,o,i=this.rootElRef.current,l=this.spreadsheetResizerDragging=new r(i,".fc-resource-timeline-divider");l.emitter.on("dragstart",(()=>{t=s.getBoundingClientRect().width,o=i.getBoundingClientRect().width})),l.emitter.on("dragmove",(r=>{let s=t+r.deltaX*(e?-1:1);s=Math.max(s,30),s=Math.min(s,o-30),this.setState({resourceAreaWidthOverride:s},this.ensureScrollGridResize)})),l.setAutoScrollEnabled(!1)}}destroySpreadsheetResizing(){this.spreadsheetResizerDragging&&this.spreadsheetResizerDragging.destroy()}}class re extends R{constructor(t,r){super(t,r),this.processColOptions=w(le),this.buildTimelineDateProfile=w(e),this.hasNesting=w(ie),this.buildRowNodes=w(d),this.layoutRef=U(),this.rowNodes=[],this.renderedRowNodes=[],this.buildRowIndex=w(se),this.handleSlatCoords=e=>{this.setState({slatCoords:e})},this.handleRowCoords=e=>{this.rowCoords=e,this.scrollResponder.update(!1)},this.handleMaxCushionWidth=e=>{this.setState({slotCushionMaxWidth:Math.ceil(e)})},this.handleScrollLeftRequest=e=>{this.layoutRef.current.forceTimeScroll(e)},this.handleScrollRequest=e=>{let{rowCoords:t}=this,r=this.layoutRef.current,s=e.rowId||e.resourceId;if(t){if(s){let o=this.buildRowIndex(this.renderedRowNodes)[s];if(null!=o){let s=null!=e.fromBottom?t.bottoms[o]-e.fromBottom:t.tops[o];r.forceResourceScroll(s)}}return!0}return null},this.handleColWidthChange=e=>{this.setState({spreadsheetColWidths:e})},this.state={resourceAreaWidth:r.options.resourceAreaWidth,spreadsheetColWidths:[]}}render(){let{props:e,state:s,context:o}=this,{options:i,viewSpec:l}=o,{superHeaderRendering:n,groupSpecs:a,orderSpecs:d,isVGrouping:c,colSpecs:u}=this.processColOptions(o.options),h=this.buildTimelineDateProfile(e.dateProfile,o.dateEnv,i,o.dateProfileGenerator),p=this.rowNodes=this.buildRowNodes(e.resourceStore,a,d,c,e.resourceEntityExpansions,i.resourcesInitiallyExpanded),{slotMinWidth:f}=i,g=t(h,f||this.computeFallbackSlotMinWidth(h));return z(S,{elClasses:["fc-resource-timeline",!this.hasNesting(p)&&"fc-resource-timeline-flat","fc-timeline",!1===i.eventOverlap?"fc-timeline-overlap-disabled":"fc-timeline-overlap-enabled"],viewSpec:l},z(te,{ref:this.layoutRef,forPrint:e.forPrint,isHeightAuto:e.isHeightAuto,spreadsheetCols:oe(u,s.spreadsheetColWidths,""),spreadsheetHeaderRows:e=>z(Y,{superHeaderRendering:n,colSpecs:u,onColWidthChange:this.handleColWidthChange,rowInnerHeights:e.rowSyncHeights}),spreadsheetBodyRows:e=>z(L,null,this.renderSpreadsheetRows(p,u,e.rowSyncHeights)),timeCols:g,timeHeaderContent:t=>z(r,{clientWidth:t.clientWidth,clientHeight:t.clientHeight,tableMinWidth:t.tableMinWidth,tableColGroupNode:t.tableColGroupNode,dateProfile:e.dateProfile,tDateProfile:h,slatCoords:s.slatCoords,rowInnerHeights:t.rowSyncHeights,onMaxCushionWidth:f?null:this.handleMaxCushionWidth}),timeBodyContent:t=>z($,{dateProfile:e.dateProfile,clientWidth:t.clientWidth,clientHeight:t.clientHeight,tableMinWidth:t.tableMinWidth,tableColGroupNode:t.tableColGroupNode,expandRows:t.expandRows,tDateProfile:h,rowNodes:p,businessHours:e.businessHours,dateSelection:e.dateSelection,eventStore:e.eventStore,eventUiBases:e.eventUiBases,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,resourceStore:e.resourceStore,nextDayThreshold:o.options.nextDayThreshold,rowInnerHeights:t.rowSyncHeights,onSlatCoords:this.handleSlatCoords,onRowCoords:this.handleRowCoords,onScrollLeftRequest:this.handleScrollLeftRequest,onRowHeightChange:t.reportRowHeightChange})}))}renderSpreadsheetRows(e,t,r){return e.map(((e,s)=>e.group?z(F,{key:e.id,id:e.id,spreadsheetColCnt:t.length,isExpanded:e.isExpanded,group:e.group,innerHeight:r[s]||""}):e.resource?z(_,{key:e.id,colSpecs:t,rowSpans:e.rowSpans,depth:e.depth,isExpanded:e.isExpanded,hasChildren:e.hasChildren,resource:e.resource,innerHeight:r[s]||""}):null))}componentDidMount(){this.renderedRowNodes=this.rowNodes,this.scrollResponder=this.context.createScrollResponder(this.handleScrollRequest)}getSnapshotBeforeUpdate(){return this.props.forPrint?{}:{resourceScroll:this.queryResourceScroll()}}componentDidUpdate(e,t,r){this.renderedRowNodes=this.rowNodes,this.scrollResponder.update(e.dateProfile!==this.props.dateProfile),r.resourceScroll&&this.handleScrollRequest(r.resourceScroll)}componentWillUnmount(){this.scrollResponder.detach()}computeFallbackSlotMinWidth(e){return Math.max(30,(this.state.slotCushionMaxWidth||0)/e.slotsPerLabel)}queryResourceScroll(){let{rowCoords:e,renderedRowNodes:t}=this;if(e){let r=this.layoutRef.current,s=e.bottoms,o=r.getResourceScroll(),i={};for(let e=0;e<s.length;e+=1){let r=t[e],l=s[e]-o;if(l>0){i.rowId=r.id,i.fromBottom=l;break}}return i}return null}}function se(e){let t={};for(let r=0;r<e.length;r+=1)t[e[r].id]=r;return t}function oe(e,t,r=""){return e.map(((e,s)=>({className:e.isMain?"fc-main-col":"",width:t[s]||e.width||r})))}function ie(e){for(let t of e){if(t.group)return!0;if(t.resource&&t.hasChildren)return!0}return!1}function le(e){let t=e.resourceAreaColumns||[],r=null;t.length?e.resourceAreaHeaderContent&&(r={headerClassNames:e.resourceAreaHeaderClassNames,headerContent:e.resourceAreaHeaderContent,headerDidMount:e.resourceAreaHeaderDidMount,headerWillUnmount:e.resourceAreaHeaderWillUnmount}):t.push({headerClassNames:e.resourceAreaHeaderClassNames,headerContent:e.resourceAreaHeaderContent,headerDefault:()=>"Resources",headerDidMount:e.resourceAreaHeaderDidMount,headerWillUnmount:e.resourceAreaHeaderWillUnmount});let s=[],o=[],i=[],l=!1;for(let r of t)r.group?o.push(Object.assign(Object.assign({},r),{cellClassNames:r.cellClassNames||e.resourceGroupLabelClassNames,cellContent:r.cellContent||e.resourceGroupLabelContent,cellDidMount:r.cellDidMount||e.resourceGroupLabelDidMount,cellWillUnmount:r.cellWillUnmount||e.resourceGroupLaneWillUnmount})):s.push(r);let n=s[0];if(n.isMain=!0,n.cellClassNames=n.cellClassNames||e.resourceLabelClassNames,n.cellContent=n.cellContent||e.resourceLabelContent,n.cellDidMount=n.cellDidMount||e.resourceLabelDidMount,n.cellWillUnmount=n.cellWillUnmount||e.resourceLabelWillUnmount,o.length)i=o,l=!0;else{let t=e.resourceGroupField;t&&i.push({field:t,labelClassNames:e.resourceGroupLabelClassNames,labelContent:e.resourceGroupLabelContent,labelDidMount:e.resourceGroupLabelDidMount,labelWillUnmount:e.resourceGroupLabelWillUnmount,laneClassNames:e.resourceGroupLaneClassNames,laneContent:e.resourceGroupLaneContent,laneDidMount:e.resourceGroupLaneDidMount,laneWillUnmount:e.resourceGroupLaneWillUnmount})}let a=e.resourceOrder||c,d=[];for(let e of a){let t=!1;for(let r of i)if(r.field===e.field){r.order=e.order,t=!0;break}t||d.push(e)}return{superHeaderRendering:r,isVGrouping:l,groupSpecs:i,colSpecs:o.concat(s),orderSpecs:d}}re.addStateEquality({spreadsheetColWidths:C});b(".fc .fc-resource-timeline-divider{cursor:col-resize;width:3px}.fc .fc-resource-group{font-weight:inherit;text-align:inherit}.fc .fc-resource-timeline .fc-resource-group:not([rowspan]){background:var(--fc-neutral-bg-color)}.fc .fc-timeline-lane-frame{position:relative}.fc .fc-timeline-overlap-enabled .fc-timeline-lane-frame .fc-timeline-events{box-sizing:content-box;padding-bottom:10px}.fc-timeline-body-expandrows td.fc-timeline-lane{position:relative}.fc-timeline-body-expandrows .fc-timeline-lane-frame{position:static}.fc-datagrid-cell-frame-liquid{height:100%}.fc-liquid-hack .fc-datagrid-cell-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-datagrid-header .fc-datagrid-cell-frame{align-items:center;display:flex;justify-content:flex-start;position:relative}.fc .fc-datagrid-cell-resizer{bottom:0;cursor:col-resize;position:absolute;top:0;width:5px;z-index:1}.fc .fc-datagrid-cell-cushion{overflow:hidden;padding:8px;white-space:nowrap}.fc .fc-datagrid-expander{cursor:pointer;opacity:.65}.fc .fc-datagrid-expander .fc-icon{display:inline-block;width:1em}.fc .fc-datagrid-expander-placeholder{cursor:auto}.fc .fc-resource-timeline-flat .fc-datagrid-expander-placeholder{display:none}.fc-direction-ltr .fc-datagrid-cell-resizer{right:-3px}.fc-direction-rtl .fc-datagrid-cell-resizer{left:-3px}.fc-direction-ltr .fc-datagrid-expander{margin-right:3px}.fc-direction-rtl .fc-datagrid-expander{margin-left:3px}");export{Z as ResourceTimelineLane,re as ResourceTimelineView,_ as SpreadsheetRow};
2
+ //# sourceMappingURL=internal.js.map