PageSourceSearch

https://www.canning.wa.gov.au/dist/js/event-listing-a7eafafb.js

js canning.wa.gov.au collected 2026-10-02 07:41:49 UTC 333,660 bytes, 9 lines download raw bytes

1import{o as o$1,b as b$2,a as _$1,h as h$1,F as F$1,p as p$1,_ as _$2,k as k$2,y as y$1,d as debounce,E as EVENT_SEARCH_ENDPOINT,B as B$2}from"./apiEndpoints-7dae19e2.js";import{u as useCategoryTagFilters,I as IconTextInput,C as CheckboxDropdown}from"./useCategoryTagFilters-bd45a8a0.js";import{u as useListing,P as Pagination}from"./useListing-86a34254.js";import{u as useAutoAnimate,p as pushUrlParams}from"./pushUrlParms-e79b37eb.js";import{P as Picture}from"./Picture-ad2b3b2e.js";import{f as formatDate,a as formatTime}from"./dateFormatters-fcfed8f8.js";import{w as wn,m as mn,a as w$3,z as z$2,u as useMediaQuery}from"./compat.module-7a4dedea.js";import{u as useTabChangeEvent}from"./useTabChangeEvent-9efc7d7b.js";import"./inputHandlers-112c6510.js";import"./index-71f4e446.js";const DISPLAYMODE_CALENDAR="calendar",DISPLAYMODE_GRID="grid",DISPLAYMODE_LIST="list",EventItem=({name,image,url,eventStartDate,eventEndTime,eventStartTime,location,displayMode,columnCount})=>{const formattedDate=formatDate(eventStartDate),formattedDateShort=formatDate(eventStartDate,"dd MMM yyyy"),formattedStartTime=formatTime(eventStartTime),formattedEndTime=formatTime(eventEndTime);return o$1("a",{href:url,class:"block group",children:o$1("div",{class:`${displayMode===DISPLAYMODE_LIST?"flex":"border border-grey-50 rounded-lg bg-white shadow"} `,children:[displayMode!==DISPLAYMODE_LIST?o$1(Picture,{...image,cssClasses:"hidden md:block rounded-tl-lg rounded-tr-lg"}):null,o$1("div",{class:`${displayMode===DISPLAYMODE_LIST?"w-full py-4":`md:min-h-61 p-8 ${columnCount>=4?"lg:!px-4":""}`} flex flex-col justify-between`,children:[o$1("div",{children:[o$1("h3",{class:"mb-2",children:name}),o$1("div",{class:"block mb-2 text-brand-teal font-medium",children:[o$1("i",{class:"fa-solid fa-calendar mr-2"}),o$1("div",{class:"mr-4 text-xs lg:hidden",children:formattedDateShort}),o$1("div",{class:"mr-8 text-14 max-lg:hidden inline-block",children:formattedDate}),o$1("div",{class:"text-xs md:text-14 inline-block mr-4 lg:mr-0",children:[formattedStartTime," - ",formattedEndTime]}),location&&o$1("div",{class:`flex items-center text-brand-teal font-medium ${displayMode===DISPLAYMODE_LIST?"md:inline-flex":"flex"}`,children:[o$1("i",{class:` ${displayMode===DISPLAYMODE_LIST?"lg:ml-8":""} fa-solid fa-map-pin mr-2`}),o$1("div",{class:"mr-8 text-14",children:location})]})]})]}),o$1("div",{class:`${displayMode===DISPLAYMODE_LIST?"pb-8 border-b":"pt-4 border-t"} w-full mt-4 border-grey-200 `,children:o$1("div",{class:"btn btn-secondary btn-secondary-lg",children:"View Event"})})]})]})})};var n,l$1,u$1,i$1,t,r$1,o,f$1,e$1,c$1={},s=[],a$1=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function h(n2,l2){for(var u2 in l2)n2[u2]=l2[u2];return n2}function v$1(n2){var l2=n2.parentNode;l2&&l2.removeChild(n2)}function y(l2,u2,i2){var t2,r2,o2,f2={};for(o2 in u2)o2=="key"?t2=u2[o2]:o2=="ref"?r2=u2[o2]:f2[o2]=u2[o2];if(arguments.length>2&&(f2.children=arguments.length>3?n.call(arguments,2):i2),typeof l2=="function"&&l2.defaultProps!=null)for(o2 in l2.defaultProps)f2[o2]===void 0&&(f2[o2]=l2.defaultProps[o2]);return p(l2,f2,t2,r2,null)}function p(n2,i2,t2,r2,o2){var f2={type:n2,props:i2,key:t2,ref:r2,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:o2??++u$1};return o2==null&&l$1.vnode!=null&&l$1.vnode(f2),f2}function d(){return{current:null}}function _(n2){return n2.children}function k$1(n2,l2,u2,i2,t2){var r2;for(r2 in u2)r2==="children"||r2==="key"||r2 in l2||g$2(n2,r2,null,u2[r2],i2);for(r2 in l2)t2&&typeof l2[r2]!="function"||r2==="children"||r2==="key"||r2==="value"||r2==="checked"||u2[r2]===l2[r2]||g$2(n2,r2,l2[r2],u2[r2],i2)}function b$1(n2,l2,u2){l2[0]==="-"?n2.setProperty(l2,u2??""):n2[l2]=u2==null?"":typeof u2!="number"||a$1.test(l2)?u2:u2+"px"}function g$2(n2,l2,u2,i2,t2){var r2;n:if(l2==="style")if(typeof u2=="string")n2.style.cssText=u2;else{if(typeof i2=="string"&&(n2.style.cssText=i2=""),i2)for(l2 in i2)u2&&l2 in u2||b$1(n2.style,l2,"");if(u2)for(l2 in u2)i2&&u2[l2]===i2[l2]||b$1(n2.style,l2,u2[l2])}else if(l2[0]==="o"&&l2[1]==="n")r2=l2!==(l2=l2.replace(/Capture$/,"")),l2=l2.toLowerCase()in n2?l2.toLowerCase().slice(2):l2.slice(2),n2.l||(n2.l={}),n2.l[l2+r2]=u2,u2?i2||n2.addEventListener(l2,r2?w$2:m$1,r2):n2.removeEventListener(l2,r2?w$2:m$1,r2);else if(l2!=="dangerouslySetInnerHTML"){if(t2)l2=l2.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(l2!=="width"&&l2!=="height"&&l2!=="href"&&l2!=="list"&&l2!=="form"&&l2!=="tabIndex"&&l2!=="download"&&l2 in n2)try{n2[l2]=u2??"";break n}catch{}typeof u2=="function"||(u2==null||u2===!1&&l2.indexOf("-")==-1?n2.removeAttribute(l2):n2.setAttribute(l2,u2))}}function m$1(n2){t=!0;try{return this.l[n2.type+!1](l$1.event?l$1.event(n2):n2)}finally{t=!1}}function w$2(n2){t=!0;try{return this.l[n2.type+!0](l$1.event?l$1.event(n2):n2)}finally{t=!1}}function x$1(n2,l2){this.props=n2,this.context=l2}function A(n2,l2){if(l2==null)return n2.__?A(n2.__,n2.__.__k.indexOf(n2)+1):null;for(var u2;l2<n2.__k.length;l2++)if((u2=n2.__k[l2])!=null&&u2.__e!=null)return u2.__e;return typeof n2.type=="function"?A(n2):null}function P$1(n2){var l2,u2;if((n2=n2.__)!=null&&n2.__c!=null){for(n2.__e=n2.__c.base=null,l2=0;l2<n2.__k.length;l2++)if((u2=n2.__k[l2])!=null&&u2.__e!=null){n2.__e=n2.__c.base=u2.__e;break}return P$1(n2)}}function C$1(n2){t?setTimeout(n2):f$1(n2)}function T$1(n2){(!n2.__d&&(n2.__d=!0)&&r$1.push(n2)&&!$$1.__r++||o!==l$1.debounceRendering)&&((o=l$1.debounceRendering)||C$1)($$1)}function $$1(){var n2,l2,u2,i2,t2,o2,f2,e2;for(r$1.sort(function(n3,l3){return n3.__v.__b-l3.__v.__b});n2=r$1.shift();)n2.__d&&(l2=r$1.length,i2=void 0,t2=void 0,f2=(o2=(u2=n2).__v).__e,(e2=u2.__P)&&(i2=[],(t2=h({},o2)).__v=o2.__v+1,M(e2,o2,t2,u2.__n,e2.ownerSVGElement!==void 0,o2.__h!=null?[f2]:null,i2,f2??A(o2),o2.__h),N(i2,o2),o2.__e!=f2&&P$1(o2)),r$1.length>l2&&r$1.sort(function(n3,l3){return n3.__v.__b-l3.__v.__b}));$$1.__r=0}function H$1(n2,l2,u2,i2,t2,r2,o2,f2,e2,a2){var h2,v2,y2,d2,k2,b2,g2,m2=i2&&i2.__k||s,w2=m2.length;for(u2.__k=[],h2=0;h2<l2.length;h2++)if((d2=u2.__k[h2]=(d2=l2[h2])==null||typeof d2=="boolean"?null:typeof d2=="string"||typeof d2=="number"||typeof d2=="bigint"?p(null,d2,null,null,d2):Array.isArray(d2)?p(_,{children:d2},null,null,null):d2.__b>0?p(d2.type,d2.props,d2.key,d2.ref?d2.ref:null,d2.__v):d2)!=null){if(d2.__=u2,d2.__b=u2.__b+1,(y2=m2[h2])===null||y2&&d2.key==y2.key&&d2.type===y2.type)m2[h2]=void 0;else for(v2=0;v2<w2;v2++){if((y2=m2[v2])&&d2.key==y2.key&&d2.type===y2.type){m2[v2]=void 0;break}y2=null}M(n2,d2,y2=y2||c$1,t2,r2,o2,f2,e2,a2),k2=d2.__e,(v2=d2.ref)&&y2.ref!=v2&&(g2||(g2=[]),y2.ref&&g2.push(y2.ref,null,d2),g2.push(v2,d2.__c||k2,d2)),k2!=null?(b2==null&&(b2=k2),typeof d2.type=="function"&&d2.__k===y2.__k?d2.__d=e2=I$1(d2,e2,n2):e2=z$1(n2,d2,y2,m2,k2,e2),typeof u2.type=="function"&&(u2.__d=e2)):e2&&y2.__e==e2&&e2.parentNode!=n2&&(e2=A(y2))}for(u2.__e=b2,h2=w2;h2--;)m2[h2]!=null&&(typeof u2.type=="function"&&m2[h2].__e!=null&&m2[h2].__e==u2.__d&&(u2.__d=L$1(i2).nextSibling),q(m2[h2],m2[h2]));if(g2)for(h2=0;h2<g2.length;h2++)S(g2[h2],g2[++h2],g2[++h2])}function I$1(n2,l2,u2){for(var i2,t2=n2.__k,r2=0;t2&&r2<t2.length;r2++)(i2=t2[r2])&&(i2.__=n2,l2=typeof i2.type=="function"?I$1(i2,l2,u2):z$1(u2,i2,i2,t2,i2.__e,l2));return l2}function j$2(n2,l2){return l2=l2||[],n2==null||typeof n2=="boolean"||(Array.isArray(n2)?n2.some(function(n3){j$2(n3,l2)}):l2.push(n2)),l2}function z$1(n2,l2,u2,i2,t2,r2){var o2,f2,e2;
vendor: 13,836 bytes, line 1
1if(l2.__d!==void 0)o2=l2.__d,l2.__d=void 0;else if(u2==null||t2!=r2||t2.parentNode==null)n:if(r2==null||r2.parentNode!==n2)n2.appendChild(t2),o2=null;else{for(f2=r2,e2=0;(f2=f2.nextSibling)&&e2<i2.length;e2+=1)if(f2==t2)break n;n2.insertBefore(t2,r2),o2=r2}return o2!==void 0?o2:t2.nextSibling}function L$1(n2){var l2,u2,i2;if(n2.type==null||typeof n2.type=="string")return n2.__e;if(n2.__k){for(l2=n2.__k.length-1;l2>=0;l2--)if((u2=n2.__k[l2])&&(i2=L$1(u2)))return i2}return null}function M(n2,u2,i2,t2,r2,o2,f2,e2,c2){var s2,a2,v2,y2,p2,d2,k2,b2,g2,m2,w2,A2,P2,C2,T2,$2=u2.type;if(u2.constructor!==void 0)return null;i2.__h!=null&&(c2=i2.__h,e2=u2.__e=i2.__e,u2.__h=null,o2=[e2]),(s2=l$1.__b)&&s2(u2);try{n:if(typeof $2=="function"){if(b2=u2.props,g2=(s2=$2.contextType)&&t2[s2.__c],m2=s2?g2?g2.props.value:s2.__:t2,i2.__c?k2=(a2=u2.__c=i2.__c).__=a2.__E:("prototype"in $2&&$2.prototype.render?u2.__c=a2=new $2(b2,m2):(u2.__c=a2=new x$1(b2,m2),a2.constructor=$2,a2.render=B$1),g2&&g2.sub(a2),a2.props=b2,a2.state||(a2.state={}),a2.context=m2,a2.__n=t2,v2=a2.__d=!0,a2.__h=[],a2._sb=[]),a2.__s==null&&(a2.__s=a2.state),$2.getDerivedStateFromProps!=null&&(a2.__s==a2.state&&(a2.__s=h({},a2.__s)),h(a2.__s,$2.getDerivedStateFromProps(b2,a2.__s))),y2=a2.props,p2=a2.state,a2.__v=u2,v2)$2.getDerivedStateFromProps==null&&a2.componentWillMount!=null&&a2.componentWillMount(),a2.componentDidMount!=null&&a2.__h.push(a2.componentDidMount);else{if($2.getDerivedStateFromProps==null&&b2!==y2&&a2.componentWillReceiveProps!=null&&a2.componentWillReceiveProps(b2,m2),!a2.__e&&a2.shouldComponentUpdate!=null&&a2.shouldComponentUpdate(b2,a2.__s,m2)===!1||u2.__v===i2.__v){for(u2.__v!==i2.__v&&(a2.props=b2,a2.state=a2.__s,a2.__d=!1),u2.__e=i2.__e,u2.__k=i2.__k,u2.__k.forEach(function(n3){n3&&(n3.__=u2)}),w2=0;w2<a2._sb.length;w2++)a2.__h.push(a2._sb[w2]);a2._sb=[],a2.__h.length&&f2.push(a2);break n}a2.componentWillUpdate!=null&&a2.componentWillUpdate(b2,a2.__s,m2),a2.componentDidUpdate!=null&&a2.__h.push(function(){a2.componentDidUpdate(y2,p2,d2)})}if(a2.context=m2,a2.props=b2,a2.__P=n2,A2=l$1.__r,P2=0,"prototype"in $2&&$2.prototype.render){for(a2.state=a2.__s,a2.__d=!1,A2&&A2(u2),s2=a2.render(a2.props,a2.state,a2.context),C2=0;C2<a2._sb.length;C2++)a2.__h.push(a2._sb[C2]);a2._sb=[]}else do a2.__d=!1,A2&&A2(u2),s2=a2.render(a2.props,a2.state,a2.context),a2.state=a2.__s;while(a2.__d&&++P2<25);a2.state=a2.__s,a2.getChildContext!=null&&(t2=h(h({},t2),a2.getChildContext())),v2||a2.getSnapshotBeforeUpdate==null||(d2=a2.getSnapshotBeforeUpdate(y2,p2)),T2=s2!=null&&s2.type===_&&s2.key==null?s2.props.children:s2,H$1(n2,Array.isArray(T2)?T2:[T2],u2,i2,t2,r2,o2,f2,e2,c2),a2.base=u2.__e,u2.__h=null,a2.__h.length&&f2.push(a2),k2&&(a2.__E=a2.__=null),a2.__e=!1}else o2==null&&u2.__v===i2.__v?(u2.__k=i2.__k,u2.__e=i2.__e):u2.__e=O(i2.__e,u2,i2,t2,r2,o2,f2,c2);(s2=l$1.diffed)&&s2(u2)}catch(n3){u2.__v=null,(c2||o2!=null)&&(u2.__e=e2,u2.__h=!!c2,o2[o2.indexOf(e2)]=null),l$1.__e(n3,u2,i2)}}function N(n2,u2){l$1.__c&&l$1.__c(u2,n2),n2.some(function(u3){try{n2=u3.__h,u3.__h=[],n2.some(function(n3){n3.call(u3)})}catch(n3){l$1.__e(n3,u3.__v)}})}function O(l2,u2,i2,t2,r2,o2,f2,e2){var s2,a2,h2,y2=i2.props,p2=u2.props,d2=u2.type,_2=0;if(d2==="svg"&&(r2=!0),o2!=null){for(;_2<o2.length;_2++)if((s2=o2[_2])&&"setAttribute"in s2==!!d2&&(d2?s2.localName===d2:s2.nodeType===3)){l2=s2,o2[_2]=null;break}}if(l2==null){if(d2===null)return document.createTextNode(p2);l2=r2?document.createElementNS("http://www.w3.org/2000/svg",d2):document.createElement(d2,p2.is&&p2),o2=null,e2=!1}if(d2===null)y2===p2||e2&&l2.data===p2||(l2.data=p2);else{if(o2=o2&&n.call(l2.childNodes),a2=(y2=i2.props||c$1).dangerouslySetInnerHTML,h2=p2.dangerouslySetInnerHTML,!e2){if(o2!=null)for(y2={},_2=0;_2<l2.attributes.length;_2++)y2[l2.attributes[_2].name]=l2.attributes[_2].value;(h2||a2)&&(h2&&(a2&&h2.__html==a2.__html||h2.__html===l2.innerHTML)||(l2.innerHTML=h2&&h2.__html||""))}if(k$1(l2,p2,y2,r2,e2),h2)u2.__k=[];else if(_2=u2.props.children,H$1(l2,Array.isArray(_2)?_2:[_2],u2,i2,t2,r2&&d2!=="foreignObject",o2,f2,o2?o2[0]:i2.__k&&A(i2,0),e2),o2!=null)for(_2=o2.length;_2--;)o2[_2]!=null&&v$1(o2[_2]);e2||("value"in p2&&(_2=p2.value)!==void 0&&(_2!==l2.value||d2==="progress"&&!_2||d2==="option"&&_2!==y2.value)&&g$2(l2,"value",_2,y2.value,!1),"checked"in p2&&(_2=p2.checked)!==void 0&&_2!==l2.checked&&g$2(l2,"checked",_2,y2.checked,!1))}return l2}function S(n2,u2,i2){try{typeof n2=="function"?n2(u2):n2.current=u2}catch(n3){l$1.__e(n3,i2)}}function q(n2,u2,i2){var t2,r2;if(l$1.unmount&&l$1.unmount(n2),(t2=n2.ref)&&(t2.current&&t2.current!==n2.__e||S(t2,null,u2)),(t2=n2.__c)!=null){if(t2.componentWillUnmount)try{t2.componentWillUnmount()}catch(n3){l$1.__e(n3,u2)}t2.base=t2.__P=null,n2.__c=void 0}if(t2=n2.__k)for(r2=0;r2<t2.length;r2++)t2[r2]&&q(t2[r2],u2,i2||typeof n2.type!="function");i2||n2.__e==null||v$1(n2.__e),n2.__=n2.__e=n2.__d=void 0}function B$1(n2,l2,u2){return this.constructor(n2,u2)}function D$1(u2,i2,t2){var r2,o2,f2;l$1.__&&l$1.__(u2,i2),o2=(r2=typeof t2=="function")?null:t2&&t2.__k||i2.__k,f2=[],M(i2,u2=(!r2&&t2||i2).__k=y(_,null,[u2]),o2||c$1,c$1,i2.ownerSVGElement!==void 0,!r2&&t2?[t2]:o2?null:i2.firstChild?n.call(i2.childNodes):null,f2,!r2&&t2?t2:o2?o2.__e:i2.firstChild,r2),N(f2,u2)}function G$1(n2,l2){var u2={__c:l2="__cC"+e$1++,__:n2,Consumer:function(n3,l3){return n3.children(l3)},Provider:function(n3){var u3,i2;return this.getChildContext||(u3=[],(i2={})[l2]=this,this.getChildContext=function(){return i2},this.shouldComponentUpdate=function(n4){this.props.value!==n4.value&&u3.some(function(n5){n5.__e=!0,T$1(n5)})},this.sub=function(n4){u3.push(n4);var l3=n4.componentWillUnmount;n4.componentWillUnmount=function(){u3.splice(u3.indexOf(n4),1),l3&&l3.call(n4)}}),n3.children}};return u2.Provider.__=u2.Consumer.contextType=u2}n=s.slice,l$1={__e:function(n2,l2,u2,i2){for(var t2,r2,o2;l2=l2.__;)if((t2=l2.__c)&&!t2.__)try{if((r2=t2.constructor)&&r2.getDerivedStateFromError!=null&&(t2.setState(r2.getDerivedStateFromError(n2)),o2=t2.__d),t2.componentDidCatch!=null&&(t2.componentDidCatch(n2,i2||{}),o2=t2.__d),o2)return t2.__E=t2}catch(l3){n2=l3}throw n2}},u$1=0,i$1=function(n2){return n2!=null&&n2.constructor===void 0},t=!1,x$1.prototype.setState=function(n2,l2){var u2;u2=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=h({},this.state),typeof n2=="function"&&(n2=n2(h({},u2),this.props)),n2&&h(u2,n2),n2!=null&&this.__v&&(l2&&this._sb.push(l2),T$1(this))},x$1.prototype.forceUpdate=function(n2){this.__v&&(this.__e=!0,n2&&this.__h.push(n2),T$1(this))},x$1.prototype.render=_,r$1=[],f$1=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,$$1.__r=0,e$1=0;var r,u,i,f=[],c=[],e=l$1.__b,a=l$1.__r,v=l$1.diffed,l=l$1.__c,m=l$1.unmount;function b(){for(var t2;t2=f.shift();)if(t2.__P&&t2.__H)try{t2.__H.__h.forEach(k),t2.__H.__h.forEach(w$1),t2.__H.__h=[]}catch(r2){t2.__H.__h=[],l$1.__e(r2,t2.__v)}}l$1.__b=function(n2){r=null,e&&e(n2)},l$1.__r=function(n2){a&&a(n2);var i2=(r=n2.__c).__H;i2&&(u===r?(i2.__h=[],r.__h=[],i2.__.forEach(function(n3){n3.__N&&(n3.__=n3.__N),n3.__V=c,n3.__N=n3.i=void 0})):(i2.__h.forEach(k),i2.__h.forEach(w$1),i2.__h=[])),u=r},l$1.diffed=function(t2){v&&v(t2);var o2=t2.__c;o2&&o2.__H&&(o2.__H.__h.length&&(f.push(o2)!==1&&i===l$1.requestAnimationFrame||((i=l$1.requestAnimationFrame)||j$1)(b)),o2.__H.__.forEach(function(n2){n2.i&&(n2.__H=n2.i),n2.__V!==c&&(n2.__=n2.__V),n2.i=void 0,n2.__V=c})),u=r=null},l$1.__c=function(t2,r2){r2.some(function(t3){try{t3.__h.forEach(k),t3.__h=t3.__h.filter(function(n2){return!n2.__||w$1(n2)})}catch(u2){r2.some(function(n2){n2.__h&&(n2.__h=[])}),r2=[],l$1.__e(u2,t3.__v)}}),l&&l(t2,r2)},l$1.unmount=function(t2){m&&m(t2);var r2,u2=t2.__c;u2&&u2.__H&&(u2.__H.__.forEach(function(n2){try{k(n2)}catch(n3){r2=n3}}),u2.__H=void 0,r2&&l$1.__e(r2,u2.__v))};var g$1=typeof requestAnimationFrame=="function";function j$1(n2){var t2,r2=function(){clearTimeout(u2),g$1&&cancelAnimationFrame(t2),setTimeout(n2)},u2=setTimeout(r2,100);g$1&&(t2=requestAnimationFrame(r2))}function k(n2){var t2=r,u2=n2.__c;typeof u2=="function"&&(n2.__c=void 0,u2()),r=t2}function w$1(n2){var t2=r;n2.__c=n2.__(),r=t2}function g(n2,t2){for(var e2 in t2)n2[e2]=t2[e2];return n2}function C(n2,t2){for(var e2 in n2)if(e2!=="__source"&&!(e2 in t2))return!0;for(var r2 in t2)if(r2!=="__source"&&n2[r2]!==t2[r2])return!0;return!1}function w(n2){this.props=n2}(w.prototype=new x$1).isPureReactComponent=!0,w.prototype.shouldComponentUpdate=function(n2,t2){return C(this.props,n2)||C(this.state,t2)};var x=l$1.__b;l$1.__b=function(n2){n2.type&&n2.type.__f&&n2.ref&&(n2.props.ref=n2.ref,n2.ref=null),x&&x(n2)};var T=l$1.__e;l$1.__e=function(n2,t2,e2,r2){if(n2.then){for(var u2,o2=t2;o2=o2.__;)if((u2=o2.__c)&&u2.__c)return t2.__e==null&&(t2.__e=e2.__e,t2.__k=e2.__k),u2.__c(n2,t2)}T(n2,t2,e2,r2)};var I=l$1.unmount;function L(n2,t2,e2){return n2&&(n2.__c&&n2.__c.__H&&(n2.__c.__H.__.forEach(function(n3){typeof n3.__c=="function"&&n3.__c()}),n2.__c.__H=null),(n2=g({},n2)).__c!=null&&(n2.__c.__P===e2&&(n2.__c.__P=t2),n2.__c=null),n2.__k=n2.__k&&n2.__k.map(function(n3){return L(n3,t2,e2)})),n2}function U(n2,t2,e2){return n2&&(n2.__v=null,n2.__k=n2.__k&&n2.__k.map(function(n3){return U(n3,t2,e2)}),n2.__c&&n2.__c.__P===t2&&(n2.__e&&e2.insertBefore(n2.__e,n2.__d),n2.__c.__e=!0,n2.__c.__P=e2)),n2}function D(){this.__u=0,this.t=null,this.__b=null}function F(n2){var t2=n2.__.__c;return t2&&t2.__a&&t2.__a(n2)}function V(){this.u=null,this.o=null}l$1.unmount=function(n2){var t2=n2.__c;t2&&t2.__R&&t2.__R(),t2&&n2.__h===!0&&(n2.type=null),I&&I(n2)},(D.prototype=new x$1).__c=function(n2,t2){var e2=t2.__c,r2=this;r2.t==null&&(r2.t=[]),r2.t.push(e2);var u2=F(r2.__v),o2=!1,i2=function(){o2||(o2=!0,e2.__R=null,u2?u2(l2):l2())};e2.__R=i2;var l2=function(){if(!--r2.__u){if(r2.state.__a){var n3=r2.state.__a;r2.__v.__k[0]=U(n3,n3.__c.__P,n3.__c.__O)}var t3;for(r2.setState({__a:r2.__b=null});t3=r2.t.pop();)t3.forceUpdate()}},c2=t2.__h===!0;r2.__u++||c2||r2.setState({__a:r2.__b=r2.__v.__k[0]}),n2.then(i2,i2)},D.prototype.componentWillUnmount=function(){this.t=[]},D.prototype.render=function(n2,e2){if(this.__b){if(this.__v.__k){var r2=document.createElement("div"),o2=this.__v.__k[0].__c;this.__v.__k[0]=L(this.__b,r2,o2.__O=o2.__P)}this.__b=null}var i2=e2.__a&&y(_,null,n2.fallback);return i2&&(i2.__h=null),[y(_,null,e2.__a?null:n2.children),i2]};var W=function(n2,t2,e2){if(++e2[1]===e2[0]&&n2.o.delete(t2),n2.props.revealOrder&&(n2.props.revealOrder[0]!=="t"||!n2.o.size))for(e2=n2.u;e2;){for(;e2.length>3;)e2.pop()();if(e2[1]<e2[0])break;n2.u=e2=e2[2]}};function P(n2){return this.getChildContext=function(){return n2.context},n2.children}function $(n2){var e2=this,r2=n2.i;e2.componentWillUnmount=function(){D$1(null,e2.l),e2.l=null,e2.i=null},e2.i&&e2.i!==r2&&e2.componentWillUnmount(),n2.__v?(e2.l||(e2.i=r2,e2.l={nodeType:1,parentNode:r2,childNodes:[],appendChild:function(n3){this.childNodes.push(n3),e2.i.appendChild(n3)},insertBefore:function(n3,t2){this.childNodes.push(n3),e2.i.appendChild(n3)},removeChild:function(n3){this.childNodes.splice(this.childNodes.indexOf(n3)>>>1,1),e2.i.removeChild(n3)}}),D$1(y(P,{context:e2.context},n2.__v),e2.l)):e2.l&&e2.componentWillUnmount()}function j(n2,e2){var r2=y($,{__v:n2,i:e2});return r2.containerInfo=e2,r2}(V.prototype=new x$1).__a=function(n2){var t2=this,e2=F(t2.__v),r2=t2.o.get(n2);return r2[0]++,function(u2){var o2=function(){t2.props.revealOrder?(r2.push(u2),W(t2,n2,r2)):u2()};e2?e2(o2):o2()}},V.prototype.render=function(n2){this.u=null,this.o=new Map;var t2=j$2(n2.children);n2.revealOrder&&n2.revealOrder[0]==="b"&&t2.reverse();for(var e2=t2.length;e2--;)this.o.set(t2[e2],this.u=[1,0,this.u]);return n2.children},V.prototype.componentDidUpdate=V.prototype.componentDidMount=function(){var n2=this;this.o.forEach(function(t2,e2){W(n2,e2,t2)})};var z=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H=typeof document<"u",Z=function(n2){return(typeof Symbol<"u"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(n2)};x$1.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t2){Object.defineProperty(x$1.prototype,t2,{configurable:!0,get:function(){return this["UNSAFE_"+t2]},set:function(n2){Object.defineProperty(this,t2,{configurable:!0,writable:!0,value:n2})}})});var G=l$1.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}l$1.event=function(n2){return G&&(n2=G(n2)),n2.persist=J,n2.isPropagationStopped=K,n2.isDefaultPrevented=Q,n2.nativeEvent=n2};var nn={configurable:!0,get:function(){return this.class}},tn=l$1.vnode;l$1.vnode=function(n2){var t2=n2.type,e2=n2.props,u2=e2;if(typeof t2=="string"){var o2=t2.indexOf("-")===-1;for(var i2 in u2={},e2){var l2=e2[i2];H&&i2==="children"&&t2==="noscript"||i2==="value"&&"defaultValue"in e2&&l2==null||(i2==="defaultValue"&&"value"in e2&&e2.value==null?i2="value":i2==="download"&&l2===!0?l2="":/ondoubleclick/i.test(i2)?i2="ondblclick":/^onchange(textarea|input)/i.test(i2+t2)&&!Z(e2.type)?i2="oninput":/^onfocus$/i.test(i2)?i2="onfocusin":/^onblur$/i.test(i2)?i2="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i2)?i2=i2.toLowerCase():o2&&B.test(i2)?i2=i2.replace(/[A-Z0-9]/g,"-$&").toLowerCase():l2===null&&(l2=void 0),/^oninput$/i.test(i2)&&(i2=i2.toLowerCase(),u2[i2]&&(i2="oninputCapture")),u2[i2]=l2)}t2=="select"&&u2.multiple&&Array.isArray(u2.value)&&(u2.value=j$2(e2.children).forEac
1h(function(n3){n3.props.selected=u2.value.indexOf(n3.props.value)!=-1})),t2=="select"&&u2.defaultValue!=null&&(u2.value=j$2(e2.children).forEach(function(n3){n3.props.selected=u2.multiple?u2.defaultValue.indexOf(n3.props.value)!=-1:u2.defaultValue==n3.props.value})),n2.props=u2,e2.class!=e2.className&&(nn.enumerable="className"in e2,e2.className!=null&&(u2.class=e2.className),Object.defineProperty(u2,"className",nn))}n2.$$typeof=z,tn&&tn(n2)};var en=l$1.__r;l$1.__r=function(n2){en&&en(n2),n2.__c};const styleTexts=[],styleEls=new Map;function injectStyles(styleText){styleTexts.push(styleText),styleEls.forEach(styleEl=>{appendStylesTo(styleEl,styleText)})}function ensureElHasStyles(el){el.isConnected&&registerStylesRoot(el.getRootNode())}function registerStylesRoot(rootNode){let styleEl=styleEls.get(rootNode);if(!styleEl||!styleEl.isConnected){if(styleEl=rootNode.querySelector("style[data-fullcalendar]"),!styleEl){styleEl=document.createElement("style"),styleEl.setAttribute("data-fullcalendar","");const nonce=getNonceValue();nonce&&(styleEl.nonce=nonce);const parentEl=rootNode===document?document.head:rootNode,insertBefore=rootNode===document?parentEl.querySelector("script,link[rel=stylesheet],link[as=style],style"):parentEl.firstChild;parentEl.insertBefore(styleEl,insertBefore)}styleEls.set(rootNode,styleEl),hydrateStylesRoot(styleEl)}}function hydrateStylesRoot(styleEl){for(const styleText of styleTexts)appendStylesTo(styleEl,styleText)}function appendStylesTo(styleEl,styleText){const{sheet}=styleEl,ruleCnt=sheet.cssRules.length;styleText.split("}").forEach((styleStr,i2)=>{styleStr=styleStr.trim(),styleStr&&sheet.insertRule(styleStr+"}",ruleCnt+i2)})}let queriedNonceValue;function getNonceValue(){return queriedNonceValue===void 0&&(queriedNonceValue=queryNonceValue()),queriedNonceValue}function queryNonceValue(){const metaWithNonce=document.querySelector('meta[name="csp-nonce"]');if(metaWithNonce&&metaWithNonce.hasAttribute("content"))return metaWithNonce.getAttribute("content");const elWithNonce=document.querySelector("script[nonce]");return elWithNonce&&elWithNonce.nonce||""}typeof document<"u"&&registerStylesRoot(document);var css_248z$2
vendor: 14,303 bytes, line 1
1=':root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url("data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") format("truetype")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:"\\e900"}.fc-icon-chevron-right:before{content:"\\e901"}.fc-icon-chevrons-left:before{content:"\\e902"}.fc-icon-chevrons-right:before{content:"\\e903"}.fc-icon-minus-square:before{content:"\\e904"}.fc-icon-plus-square:before{content:"\\e905"}.fc-icon-x:before{content:"\\e906"}.fc .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:"";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:"";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}';
1injectStyles(css_248z$2);class DelayedRunner{constructor(drainedOption){this.drainedOption=drainedOption,this.isRunning=!1,this.isDirty=!1,this.pauseDepths={},this.timeoutId=0}request(delay){this.isDirty=!0,this.isPaused()||(this.clearTimeout(),delay==null?this.tryDrain():this.timeoutId=setTimeout(this.tryDrain.bind(this),delay))}pause(scope=""){let{pauseDepths}=this;pauseDepths[scope]=(pauseDepths[scope]||0)+1,this.clearTimeout()}resume(scope="",force){let{pauseDepths}=this;scope in pauseDepths&&(force?delete pauseDepths[scope]:(pauseDepths[scope]-=1,pauseDepths[scope]<=0&&delete pauseDepths[scope]),this.tryDrain())}isPaused(){return Object.keys(this.pauseDepths).length}tryDrain(){if(!this.isRunning&&!this.isPaused()){for(this.isRunning=!0;this.isDirty;)this.isDirty=!1,this.drained();this.isRunning=!1}}clear(){this.clearTimeout(),this.isDirty=!1,this.pauseDepths={}}clearTimeout(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=0)}drained(){this.drainedOption&&this.drainedOption()}}function removeElement(el){el.parentNode&&el.parentNode.removeChild(el)}function elementClosest(el,selector){if(el.closest)return el.closest(selector);if(!document.documentElement.contains(el))return null;do{if(elementMatches(el,selector))return el;el=el.parentElement||el.parentNode}while(el!==null&&el.nodeType===1);return null}function elementMatches(el,selector){return(el.matches||el.matchesSelector||el.msMatchesSelector).call(el,selector)}function findElements(container,selector){let containers=container instanceof HTMLElement?[container]:container,allMatches=[];for(let i2=0;i2<containers.length;i2+=1){let matches=containers[i2].querySelectorAll(selector);for(let j2=0;j2<matches.length;j2+=1)allMatches.push(matches[j2])}return allMatches}const PIXEL_PROP_RE=/(top|left|right|bottom|width|height)$/i;function applyStyle(el,props){for(let propName in props)applyStyleProp(el,propName,props[propName])}function applyStyleProp(el,name,val){val==null?el.style[name]="":typeof val=="number"&&PIXEL_PROP_RE.test(name)?el.style[name]=`${val}px`:el.style[name]=val}function getEventTargetViaRoot(ev){var _a,_b;return(_b=(_a=ev.composedPath)===null||_a===void 0?void 0:_a.call(ev)[0])!==null&&_b!==void 0?_b:ev.target}let guid$1=0;function getUniqueDomId(){return guid$1+=1,"fc-dom-"+guid$1}function buildDelegationHandler(selector,handler){return ev=>{let matchedChild=elementClosest(ev.target,selector);matchedChild&&handler.call(matchedChild,ev,matchedChild)}}function listenBySelector(container,eventType,selector,handler){let attachedHandler=buildDelegationHandler(selector,handler);return container.addEventListener(eventType,attachedHandler),()=>{container.removeEventListener(eventType,attachedHandler)}}function listenToHoverBySelector(container,selector,onMouseEnter,onMouseLeave){let currentMatchedChild;return listenBySelector(container,"mouseover",selector,(mouseOverEv,matchedChild)=>{if(matchedChild!==currentMatchedChild){currentMatchedChild=matchedChild,onMouseEnter(mouseOverEv,matchedChild);
vendor: 20,121 bytes, line 1
1let realOnMouseLeave=mouseLeaveEv=>{currentMatchedChild=null,onMouseLeave(mouseLeaveEv,matchedChild),matchedChild.removeEventListener("mouseleave",realOnMouseLeave)};matchedChild.addEventListener("mouseleave",realOnMouseLeave)}})}function createAriaClickAttrs(handler){return Object.assign({onClick:handler},createAriaKeyboardAttrs(handler))}function createAriaKeyboardAttrs(handler){return{tabIndex:0,onKeyDown(ev){(ev.key==="Enter"||ev.key===" ")&&(handler(ev),ev.preventDefault())}}}let guidNumber=0;function guid(){return guidNumber+=1,String(guidNumber)}function parseFieldSpecs(input){let specs=[],tokens=[],i2,token;for(typeof input=="string"?tokens=input.split(/\s*,\s*/):typeof input=="function"?tokens=[input]:Array.isArray(input)&&(tokens=input),i2=0;i2<tokens.length;i2+=1)token=tokens[i2],typeof token=="string"?specs.push(token.charAt(0)==="-"?{field:token.substring(1),order:-1}:{field:token,order:1}):typeof token=="function"&&specs.push({func:token});return specs}function compareByFieldSpecs(obj0,obj1,fieldSpecs){let i2,cmp;for(i2=0;i2<fieldSpecs.length;i2+=1)if(cmp=compareByFieldSpec(obj0,obj1,fieldSpecs[i2]),cmp)return cmp;return 0}function compareByFieldSpec(obj0,obj1,fieldSpec){return fieldSpec.func?fieldSpec.func(obj0,obj1):flexibleCompare(obj0[fieldSpec.field],obj1[fieldSpec.field])*(fieldSpec.order||1)}function flexibleCompare(a2,b2){return!a2&&!b2?0:b2==null?-1:a2==null?1:typeof a2=="string"||typeof b2=="string"?String(a2).localeCompare(String(b2)):a2-b2}function padStart(val,len){let s2=String(val);return"000".substr(0,len-s2.length)+s2}function formatWithOrdinals(formatter,args,fallbackText){return typeof formatter=="function"?formatter(...args):typeof formatter=="string"?args.reduce((str,arg,index2)=>str.replace("$"+index2,arg||""),formatter):fallbackText}function isInt(n2){return n2%1===0}function computeSmallestCellWidth(cellEl){let allWidthEl=cellEl.querySelector(".fc-scrollgrid-shrink-frame"),contentWidthEl=cellEl.querySelector(".fc-scrollgrid-shrink-cushion");if(!allWidthEl)throw new Error("needs fc-scrollgrid-shrink-frame className");if(!contentWidthEl)throw new Error("needs fc-scrollgrid-shrink-cushion className");return cellEl.getBoundingClientRect().width-allWidthEl.getBoundingClientRect().width+contentWidthEl.getBoundingClientRect().width}const INTERNAL_UNITS=["years","months","days","milliseconds"],PARSE_RE=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;function createDuration(input,unit){return typeof input=="string"?parseString(input):typeof input=="object"&&input?parseObject(input):typeof input=="number"?parseObject({[unit||"milliseconds"]:input}):null}function parseString(s2){let m2=PARSE_RE.exec(s2);if(m2){let sign=m2[1]?-1:1;return{years:0,months:0,days:sign*(m2[2]?parseInt(m2[2],10):0),milliseconds:sign*((m2[3]?parseInt(m2[3],10):0)*60*60*1e3+(m2[4]?parseInt(m2[4],10):0)*60*1e3+(m2[5]?parseInt(m2[5],10):0)*1e3+(m2[6]?parseInt(m2[6],10):0))}}return null}function parseObject(obj){let duration={years:obj.years||obj.year||0,months:obj.months||obj.month||0,days:obj.days||obj.day||0,milliseconds:(obj.hours||obj.hour||0)*60*60*1e3+(obj.minutes||obj.minute||0)*60*1e3+(obj.seconds||obj.second||0)*1e3+(obj.milliseconds||obj.millisecond||obj.ms||0)},weeks=obj.weeks||obj.week;return weeks&&(duration.days+=weeks*7,duration.specifiedWeeks=!0),duration}function durationsEqual(d0,d1){return d0.years===d1.years&&d0.months===d1.months&&d0.days===d1.days&&d0.milliseconds===d1.milliseconds}function addDurations(d0,d1){return{years:d0.years+d1.years,months:d0.months+d1.months,days:d0.days+d1.days,milliseconds:d0.milliseconds+d1.milliseconds}}function subtractDurations(d1,d0){return{years:d1.years-d0.years,months:d1.months-d0.months,days:d1.days-d0.days,milliseconds:d1.milliseconds-d0.milliseconds}}function multiplyDuration(d2,n2){return{years:d2.years*n2,months:d2.months*n2,days:d2.days*n2,milliseconds:d2.milliseconds*n2}}function asRoughYears(dur){return asRoughDays(dur)/365}function asRoughMonths(dur){return asRoughDays(dur)/30}function asRoughDays(dur){return asRoughMs(dur)/864e5}function asRoughMs(dur){return dur.years*(365*864e5)+dur.months*(30*864e5)+dur.days*864e5+dur.milliseconds}function wholeDivideDurations(numerator,denominator){let res=null;for(let i2=0;i2<INTERNAL_UNITS.length;i2+=1){let unit=INTERNAL_UNITS[i2];if(denominator[unit]){let localRes=numerator[unit]/denominator[unit];if(!isInt(localRes)||res!==null&&res!==localRes)return null;res=localRes}else if(numerator[unit])return null}return res}function greatestDurationDenominator(dur){let ms=dur.milliseconds;if(ms){if(ms%1e3!==0)return{unit:"millisecond",value:ms};if(ms%(1e3*60)!==0)return{unit:"second",value:ms/1e3};if(ms%(1e3*60*60)!==0)return{unit:"minute",value:ms/(1e3*60)};if(ms)return{unit:"hour",value:ms/(1e3*60*60)}}return dur.days?dur.specifiedWeeks&&dur.days%7===0?{unit:"week",value:dur.days/7}:{unit:"day",value:dur.days}:dur.months?{unit:"month",value:dur.months}:dur.years?{unit:"year",value:dur.years}:{unit:"millisecond",value:0}}function isArraysEqual(a0,a1,equalityFunc){if(a0===a1)return!0;let len=a0.length,i2;if(len!==a1.length)return!1;for(i2=0;i2<len;i2+=1)if(!(equalityFunc?equalityFunc(a0[i2],a1[i2]):a0[i2]===a1[i2]))return!1;return!0}const DAY_IDS=["sun","mon","tue","wed","thu","fri","sat"];function addWeeks(m2,n2){let a2=dateToUtcArray(m2);return a2[2]+=n2*7,arrayToUtcDate(a2)}function addDays(m2,n2){let a2=dateToUtcArray(m2);return a2[2]+=n2,arrayToUtcDate(a2)}function addMs(m2,n2){let a2=dateToUtcArray(m2);return a2[6]+=n2,arrayToUtcDate(a2)}function diffWeeks(m0,m1){return diffDays(m0,m1)/7}function diffDays(m0,m1){return(m1.valueOf()-m0.valueOf())/(1e3*60*60*24)}function diffHours(m0,m1){return(m1.valueOf()-m0.valueOf())/(1e3*60*60)}function diffMinutes(m0,m1){return(m1.valueOf()-m0.valueOf())/(1e3*60)}function diffSeconds(m0,m1){return(m1.valueOf()-m0.valueOf())/1e3}function diffDayAndTime(m0,m1){let m0day=startOfDay(m0),m1day=startOfDay(m1);return{years:0,months:0,days:Math.round(diffDays(m0day,m1day)),milliseconds:m1.valueOf()-m1day.valueOf()-(m0.valueOf()-m0day.valueOf())}}function diffWholeWeeks(m0,m1){let d2=diffWholeDays(m0,m1);return d2!==null&&d2%7===0?d2/7:null}function diffWholeDays(m0,m1){return timeAsMs(m0)===timeAsMs(m1)?Math.round(diffDays(m0,m1)):null}function startOfDay(m2){return arrayToUtcDate([m2.getUTCFullYear(),m2.getUTCMonth(),m2.getUTCDate()])}function startOfHour(m2){return arrayToUtcDate([m2.getUTCFullYear(),m2.getUTCMonth(),m2.getUTCDate(),m2.getUTCHours()])}function startOfMinute(m2){return arrayToUtcDate([m2.getUTCFullYear(),m2.getUTCMonth(),m2.getUTCDate(),m2.getUTCHours(),m2.getUTCMinutes()])}function startOfSecond(m2){return arrayToUtcDate([m2.getUTCFullYear(),m2.getUTCMonth(),m2.getUTCDate(),m2.getUTCHours(),m2.getUTCMinutes(),m2.getUTCSeconds()])}function weekOfYear(marker,dow,doy){let y2=marker.getUTCFullYear(),w2=weekOfGivenYear(marker,y2,dow,doy);if(w2<1)return weekOfGivenYear(marker,y2-1,dow,doy);let nextW=weekOfGivenYear(marker,y2+1,dow,doy);return nextW>=1?Math.min(w2,nextW):w2}function weekOfGivenYear(marker,year,dow,doy){let firstWeekStart=arrayToUtcDate([year,0,1+firstWeekOffset(year,dow,doy)]),dayStart=startOfDay(marker),days=Math.round(diffDays(firstWeekStart,dayStart));return Math.floor(days/7)+1}function firstWeekOffset(year,dow,doy){let fwd=7+dow-doy;return-((7+arrayToUtcDate([year,0,fwd]).getUTCDay()-dow)%7)+fwd-1}function dateToLocalArray(date){return[date.getFullYear(),date.getMonth(),date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds(),date.getMilliseconds()]}function arrayToLocalDate(a2){return new Date(a2[0],a2[1]||0,a2[2]==null?1:a2[2],a2[3]||0,a2[4]||0,a2[5]||0)}function dateToUtcArray(date){return[date.getUTCFullYear(),date.getUTCMonth(),date.getUTCDate(),date.getUTCHours(),date.getUTCMinutes(),date.getUTCSeconds(),date.getUTCMilliseconds()]}function arrayToUtcDate(a2){return a2.length===1&&(a2=a2.concat([0])),new Date(Date.UTC(...a2))}function isValidDate(m2){return!isNaN(m2.valueOf())}function timeAsMs(m2){return m2.getUTCHours()*1e3*60*60+m2.getUTCMinutes()*1e3*60+m2.getUTCSeconds()*1e3+m2.getUTCMilliseconds()}function buildIsoString(marker,timeZoneOffset,stripZeroTime=!1){let s2=marker.toISOString();return s2=s2.replace(".000",""),stripZeroTime&&(s2=s2.replace("T00:00:00Z","")),s2.length>10&&(timeZoneOffset==null?s2=s2.replace("Z",""):timeZoneOffset!==0&&(s2=s2.replace("Z",formatTimeZoneOffset(timeZoneOffset,!0)))),s2}function formatDayString(marker){return marker.toISOString().replace(/T.*$/,"")}function formatIsoMonthStr(marker){return marker.toISOString().match(/^\d{4}-\d{2}/)[0]}function formatIsoTimeString(marker){return padStart(marker.getUTCHours(),2)+":"+padStart(marker.getUTCMinutes(),2)+":"+padStart(marker.getUTCSeconds(),2)}function formatTimeZoneOffset(minutes,doIso=!1){let sign=minutes<0?"-":"+",abs=Math.abs(minutes),hours=Math.floor(abs/60),mins=Math.round(abs%60);return doIso?`${sign+padStart(hours,2)}:${padStart(mins,2)}`:`GMT${sign}${hours}${mins?`:${padStart(mins,2)}`:""}`}function memoize(workerFunc,resEquality,teardownFunc){let currentArgs,currentRes;return function(...newArgs){if(!currentArgs)currentRes=workerFunc.apply(this,newArgs);else if(!isArraysEqual(currentArgs,newArgs)){teardownFunc&&teardownFunc(currentRes);let res=workerFunc.apply(this,newArgs);(!resEquality||!resEquality(res,currentRes))&&(currentRes=res)}return currentArgs=newArgs,currentRes}}function memoizeObjArg(workerFunc,resEquality,teardownFunc){let currentArg,currentRes;return newArg=>{if(!currentArg)currentRes=workerFunc.call(this,newArg);else if(!isPropsEqual(currentArg,newArg)){teardownFunc&&teardownFunc(currentRes);let res=workerFunc.call(this,newArg);(!resEquality||!resEquality(res,currentRes))&&(currentRes=res)}return currentArg=newArg,currentRes}}const EXTENDED_SETTINGS_AND_SEVERITIES={week:3,separator:0,omitZeroMinute:0,meridiem:0,omitCommas:0},STANDARD_DATE_PROP_SEVERITIES={timeZoneName:7,era:6,year:5,month:4,day:2,weekday:2,hour:1,minute:1,second:1},MERIDIEM_RE=/\s*([ap])\.?m\.?/i,COMMA_RE=/,/g,MULTI_SPACE_RE=/\s+/g,LTR_RE=/\u200e/g,UTC_RE=/UTC|GMT/;class NativeFormatter{constructor(formatSettings){let standardDateProps={},extendedSettings={},severity=0;for(let name in formatSettings)name in EXTENDED_SETTINGS_AND_SEVERITIES?(extendedSettings[name]=formatSettings[name],severity=Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name],severity)):(standardDateProps[name]=formatSettings[name],name in STANDARD_DATE_PROP_SEVERITIES&&(severity=Math.max(STANDARD_DATE_PROP_SEVERITIES[name],severity)));this.standardDateProps=standardDateProps,this.extendedSettings=extendedSettings,this.severity=severity,this.buildFormattingFunc=memoize(buildFormattingFunc)}format(date,context){return this.buildFormattingFunc(this.standardDateProps,this.extendedSettings,context)(date)}formatRange(start,end,context,betterDefaultSeparator){let{standardDateProps,extendedSettings}=this,diffSeverity=computeMarkerDiffSeverity(start.marker,end.marker,context.calendarSystem);if(!diffSeverity)return this.format(start,context);let biggestUnitForPartial=diffSeverity;biggestUnitForPartial>1&&(standardDateProps.year==="numeric"||standardDateProps.year==="2-digit")&&(standardDateProps.month==="numeric"||standardDateProps.month==="2-digit")&&(standardDateProps.day==="numeric"||standardDateProps.day==="2-digit")&&(biggestUnitForPartial=1);let full0=this.format(start,context),full1=this.format(end,context);if(full0===full1)return full0;let partialDateProps=computePartialFormattingOptions(standardDateProps,biggestUnitForPartial),partialFormattingFunc=buildFormattingFunc(partialDateProps,extendedSettings,context),partial0=partialFormattingFunc(start),partial1=partialFormattingFunc(end),insertion=findCommonInsertion(full0,partial0,full1,partial1),separator=extendedSettings.separator||betterDefaultSeparator||context.defaultSeparator||"";return insertion?insertion.before+partial0+separator+partial1+insertion.after:full0+separator+full1}getLargestUnit(){switch(this.severity){case 7:case 6:case 5:return"year";case 4:return"month";case 3:return"week";case 2:return"day";default:return"time"}}}function buildFormattingFunc(standardDateProps,extendedSettings,context){let standardDatePropCnt=Object.keys(standardDateProps).length;return standardDatePropCnt===1&&standardDateProps.timeZoneName==="short"?date=>formatTimeZoneOffset(date.timeZoneOffset):standardDatePropCnt===0&&extendedSettings.week?date=>formatWeekNumber(context.computeWeekNumber(date.marker),context.weekText,context.weekTextLong,context.locale,extendedSettings.week):buildNativeFormattingFunc(standardDateProps,extendedSettings,context)}function buildNativeFormattingFunc(standardDateProps,extendedSettings,context){standardDateProps=Object.assign({},standardDateProps),extendedSettings=Object.assign({},extendedSettings),sanitizeSettings(standardDateProps,extendedSettings),standardDateProps.timeZone="UTC";let normalFormat=new Intl.DateTimeFormat(context.locale.codes,standardDateProps),zeroFormat;if(extendedSettings.omitZeroMinute){let zeroProps=Object.assign({},standardDateProps);delete zeroProps.minute,zeroFormat=new Intl.DateTimeFormat(context.locale.codes,zeroProps)}return date=>{let{marker}=date,format;zeroFormat&&!marker.getUTCMinutes()?format=zeroFormat:format=normalFormat;let s2=format.format(marker);return postProcess(s2,date,standardDateProps,extendedSettings,context)}}function sanitizeSettings(standardDateProps,extendedSettings){standardDateProps.timeZoneName&&(standardDateProps.hour||(standardDateProps.hour="2-digit"),standardDateProps.minute||(standardDateProps.minute="2-digit")),standardDateProps.timeZoneName==="long"&&(standardDateProps.timeZoneName="short"),extendedSettings.omitZeroMinute&&(standardDateProps.second||standardDateProps.millisecond)&&delete extendedSettings.omitZeroMinute}function postProcess(s2,date,standardDateProps,extendedSettings,context){return s2=s2.replace(LTR_RE,""),standardDateProps.timeZoneName==="short"&&(s2=injectTzoStr(s2,context.timeZone==="UTC"||date.timeZoneOffset==null?"UTC":formatTimeZoneOffset(date.timeZoneOffset))),extendedSettings.omitCommas&&(s2=s2.replace(COMMA_RE,"").trim()),extendedSettings.omitZeroMinute&&(s2=s2.replace(":00","")),extendedSettings.meridiem===!1?s2=s2.replace(MERIDIEM_RE,"").trim():extendedSettings.meridiem==="narrow"?s2=s2.replace(MERIDIEM_RE,(m0,m1)=>m1.toLocaleLowerCase()):extendedSettings.meridiem==="short"?s2=s2.replace(MERIDIEM_RE,(m0,m1)=>`${m1.toLocaleLowerCase()}m`):extendedSettings.meridiem==="lowercase"&&(s2=s2.replace(MERIDIEM_RE,m0=>m0.toLocaleLowerCase())),s2=s2.replace(MULTI_SPACE_RE," "),s2=s2.trim(),s2}function injectTzoStr(s2,tzoStr){let replaced=!1;return s2=s2.replace(UTC_RE,()=>(replaced=!0,tzoStr)),replaced||(s2+=` ${tzoStr}`),s2}function formatWeekNumber(num,weekText,weekTextLong,locale,display){let parts=[];return display==="long"?parts.push(weekTextLong):(display==="short"||display==="narrow")&&parts.push(weekText),(display==="long"||display==="short")&&parts.push(" "),parts.push(locale.simpleNumberFormat.format(num)),locale.options.direction==="rtl"&&parts.reverse(),parts.join("")}function computeMarkerDiffSeverity(d0,d1,ca){return ca.getMarkerYear(d0)!==ca.getMarkerYear(d1)?5:ca.getMarkerMonth(d0)!==ca.getMarkerMonth(d1)?4:ca.getMarkerDay(d0)!==ca.getMarkerDay(d1)?2:timeAsMs(d0)!==timeAsMs(d1)?1:0}function computePartialFormattingOptions(options,biggestUnit){let partialOptions={};for(let name in options)(!(name in STANDARD_DATE_PROP_SEVERITIES)||STANDARD_DATE_PROP_SEVERITIES[name]<=biggestUnit)&&(partialOptions[name]=options[name]);return partialOptions}function findCommonInsertion(full0,partial0,full1,partial1){let i0=0;for(;i0<full0.length;){let found0=full0.indexOf(partial0,i0);if(found0===-1)break;let before0=full0.substr(0,found0);i0=found0+partial0.length;let after0=full0.substr(i0),i1=0;for(;i1<full1.length;){let found1=full1.indexOf(partial1,i1);if(found1===-1)break;let before1=full1.substr(0,found1);i1=found1+partial1.length;let after1=full1.substr(i1);if(before0===before1&&after0===after1)return{before:before0,after:after0}}}return null}function expandZonedMarker(dateInfo,calendarSystem){let a2=calendarSystem.markerToArray(dateInfo.marker);return{marker:dateInfo.marker,timeZoneOffset:dateInfo.timeZoneOffset,array:a2,year:a2[0],month:a2[1],day:a2[2],hour:a2[3],minute:a2[4],second:a2[5],millisecond:a2[6]}}function createVerboseFormattingArg(start,end,context,betterDefaultSeparator){let startInfo=expandZonedMarker(start,context.calendarSystem),endInfo=end?expandZonedMarker(end,context.calendarSystem):null;return{date:startInfo,start:startInfo,end:endInfo,timeZone:context.timeZone,localeCodes:context.locale.codes,defaultSeparator:betterDefaultSeparator||context.defaultSeparator}}class CmdFormatter{constructor(cmdStr){this.cmdStr=cmdStr}format(date,context,betterDefaultSeparator){return context.cmdFormatter(this.cmdStr,createVerboseFormattingArg(date,null,context,betterDefaultSeparator))}formatRange(start,end,context,betterDefaultSeparator){return context.cmdFormatter(this.cmdStr,createVerboseFormattingArg(start,end,context,betterDefaultSeparator))}}class FuncFormatter{constructor(func){this.func=func}format(date,context,betterDefaultSeparator){return this.func(createVerboseFormattingArg(date,null,context,betterDefaultSeparator))}formatRange(start,end,context,betterDefaultSeparator){return this.func(createVerboseFormattingArg(start,end,context,betterDefaultSeparator))}}function createFormatter(input){return typeof input=="object"&&input?new NativeFormatter(input):typeof input=="string"?new CmdFormatter(input):typeof input=="function"?new FuncFormatter(input):null}const BASE_OPTION_REFINERS={navLinkDayClick:identity,navLinkWeekClick:identity,duration:createDuration,bootstrapFontAwesome:identity,buttonIcons:identity,customButtons:identity,defaultAllDayEventDuration:createDuration,defaultTimedEventDuration:createDuration,nextDayThreshold:createDuration,scrollTime:createDuration,scrollTimeReset:Boolean,slotMinTime:createDuration,slotMaxTime:createDuration,dayPopoverFormat:createFormatter,slotDuration:createDuration,snapDuration:createDuration,headerToolbar:identity,footerToolbar:identity,defaultRangeSeparator:String,titleRangeSeparator:String,forceEventDuration:Boolean,dayHeaders:Boolean,dayHeaderFormat:createFormatter,dayHeaderClassNames:identity,dayHeaderContent:identity,dayHeaderDidMount:identity,dayHeaderWillUnmount:identity,dayCellClassNames:identity,dayCellContent:identity,dayCellDidMount:identity,dayCellWillUnmount:identity,initialView:String,aspectRatio:Number,weekends:Boolean,weekNumberCalculation:identity,weekNumbers:Boolean,weekNumberClassNames:identity,weekNumberContent:identity,weekNumberDidMount:identity,weekNumberWillUnmount:identity,editable:Boolean,viewClassNames:identity,viewDidMount:identity,viewWillUnmount:identity,nowIndicator:Boolean,nowIndicatorClassNames:identity,nowIndicatorContent:identity,nowIndicatorDidMount:identity,nowIndicatorWillUnmount:identity,showNonCurrentDates:Boolean,lazyFetching:Boolean,startParam:String,endParam:String,timeZoneParam:String,timeZone:String,locales:identity,locale:identity,themeSystem:String,dragRevertDuration:Number,dragScroll:Boolean,allDayMaintainDuration:Boolean,unselectAuto:Boolean,dropAccept:identity,eventOrder:parseFieldSpecs,eventOrderStrict:Boolean,handleWindowResize:Boolean,windowResizeDelay:Number,longPressDelay:Number,eventDragMinDistance:Number,expandRows:Boolean,height:identity,contentHeight:identity,direction:String,weekNumberFormat:createFormatter,eventResizableFromStart:Boolean,displayEventTime:Boolean,displayEventEnd:Boolean,weekText:String,weekTextLong:String,progressiveEventRendering:Boolean,businessHours:identity,initialDate:identity,now:identity,eventDataTransform:identity,stickyHeaderDates:identity,stickyFooterScrollbar:identity,viewHeight:identity,defaultAllDay:Boolean,eventSourceFailure:identity,eventSourceSuccess:identity,eventDisplay:String,eventStartEditable:Boolean,eventDurationEditable:Boolean,eventOverlap:identity,eventConstraint:identity,eventAllow:identity,eventBackgroun
1dColor:String,eventBorderColor:String,eventTextColor:String,eventColor:String,eventClassNames:identity,eventContent:identity,eventDidMount:identity,eventWillUnmount:identity,selectConstraint:identity,selectOverlap:identity,selectAllow:identity,droppable:Boolean,unselectCancel:String,slotLabelFormat:identity,slotLaneClassNames:identity,slotLaneContent:identity,slotLaneDidMount:identity,slotLaneWillUnmount:identity,slotLabelClassNames:identity,slotLabelContent:identity,slotLabelDidMount:identity,slotLabelWillUnmount:identity,dayMaxEvents:identity,dayMaxEventRows:identity,dayMinWidth:Number,slotLabelInterval:createDuration,allDayText:String,allDayClassNames:identity,allDayContent:identity,allDayDidMount:identity,allDayWillUnmount:identity,slotMinWidth:Number,navLinks:Boolean,eventTimeFormat:createFormatter,rerenderDelay:Number,moreLinkText:identity,moreLinkHint:identity,selectMinDistance:Number,selectable:Boolean,selectLongPressDelay:Number,eventLongPressDelay:Number,selectMirror:Boolean,eventMaxStack:Number,eventMinHeight:Number,eventMinWidth:Number,eventShortHeight:Number,slotEventOverlap:Boolean,plugins:identity,firstDay:Number,dayCount:Number,dateAlignment:String,dateIncrement:createDuration,hiddenDays:identity,fixedWeekCount:Boolean,validRange:identity,visibleRange:identity,titleFormat:identity,eventInteractive:Boolean,noEventsText:String,viewHint:identity,navLinkHint:identity,closeHint:String,timeHint:String,eventHint:String,moreLinkClick:identity,moreLinkClassNames:identity,moreLinkContent:identity,moreLinkDidMount:identity,moreLinkWillUnmount:identity,monthStartFormat:createFormatter,handleCustomRendering:identity,customRenderingMetaMap:identity},BASE_OPTION_DEFAULTS={eventDisplay:"auto",defaultRangeSeparator:" - ",titleRangeSeparator:" – ",defaultTimedEventDuration:"01:00:00",defaultAllDayEventDuration:{day:1},forceEventDuration:!1,nextDayThreshold:"00:00:00",dayHeaders:!0,initialView:"",aspectRatio:1.35,headerToolbar:{start:"title",center:"",end:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"local",editable:!1,nowIndicator:!1,scrollTime:"06:00:00",scrollTimeReset:!0,slotMinTime:"00:00:00",slotMaxTime:"24:00:00",showNonCurrentDates:!0,lazyFetching:!0,startParam:"start",endParam:"end",timeZoneParam:"timeZone",timeZone:"local",locales:[],locale:"",themeSystem:"standard",dragRevertDuration:500,dragScroll:!0,allDayMaintainDuration:!1,unselectAuto:!0,dropAccept:"*",eventOrder:"start,-duration,allDay,title",dayPopoverFormat:{month:"long",day:"numeric",year:"numeric"},handleWindowResize:!0,windowResizeDelay:100,longPressDelay:1e3,eventDragMinDistance:5,expandRows:!1,navLinks:!1,selectable:!1,eventMinHeight:15,eventMinWidth:30,eventShortHeight:30,monthStartFormat:{month:"long",day:"numeric"}},CALENDAR_LISTENER_REFINERS={datesSet:identity,eventsSet:identity,eventAdd:identity,eventChange:identity,eventRemove:identity,windowResize:identity,eventClick:identity,eventMouseEnter:identity,eventMouseLeave:identity,select:identity,unselect:identity,loading:identity,_unmount:identity,_beforeprint:identity,_afterprint:identity,_noEventDrop:identity,_noEventResize:identity,_resize:identity,_scrollRequest:identity},CALENDAR_OPTION_REFINERS={buttonText:identity,buttonHints:identity,views:identity,plugins:identity,initialEvents:identity,events:identity,eventSources:identity},COMPLEX_OPTION_COMPARATORS={headerToolbar:isMaybeObjectsEqual,footerToolbar:isMaybeObjectsEqual,buttonText:isMaybeObjectsEqual,buttonHints:isMaybeObjectsEqual,buttonIcons:isMaybeObjectsEqual,dateIncrement:isMaybeObjectsEqual,plugins:isMaybeArraysEqual,events:isMaybeArraysEqual,eventSources:isMaybeArraysEqual,resources:isMaybeArraysEqual};function isMaybeObjectsEqual(a2,b2){return typeof a2=="object"&&typeof b2=="object"&&a2&&b2?isPropsEqual(a2,b2):a2===b2}function isMaybeArraysEqual(a2,b2){return Array.isArray(a2)&&Array.isArray(b2)?isArraysEqual(a2,b2):a2===b2}const VIEW_OPTION_REFINERS={type:String,component:identity,buttonText:String,buttonTextKey:String,dateProfileGeneratorClass:identity,usesMinMaxTime:Boolean,classNames:identity,content:identity,didMount:identity,willUnmount:identity};function mergeRawOptions(optionSets){return mergeProps(optionSets,COMPLEX_OPTION_COMPARATORS)}function refineProps(input,refiners){let refined={},extra={};for(let propName in refiners)propName in input&&(refined[propName]=refiners[propName](input[propName]));for(let propName in input)propName in refiners||(extra[propName]=input[propName]);return{refined,extra}}function identity(raw){return raw}const{hasOwnProperty}=Object.prototype;function mergeProps(propObjs,complexPropsMap){let dest={};
vendor: 13,101 bytes, line 1
1if(complexPropsMap){for(let name in complexPropsMap)if(complexPropsMap[name]===isMaybeObjectsEqual){let complexObjs=[];for(let i2=propObjs.length-1;i2>=0;i2-=1){let val=propObjs[i2][name];if(typeof val=="object"&&val)complexObjs.unshift(val);else if(val!==void 0){dest[name]=val;break}}complexObjs.length&&(dest[name]=mergeProps(complexObjs))}}for(let i2=propObjs.length-1;i2>=0;i2-=1){let props=propObjs[i2];for(let name in props)name in dest||(dest[name]=props[name])}return dest}function filterHash(hash,func){let filtered={};for(let key in hash)func(hash[key],key)&&(filtered[key]=hash[key]);return filtered}function mapHash(hash,func){let newHash={};for(let key in hash)newHash[key]=func(hash[key],key);return newHash}function arrayToHash(a2){let hash={};for(let item of a2)hash[item]=!0;return hash}function hashValuesToArray(obj){let a2=[];for(let key in obj)a2.push(obj[key]);return a2}function isPropsEqual(obj0,obj1){if(obj0===obj1)return!0;for(let key in obj0)if(hasOwnProperty.call(obj0,key)&&!(key in obj1))return!1;for(let key in obj1)if(hasOwnProperty.call(obj1,key)&&obj0[key]!==obj1[key])return!1;return!0}const HANDLER_RE=/^on[A-Z]/;function isNonHandlerPropsEqual(obj0,obj1){const keys=getUnequalProps(obj0,obj1);for(let key of keys)if(!HANDLER_RE.test(key))return!1;return!0}function getUnequalProps(obj0,obj1){let keys=[];for(let key in obj0)hasOwnProperty.call(obj0,key)&&(key in obj1||keys.push(key));for(let key in obj1)hasOwnProperty.call(obj1,key)&&obj0[key]!==obj1[key]&&keys.push(key);return keys}function compareObjs(oldProps,newProps,equalityFuncs={}){if(oldProps===newProps)return!0;for(let key in newProps)if(!(key in oldProps&&isObjValsEqual(oldProps[key],newProps[key],equalityFuncs[key])))return!1;for(let key in oldProps)if(!(key in newProps))return!1;return!0}function isObjValsEqual(val0,val1,comparator){return val0===val1||comparator===!0?!0:comparator?comparator(val0,val1):!1}function collectFromHash(hash,startIndex=0,endIndex,step=1){let res=[];endIndex==null&&(endIndex=Object.keys(hash).length);for(let i2=startIndex;i2<endIndex;i2+=step){let val=hash[i2];val!==void 0&&res.push(val)}return res}let calendarSystemClassMap={};function registerCalendarSystem(name,theClass){calendarSystemClassMap[name]=theClass}function createCalendarSystem(name){return new calendarSystemClassMap[name]}class GregorianCalendarSystem{getMarkerYear(d2){return d2.getUTCFullYear()}getMarkerMonth(d2){return d2.getUTCMonth()}getMarkerDay(d2){return d2.getUTCDate()}arrayToMarker(arr){return arrayToUtcDate(arr)}markerToArray(marker){return dateToUtcArray(marker)}}registerCalendarSystem("gregory",GregorianCalendarSystem);const ISO_RE=/^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/;function parse(str){let m2=ISO_RE.exec(str);if(m2){let marker=new Date(Date.UTC(Number(m2[1]),m2[3]?Number(m2[3])-1:0,Number(m2[5]||1),Number(m2[7]||0),Number(m2[8]||0),Number(m2[10]||0),m2[12]?+`0.${m2[12]}`*1e3:0));if(isValidDate(marker)){let timeZoneOffset=null;return m2[13]&&(timeZoneOffset=(m2[15]==="-"?-1:1)*(Number(m2[16]||0)*60+Number(m2[18]||0))),{marker,isTimeUnspecified:!m2[6],timeZoneOffset}}}return null}class DateEnv{constructor(settings){let timeZone=this.timeZone=settings.timeZone,isNamedTimeZone=timeZone!=="local"&&timeZone!=="UTC";settings.namedTimeZoneImpl&&isNamedTimeZone&&(this.namedTimeZoneImpl=new settings.namedTimeZoneImpl(timeZone)),this.canComputeOffset=!!(!isNamedTimeZone||this.namedTimeZoneImpl),this.calendarSystem=createCalendarSystem(settings.calendarSystem),this.locale=settings.locale,this.weekDow=settings.locale.week.dow,this.weekDoy=settings.locale.week.doy,settings.weekNumberCalculation==="ISO"&&(this.weekDow=1,this.weekDoy=4),typeof settings.firstDay=="number"&&(this.weekDow=settings.firstDay),typeof settings.weekNumberCalculation=="function"&&(this.weekNumberFunc=settings.weekNumberCalculation),this.weekText=settings.weekText!=null?settings.weekText:settings.locale.options.weekText,this.weekTextLong=(settings.weekTextLong!=null?settings.weekTextLong:settings.locale.options.weekTextLong)||this.weekText,this.cmdFormatter=settings.cmdFormatter,this.defaultSeparator=settings.defaultSeparator}createMarker(input){let meta=this.createMarkerMeta(input);return meta===null?null:meta.marker}createNowMarker(){return this.canComputeOffset?this.timestampToMarker(new Date().valueOf()):arrayToUtcDate(dateToLocalArray(new Date))}createMarkerMeta(input){if(typeof input=="string")return this.parse(input);let marker=null;return typeof input=="number"?marker=this.timestampToMarker(input):input instanceof Date?(input=input.valueOf(),isNaN(input)||(marker=this.timestampToMarker(input))):Array.isArray(input)&&(marker=arrayToUtcDate(input)),marker===null||!isValidDate(marker)?null:{marker,isTimeUnspecified:!1,forcedTzo:null}}parse(s2){let parts=parse(s2);if(parts===null)return null;let{marker}=parts,forcedTzo=null;return parts.timeZoneOffset!==null&&(this.canComputeOffset?marker=this.timestampToMarker(marker.valueOf()-parts.timeZoneOffset*60*1e3):forcedTzo=parts.timeZoneOffset),{marker,isTimeUnspecified:parts.isTimeUnspecified,forcedTzo}}getYear(marker){return this.calendarSystem.getMarkerYear(marker)}getMonth(marker){return this.calendarSystem.getMarkerMonth(marker)}getDay(marker){return this.calendarSystem.getMarkerDay(marker)}add(marker,dur){let a2=this.calendarSystem.markerToArray(marker);return a2[0]+=dur.years,a2[1]+=dur.months,a2[2]+=dur.days,a2[6]+=dur.milliseconds,this.calendarSystem.arrayToMarker(a2)}subtract(marker,dur){let a2=this.calendarSystem.markerToArray(marker);return a2[0]-=dur.years,a2[1]-=dur.months,a2[2]-=dur.days,a2[6]-=dur.milliseconds,this.calendarSystem.arrayToMarker(a2)}addYears(marker,n2){let a2=this.calendarSystem.markerToArray(marker);return a2[0]+=n2,this.calendarSystem.arrayToMarker(a2)}addMonths(marker,n2){let a2=this.calendarSystem.markerToArray(marker);return a2[1]+=n2,this.calendarSystem.arrayToMarker(a2)}diffWholeYears(m0,m1){let{calendarSystem}=this;return timeAsMs(m0)===timeAsMs(m1)&&calendarSystem.getMarkerDay(m0)===calendarSystem.getMarkerDay(m1)&&calendarSystem.getMarkerMonth(m0)===calendarSystem.getMarkerMonth(m1)?calendarSystem.getMarkerYear(m1)-calendarSystem.getMarkerYear(m0):null}diffWholeMonths(m0,m1){let{calendarSystem}=this;return timeAsMs(m0)===timeAsMs(m1)&&calendarSystem.getMarkerDay(m0)===calendarSystem.getMarkerDay(m1)?calendarSystem.getMarkerMonth(m1)-calendarSystem.getMarkerMonth(m0)+(calendarSystem.getMarkerYear(m1)-calendarSystem.getMarkerYear(m0))*12:null}greatestWholeUnit(m0,m1){let n2=this.diffWholeYears(m0,m1);return n2!==null?{unit:"year",value:n2}:(n2=this.diffWholeMonths(m0,m1),n2!==null?{unit:"month",value:n2}:(n2=diffWholeWeeks(m0,m1),n2!==null?{unit:"week",value:n2}:(n2=diffWholeDays(m0,m1),n2!==null?{unit:"day",value:n2}:(n2=diffHours(m0,m1),isInt(n2)?{unit:"hour",value:n2}:(n2=diffMinutes(m0,m1),isInt(n2)?{unit:"minute",value:n2}:(n2=diffSeconds(m0,m1),isInt(n2)?{unit:"second",value:n2}:{unit:"millisecond",value:m1.valueOf()-m0.valueOf()}))))))}countDurationsBetween(m0,m1,d2){let diff;return d2.years&&(diff=this.diffWholeYears(m0,m1),diff!==null)?diff/asRoughYears(d2):d2.months&&(diff=this.diffWholeMonths(m0,m1),diff!==null)?diff/asRoughMonths(d2):d2.days&&(diff=diffWholeDays(m0,m1),diff!==null)?diff/asRoughDays(d2):(m1.valueOf()-m0.valueOf())/asRoughMs(d2)}startOf(m2,unit){return unit==="year"?this.startOfYear(m2):unit==="month"?this.startOfMonth(m2):unit==="week"?this.startOfWeek(m2):unit==="day"?startOfDay(m2):unit==="hour"?startOfHour(m2):unit==="minute"?startOfMinute(m2):unit==="second"?startOfSecond(m2):null}startOfYear(m2){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(m2)])}startOfMonth(m2){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(m2),this.calendarSystem.getMarkerMonth(m2)])}startOfWeek(m2){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(m2),this.calendarSystem.getMarkerMonth(m2),m2.getUTCDate()-(m2.getUTCDay()-this.weekDow+7)%7])}computeWeekNumber(marker){return this.weekNumberFunc?this.weekNumberFunc(this.toDate(marker)):weekOfYear(marker,this.weekDow,this.weekDoy)}format(marker,formatter,dateOptions={}){return formatter.format({marker,timeZoneOffset:dateOptions.forcedTzo!=null?dateOptions.forcedTzo:this.offsetForMarker(marker)},this)}formatRange(start,end,formatter,dateOptions={}){return dateOptions.isEndExclusive&&(end=addMs(end,-1)),formatter.formatRange({marker:start,timeZoneOffset:dateOptions.forcedStartTzo!=null?dateOptions.forcedStartTzo:this.offsetForMarker(start)},{marker:end,timeZoneOffset:dateOptions.forcedEndTzo!=null?dateOptions.forcedEndTzo:this.offsetForMarker(end)},this,dateOptions.defaultSeparator)}formatIso(marker,extraOptions={}){let timeZoneOffset=null;return extraOptions.omitTimeZoneOffset||(extraOptions.forcedTzo!=null?timeZoneOffset=extraOptions.forcedTzo:timeZoneOffset=this.offsetForMarker(marker)),buildIsoString(marker,timeZoneOffset,extraOptions.omitTime)}timestampToMarker(ms){return this.timeZone==="local"?arrayToUtcDate(dateToLocalArray(new Date(ms))):this.timeZone==="UTC"||!this.namedTimeZoneImpl?new Date(ms):arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms))}offsetForMarker(m2){return this.timeZone==="local"?-arrayToLocalDate(dateToUtcArray(m2)).getTimezoneOffset():this.timeZone==="UTC"?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m2)):null}toDate(m2,forcedTzo){return this.timeZone==="local"?arrayToLocalDate(dateToUtcArray(m2)):this.timeZone==="UTC"?new Date(m2.valueOf()):this.namedTimeZoneImpl?new Date(m2.valueOf()-this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m2))*1e3*60):new Date(m2.valueOf()-(forcedTzo||0))}}class Theme{constructor(calendarOptions){this.iconOverrideOption&&this.setIconOverride(calendarOptions[this.iconOverrideOption])}setIconOverride(iconOverrideHash){let iconClassesCopy,buttonName;if(typeof iconOverrideHash=="object"&&iconOverrideHash){iconClassesCopy=Object.assign({},this.iconClasses);for(buttonName in iconOverrideHash)iconClassesCopy[buttonName]=this.applyIconOverridePrefix(iconOverrideHash[buttonName]);this.iconClasses=iconClassesCopy}else iconOverrideHash===!1&&(this.iconClasses={})}applyIconOverridePrefix(className){let prefix=this.iconOverridePrefix;return prefix&&className.indexOf(prefix)!==0&&(className=prefix+className),className}getClass(key){return this.classes[key]||""}getIconClass(buttonName,isRtl){let className;return isRtl&&this.rtlIconClasses?className=this.rtlIconClasses[buttonName]||this.iconClasses[buttonName]:className=this.iconClasses[buttonName],className?`${this.baseIconClass} ${className}`:""}getCustomButtonIconClass(customButtonProps){let className;return this.iconOverrideCustomButtonOption&&(className=customButtonProps[this.iconOverrideCustomButtonOption],className)?`${this.baseIconClass} ${this.applyIconOverridePrefix(className)}`:""}}Theme.prototype.classes={};Theme.prototype.iconClasses={};Theme.prototype.baseIconClass="";Theme.prototype.iconOverridePrefix="";function flushSync(runBeforeFlush){runBeforeFlush();let oldDebounceRendering=l$1.debounceRendering,callbackQ=[];function execCallbackSync(callback){callbackQ.push(callback)}for(l$1.debounceRendering=execCallbackSync,D$1(y(FakeComponent,{}),document.createElement("div"));callbackQ.length;)callbackQ.shift()();l$1.debounceRendering=oldDebounceRendering}class FakeComponent extends x$1{render(){return y("div",{})}componentDidMount(){this.setState({})}}function createContext(defaultValue){let ContextType=G$1(defaultValue),origProvider=ContextType.Provider;return ContextType.Provider=function(){let isNew=!this.getChildContext,children=origProvider.apply(this,arguments);if(isNew){let subs=[];this.shouldComponentUpdate=_props=>{this.props.value!==_props.value&&subs.forEach(c2=>{c2.context=_props.value,c2.forceUpdate()})},this.sub=c2=>{subs.push(c2);let old=c2.componentWillUnmount;c2.componentWillUnmount=()=>{subs.splice(subs.indexOf(c2),1),old&&old.call(c2)}}}return children},ContextType}class ScrollResponder{constructor(execFunc,emitter,scrollTime,scrollTimeReset){this.execFunc=execFunc,this.emitter=emitter,this.scrollTime=scrollTime,this.scrollTimeReset=scrollTimeReset,this.handleScrollRequest=request=>{this.queuedRequest=Object.assign({},this.queuedRequest||{},request),this.drain()},emitter.on("_scrollRequest",this.handleScrollRequest),this.fireInitialScroll()}detach(){this.emitter.off("_scrollRequest",this.handleScrollRequest)}update(isDatesNew){isDatesNew&&this.scrollTimeReset?this.fireInitialScroll():this.drain()}fireInitialScroll(){this.handleScrollRequest({time:this.scrollTime})}drain(){this.queuedRequest&&this.execFunc(this.queuedRequest)&&(this.queuedRequest=null)}}const ViewContextType=createContext({});function buildViewContext(viewSpec,viewApi,viewOptions,dateProfileGenerator,dateEnv,theme,pluginHooks,dispatch,getCurrentData,emitter,calendarApi,registerInteractiveComponent,unregisterInteractiveComponent){return{dateEnv,options:viewOptions,pluginHooks,emitter,dis
1patch,getCurrentData,calendarApi,viewSpec,viewApi,dateProfileGenerator,theme,isRtl:viewOptions.direction==="rtl",addResizeHandler(handler){emitter.on("_resize",handler)},removeResizeHandler(handler){emitter.off("_resize",handler)},createScrollResponder(execFunc){return new ScrollResponder(execFunc,emitter,createDuration(viewOptions.scrollTime),viewOptions.scrollTimeReset)},registerInteractiveComponent,unregisterInteractiveComponent}}class PureComponent extends x$1{shouldComponentUpdate(nextProps,nextState){return this.debug&&console.log(getUnequalProps(nextProps,this.props),getUnequalProps(nextState,this.state)),!compareObjs(this.props,nextProps,this.propEquality)||!compareObjs(this.state,nextState,this.stateEquality)}safeSetState(newState){compareObjs(this.state,Object.assign(Object.assign({},this.state),newState),this.stateEquality)||this.setState(newState)}}PureComponent.addPropsEquality=addPropsEquality;PureComponent.addStateEquality=addStateEquality;PureComponent.contextType=ViewContextType;PureComponent.prototype.propEquality={};PureComponent.prototype.stateEquality={};class BaseComponent extends PureComponent{}BaseComponent.contextType=ViewContextType;function addPropsEquality(propEquality){let hash=Object.create(this.prototype.propEquality);Object.assign(hash,propEquality),this.prototype.propEquality=hash}function addStateEquality(stateEquality){let hash=Object.create(this.prototype.stateEquality);Object.assign(hash,stateEquality),this.prototype.stateEquality=hash}function setRef(ref,current){typeof ref=="function"?ref(current):ref&&(ref.current=current)}class ContentInjector extends BaseComponent{constructor(){super(...arguments),this.id=guid(),this.queuedDomNodes=[],this.currentDomNodes=[],this.handleEl=el=>{hasCustomRenderingHandler(this.props.generatorName,this.context.options)||this.updateElRef(el)},this.updateElRef=el=>{this.props.elRef&&setRef(this.props.elRef,el)}}render(){const{props,context}=this,{options}=context,{customGenerator,defaultGenerator,renderProps}=props,attrs=buildElAttrs(props,[],this.handleEl);let useDefault=!1,innerContent,queuedDomNodes=[],currentGeneratorMeta;if(customGenerator!=null){const customGeneratorRes=typeof customGenerator=="function"?customGenerator(renderProps,y):customGenerator;if(customGeneratorRes===!0)useDefault=!0;else{const isObject=customGeneratorRes&&typeof customGeneratorRes=="object";isObject&&"html"in customGeneratorRes?attrs.dangerouslySetInnerHTML={__html:customGeneratorRes.html}:isObject&&"domNodes"in customGeneratorRes?queuedDomNodes=Array.prototype.slice.call(customGeneratorRes.domNodes):(isObject?i$1(customGeneratorRes):typeof customGeneratorRes!="function")?innerContent=customGeneratorRes:currentGeneratorMeta=customGeneratorRes}}else useDefault=!hasCustomRenderingHandler(props.generatorName,options);return useDefault&&defaultGenerator&&(innerContent=defaultGenerator(renderProps)),this.queuedDomNodes=queuedDomNodes,this.currentGeneratorMeta=currentGeneratorMeta,y(props.elTag,attrs,innerContent)}componentDidMount(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentDidUpdate(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentWillUnmount(){this.triggerCustomRendering(!1)}triggerCustomRendering(isActive){var _a;const{props,context}=this,{handleCustomRendering,customRenderingMetaMap}=context.options;if(handleCustomRendering){const generatorMeta=(_a=this.currentGeneratorMeta)!==null&&_a!==void 0?_a:customRenderingMetaMap==null?void 0:customRenderingMetaMap[props.generatorName];generatorMeta&&handleCustomRendering(Object.assign(Object.assign({id:this.id,isActive,containerEl:this.base,reportNewContainerEl:this.updateElRef,generatorMeta},props),{elClasses:(props.elClasses||[]).filter(isTruthy)}))}}applyQueueudDomNodes(){const{queuedDomNodes,currentDomNodes}=this,el=this.base;if(!isArraysEqual(queuedDomNodes,currentDomNodes)){currentDomNodes.forEach(removeElement);for(let newNode of queuedDomNodes)el.appendChild(newNode);this.currentDomNodes=queuedDomNodes}}}ContentInjector.addPropsEquality({elClasses:isArraysEqual,elStyle:isPropsEqual,elAttrs:isNonHandlerPropsEqual,renderProps:isPropsEqual});function hasCustomRenderingHandler(generatorName,options){var _a;return!!(options.handleCustomRendering&&generatorName&&(!((_a=options.customRenderingMetaMap)===null||_a===void 0)&&_a[generatorName]))}function buildElAttrs(props,extraClassNames,elRef){const attrs=Object.assign(Object.assign({},props.elAttrs),{ref:elRef});return(props.elClasses||extraClassNames)&&(attrs.className=(props.elClasses||[]).concat(extraClassNames||[]).concat(attrs.className||[]).filter(
1Boolean).join(" ")),props.elStyle&&(attrs.style=props.elStyle),attrs}function isTruthy(val){return!!val}const RenderId=createContext(0);class ContentContainer extends x$1{constructor(){super(...arguments),this.InnerContent=InnerContentInjector.bind(void 0,this),this.handleEl=el=>{this.el=el,this.props.elRef&&setRef(this.props.elRef,el)}}render(){const{props}=this,generatedClassNames=generateClassNames(props.classNameGenerator,props.renderProps);if(props.children){const elAttrs=buildElAttrs(props,generatedClassNames,this.handleEl),children=props.children(this.InnerContent,props.renderProps,elAttrs);return props.elTag?y(props.elTag,elAttrs,children):children}else return y(ContentInjector,Object.assign(Object.assign({},props),{elRef:this.handleEl,elTag:props.elTag||"div",elClasses:(props.elClasses||[]).concat(generatedClassNames),renderId:this.context}))}componentDidMount(){var _a,_b;(_b=(_a=this.props).didMount)===null||_b===void 0||_b.call(_a,Object.assign(Object.assign({},this.props.renderProps),{el:this.el}))}componentWillUnmount(){var _a,_b;(_b=(_a=this.props).willUnmount)===null||_b===void 0||_b.call(_a,Object.assign(Object.assign({},this.props.renderProps),{el:this.el}))}}ContentContainer.contextType=RenderId;function InnerContentInjector(containerComponent,props){const parentProps=containerComponent.props;return y(ContentInjector,Object.assign({renderProps:parentProps.renderProps,generatorName:parentProps.generatorName,customGenerator:parentProps.customGenerator,defaultGenerator:parentProps.defaultGenerator,renderId:containerComponent.context},props))}function generateClassNames(classNameGenerator,renderProps){const classNames=typeof classNameGenerator=="function"?classNameGenerator(renderProps):classNameGenerator||[];return typeof classNames=="string"?[classNames]:classNames}class ViewContainer extends BaseComponent{render(){let{props,context}=this,{options}=context,renderProps={view:context.viewApi};return y(ContentContainer,Object.assign({},props,{elTag:props.elTag||"div",elClasses:[...buildViewClassNames(props.viewSpec),...props.elClasses||[]],renderProps,classNameGenerator:options.viewClassNames,generatorName:void 0,didMount:options.viewDidMount,willUnmount:options.viewWillUnmount}),()=>props.children)}}function buildViewClassNames(viewSpec){return[`fc-${viewSpec.type}-view`,"fc-view"]}function parseRange(input,dateEnv){let start=null,end=null;return input.start&&(start=dateEnv.createMarker(input.start)),input.end&&(end=dateEnv.createMarker(input.end)),!start&&!end||start&&end&&end<start?null:{start,end}}function invertRanges(ranges,constraintRange){let invertedRanges=[],{start}=constraintRange,i2,dateRange;for(ranges.sort(compareRanges),i2=0;i2<ranges.length;i2+=1)dateRange=ranges[i2],dateRange.start>start&&invertedRanges.push({start,end:dateRange.start}),dateRange.end>start&&(start=dateRange.end);return start<constraintRange.end&&invertedRanges.push({start,end:constraintRange.end}),invertedRanges}function compareRanges(range0,range1){return range0.start.valueOf()-range1.start.valueOf()}function intersectRanges(range0,range1){let{start,end}=range0,newRange=null;return range1.start!==null&&(start===null?start=range1.start:start=new Date(Math.max(start.valueOf(),range1.start.valueOf()))),range1.end!=null&&(end===null?end=range1.end:end=new Date(Math.min(end.valueOf(),range1.end.valueOf()))),(start===null||end===null||start<end)&&(newRange={start,end}),newRange}function rangesIntersect(range0,range1){return(range0.end===null||range1.start===null||range0.end>range1.start)&&(range0.start===null||range1.end===null||range0.start<range1.end)}function rangeContainsMarker(range,date){return(range.start===null||date>=range.start)&&(range.end===null||date<range.end)}function constrainMarkerToRange(date,range){return range.start!=null&&date<range.start?range.start:range.end!=null&&date>=range.end?new Date(range.end.valueOf()-1):date}function computeAlignedDayRange(timedRange){let dayCnt=Math.floor(diffDays(timedRange.start,timedRange.end))||1,start=startOfDay(timedRange.start),end=addDays(start,dayCnt);return{start,end}}function computeVisibleDayRange(timedRange,nextDayThreshold=createDuration(0)){let startDay=null,endD
1ay=null;if(timedRange.end){endDay=startOfDay(timedRange.end);let endTimeMS=timedRange.end.valueOf()-endDay.valueOf();endTimeMS&&endTimeMS>=asRoughMs(nextDayThreshold)&&(endDay=addDays(endDay,1))}return timedRange.start&&(startDay=startOfDay(timedRange.start),endDay&&endDay<=startDay&&(endDay=addDays(startDay,1))),{start:startDay,end:endDay}}function diffDates(date0,date1,dateEnv,largeUnit){return largeUnit==="year"?createDuration(dateEnv.diffWholeYears(date0,date1),"year"):largeUnit==="month"?createDuration(dateEnv.diffWholeMonths(date0,date1),"month"):diffDayAndTime(date0,date1)}function reduceCurrentDate(currentDate,action){switch(action.type){case"CHANGE_DATE":return action.dateMarker;default:return currentDate}}function getInitialDate(options,dateEnv){let initialDateInput=options.initialDate;return initialDateInput!=null?dateEnv.createMarker(initialDateInput):getNow(options.now,dateEnv)}function getNow(nowInput,dateEnv){return typeof nowInput=="function"&&(nowInput=nowInput()),nowInput==null?dateEnv.createNowMarker():dateEnv.createMarker(nowInput)}class DateProfileGenerator{constructor(props){this.props=props,this.nowDate=getNow(props.nowInput,props.dateEnv),this.initHiddenDays()}buildPrev(currentDateProfile,currentDate,forceToValid){let{dateEnv}=this.props,prevDate=dateEnv.subtract(dateEnv.startOf(currentDate,currentDateProfile.currentRangeUnit),currentDateProfile.dateIncrement);return this.build(prevDate,-1,forceToValid)}buildNext(currentDateProfile,currentDate,forceToValid){let{dateEnv}=this.props,nextDate=dateEnv.add(dateEnv.startOf(currentDate,currentDateProfile.currentRangeUnit),currentDateProfile.dateIncrement);return this.build(nextDate,1,forceToValid)}build(currentDate,direction,forceToValid=!0){let{props}=this,validRange,currentInfo,isRangeAllDay,renderRange,activeRange,isValid;return validRange=this.buildValidRange(),validRange=this.trimHiddenDays(validRange),forceToValid&&(currentDate=constrainMarkerToRange(currentDate,validRange)),currentInfo=this.buildCurrentRangeInfo(currentDate,direction),isRangeAllDay=/^(year|month|week|day)$/.test(currentInfo.unit),renderRange=this.buildRenderRange(this.trimHiddenDays(currentInfo.range),currentInfo.unit,isRangeAllDay),renderRange=this.trimHiddenDays(renderRange),activeRange=renderRange,props.showNonCurrentDates||(activeRange=intersectRanges(activeRange,currentInfo.range)),activeRange=this.adjustActiveRange(activeRange),activeRange=intersectRanges(activeRange,validRange),isValid=rangesIntersect(currentInfo.range,validRange),rangeContainsMarker(renderRange,currentDate)||(currentDate=renderRange.start),{currentDate,validRange,currentRange:currentInfo.range,currentRangeUnit:currentInfo.unit,isRangeAllDay,activeRange,renderRange,slotMinTime:props.slotMinTime,slotMaxTime:props.slotMaxTime,isValid,dateIncrement:this.buildDateIncrement(currentInfo.duration)}}buildValidRange(){let input=this.props.validRangeInput,simpleInput=typeof input=="function"?input.call(this.props.calendarApi,this.nowDate):input;return this.refineRange(simpleInput)||{start:null,end:null}}buildCurrentRangeInfo(date,direction){let{props}=this,duration=null,unit=null,range=null,dayCount;return props.duration?(duration=props.duration,unit=props.durationUnit,range=this.buildRangeFromDuration(date,direction,duration,unit)):(dayCount=this.props.dayCount)?(unit="day",range=this.buildRangeFromDayCount(date,direction,dayCount)):(range=this.buildCustomVisibleRange(date))?unit=props.dateEnv.greatestWholeUnit(range.start,range.end).unit:(duration=this.getFallbackDuration(),unit=greatestDurationDenominator(duration).unit,range=this.buildRangeFromDuration(date,direction,duration,unit)),{duration,unit,range}}getFallbackDuration(){return createDuration({day:1})}adjustActiveRange(range){let{dateEnv,usesMinMaxTime,slotMinTime,slotMaxTime}=this.props,{start,end}=range;return usesMinMaxTime&&(asRoughDays(slotMinTime)<0&&(start=startOfDay(start),start=dateEnv.add(start,slotMinTime)),asRoughDays(slotMaxTime)>1&&(end=startOfDay(end),end=addDays(end,-1),end=dateEnv.add(end,slotMaxTime))),{start,end}}buildRangeFromDuration(date,direction,duration,unit){let{dateEnv,dateAlignment}=this.props,start,end,res;if(!dateAlignment){let{dateIncrement}=this.props;dateIncrement&&asRoughMs(dateIncrement)<asRoughMs(duration)?dateAlignment=greatestDurationDenominator(dateIncrement).unit:dateAlignment=unit}
1asRoughDays(duration)<=1&&this.isHiddenDay(start)&&(start=this.skipHiddenDays(start,direction),start=startOfDay(start));function computeRes(){start=dateEnv.startOf(date,dateAlignment),end=dateEnv.add(start,duration),res={start,end}}return computeRes(),this.trimHiddenDays(res)||(date=this.skipHiddenDays(date,direction),computeRes()),res}buildRangeFromDayCount(date,direction,dayCount){let{dateEnv,dateAlignment}=this.props,runningCount=0,start=date,end;dateAlignment&&(start=dateEnv.startOf(start,dateAlignment)),start=startOfDay(start),start=this.skipHiddenDays(start,direction),end=start;do end=addDays(end,1),this.isHiddenDay(end)||(runningCount+=1);while(runningCount<dayCount);return{start,end}}buildCustomVisibleRange(date){let{props}=this,input=props.visibleRangeInput,simpleInput=typeof input=="function"?input.call(props.calendarApi,props.dateEnv.toDate(date)):input,range=this.refineRange(simpleInput);return range&&(range.start==null||range.end==null)?null:range}buildRenderRange(currentRange,currentRangeUnit,isRangeAllDay){return currentRange}buildDateIncrement(fallback){let{dateIncrement}=this.props,customAlignment;return dateIncrement||((customAlignment=this.props.dateAlignment)?createDuration(1,customAlignment):fallback||createDuration({days:1}))}refineRange(rangeInput){if(rangeInput){let range=parseRange(rangeInput,this.props.dateEnv);return range&&(range=computeVisibleDayRange(range)),range}return null}initHiddenDays(){let hiddenDays=this.props.hiddenDays||[],isHiddenDayHash=[],dayCnt=0,i2;for(this.props.weekends===!1&&hiddenDays.push(0,6),i2=0;i2<7;i2+=1)(isHiddenDayHash[i2]=hiddenDays.indexOf(i2)!==-1)||(dayCnt+=1);if(!dayCnt)throw new Error("invalid hiddenDays");
1this.isHiddenDayHash=isHiddenDayHash}trimHiddenDays(range){let{start,end}=range;return start&&(start=this.skipHiddenDays(start)),end&&(end=this.skipHiddenDays(end,-1,!0)),start==null||end==null||start<end?{start,end}:null}isHiddenDay(day){return day instanceof Date&&(day=day.getUTCDay()),this.isHiddenDayHash[day]}skipHiddenDays(date,inc=1,isExclusive=!1){for(;this.isHiddenDayHash[(date.getUTCDay()+(isExclusive?inc:0)+7)%7];)date=addDays(date,inc);return date}}function createEventInstance(defId,range,forcedStartTzo,forcedEndTzo){return{instanceId:guid(),defId,range,forcedStartTzo:forcedStartTzo??null,forcedEndTzo:forcedEndTzo??null}}function parseRecurring(refined,defaultAllDay,dateEnv,recurringTypes){for(let i2=0;i2<recurringTypes.length;i2+=1){let parsed=recurringTypes[i2].parse(refined,dateEnv);if(parsed){let{allDay}=refined;return allDay==null&&(allDay=defaultAllDay,allDay==null&&(allDay=parsed.allDayGuess,allDay==null&&(allDay=!1))),{allDay,duration:parsed.duration,typeData:parsed.typeData,typeId:i2}}}return null}function expandRecurring(eventStore,framingRange,context){let{dateEnv,pluginHooks,options}=context,{defs,instances}=eventStore;instances=filterHash(instances,instance=>!defs[instance.defId].recurringDef);for(let defId in defs){let def=defs[defId];if(def.recurringDef){let{duration}=def.recurringDef;duration||(duration=def.allDay?options.defaultAllDayEventDuration:options.defaultTimedEventDuration);let starts=expandRecurringRanges(def,duration,framingRange,dateEnv,pluginHooks.recurringTypes);for(let start of starts){let instance=createEventInstance(defId,{start,end:dateEnv.add(start,duration)});instances[instance.instanceId]=instance}}}return{defs,instances}}function expandRecurringRanges(eventDef,duration,framingRange,dateEnv,recurringTypes){let markers=recurringTypes[eventDef.recurringDef.typeId].expand(eventDef.recurringDef.typeData,{start:dateEnv.subtract(framingRange.start,duration),end:framingRange.end},dateEnv);return eventDef.allDay&&(markers=markers.map(startOfDay)),markers}const EVENT_NON_DATE_REFINERS={id:String,groupId:String,title:String,url:String,interactive:Boolean},EVENT_DATE_REFINERS={start:identity,end:identity,date:identity,allDay:Boolean},EVENT_REFINERS=Object.assign(Object.assign(Object.assign({},EVENT_NON_DATE_REFINERS),EVENT_DATE_REFINERS),{extendedProps:identity});function parseEvent(raw,eventSource,context,allowOpenRange,refiners=buildEventRefiners(context),defIdMap,instanceIdMap){let{refined,extra}=refineEventDef(raw,context,refiners),defaultAllDay=computeIsDefaultAllDay(eventSource,context),recurringRes=parseRecurring(refined,defaultAllDay,context.dateEnv,context.pluginHooks.recurringTypes);if(recurringRes){let def=parseEventDef(refined,extra,eventSource?eventSource.sourceId:"",recurringRes.allDay,!!recurringRes.duration,context,defIdMap);return def.recurringDef={typeId:recurringRes.typeId,typeData:recurringRes.typeData,duration:recurringRes.duration},{def,instance:null}}let singleRes=parseSingle(refined,defaultAllDay,context,allowOpenRange);if(singleRes){let def=parseEventDef(refined,extra,eventSource?eventSource.sourceId:"",singleRes.allDay,singleRes.hasEnd,context,defIdMap),instance=createEventInstance(def.defId,singleRes.range,singleRes.forcedStartTzo,singleRes.forcedEndTzo);return instanceIdMap&&def.publicId&&instanceIdMap[def.publicId]&&(instance.instanceId=instanceIdMap[def.publicId]),{def,instance}}return null}function refineEventDef(raw,context,refiners=buildEventRefiners(context)){return refineProps(raw,refiners)}function buildEventRefiners(context){return Object.assign(Object.assign(Object.assign({},EVENT_UI_REFINERS),EVENT_REFINERS),context.pluginHooks.eventRefiners)}function parseEventDef(refined,extra,sourceId,allDay,hasEnd,context,defIdMap){let def={title:refined.title||"",groupId:refined.groupId||"",publicId:refined.id||"",url:refined.url||"",recurringDef:null,defId:(defIdMap&&refined.id?defIdMap[refined.id]:"")||guid(),sourceId,allDay,hasEnd,interactive:refined.interactive,ui:createEventUi(refined,context),extendedProps:Object.assign(Object.assign({},refined.extendedProps||{}),extra)};for(let memberAdder of context.pluginHooks.eventDefMemberAdders)Object.assign(def,memberAdder(refined));return Object.freeze(def.ui.classNames),Object.freeze(def.extendedProps),def}function parseSingle(refined,defaultAllDay,context,allowOpenRange){let{allDay}=refined,startMeta,startMarker=null,hasEnd=!1,endMeta,endMarker=null,startInput=refined.start!=null?refined.start:refined.date;if(startMeta=context.dateEnv.createMarkerMeta(startInput),startMeta)startMarker=startMeta.marker;else if(!allowOpenRange)return null;return refined.end!=null&&(endMeta=context.dateEnv.createMarkerMeta(refined.end)),allDay==null&&(defaultAllDay!=null?allDay=defaultAllDay:allDay=(!startMeta||startMeta.isTimeUnspecified)&&(!endMeta||endMeta.isTimeUnspecified)),allDay&&startMarker&&(startMarker=startOfDay(startMarker)),endMeta&&(endMarker=endMeta.marker,allDay&&(endMarker=startOfDay(endMarker)),startMarker&&endMarker<=startMarker&&(endMarker=null)),endMarker?hasEnd=!0:allowOpenRange||(hasEnd=context.options.forceEventDuration||!1,endMarker=context.dateEnv.add(startMarker,allDay?context.options.defaultAllDayEventDuration:context.options.defaultTimedEventDuration)),{allDay,hasEnd,range:{start:startMarker,end:endMarker},forcedStartTzo:startMeta?startMeta.forcedTzo:null,forcedEndTzo:endMeta?endMeta.forcedTzo:null}}function computeIsDefaultAllDay(eventSource,context){let res=null;return eventSource&&(res=eventSource.defaultAllDay),res==null&&(res=context.options.defaultAllDay),res}function parseEvents(rawEvents,eventSource,context,allowOpenRange,defIdMap,instanceIdMap){let eventStore=createEmptyEventStore(),eventRefiners=buildEventRefiners(context);for(let rawEvent of rawEvents){let tuple=parseEvent(rawEvent,eventSource,context,allowOpenRange,eventRefiners,defIdMap,instanceIdMap);tuple&&eventTupleToStore(tuple,eventStore)}return eventStore}function eventTupleToStore(tuple,eventStore=createEmptyEventStore()){return eventStore.defs[tuple.def.defId]=tuple.def,tuple.instance&&(eventStore.instances[tuple.instance.instanceId]=tuple.instance),eventStore}function getRelevantEvents(eventStore,instanceId){let instance=eventStore.instances[instanceId];if(instance){let def=eventStore.defs[instance.defId],newStore=filterEventStoreDefs(eventStore,lookDef=>isEventDefsGrouped(def,lookDef));return newStore.defs[def.defId]=def,newStore.instances[instance.instanceId]=instance,newStore}return createEmptyEventStore()}function isEventDefsGrouped(def0,def1){return!!(def0.groupId&&def0.groupId===def1.groupId)}function createEmptyEventStore(){return{defs:{},instances:{}}}function mergeEventStores(store0,store1){return{defs:Object.assign(Object.assign({},store0.defs),store1.defs),instances:Object.assign(Object.assign({},store0.instances),store1.instances)}}function filterEventStoreDefs(eventStore,filterFunc){let defs=filterHash(eventStore.defs,filterFunc),instances=filterHash(eventStore.instances,instance=>defs[instance.defId]);return{defs,instances}}function excludeSubEventStore(master,sub){let{defs,instances}=master,filteredDefs={},filteredInstances={};for(let defId in defs)sub.defs[defId]||(filteredDefs[defId]=defs[defId]);for(let instanceId in instances)!sub.instances[instanceId]&&filteredDefs[instances[instanceId].defId]&&(filteredInstances[instanceId]=instances[instanceId]);return{defs:filteredDefs,instances:filteredInstances}}function normalizeConstraint(input,context){return Array.isArray(input)?parseEvents(input,null,context,!0):typeof input=="object"&&input?parseEvents([input],null,context,!0):input!=null?String(input):null}function parseClassNames(raw){return Array.isArray(raw)?raw:typeof raw=="string"?raw.split(/\s+/):[]}const EVENT_UI_REFINERS={display:String,editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:identity,overlap:identity,allow:identity,className:parseClassNames,classNames:parseClassNames,color:String,backgroundColor:String,borderColor:String,textColor:String},EMPTY_EVENT_UI={display:null,startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]};function createEventUi(refined,context){let constraint=normalizeConstraint(refined.constraint,context);return{display:refined.display||null,startEditable:refined.startEditable!=null?refined.startEditable:refined.editable,durationEditable:refined.durationEditable!=null?refined.durationEditable:refined.editable,constraints:constraint!=null?[constraint]:[],overlap:refined.overlap!=null?refined.overlap:null,allows:refined.allow!=null?[refined.allow]:[],backgroundColor:refined.backgroundColor||refined.color||"",borderColor:refined.borderColor||refined.color||"",textColor:refined.textColor||"",classNames:(refined.className||[]).concat(refined.classNames||[])}}function combineEventUis(uis){return uis.reduce(combineTwoEventUis,EMPTY_EVENT_UI)}function combineTwoEventUis(item0,item1){return{display:item1.display!=null?item1.display:item0.display,startEditable:item1.startEditable!=null?item1.startEditable:item0.startEditable,durationEditable:item1.durationEditable!=null?item1.durationEditable:item0.durationEditable,constraints:item0.constraints.concat(item1.constraints),overlap:typeof item1.overlap=="boolean"?item1.overlap:item0.overlap,allows:item0.allows.concat(item1.allows),backgroundColor:item1.backgroundColor||item0.backgroundColor,borderColor:item1.borderColor||item0.borderColor,textColor:item1.textColor||item0.textColor,classNames:item0.classNames.c
vendor: 21,587 bytes, line 1
1oncat(item1.classNames)}}const EVENT_SOURCE_REFINERS={id:String,defaultAllDay:Boolean,url:String,format:String,events:identity,eventDataTransform:identity,success:identity,failure:identity};function parseEventSource(raw,context,refiners=buildEventSourceRefiners(context)){let rawObj;if(typeof raw=="string"?rawObj={url:raw}:typeof raw=="function"||Array.isArray(raw)?rawObj={events:raw}:typeof raw=="object"&&raw&&(rawObj=raw),rawObj){let{refined,extra}=refineProps(rawObj,refiners),metaRes=buildEventSourceMeta(refined,context);if(metaRes)return{_raw:raw,isFetching:!1,latestFetchId:"",fetchRange:null,defaultAllDay:refined.defaultAllDay,eventDataTransform:refined.eventDataTransform,success:refined.success,failure:refined.failure,publicId:refined.id||"",sourceId:guid(),sourceDefId:metaRes.sourceDefId,meta:metaRes.meta,ui:createEventUi(refined,context),extendedProps:extra}}return null}function buildEventSourceRefiners(context){return Object.assign(Object.assign(Object.assign({},EVENT_UI_REFINERS),EVENT_SOURCE_REFINERS),context.pluginHooks.eventSourceRefiners)}function buildEventSourceMeta(raw,context){let defs=context.pluginHooks.eventSourceDefs;for(let i2=defs.length-1;i2>=0;i2-=1){let meta=defs[i2].parseMeta(raw);if(meta)return{sourceDefId:i2,meta}}return null}function reduceEventStore(eventStore,action,eventSources,dateProfile,context){switch(action.type){case"RECEIVE_EVENTS":return receiveRawEvents(eventStore,eventSources[action.sourceId],action.fetchId,action.fetchRange,action.rawEvents,context);case"RESET_RAW_EVENTS":return resetRawEvents(eventStore,eventSources[action.sourceId],action.rawEvents,dateProfile.activeRange,context);case"ADD_EVENTS":return addEvent(eventStore,action.eventStore,dateProfile?dateProfile.activeRange:null,context);case"RESET_EVENTS":return action.eventStore;case"MERGE_EVENTS":return mergeEventStores(eventStore,action.eventStore);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return dateProfile?expandRecurring(eventStore,dateProfile.activeRange,context):eventStore;case"REMOVE_EVENTS":return excludeSubEventStore(eventStore,action.eventStore);case"REMOVE_EVENT_SOURCE":return excludeEventsBySourceId(eventStore,action.sourceId);case"REMOVE_ALL_EVENT_SOURCES":return filterEventStoreDefs(eventStore,eventDef=>!eventDef.sourceId);case"REMOVE_ALL_EVENTS":return createEmptyEventStore();default:return eventStore}}function receiveRawEvents(eventStore,eventSource,fetchId,fetchRange,rawEvents,context){if(eventSource&&fetchId===eventSource.latestFetchId){let subset=parseEvents(transformRawEvents(rawEvents,eventSource,context),eventSource,context);return fetchRange&&(subset=expandRecurring(subset,fetchRange,context)),mergeEventStores(excludeEventsBySourceId(eventStore,eventSource.sourceId),subset)}return eventStore}function resetRawEvents(existingEventStore,eventSource,rawEvents,activeRange,context){const{defIdMap,instanceIdMap}=buildPublicIdMaps(existingEventStore);let newEventStore=parseEvents(transformRawEvents(rawEvents,eventSource,context),eventSource,context,!1,defIdMap,instanceIdMap);return expandRecurring(newEventStore,activeRange,context)}function transformRawEvents(rawEvents,eventSource,context){let calEachTransform=context.options.eventDataTransform,sourceEachTransform=eventSource?eventSource.eventDataTransform:null;return sourceEachTransform&&(rawEvents=transformEachRawEvent(rawEvents,sourceEachTransform)),calEachTransform&&(rawEvents=transformEachRawEvent(rawEvents,calEachTransform)),rawEvents}function transformEachRawEvent(rawEvents,func){let refinedEvents;if(!func)refinedEvents=rawEvents;else{refinedEvents=[];for(let rawEvent of rawEvents){let refinedEvent=func(rawEvent);refinedEvent?refinedEvents.push(refinedEvent):refinedEvent==null&&refinedEvents.push(rawEvent)}}return refinedEvents}function addEvent(eventStore,subset,expandRange,context){return expandRange&&(subset=expandRecurring(subset,expandRange,context)),mergeEventStores(eventStore,subset)}function rezoneEventStoreDates(eventStore,oldDateEnv,newDateEnv){let{defs}=eventStore,instances=mapHash(eventStore.instances,instance=>defs[instance.defId].allDay?instance:Object.assign(Object.assign({},instance),{range:{start:newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start,instance.forcedStartTzo)),end:newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end,instance.forcedEndTzo))},forcedStartTzo:newDateEnv.canComputeOffset?null:instance.forcedStartTzo,forcedEndTzo:newDateEnv.canComputeOffset?null:instance.forcedEndTzo}));return{defs,instances}}function excludeEventsBySourceId(eventStore,sourceId){return filterEventStoreDefs(eventStore,eventDef=>eventDef.sourceId!==sourceId)}function buildPublicIdMaps(eventStore){const{defs,instances}=eventStore,defIdMap={},instanceIdMap={};for(let defId in defs){const def=defs[defId],{publicId}=def;publicId&&(defIdMap[publicId]=defId)}for(let instanceId in instances){const instance=instances[instanceId],def=defs[instance.defId],{publicId}=def;publicId&&(instanceIdMap[publicId]=instanceId)}return{defIdMap,instanceIdMap}}class Emitter{constructor(){this.handlers={},this.thisContext=null}setThisContext(thisContext){this.thisContext=thisContext}setOptions(options){this.options=options}on(type,handler){addToHash(this.handlers,type,handler)}off(type,handler){removeFromHash(this.handlers,type,handler)}trigger(type,...args){let attachedHandlers=this.handlers[type]||[],optionHandler=this.options&&this.options[type],handlers=[].concat(optionHandler||[],attachedHandlers);for(let handler of handlers)handler.apply(this.thisContext,args)}hasHandlers(type){return!!(this.handlers[type]&&this.handlers[type].length||this.options&&this.options[type])}}function addToHash(hash,type,handler){(hash[type]||(hash[type]=[])).push(handler)}function removeFromHash(hash,type,handler){handler?hash[type]&&(hash[type]=hash[type].filter(func=>func!==handler)):delete hash[type]}const DEF_DEFAULTS={startTime:"09:00",endTime:"17:00",daysOfWeek:[1,2,3,4,5],display:"inverse-background",classNames:"fc-non-business",groupId:"_businessHours"};function parseBusinessHours(input,context){return parseEvents(refineInputs(input),null,context)}function refineInputs(input){let rawDefs;return input===!0?rawDefs=[{}]:Array.isArray(input)?rawDefs=input.filter(rawDef=>rawDef.daysOfWeek):typeof input=="object"&&input?rawDefs=[input]:rawDefs=[],rawDefs=rawDefs.map(rawDef=>Object.assign(Object.assign({},DEF_DEFAULTS),rawDef)),rawDefs}function triggerDateSelect(selection,pev,context){context.emitter.trigger("select",Object.assign(Object.assign({},buildDateSpanApiWithContext(selection,context)),{jsEvent:pev?pev.origEvent:null,view:context.viewApi||context.calendarApi.view}))}function triggerDateUnselect(pev,context){context.emitter.trigger("unselect",{jsEvent:pev?pev.origEvent:null,view:context.viewApi||context.calendarApi.view})}function buildDateSpanApiWithContext(dateSpan,context){let props={};for(let transform of context.pluginHooks.dateSpanTransforms)Object.assign(props,transform(dateSpan,context));return Object.assign(props,buildDateSpanApi(dateSpan,context.dateEnv)),props}function getDefaultEventEnd(allDay,marker,context){let{dateEnv,options}=context,end=marker;return allDay?(end=startOfDay(end),end=dateEnv.add(end,options.defaultAllDayEventDuration)):end=dateEnv.add(end,options.defaultTimedEventDuration),end}function applyMutationToEventStore(eventStore,eventConfigBase,mutation,context){let eventConfigs=compileEventUis(eventStore.defs,eventConfigBase),dest=createEmptyEventStore();for(let defId in eventStore.defs){let def=eventStore.defs[defId];dest.defs[defId]=applyMutationToEventDef(def,eventConfigs[defId],mutation,context)}for(let instanceId in eventStore.instances){let instance=eventStore.instances[instanceId],def=dest.defs[instance.defId];dest.instances[instanceId]=applyMutationToEventInstance(instance,def,eventConfigs[instance.defId],mutation,context)}return dest}function applyMutationToEventDef(eventDef,eventConfig,mutation,context){let standardProps=mutation.standardProps||{};standardProps.hasEnd==null&&eventConfig.durationEditable&&(mutation.startDelta||mutation.endDelta)&&(standardProps.hasEnd=!0);let copy=Object.assign(Object.assign(Object.assign({},eventDef),standardProps),{ui:Object.assign(Object.assign({},eventDef.ui),standardProps.ui)});mutation.extendedProps&&(copy.extendedProps=Object.assign(Object.assign({},copy.extendedProps),mutation.extendedProps));for(let applier of context.pluginHooks.eventDefMutationAppliers)applier(copy,mutation,context);return!copy.hasEnd&&context.options.forceEventDuration&&(copy.hasEnd=!0),copy}function applyMutationToEventInstance(eventInstance,eventDef,eventConfig,mutation,context){let{dateEnv}=context,forceAllDay=mutation.standardProps&&mutation.standardProps.allDay===!0,clearEnd=mutation.standardProps&&mutation.standardProps.hasEnd===!1,copy=Object.assign({},eventInstance);return forceAllDay&&(copy.range=computeAlignedDayRange(copy.range)),mutation.datesDelta&&eventConfig.startEditable&&(copy.range={start:dateEnv.add(copy.range.start,mutation.datesDelta),end:dateEnv.add(copy.range.end,mutation.datesDelta)}),mutation.startDelta&&eventConfig.durationEditable&&(copy.range={start:dateEnv.add(copy.range.start,mutation.startDelta),end:copy.range.end}),mutation.endDelta&&eventConfig.durationEditable&&(copy.range={start:copy.range.start,end:dateEnv.add(copy.range.end,mutation.endDelta)}),clearEnd&&(copy.range={start:copy.range.start,end:getDefaultEventEnd(eventDef.allDay,copy.range.start,context)}),eventDef.allDay&&(copy.range={start:startOfDay(copy.range.start),end:startOfDay(copy.range.end)}),copy.range.end<copy.range.start&&(copy.range.end=getDefaultEventEnd(eventDef.allDay,copy.range.start,context)),copy}class EventSourceImpl{constructor(context,internalEventSource){this.context=context,this.internalEventSource=internalEventSource}remove(){this.context.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:this.internalEventSource.sourceId})}refetch(){this.context.dispatch({type:"FETCH_EVENT_SOURCES",sourceIds:[this.internalEventSource.sourceId],isRefetch:!0})}get id(){return this.internalEventSource.publicId}get url(){return this.internalEventSource.meta.url}get format(){return this.internalEventSource.meta.format}}class EventImpl{constructor(context,def,instance){this._context=context,this._def=def,this._instance=instance||null}setProp(name,val){if(name in EVENT_DATE_REFINERS)console.warn("Could not set date-related prop 'name'. Use one of the date-related methods instead.");else if(name==="id")val=EVENT_NON_DATE_REFINERS[name](val),this.mutate({standardProps:{publicId:val}});else if(name in EVENT_NON_DATE_REFINERS)val=EVENT_NON_DATE_REFINERS[name](val),this.mutate({standardProps:{[name]:val}});else if(name in EVENT_UI_REFINERS){let ui=EVENT_UI_REFINERS[name](val);name==="color"?ui={backgroundColor:val,borderColor:val}:name==="editable"?ui={startEditable:val,durationEditable:val}:ui={[name]:val},this.mutate({standardProps:{ui}})}else console.warn(`Could not set prop '${name}'. Use setExtendedProp instead.`)}setExtendedProp(name,val){this.mutate({extendedProps:{[name]:val}})}setStart(startInput,options={}){let{dateEnv}=this._context,start=dateEnv.createMarker(startInput);if(start&&this._instance){let instanceRange=this._instance.range,startDelta=diffDates(instanceRange.start,start,dateEnv,options.granularity);options.maintainDuration?this.mutate({datesDelta:startDelta}):this.mutate({startDelta})}}setEnd(endInput,options={}){let{dateEnv}=this._context,end;if(!(endInput!=null&&(end=dateEnv.createMarker(endInput),!end))&&this._instance)if(end){let endDelta=diffDates(this._instance.range.end,end,dateEnv,options.granularity);this.mutate({endDelta})}else this.mutate({standardProps:{hasEnd:!1}})}setDates(startInput,endInput,options={}){let{dateEnv}=this._context,standardProps={allDay:options.allDay},start=dateEnv.createMarker(startInput),end;if(start&&!(endInput!=null&&(end=dateEnv.createMarker(endInput),!end))&&this._instance){let instanceRange=this._instance.range;options.allDay===!0&&(instanceRange=computeAlignedDayRange(instanceRange));let startDelta=diffDates(instanceRange.start,start,dateEnv,options.granularity);if(end){let endDelta=diffDates(instanceRange.end,end,dateEnv,options.granularity);durationsEqual(startDelta,endDelta)?this.mutate({datesDelta:startDelta,standardProps}):this.mutate({startDelta,endDelta,standardProps})}else standardProps.hasEnd=!1,this.mutate({datesDelta:startDelta,standardProps})}}moveStart(deltaInput){let delta=createDuration(deltaInput);delta&&this.mutate({startDelta:delta})}moveEnd(deltaInput){let delta=createDuration(deltaInput);delta&&this.mutate({endDelta:delta})}moveDates(deltaInput){let delta=createDuration(deltaInput);delta&&this.mutate({datesDelta:delta})}setAllDay(allDay,options={}){let standardProps={allDay},{maintainDuration}=options;maintainDuration==null&&(maintainDuration=this._context.options.allDayMaintainDuration),this._def.allDay!==allDay&&(standardProps.hasEnd=maintainDuration),this.mutate({standardProps})}formatRange(formatInput){let{dateEnv}=this._context,instance=this._instance,formatter=createFormatter(formatInput);return this._def.hasEnd?dateEnv.formatRange(instance.range.start,instance.range.end,formatter,{forcedStartTzo:instance.forcedStartTzo,forcedEndTzo:instance.forcedEndTzo}):dateEnv.format(instance.range.start,formatter,{forcedTzo:instance.forcedStartTzo})}mutate(mutation){let instance=this._instance;if(instance){let def=this._def,context=this._context,{eventStore}=context.getCurrentData(),relevantEvents=getRelevantEvents(eventStore,instance.instanceId);relevantEvents=applyMutationToEventStore(relevantEvents,{"":{display:"",startEditable:!0,durationEditable:!0,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]}},mutation,context);let oldEvent=new EventImpl(context,def,instance);this._def=relevantEvents.defs[def.defId],this._instance=relevantEvents.instances[instance.instanceId],context.dispatch({type:"MERGE_EVENTS",eventStore:relevantEvents}),context.emitter.trigger("eventChange",{oldEvent,event:this,relatedEvents:buildEventApis(relevantEvents,context,instance),revert(){context.dispatch({type:"RESET_EVENTS",eventStore})}})}}remove(){let context=this._context,asStore=eventApiToStore(this);context.dispatch({type:"REMOVE_EVENTS",eventStore:asStore}),context.emitter.trigger("eventRemove",{event:this,relatedEvents:[],revert(){context.dispatch({type:"MERGE_EVENTS",eventStore:asStore})}})}get source(){let{sourceId}=this._def;return sourceId?new EventSourceImpl(this._context,this._context.getCurrentData().eventSources[sourceId]):null}get start(){return this._instance?this._context.dateEnv.toDate(this._instance.range.start):null}get end(){return this._instance&&this._def.hasEnd?this._context.dateEnv.toDate(this._instance.range.end):null}get startStr(){let instance=this._instance;return instance?this._context.dateEnv.formatIso(instance.range.start,{omitTime:this._def.allDay,forcedTzo:instance.forcedStartTzo}):""}get endStr(){let instance=this._instance;return instance&&this._def.hasEnd?this._context.dateEnv.formatIso(instance.range.end,{omitTime:this._def.allDay,forcedTzo:instance.forcedEndTzo}):""}get id(){return this._def.publicId}get groupId(){return this._def.groupId}get allDay(){return this._def.allDay}get title(){return this._def.title}get url(){return this._def.url}get display(){return this._def.ui.display||"auto"}get startEditable(){return this._def.ui.startEditable}get durationEditable(){return this._def.ui.durationEditable}get constraint(){return this._def.ui.constraints[0]||null}get overlap(){return this._def.ui.overlap}get allow(){return this._def.ui.allows[0]||null}get backgroundColor(){return this._def.ui.backgroundColor}get borderColor(){return this._def.ui.borderColor}get textColor(){return this._def.ui.textColor}get classNames(){return this._def.ui.classNames}get extendedProps(){return this._def.extendedProps}toPlainObject(settings={}){let def=this._def,{ui}=def,{startStr,endStr}=this,res={allDay:def.allDay};return def.title&&(res.title=def.title),startStr&&(res.start=startStr),endStr&&(res.end=endStr),def.publicId&&(res.id=def.publicId),def.groupId&&(res.groupId=def.groupId),def.url&&(res.url=def.url),ui.display&&ui.display!=="auto"&&(res.display=ui.display),settings.collapseColor&&ui.backgroundColor&&ui.backgroundColor===ui.borderColor?res.color=ui.backgroundColor:(ui.backgroundColor&&(res.backgroundColor=ui.backgroundColor),ui.borderColor&&(res.borderColor=ui.borderColor)),ui.textColor&&(res.textColor=ui.textColor),ui.classNames.length&&(res.classNames=ui.classNames),Object.keys(def.extendedProps).length&&(settings.collapseExtendedProps?Object.assign(res,def.extendedProps):res.extendedProps=def.extendedProps),res}toJSON(){return this.toPlainObject()}}function eventApiToStore(eventApi){let def=eventApi._def,instance=eventApi._instance;return{defs:{[def.defId]:def},instances:instance?{[instance.instanceId]:instance}:{}}}function buildEventApis(eventStore,context,excludeInstance){let{defs,instances}=eventStore,eventApis=[],excludeInstanceId=excludeInstance?excludeInstance.instanceId:"";for(let id in instances){let instance=instances[id],def=defs[instance.defId];instance.instanceId!==excludeInstanceId&&eventApis.push(new EventImpl(context,def,instance))}return eventApis}function sliceEventStore(eventStore,eventUiBases,framingRange,nextDayThreshold){let inverseBgByGroupId={},inverseBgByDefId={},defByGroupId={},bgRanges=[],fgRanges=[],eventUis=compileEventUis(eventStore.defs,eventUiBases);for(let defId in eventStore.defs){let def=eventStore.defs[defId];eventUis[def.defId].display==="inverse-background"&&(def.groupId?(inverseBgByGroupId[def.groupId]=[],defByGroupId[def.groupId]||(defByGroupId[def.groupId]=def)):inverseBgByDefId[defId]=[])}for(let instanceId in eventStore.instances){let instance=eventStore.instances[instanceId],def=eventStore.defs[instance.defId],ui=eventUis[def.defId],origRange=instance.range,normalRange=!def.allDay&&nextDayThreshold?computeVisibleDayRange(origRange,nextDayThreshold):origRange,slicedRange=intersectRanges(normalRange,framingRange);slicedRange&&(ui.display==="inverse-background"?def.groupId?inverseBgByGroupId[def.groupId].push(slicedRange):inverseBgByDefId[instance.defId].push(slicedRange):ui.display!=="none"&&(ui.display==="background"?bgRanges:fgRanges).push({def,ui,instance,range:slicedRange,isStart:normalRange.start&&normalRange.start.valueOf()===slicedRange.start.valueOf(),isEnd:normalRange.end&&normalRange.end.valueOf()===slicedRange.end.valueOf()}))}for(let groupId in inverseBgByGroupId){let ranges=inverseBgByGroupId[groupId],invertedRanges=invertRanges(ranges,framingRange);for(let invertedRange of invertedRanges){let def=defByGroupId[groupId],ui=eventUis[def.defId];bgRanges.push({def,ui,instance:null,range:invertedRange,isStart:!1,isEnd:!1})}}for(let defId in inverseBgByDefId){let ranges=inverseBgByDefId[defId],invertedRanges=invertRanges(ranges,framingRange);for(let invertedRange of invertedRanges)bgRanges.push({def:eventStore.defs[defId],ui:eventUis[defId],instance:null,range:invertedRange,isStart:!1,isEnd:!1})}return{bg:bgRanges,fg:fgRanges}}function hasBgRendering(def){return def.ui.display==="background"||def.ui.display==="inverse-background"}function setElSeg(el,seg){el.fcSeg=seg}function getElSeg(el){return el.fcSeg||el.parentNode.fcSeg||null}function compileEventUis(eventDefs,eventUiBases){return mapHash(eventDefs,eventDef=>compileEventUi(eventDef,eventUiBases))}function compileEventUi(eventDef,eventUiBases){let uis=[];return eventUiBases[""]&&uis.push(eventUiBases[""]),eventUiBases[eventDef.defId]&&uis.push(eventUiBases[eventDef.defId]),uis.push(eventDef.ui),combineEventUis(uis)}function sortEventSegs(segs,eventOrderSpecs){let objs=segs.map(buildSegCompareObj);return objs.sort((obj0,obj1)=>compareByFieldSpecs(obj0,obj1,eventOrderSpecs)),objs.map(c2=>c2._seg)}function buildSegCompareObj(seg){let{eventRange}=seg,eventDef=eventRange.def,range=eventRange.instance?eventRange.instance.range:eventRange.range,start=range.start?range.start.valueOf():0,end=range.end?range.end.valueOf():0;return Object.assign(Object.assign(Object.assign({},eventDef.extendedProps),eventDef),{id:eventDef.publicId,start,end,duration:end-start,allDay:Number(eventDef.allDay),_seg:seg})}function computeSegDraggable(seg,context){let{pluginHooks}=context,transformers=pluginHooks.isDraggableTransformers,{def,ui}=seg.eventRange,val=ui.startEditable;for(let transformer of transformers)val=transformer(val,def,ui,context);return val}function computeSegStartResizable(seg,context){return seg.isStart&&seg.eventRange.ui.durationEditable&&context.options.eventResizableFromStart}function computeSegEndResizable(seg,context){return seg.isEnd&&seg.eventRange.ui.durationEditable}function buildSegTimeText(seg,timeFormat,context,defaultDisplayEventTime,defaultDisplayEventEnd,startOverride,endOverride){let{dateEnv,options}=context,{displayEventTime,displayEventEnd}=options,eventDef=seg.eventRange.def,eventInstance=seg.eventRange.instance;displayEventTime==null&&(displayEventTime=defaultDisplayEventTime!==!1),displayEventEnd==null&&(displayEventEnd=defaultDisplayEventEnd!==!1);let wholeEventStart=eventInstance.range.start,wholeEventEnd=eventInstance.range.end,segStart=startOverride||seg.start||seg.eventRange.range.start,segEnd=endOverride||seg.end||seg.eventRange.range.end,isStartDay=startOfDay(wholeEventStart).valueOf()===startOfDay(segStart).valueOf(),isEndDay=startOfDay(addMs(wholeEventEnd,-1)).valueOf()===startOfDay(addMs(segEnd,-1)).valueOf();
1return displayEventTime&&!eventDef.allDay&&(isStartDay||isEndDay)?(segStart=isStartDay?wholeEventStart:segStart,segEnd=isEndDay?wholeEventEnd:segEnd,displayEventEnd&&eventDef.hasEnd?dateEnv.formatRange(segStart,segEnd,timeFormat,{forcedStartTzo:startOverride?null:eventInstance.forcedStartTzo,forcedEndTzo:endOverride?null:eventInstance.forcedEndTzo}):dateEnv.format(segStart,timeFormat,{forcedTzo:startOverride?null:eventInstance.forcedStartTzo})):""}function getSegMeta(seg,todayRange,nowDate){let segRange=seg.eventRange.range;return{isPast:segRange.end<(nowDate||todayRange.start),isFuture:segRange.start>=(nowDate||todayRange.end),isToday:todayRange&&rangeContainsMarker(todayRange,segRange.start)}}function getEventClassNames(props){let classNames=["fc-event"];return props.isMirror&&classNames.push("fc-event-mirror"),props.isDraggable&&classNames.push("fc-event-draggable"),(props.isStartResizable||props.isEndResizable)&&classNames.push("fc-event-resizable"),props.isDragging&&classNames.push("fc-event-dragging"),props.isResizing&&classNames.push("fc-event-resizing"),props.isSelected&&classNames.push("fc-event-selected"),props.isStart&&classNames.push("fc-event-start"),props.isEnd&&classNames.push("fc-event-end"),props.isPast&&classNames.push("fc-event-past"),props.isToday&&classNames.push("fc-event-today"),props.isFuture&&classNames.push("fc-event-future"),classNames}function buildEventRangeKey(eventRange){return eventRange.instance?eventRange.instance.instanceId:`${eventRange.def.defId}:${eventRange.range.start.toISOString()}`}function getSegAnchorAttrs(seg,context){let{def,instance}=seg.eventRange,{url}=def;if(url)return{href:url};let{emitter,options}=context,{eventInteractive}=options;return eventInteractive==null&&(eventInteractive=def.interactive,eventInteractive==null&&(eventInteractive=!!emitter.hasHandlers("eventClick"))),eventInteractive?createAriaKeyboardAttrs(ev=>{emitter.trigger("eventClick",{el:ev.target,event:new EventImpl(context,def,instance),jsEvent:ev,view:context.viewApi})}):{}}const STANDARD_PROPS={start:identity,end:identity,allDay:Boolean};function parseDateSpan(raw,dateEnv,defaultDuration){let span=parseOpenDateSpan(raw,dateEnv),{range}=span;if(!range.start)return null;if(!range.end){if(defaultDuration==null)return null;range.end=dateEnv.add(range.start,defaultDuration)}return span}function parseOpenDateSpan(raw,dateEnv){let{refined:standardProps,extra}=refineProps(raw,STANDARD_PROPS),startMeta=standardProps.start?dateEnv.createMarkerMeta(standardProps.start):null,endMeta=standardProps.end?dateEnv.createMarkerMeta(standardProps.end):null,{allDay}=standardProps;return allDay==null&&(allDay=startMeta&&startMeta.isTimeUnspecified&&(!endMeta||endMeta.isTimeUnspecified)),Object.assign({range:{start:startMeta?startMeta.marker:null,end:endMeta?endMeta.marker:null},allDay},extra)}function buildDateSpanApi(span,dateEnv){return Object.assign(Object.assign({},buildRangeApi(span.range,dateEnv,span.allDay)),{allDay:span.allDay})}function buildRangeApiWithTimeZone(range,dateEnv,omitTime){return Object.assign(Object.assign({},buildRangeApi(range,dateEnv,omitTime)),{timeZone:dateEnv.timeZone})}function buildRangeApi(range,dateEnv,omitTime){return{start:dateEnv.toDate(range.start),end:dateEnv.toDate(range.end),startStr:dateEnv.formatIso(range.start,{omitTime}),endStr:dateEnv.formatIso(range.end,{omitTime})}}function fabricateEventRange(dateSpan,eventUiBases,context){let res=refineEventDef({editable:!1},context),def=parseEventDef(res.refined,res.extra,"",dateSpan.allDay,!0,context);return{def,ui:compileEventUi(def,eventUiBases),instance:createEventInstance(def.defId,dateSpan.range),range:dateSpan.range,isStart:!0,isEnd:!0}}function unpromisify(func,normalizedSuccessCallback,normalizedFailureCallback){let isResolved=!1,wrappedSuccess=function(res2){isResolved||(isResolved=!0,normalizedSuccessCallback(res2))},wrappedFailure=function(error){isResolved||(isResolved=!0,normalizedFailureCallback(error))},res=func(wrappedSuccess,wrappedFailure);res&&typeof res.then=="function"&&res.then(wrappedSuccess,wrappedFailure)}
1class JsonRequestError extends Error{constructor(message,response){super(message),this.response=response}}function requestJson(method,url,params){method=method.toUpperCase();const fetchOptions={method};return method==="GET"?url+=(url.indexOf("?")===-1?"?":"&")+new URLSearchParams(params):(fetchOptions.body=new URLSearchParams(params),fetchOptions.headers={"Content-Type":"application/x-www-form-urlencoded"}),fetch(url,fetchOptions).then(fetchRes=>{if(fetchRes.ok)return fetchRes.json().then(parsedResponse=>[parsedResponse,fetchRes],()=>{throw new JsonRequestError("Failure parsing JSON",fetchRes)});throw new JsonRequestError("Request failed",fetchRes)})}let canVGrowWithinCell;function getCanVGrowWithinCell(){return canVGrowWithinCell==null&&(canVGrowWithinCell=computeCanVGrowWithinCell()),canVGrowWithinCell}function computeCanVGrowWithinCell(){if(typeof document>"u")return!0;let el=document.createElement("div");el.style.position="absolute",el.style.top="0px",el.style.left="0px",el.innerHTML="<table><tr><td><div></div></td></tr></table>",el.querySelector("table").style.height="100px",el.querySelector("div").style.height="100%",document.body.appendChild(el);let possible=el.querySelector("div").offsetHeight>0;return document.body.removeChild(el),possible}class CalendarRoot extends BaseComponent{constructor(){super(...arguments),this.state={forPrint:!1},this.handleBeforePrint=()=>{this.setState({forPrint:!0})},this.handleAfterPrint=()=>{this.setState({forPrint:!1})}}render(){let{props}=this,{options}=props,{forPrint}=this.state,isHeightAuto=forPrint||options.height==="auto"||options.contentHeight==="auto",height=!isHeightAuto&&options.height!=null?options.height:"",classNames=["fc",forPrint?"fc-media-print":"fc-media-screen",`fc-direction-${options.direction}`,props.theme.getClass("root")];return getCanVGrowWithinCell()||classNames.push("fc-liquid-hack"),props.children(classNames,height,isHeightAuto,forPrint)}componentDidMount(){let{emitter}=this.props;emitter.on("_beforeprint",this.handleBeforePrint),emitter.on("_afterprint",this.handleAfterPrint)}componentWillUnmount(){let{emitter}=this.props;emitter.off("_beforeprint",this.handleBeforePrint),emitter.off("_afterprint",this.handleAfterPrint)}}class Interaction{constructor(settings){this.component=settings.component,this.isHitComboAllowed=settings.isHitComboAllowed||null}destroy(){}}function parseInteractionSettings(component,input){return{component,el:input.el,useEventCenter:input.useEventCenter!=null?input.useEventCenter:!0,isHitComboAllowed:input.isHitComboAllowed||null}}const interactionSettingsStore={};class CalendarImpl{getCurrentData(){return this.currentDataManager.getCurrentData()}dispatch(action){this.currentDataManager.dispatch(action)}get view(){return this.getCurrentData().viewApi}batchRendering(callback){callback()}updateSize(){this.trigger("_resize",!0)}setOption(name,val){this.dispatch({type:"SET_OPTION",optionName:name,rawOptionValue:val})}getOption(name){return this.currentDataManager.currentCalendarOptionsInput[name]}getAvailableLocaleCodes(){return Object.keys(this.getCurrentData().availableRawLocales)}on(handlerName,handler){let{currentDataManager}=this;currentDataManager.currentCalendarOptionsRefiners[handlerName]?currentDataManager.emitter.on(handlerName,handler):console.warn(`Unknown listener name '${handlerName}'`)}off(handlerName,handler){this.currentDataManager.emitter.off(handlerName,handler)}trigger(handlerName,...args){this.currentDataManager.emitter.trigger(handlerName,...args)}changeView(viewType,dateOrRange){this.batchRendering(()=>{if(this.unselect(),dateOrRange)if(dateOrRange.start&&dateOrRange.end)this.dispatch({type:"CHANGE_VIEW_TYPE",viewType}),this.dispatch({type:"SET_OPTION",optionName:"visibleRange",rawOptionValue:dateOrRange});else{let{dateEnv}=this.getCurrentData();this.dispatch({type:"CHANGE_VIEW_TYPE",viewType,dateMarker:dateEnv.createMarker(dateOrRange)})}else this.dispatch({type:"CHANGE_VIEW_TYPE",viewType})})}zoomTo(dateMarker,viewType){let state=this.getCurrentData(),spec;viewType=viewType||"day",spec=state.viewSpecs[viewType]||this.getUnitViewSpec(viewType),this.unselect(),spec?this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:spec.type,dateMarker}):this.dispatch({type:"CHANGE_DATE",dateMarker})}getUnitViewSpec(unit){let{viewSpecs,toolbarConfig}=this.getCurrentData(),viewTypes=[].concat(toolbarConfig.header?toolbarConfig.header.viewsWithButtons:[],toolbarConfig.footer?toolbarConfig.footer.viewsWithButtons:[]),i2,spec;
vendor: 4,547 bytes, line 1
1for(let viewType in viewSpecs)viewTypes.push(viewType);for(i2=0;i2<viewTypes.length;i2+=1)if(spec=viewSpecs[viewTypes[i2]],spec&&spec.singleUnit===unit)return spec;return null}prev(){this.unselect(),this.dispatch({type:"PREV"})}next(){this.unselect(),this.dispatch({type:"NEXT"})}prevYear(){let state=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:state.dateEnv.addYears(state.currentDate,-1)})}nextYear(){let state=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:state.dateEnv.addYears(state.currentDate,1)})}today(){let state=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:getNow(state.calendarOptions.now,state.dateEnv)})}gotoDate(zonedDateInput){let state=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:state.dateEnv.createMarker(zonedDateInput)})}incrementDate(deltaInput){let state=this.getCurrentData(),delta=createDuration(deltaInput);delta&&(this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:state.dateEnv.add(state.currentDate,delta)}))}getDate(){let state=this.getCurrentData();return state.dateEnv.toDate(state.currentDate)}formatDate(d2,formatter){let{dateEnv}=this.getCurrentData();return dateEnv.format(dateEnv.createMarker(d2),createFormatter(formatter))}formatRange(d0,d1,settings){let{dateEnv}=this.getCurrentData();return dateEnv.formatRange(dateEnv.createMarker(d0),dateEnv.createMarker(d1),createFormatter(settings),settings)}formatIso(d2,omitTime){let{dateEnv}=this.getCurrentData();return dateEnv.formatIso(dateEnv.createMarker(d2),{omitTime})}select(dateOrObj,endDate){let selectionInput;endDate==null?dateOrObj.start!=null?selectionInput=dateOrObj:selectionInput={start:dateOrObj,end:null}:selectionInput={start:dateOrObj,end:endDate};let state=this.getCurrentData(),selection=parseDateSpan(selectionInput,state.dateEnv,createDuration({days:1}));selection&&(this.dispatch({type:"SELECT_DATES",selection}),triggerDateSelect(selection,null,state))}unselect(pev){let state=this.getCurrentData();state.dateSelection&&(this.dispatch({type:"UNSELECT_DATES"}),triggerDateUnselect(pev,state))}addEvent(eventInput,sourceInput){if(eventInput instanceof EventImpl){let def=eventInput._def,instance=eventInput._instance;return this.getCurrentData().eventStore.defs[def.defId]||(this.dispatch({type:"ADD_EVENTS",eventStore:eventTupleToStore({def,instance})}),this.triggerEventAdd(eventInput)),eventInput}let state=this.getCurrentData(),eventSource;if(sourceInput instanceof EventSourceImpl)eventSource=sourceInput.internalEventSource;else if(typeof sourceInput=="boolean")sourceInput&&([eventSource]=hashValuesToArray(state.eventSources));else if(sourceInput!=null){let sourceApi=this.getEventSourceById(sourceInput);if(!sourceApi)return console.warn(`Could not find an event source with ID "${sourceInput}"`),null;eventSource=sourceApi.internalEventSource}let tuple=parseEvent(eventInput,eventSource,state,!1);if(tuple){let newEventApi=new EventImpl(state,tuple.def,tuple.def.recurringDef?null:tuple.instance);return this.dispatch({type:"ADD_EVENTS",eventStore:eventTupleToStore(tuple)}),this.triggerEventAdd(newEventApi),newEventApi}return null}triggerEventAdd(eventApi){let{emitter}=this.getCurrentData();emitter.trigger("eventAdd",{event:eventApi,relatedEvents:[],revert:()=>{this.dispatch({type:"REMOVE_EVENTS",eventStore:eventApiToStore(eventApi)})}})}getEventById(id){let state=this.getCurrentData(),{defs,instances}=state.eventStore;id=String(id);for(let defId in defs){let def=defs[defId];if(def.publicId===id){if(def.recurringDef)return new EventImpl(state,def,null);for(let instanceId in instances){let instance=instances[instanceId];if(instance.defId===def.defId)return new EventImpl(state,def,instance)}}}return null}getEvents(){let currentData=this.getCurrentData();return buildEventApis(currentData.eventStore,currentData)}removeAllEvents(){this.dispatch({type:"REMOVE_ALL_EVENTS"})}getEventSources(){let state=this.getCurrentData(),sourceHash=state.eventSources,sourceApis=[];for(let internalId in sourceHash)sourceApis.push(new EventSourceImpl(state,sourceHash[internalId]));return sourceApis}getEventSourceById(id){let state=this.getCurrentData(),sourceHash=state.eventSources;id=String(id);for(let sourceId in sourceHash)if(sourceHash[sourceId].publicId===id)return new EventSourceImpl(state,sourceHash[sourceId]);return null}addEventSource(sourceInput){let state=this.getCurrentData();if(sourceInput instanceof EventSourceImpl)return state.eventSources[sourceIn
1put.internalEventSource.sourceId]||this.dispatch({type:"ADD_EVENT_SOURCES",sources:[sourceInput.internalEventSource]}),sourceInput;let eventSource=parseEventSource(sourceInput,state);return eventSource?(this.dispatch({type:"ADD_EVENT_SOURCES",sources:[eventSource]}),new EventSourceImpl(state,eventSource)):null}removeAllEventSources(){this.dispatch({type:"REMOVE_ALL_EVENT_SOURCES"})}refetchEvents(){this.dispatch({type:"FETCH_EVENT_SOURCES",isRefetch:!0})}scrollToTime(timeInput){let time=createDuration(timeInput);time&&this.trigger("_scrollRequest",{time})}}function intersectRects(rect1,rect2){let res={left:Math.max(rect1.left,rect2.left),right:Math.min(rect1.right,rect2.right),top:Math.max(rect1.top,rect2.top),bottom:Math.min(rect1.bottom,rect2.bottom)};return res.left<res.right&&res.top<res.bottom?res:!1}const EMPTY_EVENT_STORE=createEmptyEventStore();class Splitter{constructor(){this.getKeysForEventDefs=memoize(this._getKeysForEventDefs),this.splitDateSelection=memoize(this._splitDateSpan),this.splitEventStore=memoize(this._splitEventStore),this.splitIndividualUi=memoize(this._splitIndividualUi),this.splitEventDrag=memoize(this._splitInteraction),this.splitEventResize=memoize(this._splitInteraction),this.eventUiBuilders={}}splitProps(props){let keyInfos=this.getKeyInfo(props),defKeys=this.getKeysForEventDefs(props.eventStore),dateSelections=this.splitDateSelection(props.dateSelection),individualUi=this.splitIndividualUi(props.eventUiBases,defKeys),eventStores=this.splitEventStore(props.eventStore,defKeys),eventDrags=this.splitEventDrag(props.eventDrag),eventResizes=this.splitEventResize(props.eventResize),splitProps={};this.eventUiBuilders=mapHash(keyInfos,(info,key)=>this.eventUiBuilders[key]||memoize(buildEventUiForKey));for(let key in keyInfos){let keyInfo=keyInfos[key],eventStore=eventStores[key]||EMPTY_EVENT_STORE,buildEventUi=this.eventUiBuilders[key];splitProps[key]={businessHours:keyInfo.businessHours||props.businessHours,dateSelection:dateSelections[key]||null,eventStore,eventUiBases:buildEventUi(props.eventUiBases[""],keyInfo.ui,individualUi[key]),eventSelection:eventStore.instances[props.eventSelection]?props.eventSelection:"",eventDrag:eventDrags[key]||null,eventResize:eventResizes[key]||null}}return splitProps}_splitDateSpan(dateSpan){let dateSpans={};if(dateSpan){let keys=this.getKeysForDateSpan(dateSpan);for(let key of keys)dateSpans[key]=dateSpan}return dateSpans}_getKeysForEventDefs(eventStore){return mapHash(eventStore.defs,eventDef=>this.getKeysForEventDef(eventDef))}_splitEventStore(eventStore,defKeys){let{defs,instances}=eventStore,splitStores={};for(let defId in defs)for(let key of defKeys[defId])splitStores[key]||(splitStores[key]=createEmptyEventStore()),splitStores[key].defs[defId]=defs[defId];for(let instanceId in instances){let instance=instances[instanceId];for(let key of defKeys[instance.defId])splitStores[key]&&(splitStores[key].instances[instanceId]=instance)}return splitStores}_splitIndividualUi(eventUiBases,defKeys){let splitHashes={};for(let defId in eventUiBases)if(defId)for(let key of defKeys[defId])splitHashes[key]||(splitHashes[key]={}),splitHashes[key][defId]=eventUiBases[defId];return splitHashes}_splitInteraction(interaction){let splitStates={};if(interaction){let affectedStores=this._splitEventStore(interaction.affectedEvents,this._getKeysForEventDefs(interaction.affectedEvents)),mutatedKeysByDefId=this._getKeysForEventDefs(interaction.mutatedEvents),mutatedStores=this._splitEventStore(interaction.mutatedEvents,mutatedKeysByDefId),populate=key=>{splitStates[key]||(splitStates[key]={affectedEvents:affectedStores[key]||EMPTY_EVENT_STORE,mutatedEvents:mutatedStores[key]||EMPTY_EVENT_STORE,isEvent:interaction.isEvent})};for(let key in affectedStores)populate(key);for(let key in mutatedStores)populate(key)}return splitStates}}function buildEventUiForKey(allUi,eventUiForKey,individualUi){let baseParts=[];allUi&&baseParts.push(allUi),eventUiForKey&&baseParts.push(eventUiForKey);let stuff={"":combineEventUis(baseParts)};return individualUi&&Object.assign(stuff,individualUi),stuff}function getDateMeta(date,todayRange,nowDate,dateProfile){return{dow:date.getUTCDay(),isDisabled:!!(dateProfile&&!rangeContainsMarker(dateProfile.activeRange,date)),isOther:!!(dateProfile&&!rangeContainsMarker(dateProfile.currentRange,date)),isToday:!!(todayRange&&rangeContainsMarker(todayRange,date)),isPast:!!(nowDate?date<nowDate:todayRange&&date<todayRange.start),isFuture:!!(nowDate?date>nowDate:todayRange&&date>=todayRange.end)}}function getDayClassNames(meta,theme){let classNames=["fc-day",`fc-day-${DAY_IDS[meta.dow]}`];return meta.isDisabled?classNames.push("fc-day-disabled"):(meta.isToday&&(classNames.push("fc-day-today"),classNames.push(theme.getClass("today"))),meta.isPast&&classNames.push("fc-day-past"),meta.isFuture&&classNames.push("fc-day-future"),meta.isOther&&classNames.push("fc-day-other")),classNames}const DAY_FORMAT=createFormatter({year:"numeric",month:"long",day:"numeric"}),WEEK_FORMAT=createFormatter({week:"long"});function buildNavLinkAttrs(context,dateMarker,viewType="day",isTabbable=!0){const{dateEnv,options,calendarApi}=context;let dateStr=dateEnv.format(dateMarker,viewType==="week"?WEEK_FORMAT:DAY_FORMAT);if(options.navLinks){let zonedDate=dateEnv.toDate(dateMarker);const handleInteraction=ev=>{let customAction=viewType==="day"?options.navLinkDayClick:viewType==="week"?options.navLinkWeekClick:null;typeof customAction=="function"?customAction.call(calendarApi,dateEnv.toDate(dateMarker),ev):(typeof customAction=="str
1ing"&&(viewType=customAction),calendarApi.zoomTo(dateMarker,viewType))};return Object.assign({title:formatWithOrdinals(options.navLinkHint,[dateStr,zonedDate],dateStr),"data-navlink":""},isTabbable?createAriaClickAttrs(handleInteraction):{onClick:handleInteraction})}return{"aria-label":dateStr}}let _scrollbarWidths;function getScrollbarWidths(){return _scrollbarWidths||(_scrollbarWidths=computeScrollbarWidths()),_scrollbarWidths}function computeScrollbarWidths(){let el=document.createElement("div");el.style.overflow="scroll",el.style.position="absolute",el.style.top="-9999px",el.style.left="-9999px",document.body.appendChild(el);let res=computeScrollbarWidthsForEl(el);return document.body.removeChild(el),res}function computeScrollbarWidthsForEl(el){return{x:el.offsetHeight-el.clientHeight,y:el.offsetWidth-el.clientWidth}}function computeClippedClientRect(el){let clippingParents=getClippingParents(el),rect=el.getBoundingClientRect();for(let clippingParent of clippingParents){let intersection=intersectRects(rect,clippingParent.getBoundingClientRect());if(intersection)rect=intersection;else return null}return rect}function getClippingParents(el){let parents=[];for(;el instanceof HTMLElement;){let computedStyle=window.getComputedStyle(el);if(computedStyle.position==="fixed")break;/(auto|scroll)/.test(computedStyle.overflow+computedStyle.overflowY+computedStyle.overflowX)&&parents.push(el),el=el.parentNode}return parents}class PositionCache{constructor(originEl,els,isHorizontal,isVertical){this.els=els;let originClientRect=this.originClientRect=originEl.getBoundingClientRect();isHorizontal&&this.buildElHorizontals(originClientRect.left),isVertical&&this.buildElVerticals(originClientRect.top)}buildElHorizontals(originClientLeft){let lefts=[],rights=[];for(let el of this.els){let rect=el.getBoundingClientRect();lefts.push(rect.left-originClientLeft),rights.push(rect.right-originClientLeft)}this.lefts=lefts,this.rights=rights}buildElVerticals(originClientTop){let tops=[],bottoms=[];for(let el of this.els){let rect=el.getBoundingClientRect();tops.push(rect.top-originClientTop),bottoms.push(rect.bottom-originClientTop)}this.tops=tops,this.bottoms=bottoms}leftToIndex(leftPosition){let{lefts,rights}=this,len=lefts.length,i2;for(i2=0;i2<len;i2+=1)if(leftPosition>=lefts[i2]&&leftPosition<rights[i2])return i2}topToIndex(topPosition){let{tops,bottoms}=this,len=tops.length,i2;for(i2=0;i2<len;i2+=1)if(topPosition>=tops[i2]&&topPosition<bottoms[i2])return i2}getWidth(leftIndex){return this.rights[leftIndex]-this.lefts[leftIndex]}getHeight(topIndex){return this.bottoms[topIndex]-this.tops[topIndex]}similarTo(otherCache){return similarNumArrays(this.tops||[],otherCache.tops||[])&&similarNumArrays(this.bottoms||[],otherCache.bottoms||[])&&similarNumArrays(this.lefts||[],otherCache.lefts||[])&&similarNumArrays(this.rights||[],otherCache.rights||[])}}function similarNumArrays(a2,b2){const len=a2.length;if(len!==b2.length)return!1;for(let i2=0;i2<len;i2++)if(Math.round(a2[i2])!==Math.round(b2[i2]))return!1;return!0}class DateComponent extends BaseComponent{constructor(){super(...arguments),this.uid=guid()}prepareHits(){}queryHit(positionLeft,positionTop,elWidth,elHeight){return null}isValidSegDownEl(el){return!this.props.eventDrag&&!this.props.eventResize&&!elementClosest(el,".fc-event-mirror")}isValidDateDownEl(el){return!elementClosest(el,".fc-event:not(.fc-bg-event)")&&!elementClosest(el,".fc-more-link")&&!elementClosest(el,"a[data-navlink]")&&!elementClosest(el,".fc-popover")}}class SegHierarchy{constructor(getEntryThickness=entry=>entry.thickness){this.getEntryThickness=getEntryThickness,this.strictOrder=!1,this.allowReslicing=!1,this.maxCoord=-1,this.maxStackCnt=-1,this.levelCoords=[],this.entriesByLevel=[],this.stackCnts={}}addSegs(inputs){let hiddenEntries=[];for(let input of inputs)this.insertEntry(input,hiddenEntries);return hiddenEntries}insertEntry(entry,hiddenEntries){let insertion=this.findInsertion(entry);return this.isInsertionValid(insertion,entry)?(this.insertEntryAt(entry,insertion),1):this.handleInvalidInsertion(insertion,entry,hiddenEntries)}isInsertionValid(insertion,entry){return(this.maxCoord===-1||insertion.levelCoord+this.getEntryThickness(entry)<=this.maxCoord)&&(this.maxStackCnt===-1||insertion.stackCnt<this.maxStackCnt)}handleInvalidInsertion(insertion,entry,hiddenEntries){return this.allowReslicing&&insertion.touchingEntry?this.splitEntry(entry,insertion.touchingEntry,hiddenEntries):(hiddenEntries.push(entry),0)}splitEntry(entry,barrier,hiddenEntries){let partCnt=0,splitHiddenEntries=[],entrySpan=entry.span,barrierSpan=barrier.span;return entrySpan.start<barrierSpan.start&&(partCnt+=this.insertEntry({index:entry.index,thickness:entry.thickness,span:{start:entrySpan.start,end:barrierSpan.start}},splitHiddenEntries)),entrySpan.end>barrierSpan.end&&(partCnt+=this.insertEntry({index:entry.index,thickness:entry.thickness,span:{start:barrierSpan.end,end:entrySpan.end}},splitHiddenEntries)),partCnt?(hiddenEntries.push({index:entry.index,thickness:entry.thickness,span:intersectSpans(barrierSpan,entrySpan)},...splitHiddenEntries),partCnt):(hiddenEntries.push(entry),0)}insertEntryAt(entry,insertion){let{entriesByLevel,levelCoords}=this;insertion.lateral===-1?(insertAt(levelCoords,insertion.level,insertion.levelCoord),insertAt(entriesByLevel,insertion.level,[entry])):insertAt(entriesByLevel[insertion.level],insertion.lateral,entry),this.stackCnts[buildEntryKey(entry)]=insertion.stackCnt}findInsertion(newEntry){let{levelCoords,entriesByLevel,strictOrder,stackCnts}=this,levelCnt=levelCoords.length,candidateCoord=0,touchingLevel=-1,touchingLateral=-1,touchingEntry=null,
1stackCnt=0;for(let trackingLevel=0;trackingLevel<levelCnt;trackingLevel+=1){let trackingCoord=levelCoords[trackingLevel];if(!strictOrder&&trackingCoord>=candidateCoord+this.getEntryThickness(newEntry))break;let trackingEntries=entriesByLevel[trackingLevel],trackingEntry,searchRes=binarySearch(trackingEntries,newEntry.span.start,getEntrySpanEnd),lateralIndex=searchRes[0]+searchRes[1];for(;(trackingEntry=trackingEntries[lateralIndex])&&trackingEntry.span.start<newEntry.span.end;){let trackingEntryBottom=trackingCoord+this.getEntryThickness(trackingEntry);trackingEntryBottom>candidateCoord&&(candidateCoord=trackingEntryBottom,touchingEntry=trackingEntry,touchingLevel=trackingLevel,touchingLateral=lateralIndex),trackingEntryBottom===candidateCoord&&(stackCnt=Math.max(stackCnt,stackCnts[buildEntryKey(trackingEntry)]+1)),lateralIndex+=1}}let destLevel=0;if(touchingEntry)for(destLevel=touchingLevel+1;destLevel<levelCnt&&levelCoords[destLevel]<candidateCoord;)destLevel+=1;let destLateral=-1;return destLevel<levelCnt&&levelCoords[destLevel]===candidateCoord&&(destLateral=binarySearch(entriesByLevel[destLevel],newEntry.span.end,getEntrySpanEnd)[0]),{touchingLevel,touchingLateral,touchingEntry,stackCnt,levelCoord:candidateCoord,level:destLevel,lateral:destLateral}}toRects(){let{entriesByLevel,levelCoords}=this,levelCnt=entriesByLevel.length,rects=[];for(let level=0;level<levelCnt;level+=1){let entries=entriesByLevel[level],levelCoord=levelCoords[level];for(let entry of entries)rects.push(Object.assign(Object.assign({},entry),{thickness:this.getEntryThickness(entry),levelCoord}))}return rects}}function getEntrySpanEnd(entry){return entry.span.end}function buildEntryKey(entry){return entry.index+":"+entry.span.start}function groupIntersectingEntries(entries){let merges=[];for(let entry of entries){let filteredMerges=[],hungryMerge={span:entry.span,entries:[entry]};for(let merge of merges)intersectSpans(merge.span,hungryMerge.span)?hungryMerge={entries:merge.entries.concat(hungryMerge.entries),span:joinSpans(merge.span,hungryMerge.span)}:filteredMerges.push(merge);filteredMerges.push(hungryMerge),merges=filteredMerges}return merges}function joinSpans(span0,span1){return{start:Math.min(span0.start,span1.start),end:Math.max(span0.end,span1.end)}}function intersectSpans(span0,span1){let start=Math.max(span0.start,span1.start),end=Math.min(span0.end,span1.end);return start<end?{start,end}:null}function insertAt(arr,index2,item){arr.splice(index2,0,item)}function binarySearch(a2,searchVal,getItemVal){let startIndex=0,endIndex=a2.length;if(!endIndex||searchVal<getItemVal(a2[startIndex]))return[0,0];if(searchVal>getItemVal(a2[endIndex-1]))return[endIndex,0];for(;startIndex<endIndex;){let middleIndex=Math.floor(startIndex+(endIndex-startIndex)/2),middleVal=getItemVal(a2[middleIndex]);if(searchVal<middleVal)endIndex=middleIndex;else if(searchVal>middleVal)startIndex=middleIndex+1;else return[middleIndex,1]}return[startIndex,0]}function computeFallbackHeaderFormat(datesRepDistinctDays,dayCnt){return!datesRepDistinctDays||dayCnt>10?createFormatter({weekday:"short"}):dayCnt>1?createFormatter({weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}):createFormatter({weekday:"long"})}const CLASS_NAME="fc-col-header-cell";function renderInner$1(renderProps){return renderProps.text}class TableDateCell extends BaseComponent{render(){let{dateEnv,options,theme,viewApi}=this.context,{props}=this,{date,dateProfile}=props,dayMeta=getDateMeta(date,props.todayRange,null,dateProfile),classNames=[CLASS_NAME].concat(getDayClassNames(dayMeta,theme)),text=dateEnv.format(date,props.dayHeaderFormat),navLinkAttrs=!dayMeta.isDisabled&&props.colCnt>1?buildNavLinkAttrs(this.context,date):{},renderProps=Object.assign(Object.assign(Object.assign({date:dateEnv.toDate(date),view:viewApi},props.extraRenderProps),{text}),dayMeta);return y(ContentContainer,{elTag:"th",elClasses:classNames,elAttrs:Object.assign({role:"columnheader",colSpan:props.colSpan,"data-date":dayMeta.isDisabled?void 0:formatDayString(date)},props.extraDataAttrs),renderProps,generatorName:"dayHeaderContent",customGenerator:options.dayHeaderContent,defaultGenerator:renderInner$1,classNameGenerator:options.dayHeaderClassNames,didMount:options.dayHeaderDidMount,willUnmount:options.dayHeaderWillUnmount},InnerContainer=>y("div",{className:"fc-scrollgrid-sync-inner"},!dayMeta.isDisabled&&y(InnerContainer,{elTag:"a",elAttrs:navLinkAttrs,elClasses:["fc-col-header-cell-cushion",props.isSticky&&"fc-sticky"]})))}}const WEEKDAY_FORMAT=createFormatter({weekday:"long"});class TableDowCell extends BaseComponent{render(){let{props}=this,{dateEnv,theme,viewApi,options}=this.context,date=addDays(new Date(2592e5),props.dow),dateMeta={dow:props.dow,isDisabled:!1,isFuture:!1,isPast:!1,isToday:!1,isOther:!1},text=dateEnv.format(date,props.dayHeaderFormat),renderProps=Object.assign(Object.assign(Object.assign(Object.assign({date},dateMeta),{view:viewApi}),props.extraRenderProps),{text});return y(ContentContainer,{elTag:"th",elClasses:[CLASS_NAME,...getDayClassNames(dateMeta,theme),...props.extraClassNames||[]],elAttrs:Object.assign({role:"columnheader",colSpan:props.colSpan},props.extraDataAttrs),renderProps,generatorName:"dayHeaderContent",customGenerator:options.dayHeaderContent,defaultGenerator:renderInner$1,classNameGenerator:options.dayHeaderClassNames,didMount:options.dayHeaderDidMount,willUnmount:options.dayHeaderWillUnmount},InnerContent=>y("div",{className:"fc-scrollgrid-sync-inner"},y(InnerContent,{elTag:"a",elClasses:["fc-col-header-cell-cushion",props.isSticky&&"fc-sticky"],elAttrs:{"aria-label":dateEnv.format(date,WEEKDAY_FORMAT)}})))}}class NowTimer extends x$1{constructor(props,context){super(props,context),this.initialNowDate=getNow(context.options.now,context.dateEnv),this.initialNowQueriedMs=new Date().valueOf(),this.state=this.computeTiming().currentState}render(){let{props,state}=this;return props.children(state.nowDate,state.todayRange)}componentDidMount(){this.setTimeout()}componentDidUpdate(prevProps){prevProps.unit!==this.props.unit&&(this.clearTimeout(),this.setTimeout())}componentWillUnmount(){this.clearTimeout()}computeTiming(){let{props,context}
vendor: 12,325 bytes, line 1
1=this,unroundedNow=addMs(this.initialNowDate,new Date().valueOf()-this.initialNowQueriedMs),currentUnitStart=context.dateEnv.startOf(unroundedNow,props.unit),nextUnitStart=context.dateEnv.add(currentUnitStart,createDuration(1,props.unit)),waitMs=nextUnitStart.valueOf()-unroundedNow.valueOf();return waitMs=Math.min(1e3*60*60*24,waitMs),{currentState:{nowDate:currentUnitStart,todayRange:buildDayRange(currentUnitStart)},nextState:{nowDate:nextUnitStart,todayRange:buildDayRange(nextUnitStart)},waitMs}}setTimeout(){let{nextState,waitMs}=this.computeTiming();this.timeoutId=setTimeout(()=>{this.setState(nextState,()=>{this.setTimeout()})},waitMs)}clearTimeout(){this.timeoutId&&clearTimeout(this.timeoutId)}}NowTimer.contextType=ViewContextType;function buildDayRange(date){let start=startOfDay(date),end=addDays(start,1);return{start,end}}class DayHeader extends BaseComponent{constructor(){super(...arguments),this.createDayHeaderFormatter=memoize(createDayHeaderFormatter)}render(){let{context}=this,{dates,dateProfile,datesRepDistinctDays,renderIntro}=this.props,dayHeaderFormat=this.createDayHeaderFormatter(context.options.dayHeaderFormat,datesRepDistinctDays,dates.length);return y(NowTimer,{unit:"day"},(nowDate,todayRange)=>y("tr",{role:"row"},renderIntro&&renderIntro("day"),dates.map(date=>datesRepDistinctDays?y(TableDateCell,{key:date.toISOString(),date,dateProfile,todayRange,colCnt:dates.length,dayHeaderFormat}):y(TableDowCell,{key:date.getUTCDay(),dow:date.getUTCDay(),dayHeaderFormat}))))}}function createDayHeaderFormatter(explicitFormat,datesRepDistinctDays,dateCnt){return explicitFormat||computeFallbackHeaderFormat(datesRepDistinctDays,dateCnt)}class DaySeriesModel{constructor(range,dateProfileGenerator){let date=range.start,{end}=range,indices=[],dates=[],dayIndex=-1;for(;date<end;)dateProfileGenerator.isHiddenDay(date)?indices.push(dayIndex+.5):(dayIndex+=1,indices.push(dayIndex),dates.push(date)),date=addDays(date,1);this.dates=dates,this.indices=indices,this.cnt=dates.length}sliceRange(range){let firstIndex=this.getDateDayIndex(range.start),lastIndex=this.getDateDayIndex(addDays(range.end,-1)),clippedFirstIndex=Math.max(0,firstIndex),clippedLastIndex=Math.min(this.cnt-1,lastIndex);return clippedFirstIndex=Math.ceil(clippedFirstIndex),clippedLastIndex=Math.floor(clippedLastIndex),clippedFirstIndex<=clippedLastIndex?{firstIndex:clippedFirstIndex,lastIndex:clippedLastIndex,isStart:firstIndex===clippedFirstIndex,isEnd:lastIndex===clippedLastIndex}:null}getDateDayIndex(date){let{indices}=this,dayOffset=Math.floor(diffDays(this.dates[0],date));return dayOffset<0?indices[0]-1:dayOffset>=indices.length?indices[indices.length-1]+1:indices[dayOffset]}}class DayTableModel{constructor(daySeries,breakOnWeeks){let{dates}=daySeries,daysPerRow,firstDay,rowCnt;if(breakOnWeeks){for(firstDay=dates[0].getUTCDay(),daysPerRow=1;daysPerRow<dates.length&&dates[daysPerRow].getUTCDay()!==firstDay;daysPerRow+=1);rowCnt=Math.ceil(dates.length/daysPerRow)}else rowCnt=1,daysPerRow=dates.length;this.rowCnt=rowCnt,this.colCnt=daysPerRow,this.daySeries=daySeries,this.cells=this.buildCells(),this.headerDates=this.buildHeaderDates()}buildCells(){let rows=[];for(let row=0;row<this.rowCnt;row+=1){let cells=[];for(let col=0;col<this.colCnt;col+=1)cells.push(this.buildCell(row,col));rows.push(cells)}return rows}buildCell(row,col){let date=this.daySeries.dates[row*this.colCnt+col];return{key:date.toISOString(),date}}buildHeaderDates(){let dates=[];for(let col=0;col<this.colCnt;col+=1)dates.push(this.cells[0][col].date);return dates}sliceRange(range){let{colCnt}=this,seriesSeg=this.daySeries.sliceRange(range),segs=[];if(seriesSeg){let{firstIndex,lastIndex}=seriesSeg,index2=firstIndex;for(;index2<=lastIndex;){let row=Math.floor(index2/colCnt),nextIndex=Math.min((row+1)*colCnt,lastIndex+1);segs.push({row,firstCol:index2%colCnt,lastCol:(nextIndex-1)%colCnt,isStart:seriesSeg.isStart&&index2===firstIndex,isEnd:seriesSeg.isEnd&&nextIndex-1===lastIndex}),index2=nextIndex}}return segs}}class Slicer{constructor(){this.sliceBusinessHours=memoize(this._sliceBusinessHours),this.sliceDateSelection=memoize(this._sliceDateSpan),this.sliceEventStore=memoize(this._sliceEventStore),this.sliceEventDrag=memoize(this._sliceInteraction),this.sliceEventResize=memoize(this._sliceInteraction),this.forceDayIfListItem=!1}sliceProps(props,dateProfile,nextDayThreshold,context,...extraArgs){let{eventUiBases}=props,eventSegs=this.sliceEventStore(props.eventStore,eventUiBases,dateProfile,nextDayThreshold,...extraArgs);return{dateSelectionSegs:this.sliceDateSelection(props.dateSelection,dateProfile,nextDayThreshold,eventUiBases,context,...extraArgs),businessHourSegs:this.sliceBusinessHours(props.businessHours,dateProfile,nextDayThreshold,context,...extraArgs),fgEventSegs:eventSegs.fg,bgEventSegs:eventSegs.bg,eventDrag:this.sliceEventDrag(props.eventDrag,eventUiBases,dateProfile,nextDayThreshold,...extraArgs),eventResize:this.sliceEventResize(props.eventResize,eventUiBases,dateProfile,nextDayThreshold,...extraArgs),eventSelection:props.eventSelection}}sliceNowDate(date,dateProfile,nextDayThreshold,context,...extraArgs){return this._sliceDateSpan({range:{start:date,end:addMs(date,1)},allDay:!1},dateProfile,nextDayThreshold,{},context,...extraArgs)}_sliceBusinessHours(businessHours,dateProfile,nextDayThreshold,context,...extraArgs){return businessHours?this._sliceEventStore(expandRecurring(businessHours,computeActiveRange(dateProfile,!!nextDayThreshold),context),{},dateProfile,nextDayThreshold,...extraArgs).bg:[]}_sliceEventStore(eventStore,eventUiBases,dateProfile,nextDayThreshold,...extraArgs){if(eventStore){let rangeRes=sliceEventStore(eventStore,eventUiBases,computeActiveRange(dateProfile,!!nextDayThreshold),nextDayThreshold);return{bg:this.sliceEventRanges(rangeRes.bg,extraArgs),fg:this.sliceEventRanges(rangeRes.fg,extraArgs)}}return{bg:[],fg:[]}}_sliceInteraction(interaction,eventUiBases,dateProfile,nextDayThreshold,...extraArgs){if(!interaction)return null;let rangeRes=sliceEventStore(interaction.mutatedEvents,eventUiBases,computeActiveRange(dateProfile,!!nextDayThreshold),nextDayThreshold);return{segs:this.sliceEventRanges(rangeRes.fg,extraArgs),affectedInstances:interaction.affectedEvents.instances,isEvent:interaction.isEvent}}_sliceDateSpan(dateSpan,dateProfile,nextDayThreshold,eventUiBases,context,...extraArgs){if(!dateSpan)return[];let activeRange=computeActiveRange(dateProfile,!!nextDayThreshold),activeDateSpanRange=intersectRanges(dateSpan.range,activeRange);if(activeDateSpanRange){dateSpan=Object.assign(Object.assign({},dateSpan),{range:activeDateSpanRange});let eventRange=fabricateEventRange(dateSpan,eventUiBases,context),segs=this.sliceRange(dateSpan.range,...extraArgs);for(let seg of segs)seg.eventRange=eventRange;return segs}return[]}sliceEventRanges(eventRanges,extraArgs){let segs=[];for(let eventRange of eventRanges)segs.push(...this.sliceEventRange(eventRange,extraArgs));return segs}sliceEventRange(eventRange,extraArgs){let dateRange=eventRange.range;this.forceDayIfListItem&&eventRange.ui.display==="list-item"&&(dateRange={start:dateRange.start,end:addDays(dateRange.start,1)});let segs=this.sliceRange(dateRange,...extraArgs);for(let seg of segs)seg.eventRange=eventRange,seg.isStart=eventRange.isStart&&seg.isStart,seg.isEnd=eventRange.isEnd&&seg.isEnd;return segs}}function computeActiveRange(dateProfile,isComponentAllDay){let range=dateProfile.activeRange;return isComponentAllDay?range:{start:addMs(range.start,dateProfile.slotMinTime.milliseconds),end:addMs(range.end,dateProfile.slotMaxTime.milliseconds-864e5)}}const VISIBLE_HIDDEN_RE=/^(visible|hidden)$/;class Scroller extends BaseComponent{constructor(){super(...arguments),this.handleEl=el=>{this.el=el,setRef(this.props.elRef,el)}}render(){let{props}=this,{liquid,liquidIsAbsolute}=props,isAbsolute=liquid&&liquidIsAbsolute,className=["fc-scroller"];return liquid&&(liquidIsAbsolute?className.push("fc-scroller-liquid-absolute"):className.push("fc-scroller-liquid")),y("div",{ref:this.handleEl,className:className.join(" "),style:{overflowX:props.overflowX,overflowY:props.overflowY,left:isAbsolute&&-(props.overcomeLeft||0)||"",right:isAbsolute&&-(props.overcomeRight||0)||"",bottom:isAbsolute&&-(props.overcomeBottom||0)||"",marginLeft:!isAbsolute&&-(props.overcomeLeft||0)||"",marginRight:!isAbsolute&&-(props.overcomeRight||0)||"",marginBottom:!isAbsolute&&-(props.overcomeBottom||0)||"",maxHeight:props.maxHeight||""}},props.children)}needsXScrolling(){if(VISIBLE_HIDDEN_RE.test(this.props.overflowX))return!1;let{el}=this,realClientWidth=this.el.getBoundingClientRect().width-this.getYScrollbarWidth(),{children}=el;for(let i2=0;i2<children.length;i2+=1)if(children[i2].getBoundingClientRect().width>realClientWidth)return!0;return!1}needsYScrolling(){if(VISIBLE_HIDDEN_RE.test(this.props.overflowY))return!1;let{el}=this,realClientHeight=this.el.getBoundingClientRect().height-this.getXScrollbarWidth(),{children}=el;for(let i2=0;i2<children.length;i2+=1)if(children[i2].getBoundingClientRect().height>realClientHeight)return!0;return!1}getXScrollbarWidth(){return VISIBLE_HIDDEN_RE.test(this.props.overflowX)?0:this.el.offsetHeight-this.el.clientHeight}getYScrollbarWidth(){return VISIBLE_HIDDEN_RE.test(this.props.overflowY)?0:this.el.offsetWidth-this.el.clientWidth}}class RefMap{constructor(masterCallback){this.masterCallback=masterCallback,this.currentMap={},this.depths={},this.callbackMap={},this.handleValue=(val,key)=>{let{depths,currentMap}=this,removed=!1,added=!1;val!==null?(removed=key in currentMap,currentMap[key]=val,depths[key]=(depths[key]||0)+1,added=!0):(depths[key]-=1,depths[key]||(delete currentMap[key],delete this.callbackMap[key],removed=!0)),this.masterCallback&&(removed&&this.masterCallback(null,String(key)),added&&this.masterCallback(val,String(key)))}}createRef(key){let refCallback=this.callbackMap[key];return refCallback||(refCallback=this.callbackMap[key]=val=>{this.handleValue(val,String(key))}),refCallback}collect(startIndex,endIndex,step){return collectFromHash(this.currentMap,startIndex,endIndex,step)}getAll(){return hashValuesToArray(this.currentMap)}}function computeShrinkWidth(chunkEls){let shrinkCells=findElements(chunkEls,".fc-scrollgrid-shrink"),largestWidth=0;for(let shrinkCell of shrinkCells)largestWidth=Math.max(largestWidth,computeSmallestCellWidth(shrinkCell));return Math.ceil(largestWidth)}function getSectionHasLiquidHeight(props,sectionConfig){return props.liquid&&sectionConfig.liquid}function getAllowYScrolling(props,sectionConfig){return sectionConfig.maxHeight!=null||getSectionHasLiquidHeight(props,sectionConfig)}function renderChunkContent(sectionConfig,chunkConfig,arg,isHeader){let{expandRows}=arg;return typeof chunkConfig.content=="function"?chunkConfig.content(arg):y("table",{role:"presentation",className:[chunkConfig.tableClassName,sectionConfig.syncRowHeights?"fc-scrollgrid-sync-table":""].join(" "),style:{minWidth:arg.tableMinWidth,width:arg.clientWidth,height:expandRows?arg.clientHeight:""}},arg.tableColGroupNode,y(isHeader?"thead":"tbody",{role:"presentation"},typeof chunkConfig.rowContent=="function"?chunkConfig.rowContent(arg):chunkConfig.rowContent))}function isColPropsEqual(cols0,cols1){return isArraysEqual(cols0,cols1,isPropsEqual)}function renderMicroColGroup(cols,shrinkWidth){let colNodes=[];for(let colProps of cols){let span=colProps.span||1;for(let i2=0;i2<span;i2+=1)colNodes.push(y("col",{style:{width:colProps.width==="shrink"?sanitizeShrinkWidth(shrinkWidth):colProps.width||"",minWidth:colProps.minWidth||""}}))}return y("colgroup",{},...colNodes)}function sanitizeShrinkWidth(shrinkWidth){return shrinkWidth??4}function hasShrinkWidth(cols){for(let col of cols)if(col.width==="shrink")return!0;return!1}function getScrollGridClassNames(liquid,context){let classNames=["fc-scrollgrid",context.theme.getClass("table")];return liquid&&classNames.push("fc-scrollgrid-liquid"),classNames}function getSectionClassNames(sectionConfig,wholeTableVGrow){let classNames=["fc-scrollgrid-section",`fc-scrollgrid-section-${sectionConfig.type}`,sectionConfig.className];return wholeTableVGrow&&sectionConfig.liquid&&sectionConfig.maxHeight==null&&classNames.push("fc-scrollgrid-section-liquid"),sectionConfig.isSticky&&classNames.push("fc-scrollgrid-section-sticky"),classNames}
1function renderScrollShim(arg){return y("div",{className:"fc-scrollgrid-sticky-shim",style:{width:arg.clientWidth,minWidth:arg.tableMinWidth}})}function getStickyHeaderDates(options){let{stickyHeaderDates}=options;return(stickyHeaderDates==null||stickyHeaderDates==="auto")&&(stickyHeaderDates=options.height==="auto"||options.viewHeight==="auto"),stickyHeaderDates}function getStickyFooterScrollbar(options){let{stickyFooterScrollbar}=options;return(stickyFooterScrollbar==null||stickyFooterScrollbar==="auto")&&(stickyFooterScrollbar=options.height==="auto"||options.viewHeight==="auto"),stickyFooterScrollbar}class SimpleScrollGrid extends BaseComponent{constructor(){super(...arguments),this.processCols=memoize(a2=>a2,isColPropsEqual),this.renderMicroColGroup=memoize(renderMicroColGroup),this.scrollerRefs=new RefMap,this.scrollerElRefs=new RefMap(this._handleScrollerEl.bind(this)),this.state={shrinkWidth:null,forceYScrollbars:!1,scrollerClientWidths:{},scrollerClientHeights:{}},this.handleSizing=()=>{this.safeSetState(Object.assign({shrinkWidth:this.computeShrinkWidth()},this.computeScrollerDims()))}}render(){let{props,state,context}=this,sectionConfigs=props.sections||[],cols=this.processCols(props.cols),microColGroupNode=this.renderMicroColGroup(cols,state.shrinkWidth),classNames=getScrollGridClassNames(props.liquid,context);props.collapsibleWidth&&classNames.push("fc-scrollgrid-collapsible");let configCnt=sectionConfigs.length,configI=0,currentConfig,headSectionNodes=[],bodySectionNodes=[],footSectionNodes=[];for(;configI<configCnt&&(currentConfig=sectionConfigs[configI]).type==="header";)headSectionNodes.push(this.renderSection(currentConfig,microColGroupNode,!0)),configI+=1;for(;configI<configCnt&&(currentConfig=sectionConfigs[configI]).type==="body";)bodySectionNodes.push(this.renderSection(currentConfig,microColGroupNode,!1)),configI+=1;for(;configI<configCnt&&(currentConfig=sectionConfigs[configI]).type==="footer";)footSectionNodes.push(this.renderSection(currentConfig,microColGroupNode,!0)),configI+=1;let isBuggy=!getCanVGrowWithinCell();const roleAttrs={role:"rowgroup"};return y("table",{role:"grid",className:classNames.join(" "),style:{height:props.height}},!!(!isBuggy&&headSectionNodes.length)&&y("thead",roleAttrs,...headSectionNodes),!!(!isBuggy&&bodySectionNodes.length)&&y("tbody",roleAttrs,...bodySectionNodes),!!(!isBuggy&&footSectionNodes.length)&&y("tfoot",roleAttrs,...footSectionNodes
1),isBuggy&&y("tbody",roleAttrs,...headSectionNodes,...bodySectionNodes,...footSectionNodes))}renderSection(sectionConfig,microColGroupNode,isHeader){return"outerContent"in sectionConfig?y(_,{key:sectionConfig.key},sectionConfig.outerContent):y("tr",{key:sectionConfig.key,role:"presentation",className:getSectionClassNames(sectionConfig,this.props.liquid).join(" ")},this.renderChunkTd(sectionConfig,microColGroupNode,sectionConfig.chunk,isHeader))}renderChunkTd(sectionConfig,microColGroupNode,chunkConfig,isHeader){if("outerContent"in chunkConfig)return chunkConfig.outerContent;let{props}=this,{forceYScrollbars,scrollerClientWidths,scrollerClientHeights}=this.state,needsYScrolling=getAllowYScrolling(props,sectionConfig),isLiquid=getSectionHasLiquidHeight(props,sectionConfig),overflowY=props.liquid?forceYScrollbars?"scroll":needsYScrolling?"auto":"hidden":"visible",sectionKey=sectionConfig.key,content=renderChunkContent(sectionConfig,chunkConfig,{tableColGroupNode:microColGroupNode,tableMinWidth:"",clientWidth:!props.collapsibleWidth&&scrollerClientWidths[sectionKey]!==void 0?scrollerClientWidths[sectionKey]:null,clientHeight:scrollerClientHeights[sectionKey]!==void 0?scrollerClientHeights[sectionKey]:null,expandRows:sectionConfig.expandRows,syncRowHeights:!1,rowSyncHeights:[],reportRowHeightChange:()=>{}},isHeader);return y(isHeader?"th":"td",{ref:chunkConfig.elRef,role:"presentation"},y("div",{className:`fc-scroller-harness${isLiquid?" fc-scroller-harness-liquid":""}`},y(Scroller,{ref:this.scrollerRefs.createRef(sectionKey),elRef:this.scrollerElRefs.createRef(sectionKey),overflowY,overflowX:props.liquid?"hidden":"visible",maxHeight:sectionConfig.maxHeight,liquid:isLiquid,liquidIsAbsolute:!0},content)))}_handleScrollerEl(scrollerEl,key){let section=getSectionByKey(this.props.sections,key);section&&setRef(section.chunk.scrollerElRef,scrollerEl)}componentDidMount(){this.handleSizing(),this.context.addResizeHandler(this.handleSizing)}componentDidUpdate(){this.handleSizing()}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing)}computeShrinkWidth(){return hasShrinkWidth(this.props.cols)?computeShrinkWidth(this.scrollerElRefs.getAll()):0}computeScrollerDims(){let scrollbarWidth=getScrollbarWidths(),{scrollerRefs,scrollerElRefs}=this,forceYScrollbars=!1,scrollerClientWidths={},scrollerClientHeights={};for(let sectionKey in scrollerRefs.currentMap){let scroller=scrollerRefs.currentMap[sectionKey];if(scroller&&scroller.needsYScrolling()){forceYScrollbars=!0;break}}for(let section of this.props.sections){let sectionKey=section.key,scrollerEl=scrollerElRefs.currentMap[sectionKey];if(scrollerEl){let harnessEl=scrollerEl.parentNode;scrollerClientWidths[sectionKey]=Math.floor(harnessEl.getBoundingClientRect().width-(forceYScrollbars?scrollbarWidth.y:0)),scrollerClientHeights[sectionKey]=Math.floor(harnessEl.getBoundingClientRect().height)}}return{forceYScrollbars,scrollerClientWidths,scrollerClientHeights}}}SimpleScrollGrid.addStateEquality({scrollerClientWidths:isPropsEqual,scrollerClientHeights:isPropsEqual});function getSectionByKey(sections,key){for(let section of sections)if(section.key===key)return section;return null}class EventContainer extends BaseComponent{constructor(){super(...arguments),this.handleEl=el=>{this.el=el,el&&setElSeg(el,this.props.seg)}}render(){const{props,context}=this,{options}=context,{seg}=props,{eventRange}=seg,{ui}=eventRange,renderProps={event:new EventImpl(context,eventRange.def,eventRange.instance),view:context.viewApi,timeText:props.timeText,textColor:ui.textColor,backgroundColor:ui.backgroundColor,borderColor:ui.borderColor,isDraggable:!props.disableDragging&&computeSegDraggable(seg,context),isStartResizable:!props.disableResizing&&computeSegStartResizable(seg,context),isEndResizable:!props.disableResizing&&computeSegEndResizable(seg),isMirror:!!(props.isDragging||props.isResizing||props.isDateSelecting),isStart:!!seg.isStart,isEnd:!!seg.isEnd,isPast:!!props.isPast,isFuture:!!props.isFuture,isToday:!!props.isToday,isSelected:!!props.isSelected,isDragging:!!props.isDragging,isResizing:!!props.isResizing};return y(ContentContainer,Object.assign({},props,{elRef:this.handleEl,elClasses:[...getEventClassNames(renderProps),...seg.eventRange.ui.classNames,...props.elClasses||[]],renderProps,generatorName:"eventContent",customGenerator:options.eventContent,defaultGenerator:props.defaultGenerator,classNameGenerator:options.eventClassNames,didMount:options.eventDidMount,willUnmount:options.eventWillUnmount}))}componentDidUpdate(prevProps){this.el&&this.props.seg!==prevProps.seg&&setElSeg(this.el,this.props.seg)}}class StandardEvent extends BaseComponent{render(){let{props,context}=this,{options}=context,{seg}=props,{ui}=seg.eventRange,timeFormat=options.eventTimeFormat||props.defaultTimeFormat,timeText=buildSegTimeText(seg,timeFormat,context,props.defaultDisplayEventTime,props.defaultDisplayEventEnd);return y(EventContainer,Object.assign({},props,{elTag:"a",elStyle:{borderColor:ui.borderColor,backgroundColor:ui.backgroundColor},elAttrs:getSegAnchorAttrs(seg,context),defaultGenerator:renderInnerContent$1$1,timeText}),(InnerContent,eventContentArg)=>y(_,null,y(InnerContent,{elTag:"div",elClasses:["fc-event-main"],elStyle:{color:eventContentArg.textColor}}),!!eventContentArg.isStartResizable&&y("div",{className:"fc-event-resizer fc-event-resizer-start"}),!!eventContentArg.isEndResizable&&y("div",{className:"fc-event-resizer fc-event-resizer-end"})))}}function renderInnerContent$1$1(innerProps){return y("div",{className:"fc-event-main-frame"},innerProps.timeText&&y("div",{className:"fc-event-time"},innerProps.timeText),y("div",{className:"fc-event-title-container"},y("div",{className:"fc-event-title fc-sticky"},innerProps.event.title||y(_,null," "))))}const NowIndicatorContainer=props=>y(ViewContextType.Consumer,null,context=>{let{options}=context,renderProps={isAxis:props.isAxis,date:context.dateEnv.toDate(props.date),view:context.viewApi};return y(ContentContainer,Object.assign({},props,{elTag:props.elTag||"div",renderProps,generatorName:"nowIndicatorContent",customGenerator:options.nowIndicatorContent,classNameGenerator:options.nowIndicatorClassNames,didMount:options.nowIndicatorDidMount,willUnmount:options.nowIndicatorWillUnmount}))}),DAY_NUM_FORMAT=createFormatter({day:"numeric"});class DayCellContainer extends BaseComponent{constructor(){super(...arguments),this.refineRenderProps=memoizeObjArg(refineRenderProps)}render(){let{props,context}=this,{options}=context,renderProps=this.refineRenderProps({date:props.date,dateProfile:props.dateProfile,todayRange:props.todayRange,isMonthStart:props.isMonthStart||!1,showDayNumber:props.showDayNumber,extraRenderProps:props.extraRenderProps,viewApi:context.viewApi,dateEnv:context.dateEnv,monthStartFormat:options.monthStartFormat});return y(ContentContainer,Object.assign({},props,{elClasses:[...getDayClassNames(renderProps,context.theme),...props.elClasses||[]],elAttrs:Object.assign(Object.assign({},props.elAttrs),renderProps.isDisabled?{}:{"data-date":formatDayString(props.date)}),renderProps,generatorName:"dayCellContent",customGenerator:options.dayCellContent,defaultGenerator:props.defaultGenerator,classNameGenerator:renderProps.isDisabled?void 0:options.dayCellClassNames,didMount:options.dayCellDidMount,willUnmount:options.dayCellWillUnmount}))}}function hasCustomDayCellContent(options){return!!(options.dayCellContent||hasCustomRenderingHandler("dayCellContent",options))}function refineRenderProps(raw){let{date,dateEnv,dateProfile,isMonthStart}=raw,dayMeta=getDateMeta(date,raw.todayRange,null,dateProfile),dayNumberText=raw.showDayNumber?dateEnv.format(date,isMonthStart?raw.monthStartFormat:DAY_NUM_FORMAT):"";return Object.assign(Object.assign(Object.assign({date:dateEnv.toDate(date),view:raw.viewApi},dayMeta),{isMonthStart,dayNumberText}),raw.extraRenderProps)}class BgEvent extends BaseComponent{render(){let{props}=this,{seg}=props;return y(EventContainer,{elTag:"div",elClasses:["fc-bg-event"],elStyle:{backgroundColor:seg.eventRange.ui.backgroundColor},defaultGenerator:renderInnerContent$2,seg,timeText:"",isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,isPast:props.isPast,isFuture:props.isFuture,isToday:props.isToday,disableDragging:!0,disableResizing:!0})}}function renderInnerContent$2(props){let{title}=props.event;return title&&y("div",{className:"fc-event-title"},props.event.title)}function renderFill(fillType){return y("div",{className:`fc-${fillType}`})}const WeekNumberContainer=props=>y(ViewContextType.Consumer,null,context=>{let{dateEnv,options}=context,{date}=props,format=options.weekNumberFormat||props.defaultFormat,num=d
1ateEnv.computeWeekNumber(date),text=dateEnv.format(date,format);return y(ContentContainer,Object.assign({},props,{renderProps:{num,text,date},generatorName:"weekNumberContent",customGenerator:options.weekNumberContent,defaultGenerator:renderInner,classNameGenerator:options.weekNumberClassNames,didMount:options.weekNumberDidMount,willUnmount:options.weekNumberWillUnmount}))});function renderInner(innerProps){return innerProps.text}const PADDING_FROM_VIEWPORT=10;class Popover extends BaseComponent{constructor(){super(...arguments),this.state={titleId:getUniqueDomId()},this.handleRootEl=el=>{this.rootEl=el,this.props.elRef&&setRef(this.props.elRef,el)},this.handleDocumentMouseDown=ev=>{const target=getEventTargetViaRoot(ev);this.rootEl.contains(target)||this.handleCloseClick()},this.handleDocumentKeyDown=ev=>{ev.key==="Escape"&&this.handleCloseClick()},this.handleCloseClick=()=>{let{onClose}=this.props;onClose&&onClose()}}render(){let{theme,options}=this.context,{props,state}=this,classNames=["fc-popover",theme.getClass("popover")].concat(props.extraClassNames||[]);return j(y("div",Object.assign({},props.extraAttrs,{id:props.id,className:classNames.join(" "),"aria-labelledby":state.titleId,ref:this.handleRootEl}),y("div",{className:"fc-popover-header "+theme.getClass("popoverHeader")},y("span",{className:"fc-popover-title",id:state.titleId},props.title),y("span",{className:"fc-popover-close "+theme.getIconClass("close"),title:options.closeHint,onClick:this.handleCloseClick})),y("div",{className:"fc-popover-body "+theme.getClass("popoverContent")},props.children)),props.parentEl)}componentDidMount(){document.addEventListener("mousedown",this.handleDocumentMouseDown),document.addEventListener("keydown",this.handleDocumentKeyDown),this.updateSize()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleDocumentMouseDown),document.removeEventListener("keydown",this.handleDocumentKeyDown)}updateSize(){let{isRtl}=this.context,{alignmentEl,alignGridTop}=this.props,{rootEl}=this,alignmentRect=computeClippedClientRect(alignmentEl);if(alignmentRect){let popoverDims=rootEl.getBoundingClientRect(),popoverTop=alignGridTop?elementClosest(alignmentEl,".fc-scrollgrid").getBoundingClientRect().top:alignmentRect.top,popoverLeft=isRtl?alignmentRect.right-popoverDims.width:alignmentRect.left;popoverTop=Math.max(popoverTop,PADDING_FROM_VIEWPORT),popoverLeft=Math.min(popoverLeft,document.documentElement.clientWidth-PADDING_FROM_VIEWPORT-popoverDims.width),popoverLeft=Math.max(popoverLeft,PADDING_FROM_VIEWPORT);let origin=rootEl.offsetParent.getBoundingClientRect();applyStyle(rootEl,{top:popoverTop-origin.top,left:popoverLeft-origin.left})}}}class MorePopover extends DateComponent{constructor(){super(...arguments),this.handleRootEl=rootEl=>{this.rootEl=rootEl,rootEl?this.context.registerInteractiveComponent(this,{el:rootEl,useEventCenter:!1}):this.context.unregisterInteractiveComponent(this)}}render(){let{options,dateEnv}=this.context,{props}=this,{startDate,todayRange,dateProfile}=props,title=dateEnv.format(startDate,options.dayPopoverFormat);return y(DayCellContainer,{elRef:this.handleRootEl,date:startDate,dateProfile,todayRange},(InnerContent,renderProps,elAttrs)=>y(Popover,{elRef:elAttrs.ref,id:props.id,title,extraClassNames:["fc-more-popover"].concat(elAttrs.className||[]),extraAttrs:elAttrs,parentEl:props.parentEl,alignmentEl:props.alignmentEl,alignGridTop:props.alignGridTop,onClose:props.onClose},hasCustomDayCellContent(options)&&y(InnerContent,{elTag:"div",elClasses:["fc-more-popover-misc"]}),props.children))}queryHit(positionLeft,positionTop,elWidth,elHeight){let{rootEl,props}=this;return positionLeft>=0&&positionLeft<elWidth&&positionTop>=0&&positionTop<elHeight?{dateProfile:props.dateProfile,dateSpan:Object.assign({allDay:!props.forceTimed,range:{start:props.startDate,end:props.endDate}},props.extraDateSpan),dayEl:rootEl,rect:{left:0,top:0,right:elWidth,bottom:elHeight},layer:1}:null}}class MoreLinkContainer extends BaseComponent{constructor(){super(...arguments),this.state={isPopoverOpen:!1,popoverId:getUniqueDomId()},this.handleLinkEl=linkEl=>{this.linkEl=linkEl,this.props.elRef&&setRef(this.props.elRef,linkEl)},this.handleClick=ev=>{let{props,context}=this,{moreLinkClick}=context.options,date=computeRange(props).start;function buildPublicSeg(seg){let{def,instance,range}=seg.eventRange;return{event:new EventImpl(context,def,instance),start:context.dateEnv.toDate(range.start),end:context.dateEnv.toDate(range.end),isStart:seg.isStart,isEnd:seg.isEnd}}typeof moreLinkClick=="function"&&(moreLinkClick=moreLinkClick({date,allDay:!!props.allDayDate,allSegs:props.allSegs.map(buildPublicSeg),hiddenSegs:props.hiddenSegs.map(buildPublicSeg),jsEvent:ev,view:context.viewApi})),!moreLinkClick||moreLinkClick==="popover"?this.setState({isPopoverOpen:!0}
1):typeof moreLinkClick=="string"&&context.calendarApi.zoomTo(date,moreLinkClick)},this.handlePopoverClose=()=>{this.setState({isPopoverOpen:!1})}}render(){let{props,state}=this;return y(ViewContextType.Consumer,null,context=>{let{viewApi,options,calendarApi}=context,{moreLinkText}=options,{moreCnt}=props,range=computeRange(props),text=typeof moreLinkText=="function"?moreLinkText.call(calendarApi,moreCnt):`+${moreCnt} ${moreLinkText}`,hint=formatWithOrdinals(options.moreLinkHint,[moreCnt],text),renderProps={num:moreCnt,shortText:`+${moreCnt}`,text,view:viewApi};return y(_,null,!!props.moreCnt&&y(ContentContainer,{elTag:props.elTag||"a",elRef:this.handleLinkEl,elClasses:[...props.elClasses||[],"fc-more-link"],elStyle:props.elStyle,elAttrs:Object.assign(Object.assign(Object.assign({},props.elAttrs),createAriaClickAttrs(this.handleClick)),{title:hint,"aria-expanded":state.isPopoverOpen,"aria-controls":state.isPopoverOpen?state.popoverId:""}),renderProps,generatorName:"moreLinkContent",customGenerator:options.moreLinkContent,defaultGenerator:props.defaultGenerator||renderMoreLinkInner$1,classNameGenerator:options.moreLinkClassNames,didMount:options.moreLinkDidMount,willUnmount:options.moreLinkWillUnmount},props.children),state.isPopoverOpen&&y(MorePopover,{id:state.popoverId,startDate:range.start,endDate:range.end,dateProfile:props.dateProfile,todayRange:props.todayRange,extraDateSpan:props.extraDateSpan,parentEl:this.parentEl,alignmentEl:props.alignmentElRef?props.alignmentElRef.current:this.linkEl,alignGridTop:props.alignGridTop,forceTimed:props.forceTimed,onClose:this.handlePopoverClose},props.popoverContent()))})}componentDidMount(){this.updateParentEl()}componentDidUpdate(){this.updateParentEl()}updateParentEl(){this.linkEl&&(this.parentEl=elementClosest(this.linkEl,".fc-view-harness"))}}function renderMoreLinkInner$1(props){return props.text}function computeRange(props){if(props.allDayDate)return{start:props.allDayDate,end:addDays(props.allDayDate,1)};let{hiddenSegs}=props;return{start:computeEarliestSegStart(hiddenSegs),end:computeLatestSegEnd(hiddenSegs)}}function computeEarliestSegStart(segs){return segs.reduce(pickEarliestStart).eventRange.range.start}function pickEarliestStart(seg0,seg1){return seg0.eventRange.range.start<seg1.eventRange.range.start?seg0:seg1}function computeLatestSegEnd(segs){return segs.reduce(pickLatestEnd).eventRange.range.end}function pickLatestEnd(seg0,seg1){return seg0.eventRange.range.end>seg1.eventRange.range.end?seg0:seg1}class Store{constructor(){this.handlers=[]}set(value){this.currentValue=value;for(let handler of this.handlers)handler(value)}subscribe(handler){this.handlers.push(handler),this.currentValue!==void 0&&handler(this.currentValue)}}class CustomRenderingStore extends Store{constructor(){super(...arguments),this.map=new Map}handle(customRendering){const{map}=this;let updated=!1;customRendering.isActive?(map.set(customRendering.id,customRendering),updated=!0):map.has(customRendering.id)&&(map.delete(customRendering.id),updated=!0),updated&&this.set(map)}}const globalLocales=[],MINIMAL_RAW_EN_LOCALE={code:"en",week:{dow:0,doy:4},direction:"ltr",buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day",list:"list"},weekText:"W",weekTextLong:"Week",closeHint:"Close",timeHint:"Time",eventHint:"Event",allDayText:"all-day",moreLinkText:"more",noEventsText:"No events to display"},RAW_EN_LOCALE=Object.assign(Object.assign({},MINIMAL_RAW_EN_LOCALE),{buttonHints:{prev:"Previous $0",next:"Next $0",today(buttonText,unit){return unit==="day"?"Today":`This ${buttonText}`}},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint(eventCnt){return`Show ${eventCnt} more event${eventCnt===1?"":"s"}`}});function organizeRawLocales(explicitRawLocales){let defaultCode=explicitRawLocales.length>0?explicitRawLocales[0].code:"en",allRawLocales=globalLocales.concat(explicitRawLocales),rawLocaleMap={en:RAW_EN_LOCALE};for(let rawLocale of allRawLocales)rawLocaleMap[rawLocale.code]=rawLocale;return{map:rawLocaleMap,defaultCode}}function buildLocale(inputSingular,available){return typeof inputSingular=="object"&&!Array.isArray(inputSingular)?parseLocale(inputSingular.code,[inputSingular.code],inputSingular):queryLocale(inputSingular,available)}function queryLocale(codeArg,available){let codes=[].concat(codeArg||[]),raw=queryRawLocale(codes,available)||RAW_EN_LOCALE;return parseLocale(codeArg,codes,raw)}function queryRawLocale(codes,available){for(let i2=0;i2<codes.length;i2+=1){let parts=codes[i2].toLocaleLowerCase().split("-");for(let j2=parts.length;j2>0;j2-=1){let simpleId=parts.slice(0,j2).join("-");if(available[simpleId])return available[simpleId]}}return null}function parseLocale(codeArg,codes,raw){let merged=mergeProps([MINIMAL_RAW_EN_LOCALE,raw],["buttonText"]);delete merged.code;let{week}=merged;
vendor: 18,992 bytes, line 1
1return delete merged.week,{codeArg,codes,week,simpleNumberFormat:new Intl.NumberFormat(codeArg),options:merged}}function createPlugin(input){return{id:guid(),name:input.name,premiumReleaseDate:input.premiumReleaseDate?new Date(input.premiumReleaseDate):void 0,deps:input.deps||[],reducers:input.reducers||[],isLoadingFuncs:input.isLoadingFuncs||[],contextInit:[].concat(input.contextInit||[]),eventRefiners:input.eventRefiners||{},eventDefMemberAdders:input.eventDefMemberAdders||[],eventSourceRefiners:input.eventSourceRefiners||{},isDraggableTransformers:input.isDraggableTransformers||[],eventDragMutationMassagers:input.eventDragMutationMassagers||[],eventDefMutationAppliers:input.eventDefMutationAppliers||[],dateSelectionTransformers:input.dateSelectionTransformers||[],datePointTransforms:input.datePointTransforms||[],dateSpanTransforms:input.dateSpanTransforms||[],views:input.views||{},viewPropsTransformers:input.viewPropsTransformers||[],isPropsValid:input.isPropsValid||null,externalDefTransforms:input.externalDefTransforms||[],viewContainerAppends:input.viewContainerAppends||[],eventDropTransformers:input.eventDropTransformers||[],componentInteractions:input.componentInteractions||[],calendarInteractions:input.calendarInteractions||[],themeClasses:input.themeClasses||{},eventSourceDefs:input.eventSourceDefs||[],cmdFormatter:input.cmdFormatter,recurringTypes:input.recurringTypes||[],namedTimeZonedImpl:input.namedTimeZonedImpl,initialView:input.initialView||"",elementDraggingImpl:input.elementDraggingImpl,optionChangeHandlers:input.optionChangeHandlers||{},scrollGridImpl:input.scrollGridImpl||null,listenerRefiners:input.listenerRefiners||{},optionRefiners:input.optionRefiners||{},propSetHandlers:input.propSetHandlers||{}}}function buildPluginHooks(pluginDefs,globalDefs){let currentPluginIds={},hooks={premiumReleaseDate:void 0,reducers:[],isLoadingFuncs:[],contextInit:[],eventRefiners:{},eventDefMemberAdders:[],eventSourceRefiners:{},isDraggableTransformers:[],eventDragMutationMassagers:[],eventDefMutationAppliers:[],dateSelectionTransformers:[],datePointTransforms:[],dateSpanTransforms:[],views:{},viewPropsTransformers:[],isPropsValid:null,externalDefTransforms:[],viewContainerAppends:[],eventDropTransformers:[],componentInteractions:[],calendarInteractions:[],themeClasses:{},eventSourceDefs:[],cmdFormatter:null,recurringTypes:[],namedTimeZonedImpl:null,initialView:"",elementDraggingImpl:null,optionChangeHandlers:{},scrollGridImpl:null,listenerRefiners:{},optionRefiners:{},propSetHandlers:{}};function addDefs(defs){for(let def of defs){const pluginName=def.name,currentId=currentPluginIds[pluginName];currentId===void 0?(currentPluginIds[pluginName]=def.id,addDefs(def.deps),hooks=combineHooks(hooks,def)):currentId!==def.id&&console.warn(`Duplicate plugin '${pluginName}'`)}}return pluginDefs&&addDefs(pluginDefs),addDefs(globalDefs),hooks}function buildBuildPluginHooks(){let currentOverrideDefs=[],currentGlobalDefs=[],currentHooks;return(overrideDefs,globalDefs)=>((!currentHooks||!isArraysEqual(overrideDefs,currentOverrideDefs)||!isArraysEqual(globalDefs,currentGlobalDefs))&&(currentHooks=buildPluginHooks(overrideDefs,globalDefs)),currentOverrideDefs=overrideDefs,currentGlobalDefs=globalDefs,currentHooks)}function combineHooks(hooks0,hooks1){return{premiumReleaseDate:compareOptionalDates(hooks0.premiumReleaseDate,hooks1.premiumReleaseDate),reducers:hooks0.reducers.concat(hooks1.reducers),isLoadingFuncs:hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),contextInit:hooks0.contextInit.concat(hooks1.contextInit),eventRefiners:Object.assign(Object.assign({},hooks0.eventRefiners),hooks1.eventRefiners),eventDefMemberAdders:hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),eventSourceRefiners:Object.assign(Object.assign({},hooks0.eventSourceRefiners),hooks1.eventSourceRefiners),isDraggableTransformers:hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),eventDragMutationMassagers:hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),eventDefMutationAppliers:hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),dateSelectionTransformers:hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),datePointTransforms:hooks0.datePointTransforms.concat(hooks1.datePointTransforms),dateSpanTransforms:hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),views:Object.assign(Object.assign({},hooks0.views),hooks1.views),viewPropsTransformers:hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),isPropsValid:hooks1.isPropsValid||hooks0.isPropsValid,externalDefTransforms:hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),viewContainerAppends:hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),eventDropTransformers:hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),calendarInteractions:hooks0.calendarInteractions.concat(hooks1.calendarInteractions),componentInteractions:hooks0.componentInteractions.concat(hooks1.componentInteractions),themeClasses:Object.assign(Object.assign({},hooks0.themeClasses),hooks1.themeClasses),eventSourceDefs:hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),cmdFormatter:hooks1.cmdFormatter||hooks0.cmdFormatter,recurringTypes:hooks0.recurringTypes.concat(hooks1.recurringTypes),namedTimeZonedImpl:hooks1.namedTimeZonedImpl||hooks0.namedTimeZonedImpl,initialView:hooks0.initialView||hooks1.initialView,elementDraggingImpl:hooks0.elementDraggingImpl||hooks1.elementDraggingImpl,optionChangeHandlers:Object.assign(Object.assign({},hooks0.optionChangeHandlers),hooks1.optionChangeHandlers),scrollGridImpl:hooks1.scrollGridImpl||hooks0.scrollGridImpl,listenerRefiners:Object.assign(Object.assign({},hooks0.listenerRefiners),hooks1.listenerRefiners),optionRefiners:Object.assign(Object.assign({},hooks0.optionRefiners),hooks1.optionRefiners),propSetHandlers:Object.assign(Object.assign({},hooks0.propSetHandlers),hooks1.propSetHandlers)}}function compareOptionalDates(date0,date1){return date0===void 0?date1:date1===void 0?date0:new Date(Math.max(date0.valueOf(),date1.valueOf()))}class StandardTheme extends Theme{}StandardTheme.prototype.classes={root:"fc-theme-standard",tableCellShaded:"fc-cell-shaded",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active"};StandardTheme.prototype.baseIconClass="fc-icon";StandardTheme.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"};StandardTheme.prototype.rtlIconClasses={prev:"fc-icon-chevron-right",next:"fc-icon-chevron-left",prevYear:"fc-icon-chevrons-right",nextYear:"fc-icon-chevrons-left"};StandardTheme.prototype.iconOverrideOption="buttonIcons";StandardTheme.prototype.iconOverrideCustomButtonOption="icon";StandardTheme.prototype.iconOverridePrefix="fc-icon-";function compileViewDefs(defaultConfigs,overrideConfigs){let hash={},viewType;for(viewType in defaultConfigs)ensureViewDef(viewType,hash,defaultConfigs,overrideConfigs);for(viewType in overrideConfigs)ensureViewDef(viewType,hash,defaultConfigs,overrideConfigs);return hash}function ensureViewDef(viewType,hash,defaultConfigs,overrideConfigs){if(hash[viewType])return hash[viewType];let viewDef=buildViewDef(viewType,hash,defaultConfigs,overrideConfigs);return viewDef&&(hash[viewType]=viewDef),viewDef}function buildViewDef(viewType,hash,defaultConfigs,overrideConfigs){let defaultConfig=defaultConfigs[viewType],overrideConfig=overrideConfigs[viewType],queryProp=name=>defaultConfig&&defaultConfig[name]!==null?defaultConfig[name]:overrideConfig&&overrideConfig[name]!==null?overrideConfig[name]:null,theComponent=queryProp("component"),superType=queryProp("superType"),superDef=null;if(superType){if(superType===viewType)throw new Error("Can't have a custom view type that references itself");superDef=ensureViewDef(superType,hash,defaultConfigs,overrideConfigs)}return!theComponent&&superDef&&(theComponent=superDef.component),theComponent?{type:viewType,component:theComponent,defaults:Object.assign(Object.assign({},superDef?superDef.defaults:{}),defaultConfig?defaultConfig.rawOptions:{}),overrides:Object.assign(Object.assign({},superDef?superDef.overrides:{}),overrideConfig?overrideConfig.rawOptions:{})}:null}function parseViewConfigs(inputs){return mapHash(inputs,parseViewConfig)}function parseViewConfig(input){let rawOptions=typeof input=="function"?{component:input}:input,{component}=rawOptions;return rawOptions.content?component=createViewHookComponent(rawOptions):component&&!(component.prototype instanceof BaseComponent)&&(component=createViewHookComponent(Object.assign(Object.assign({},rawOptions),{content:component}))),{superType:rawOptions.type,component,rawOptions}}function createViewHookComponent(options){return viewProps=>y(ViewContextType.Consumer,null,context=>y(ContentContainer,{elTag:"div",elClasses:buildViewClassNames(context.viewSpec),renderProps:Object.assign(Object.assign({},viewProps),{nextDayThreshold:context.options.nextDayThreshold}),generatorName:void 0,customGenerator:options.content,classNameGenerator:options.classNames,didMount:options.didMount,willUnmount:options.willUnmount}))}function buildViewSpecs(defaultInputs,optionOverrides,dynamicOptionOverrides,localeDefaults){let defaultConfigs=parseViewConfigs(defaultInputs),overrideConfigs=parseViewConfigs(optionOverrides.views),viewDefs=compileViewDefs(defaultConfigs,overrideConfigs);return mapHash(viewDefs,viewDef=>buildViewSpec(viewDef,overrideConfigs,optionOverrides,dynamicOptionOverrides,localeDefaults))}function buildViewSpec(viewDef,overrideConfigs,optionOverrides,dynamicOptionOverrides,localeDefaults){let durationInput=viewDef.overrides.duration||viewDef.defaults.duration||dynamicOptionOverrides.duration||optionOverrides.duration,duration=null,durationUnit="",singleUnit="",singleUnitOverrides={};if(durationInput&&(duration=createDurationCached(durationInput),duration)){let denom=greatestDurationDenominator(duration);durationUnit=denom.unit,denom.value===1&&(singleUnit=durationUnit,singleUnitOverrides=overrideConfigs[durationUnit]?overrideConfigs[durationUnit].rawOptions:{})}let queryButtonText=optionsSubset=>{let buttonTextMap=optionsSubset.buttonText||{},buttonTextKey=viewDef.defaults.buttonTextKey;return buttonTextKey!=null&&buttonTextMap[buttonTextKey]!=null?buttonTextMap[buttonTextKey]:buttonTextMap[viewDef.type]!=null?buttonTextMap[viewDef.type]:buttonTextMap[singleUnit]!=null?buttonTextMap[singleUnit]:null},queryButtonTitle=optionsSubset=>{let buttonHints=optionsSubset.buttonHints||{},buttonKey=viewDef.defaults.buttonTextKey;return buttonKey!=null&&buttonHints[buttonKey]!=null?buttonHints[buttonKey]:buttonHints[viewDef.type]!=null?buttonHints[viewDef.type]:buttonHints[singleUnit]!=null?buttonHints[singleUnit]:null};return{type:viewDef.type,component:viewDef.component,duration,durationUnit,singleUnit,optionDefaults:viewDef.defaults,optionOverrides:Object.assign(Object.assign({},singleUnitOverrides),viewDef.overrides),buttonTextOverride:queryButtonText(dynamicOptionOverrides)||queryButtonText(optionOverrides)||viewDef.overrides.buttonText,buttonTextDefault:queryButtonText(localeDefaults)||viewDef.defaults.buttonText||queryButtonText(BASE_OPTION_DEFAULTS)||viewDef.type,buttonTitleOverride:queryButtonTitle(dynamicOptionOverrides)||queryButtonTitle(optionOverrides)||viewDef.overrides.buttonHint,buttonTitleDefault:queryButtonTitle(localeDefaults)||viewDef.defaults.buttonHint||queryButtonTitle(BASE_OPTION_DEFAULTS)}}let durationInputMap={};function createDurationCached(durationInput){let json=JSON.stringify(durationInput),res=durationInputMap[json];return res===void 0&&(res=createDuration(durationInput),durationInputMap[json]=res),res}function reduceViewType(viewType,action){switch(action.type){case"CHANGE_VIEW_TYPE":viewType=action.viewType}return viewType}function reduceDynamicOptionOverrides(dynamicOptionOverrides,action){switch(action.type){case"SET_OPTION":return Object.assign(Object.assign({},dynamicOptionOverrides),{[action.optionName]:action.rawOptionValue});default:return dynamicOptionOverrides}}function reduceDateProfile(currentDateProfile,action,currentDate,dateProfileGenerator){let dp;switch(action.type){case"CHANGE_VIEW_TYPE":return dateProfileGenerator.build(action.dateMarker||currentDate);case"CHANGE_DATE":return dateProfileGenerator.build(action.dateMarker);case"PREV":if(dp=dateProfileGenerator.buildPrev(currentDateProfile,currentDate),dp.isValid)return dp;break;case"NEXT":if(dp=dateProfileGenerator.buildNext(currentDateProfile,currentDate),dp.isValid)return dp;break}return currentDateProfile}function initEventSources(calendarOptions,dateProfile,context){let activeRange=dateProfile?dateProfile.activeRange:null;return addSources({},parseInitialSources(calendarOptions,context),activeRange,context)}function reduceEventSources(eventSources,action,dateProfile,context){let activeRange=dateProfile?dateProfile.activeRange:null;switch(action.type){case"ADD_EVENT_SOURCES":return addSources(eventSources,action.sources,activeRange,context);case"REMOVE_EVENT_SOURCE":return removeSource(eventSources,action.sourceId);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return dateProfile?fetchDirtySources(eventSources,activeRange,context):eventSources;case"FETCH_EVENT_SOURCES":return fetchSourcesByIds(eventSources,action.sourceIds?arrayToHash(action.sourceIds):excludeStaticSources(eventSources,context),activeRange,action.isRefetch||!1,context);case"RECEIVE_EVENTS":case"RECEIVE_EVENT_ERROR":return receiveResponse(eventSources,action.sourceId,action.fetchId,action.fetchRange);case"REMOVE_ALL_EVENT_SOURCES":return{};default:return eventSources}}function reduceEventSourcesNewTimeZone(eventSources,dateProfile,context){let activeRange=dateProfile?dateProfile.activeRange:null;return fetchSourcesByIds(eventSources,excludeStaticSources(eventSources,context),activeRange,!0,context)}function computeEventSourcesLoading(eventSources){for(let sourceId in eventSources)if(eventSources[sourceId].isFetching)return!0;return!1}function addSources(eventSourceHash,sources,fetchRange,context){let hash={};for(let source of sources)hash[source.sourceId]=source;return fetchRange&&(hash=fetchDirtySources(hash,fetchRange,context)),Object.assign(Object.assign({},eventSourceHash),hash)}function removeSource(eventSourceHash,sourceId){return filterHash(eventSourceHash,eventSource=>eventSource.sourceId!==sourceId)}function fetchDirtySources(sourceHash,fetchRange,context){return fetchSourcesByIds(sourceHash,filterHash(sourceHash,eventSource=>isSourceDirty(eventSource,fetchRange,context)),fetchRange,!1,context)}function isSourceDirty(eventSource,fetchRange,context){return doesSourceNeedRange(eventSource,context)?!context.options.lazyFetching||!eventSource.fetchRange||eventSource.isFetching||fetchRange.start<eventSource.fetchRange.start||fetchRange.end>eventSource.fetchRange.end:!eventSource.latestFetchId}function fetchSourcesByIds(prevSources,sourceIdHash,fetchRange,isRefetch,context){let nextSources={};for(let sourceId in prevSources){let source=prevSources[sourceId];sourceIdHash[sourceId]?nextSources[sourceId]=fetchSource(source,fetchRange,isRefetch,context):nextSources[sourceId]=source}return nextSources}function fetchSource(eventSource,fetchRange,isRefetch,context){let{options,calendarApi}=context,sourceDef=context.pluginHooks.eventSourceDefs[eventSource.sourceDefId],fetchId=guid();return sourceDef.fetch({eventSource,range:fetchRange,isRefetch,context},res=>{let{rawEvents}=res;options.eventSourceSuccess&&(rawEvents=options.eventSourceSuccess.call(calendarApi,rawEvents,res.response)||rawEvents),eventSource.success&&(rawEvents=eventSource.success.call(calendarApi,rawEvents,res.response)||rawEvents),context.dispatch({type:"RECEIVE_EVENTS",sourceId:eventSource.sourceId,fetchId,fetchRange,rawEvents})},error=>{let errorHandled=!1;options.eventSourceFailure&&(options.eventSourceFailure.call(calendarApi,error),errorHandled=!0),eventSource.failure&&(eventSource.failure(error),errorHandled=!0),errorHandled||console.warn(error.message,error),context.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:eventSource.sourceId,fetchId,fetchRange,error})}),Object.assign(Object.assign({},eventSource),{isFetching:!0,latestFetchId:fetchId})}function receiveResponse(sourceHash,sourceId,fetchId,fetchRange){let eventSource=sourceHash[sourceId];return eventSource&&fetchId===eventSource.latestFetchId?Object.assign(Object.assign({},sourceHash),{[sourceId]:Object.assign(Object.assign({},eventSource),{isFetching:!1,fetchRange})}):sourceHash}function excludeStaticSources(eventSources,context){return filterHash(eventSources,eventSource=>doesSourceNeedRange(eventSource,context))}function parseInitialSources(rawOptions,context){let refiners=buildEventSourceRefiners(context),rawSources=[].concat(rawOptions.eventSources||[]),sources=[];rawOptions.initialEvents&&rawSources.unshift(rawOptions.initialEvents),rawOptions.events&&rawSources.unshift(rawOptions.events);for(let rawSource of rawSources){let source=parseEventSource(rawSource,context,refiners);source&&sources.push(source)}return sources}function doesSourceNeedRange(eventSource,context){return!context.pluginHooks.eventSourceDefs[eventSource.sourceDefId].ignoreRange}function reduceDateSelection(currentSelection,action){switch(action.type){case"UNSELECT_DATES":return null;case"SELECT_DATES":return action.selection;default:return currentSelection}}function reduceSelectedEvent(currentInstanceId,action){switch(action.type){case"UNSELECT_EVENT":return"";case"SELECT_EVENT":return action.eventInstanceId;default:return currentInstanceId}}function reduceEventDrag(currentDrag,action){let newDrag;switch(action.type){case"UNSET_EVENT_DRAG":return null;case"SET_EVENT_DRAG":return newDrag=action.state,{affectedEvents:newDrag.affectedEvents,mutatedEvents:newDrag.mutatedEvents,isEvent:newDrag.isEvent};default:return currentDrag}}function reduceEventResize(currentResize,action){let newResize;switch(action.type){case"UNSET_EVENT_RESIZE":return null;case"SET_EVENT_RESIZE":return newResize=action.state,{affectedEvents:newResize.affectedEvents,mutatedEvents:newResize.mutatedEvents,isEvent:newResize.isEvent};default:return currentResize}}function parseToolbars(calendarOptions,calendarOptionOverrides,theme,viewSpecs,calendarApi){let header=calendarOptions.headerToolbar?parseToolbar(calendarOptions.headerToolbar,calendarOptions,calendarOptionOverrides,theme,viewSpecs,calendarApi):null,footer=calendarOptions.footerToolbar?parseToolbar(calendarOptions.footerToolbar,calendarOptions,calendarOptionOverrides,theme,viewSpecs,calendarApi):null;return{header,footer}}function parseToolbar(sectionStrHash,calendarOptions,calendarOptionOverrides,theme,viewSpecs,calendarApi){let sectionWidgets={},viewsWithButtons=[],hasTitle=!1;for(let sectionName in sectionStrHash){let sectionStr=sectionStrHash[sectionName],sectionRes=parse
1Section(sectionStr,calendarOptions,calendarOptionOverrides,theme,viewSpecs,calendarApi);sectionWidgets[sectionName]=sectionRes.widgets,viewsWithButtons.push(...sectionRes.viewsWithButtons),hasTitle=hasTitle||sectionRes.hasTitle}return{sectionWidgets,viewsWithButtons,hasTitle}}function parseSection(sectionStr,calendarOptions,calendarOptionOverrides,theme,viewSpecs,calendarApi){let isRtl=calendarOptions.direction==="rtl",calendarCustomButtons=calendarOptions.customButtons||{},calendarButtonTextOverrides=calendarOptionOverrides.buttonText||{},calendarButtonText=calendarOptions.buttonText||{},calendarButtonHintOverrides=calendarOptionOverrides.buttonHints||{},calendarButtonHints=calendarOptions.buttonHints||{},sectionSubstrs=sectionStr?sectionStr.split(" "):[],viewsWithButtons=[],hasTitle=!1;return{widgets:sectionSubstrs.map(buttonGroupStr=>buttonGroupStr.split(",").map(buttonName=>{if(buttonName==="title")return hasTitle=!0,{buttonName};let customButtonProps,viewSpec,buttonClick,buttonIcon,buttonText,buttonHint;if(customButtonProps=calendarCustomButtons[buttonName])buttonClick=ev=>{customButtonProps.click&&customButtonProps.click.call(ev.target,ev,ev.target)},(buttonIcon=theme.getCustomButtonIconClass(customButtonProps))||(buttonIcon=theme.getIconClass(buttonName,isRtl))||(buttonText=customButtonProps.text),buttonHint=customButtonProps.hint||customButtonProps.text;else if(viewSpec=viewSpecs[buttonName]){viewsWithButtons.push(buttonName),buttonClick=()=>{calendarApi.changeView(buttonName)},(buttonText=viewSpec.buttonTextOverride)||(buttonIcon=theme.getIconClass(buttonName,isRtl))||(buttonText=viewSpec.buttonTextDefault);let textFallback=viewSpec.buttonTextOverride||viewSpec.buttonTextDefault;buttonHint=formatWithOrdinals(viewSpec.buttonTitleOverride||viewSpec.buttonTitleDefault||calendarOptions.viewHint,[textFallback,buttonName],textFallback)}else if(calendarApi[buttonName])if(buttonClick=()=>{calendarApi[buttonName]()},(buttonText=calendarButtonTextOverrides[buttonName])||(buttonIcon=theme.getIconClass(buttonName,isRtl))||(buttonText=calendarButtonText[buttonName]),buttonName==="prevYear"||buttonName==="nextYear"){let prevOrNext=buttonName==="prevYear"?"prev":"next";buttonHint=formatWithOrdinals(calendarButtonHintOverrides[prevOrNext]||calendarButtonHints[prevOrNext],[calendarButtonText.year||"year","year"],calendarButtonText[buttonName])}else buttonHint=navUnit=>formatWithOrdinals(calendarButtonHintOverrides[buttonName]||calendarButtonHints[buttonName],[calendarButtonText[navUnit]||navUnit,navUnit],calendarButtonText[buttonName]);return{buttonName,buttonClick,buttonIcon,buttonText,buttonHint}})),viewsWithButtons,hasTitle}}class ViewImpl{constructor(type,getCurrentData,dateEnv){this.type=type,this.getCurrentData=getCurrentData,this.dateEnv=dateEnv}get calendar(){return this.getCurrentData().calendarApi}get title(){return this.getCurrentData().viewTitle}get activeStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start)}get activeEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end)}get currentStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start)}get currentEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end)}getOption(name){return this.getCurrentData().options[name]}}let eventSourceDef$2={ignoreRange:!0,parseMeta(refined){return Array.isArray(refined.events)?refined.events:null},fetch(arg,successCallback){successCallback({rawEvents:arg.eventSource.meta})}};const arrayEventSourcePlugin=createPlugin({name:"array-event-source",eventSourceDefs:[eventSourceDef$2]});let eventSourceDef$1={parseMeta(refined){return typeof refined.events=="function"?refined.events:null},fetch(arg,successCallback,errorCallback){const{dateEnv}=arg.context,func=arg.eventSource.meta;unpromisify(func.bind(null,buildRangeApiWithTimeZone(arg.range,dateEnv)),rawEvents=>successCallback({rawEvents}),errorCallback)}};const funcEventSourcePlugin=createPlugin({name:"func-event-source",eventSourceDefs:[eventSourceDef$1]}),JSON_FEED_EVENT_SOURCE_REFINERS={method:String,extraParams:identity,startParam:String,endParam:String,timeZoneParam:String};let eventSourceDef={parseMeta(refined){return refined.url&&(refined.format==="json"||!refined.format)?{url:refined.url,format:"json",method:(refined.method||"GET").toUpperCase(),extraParams:refined.extraParams,startParam:refined.startParam,endParam:refined.endParam,timeZoneParam:refined.timeZoneParam}:null},fetch(arg,successCallback,errorCallback){const{meta}
1=arg.eventSource,requestParams=buildRequestParams(meta,arg.range,arg.context);requestJson(meta.method,meta.url,requestParams).then(([rawEvents,response])=>{successCallback({rawEvents,response})},errorCallback)}};const jsonFeedEventSourcePlugin=createPlugin({name:"json-event-source",eventSourceRefiners:JSON_FEED_EVENT_SOURCE_REFINERS,eventSourceDefs:[eventSourceDef]});function buildRequestParams(meta,range,context){let{dateEnv,options}=context,startParam,endParam,timeZoneParam,customRequestParams,params={};return startParam=meta.startParam,startParam==null&&(startParam=options.startParam),endParam=meta.endParam,endParam==null&&(endParam=options.endParam),timeZoneParam=meta.timeZoneParam,timeZoneParam==null&&(timeZoneParam=options.timeZoneParam),typeof meta.extraParams=="function"?customRequestParams=meta.extraParams():customRequestParams=meta.extraParams||{},Object.assign(params,customRequestParams),params[startParam]=dateEnv.formatIso(range.start),params[endParam]=dateEnv.formatIso(range.end),dateEnv.timeZone!=="local"&&(params[timeZoneParam]=dateEnv.timeZone),params}const SIMPLE_RECURRING_REFINERS={daysOfWeek:identity,startTime:createDuration,endTime:createDuration,duration:createDuration,startRecur:identity,endRecur:identity};let recurring={parse(refined,dateEnv){if(refined.daysOfWeek||refined.startTime||refined.endTime||refined.startRecur||refined.endRecur){let recurringData={daysOfWeek:refined.daysOfWeek||null,startTime:refined.startTime||null,endTime:refined.endTime||null,startRecur:refined.startRecur?dateEnv.createMarker(refined.startRecur):null,endRecur:refined.endRecur?dateEnv.createMarker(refined.endRecur):null},duration;return refined.duration&&(duration=refined.duration),!duration&&refined.startTime&&refined.endTime&&(duration=subtractDurations(refined.endTime,refined.startTime)),{allDayGuess:!refined.startTime&&!refined.endTime,duration,typeData:recurringData}}return null},expand(typeData,framingRange,dateEnv){let clippedFramingRange=intersectRanges(framingRange,{start:typeData.startRecur,end:typeData.endRecur});return clippedFramingRange?expandRanges(typeData.daysOfWeek,typeData.startTime,clippedFramingRange,dateEnv):[]}};const simpleRecurringEventsPlugin=createPlugin({name:"simple-recurring-event",recurringTypes:[recurring],eventRefiners:SIMPLE_RECURRING_REFINERS});function expandRanges(daysOfWeek,startTime,framingRange,dateEnv){let dowHash=daysOfWeek?arrayToHash(daysOfWeek):null,dayMarker=startOfDay(framingRange.start),endMarker=framingRange.end,instanceStarts=[];for(;dayMarker<endMarker;){let instanceStart;(!dowHash||dowHash[dayMarker.getUTCDay()])&&(startTime?instanceStart=dateEnv.add(dayMarker,startTime):instanceStart=dayMarker,instanceStarts.push(instanceStart)),dayMarker=addDays(dayMarker,1)}return instanceStarts}const changeHandlerPlugin=createPlugin({name:"change-handler",optionChangeHandlers:{events(events,context){handleEventSources([events],context)},eventSources:handleEventSources}});function handleEventSources(inputs,context){let unfoundSources=hashValuesToArray(context.getCurrentData().eventSources);if(unfoundSources.length===1&&inputs.length===1&&Array.isArray(unfoundSources[0]._raw)&&Array.isArray(inputs[0])){context.dispatch({type:"RESET_RAW_EVENTS",sourceId:unfoundSources[0].sourceId,rawEvents:inputs[0]});return}let newInputs=[];for(let input of inputs){let inputFound=!1;for(let i2=0;i2<unfoundSources.length;i2+=1)if(unfoundSources[i2]._raw===input){unfoundSources.splice(i2,1),inputFound=!0;break}inputFound||newInputs.push(input)}for(let unfoundSource of unfoundSources)context.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:unfoundSource.sourceId});for(let newInput of newInputs)context.calendarApi.addEventSource(newInput)}function handleDateProfile(dateProfile,context){context.emitter.trigger("datesSet",Object.assign(Object.assign({},buildRangeApiWithTimeZone(dateProfile.activeRange,context.dateEnv)),{view:context.viewApi}))}function handleEventStore(eventStore,context){let{emitter}=context;emitter.hasHandlers("eventsSet")&&emitter.trigger("eventsSet",buildEventApis(eventStore,context))}const globalPlugins=[arrayEventSourcePlugin,funcEventSourcePlugin,jsonFeedEventSourcePlugin,simpleRecurringEventsPlugin,changeHandlerPlugin,createPlugin({name:"misc",isLoadingFuncs:[state=>computeEventSourcesLoading(state.eventSources)],propSetHandlers:{dateProfile:handleDateProfile,eventStore:handleEventStore}})];class TaskRunner{constructor(runTaskOption,drainedOption){this.runTaskOption=runTaskOption,this.drainedOption=drainedOption,this.queue=[],this.delayedRunner=new DelayedRunner(this.drain.bind(this))}request(task,delay){this.queue.push(task),this.delayedRunner.request(delay)}pause(scope){this.delayedRunner.pause(scope)}resume(scope,force){this.delayedRunner.resume(scope,force)}drain(){let{queue}=this;for(;queue.length;){let completedTasks=[],task;for(;task=queue.shift();)this.runTask(task),completedTasks.push(task);this.drained(completedTasks)}}runTask(task){this.runTaskOption&&this.runTaskOption(task)}drained(completedTasks){this.drainedOption&&this.drainedOption(completedTasks)}}function buildTitle(dateProfile,viewOptions,dateEnv){let range;return/^(year|month)$/.test(dateProfile.currentRangeUnit)?range=dateProfile.currentRange:range=dateProfile.activeRange,dateEnv.formatRange(range.start,range.end,createFormatter(viewOptions.titleFormat||buildTitleFormat(dateProfile)),{isEndExclusive:d
1ateProfile.isRangeAllDay,defaultSeparator:viewOptions.titleRangeSeparator})}function buildTitleFormat(dateProfile){let{currentRangeUnit}=dateProfile;if(currentRangeUnit==="year")return{year:"numeric"};if(currentRangeUnit==="month")return{year:"numeric",month:"long"};let days=diffWholeDays(dateProfile.currentRange.start,dateProfile.currentRange.end);return days!==null&&days>1?{year:"numeric",month:"short",day:"numeric"}:{year:"numeric",month:"long",day:"numeric"}}class CalendarDataManager{constructor(props){this.computeCurrentViewData=memoize(this._computeCurrentViewData),this.organizeRawLocales=memoize(organizeRawLocales),this.buildLocale=memoize(buildLocale),this.buildPluginHooks=buildBuildPluginHooks(),this.buildDateEnv=memoize(buildDateEnv$1),this.buildTheme=memoize(buildTheme),this.parseToolbars=memoize(parseToolbars),this.buildViewSpecs=memoize(buildViewSpecs),this.buildDateProfileGenerator=memoizeObjArg(buildDateProfileGenerator),this.buildViewApi=memoize(buildViewApi),this.buildViewUiProps=memoizeObjArg(buildViewUiProps),this.buildEventUiBySource=memoize(buildEventUiBySource,isPropsEqual),this.buildEventUiBases=memoize(buildEventUiBases),this.parseContextBusinessHours=memoizeObjArg(parseContextBusinessHours),this.buildTitle=memoize(buildTitle),this.emitter=new Emitter,this.actionRunner=new TaskRunner(this._handleAction.bind(this),this.updateData.bind(this)),this.currentCalendarOptionsInput={},this.currentCalendarOptionsRefined={},this.currentViewOptionsInput={},this.currentViewOptionsRefined={},this.currentCalendarOptionsRefiners={},this.optionsForRefining=[],this.optionsForHandling=[],this.getCurrentData=()=>this.data,this.dispatch=action=>{this.actionRunner.request(action)},this.props=props,this.actionRunner.pause();let dynamicOptionOverrides={},optionsData=this.computeOptionsData(props.optionOverrides,dynamicOptionOverrides,props.calendarApi),currentViewType=optionsData.calendarOptions.initialView||optionsData.pluginHooks.initialView,currentViewData=this.computeCurrentViewData(currentViewType,optionsData,props.optionOverrides,dynamicOptionOverrides);props.calendarApi.currentDataManager=this,this.emitter.setThisContext(props.calendarApi),this.emitter.setOptions(currentViewData.options);let currentDate=getInitialDate(optionsData.calendarOptions,optionsData.dateEnv),dateProfile=currentViewData.dateProfileGenerator.build(currentDate);rangeContainsMarker(dateProfile.activeRange,currentDate)||(currentDate=dateProfile.currentRange.start);let calendarContext={dateEnv:optionsData.dateEnv,options:optionsData.calendarOptions,pluginHooks:optionsData.pluginHooks,calendarApi:props.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData};for(let callback of optionsData.pluginHooks.contextInit)callback(calendarContext);let eventSources=initEventSources(optionsData.calendarOptions,dateProfile,calendarContext),initialState={dynamicOptionOverrides,currentViewType,currentDate,dateProfile,businessHours:this.parseContextBusinessHours(calendarContext),eventSources,eventUiBases:{},eventStore:createEmptyEventStore(),renderableEventStore:createEmptyEventStore(),dateSelection:null,eventSelection:"",eventDrag:null,eventResize:null,selectionConfig:this.buildViewUiProps(calendarContext).selectionConfig},contextAndState=Object.assign(Object.assign({},calendarContext),initialState);for(let reducer of optionsData.pluginHooks.reducers)Object.assign(initialState,reducer(null,null,contextAndState));computeIsLoading(initialState,calendarContext)&&this.emitter.trigger("loading",!0),this.state=initialState,this.updateData(),this.actionRunner.resume()}resetOptions(optionOverrides,changedOptionNames){let{props}=this;changedOptionNames===void 0?props.optionOverrides=optionOverrides:(props.optionOverrides=Object.assign(Object.assign({},props.optionOverrides||{}),optionOverrides),this.optionsForRefining.push(...changedOptionNames)),(changedOptionNames===void 0||changedOptionNames.length)&&this.actionRunner.request({type:"NOTHING"})}_handleAction(action){let{props,state,emitter}=this,dynamicOptionOverrides=reduceDynamicOptionOverrides(state.dynamicOptionOverrides,action),optionsData=this.computeOptionsData(props.optionOverrides,dynamicOptionOverrides,props.calendarApi),currentViewType=reduceViewType(state.currentViewType,action),currentViewData=this.computeCurrentViewData(currentViewType,optionsData,props.optionOverrides,dynamicOptionOverrides);props.calendarApi.currentDataManager=this,emitter.setThisContext(props.calendarApi),emitter.setOptions(currentViewData.options);let calendarContext={dateEnv:optionsData.dateEnv,options:optionsData.calendarOptions,pluginHooks:optionsData.pluginHooks,calendarApi:props.calendarApi,dispatch:this.dispatch,emitter,getCurrentData:this.getCurrentData},{currentDate,dateProfile}=state;this.data&&this.data.dateProfileGenerator!==currentViewData.dateProfileGenerator&&(dateProfile=currentViewData.dateProfileGenerator.build(currentDate)),currentDate=reduceCurrentDate(currentDate,action),dateProfile=reduceDateProfile(dateProfile,action,currentDate,currentViewData.dateProfileGenerator),(action.type==="PREV"||action.type==="NEXT"||!rangeContainsMarker(dateProfile.currentRange,currentDate))&&(currentDate=dateProfile.currentRange.start);let eventSources=reduceEventSources(state.eventSources,action,dateProfile,calendarContext),eventStore=reduceEventStore(state.eventStore,action,eventSources,dateProfile,calendarContext),renderableEventStore=computeEventSourcesLoading(eventSources)&&!currentViewData.options.progressiveEventRendering&&state.renderableEventStore||eventStore,{eventUiSingleBase,selectionConfig}=this.buildViewUiProps(calendarContext),eventUiBySource=this.buildEventUiBySource(eventSources),eventUiBases=this.buildEventUiBases(renderableEventStore.defs,eventUiSingleBase,eventUiBySource),newState={dynamicOptionOverrides,currentViewType,currentDate,dateProfile,eventSources,eventStore,renderableEventStore,selectionConfig,eventUiBases,businessHours:this.parseContextBusinessHours(calendarContext),dateSelection:reduceDateSelection(state.dateSelection,action),eventSelection:reduceSelectedEvent(state.eventSelection,action),eventDrag:reduceEventDrag(state.eventDrag,action),eventResize:reduceEventResize(state.eventResize,action)},contextAndState=Object.assign(Object.assign({},calendarContext),newState);for(let reducer of optionsData.pluginHooks.reducers)Object.assign(newState,reducer(state,action,contextAndState));let wasLoading=computeIsLoading(state,calendarContext),isLoading=computeIsLoading(newState,calendarContext);!wasLoading&&isLoading?emitter.trigger("loading",!0):wasLoading&&!isLoading&&emitter.trigger("loading",!1),this.state=newState,props.onAction&&props.onAction(action)}updateData(){let{props,state}=this,oldData=this.data,optionsData=this.computeOptionsData(props.optionOverrides,state.dynamicOptionOverrides,props.calendarApi),currentViewData=this.computeCurrentViewData(state.currentViewType,optionsData,props.optionOverrides,state.dynamicOptionOverrides),data=this.data=Object.assign(Object.assign(Object.assign({viewTitle:this.buildTitle(state.dateProfile,currentViewData.options,optionsData.dateEnv),calendarApi:props.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},optionsData),currentViewData),state),changeHandlers=optionsData.pluginHooks.optionChangeHandlers,oldCalendarOptions=oldData&&oldData.calendarOptions,newCalendarOptions=optionsData.calendarOptions;if(oldCalendarOptions&&oldCalendarOptions!==newCalendarOptions){oldCalendarOptions.timeZone!==newCalendarOptions.timeZone&&(state.eventSources=data.eventSources=reduceEventSourcesNe
1wTimeZone(data.eventSources,state.dateProfile,data),state.eventStore=data.eventStore=rezoneEventStoreDates(data.eventStore,oldData.dateEnv,data.dateEnv),state.renderableEventStore=data.renderableEventStore=rezoneEventStoreDates(data.renderableEventStore,oldData.dateEnv,data.dateEnv));for(let optionName in changeHandlers)(this.optionsForHandling.indexOf(optionName)!==-1||oldCalendarOptions[optionName]!==newCalendarOptions[optionName])&&changeHandlers[optionName](newCalendarOptions[optionName],data)}this.optionsForHandling=[],props.onData&&props.onData(data)}computeOptionsData(optionOverrides,dynamicOptionOverrides,calendarApi){if(!this.optionsForRefining.length&&optionOverrides===this.stableOptionOverrides&&dynamicOptionOverrides===this.stableDynamicOptionOverrides)return this.stableCalendarOptionsData;let{refinedOptions,pluginHooks,localeDefaults,availableLocaleData,extra}=this.processRawCalendarOptions(optionOverrides,dynamicOptionOverrides);warnUnknownOptions(extra);let dateEnv=this.buildDateEnv(refinedOptions.timeZone,refinedOptions.locale,refinedOptions.weekNumberCalculation,refinedOptions.firstDay,refinedOptions.weekText,pluginHooks,availableLocaleData,refinedOptions.defaultRangeSeparator),viewSpecs=this.buildViewSpecs(pluginHooks.views,this.stableOptionOverrides,this.stableDynamicOptionOverrides,localeDefaults),theme=this.buildTheme(refinedOptions,pluginHooks),toolbarConfig=this.parseToolbars(refinedOptions,this.stableOptionOverrides,theme,viewSpecs,calendarApi);return this.stableCalendarOptionsData={calendarOptions:refinedOptions,pluginHooks,dateEnv,viewSpecs,theme,toolbarConfig,localeDefaults,availableRawLocales:availableLocaleData.map}}processRawCalendarOptions(optionOverrides,dynamicOptionOverrides){let{locales,locale}=mergeRawOptions([BASE_OPTION_DEFAULTS,optionOverrides,dynamicOptionOverrides]),availableLocaleData=this.organizeRawLocales(locales),availableRawLocales=availableLocaleData.map,localeDefaults=this.buildLocale(locale||availableLocaleData.defaultCode,availableRawLocales).options,pluginHooks=this.buildPluginHooks(optionOverrides.plugins||[],globalPlugins),refiners=this.currentCalendarOptionsRefiners=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},BASE_OPTION_REFINERS),CALENDAR_LISTENER_REFINERS),CALENDAR_OPTION_REFINERS),pluginHooks.listenerRefiners),pluginHooks.optionRefiners),extra={},raw=mergeRawOptions([BASE_OPTION_DEFAULTS,localeDefaults,optionOverrides,dynamicOptionOverrides]),refined={},currentRaw=this.currentCalendarOptionsInput,currentRefined=this.currentCalendarOptionsRefined,anyChanges=!1;for(let optionName in raw)this.optionsForRefining.indexOf(optionName)===-1&&(raw[optionName]===currentRaw[optionName]||COMPLEX_OPTION_COMPARATORS[optionName]&&optionName in currentRaw&&COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName],raw[optionName]))?refined[optionName]=currentRefined[optionName]:refiners[optionName]?(refined[optionName]=refiners[optionName](raw[optionName]),anyChanges=!0):extra[optionName]=currentRaw[optionName];return anyChanges&&(this.currentCalendarOptionsInput=raw,this.currentCalendarOptionsRefined=refined,this.stableOptionOverrides=optionOverrides,this.stableDynamicOptionOverrides=dynamicOptionOverrides),this.optionsForHandling.push(...this.optionsForRefining),this.optionsForRefining=[],{rawOptions:this.currentCalendarOptionsInput,refinedOptions:this.currentCalendarOptionsRefined,pluginHooks,availableLocaleData,localeDefaults,extra}}_computeCurrentViewData(viewType,optionsData,optionOverrides,dynamicOptionOverrides){let viewSpec=optionsData.viewSpecs[viewType];if(!viewSpec)throw new Error(`viewType "${viewType}" is not available. Please make sure you've loaded all neccessary plugins`);let{refinedOptions,extra}=this.processRawViewOptions(viewSpec,optionsData.pluginHooks,optionsData.localeDefaults,optionOverrides,dynamicOptionOverrides);warnUnknownOptions(extra);let dateProfileGenerator=this.buildDateProfileGenerator({dateProfileGeneratorClass:viewSpec.optionDefaults.dateProfileGeneratorClass,duration:viewSpec.duration,durationUnit:viewSpec.durationUnit,usesMinMaxTime:viewSpec.optionDefaults.usesMinMaxTime,dateEnv:optionsData.dateEnv,calendarApi:this.props.calendarApi,slotMinTime:refinedOptions.slotMinTime,slotMaxTime:refinedOptions.slotMaxTime,showNonCurrentDates:refinedOptions.showNonCurrentDates,dayCount:refinedOptions.dayCount,dateAlignment:refinedOptions.dateAlignment,dateIncrement:refinedOptions.dateIncrement,hiddenDays:refinedOptions.hiddenDays,weekends:refinedOptions.weekends,nowInput:refinedOptions.now,validRangeInput:refinedOptions.validRange,visibleRangeInput:refinedOptions.visibleRange,fixedWeekCount:refinedOptions.fixedWeekCount}),viewApi=this.buildViewApi(viewType,this.getCurrentData,optionsData.dateEnv);return{viewSpec,options:refinedOptions,dateProfileGenerator,viewApi}}processRawViewOptions(viewSpec,pluginHooks,localeDefaults,optionOverrides,dynamicOptionOverrides){let raw=mergeRawOptions([BASE_OPTION_DEFAULTS,viewSpec.optionDefaults,localeDefaults,optionOverrides,viewSpec.optionOverrides,dynamicOptionOverrides]),refiners=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},BASE_OPTION_REFINERS),CALENDAR_LISTENER_REFINERS),CALENDAR_OPTION_REFINERS),VIEW_OPTION_REFINERS),pluginHooks.listenerRefiners),pluginHooks.optionRefiners),refined={},currentRaw=this.currentViewOptionsInput,currentRefined=this.currentViewOptionsRefined,anyChanges=!1,extra={};for(let optionName in raw)raw[optionName]===currentRaw[optionName]||COMPLEX_OPTION_COMPARATORS[optionName]&&COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName],currentRaw[optionName])?refined[optionName]=currentRefined[optionName]:(raw[optionName]===this.currentCalendarOptionsInput[optionName]||COMPLEX_OPTION_COMPARATORS[optionName]&&COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName],this.currentCalendarOptionsInput[optionName])?optionName in this.currentCalendarOptionsRefined&&(refined[optionName]=this.currentCalendarOptionsRefined[optionName]):refiners[optionName]?refined[optionName]=refiners[optionName](raw[optionName]):extra[optionName]=raw[optionName],anyChanges=!0);return anyChanges&&(this.currentViewOptionsInput=raw,this.currentViewOptionsRefined=refined),{rawOptions:this.currentViewOptionsInput,refinedOptions:this.currentViewOptionsRefined,extra}}}function buildDateEnv$1(timeZone,explicitLocale,weekNumberCalculation,firstDay,weekText,pluginHooks,availableLocaleData,defaultSeparator){let locale=buildLocale(explicitLocale||availableLocaleData.defaultCode,availableLocaleData.map);return new DateEnv({calendarSystem:"gregory",timeZone,namedTimeZoneImpl:pluginHooks.namedTimeZonedImpl,locale,weekNumberCalculation,firstDay,weekText,cmdFormatter:pluginHooks.cmdFormatter,defaultSeparator})}function buildTheme(options,pluginHooks){let ThemeClass=pluginHooks.themeClasses[options.themeSystem]||StandardTheme;return new ThemeClass(options)}function buildDateProfileGenerator(props){let DateProfileGeneratorClass=
1props.dateProfileGeneratorClass||DateProfileGenerator;return new DateProfileGeneratorClass(props)}function buildViewApi(type,getCurrentData,dateEnv){return new ViewImpl(type,getCurrentData,dateEnv)}function buildEventUiBySource(eventSources){return mapHash(eventSources,eventSource=>eventSource.ui)}function buildEventUiBases(eventDefs,eventUiSingleBase,eventUiBySource){let eventUiBases={"":eventUiSingleBase};for(let defId in eventDefs){let def=eventDefs[defId];def.sourceId&&eventUiBySource[def.sourceId]&&(eventUiBases[defId]=eventUiBySource[def.sourceId])}return eventUiBases}function buildViewUiProps(calendarContext){let{options}=calendarContext;return{eventUiSingleBase:createEventUi({display:options.eventDisplay,editable:options.editable,startEditable:options.eventStartEditable,durationEditable:options.eventDurationEditable,constraint:options.eventConstraint,overlap:typeof options.eventOverlap=="boolean"?options.eventOverlap:void 0,allow:options.eventAllow,backgroundColor:options.eventBackgroundColor,borderColor:options.eventBorderColor,textColor:options.eventTextColor,color:options.eventColor},calendarContext),selectionConfig:createEventUi({constraint:options.selectConstraint,overlap:typeof options.selectOverlap=="boolean"?options.selectOverlap:void 0,allow:options.selectAllow},calendarContext)}}function computeIsLoading(state,context){for(let isLoadingFunc of context.pluginHooks.isLoadingFuncs)if(isLoadingFunc(state))return!0;return!1}function parseContextBusinessHours(calendarContext){return parseBusinessHours(calendarContext.options.businessHours,calendarContext)}function warnUnknownOptions(options,viewName){for(let optionName in options)console.warn(`Unknown option '${optionName}'`+(viewName?` for view '${viewName}'`:""))}class ToolbarSection extends BaseComponent{render(){let children=this.props.widgetGroups.map(widgetGroup=>this.renderWidgetGroup(widgetGroup));return y("div",{className:"fc-toolbar-chunk"},...children)}renderWidgetGroup(widgetGroup){let{props}=this,{theme}=this.context,children=[],isOnlyButtons=!0;for(let widget of widgetGroup){let{buttonName,buttonClick,buttonText,buttonIcon,buttonHint}=widget;if(buttonName==="title")isOnlyButtons=!1,children.push(y("h2",{className:"fc-toolbar-title",id:props.titleId},props.title));else{let isPressed=buttonName===props.activeButton,isDisabled=!props.isTodayEnabled&&buttonName==="today"||!props.isPrevEnabled&&buttonName==="prev"||!props.isNextEnabled&&buttonName==="next",buttonClasses=[`fc-${buttonName}-button`,theme.getClass("button")];isPressed&&buttonClasses.push(theme.getClass("buttonActive")),children.push(y("button",{type:"button",title:typeof buttonHint=="function"?buttonHint(props.navUnit):buttonHint,disabled:isDisabled,"aria-pressed":isPressed,className:buttonClasses.join(" "),onClick:buttonClick},buttonText||(buttonIcon?y("span",{className:buttonIcon}):"")))}}if(children.length>1){let groupClassName=isOnlyButtons&&theme.getClass("buttonGroup")||"";return y("div",{className:groupClassName},...children)}return children[0]}}class Toolbar extends BaseComponent{render(){let{model,extraClassName}=this.props,forceLtr=!1,startContent,endContent,sectionWidgets=model.sectionWidgets,centerContent=sectionWidgets.center;return sectionWidgets.left?(forceLtr=!0,startContent=sectionWidgets.left):startContent=sectionWidgets.start,sectionWidgets.right?(forceLtr=!0,endContent=sectionWidgets.right):endContent=sectionWidgets.end,y("div",{className:[extraClassName||"","fc-toolbar",forceLtr?"fc-toolbar-ltr":""].join(" ")},this.renderSection("start",startContent||[]),this.renderSection("center",centerContent||[]),this.renderSection("end",endContent||[]))}renderSection(key,widgetGroups){let{props}=this;return y(ToolbarSection,{key,widgetGroups,title:props.title,navUnit:props.navUnit,activeButton:props.activeButton,isTodayEnabled:props.isTodayEnabled,isPrevEnabled:props.isPrevEnabled,isNextEnabled:props.isNextEnabled,titleId:props.titleId})}}class ViewHarness extends BaseComponent{constructor(){super(...arguments),this.state={availableWidth:null},this.handleEl=el=>{this.el=el,setRef(this.props.elRef,el),this.updateAvailableWidth()},this.handleResize=()=>{this.updateAvailableWidth()}}render(){let{props,state}=this,{aspectRatio}=props,classNames=["fc-view-harness",aspectRatio||props.liquid||props.height?"fc-view-harness-active":"fc-view-harness-
1passive"],height="",paddingBottom="";return aspectRatio?state.availableWidth!==null?height=state.availableWidth/aspectRatio:paddingBottom=`${1/aspectRatio*100}%`:height=props.height||"",y("div",{"aria-labelledby":props.labeledById,ref:this.handleEl,className:classNames.join(" "),style:{height,paddingBottom}},props.children)}componentDidMount(){this.context.addResizeHandler(this.handleResize)}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}updateAvailableWidth(){this.el&&this.props.aspectRatio&&this.setState({availableWidth:this.el.offsetWidth})}}class EventClicking extends Interaction{constructor(settings){super(settings),this.handleSegClick=(ev,segEl)=>{let{component}=this,{context}=component,seg=getElSeg(segEl);if(seg&&component.isValidSegDownEl(ev.target)){let hasUrlContainer=elementClosest(ev.target,".fc-event-forced-url"),url=hasUrlContainer?hasUrlContainer.querySelector("a[href]").href:"";context.emitter.trigger("eventClick",{el:segEl,event:new EventImpl(component.context,seg.eventRange.def,seg.eventRange.instance),jsEvent:ev,view:context.viewApi}),url&&!ev.defaultPrevented&&(window.location.href=url)}},this.destroy=listenBySelector(settings.el,"click",".fc-event",this.handleSegClick)}}class EventHovering extends Interaction{constructor(settings){super(settings),this.handleEventElRemove=el=>{el===this.currentSegEl&&this.handleSegLeave(null,this.currentSegEl)},this.handleSegEnter=(ev,segEl)=>{getElSeg(segEl)&&(this.currentSegEl=segEl,this.triggerEvent("eventMouseEnter",ev,segEl))},this.handleSegLeave=(ev,segEl)=>{this.currentSegEl&&(this.currentSegEl=null,this.triggerEvent("eventMouseLeave",ev,segEl))},this.removeHoverListeners=listenToHoverBySelector(settings.el,".fc-event",this.handleSegEnter,this.handleSegLeave)}destroy(){this.removeHoverListeners()}
1triggerEvent(publicEvName,ev,segEl){let{component}=this,{context}=component,seg=getElSeg(segEl);(!ev||component.isValidSegDownEl(ev.target))&&context.emitter.trigger(publicEvName,{el:segEl,event:new EventImpl(context,seg.eventRange.def,seg.eventRange.instance),jsEvent:ev,view:context.viewApi})}}class CalendarContent extends PureComponent{constructor(){super(...arguments),this.buildViewContext=memoize(buildViewContext),this.buildViewPropTransformers=memoize(buildViewPropTransformers),this.buildToolbarProps=memoize(buildToolbarProps),this.headerRef=d(),this.footerRef=d(),this.interactionsStore={},this.state={viewLabelId:getUniqueDomId()},this.registerInteractiveComponent=(component,settingsInput)=>{let settings=parseInteractionSettings(component,settingsInput),interactions=[EventClicking,EventHovering].concat(this.props.pluginHooks.componentInteractions).map(TheInteractionClass=>new TheInteractionClass(settings));this.interactionsStore[component.uid]=interactions,interactionSettingsStore[component.uid]=settings},this.unregisterInteractiveComponent=component=>{let listeners=this.interactionsStore[component.uid];if(listeners){for(let listener of listeners)listener.destroy();delete this.interactionsStore[component.uid]}delete interactionSettingsStore[component.uid]},this.resizeRunner=new DelayedRunner(()=>{this.props.emitter.trigger("_resize",!0),this.props.emitter.trigger("windowResize",{view:this.props.viewApi})}),this.handleWindowResize=ev=>{let{options}=this.props;options.handleWindowResize&&ev.target===window&&this.resizeRunner.request(options.windowResizeDelay)}}render(){let{props}=this,{toolbarConfig,options}=props,toolbarProps=this.buildToolbarProps(props.viewSpec,props.dateProfile,props.dateProfileGenerator,props.currentDate,getNow(props.options.now,props.dateEnv),props.viewTitle),viewVGrow=!1,viewHeight="",viewAspectRatio;props.isHeightAuto||props.forPrint?viewHeight="":options.height!=null?viewVGrow=!0:options.contentHeight!=null?viewHeight=options.contentHeight:viewAspectRatio=Math.max(options.aspectRatio,.5);let viewContext=this.buildViewContext(props.viewSpec,props.viewApi,props.options,props.dateProfileGenerator,props.dateEnv,props.theme,props.pluginHooks,props.dispatch,props.getCurrentData,props.emitter,props.calendarApi,this.registerInteractiveComponent,this.unregisterInteractiveComponent),viewLabelId=toolbarConfig.header&&toolbarConfig.header.hasTitle?this.state.viewLabelId:"";return y(ViewContextType.Provider,{value:viewContext},toolbarConfig.header&&y(Toolbar,Object.assign({ref:this.headerRef,extraClassName:"fc-header-toolbar",model:toolbarConfig.header,titleId:viewLabelId},toolbarProps)),y(ViewHarness,{liquid:viewVGrow,height:viewHeight,aspectRatio:viewAspectRatio,labeledById:viewLabelId},this.renderView(props),this.buildAppendContent()),toolbarConfig.footer&&y(Toolbar,Object.assign({ref:this.footerRef,extraClassName:"fc-footer-toolbar",model:toolbarConfig.footer,titleId:""},toolbarProps)))}componentDidMount(){let{props}=this;this.calendarInteractions=props.pluginHooks.calendarInteractions.map(CalendarInteractionClass=>new CalendarInteractionClass(props)),window.addEventListener("resize",this.handleWindowResize);let{propSetHandlers}=props.pluginHooks;for(let propName in propSetHandlers)propSetHandlers[propName](props[propName],props)}componentDidUpdate(prevProps){let{props}=this,{propSetHandlers}=props.pluginHooks;for(let propName in propSetHandlers)props[propName]!==prevProps[propName]&&propSetHandlers[propName](props[propName],props)}componentWillUnmount(){window.removeEventListener("resize",this.handleWindowResize),this.resizeRunner.clear();for(let interaction of this.calendarInteractions)interaction.destroy();this.props.emitter.trigger("_unmount")}buildAppendContent(){let{props}=this,children=props.pluginHooks.viewContainerAppends.map(buildAppendContent=>buildAppendContent(props));return y(_,{},...children)}renderView(props){let{pluginHooks}=props,{viewSpec}=props,viewProps={dateProfile:props.dateProfile,businessHours:props.businessHours,eventStore:props.renderableEventStore,eventUiBases:props.eventUiBases,dateSelection:props.dateSelection,eventSelection:props.eventSelection,eventDrag:props.eventDrag,eventResize:props.eventResize,isHeightAuto:props.isHeightAuto,forPrint:props.forPrint},transformers=this.buildViewPropTransformers(pluginHooks.viewPropsTransformers);for(let transformer of transformers)Object.assign(viewProps,transformer.transform(viewProps,props));let ViewComponent=viewSpec.component;return y(ViewComponent,Object.assign({},viewProps))}}function buildToolbarProps(viewSpec,dateProfile,dateProfileGenerator,currentDate,now,title){let todayInfo=dateProfileGenerator.build(now,void 0,!1),prevInfo=dateProfileGenerator.buildPrev(dateProfile,currentDate,!1),nextInfo=dateProfileGenerator.buildNext(dateProfile,currentDate,!1);return{title,activeButton:viewSpec.type,navUnit:viewSpec.singleUnit,isTodayEnabled:todayInfo.isValid&&!rangeContainsMarker(dateProfile.currentRange,now),isPrevEnabled:prevInfo.isValid,isNextEnabled:nextInfo.isValid}}function buildViewPropTransformers(theClasses){return theClasses.map(TheClass=>new TheClass)}class Calendar extends CalendarImpl{constructor(el,optionOverrides={}){super(),this.isRendering=!1,this.isRendered=!1,this.currentClassNames=[],this.customContentRenderId=0,this.handleAction=action=>{switch(action.type){case"SET_EVENT_DRAG":case"SET_EVENT_RESIZE":this.renderRunner.tryDrain()}},this.handleData=data=>{this.currentData=data,this.renderRunner.request(data.calendarOptions.rerenderDelay)},this.handleRenderRequest=()=>{if(this.isRendering){this.isRendered=!0;let{currentData}=this;flushSync(()=>{D$1(y(CalendarRoot,{options:currentData.calendarOptions,theme:currentData.theme,emitter:currentData.emitter},(classNames,height,isHeightAuto,forPrint)=>(this.setClassNames(classNames),this.setHeight(height),y(RenderId.Provider,{value:this.customContentRenderId},y(CalendarContent,Object.assign({isHeightAuto,forPrint},currentData))))),this.el)})}else this.isRendered&&(this.isRendered=!1,D$1(null,this.el),this.setClassNames([]),this.setHeight(""))},ensureElHasStyles(el),this.el=el,this.renderRunner=new DelayedRunner(this.handleRenderRequest),new CalendarDataManager({optionOverrides,calendarApi:this,onAction:this.handleAction,onData:this.handleData})}render(){let wasRendering=this.isRendering;wasRendering?this.customContentRenderId+=1:this.isRendering=!0,this.renderRunner.request(),wasRendering&&this.updateSize()}destroy(){this.isRendering&&(this.isRendering=!1,this.renderRunner.request())}updateSize(){flushSync(()=>{super.updateSize()})}batchRendering(func){this.renderRunner.pause("batchRendering"),func(),this.renderRunner.resume("batchRendering")}pauseRendering(){this.renderRunner.pause("pauseRendering")}resumeRendering(){this.renderRunner.resume("pauseRendering",!0)}resetOptions(optionOverrides,changedOptionNames){this.currentDataManager.resetOptions(optionOverrides,changedOptionNames)}
1setClassNames(classNames){if(!isArraysEqual(classNames,this.currentClassNames)){let{classList}=this.el;for(let className of this.currentClassNames)classList.remove(className);for(let className of classNames)classList.add(className);this.currentClassNames=classNames}}setHeight(height){applyStyleProp(this.el,"height",height)}}var css_248z$1=':root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:"";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygri
1d-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:"";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}
1.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}';injectStyles(css_248z$1);function splitSegsByRow(segs,rowCnt){let byRow=[];for(let i2=0;i2<rowCnt;i2+=1)byRow[i2]=[];for(let seg of segs)byRow[seg.row].push(seg);return byRow}function splitSegsByFirstCol(segs,colCnt){let byCol=[];for(let i2=0;i2<colCnt;i2+=1)byCol[i2]=[];for(let seg of segs)byCol[seg.firstCol].push(seg);return byCol}function splitInteractionByRow(ui,rowCnt){let byRow=[];if(ui){for(let i2=0;i2<rowCnt;i2+=1)byRow[i2]={affectedInstances:ui.affectedInstances,isEvent:ui.isEvent,segs:[]};for(let seg of ui.segs)byRow[seg.row].segs.push(seg)}else for(let i2=0;i2<rowCnt;i2+=1)byRow[i2]=null;return byRow}const DEFAULT_TABLE_EVENT_TIME_FORMAT=createFormatter({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});function hasListItemDisplay(seg){let{display}=seg.eventRange.ui;return display==="list-item"||display==="auto"&&!seg.eventRange.def.allDay&&seg.firstCol===seg.lastCol&&seg.isStart&&seg.isEnd}class TableBlockEvent extends BaseComponent{render(){let{props}=this;return y(StandardEvent,Object.assign({}
1,props,{elClasses:["fc-daygrid-event","fc-daygrid-block-event","fc-h-event"],defaultTimeFormat:DEFAULT_TABLE_EVENT_TIME_FORMAT,defaultDisplayEventEnd:props.defaultDisplayEventEnd,disableResizing:!props.seg.eventRange.def.allDay}))}}class TableListItemEvent extends BaseComponent{render(){let{props,context}=this,{options}=context,{seg}=props,timeFormat=options.eventTimeFormat||DEFAULT_TABLE_EVENT_TIME_FORMAT,timeText=buildSegTimeText(seg,timeFormat,context,!0,props.defaultDisplayEventEnd);return y(EventContainer,Object.assign({},props,{elTag:"a",elClasses:["fc-daygrid-event","fc-daygrid-dot-event"],elAttrs:getSegAnchorAttrs(props.seg,context),defaultGenerator:renderInnerContent$1,timeText,isResizing:!1,isDateSelecting:!1}))}}function renderInnerContent$1(renderProps){return y(_,null,y("div",{className:"fc-daygrid-event-dot",style:{borderColor:renderProps.borderColor||renderProps.backgroundColor}}),renderProps.timeText&&y("div",{className:"fc-event-time"},renderProps.timeText),y("div",{className:"fc-event-title"},renderProps.event.title||y(_,null," ")))}class TableCellMoreLink extends BaseComponent{constructor(){super(...arguments),this.compileSegs=memoize(compileSegs)}render(){let{props}=this,{allSegs,invisibleSegs}=this.compileSegs(props.singlePlacements);
1return y(MoreLinkContainer,{elClasses:["fc-daygrid-more-link"],dateProfile:props.dateProfile,todayRange:props.todayRange,allDayDate:props.allDayDate,moreCnt:props.moreCnt,allSegs,hiddenSegs:invisibleSegs,alignmentElRef:props.alignmentElRef,alignGridTop:props.alignGridTop,extraDateSpan:props.extraDateSpan,popoverContent:()=>{let isForcedInvisible=(props.eventDrag?props.eventDrag.affectedInstances:null)||(props.eventResize?props.eventResize.affectedInstances:null)||{};return y(_,null,allSegs.map(seg=>{let instanceId=seg.eventRange.instance.instanceId;return y("div",{className:"fc-daygrid-event-harness",key:instanceId,style:{visibility:isForcedInvisible[instanceId]?"hidden":""}},hasListItemDisplay(seg)?y(TableListItemEvent,Object.assign({seg,isDragging:!1,isSelected:instanceId===props.eventSelection,defaultDisplayEventEnd:!1},getSegMeta(seg,props.todayRange))):y(TableBlockEvent,Object.assign({seg,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:instanceId===props.eventSelection,defaultDisplayEventEnd:!1},getSegMeta(seg,props.todayRange))))}))}})}}function compileSegs(singlePlacements){let allSegs=[],invisibleSegs=[];for(let placement of singlePlacements)allSegs.push(placement.seg),placement.isVisible||invisibleSegs.push(placement.seg);return{allSegs,invisibleSegs}}const DEFAULT_WEEK_NUM_FORMAT$1=createFormatter({week:"narrow"});class TableCell extends DateComponent{constructor(){super(...arguments),this.rootElRef=d(),this.state={dayNumberId:getUniqueDomId()},this.handleRootEl=el=>{setRef(this.rootElRef,el),setRef(this.props.elRef,el)}}render(){let{context,props,state,rootElRef}=this,{options,dateEnv}=context,{date,dateProfile}=props;const isMonthStart=props.showDayNumber&&shouldDisplayMonthStart(date,dateProfile.currentRange,dateEnv);return y(DayCellContainer,{elTag:"td",elRef:this.handleRootEl,elClasses:["fc-daygri
1d-day",...props.extraClassNames||[]],elAttrs:Object.assign(Object.assign(Object.assign({},props.extraDataAttrs),props.showDayNumber?{"aria-labelledby":state.dayNumberId}:{}),{role:"gridcell"}),defaultGenerator:renderTopInner,date,dateProfile,todayRange:props.todayRange,showDayNumber:props.showDayNumber,isMonthStart,extraRenderProps:props.extraRenderProps},(InnerContent,renderProps)=>y("div",{ref:props.innerElRef,className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",style:{minHeight:props.minHeight}},props.showWeekNumber&&y(WeekNumberContainer,{elTag:"a",elClasses:["fc-daygrid-week-number"],elAttrs:buildNavLinkAttrs(context,date,"week"),date,defaultFormat:DEFAULT_WEEK_NUM_FORMAT$1}),!renderProps.isDisabled&&(props.showDayNumber||hasCustomDayCellContent(options)||props.forceDayTop)?y("div",{className:"fc-daygrid-day-top"},y(InnerContent,{elTag:"a",elClasses:["fc-daygrid-day-number",isMonthStart&&"fc-daygrid-month-start"],elAttrs:Object.assign(Object.assign({},buildNavLinkAttrs(context,date)),{id:state.dayNumberId})})):props.showDayNumber?y("div",{className:"fc-daygrid-day-top",style:{visibility:"hidden"}},y("a",{className:"fc-daygrid-day-number"}," ")):void 0,y("div",{className:"fc-daygrid-day-events",ref:props.fgContentElRef},props.fgContent,y("div",{className:"fc-daygrid-day-bottom",style:{marginTop:props.moreMarginTop}},y(TableCellMoreLink,{allDayDate:date,singlePlacements:props.singlePlacements,moreCnt:props.moreCnt,alignmentElRef:rootElRef,alignGridTop:!props.showDayNumber,extraDateSpan:props.extraDateSpan,dateProfile:props.dateProfile,eventSelection:props.eventSelection,eventDrag:props.eventDrag,eventResize:props.eventResize,todayRange:props.todayRange}))),y("div",{className:"fc-daygrid-day-bg"},props.bgContent)))}}function renderTopInner(props){return props.dayNumberText||y(_,null," ")}function shouldDisplayMonthStart(date,currentRange,dateEnv){const{start:currentStart,end:currentEnd}=currentRange,currentEndIncl=addMs(currentEnd,-1),currentFirstYear=dateEnv.getYear(currentStart),currentFirstMonth=dateEnv.getMonth(currentStart),currentLastYear=dateEnv.getYear(currentEndIncl),currentLastMonth=dateEnv.getMonth(currentEndIncl);return!(currentFirstYear===currentLastYear&&currentFirstMonth===currentLastMonth)&&(date.valueOf()===currentStart.valueOf()||dateEnv.getDay(date)===1&&date.valueOf()<currentEnd.valueOf())}function generateSegKey(seg){return seg.eventRange.instance.instanceId+":"+seg.firstCol}function generateSegUid(seg){return generateSegKey(seg)+":"+seg.lastCol}function computeFgSegPlacement(segs,dayMaxEvents,dayMaxEventRows,strictOrder,segHeights,maxContentHeight,cells){let hierarchy=new DayGridSegHierarchy(segEntry=>{let segUid=segs[segEntry.index].eventRange.instance.instanceId+":"+segEntry.span.start+":"+(segEntry.span.end-1);return segHeights[segUid]});hierarchy.allowReslicing=!0,hierarchy.strictOrder=strictOrder,dayMaxEvents===!0||dayMaxEventRows===!0?(hierarchy.maxCoord=maxContentHeight,hierarchy.hiddenConsumes=!0):typeof dayMaxEvents=="number"?hierarchy.maxStackCnt=dayMaxEvents:typeof dayMaxEventRows=="number"&&(hierarchy.maxStackCnt=dayMaxEventRows,hierarchy.hiddenConsumes=!0);let segInputs=[],unknownHeightSegs=[];for(let i2=0;i2<segs.length;i2+=1){let seg=segs[i2],segUid=generateSegUid(seg);segHeights[segUid]!=null?segInputs.push({index:i2,span:{start:seg.firstCol,end:seg.lastCol+1}}):unknownHeightSegs.push(seg)}let hiddenEntries=hierarchy.addSegs(segInputs),segRects=hierarchy.toRects(),{singleColPlacements,multiColPlacements,leftoverMargins}=placeRects(segRects,segs,cells),moreCnts=[],moreMarginTops=[];for(let seg of unknownHeightSegs){multiColPlacements[seg.firstCol].push({seg,isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let col=seg.firstCol;col<=seg.lastCol;col+=1)singleColPlacements[col].push({seg:resliceSeg(seg,col,col+1,cells),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let col=0;col<cells.length;col+=1)moreCnts.push(0);for(let hiddenEntry of hiddenEntries){let seg=segs[hiddenEntry.index],hiddenSpan=hiddenEntry.span;multiColPlacements[hiddenSpan.start].push({seg:resliceSeg(seg,hiddenSpan.start,hiddenSpan.end,cells),isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let col=hiddenSpan.start;col<hiddenSpan.end;col+=1)moreCnts[col]+=1,singleColPlacements[col].push({seg:resliceSeg(seg,col,col+1,cells),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let col=0;col<cells.length;col+=1)moreMarginTops.push(leftoverMargins[col]);return{singleColPlacements,multiColPlacements,moreCnts,moreMarginTops}}function placeRects(allRects,segs,cells){let rectsByEachCol=groupRectsByEachCol(allRects,cells.length),singleColPlacements=[],multiColPlacements=[],leftoverMargins=[];for(let col=0;col<cells.length;col+=1){let rects=rectsByEachCol[col],singlePlacements=[],currentHeight=0,currentMarginTop=0;for(let rect of rects){let seg=segs[rect.index];singlePlacements.push({seg:resliceSeg(seg,col,col+1,cells),isVisible:!0,isAbsolute:!1,absoluteTop:rect.levelCoord,marginTop:rect.levelCoord-currentHeight}),currentHeight=rect.levelCoord+rect.thickness}let multiPlacements=[];currentHeight=0,currentMarginTop=0;for(let rect of rects){let seg=segs[rect.index],isAbsolute=rect.span.end-rect.span.start>1,isFirstCol=rect.span.start===col;currentMarginTop+=rect.levelCoord-currentHeight,currentHeight=rect.levelCoord+rect.thickness,isAbsolute?(currentMarginTop+=rect.thickness,isFirstCol&&multiPlacements.push({seg:resliceSeg(seg,rect.span.start,rect.span.end,cells),isVisible:!0,isAbsolute:!0,absoluteTop:rect.levelCoord,marginTop:0})):isFirstCol&&(multiPlacements.push({seg:resliceSeg(seg,rect.span.start,rect.span.end,cells),isVisible:!0,isAbsolute:!1,absoluteTop:rect.levelCoord,marginTop:currentMarginTop}),currentMarginTop=0)}singleColPlacements.push(singlePlacements),multiColPlacements.push(multiPlacements),leftoverMargins.push(currentMarginTop)}return{singleColPlacements,multiColPlacements,leftoverMargins}}function groupRectsByEachCol(rects,colCnt){let rectsByEachCol=[];for(let col=0;col<colCnt;col+=1)rectsByEachCol.push([]);for(let rect of rects)for(let col=rect.span.start;col<rect.span.end;col+=1)rectsByEachCol[col].push(rect);return rectsByEachCol}function resliceSeg(seg,spanStart,spanEnd,cells){if(seg.firstCol===spanStart&&seg.lastCol===spanEnd-1)return seg;let eventRange=seg.eventRange,origRange=eventRange.range,slicedRange=intersectRanges(origRange,{start:cells[spanStart].date,end:addDays(cells[spanEnd-1].date,1)});return Object.assign(Object.assign({},seg),{firstCol:spanStart,lastCol:spanEnd-1,eventRange:{def:eventRange.def,ui:Object.assign(Object.assign({},eventRange.ui),{durationEditable:!1}),instance:eventRange.instance,range:slicedRange},isStart:seg.isStart&&slicedRange.start.valueOf()===origRange.start.valueOf(),isEnd:seg.isEnd&&slicedRange.end.valueOf()===origRange.end.valueOf()})}class DayGridSegHierarchy extends SegHierarchy{constructor(){super(...arguments),this.hiddenConsumes=!1,this.forceHidden={}}addSegs(segInputs){const hiddenSegs=super.addSegs(segInputs),{entriesByLevel}=this,excludeHidden=entry=>!this.forceHidden[buildEntryKey(entry)];for(let level=0;level<entriesByLevel.length;
1level+=1)entriesByLevel[level]=entriesByLevel[level].filter(excludeHidden);return hiddenSegs}handleInvalidInsertion(insertion,entry,hiddenEntries){const{entriesByLevel,forceHidden}=this,{touchingEntry,touchingLevel,touchingLateral}=insertion;if(this.hiddenConsumes&&touchingEntry){const touchingEntryId=buildEntryKey(touchingEntry);if(!forceHidden[touchingEntryId])if(this.allowReslicing){const placeholderEntry=Object.assign(Object.assign({},touchingEntry),{span:intersectSpans(touchingEntry.span,entry.span)}),placeholderEntryId=buildEntryKey(placeholderEntry);forceHidden[placeholderEntryId]=!0,entriesByLevel[touchingLevel][touchingLateral]=placeholderEntry,this.splitEntry(touchingEntry,entry,hiddenEntries)}else forceHidden[touchingEntryId]=!0,hiddenEntries.push(touchingEntry)}return super.handleInvalidInsertion(insertion,entry,hiddenEntries)}}class TableRow extends DateComponent{constructor(){super(...arguments),this.cellElRefs=new RefMap,this.frameElRefs=new RefMap,this.fgElRefs=new RefMap,this.segHarnessRefs=new RefMap,this.rootElRef=d(),this.state={framePositions:null,maxContentHeight:null,segHeights:{}},this.handleResize=isForced=>{isForced&&this.updateSizing(!0)}}render(){let{props,state,context}=this,{options}=context,colCnt=props.cells.length,businessHoursByCol=splitSegsByFirstCol(props.businessHourSegs,colCnt),bgEventSegsByCol=splitSegsByFirstCol(props.bgEventSegs,colCnt),highlightSegsByCol=splitSegsByFirstCol(this.getHighlightSegs(),colCnt),mirrorSegsByCol=splitSegsByFirstCol(this.getMirrorSegs(),colCnt),{singleColPlacements,multiColPlacements,moreCnts,moreMarginTops}=computeFgSegPlacement(sortEventSegs(props.fgEventSegs,options.eventOrder),props.dayMaxEvents,props.dayMaxEventRows,options.eventOrderStrict,state.segHeights,state.maxContentHeight,props.cells),isForcedInvisible=props.eventDrag&&props.eventDrag.affectedInstances||props.eventResize&&props.eventResize.affectedInstances||{};return y("tr",{ref:this.rootElRef,role:"row"},props.renderIntro&&props.renderIntro(),props.cells.map((cell,col)=>{let normalFgNodes=this.renderFgSegs(col,props.forPrint?singleColPlacements[col]:multiColPlacements[col],props.todayRange,isForcedInvisible),mirrorFgNodes=this.renderFgSegs(col,buildMirrorPlacements(mirrorSegsByCol[col],multiColPlacements),props.todayRange,{},!!props.eventDrag,!!props.eventResize,!1);return y(TableCell,{key:cell.key,elRef:this.cellElRefs.createRef(cell.key),innerElRef:this.frameElRefs.createRef(cell.key),dateProfile:props.dateProfile,date:cell.date,showDayNumber:props.showDayNumbers,showWeekNumber:props.showWeekNumbers&&col===0,forceDayTop:props.showWeekNumbers,todayRange:props.todayRange,eventSelection:props.eventSelection,eventDrag:props.eventDrag,eventResize:props.eventResize,extraRenderProps:cell.extraRenderProps,extraDataAttrs:cell.extraDataAttrs,extraClassNames:cell.extraClassNames,extraDateSpan:cell.extraDateSpan,moreCnt:moreCnts[col],moreMarginTop:moreMarginTops[col],singlePlacements:singleColPlacements[col],fgContentElRef:this.fgElRefs.createRef(cell.key),fgContent:y(_,null,y(_,null,normalFgNodes),y(_,null,mirrorFgNodes)),bgContent:y(_,null,this.renderFillSegs(highlightSegsByCol[col],"highlight"),this.renderFillSegs(businessHoursByCol[col],"non-business"),this.renderFillSegs(bgEventSegsByCol[col],"bg-event")),minHeight:props.cellMinHeight})}))}componentDidMount(){this.updateSizing(!0),this.context.addResizeHandler(this.handleResize)}componentDidUpdate(prevProps,prevState){let currentProps=this.props;this.updateSizing(!isPropsEqual(prevProps,currentProps))}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}getHighlightSegs(){let{props}=this;return props.eventDrag&&props.eventDrag.segs.length?props.eventDrag.segs:props.eventResize&&props.eventResize.segs.length?props.eventResize.segs:props.dateSelectionSegs}getMirrorSegs(){let{props}=this;return props.eventResize&&props.eventResize.segs.length?props.eventResize.segs:[]}renderFgSegs(col,segPlacements,todayRange,isForcedInvisible,isDragging,isResizing,isDateSelecting){let{context}=this,{eventSelection}=this.props,{framePositions}=this.state,defaultDisplayEventEnd=this.props.cells.length===1,isMirror=isDragging||isResizing||isDateSelecting,nodes=[];if(framePositions)for(let placement of segPlacements){let{seg}=placement,{instanceId}=seg.eventRange.instance,isVisible=placement.isVisible&&!isForcedInvisible[instanceId],isAbsolute=placement.isAb
1solute,left="",right="";isAbsolute&&(context.isRtl?(right=0,left=framePositions.lefts[seg.lastCol]-framePositions.lefts[seg.firstCol]):(left=0,right=framePositions.rights[seg.firstCol]-framePositions.rights[seg.lastCol])),nodes.push(y("div",{className:"fc-daygrid-event-harness"+(isAbsolute?" fc-daygrid-event-harness-abs":""),key:generateSegKey(seg),ref:isMirror?null:this.segHarnessRefs.createRef(generateSegUid(seg)),style:{visibility:isVisible?"":"hidden",marginTop:isAbsolute?"":placement.marginTop,top:isAbsolute?placement.absoluteTop:"",left,right}},hasListItemDisplay(seg)?y(TableListItemEvent,Object.assign({seg,isDragging,isSelected:instanceId===eventSelection,defaultDisplayEventEnd},getSegMeta(seg,todayRange))):y(TableBlockEvent,Object.assign({seg,isDragging,isResizing,isDateSelecting,isSelected:instanceId===eventSelection,defaultDisplayEventEnd},getSegMeta(seg,todayRange)))))}return nodes}renderFillSegs(segs,fillType){let{isRtl}=this.context,{todayRange}=this.props,{framePositions}=this.state,nodes=[];if(framePositions)for(let seg of segs){let leftRightCss=isRtl?{right:0,left:framePositions.lefts[seg.lastCol]-framePositions.lefts[seg.firstCol]}:{left:0,right:framePositions.rights[seg.firstCol]-framePositions.rights[seg.lastCol]};nodes.push(y("div",{key:buildEventRangeKey(seg.eventRange),className:"fc-daygrid-bg-harness",style:leftRightCss},fillType==="bg-event"?y(BgEvent,Object.assign({seg},getSegMeta(seg,todayRange))):renderFill(fillType)))}return y(_,{},...nodes)}updateSizing(isExternalSizingChange){let{props,state,frameElRefs}=this;if(!props.forPrint&&props.clientWidth!==null){if(isExternalSizingChange){let frameEls=props.cells.map(cell=>frameElRefs.currentMap[cell.key]);if(frameEls.length){let originEl=this.rootElRef.current,newPositionCache=new PositionCache(originEl,frameEls,!0,!1);(!state.framePositions||!state.framePositions.similarTo(newPositionCache))&&this.setState({framePositions:new PositionCache(originEl,frameEls,!0,!1)})}}const oldSegHeights=this.state.segHeights,newSegHeights=this.querySegHeights(),limitByContentHeight=props.dayMaxEvents===!0||props.dayMaxEventRows===!0;this.safeSetState({segHeights:Object.assign(Object.assign({},oldSegHeights),newSegHeights),maxContentHeight:limitByContentHeight?this.computeMaxContentHeight():null})}}querySegHeights(){let segElMap=this.segHarnessRefs.currentMap,segHeights={};for(let segUid in segElMap){let height=Math.round(segElMap[segUid].getBoundingClientRect().height);segHeights[segUid]=Math.max(segHeights[segUid]||0,height)}return segHeights}computeMaxContentHeight(){let firstKey=this.props.cells[0].key,cellEl=this.cellElRefs.currentMap[firstKey],fcContainerEl=this.fgElRefs.currentMap[firstKey];return cellEl.getBoundingClientRect().bottom-fcContainerEl.getBoundingClientRect().top}getCellEls(){let elMap=this.cellElRefs.currentMap;return this.props.cells.map(cell=>elMap[cell.key])}}TableRow.addStateEquality({segHeights:isPropsEqual});function buildMirrorPlacements(mirrorSegs,colPlacements){if(!mirrorSegs.length)return[];let topsByInstanceId=buildAbsoluteTopHash(colPlacements);return mirrorSegs.map(seg=>({seg,isVisible:!0,isAbsolute:!0,absoluteTop:topsByInstanceId[seg.eventRange.instance.instanceId],marginTop:0}))}function buildAbsoluteTopHash(colPlacements){let topsByInstanceId={};for(let placements of colPlacements)for(let placement of placements)topsByInstanceId[placement.seg.eventRange.instance.instanceId]=placement.absoluteTop;return topsByInstanceId}class TableRows extends DateComponent{constructor(){super(...arguments),this.splitBusinessHourSegs=memoize(splitSegsByRow),this.splitBgEventSegs=memoize(splitSegsByRow),this.splitFgEventSegs=memoize(splitSegsByRow),this.splitDateSelectionSegs=memoize(splitSegsByRow),this.splitEventDrag=memoize(splitInteractionByRow),this.splitEventResize=memoize(splitInteractionByRow),this.rowRefs=new RefMap}render(){let{props,context}=this,rowCnt=props.cells.length,businessHourSegsByRow=this.splitBusinessHourSegs(props.businessHourSegs,rowCnt),bgEventSegsByRow=this.splitBgEventSegs(props.bgEventSegs,rowCnt),fgEventSegsByRow=this.splitFgEventSegs(props.fgEventSegs,rowCnt),dateSelectionSegsByRow=this.splitDateSelectionSegs(props.dateSelectionSegs,rowCnt),eventDragByRow=this.splitEventDrag(props.eventDrag,rowCnt),eventResizeByRow=this.splitEventResize(props.eventResize,rowCnt),cellMinHeight=rowCnt>=7&&props.clientWidth?props.clientWidth/context.options.aspectRatio/6:null;return y(NowTimer,{unit:"day"},(nowDate,todayRange)=>y(_,null,props.cells.map((cells,row)=>y(TableRow,{ref:this.rowRefs.createRef(row),key:cells.length?cells[0].date.toISOString():row,showDayNumbers:rowCnt>1,showWeekNumbers:props.showWeekNumbers,todayRange,dateProfile:props.dateProfile,cells,renderIntro:props.renderRowIntro,businessHourSegs:businessHourSegsByRow[row],eventSelection:props.eventSelection,bgEventSegs:bgEventSegsByRow[row].filter(isSegAllDay),fgEventSegs:fgEventSegsByRow[row],dateSelectionSegs:dateSelectionSegsByRow[row],eventDrag:eventDragByRow[row],eventResize:eventResizeByRow[row],dayMaxEvents:props.dayMaxEvents,dayMaxEventRows:props.dayMaxEventRows,clientWidth:props.clientWidth,clientHeight:props.clientHeight,cellMinHeight,forPrint:props.forPrint}))))}componentDidMount(){this.registerInteractiveComponent()}componentDidUpdate(){this.registerInteractiveComponent()}registerInteractiveComponent(){if(!this.rootEl){const firstCellEl=this.rowRefs.currentMap[0].getCellEls()[0],rootEl=firstCellEl?firstCellEl.closest(".fc-daygri
1d-body"):null;rootEl&&(this.rootEl=rootEl,this.context.registerInteractiveComponent(this,{el:rootEl,isHitComboAllowed:this.props.isHitComboAllowed}))}}componentWillUnmount(){this.rootEl&&(this.context.unregisterInteractiveComponent(this),this.rootEl=null)}prepareHits(){this.rowPositions=new PositionCache(this.rootEl,this.rowRefs.collect().map(rowObj=>rowObj.getCellEls()[0]),!1,!0),this.colPositions=new PositionCache(this.rootEl,this.rowRefs.currentMap[0].getCellEls(),!0,!1)}queryHit(positionLeft,positionTop){let{colPositions,rowPositions}=this,col=colPositions.leftToIndex(positionLeft),row=rowPositions.topToIndex(positionTop);if(row!=null&&col!=null){let cell=this.props.cells[row][col];return{dateProfile:this.props.dateProfile,dateSpan:Object.assign({range:this.getCellRange(row,col),allDay:!0},cell.extraDateSpan),dayEl:this.getCellEl(row,col),rect:{left:colPositions.lefts[col],right:colPositions.rights[col],top:rowPositions.tops[row],bottom:rowPositions.bottoms[row]},layer:0}}return null}getCellEl(row,col){return this.rowRefs.currentMap[row].getCellEls()[col]}getCellRange(row,col){let start=this.props.cells[row][col].date,end=addDays(start,1);return{start,end}}}function isSegAllDay(seg){return seg.eventRange.def.allDay}class Table extends DateComponent{constructor(){super(...arguments),this.elRef=d(),this.needsScrollReset=!1}render(){let{props}=this,{dayMaxEventRows,dayMaxEvents,expandRows}=props,limitViaBalanced=dayMaxEvents===!0||dayMaxEventRows===!0;limitViaBalanced&&!expandRows&&(limitViaBalanced=!1,dayMaxEventRows=null,dayMaxEvents=null);
1let classNames=["fc-daygrid-body",limitViaBalanced?"fc-daygrid-body-balanced":"fc-daygrid-body-unbalanced",expandRows?"":"fc-daygrid-body-natural"];return y("div",{ref:this.elRef,className:classNames.join(" "),style:{width:props.clientWidth,minWidth:props.tableMinWidth}},y("table",{role:"presentation",className:"fc-scrollgrid-sync-table",style:{width:props.clientWidth,minWidth:props.tableMinWidth,height:expandRows?props.clientHeight:""}},props.colGroupNode,y("tbody",{role:"presentation"},y(TableRows,{dateProfile:props.dateProfile,cells:props.cells,renderRowIntro:props.renderRowIntro,showWeekNumbers:props.showWeekNumbers,clientWidth:props.clientWidth,clientHeight:props.clientHeight,businessHourSegs:props.businessHourSegs,bgEventSegs:props.bgEventSegs,fgEventSegs:props.fgEventSegs,dateSelectionSegs:props.dateSelectionSegs,eventSelection:props.eventSelection,eventDrag:props.eventDrag,eventResize:props.eventResize,dayMaxEvents,dayMaxEventRows,forPrint:props.forPrint,isHitComboAllowed:props.isHitComboAllowed}))))}componentDidMount(){this.requestScrollReset()}componentDidUpdate(prevProps){prevProps.dateProfile!==this.props.dateProfile?this.requestScrollReset():this.flushScrollReset()}requestScrollReset(){this.needsScrollReset=!0,this.flushScrollReset()}flushScrollReset(){if(this.needsScrollReset&&this.props.clientWidth){const subjectEl=getScrollSubjectEl(this.elRef.current,this.props.dateProfile);if(subjectEl){const originEl=subjectEl.closest(".fc-daygrid-body"),scrollEl=originEl.closest(".fc-scroller"),scrollTop=subjectEl.getBoundingClientRect().top-originEl.getBoundingClientRect().top;scrollEl.scrollTop=scrollTop?scrollTop+1:0}this.needsScrollReset=!1}}}function getScrollSubjectEl(containerEl,dateProfile){let el;return dateProfile.currentRangeUnit.match(/year|month/)&&(el=containerEl.querySelector(`[data-date="${formatIsoMonthStr(dateProfile.currentDate)}-01"]`)),el||(el=containerEl.querySelector(`[data-date="${formatDayString(dateProfile.currentDate)}"]`)),el}class DayTableSlicer extends Slicer{constructor(){super(...arguments),this.forceDayIfListItem=!0}sliceRange(dateRange,dayTableModel){return dayTableModel.sliceRange(dateRange)}}class DayTable extends DateComponent{constructor(){super(...arguments),this.slicer=new DayTableSlicer,this.tableRef=d()}render(){let{props,context}=this;return y(Table,Object.assign({ref:this.tableRef},this.slicer.sliceProps(props,props.dateProfile,props.nextDayThreshold,context,props.dayTableModel),{dateProfile:props.dateProfile,cells:props.dayTableModel.cells,colGroupNode:props.colGroupNode,tableMinWidth:props.tableMinWidth,renderRowIntro:props.renderRowIntro,dayMaxEvents:props.dayMaxEvents,dayMaxEventRows:props.dayMaxEventRows,showWeekNumbers:props.showWeekNumbers,expandRows:props.expandRows,headerAlignElRef:props.headerAlignElRef,clientWidth:props.clientWidth,clientHeight:props.clientHeight,forPrint:props.forPrint}))}}class TableDateProfileGenerator extends DateProfileGenerator{buildRenderRange(currentRange,currentRangeUnit,isRangeAllDay){let renderRange=super.buildRenderRange(currentRange,currentRangeUnit,isRangeAllDay),{props}=this;return buildDayTableRenderRange({currentRange:renderRange,snapToWeek:/^(year|month)$/.test(currentRangeUnit),fixedWeekCount:props.fixedWeekCount,dateEnv:props.dateEnv})}}function buildDayTableRenderRange(props){let{dateEnv,currentRange}=props,{start,end}=currentRange,endOfWeek;if(props.snapToWeek&&(start=dateEnv.startOfWeek(start),endOfWeek=dateEnv.startOfWeek(end),endOfWeek.valueOf()!==end.valueOf()&&(end=addWeeks(endOfWeek,1))),props.fixedWeekCount){let lastMonthRenderStart=dateEnv.startOfWeek(dateEnv.startOfMonth(addDays(currentRange.end,-1))),rowCnt=Math.ceil(diffWeeks(lastMonthRenderStart,end));end=addWeeks(end,6-rowCnt)}return{start,end}}class TableView extends DateComponent{constructor(){super(...arguments),this.headerElRef=d()}renderSimpleLayout(headerRowContent,bodyContent){let{props,context}=this,sections=[],stickyHeaderDates=getStickyHeaderDates(context.options);return headerRowContent&&sections.push({type:"header",key:"header",isSticky:stickyHeaderDates,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:headerRowContent}}),sections.push({type:"body",key:"body",liquid:!0,chunk:{content:bodyContent}}
1),y(ViewContainer,{elClasses:["fc-daygrid"],viewSpec:context.viewSpec},y(SimpleScrollGrid,{liquid:!props.isHeightAuto&&!props.forPrint,collapsibleWidth:props.forPrint,cols:[],sections}))}renderHScrollLayout(headerRowContent,bodyContent,colCnt,dayMinWidth){let ScrollGrid=this.context.pluginHooks.scrollGridImpl;if(!ScrollGrid)throw new Error("No ScrollGrid implementation");let{props,context}=this,stickyHeaderDates=!props.forPrint&&getStickyHeaderDates(context.options),stickyFooterScrollbar=!props.forPrint&&getStickyFooterScrollbar(context.options),sections=[];return headerRowContent&&sections.push({type:"header",key:"header",isSticky:stickyHeaderDates,chunks:[{key:"main",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:headerRowContent}]}),sections.push({type:"body",key:"body",liquid:!0,chunks:[{key:"main",content:bodyContent}]}),stickyFooterScrollbar&&sections.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:renderScrollShim}]}),y(ViewContainer,{elClasses:["fc-daygrid"],viewSpec:context.viewSpec},y(ScrollGrid,{liquid:!props.isHeightAuto&&!props.forPrint,forPrint:props.forPrint,collapsibleWidth:props.forPrint,colGroups:[{cols:[{span:colCnt,minWidth:dayMinWidth}]}],sections}))}}class DayTableView extends TableView{constructor(){super(...arguments),this.buildDayTableModel=memoize(buildDayTableModel),this.headerRef=d(),this.tableRef=d()}render(){let{options,dateProfileGenerator}=this.context,{props}=this,dayTableModel=this.buildDayTableModel(props.dateProfile,dateProfileGenerator),headerContent=options.dayHeaders&&y(DayHeader,{ref:this.headerRef,dateProfile:props.dateProfile,dates:dayTableModel.headerDates,datesRepDistinctDays:dayTableModel.rowCnt===1}),bodyContent=contentArg=>y(DayTable,{ref:this.tableRef,dateProfile:props.dateProfile,dayTableModel,businessHours:props.businessHours,dateSelection:props.dateSelection,eventStore:props.eventStore,eventUiBases:props.eventUiBases,eventSelection:props.eventSelection,eventDrag:props.eventDrag,eventResize:props.eventResize,nextDayThreshold:options.nextDayThreshold,colGroupNode:contentArg.tableColGroupNode,tableMinWidth:contentArg.tableMinWidth,dayMaxEvents:options.dayMaxEvents,dayMaxEventRows:options.dayMaxEventRows,showWeekNumbers:options.weekNumbers,expandRows:!props.isHeightAuto,headerAlignElRef:this.headerElRef,clientWidth:contentArg.clientWidth,clientHeight:contentArg.clientHeight,forPrint:props.forPrint});return options.dayMinWidth?this.renderHScrollLayout(headerContent,bodyContent,dayTableModel.colCnt,options.dayMinWidth):this.renderSimpleLayout(headerContent,bodyContent)}}function buildDayTableModel(dateProfile,dateProfileGenerator){let daySeries=new DaySeriesM
1odel(dateProfile.renderRange,dateProfileGenerator);return new DayTableModel(daySeries,/year|month|week/.test(dateProfile.currentRangeUnit))}var css_248z='.fc-v-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-v-event .fc-event-main{color:var(--fc-event-text-color);height:100%}.fc-v-event .fc-event-main-frame{display:flex;flex-direction:column;height:100%}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{bottom:0;max-height:100%;overflow:hidden;top:0}.fc-v-event:not(.fc-event-start){border-top-left-radius:0;border-top-right-radius:0;border-top-width:0}.fc-v-event:not(.fc-event-end){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:var(--fc-event-resizer-thickness);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%;position:relative;z-index:1}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{border-bottom:0;height:1.5em}.fc .fc-timegrid-slot:empty:before{content:"\\00a0"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{align-items:center;display:flex;justify-content:flex-end;overflow:hidden}.fc .fc-timegrid-axis-cushion{flex-shrink:0;max-width:60px}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols{bottom:0;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{left:0;position:absolute;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{bottom:0;left:0;position:absolute;right:0;top:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px var(--fc-page-bg-color)}.fc-timegrid-event,.fc-timegrid-more-link{border-radius:3px;font-size:var(--fc-small-font-size)}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{font-size:var(--fc-small-font-size);margin-bottom:1px;white-space:nowrap}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:"\\00a0-\\00a0"}.fc-timegrid-event-short .fc-event-title{font-size:var(--fc-small-font-size)}.fc-timegrid-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;margin-bottom:1px;position:absolute;z-index:9999}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;border-width:1px 0 0;left:0;position:absolute;right:0;z-index:4}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--fc-now-indicator-color);border-style:solid;margin-top:-5px;position:absolute;z-index:4}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 0 5px 6px;left:0}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 6px 5px 0;right:0}';injectStyles(css_248z);class AllDaySplitter extends Splitter{getKeyInfo(){return{allDay:{},timed:{}}}getKeysForDateSpan(dateSpan){return dateSpan.allDay?["allDay"]:["timed"]}getKeysForEventDef(eventDef){return eventDef.allDay?hasBgRendering(eventDef)?["timed","allDay"]:["allDay"]:["timed"]}}const DEFAULT_SLAT_LABEL_FORMAT=createFormatter({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"short"});function TimeColsAxisCell(props){let classNames=["fc-timegrid-slot","fc-timegrid-slot-label",props.isLabeled?"fc-scrollgrid-shrink":"fc-timegrid-slot-minor"];return y(ViewContextType.Consumer,null,context=>{if(!props.isLabeled)return y("td",{className:classNames.join(" "),"data-time":props.isoTimeStr});let{dateEnv,options,viewApi}=context,labelFormat=options.slotLabelFormat==null?DEFAULT_SLAT_LABEL_FORMAT:Array.isArray(options.slotLabelFormat)?createFormatter(options.slotLabelFormat[0]):createFormatter(options.slotLabelFormat),renderProps={level:0,time:props.time,date:dateEnv.toDate(props.date),view:viewApi,text:dateEnv.format(props.date,labelFormat)};return y(ContentContainer,{elTag:"td",elClasses:classNames,elAttrs:{"data-time":props.isoTimeStr},renderProps,generatorName:"slotLabelContent",customGenerator:options.slotLabelContent,defaultGenerator:renderInnerContent,classNameGenerator:options.slotLabelClassNames,didMount:options.slotLabelDidMount,willUnmount:options.slotLabelWillUnmount},InnerContent=>y("div",{className:"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame"},y(InnerContent,{elTag:"div",elClasses:["fc-timegrid-slot-label-cushion","fc-scrollgrid-shrink-cushion"]})))})}function renderInnerContent(props){return props.text}class TimeBodyAxis extends BaseComponent{render(){return this.props.slatMetas.map(slatMeta=>y("tr",{key:slatMeta.key},y(TimeColsAxisCell,Object.assign({},slatMeta))))}}const DEFAULT_WEEK_NUM_FORMAT=createFormatter({week:"short"}),AUTO_ALL_DAY_MAX_EVENT_ROWS=5;class TimeColsView extends DateComponent{constructor(){super(...arguments),this.allDaySplitter=new AllDaySplitter,this.headerElRef
vendor: 4,623 bytes, line 1
1=d(),this.rootElRef=d(),this.scrollerElRef=d(),this.state={slatCoords:null},this.handleScrollTopRequest=scrollTop=>{let scrollerEl=this.scrollerElRef.current;scrollerEl&&(scrollerEl.scrollTop=scrollTop)},this.renderHeadAxis=(rowKey,frameHeight="")=>{let{options}=this.context,{dateProfile}=this.props,range=dateProfile.renderRange,navLinkAttrs=diffDays(range.start,range.end)===1?buildNavLinkAttrs(this.context,range.start,"week"):{};return options.weekNumbers&&rowKey==="day"?y(WeekNumberContainer,{elTag:"th",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},date:range.start,defaultFormat:DEFAULT_WEEK_NUM_FORMAT},InnerContent=>y("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame","fc-timegrid-axis-frame-liquid"].join(" "),style:{height:frameHeight}},y(InnerContent,{elTag:"a",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"],elAttrs:navLinkAttrs}))):y("th",{"aria-hidden":!0,className:"fc-timegrid-axis"},y("div",{className:"fc-timegrid-axis-frame",style:{height:frameHeight}}))},this.renderTableRowAxis=rowHeight=>{let{options,viewApi}=this.context,renderProps={text:options.allDayText,view:viewApi};return y(ContentContainer,{elTag:"td",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},renderProps,generatorName:"allDayContent",customGenerator:options.allDayContent,defaultGenerator:renderAllDayInner,classNameGenerator:options.allDayClassNames,didMount:options.allDayDidMount,willUnmount:options.allDayWillUnmount},InnerContent=>y("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame",rowHeight==null?" fc-timegrid-axis-frame-liquid":""].join(" "),style:{height:rowHeight}},y(InnerContent,{elTag:"span",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"]})))},this.handleSlatCoords=slatCoords=>{this.setState({slatCoords})}}renderSimpleLayout(headerRowContent,allDayContent,timeContent){let{context,props}=this,sections=[],stickyHeaderDates=getStickyHeaderDates(context.options);return headerRowContent&&sections.push({type:"header",key:"header",isSticky:stickyHeaderDates,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:headerRowContent}}),allDayContent&&(sections.push({type:"body",key:"all-day",chunk:{content:allDayContent}}),sections.push({type:"body",key:"all-day-divider",outerContent:y("tr",{role:"presentation",className:"fc-scrollgrid-section"},y("td",{className:"fc-timegrid-divider "+context.theme.getClass("tableCellShaded")}))})),sections.push({type:"body",key:"body",liquid:!0,expandRows:!!context.options.expandRows,chunk:{scrollerElRef:this.scrollerElRef,content:timeContent}}),y(ViewContainer,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:context.viewSpec},y(SimpleScrollGrid,{liquid:!props.isHeightAuto&&!props.forPrint,collapsibleWidth:props.forPrint,cols:[{width:"shrink"}],sections}))}renderHScrollLayout(headerRowContent,allDayContent,timeContent,colCnt,dayMinWidth,slatMetas,slatCoords){let ScrollGrid=this.context.pluginHooks.scrollGridImpl;if(!ScrollGrid)throw new Error("No ScrollGrid implementation");let{context,props}=this,stickyHeaderDates=!props.forPrint&&getStickyHeaderDates(context.options),stickyFooterScrollbar=!props.forPrint&&getStickyFooterScrollbar(context.options),sections=[];headerRowContent&&sections.push({type:"header",key:"header",isSticky:stickyHeaderDates,syncRowHeights:!0,chunks:[{key:"axis",rowContent:arg=>y("tr",{role:"presentation"},this.renderHeadAxis("day",arg.rowSyncHeights[0]))},{key:"cols",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:headerRowContent}]}),allDayContent&&(sections.push({type:"body",key:"all-day",syncRowHeights:!0,chunks:[{key:"axis",rowContent:contentArg=>y("tr",{role:"presentation"},this.renderTableRowAxis(contentArg.rowSyncHeights[0]))},{key:"cols",content:allDayContent}]}),sections.push({key:"all-day-divider",type:"body",outerContent:y("tr",{role:"presentation",className:"fc-scrollgrid-section"},y("td",{colSpan:2,className:"fc-timegrid-divider "+context.theme.getClass("tableCellShaded")}))}));let isNowIndicator=context.options.nowIndicator;return sections.push({type:"body",key:"body",liquid:!0,expandRows:!!context.options.expandRows,chunks:[{key:"axis",content:arg=>y("div",{className:"fc-timegrid-axis-chunk"},y("table",{"aria-hidden":!0,style:{height:arg.expandRows?arg.clientHeight:""}},arg.tableColGroupNode,y("tbody",null,y(TimeBodyAxis,{slatMetas}))),y("div",{className:"fc-timegrid-now-indicator-container"},y(NowTimer,{unit:isNowIndicator?"minute":"day"},nowDate=>
1{let nowIndicatorTop=isNowIndicator&&slatCoords&&slatCoords.safeComputeTop(nowDate);return typeof nowIndicatorTop=="number"?y(NowIndicatorContainer,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:nowIndicatorTop},isAxis:!0,date:nowDate}):null})))},{key:"cols",scrollerElRef:this.scrollerElRef,content:timeContent}]}),stickyFooterScrollbar&&sections.push({key:"footer",type:"footer",isSticky:!0,chunks:[{key:"axis",content:renderScrollShim},{key:"cols",content:renderScrollShim}]}),y(ViewContainer,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:context.viewSpec},y(ScrollGrid,{liquid:!props.isHeightAuto&&!props.forPrint,forPrint:props.forPrint,collapsibleWidth:!1,colGroups:[{width:"shrink",cols:[{width:"shrink"}]},{cols:[{span:colCnt,minWidth:dayMinWidth}]}],sections}))}getAllDayMaxEventProps(){let{dayMaxEvents,dayMaxEventRows}=this.context.options;return(dayMaxEvents===!0||dayMaxEventRows===!0)&&(dayMaxEvents=void 0,dayMaxEventRows=AUTO_ALL_DAY_MAX_EVENT_ROWS),{dayMaxEvents,dayMaxEventRows}}}function renderAllDayInner(renderProps){return renderProps.text}class TimeColsSlatsCoords{constructor(positions,dateProfile,slotDuration){this.positions=positions,this.dateProfile=dateProfile,this.slotDuration=slotDuration}safeComputeTop(date){let{dateProfile}=this;if(rangeContainsMarker(dateProfile.currentRange,date)){let startOfDayDate=startOfDay(date),timeMs=date.valueOf()-startOfDayDate.valueOf();if(timeMs>=asRoughMs(dateProfile.slotMinTime)&&timeMs<asRoughMs(dateProfile.slotMaxTime))return this.computeTimeTop(createDuration(timeMs))}return null}computeDateTop(when,startOfDayDate){return startOfDayDate||(startOfDayDate=startOfDay(when)),this.computeTimeTop(createDuration(when.valueOf()-startOfDayDate.valueOf()))}computeTimeTop(duration){let{positions,dateProfile}=this,len=positions.els.length,slatCoverage=(duration.milliseconds-asRoughMs(dateProfile.slotMinTime))/asRoughMs(this.slotDuration),slatIndex,slatRemainder;return slatCoverage=Math.max(0,slatCoverage),slatCoverage=Math.min(len,slatCoverage),slatIndex=Math.floor(slatCoverage),slatIndex=Math.min(slatIndex,len-1),slatRemainder=slatCoverage-slatIndex,positions.tops[slatIndex]+positions.getHeight(slatIndex)*slatRemainder}}class TimeColsSlatsBody extends BaseComponent{render(){let{props,context}=this,{options}=context,{slatElRefs}=props;return y("tbody",null,props.slatMetas.map((slatMeta,i2)=>{let renderProps={time:slatMeta.time,date:context.dateEnv.toDate(slatMeta.date),view:context.viewApi};return y("tr",{key:slatMeta.key,ref:slatElRefs.createRef(slatMeta.key)},props.axis&&y(TimeColsAxisCell,Object.assign({},slatMeta)),y(ContentContainer,{elTag:"td",elClasses:["fc-timegrid-slot","fc-timegrid-slot-lane",!slatMeta.isLabeled&&"fc-timegrid-slot-minor"],elAttrs:{"data-time":slatMeta.isoTimeStr},renderProps,generatorName:"slotLaneContent",customGenerator:options.slotLaneContent,classNameGenerator:options.slotLaneClassNames,didMount:options.slotLaneDidMount,willUnmount:options.slotLaneWillUnmount}))}))}}class TimeColsSlats extends BaseComponent{constructor(){super(...arguments),this.rootElRef=d(),this.slatElRefs=new RefMap}render(){let{props,context}=this;return y("div",{ref:this.rootElRef,className:"fc-timegrid-slots"},y("table",{"aria-hidden":!0,className:context.theme.getClass("table"),style:{minWidth:props.tableMinWidth,width:props.clientWidth,height:props.minHeight}},props.tableColGroupNode,y(TimeColsSlatsBody,{slatElRefs:this.slatElRefs,axis:props.axis,slatMetas:props.slatMetas})))}componentDidMount(){this.updateSizing()}componentDidUpdate(){this.updateSizing()}componentWillUnmount(){this.props.onCoords&&this.props.onCoords(null)}updateSizing(){let{context,props}=this;props.onCoords&&props.clientWidth!==null&&this.rootElRef.current.offsetHeight&&props.onCoords(new TimeColsSlatsCoords(new PositionCache(this.rootElRef.current,collectSlatEls(this.slatElRefs.currentMap,props.slatMetas),!1,!0),this.props.dateProfile,context.options.slotDuration))}}function collectSlatEls(elMap,slatMetas){return slatMetas.map(slatMeta=>elMap[slatMeta.key])}function splitSegsByCol(segs,colCnt){let segsByCol=[],i2;for(i2=0;i2<colCnt;i2+=1)segsByCol.push([]);if(segs)for(i2=0;i2<segs.length;i2+=1)segsByCol[segs[i2].col].push(segs[i2]);return segsByCol}function splitInteractionByCol(ui,colCnt){let byRow=[];if(ui){for(let i2=0;i2<colCnt;i2+=1)byRow[i2]={affectedInstances:ui.affectedInstances,isEvent:ui.isEvent,segs:[]};for(let seg of ui.segs)byRow[seg.col].segs.push(seg)}else for(let i2=0;i2<colCnt;i2+=1)byRow[i2]=null;return byRow}class TimeColMoreLink extends BaseComponent{render(){let{props}=this;return y(MoreLinkContainer,{elClasses:["fc-timegrid-more-link"],elStyle:{to
1p:props.top,bottom:props.bottom},allDayDate:null,moreCnt:props.hiddenSegs.length,allSegs:props.hiddenSegs,hiddenSegs:props.hiddenSegs,extraDateSpan:props.extraDateSpan,dateProfile:props.dateProfile,todayRange:props.todayRange,popoverContent:()=>renderPlainFgSegs(props.hiddenSegs,props),defaultGenerator:renderMoreLinkInner,forceTimed:!0},InnerContent=>y(InnerContent,{elTag:"div",elClasses:["fc-timegrid-more-link-inner","fc-sticky"]}))}}function renderMoreLinkInner(props){return props.shortText}function buildPositioning(segInputs,strictOrder,maxStackCnt){let hierarchy=new SegHierarchy;strictOrder!=null&&(hierarchy.strictOrder=strictOrder),maxStackCnt!=null&&(hierarchy.maxStackCnt=maxStackCnt);let hiddenEntries=hierarchy.addSegs(segInputs),hiddenGroups=groupIntersectingEntries(hiddenEntries),web=buildWeb(hierarchy);return web=stretchWeb(web,1),{segRects:webToRects(web),hiddenGroups}}function buildWeb(hierarchy){const{entriesByLevel}=hierarchy,buildNode=cacheable((level,lateral)=>level+":"+lateral,(level,lateral)=>{let siblingRange=findNextLevelSegs(hierarchy,level,lateral),nextLevelRes=buildNodes(siblingRange,buildNode),entry=entriesByLevel[level][lateral];return[Object.assign(Object.assign({},entry),{nextLevelNodes:nextLevelRes[0]}),entry.thickness+nextLevelRes[1]]});return buildNodes(entriesByLevel.length?{level:0,lateralStart:0,lateralEnd:entriesByLevel[0].length}:null,buildNode)[0]}function buildNodes(siblingRange,buildNode){if(!siblingRange)return[[],0];let{level,lateralStart,lateralEnd}=siblingRange,lateral=lateralStart,pairs=[];for(;lateral<lateralEnd;)pairs.push(buildNode(level,lateral)),lateral+=1;return pairs.sort(cmpDescPressures),[pairs.map(extractNode),pairs[0][1]]}function cmpDescPressures(a2,b2){return b2[1]-a2[1]}function extractNode(a2){return a2[0]}function findNextLevelSegs(hierarchy,subjectLevel,subjectLateral){let{levelCoords,entriesByLevel}=hierarchy,subjectEntry=entriesByLevel[subjectLevel][subjectLateral],afterSubject=levelCoords[subjectLevel]+subjectEntry.thickness,levelCnt=levelCoords.length,level=subjectLevel;for(;level<levelCnt&&levelCoords[level]<afterSubject;level+=1);for(;level<levelCnt;level+=1){let entries=entriesByLevel[level],entry,searchIndex=binarySearch(entries,subjectEntry.span.start,getEntrySpanEnd),lateralStart=searchIndex[0]+searchIndex[1],lateralEnd=lateralStart;for(;(entry=entries[lateralEnd])&&entry.span.start<subjectEntry.span.end;)lateralEnd+=1;if(lateralStart<lateralEnd)return{level,lateralStart,lateralEnd}}return null}function stretchWeb(topLevelNodes,totalThickness){const stretchNode=cacheable((node,startCoord,prevThickness)=>buildEntryKey(node),(node,startCoord,prevThickness)=>{let{nextLevelNodes,thickness}=node,allThickness=thickness+prevThickness,thicknessFraction=thickness/allThickness,endCoord,newChildren=[];if(!nextLevelNodes.length)endCoord=totalThickness;else for(let childNode of nextLevelNodes)if(endCoord===void 0){let res=stretchNode(childNode,startCoord,allThickness);endCoord=res[0],newChildren.push(res[1])}else{let res=stretchNode(childNode,endCoord,0);newChildren.push(res[1])}let newThickness=(endCoord-startCoord)*thicknessFraction;return[endCoord-newThickness,Object.assign(Object.assign({},node),{thickness:newThickness,nextLevelNodes:newChildren})]});return topLevelNodes.map(node=>stretchNode(node,0,0)[1])}function webToRects(topLevelNodes){let rects=[];const processNode=cacheable((node,levelCoord,stackDepth)=>buildEntryKey(node),(node,levelCoord,stackDepth)=>{let rect=Object.assign(Object.assign({},node),{levelCoord,stackDepth,stackForward:0});return rects.push(rect),rect.stackForward=processNodes(node.nextLevelNodes,levelCoord+node.thickness,stackDepth+1)+1});function processNodes(nodes,levelCoord,stackDepth){let stackForward=0;for(let node of nodes)stackForward=Math.max(processNode(node,levelCoord,stackDepth),stackForward);return stackForward}return processNodes(topLevelNodes,0,0),rects}function cacheable(keyFunc,workFunc){const cache={};return(...args)=>{let key=keyFunc(...args);return key in cache?cache[key]:cache[key]=workFunc(...args)}}function computeSegVCoords(segs,colDate,slatCoords=null,eventMinHeight=0){let vcoords=[];if(slatCoords)for(let i2=0;i2<segs.length;i2+=1){let seg=segs[i2],spanStart=slatCoords.computeDateTop(seg.start,colDate),spanEnd=Math.max(spanStart+(eventMinHeight||0),slatCoords.computeDateTop(seg.end,colDate));vcoords.push({start:Math.round(spanStart),end:Math.round(spanEnd)})}return vcoords}function computeFgSegPlacements(segs,segVCoords,eventOrderStrict,eventMaxStack){let segInputs=[],dumbSegs=[];for(let i2=0;i2<segs.length;i2+=1){let vcoords=segVCoords[i2];vcoords?segInputs.push({index:i2,thickness:1,span:vcoords}
1):dumbSegs.push(segs[i2])}let{segRects,hiddenGroups}=buildPositioning(segInputs,eventOrderStrict,eventMaxStack),segPlacements=[];for(let segRect of segRects)segPlacements.push({seg:segs[segRect.index],rect:segRect});for(let dumbSeg of dumbSegs)segPlacements.push({seg:dumbSeg,rect:null});return{segPlacements,hiddenGroups}}const DEFAULT_TIME_FORMAT=createFormatter({hour:"numeric",minute:"2-digit",meridiem:!1});class TimeColEvent extends BaseComponent{render(){return y(StandardEvent,Object.assign({},this.props,{elClasses:["fc-timegrid-event","fc-v-event",this.props.isShort&&"fc-timegrid-event-short"],defaultTimeFormat:DEFAULT_TIME_FORMAT}))}}class TimeCol extends BaseComponent{constructor(){super(...arguments),this.sortEventSegs=memoize(sortEventSegs)}render(){let{props,context}=this,{options}=context,isSelectMirror=options.selectMirror,mirrorSegs=props.eventDrag&&props.eventDrag.segs||props.eventResize&&props.eventResize.segs||isSelectMirror&&props.dateSelectionSegs||[],interactionAffectedInstances=props.eventDrag&&props.eventDrag.affectedInstances||props.eventResize&&props.eventResize.affectedInstances||{},sortedFgSegs=this.sortEventSegs(props.fgEventSegs,options.eventOrder);return y(DayCellContainer,{elTag:"td",elRef:props.elRef,elClasses:["fc-timegrid-col",...props.extraClassNames||[]],elAttrs:Object.assign({role:"gridcell"},props.extraDataAttrs),date:props.date,dateProfile:props.dateProfile,todayRange:props.todayRange,extraRenderProps:props.extraRenderProps},InnerContent=>y("div",{className:"fc-timegrid-col-frame"},y("div",{className:"fc-timegrid-col-bg"},this.renderFillSegs(props.businessHourSegs,"non-business"),this.renderFillSegs(props.bgEventSegs,"bg-event"),this.renderFillSegs(props.dateSelectionSegs,"highlight")),y("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(sortedFgSegs,interactionAffectedInstances,!1,!1,!1)),y("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(mirrorSegs,{},!!props.eventDrag,!!props.eventResize,!!isSelectMirror,"mirror")),y("div",{className:"fc-timegrid-now-indicator-container"},this.renderNowIndicator(props.nowIndicatorSegs)),hasCustomDayCellContent(options)&&y(InnerContent,{elTag:"div",elClasses:["fc-timegrid-col-misc"]})))}renderFgSegs(sortedFgSegs,segIsInvisible,isDragging,isResizing,isDateSelecting,forcedKey){let{props}=this;return props.forPrint?renderPlainFgSegs(sortedFgSegs,props):this.renderPositionedFgSegs(sortedFgSegs,segIsInvisible,isDragging,isResizing,isDateSelecting,forcedKey)}renderPositionedFgSegs(segs,segIsInvisible,isDragging,isResizing,isDateSelecting,forcedKey){let{eventMaxStack,eventShortHeight,eventOrderStrict,eventMinHeight}=this.context.options,{date,slatCoords,eventSelection,todayRange,nowDate}=this.props,isMirror=isDragging||isResizing||isDateSelecting,segVCoords=computeSegVCoords(segs,date,slatCoords,eventMinHeight),{segPlacements,hiddenGroups}=computeFgSegPlacements(segs,segVCoords,eventOrderStrict,eventMaxStack);return y(_,null,this.renderHiddenGroups(hiddenGroups,segs),segPlacements.map(segPlacement=>{let{seg,rect}=segPlacement,instanceId=seg.eventRange.instance.instanceId,isVisible=isMirror||!!(!segIsInvisible[instanceId]&&rect),vStyle=computeSegVStyle(rect&&rect.span),hStyle=!isMirror&&rect?this.computeSegHStyle(rect):{left:0,right:0},isInset=!!rect&&rect.stackForward>0,isShort=!!rect&&rect.span.end-rect.span.start<eventShortHeight;return y("div",{className:"fc-timegrid-event-harness"+(isInset?" fc-timegrid-event-harness-inset":""),key:forcedKey||instanceId,style:Object.assign(Object.assign({visibility:isVisible?"":"hidden"},vStyle),hStyle)},y(TimeColEvent,Object.assign({seg,isDragging,isResizing,isDateSelecting,isSelected:instanceId===eventSelection,isShort},getSegMeta(seg,todayRange,nowDate))))}))}renderHiddenGroups(hiddenGroups,segs){let{extraDateSpan,dateProfile,todayRange,nowDate,eventSelection,eventDrag,eventResize}=this.props;return y(_,null,hiddenGroups.map(hiddenGroup=>{let positionCss=computeSegVStyle(hiddenGroup.span),hiddenSegs=compileSegsFromEntries(hiddenGroup.entries,segs);return y(TimeColMoreLink,{key:buildIsoString(computeEarliestSegStart(hiddenSegs)),hiddenSegs,top:positionCss.top,bottom:positionCss.bottom,extraDateSpan,dateProfile,todayRange,nowDate,eventSelection,eventDrag,eventResize})}))}renderFillSegs(segs,fillType){let{props,context}=this,children=computeSegVCoords(segs,props.date,props.slatCoords,context.options.eventMinHeight).map((vcoords,i2)=>{let seg=segs[i2];return y("div",{key:buildEventRangeKey(seg.eventRange),className:"fc-timegrid-bg-harness",style:computeSegVStyle(vcoords)},fillType==="bg-event"?y(BgEvent,Object.assign({seg},getSegMeta(seg,props.todayRange,props.nowDate))):renderFill(fillType))});return y(_,null,children)}renderNowIndicator(segs){let{slatCoords,date}=this.props;return slatCoords?segs.map((seg,i2)=>y(NowIndicatorContainer,{key:i2,elClasses:["fc-timegrid-now-indicator-line"],elStyle:{to
1p:slatCoords.computeDateTop(seg.start,date)},isAxis:!1,date})):null}computeSegHStyle(segHCoords){let{isRtl,options}=this.context,shouldOverlap=options.slotEventOverlap,nearCoord=segHCoords.levelCoord,farCoord=segHCoords.levelCoord+segHCoords.thickness,left,right;shouldOverlap&&(farCoord=Math.min(1,nearCoord+(farCoord-nearCoord)*2)),isRtl?(left=1-farCoord,right=nearCoord):(left=nearCoord,right=1-farCoord);let props={zIndex:segHCoords.stackDepth+1,left:left*100+"%",right:right*100+"%"};return shouldOverlap&&!segHCoords.stackForward&&(props[isRtl?"marginLeft":"marginRight"]=10*2),props}}function renderPlainFgSegs(sortedFgSegs,{todayRange,nowDate,eventSelection,eventDrag,eventResize}){let hiddenInstances=(eventDrag?eventDrag.affectedInstances:null)||(eventResize?eventResize.affectedInstances:null)||{};return y(_,null,sortedFgSegs.map(seg=>{let instanceId=seg.eventRange.instance.instanceId;return y("div",{key:instanceId,style:{visibility:hiddenInstances[instanceId]?"hidden":""}},y(TimeColEvent,Object.assign({seg,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:instanceId===eventSelection,isShort:!1},getSegMeta(seg,todayRange,nowDate))))}))}function computeSegVStyle(segVCoords){return segVCoords?{top:segVCoords.start,bottom:-segVCoords.end}:{top:"",bottom:""}}function compileSegsFromEntries(segEntries,allSegs){return segEntries.map(segEntry=>allSegs[segEntry.index])}class TimeColsContent extends BaseComponent{constructor(){super(...arguments),this.splitFgEventSegs=memoize(splitSegsByCol),this.splitBgEventSegs=memoize(splitSegsByCol),this.splitBusinessHourSegs=memoize(splitSegsByCol),this.splitNowIndicatorSegs=memoize(splitSegsByCol),this.splitDateSelectionSegs=memoize(splitSegsByCol),this.splitEventDrag=memoize(splitInteractionByCol),this.splitEventResize=memoize(splitInteractionByCol),this.rootElRef=d(),this.cellElRefs=new RefMap}render(){let{props,context}=this,nowIndicatorTop=context.options.nowIndicator&&props.slatCoords&&props.slatCoords.safeComputeTop(props.nowDate),colCnt=props.cells.length,fgEventSegsByRow=this.splitFgEventSegs(props.fgEventSegs,colCnt),bgEventSegsByRow=this.splitBgEventSegs(props.bgEventSegs,colCnt),businessHourSegsByRow=this.splitBusinessHourSegs(props.businessHourSegs,colCnt),nowIndicatorSegsByRow=this.splitNowIndicatorSegs(props.nowIndicatorSegs,colCnt),dateSelectionSegsByRow=this.splitDateSelectionSegs(props.dateSelectionSegs,colCnt),eventDragByRow=this.splitEventDrag(props.eventDrag,colCnt),eventResizeByRow=this.splitEventResize(props.eventResize,colCnt);return y("div",{className:"fc-timegrid-cols",ref:this.rootElRef},y("table",{role:"presentation",style:{minWidth:props.tableMinWidth,width:props.clientWidth}},props.tableColGroupNode,y("tbody",{role:"presentation"},y("tr",{role:"row"},props.axis&&y("td",{"aria-hidden":!0,className:"fc-timegrid-col fc-timegrid-axis"},y("div",{className:"fc-timegrid-col-frame"},y("div",{className:"fc-timegrid-now-indicator-container"},typeof nowIndicatorTop=="number"&&y(NowIndicatorContainer,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:nowIndicatorTop},isAxis:!0,date:props.nowDate})))),props.cells.map((cell,i2)=>y(TimeCol,{key:cell.key,elRef:this.cellElRefs.createRef(cell.key),dateProfile:props.dateProfile,date:cell.date,nowDate:props.nowDate,todayRange:props.todayRange,extraRenderProps:cell.extraRenderProps,extraDataAttrs:cell.extraDataAttrs,extraClassNames:cell.extraClassNames,extraDateSpan:cell.extraDateSpan,fgEventSegs:fgEventSegsByRow[i2],bgEventSegs:bgEventSegsByRow[i2],businessHourSegs:businessHourSegsByRow[i2],nowIndicatorSegs:nowIndicatorSegsByRow[i2],dateSelectionSegs:dateSelectionSegsByRow[i2],eventDrag:eventDragByRow[i2],eventResize:eventResizeByRow[i2],slatCoords:props.slatCoords,eventSelection:props.eventSelection,forPrint:props.forPrint}))))))}componentDidMount(){this.updateCoords()}componentDidUpdate(){this.updateCoords()}updateCoords(){let{props}=this;props.onColCoords&&props.clientWidth!==null&&props.onColCoords(new PositionCache(this.rootElRef.current,collectCellEls(this.cellElRefs.currentMap,props.cells),!0,!1))}}function collectCellEls(elMap,cells){return cells.map(cell=>elMap[cell.key])}class TimeCols extends DateComponent{constructor(){super(...arguments),this.processSlotOptions=memoize(processSlotOptions),this.state={slatCoords:null},this.handleRootEl=el=>{el?this.context.registerInteractiveComponent(this,{el,isHitComboAllowed:this.props.isHitComboAllowed}):this.context.unregisterInteractiveComponent(this)},this.handleScrollRequest=request=>{let{onScrollTopRequest}=this.props,{slatCoords}=this.state;if(onScrollTopRequest&&slatCoords){if(request.time){let top=slatCoords.computeTimeTop(request.time);top=Math.ceil(top),top&&(top+=1),onScrollTopRequest(top)}return!0}return!1},this.handleColCoords=colCoords=>{this.colCoords=colCoords},this.handleSlatCoords=slatCoords=>{this.setState({slatCoords}),this.props.onSlatCoords&&this.props.onSlatCoords(slatCoords)}}render(){let{props,state}=this;return y("div",{className:"fc-timegrid-body",ref:this.handleRootEl,style:{width:props.clientWidth,minWidth:props.tableMinWidth}},y(TimeColsSlats,{axis:props.axis,dateProfile:props.dateProfile,slatMetas:props.slatMetas,clientWidth:props.clientWidth,minHeight:props.expandRows?props.clientHeight:"",tableMinWidth:props.tableMinWidth,tableColGroupNode:props.axis?props.tableColGroupNode:null,onCoords:this.handleSlatCoords}),y(TimeColsContent,{cells:props.cells,axis:props.axis,dateProfile:props.dateProfile,businessHourSegs:props.businessHourSegs,bgEventSegs:props.bgEventSegs,fgEventSegs:props.fgEventSegs,dateSelectionSegs:props.dateSelectionSegs,eventSelection:props.eventSelection,eventDrag:props.eventDrag,eventResize:props.eventResize,todayRange:props.todayRange,nowDate:props.nowDate,
1nowIndicatorSegs:props.nowIndicatorSegs,clientWidth:props.clientWidth,tableMinWidth:props.tableMinWidth,tableColGroupNode:props.tableColGroupNode,slatCoords:state.slatCoords,onColCoords:this.handleColCoords,forPrint:props.forPrint}))}componentDidMount(){this.scrollResponder=this.context.createScrollResponder(this.handleScrollRequest)}componentDidUpdate(prevProps){this.scrollResponder.update(prevProps.dateProfile!==this.props.dateProfile)}componentWillUnmount(){this.scrollResponder.detach()}queryHit(positionLeft,positionTop){let{dateEnv,options}=this.context,{colCoords}=this,{dateProfile}=this.props,{slatCoords}=this.state,{snapDuration,snapsPerSlot}=this.processSlotOptions(this.props.slotDuration,options.snapDuration),colIndex=colCoords.leftToIndex(positionLeft),slatIndex=slatCoords.positions.topToIndex(positionTop);if(colIndex!=null&&slatIndex!=null){let cell=this.props.cells[colIndex],slatTop=slatCoords.positions.tops[slatIndex],slatHeight=slatCoords.positions.getHeight(slatIndex),partial=(positionTop-slatTop)/slatHeight,localSnapIndex=Math.floor(partial*snapsPerSlot),snapIndex=slatIndex*snapsPerSlot+localSnapIndex,dayDate=this.props.cells[colIndex].date,time=addDurations(dateProfile.slotMinTime,multiplyDuration(snapDuration,snapIndex)),start=dateEnv.add(dayDate,time),end=dateEnv.add(start,snapDuration);return{dateProfile,dateSpan:Object.assign({range:{start,end},allDay:!1},cell.extraDateSpan),dayEl:colCoords.els[colIndex],rect:{left:colCoords.lefts[colIndex],right:colCoords.rights[colIndex],top:slatTop,bottom:slatTop+slatHeight},layer:0}}return null}}function processSlotOptions(slotDuration,snapDurationOverride){let snapDuration=snapDurationOverride||slotDuration,snapsPerSlot=wholeDivideDurations(slotDuration,snapDuration);return snapsPerSlot===null&&(snapDuration=slotDuration,snapsPerSlot=1),{snapDuration,snapsPerSlot}}class DayTimeColsSlicer extends Slicer{sliceRange(range,dayRanges){let segs=[];for(let col=0;col<dayRanges.length;col+=1){let segRange=intersectRanges(range,dayRanges[col]);segRange&&segs.push({start:segRange.start,end:segRange.end,isStart:segRange.start.valueOf()===range.start.valueOf(),isEnd:segRange.end.valueOf()===range.end.valueOf(),col})}return segs}}class DayTimeCols extends DateComponent{constructor(){super(...arguments),this.buildDayRanges=memoize(buildDayRanges),this.slicer=new DayTimeColsSlicer,this.timeColsRef=d()}render(){let{props,context}=this,{dateProfile,dayTableModel}=props,{nowIndicator,nextDayThreshold}=context.options,dayRanges=this.buildDayRanges(dayTableModel,dateProfile,context.dateEnv);return y(NowTimer,{unit:nowIndicator?"minute":"day"},(nowDate,todayRange)=>y(TimeCols,Object.assign({ref:this.timeColsRef},this.slicer.sliceProps(props,dateProfile,null,context,dayRanges),{forPrint:props.forPrint,axis:props.axis,dateProfile,slatMetas:props.slatMetas,slotDuration:props.slotDuration,cells:dayTableModel.cells[0],tableColGroupNode:props.tableColGroupNode,tableMinWidth:props.tableMinWidth,clientWidth:props.clientWidth,clientHeight:props.clientHeight,expandRows:props.expandRows,nowDate,nowIndicatorSegs:nowIndicator&&this.slicer.sliceNowDate(nowDate,dateProfile,nextDayThreshold,context,dayRanges),todayRange,onScrollTopRequest:props.onScrollTopRequest,onSlatCoords:props.onSlatCoords})))}}function buildDayRanges(dayTableModel,dateProfile,dateEnv){let ranges=[];for(let date of dayTableModel.headerDates)ranges.push({start:dateEnv.add(date,dateProfile.slotMinTime),end:dateEnv.add(date,dateProfile.slotMaxTime)});return ranges}const STOCK_SUB_DURATIONS=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}];function buildSlatMetas(slotMinTime,slotMaxTime,explicitLabelInterval,slotDuration,dateEnv){let dayStart=new Date(0),slatTime=slotMinTime,slatIterator=createDuration(0),labelInterval=explicitLabelInterval||computeLabelInterval(slotDuration),metas=[];for(;asRoughMs(slatTime)<asRoughMs(slotMaxTime);){let date=dateEnv.add(dayStart,slatTime),isLabeled=wholeDivideDurations(slatIterator,labelInterval)!==null;metas.push({date,time:slatTime,key:date.toISOString(),isoTimeStr:formatIsoTimeString(date),isLabeled}),slatTime=addDurations(slatTime,slotDuration),slatIterator=addDurations(slatIterator,slotDuration)}return metas}function computeLabelInterval(slotDuration){let i2,labelInterval,slotsPer
1Label;for(i2=STOCK_SUB_DURATIONS.length-1;i2>=0;i2-=1)if(labelInterval=createDuration(STOCK_SUB_DURATIONS[i2]),slotsPerLabel=wholeDivideDurations(labelInterval,slotDuration),slotsPerLabel!==null&&slotsPerLabel>1)return labelInterval;return slotDuration}class DayTimeColsView extends TimeColsView{constructor(){super(...arguments),this.buildTimeColsModel=memoize(buildTimeColsModel),this.buildSlatMetas=memoize(buildSlatMetas)}render(){let{options,dateEnv,dateProfileGenerator}=this.context,{props}=this,{dateProfile}=props,dayTableModel=this.buildTimeColsModel(dateProfile,dateProfileGenerator),splitProps=this.allDaySplitter.splitProps(props),slatMetas=this.buildSlatMetas(dateProfile.slotMinTime,dateProfile.slotMaxTime,options.slotLabelInterval,options.slotDuration,dateEnv),{dayMinWidth}=options,hasAttachedAxis=!dayMinWidth,hasDetachedAxis=dayMinWidth,headerContent=options.dayHeaders&&y(DayHeader,{dates:dayTableModel.headerDates,dateProfile,datesRepDistinctDays:!0,renderIntro:hasAttachedAxis?this.renderHeadAxis:null}),allDayContent=options.allDaySlot!==!1&&(contentArg=>y(DayTable,Object.assign({},splitProps.allDay,{dateProfile,dayTableModel,nextDayThreshold:options.nextDayThreshold,tableMinWidth:contentArg.tableMinWidth,colGroupNode:contentArg.tableColGroupNode,renderRowIntro:hasAttachedAxis?this.renderTableRowAxis:null,showWeekNumbers:!1,expandRows:!1,headerAlignElRef:this.headerElRef,clientWidth:contentArg.clientWidth,clientHeight:contentArg.clientHeight,forPrint:props.forPrint},this.getAllDayMaxEventProps()))),timeGridContent=contentArg=>y(DayTimeCols,Object.assign({},splitProps.timed,{dayTableModel,dateProfile,axis:hasAttachedAxis,slotDuration:options.slotDuration,slatMetas,forPrint:props.forPrint,tableColGroupNode:contentArg.tableColGroupNode,tableMinWidth:contentArg.tableMinWidth,clientWidth:contentArg.clientWidth,clientHeight:contentArg.clientHeight,onSlatCoords:this.handleSlatCoords,expandRows:contentArg.expandRows,onScrollTopRequest:this.handleScrollTopRequest}));return hasDetachedAxis?this.renderHScrollLayout(headerContent,allDayContent,timeGridContent,dayTableModel.colCnt,dayMinWidth,slatMetas,this.state.slatCoords):this.renderSimpleLayout(headerContent,allDayContent,timeGridContent)}}
1function buildTimeColsModel(dateProfile,dateProfileGenerator){let daySeries=new DaySeriesModel(dateProfile.renderRange,dateProfileGenerator);return new DayTableModel(daySeries,!1)}const OPTION_REFINERS={allDaySlot:Boolean};var index$1=createPlugin({name:"@fullcalendar/timegrid",initialView:"timeGridWeek",optionRefiners:OPTION_REFINERS,views:{timeGrid:{component:DayTimeColsView,usesMinMaxTime:!0,allDaySlot:!0,slotDuration:"00:30:00",slotEventOverlap:!0},timeGridDay:{type:"timeGrid",duration:{days:1}},timeGridWeek:{type:"timeGrid",duration:{weeks:1}}}});const reactMajorVersion=parseInt(String(wn.version).split(".")[0]),syncRenderingByDefault=reactMajorVersion<18;class FullCalendar extends b$2{constructor(){super(...arguments),this.elRef=_$1(),this.isUpdating=!1,this.isUnmounting=!1,this.state={customRenderingMap:new Map},this.requestResize=()=>{this.isUnmounting||(this.cancelResize(),this.resizeId=requestAnimationFrame(()=>{this.doResize()}))}}render(){const customRenderingNodes=[];for(const customRendering of this.state.customRenderingMap.values())customRenderingNodes.push(wn.createElement(CustomRenderingComponent,{key:customRendering.id,customRendering}));return wn.createElement("div",{ref:this.elRef},customRenderingNodes)}componentDidMount(){const customRenderingStore=new CustomRenderingStore;this.handleCustomRendering=customRenderingStore.handle.bind(customRenderingStore),this.calendar=new Calendar(this.elRef.current,Object.assign(Object.assign({},this.props),{handleCustomRendering:this.handleCustomRendering})),this.calendar.render();let lastRequestTimestamp;customRenderingStore.subscribe(customRenderingMap=>{const requestTimestamp=Date.now(),isMounting=!lastRequestTimestamp;(syncRenderingByDefault||isMounting||this.isUpdating||this.isUnmounting||requestTimestamp-lastRequestTimestamp<100?runNow:mn)(()=>{this.setState({customRenderingMap},()=>{lastRequestTimestamp=requestTimestamp,isMounting?this.doResize():this.requestResize()})})})}componentDidUpdate(){this.isUpdating=!0,this.calendar.resetOptions(Object.assign(Object.assign({},this.props),{handleCustomRendering:this.handleCustomRendering})),this.isUpdating=!1}componentWillUnmount(){this.isUnmounting=!0,this.cancelResize(),this.calendar.destroy()}doResize(){this.calendar.updateSize()}cancelResize(){this.resizeId!==void 0&&(cancelAnimationFrame(this.resizeId),this.resizeId=void 0)}getApi(){return this.calendar}}FullCalendar.act=runNow;class CustomRenderingComponent extends w$3{render(){const{customRendering}=this.props,{generatorMeta}=customRendering,vnode=typeof generatorMeta=="function"?generatorMeta(customRendering.renderProps):generatorMeta;return z$2(vnode,customRendering.containerEl)}}function runNow(f2){f2()}var index=createPlugin({name:"@fullcalendar/daygrid",initialView:"dayGridMonth",views:{dayGrid:{component:DayTableView,dateProfileGeneratorClass:TableDateProfileGenerator},dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},fixedWeekCount:!0},dayGridYear:{type:"dayGrid",duration:{years:1}}}});const handleSelectMultipleFilterOptions=(options,setOptions,selectedValues,selected,setCurrentPage)=>{const updatedOptions=options.map(option=>selectedValues.includes(option.value)?{...option,selected:selected==="opposite"?!option.selected:selected}:option);setCurrentPage&&setCurrentPage(1),setOptions(updatedOptions)},handleAllOptions=(options,setOptions,selected,setCurrentPage)=>{const deselectedOptions=options.map(option=>({...option,selected}));setCurrentPage&&setCurrentPage(1),setOptions(deselectedOptions)},useCategorySubFolderTagFilters=(initialCategorySubFolderTags,setCurrentPage)=>{const[categorySubFolderTags,setCategorySubFolderTags]=h$1([]),selectedCategorySubFolderTagIds=F$1(()=>categorySubFolderTags.filter(c2=>c2.selected).map(c2=>c2.value),categorySubFolderTags);return p$1(()=>{if(initialCategorySubFolderTags){const categorySubFolderTags2=JSON.parse(initialCategorySubFolderTags)||[];setCategorySubFolderTags(categorySubFolderTags2)}},[initialCategorySubFolderTags]),{categorySubFolderTags,selectedCategorySubFolderTagIds,handleSelectAllCategorySubFolderTags:()=>handleAllOptions(categorySubFolderTags,setCategorySubFolderTags,!0,setCurrentPage),handleClearAllCategorySubFolderTags:()=>handleAllOptions(categorySubFolderTags,setCategorySubFolderTags,!1,setCurrentPage),handleSelectCategorySubFolderTags:(values,selected)=>{handleSelectMultipleFilterOptions(categorySubFolderTags,setCategorySubFolderTags,values,selected,setCurrentPage)}}},transformToEventObject=item=>{const startDateTime=`${item.eventStartDate}T${item.eventStartTime}`,endDateTime=`${item.eventStartDate}T${item.eventEndTime}`;return{id:item.listingId,title:`${formatTime(item.eventStartTime)} ${item.name}`,start:new Date(startDateTime),end:new Date(endDateTime),date:item.eventStartDate,url:item.url}},EventListing=({pageid,isBentoBlock,initialCategoryTags,initialCategorySubFolderTags,initialDisplayMode,initialSearchResult,initialViewMoreLinkUrl,showKeywordFilter,showCategoryFilter,showDisplayMode,showPagination,columnCount,rowCount,useUrlParams,showViewMoreLink,viewMoreLinkTarget,viewM
1oreLinkName,tabUid})=>{var _a;const{currentPage,searchResult,setCurrentPage,setSearchResult}=useListing(initialSearchResult),[parent]=useAutoAnimate(),[displayMode,setDisplayMode]=h$1(initialDisplayMode),isMobile=useMediaQuery("(max-width: 768px)"),urlParams=new URLSearchParams(window.location.search),termParam=useUrlParams?urlParams.get("Term"):"",[searchTerm,setSearchTerm]=h$1(termParam||""),handleSearchTerm=searchTerm2=>{setCurrentPage(1),setSearchTerm(searchTerm2)},{categoryTagIds,selectedCategoryTagIds,handleSelectAllCategoryTags,handleClearAllCategoryTags,handleSelectCategoryTags}=useCategoryTagFilters(initialCategoryTags,setCurrentPage),{categorySubFolderTags,selectedCategorySubFolderTagIds,handleSelectAllCategorySubFolderTags,handleClearAllCategorySubFolderTags,handleSelectCategorySubFolderTags}=useCategorySubFolderTagFilters(initialCategorySubFolderTags,setCurrentPage),getVisibleCategorySubFolderTags=()=>categorySubFolderTags.filter(tag=>selectedCategoryTagIds.includes(tag.subFolderId.toString())),{debouncedFunc:handleFetchSearch,cancel}=debounce(async()=>{const payload={CurrentPageId:pageid,SortBy:"DateAsc"};if(initialCategoryTags){const initialCategoryTagIds=JSON.parse(initialCategoryTags)||[];payload.InitialCategoryTagIds=initialCategoryTagIds.map(x2=>x2.value)}if(initialCategorySubFolderTags){const initialCategorySubFolderTagIds=JSON.parse(initialCategorySubFolderTags)||[];payload.InitialCategorySubFolderTagIds=initialCategorySubFolderTagIds.filter(x2=>x2.selected).length>0?initialCategorySubFolderTagIds.filter(x2=>x2.selected).map(x2=>x2.value):initialCategorySubFolderTagIds.map(x2=>x2.value)}currentPage&&(payload.Page=currentPage),payload.PageSize=columnCount*rowCount,payload.Term=searchTerm,payload.CategoryTagIds=selectedCategoryTagIds,payload.CategorySubFolderTagIds=selectedCategorySubFolderTagIds!=null&&selectedCategorySubFolderTagIds.length?selectedCategorySubFolderTagIds:selectedCategoryTagIds!=null&&selectedCategoryTagIds.length?categorySubFolderTags.filter(x2=>selectedCategoryTagIds.includes(x2.subFolderId.toString())).map(x2=>x2.value):categorySubFolderTags.map(x2=>x2.value),payload.AllowPastEvents=displayMode===DISPLAYMODE_CALENDAR,payload.DisplayMode=displayMode;const data=await(await fetch(EVENT_SEARCH_ENDPOINT,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(payload)})).json();setSearchResult(data),isBentoBlock&&initialCategoryTags&&(!payload.CategoryTagIds||payload.CategoryTagIds.length<=0)&&(payload.CategoryTagIds=payload.InitialCategoryTagIds),delete payload.InitialCategoryTagIds,delete payload.InitialCategorySubFolderTagIds,useUrlParams&&pushUrlParams(payload)},500);p$1(()=>{handleFetchSearch()},[selectedCategoryTagIds,selectedCategorySubFolderTagIds,searchTerm,currentPage,displayMode]),p$1(()=>()=>{cancel()},[cancel]),useTabChangeEvent(displayMode==DISPLAYMODE_CALENDAR,tabUid,()=>{setSearchResult(null),handleFetchSearch()},!0);const topRef=_$2(null),scrollToTop=()=>{if(topRef.current){const rect=topRef.current.getBoundingClientRect(),scrollTop=window.pageYOffset||document.documentElement.scrollTop,targetY=rect.top+scrollTop-155;window.scrollTo({top:targetY,behavior:"smooth"})}};return o$1(k$2,{children:[o$1("div",{ref:topRef,children:[o$1("div",{class:`mt-5 mb-12 md:mb-6 justify-between ${showCategoryFilter&&showKeywordFilter&&getVisibleCategorySubFolderTags().length>0&&selectedCategoryTagIds.length===1?"xl:flex":"lg:flex"}`,children:[showCategoryFilter||showKeywordFilter?o$1("form",{onSubmit:e2=>e2.preventDefault(),class:`w-full md:flex -m-2 ${showCategoryFilter&&showKeywordFilter&&getVisibleCategorySubFolderTags().length>0&&selectedCategoryTagIds.length===1?"max-xl:mb-6 xl:mr-6":"max-lg:mb-6 lg:mr-6"}`,children:[showKeywordFilter?o$1(IconTextInput,{fontAwesomeIconClasses:"fa-solid fa-magnifying-glass",label:"Keyword search",id:"Term",value:searchTerm,handleValue:handleSearchTerm,placeholder:"Search",cssClasses:"relative w-full md:max-w-70 m-2"}):null,showCategoryFilter&&(categoryTagIds==null?void 0:categoryTagIds.length)>1?o$1(CheckboxDropdown,{label:"Category",id:"CategoryTagIds",options:categoryTagIds,nothingSelectedText:"All categories",cssClasse
1s:"relative w-full m-2 md:max-w-70",handleSelectAll:()=>{handleSelectAllCategoryTags(),handleSelectAllCategorySubFolderTags()},handleClearAll:()=>{handleClearAllCategoryTags(),handleClearAllCategorySubFolderTags()},handleSelectOptions:value=>{handleSelectCategoryTags(value);const tagsForSubFolder=categorySubFolderTags==null?void 0:categorySubFolderTags.filter(subFolderTag=>subFolderTag.subFolderId.toString()===value).map(subFolderTag=>subFolderTag.value);handleSelectCategorySubFolderTags(tagsForSubFolder,!selectedCategoryTagIds.includes(value))}}):null,showCategoryFilter&&getVisibleCategorySubFolderTags().length>0&&selectedCategoryTagIds.length===1?o$1(CheckboxDropdown,{label:"Sub-categories",id:"CategorySubFolderTagIds",options:getVisibleCategorySubFolderTags().map(subFolderTag=>({text:subFolderTag.text,value:subFolderTag.value,selected:subFolderTag.selected,disabled:!1,group:null})),nothingSelectedText:"All sub-categories",cssClasses:"relative w-full md:max-w-70 m-2",handleSelectAll:handleSelectAllCategorySubFolderTags,handleClearAll:handleClearAllCategorySubFolderTags,handleSelectOptions:value=>handleSelectCategorySubFolderTags([value],"opposite")}):null]}):null,showDisplayMode?o$1("div",{class:"flex items-center justify-center min-w-max",children:[o$1("button",{onClick:()=>{setDisplayMode(DISPLAYMODE_CALENDAR),setSearchResult(null)},class:`btn btn-primary btn-primary-lg after:content-[""] hover:pr-8 ${displayMode!==DISPLAYMODE_CALENDAR?"bg-grey-50 text-grey-500":"btn-gradient"}`,disabled:displayMode===DISPLAYMODE_CALENDAR,children:[o$1("i",{class:"fa-solid fa-calendar mr-2"}),"Calendar"]}),o$1("button",{onClick:()=>{setDisplayMode(DISPLAYMODE_GRID),setSearchResult(null)},class:`btn btn-primary btn-primary-lg after:content-[""] hover:pr-8 ${displayMode!==DISPLAYMODE_GRID?"bg-grey-50 text-grey-500":"btn-gradient"} `,disabled:displayMode===DISPLAYMODE_GRID,children:[o$1("i",{class:"fa-solid fa-grid mr-2"}),"Grid"]}),o$1("button",{onClick:()=>{setDisplayMode(DISPLAYMODE_LIST),setSearchResult(null)},class:`btn btn-primary btn-primary-lg after:content-[""] hover:pr-8 ${displayMode!==DISPLAYMODE_LIST?"bg-grey-50 text-grey-500":"btn-gradient"} `,disabled:displayMode===DISPLAYMODE_LIST,children:[o$1("i",{class:"fa-solid fa-list mr-2"}),"List"]})]}):null]}),searchResult==null?o$1("div",{class:"w-full h-40 relative",children:o$1("div",{class:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",children:o$1("i",{class:"text-40 fa-solid fa-spinner animate-spin text-brand-teal"})})}):displayMode!==DISPLAYMODE_CALENDAR?o$1(k$2,{children:[o$1("div",{class:displayMode===DISPLAYMODE_GRID?`
2								grid
3								grid-cols-${columnCount}
4								auto-rows-auto
5								gap-5
6								md:gap-6
7								max-sm:!grid-cols-1
8								max-md:!grid-cols-2
9							`:"",ref:parent,children:searchResult!=null&&searchResult.items&&searchResult.items.length>0?o$1(k$2,{children:searchResult==null?void 0:searchResult.items.map(item=>y$1(EventItem,{...item,key:item.id,columnCount,displayMode}))}):o$1("div",{class:"col-span-full",children:o$1("p",{children:"No items to display."})})}),searchResult&&showPagination&&scrollToTop&&o$1(Pagination,{hasNextPage:searchResult.hasNextPage,hasPreviousPage:searchResult.hasPreviousPage,totalItems:searchResult.totalItems,itemsPerPage:searchResult.itemsPerPage,totalPages:searchResult.totalPages,currentPage,handlePageChange:setCurrentPage,scrollTo:scrollToTop})]}):o$1(k$2,{children:o$1(FullCalendar,{plugins:[index,index$1],initialView:"dayGridMonth",locale:"en-AU",eventOrder:(a2,b2)=>Date.parse("01/01/2011"+a2.eventStartTime)>Date.parse("01/01/2011"+b2.eventStartTime)?-1:0,events:(_a=searchResult==null?void 0:searchResult.items)==null?void 0:_a.map(transformToEventObject),eventColor:"#1C90A3",eventContent:renderCalendarEventContent,dayMaxEventRows:4,moreLinkClassNames:()=>"bg-[#1C90A3] w-full text-white !px-2 block hover:!bg-brand-teal",headerToolbar:isMobile?{left:"title",center:"prev,next today",right:"dayGridMonth,timeGridWeek,timeGridDay"}:{left:"prev,next today",center:"title",right:"dayGridMonth,timeGridWeek,timeGridDay"}})})]}),showViewMoreLink?o$1("div",{class:"flex justify-center mt-12",children:o$1("a",{href:`${initialViewMoreLinkUrl}?DisplayMode=${displayMode}`,class:"btn btn-primary btn-primary-lg mx-4 after:content-none hover:pr-8 btn-gradient",target:viewMoreLinkTarget,children:viewMoreLinkName})}):null]})};function renderCalendarEventContent(eventInfo){return o$1("div",{class:"overflow-ellipsis px-2 overflow-hidden w-full rounded hover:!bg-brand-teal bg-[#1C90A3] border-[#1C90A3] text-white",children:eventInfo.event.title})}const appRoots=Array.from(document.querySelectorAll(".event-listing-root")).filter(root=>root.id.startsWith("event-listing-root"));
9appRoots.forEach(appRoot=>{var _a,_b,_c,_d,_e,_f,_g;let suffix="";const parts=appRoot.id.split("event-listing-root-");parts.length>1&&(suffix=`-${parts[1]}`);const initialCategoryTags=(_a=document.querySelector("#CategoryTags"+suffix))==null?void 0:_a.innerHTML,initialCategorySubFolderTags=(_b=document.querySelector("#CategorySubFolderTags"+suffix))==null?void 0:_b.innerHTML,initialSearchResult=(_c=document.querySelector("#SearchResult"+suffix))==null?void 0:_c.innerHTML,showKeywordFilter=((_d=appRoot.dataset.showKeywordFilter)==null?void 0:_d.trim().toLowerCase())!=="false",showCategoryFilter=((_e=appRoot.dataset.showCategoryFilter)==null?void 0:_e.trim().toLowerCase())!=="false",showDisplayMode=((_f=appRoot.dataset.showDisplayMode)==null?void 0:_f.trim().toLowerCase())!=="false",showPagination=((_g=appRoot.dataset.showPagination)==null?void 0:_g.trim().toLowerCase())!=="false",columnCount=appRoot.dataset.columnCount?Number(appRoot.dataset.columnCount.trim()):3,rowCount=appRoot.dataset.rowCount?Number(appRoot.dataset.rowCount.trim()):3,pageid=appRoot.dataset.pageid||"",isBentoBlock=appRoot.dataset.isBentoBlock!=="false",initialDisplayMode=appRoot.dataset.displayMode||DISPLAYMODE_CALENDAR,useUrlParams=appRoot.dataset.useUrlParams!=="false",showViewMoreLink=appRoot.dataset.showViewMoreLink!=="false",initialViewMoreLinkUrl=appRoot.dataset.viewMoreLinkUrl||"",viewMoreLinkTarget=appRoot.dataset.viewMoreLinkTarget||"",viewMoreLinkName=appRoot.dataset.viewMoreLinkName||"",tabUid=appRoot.dataset.tabUid||"";B$2(y$1(EventListing,{pageid,isBentoBlock,initialCategoryTags,initialCategorySubFolderTags,initialDisplayMode,initialSearchResult,initialViewMoreLinkUrl,showKeywordFilter,showCategoryFilter,showDisplayMode,showPagination,columnCount,rowCount,useUrlParams,showViewMoreLink,viewMoreLinkTarget,viewM
9oreLinkName,tabUid}),appRoot)});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.