-
Notifications
You must be signed in to change notification settings - Fork 1
/
PlanningTool.umd.js
2 lines (2 loc) · 91.9 KB
/
PlanningTool.umd.js
1
2
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react"),require("moment"),require("interactjs"),require("lodash.isequal"),require("react/jsx-runtime"),require("classnames"),require("react-xarrows")):"function"==typeof define&&define.amd?define(["react","moment","interactjs","lodash.isequal","react/jsx-runtime","classnames","react-xarrows"],t):(e||self).planningTool=t(e.react,e.moment,e.interactjs,e.isEqual$1,e.jsxRuntime,e.classnames,e.reactXarrows)}(this,function(e,t,i,s,r,n,o){function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=/*#__PURE__*/a(e),d=/*#__PURE__*/a(t),h=/*#__PURE__*/a(i),c=/*#__PURE__*/a(s),u=/*#__PURE__*/a(n),p=/*#__PURE__*/a(o);function m(e){var t={exports:{}};return e(t,t.exports),t.exports}var g="function"==typeof Symbol&&Symbol.for,f=g?Symbol.for("react.element"):60103,v=g?Symbol.for("react.portal"):60106,b=g?Symbol.for("react.fragment"):60107,y=g?Symbol.for("react.strict_mode"):60108,T=g?Symbol.for("react.profiler"):60114,S=g?Symbol.for("react.provider"):60109,R=g?Symbol.for("react.context"):60110,C=g?Symbol.for("react.async_mode"):60111,x=g?Symbol.for("react.concurrent_mode"):60111,z=g?Symbol.for("react.forward_ref"):60112,M=g?Symbol.for("react.suspense"):60113,I=g?Symbol.for("react.suspense_list"):60120,k=g?Symbol.for("react.memo"):60115,D=g?Symbol.for("react.lazy"):60116,w=g?Symbol.for("react.block"):60121,j=g?Symbol.for("react.fundamental"):60117,E=g?Symbol.for("react.responder"):60118,L=g?Symbol.for("react.scope"):60119;function O(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case f:switch(e=e.type){case C:case x:case b:case T:case y:case M:return e;default:switch(e=e&&e.$$typeof){case R:case z:case D:case k:case S:return e;default:return t}}case v:return t}}}function P(e){return O(e)===x}var W={AsyncMode:C,ConcurrentMode:x,ContextConsumer:R,ContextProvider:S,Element:f,ForwardRef:z,Fragment:b,Lazy:D,Memo:k,Portal:v,Profiler:T,StrictMode:y,Suspense:M,isAsyncMode:function(e){return P(e)||O(e)===C},isConcurrentMode:P,isContextConsumer:function(e){return O(e)===R},isContextProvider:function(e){return O(e)===S},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===f},isForwardRef:function(e){return O(e)===z},isFragment:function(e){return O(e)===b},isLazy:function(e){return O(e)===D},isMemo:function(e){return O(e)===k},isPortal:function(e){return O(e)===v},isProfiler:function(e){return O(e)===T},isStrictMode:function(e){return O(e)===y},isSuspense:function(e){return O(e)===M},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===b||e===x||e===T||e===y||e===M||e===I||"object"==typeof e&&null!==e&&(e.$$typeof===D||e.$$typeof===k||e.$$typeof===S||e.$$typeof===R||e.$$typeof===z||e.$$typeof===j||e.$$typeof===E||e.$$typeof===L||e.$$typeof===w)},typeOf:O},H=m(function(e,t){"production"!==process.env.NODE_ENV&&function(){var e="function"==typeof Symbol&&Symbol.for,i=e?Symbol.for("react.element"):60103,s=e?Symbol.for("react.portal"):60106,r=e?Symbol.for("react.fragment"):60107,n=e?Symbol.for("react.strict_mode"):60108,o=e?Symbol.for("react.profiler"):60114,a=e?Symbol.for("react.provider"):60109,l=e?Symbol.for("react.context"):60110,d=e?Symbol.for("react.async_mode"):60111,h=e?Symbol.for("react.concurrent_mode"):60111,c=e?Symbol.for("react.forward_ref"):60112,u=e?Symbol.for("react.suspense"):60113,p=e?Symbol.for("react.suspense_list"):60120,m=e?Symbol.for("react.memo"):60115,g=e?Symbol.for("react.lazy"):60116,f=e?Symbol.for("react.block"):60121,v=e?Symbol.for("react.fundamental"):60117,b=e?Symbol.for("react.responder"):60118,y=e?Symbol.for("react.scope"):60119;function T(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case i:var p=e.type;switch(p){case d:case h:case r:case o:case n:case u:return p;default:var f=p&&p.$$typeof;switch(f){case l:case c:case g:case m:case a:return f;default:return t}}case s:return t}}}var S=h,R=l,C=a,x=i,z=c,M=r,I=g,k=m,D=s,w=o,j=n,E=u,L=!1;function O(e){return T(e)===h}t.AsyncMode=d,t.ConcurrentMode=S,t.ContextConsumer=R,t.ContextProvider=C,t.Element=x,t.ForwardRef=z,t.Fragment=M,t.Lazy=I,t.Memo=k,t.Portal=D,t.Profiler=w,t.StrictMode=j,t.Suspense=E,t.isAsyncMode=function(e){return L||(L=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),O(e)||T(e)===d},t.isConcurrentMode=O,t.isContextConsumer=function(e){return T(e)===l},t.isContextProvider=function(e){return T(e)===a},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===i},t.isForwardRef=function(e){return T(e)===c},t.isFragment=function(e){return T(e)===r},t.isLazy=function(e){return T(e)===g},t.isMemo=function(e){return T(e)===m},t.isPortal=function(e){return T(e)===s},t.isProfiler=function(e){return T(e)===o},t.isStrictMode=function(e){return T(e)===n},t.isSuspense=function(e){return T(e)===u},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===r||e===h||e===o||e===n||e===u||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===a||e.$$typeof===l||e.$$typeof===c||e.$$typeof===v||e.$$typeof===b||e.$$typeof===y||e.$$typeof===f)},t.typeOf=T}()}),q=m(function(e){e.exports="production"===process.env.NODE_ENV?W:H}),N=Object.getOwnPropertySymbols,F=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable;function K(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var U=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},i=0;i<10;i++)t["_"+String.fromCharCode(i)]=i;var s=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==s.join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var i,s,r=K(e),n=1;n<arguments.length;n++){for(var o in i=Object(arguments[n]))F.call(i,o)&&(r[o]=i[o]);if(N){s=N(i);for(var a=0;a<s.length;a++)$.call(i,s[a])&&(r[s[a]]=i[s[a]])}}return r},G=Function.call.bind(Object.prototype.hasOwnProperty),Y="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",A=G,_=function(){};if("production"!==process.env.NODE_ENV){var B=Y,V={},X=A;_=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}}function Z(e,t,i,s,r){if("production"!==process.env.NODE_ENV)for(var n in e)if(X(e,n)){var o;try{if("function"!=typeof e[n]){var a=Error((s||"React class")+": "+i+" type `"+n+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[n]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw a.name="Invariant Violation",a}o=e[n](t,n,s,i,null,B)}catch(e){o=e}if(!o||o instanceof Error||_((s||"React class")+": type specification of "+i+" `"+n+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof o+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),o instanceof Error&&!(o.message in V)){V[o.message]=!0;var l=r?r():"";_("Failed "+i+" type: "+o.message+(null!=l?l:""))}}}Z.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&(V={})};var J=Z,Q=function(){};function ee(){return null}function te(){}function ie(){}"production"!==process.env.NODE_ENV&&(Q=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}),ie.resetWarningCache=te;var se=m(function(e){e.exports="production"!==process.env.NODE_ENV?function(e,t){var i="function"==typeof Symbol&&Symbol.iterator,s="<<anonymous>>",r={array:l("array"),bigint:l("bigint"),bool:l("boolean"),func:l("function"),number:l("number"),object:l("object"),string:l("string"),symbol:l("symbol"),any:a(ee),arrayOf:function(e){return a(function(t,i,s,r,n){if("function"!=typeof e)return new o("Property `"+n+"` of component `"+s+"` has invalid PropType notation inside arrayOf.");var a=t[i];if(!Array.isArray(a))return new o("Invalid "+r+" `"+n+"` of type `"+c(a)+"` supplied to `"+s+"`, expected an array.");for(var l=0;l<a.length;l++){var d=e(a,l,s,r,n+"["+l+"]",Y);if(d instanceof Error)return d}return null})},element:a(function(t,i,s,r,n){var a=t[i];return e(a)?null:new o("Invalid "+r+" `"+n+"` of type `"+c(a)+"` supplied to `"+s+"`, expected a single ReactElement.")}),elementType:a(function(e,t,i,s,r){var n=e[t];return q.isValidElementType(n)?null:new o("Invalid "+s+" `"+r+"` of type `"+c(n)+"` supplied to `"+i+"`, expected a single ReactElement type.")}),instanceOf:function(e){return a(function(t,i,r,n,a){return t[i]instanceof e?null:new o("Invalid "+n+" `"+a+"` of type `"+((l=t[i]).constructor&&l.constructor.name?l.constructor.name:s)+"` supplied to `"+r+"`, expected instance of `"+(e.name||s)+"`.");var l})},node:a(function(e,t,i,s,r){return h(e[t])?null:new o("Invalid "+s+" `"+r+"` supplied to `"+i+"`, expected a ReactNode.")}),objectOf:function(e){return a(function(t,i,s,r,n){if("function"!=typeof e)return new o("Property `"+n+"` of component `"+s+"` has invalid PropType notation inside objectOf.");var a=t[i],l=c(a);if("object"!==l)return new o("Invalid "+r+" `"+n+"` of type `"+l+"` supplied to `"+s+"`, expected an object.");for(var d in a)if(A(a,d)){var h=e(a,d,s,r,n+"."+d,Y);if(h instanceof Error)return h}return null})},oneOf:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&Q(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),ee;function t(t,i,s,r,a){for(var l=t[i],d=0;d<e.length;d++)if(n(l,e[d]))return null;var h=JSON.stringify(e,function(e,t){return"symbol"===u(t)?String(t):t});return new o("Invalid "+r+" `"+a+"` of value `"+String(l)+"` supplied to `"+s+"`, expected one of "+h+".")}return a(t)},oneOfType:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&Q("Invalid argument supplied to oneOfType, expected an instance of array."),ee;for(var t=0;t<e.length;t++){var i=e[t];if("function"!=typeof i)return Q("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+p(i)+" at index "+t+"."),ee}return a(function(t,i,s,r,n){for(var a=[],l=0;l<e.length;l++){var d=(0,e[l])(t,i,s,r,n,Y);if(null==d)return null;d.data&&A(d.data,"expectedType")&&a.push(d.data.expectedType)}return new o("Invalid "+r+" `"+n+"` supplied to `"+s+"`"+(a.length>0?", expected one of type ["+a.join(", ")+"]":"")+".")})},shape:function(e){return a(function(t,i,s,r,n){var a=t[i],l=c(a);if("object"!==l)return new o("Invalid "+r+" `"+n+"` of type `"+l+"` supplied to `"+s+"`, expected `object`.");for(var h in e){var p=e[h];if("function"!=typeof p)return d(s,r,n,h,u(p));var m=p(a,h,s,r,n+"."+h,Y);if(m)return m}return null})},exact:function(e){return a(function(t,i,s,r,n){var a=t[i],l=c(a);if("object"!==l)return new o("Invalid "+r+" `"+n+"` of type `"+l+"` supplied to `"+s+"`, expected `object`.");var h=U({},t[i],e);for(var p in h){var m=e[p];if(A(e,p)&&"function"!=typeof m)return d(s,r,n,p,u(m));if(!m)return new o("Invalid "+r+" `"+n+"` key `"+p+"` supplied to `"+s+"`.\nBad object: "+JSON.stringify(t[i],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var g=m(a,p,s,r,n+"."+p,Y);if(g)return g}return null})}};function n(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function o(e,t){this.message=e,this.data=t&&"object"==typeof t?t:{},this.stack=""}function a(e){function t(t,i,r,n,a,l,d){if(n=n||s,l=l||r,d!==Y){var h=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw h.name="Invariant Violation",h}return null==i[r]?t?new o(null===i[r]?"The "+a+" `"+l+"` is marked as required in `"+n+"`, but its value is `null`.":"The "+a+" `"+l+"` is marked as required in `"+n+"`, but its value is `undefined`."):null:e(i,r,n,a,l)}process;var i=t.bind(null,!1);return i.isRequired=t.bind(null,!0),i}function l(e){return a(function(t,i,s,r,n,a){var l=t[i];return c(l)!==e?new o("Invalid "+r+" `"+n+"` of type `"+u(l)+"` supplied to `"+s+"`, expected `"+e+"`.",{expectedType:e}):null})}function d(e,t,i,s,r){return new o((e||"React class")+": "+t+" type `"+i+"."+s+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+r+"`.")}function h(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(h);if(null===t||e(t))return!0;var s=function(e){var t=e&&(i&&e[i]||e["@@iterator"]);if("function"==typeof t)return t}(t);if(!s)return!1;var r,n=s.call(t);if(s!==t.entries){for(;!(r=n.next()).done;)if(!h(r.value))return!1}else for(;!(r=n.next()).done;){var o=r.value;if(o&&!h(o[1]))return!1}return!0;default:return!1}}function c(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,t){return"symbol"===e||!!t&&("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}(t,e)?"symbol":t}function u(e){if(null==e)return""+e;var t=c(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function p(e){var t=u(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}return o.prototype=Error.prototype,r.checkPropTypes=J,r.resetWarningCache=J.resetWarningCache,r.PropTypes=r,r}(q.isElement):function(){function e(e,t,i,s,r,n){if(n!==Y){var o=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw o.name="Invariant Violation",o}}function t(){return e}e.isRequired=e;var i={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:ie,resetWarningCache:te};return i.PropTypes=i,i}()});function re(e,t){return"function"==typeof e.get?e.get(t):e[t]}function ne(e){return"function"==typeof e.count?e.count():e.length}function oe(e,t){return ne(e)===ne(t)&&e.every((e,i)=>e===re(t,i))}function ae(){}function le(){var e=arguments;return function(t){t.preventDefault(),[].slice.call(e).forEach(e=>e&&e(t,...[].slice.call(arguments,1)))}}const de=e=>{let{item:t,itemContext:i,getItemProps:s,getResizeProps:n}=e;const{left:o,right:a}=n();/*#__PURE__*/return r.jsxs("div",{...s(t.itemProps),children:[i.useResizeHandle?/*#__PURE__*/r.jsx("div",{...o}):"",/*#__PURE__*/r.jsx("div",{className:"rct-item-content",style:{maxHeight:`${i.dimensions.height}`},children:i.title}),i.useResizeHandle?/*#__PURE__*/r.jsx("div",{...a}):""]})};function he(e,t,i){return(t-e)/i}function ce(e,t,i,s){return i/(t-e)*(s-e)}function ue(e,t,i,s){return(t-e)/i*s+e}function pe(e,t,i,s,r){let n=d.default(e).startOf(i);if(s[i]&&s[i]>1){let e=n.get(i);n.set(i,e-e%s[i])}for(;n.valueOf()<t;){let e=d.default(n).add(s[i]||1,`${i}s`);r(n,e),n=e}}function me(e,t,i){let s={second:1e3,minute:60,hour:60,day:24,month:30,year:12},r="year",n=e;return Object.keys(s).some(e=>{if(n/=s[e],n/i[e]<t/(i[e]&&i[e]>1?51:17))return r=e,!0}),r}function ge(e){let t={second:"minute",minute:"hour",hour:"day",day:"month",month:"year",year:"year"};if(!t[e])throw new Error(`unit ${e} in not acceptable`);return t[e]}function fe(e,t){const{groupIdKey:i}=t;let s={};for(let t=0;t<e.length;t++)s[re(e[t],i)]={index:t,group:e[t]};return s}function ve(e,t,i,s){const{itemTimeStartKey:r,itemTimeEndKey:n}=s;return e.filter(e=>re(e,r)<=i&&re(e,n)>=t)}function be(e,t,i,s){return void 0===s&&(s=.001),e.collisionLeft+s<t.collisionLeft+t.collisionWidth&&e.collisionLeft+e.collisionWidth-s>t.collisionLeft&&e.top-0+s<t.top+t.height&&e.top+e.height+0-s>t.top}function ye(e,t,i,s,r,n){let o=s,a=(e-t.dimensions.height)/2;if(t.dimensions.stack&&null===t.dimensions.top){t.dimensions.top=r+a,o=Math.max(o,e);do{for(var l=null,d=n-1;d>=0;d--){var h=i[d];if(null!==h.dimensions.top&&h.dimensions.stack&&be(t.dimensions,h.dimensions)){l=h;break}}null!=l&&(t.dimensions.top=l.dimensions.top+e,o=Math.max(o,t.dimensions.top+t.dimensions.height+a-r))}while(l)}return{groupHeight:o,verticalMargin:a,itemTop:t.dimensions.top}}function Te(e,t,i,s){return null===t.dimensions.top&&(t.dimensions.top=s+(e-t.dimensions.height)/2,i=Math.max(i,e)),{groupHeight:i,verticalMargin:0,itemTop:t.dimensions.top}}function Se(e){return void 0===e&&(e=[]),e.reduce((e,t)=>e+t,0)}function Re(e,t,i,s){var r=0,n=0;for(let o=0;o<e.length;o++){let a={};a=t?ye(i,e[o],e,r,s,o):Te(i,e[o],r,s),r=a.groupHeight,n=a.verticalMargin}return{groupHeight:r,verticalMargin:n}}function Ce(e,t,i,s,r,n,o,a,l,d,h,c,u,p,m){const g=ve(e,s,r,n).map(e=>function(e){let{item:t,keys:i,draggingItem:s,resizingItem:r,dragTime:n,resizingEdge:o,resizeTime:a,groups:l,newGroupOrder:d}=e;if(!r&&!s)return t;const h=re(t,i.itemIdKey),c=h===s,u=h===r,[p,m]=function(e){let{itemTimeStart:t,itemTimeEnd:i,dragTime:s,isDragging:r,isResizing:n,resizingEdge:o,resizeTime:a}=e;return[r?s:n&&"left"===o?a:t,r?s+(i-t):n&&"right"===o?a:i]}({itemTimeStart:re(t,i.itemTimeStartKey),itemTimeEnd:re(t,i.itemTimeEndKey),isDragging:c,isResizing:u,dragTime:n,resizingEdge:o,resizeTime:a});return{...t,[i.itemTimeStartKey]:p,[i.itemTimeEndKey]:m,[i.itemGroupKey]:c?re(l[d],i.groupIdKey):re(t,i.itemGroupKey)}}({item:e,keys:n,draggingItem:d,resizingItem:h,dragTime:c,resizingEdge:u,resizeTime:p,groups:t,newGroupOrder:m}));if(0===t.length)return{dimensionItems:[],height:0,groupHeights:[],groupTops:[]};const f=fe(t,n);let v=g.map(e=>function(e){let{item:t,keys:i,canvasTimeStart:s,canvasTimeEnd:r,canvasWidth:n,groupOrders:o,lineHeight:a,itemHeightRatio:l}=e;const d=re(t,i.itemIdKey);let h=function(e){let{itemTimeStart:t,itemTimeEnd:i,canvasTimeStart:s,canvasTimeEnd:r,canvasWidth:n}=e;const o=i-t,a=Math.max(t,s),l=Math.min(i,r),d=ce(s,r,n,a),h=ce(s,r,n,l);return{left:d,width:Math.max(h-d,3),collisionLeft:t,collisionWidth:o}}({itemTimeStart:re(t,i.itemTimeStartKey),itemTimeEnd:re(t,i.itemTimeEndKey),canvasTimeStart:s,canvasTimeEnd:r,canvasWidth:n});if(h)return h.top=null,h.order=o[re(t,i.itemGroupKey)],h.stack=!t.isOverlay,h.height=a*l,{id:d,dimensions:h}}({item:e,keys:n,canvasTimeStart:s,canvasTimeEnd:r,canvasWidth:i,groupOrders:f,lineHeight:o,itemHeightRatio:a})).filter(e=>!!e);const{height:b,groupHeights:y,groupTops:T}=function(e,t,i,s){var r=[],n=[],o=function(e,t){var i={},s=Object.keys(t);for(let e=0;e<s.length;e++){const r=t[s[e]];i[e]={index:r.index,group:r.group,items:[]}}for(let t=0;t<e.length;t++)if(void 0!==e[t].dimensions.order){const s=i[e[t].dimensions.order.index];s&&s.items.push(e[t])}return i}(e,t);for(var a in o){const e=o[a],{items:t,group:l}=e,d=Se(r),h=void 0!==l.stackItems?l.stackItems:s,{groupHeight:c}=Re(t,h,i,d);n.push(d),r.push(l.height?l.height:Math.max(c,i))}return{height:Se(r),groupHeights:r,groupTops:n}}(v,f,o,l);return{dimensionItems:v,height:b,groupHeights:y,groupTops:T}}function xe(e,t){return void 0===t&&(t=3),e*t}function ze(e,t){const i=e-(t-e);return[i,i+3*(t-e)]}function Me(e,t,i,s,r,n,o){const a=o.canvasTimeStart,l=o.visibleTimeEnd-o.visibleTimeStart,d={visibleTimeStart:e,visibleTimeEnd:t};if(!(t-e===l&&e>=a+.5*l&&e<=a+1.5*l&&t>=a+1.5*l&&t<=a+2.5*l)||i){const[i,a]=ze(e,t);d.canvasTimeStart=i,d.canvasTimeEnd=a;const l={...o,...d},h=xe(l.width);Object.assign(d,Ce(s,r,h,l.canvasTimeStart,l.canvasTimeEnd,n.keys,n.lineHeight,n.itemHeightRatio,n.stackItems,l.draggingItem,l.resizingItem,l.dragTime,l.resizingEdge,l.resizeTime,l.newGroupOrder))}return d}function Ie(e){for(var t=0,i=0,s=!0;e;)e.offsetParent||"BODY"!==e.tagName||0!==e.scrollLeft||0!==e.scrollTop||(e=document.scrollingElement||e),t+=e.offsetLeft-(s?0:e.scrollLeft)+e.clientLeft,i+=e.offsetTop-(s?0:e.scrollTop)+e.clientTop,e=e.offsetParent,s=!1;return{x:t,y:i}}function ke(e){if(e===document.body)return{scrollLeft:0,scrollTop:0};{const t=ke(e.parentNode);return{scrollLeft:e.scrollLeft+t.scrollLeft,scrollTop:e.scrollTop+t.scrollTop}}}function De(e){if(e!==document.body&&e.offsetParent){const t=De(e.offsetParent);return{offsetLeft:e.offsetLeft+t.offsetLeft,offsetTop:e.offsetTop+t.offsetTop}}return{offsetLeft:0,offsetTop:0}}de.propTypes={item:se.any,itemContext:se.any,getItemProps:se.any,getResizeProps:se.any};const we={fontSize:12,color:"white",cursor:"pointer",background:"#2196f3",border:"1px solid #1a6fb3",zIndex:80},je={background:"#ffc107",border:"1px solid #ff9800",zIndex:82},Ee={cursor:"move"},Le={borderLeftWidth:3},Oe={cursor:"ew-resize"},Pe={borderRightWidth:3},We={cursor:"ew-resize"},He={position:"absolute",width:24,maxWidth:"20%",minWidth:2,height:"100%",top:0,left:0,cursor:"pointer",zIndex:88},qe={position:"absolute",width:24,maxWidth:"20%",minWidth:2,height:"100%",top:0,right:0,cursor:"pointer",zIndex:88};class Ne extends e.Component{constructor(e){var t;super(e),t=this,this.onMouseDown=e=>{this.state.interactMounted||(e.preventDefault(),this.startedClicking=!0)},this.onMouseUp=e=>{!this.state.interactMounted&&this.startedClicking&&(this.startedClicking=!1,this.actualClick(e,"click"))},this.onTouchStart=e=>{this.state.interactMounted||(e.preventDefault(),this.startedTouching=!0)},this.onTouchEnd=e=>{!this.state.interactMounted&&this.startedTouching&&(this.startedTouching=!1,this.actualClick(e,"touch"))},this.handleDoubleClick=e=>{e.stopPropagation(),this.props.onItemDoubleClick&&this.props.onItemDoubleClick(this.itemId,e)},this.handleContextMenu=e=>{this.props.onContextMenu&&(e.preventDefault(),e.stopPropagation(),this.props.onContextMenu(this.itemId,e))},this.getItemRef=e=>this.item=e,this.getDragLeftRef=e=>this.dragLeft=e,this.getDragRightRef=e=>this.dragRight=e,this.getItemProps=function(e){return void 0===e&&(e={}),{key:t.itemId,ref:t.getItemRef,title:t.itemDivTitle,className:"rct-item"+(t.props.item.className?` ${t.props.item.className}`:"")+` ${e.className?e.className:""}`,onMouseDown:le(t.onMouseDown,e.onMouseDown),onMouseUp:le(t.onMouseUp,e.onMouseUp),onTouchStart:le(t.onTouchStart,e.onTouchStart),onTouchEnd:le(t.onTouchEnd,e.onTouchEnd),onDoubleClick:le(t.handleDoubleClick,e.onDoubleClick),onContextMenu:le(t.handleContextMenu,e.onContextMenu),style:Object.assign({},t.getItemStyle(e))}},this.getResizeProps=function(e){void 0===e&&(e={});let i="rct-item-handler rct-item-handler-left rct-item-handler-resize-left";e.leftClassName&&(i+=` ${e.leftClassName}`);let s="rct-item-handler rct-item-handler-right rct-item-handler-resize-right";return e.rightClassName&&(s+=` ${e.rightClassName}`),{left:{ref:t.getDragLeftRef,className:i,style:Object.assign({},He,e.leftStyle)},right:{ref:t.getDragRightRef,className:s,style:Object.assign({},qe,e.rightStyle)}}},this.cacheDataFromProps(e),this.state={interactMounted:!1,dragging:null,dragStart:null,preDragPosition:null,dragTime:null,dragGroupDelta:null,resizing:null,resizeEdge:null,resizeStart:null,resizeTime:null}}shouldComponentUpdate(e,t){return t.dragging!==this.state.dragging||t.dragTime!==this.state.dragTime||t.dragGroupDelta!==this.state.dragGroupDelta||t.resizing!==this.state.resizing||t.resizeTime!==this.state.resizeTime||e.keys!==this.props.keys||!c.default(e.itemProps,this.props.itemProps)||e.selected!==this.props.selected||e.item!==this.props.item||e.canvasTimeStart!==this.props.canvasTimeStart||e.canvasTimeEnd!==this.props.canvasTimeEnd||e.canvasWidth!==this.props.canvasWidth||(e.order?e.order.index:void 0)!==(this.props.order?this.props.order.index:void 0)||e.dragSnap!==this.props.dragSnap||e.minResizeWidth!==this.props.minResizeWidth||e.canChangeGroup!==this.props.canChangeGroup||e.canSelect!==this.props.canSelect||e.canMove!==this.props.canMove||e.canResizeLeft!==this.props.canResizeLeft||e.canResizeRight!==this.props.canResizeRight||e.dimensions!==this.props.dimensions}cacheDataFromProps(e){this.itemId=re(e.item,e.keys.itemIdKey),this.itemTitle=re(e.item,e.keys.itemTitleKey),this.itemDivTitle=e.keys.itemDivTitleKey?re(e.item,e.keys.itemDivTitleKey):this.itemTitle,this.itemTimeStart=re(e.item,e.keys.itemTimeStartKey),this.itemTimeEnd=re(e.item,e.keys.itemTimeEndKey)}getTimeRatio(){const{canvasTimeStart:e,canvasTimeEnd:t,canvasWidth:i}=this.props;return he(e,t,i)}dragTimeSnap(e,t){const{dragSnap:i}=this.props;if(i){const s=t?60*d.default().utcOffset()*1e3:0;return Math.round(e/i)*i-s%i}return e}resizeTimeSnap(e){const{dragSnap:t}=this.props;if(t){const i=this.itemTimeEnd%t;return Math.round((e-i)/t)*t+i}return e}dragTime(e){const t=d.default(this.itemTimeStart);return this.state.dragging?this.dragTimeSnap(this.timeFor(e)+this.state.dragStart.offset,!0):t}timeFor(e){const t=he(this.props.canvasTimeStart,this.props.canvasTimeEnd,this.props.canvasWidth),i=De(this.props.scrollRef).offsetLeft,s=ke(this.props.scrollRef);return(e.pageX-i+s.scrollLeft)*t+this.props.canvasTimeStart}dragGroupDelta(e){const{groupTops:t,order:i}=this.props;if(this.state.dragging){if(!this.props.canChangeGroup)return 0;let r=0;const n=De(this.props.scrollRef).offsetTop,o=ke(this.props.scrollRef);for(var s of Object.keys(t)){if(!(e.pageY-n+o.scrollTop>t[s]))break;r=parseInt(s,10)-i.index}return this.props.order.index+r<0?0-this.props.order.index:r}return 0}resizeTimeDelta(e,t){const i=this.itemTimeEnd-this.itemTimeStart,s=this.dragTimeSnap((e.pageX-this.state.resizeStart)*this.getTimeRatio());return i+("left"===t?-s:s)<(this.props.dragSnap||1e3)?"left"===t?i-(this.props.dragSnap||1e3):(this.props.dragSnap||1e3)-i:s}mountInteract(){const e=!this.props.useResizeHandle||".rct-item-handler-resize-left",t=!this.props.useResizeHandle||".rct-item-handler-resize-right";h.default(this.item).resizable({edges:{left:this.canResizeLeft()&&e,right:this.canResizeRight()&&t,top:!1,bottom:!1},enabled:this.props.selected&&(this.canResizeLeft()||this.canResizeRight())}).draggable({enabled:this.props.selected&&this.canMove()}).styleCursor(!1).on("dragstart",e=>{if(!this.props.selected)return!1;{const t=this.timeFor(e);this.setState({dragging:!0,dragStart:{x:e.pageX,y:e.pageY,offset:this.itemTimeStart-t},preDragPosition:{x:e.target.offsetLeft,y:e.target.offsetTop},dragTime:this.itemTimeStart,dragGroupDelta:0})}}).on("dragmove",e=>{if(this.state.dragging){let t=this.dragTime(e),i=this.dragGroupDelta(e);this.props.moveResizeValidator&&(t=this.props.moveResizeValidator("move",this.props.item,t)),this.props.onDrag&&this.props.onDrag(this.itemId,t,this.props.order.index+i),this.setState({dragTime:t,dragGroupDelta:i})}}).on("dragend",e=>{if(this.state.dragging){if(this.props.onDrop){let t=this.dragTime(e);this.props.moveResizeValidator&&(t=this.props.moveResizeValidator("move",this.props.item,t)),this.props.onDrop(this.itemId,t,this.props.order.index+this.dragGroupDelta(e))}this.setState({dragging:!1,dragStart:null,preDragPosition:null,dragTime:null,dragGroupDelta:null})}}).on("resizestart",e=>{if(!this.props.selected)return!1;this.setState({resizing:!0,resizeEdge:null,resizeStart:e.pageX,resizeTime:0})}).on("resizemove",e=>{if(this.state.resizing){let t=this.state.resizeEdge;t||(t=0!==e.deltaRect.left?"left":"right",this.setState({resizeEdge:t}));let i=this.resizeTimeSnap(this.timeFor(e));this.props.moveResizeValidator&&(i=this.props.moveResizeValidator("resize",this.props.item,i,t)),this.props.onResizing&&this.props.onResizing(this.itemId,i,t),this.setState({resizeTime:i})}}).on("resizeend",e=>{if(this.state.resizing){const{resizeEdge:t}=this.state;let i=this.resizeTimeSnap(this.timeFor(e));this.props.moveResizeValidator&&(i=this.props.moveResizeValidator("resize",this.props.item,i,t)),this.props.onResized&&this.props.onResized(this.itemId,i,t,this.resizeTimeDelta(e,t)),this.setState({resizing:null,resizeStart:null,resizeEdge:null,resizeTime:null})}}).on("tap",e=>{this.actualClick(e,"mouse"===e.pointerType?"click":"touch")}),this.setState({interactMounted:!0})}canResizeLeft(e){return void 0===e&&(e=this.props),!!e.canResizeLeft&&parseInt(e.dimensions.width,10)>=e.minResizeWidth}canResizeRight(e){return void 0===e&&(e=this.props),!!e.canResizeRight&&parseInt(e.dimensions.width,10)>=e.minResizeWidth}canMove(e){return void 0===e&&(e=this.props),!!e.canMove}componentDidUpdate(e){this.cacheDataFromProps(this.props);let{interactMounted:t}=this.state;const i=e.selected&&this.canMove(e),s=e.selected&&this.canResizeLeft(e),r=e.selected&&this.canResizeRight(e),n=this.props.selected&&this.canMove(this.props),o=this.props.selected&&this.canResizeLeft(this.props),a=this.props.selected&&this.canResizeRight(this.props);if(this.item){if(this.props.selected&&!t&&(this.mountInteract(),t=!0),t&&(s!==o||r!==a)){const e=!this.props.useResizeHandle||this.dragLeft,t=!this.props.useResizeHandle||this.dragRight;h.default(this.item).resizable({enabled:o||a,edges:{top:!1,bottom:!1,left:o&&e,right:a&&t}})}t&&i!==n&&h.default(this.item).draggable({enabled:n})}else t=!1;this.setState({interactMounted:t})}actualClick(e,t){this.props.canSelect&&this.props.onSelect&&this.props.onSelect(this.itemId,t,e)}getItemStyle(e){const t=this.props.dimensions,i={position:"absolute",boxSizing:"border-box",left:`${t.left}px`,top:`${t.top}px`,width:`${t.width}px`,height:`${t.height}px`,lineHeight:`${t.height}px`};return Object.assign({},we,this.props.selected?je:{},this.props.selected&this.canMove(this.props)?Ee:{},this.props.selected&this.canResizeLeft(this.props)?Le:{},this.props.selected&this.canResizeLeft(this.props)&this.state.dragging?Oe:{},this.props.selected&this.canResizeRight(this.props)?Pe:{},this.props.selected&this.canResizeRight(this.props)&this.state.dragging?We:{},e.style,i)}render(){if(null==this.props.order)return null;const e=this.context.getTimelineContext(),t={dimensions:this.props.dimensions,useResizeHandle:this.props.useResizeHandle,title:this.itemTitle,canMove:this.canMove(this.props),canResizeLeft:this.canResizeLeft(this.props),canResizeRight:this.canResizeRight(this.props),selected:this.props.selected,dragging:this.state.dragging,dragStart:this.state.dragStart,dragTime:this.state.dragTime,dragGroupDelta:this.state.dragGroupDelta,resizing:this.state.resizing,resizeEdge:this.state.resizeEdge,resizeStart:this.state.resizeStart,resizeTime:this.state.resizeTime,width:this.props.dimensions.width};return this.props.itemRenderer({item:this.props.item,timelineContext:e,itemContext:t,getItemProps:this.getItemProps,getResizeProps:this.getResizeProps})}}Ne.propTypes={canvasTimeStart:se.number.isRequired,canvasTimeEnd:se.number.isRequired,canvasWidth:se.number.isRequired,order:se.object,dragSnap:se.number,minResizeWidth:se.number,selected:se.bool,canChangeGroup:se.bool.isRequired,canMove:se.bool.isRequired,canResizeLeft:se.bool.isRequired,canResizeRight:se.bool.isRequired,keys:se.object.isRequired,item:se.object.isRequired,onSelect:se.func,onDrag:se.func,onDrop:se.func,onResizing:se.func,onResized:se.func,onContextMenu:se.func,itemRenderer:se.func,itemProps:se.object,canSelect:se.bool,dimensions:se.object,groupTops:se.array,useResizeHandle:se.bool,moveResizeValidator:se.func,onItemDoubleClick:se.func,scrollRef:se.object},Ne.defaultProps={selected:!1,itemRenderer:de},Ne.contextTypes={getTimelineContext:se.func};const Fe=(e,t)=>{const i=void 0!==re(e,"canResize")?re(e,"canResize"):t;return"left"===i||"both"===i},$e=(e,t)=>{const i=void 0!==re(e,"canResize")?re(e,"canResize"):t;return"right"===i||"both"===i||!0===i};class Ke extends e.Component{shouldComponentUpdate(e){return!(oe(e.groups,this.props.groups)&&oe(e.items,this.props.items)&&oe(e.dimensionItems,this.props.dimensionItems)&&e.keys===this.props.keys&&e.canvasTimeStart===this.props.canvasTimeStart&&e.canvasTimeEnd===this.props.canvasTimeEnd&&e.canvasWidth===this.props.canvasWidth&&e.selectedItem===this.props.selectedItem&&e.selected===this.props.selected&&e.dragSnap===this.props.dragSnap&&e.minResizeWidth===this.props.minResizeWidth&&e.canChangeGroup===this.props.canChangeGroup&&e.canMove===this.props.canMove&&e.canResize===this.props.canResize&&e.canSelect===this.props.canSelect)}isSelected(e,t){if(this.props.selected){let i=re(e,t);return this.props.selected.includes(i)}return this.props.selectedItem===re(e,t)}getVisibleItems(e,t){const{keys:i,items:s}=this.props;return ve(s,e,t,i)}render(){const{canvasTimeStart:e,canvasTimeEnd:t,dimensionItems:i,keys:s,groups:n}=this.props,{itemIdKey:o,itemGroupKey:a}=s,l=fe(n,s),d=this.getVisibleItems(e,t,l),h=function(e,t){let i={};return e.forEach(function(e){i[e.id]=e}),i}(i);/*#__PURE__*/return r.jsx("div",{className:"rct-items",children:d.filter(e=>h[re(e,o)]).map(e=>/*#__PURE__*/r.jsx(Ne,{item:e,keys:this.props.keys,order:l[re(e,a)],dimensions:h[re(e,o)].dimensions,selected:this.isSelected(e,o),canChangeGroup:void 0!==re(e,"canChangeGroup")?re(e,"canChangeGroup"):this.props.canChangeGroup,canMove:void 0!==re(e,"canMove")?re(e,"canMove"):this.props.canMove,canResizeLeft:Fe(e,this.props.canResize),canResizeRight:$e(e,this.props.canResize),canSelect:void 0!==re(e,"canSelect")?re(e,"canSelect"):this.props.canSelect,useResizeHandle:this.props.useResizeHandle,groupTops:this.props.groupTops,canvasTimeStart:this.props.canvasTimeStart,canvasTimeEnd:this.props.canvasTimeEnd,canvasWidth:this.props.canvasWidth,dragSnap:this.props.dragSnap,minResizeWidth:this.props.minResizeWidth,onResizing:this.props.itemResizing,onResized:this.props.itemResized,moveResizeValidator:this.props.moveResizeValidator,onDrag:this.props.itemDrag,onDrop:this.props.itemDrop,onItemDoubleClick:this.props.onItemDoubleClick,onContextMenu:this.props.onItemContextMenu,onSelect:this.props.itemSelect,itemRenderer:this.props.itemRenderer,scrollRef:this.props.scrollRef},re(e,o)))})}}Ke.propTypes={groups:se.oneOfType([se.array,se.object]).isRequired,items:se.oneOfType([se.array,se.object]).isRequired,canvasTimeStart:se.number.isRequired,canvasTimeEnd:se.number.isRequired,canvasWidth:se.number.isRequired,dragSnap:se.number,minResizeWidth:se.number,selectedItem:se.oneOfType([se.string,se.number]),canChangeGroup:se.bool.isRequired,canMove:se.bool.isRequired,canResize:se.oneOf([!0,!1,"left","right","both"]),canSelect:se.bool,keys:se.object.isRequired,moveResizeValidator:se.func,itemSelect:se.func,itemDrag:se.func,itemDrop:se.func,itemResizing:se.func,itemResized:se.func,onItemDoubleClick:se.func,onItemContextMenu:se.func,itemRenderer:se.func,selected:se.array,dimensionItems:se.array,groupTops:se.array,useResizeHandle:se.bool,scrollRef:se.object},Ke.defaultProps={selected:[]};class Ue extends e.Component{constructor(e){super(e),this.onSidebarDown=e=>{this.props.handleSidebarResize.down(e)},this.state={width:e.width,resizing:!1}}shouldComponentUpdate(e,t){return!(e.keys===this.props.keys&&e.width===this.props.width&&e.height===this.props.height&&oe(e.groups,this.props.groups)&&oe(e.groupHeights,this.props.groupHeights)&&e.width===this.props.width)}renderGroupContent(e,t,i,s){return this.props.groupRenderer?/*#__PURE__*/l.default.createElement(this.props.groupRenderer,{group:e,isRightSidebar:t}):re(e,t?s:i)}componentDidUpdate(e,t,i){this.props.handleSidebarResize.resizing&&!e.handleSidebarResize.resizing?(document.addEventListener("mousemove",this.props.handleSidebarResize.move),document.addEventListener("mouseup",this.props.handleSidebarResize.up)):!this.props.handleSidebarResize.resizing&&e.handleSidebarResize.resizing&&(document.removeEventListener("mousemove",this.props.handleSidebarResize.move),document.removeEventListener("mouseup",this.props.handleSidebarResize.up))}render(){const{groupHeights:e,height:t,width:i,isRightSidebar:s}=this.props,{groupIdKey:n,groupTitleKey:o,groupRightTitleKey:a}=this.props.keys,l={width:`${i}px`,height:`${t}px`},d={width:`${i}px`};let h=this.props.groups.map((t,i)=>/*#__PURE__*/r.jsx("div",{className:"rct-sidebar-row rct-sidebar-row-"+(i%2==0?"even":"odd"),style:{height:`${e[i]}px`,lineHeight:`${e[i]}px`},children:this.renderGroupContent(t,s,o,a)},re(t,n)));/*#__PURE__*/return r.jsxs("div",{className:"rct-sidebar"+(s?" rct-sidebar-right":""),style:l,children:[/*#__PURE__*/r.jsx("div",{style:d,children:h}),/*#__PURE__*/r.jsx("div",{className:"rct-sidebar-resize",onMouseDown:this.onSidebarDown})]})}}Ue.propTypes={groups:se.oneOfType([se.array,se.object]).isRequired,width:se.number.isRequired,height:se.number.isRequired,groupHeights:se.array.isRequired,keys:se.object.isRequired,groupRenderer:se.func,isRightSidebar:se.bool,handleSidebarResize:se.object};const Ge={getTimelineState:()=>{console.warn('"getTimelineState" default func is being used')},getLeftOffsetFromDate:()=>{console.warn('"getLeftOffsetFromDate" default func is being used')},getDateFromLeftOffsetPosition:()=>{console.warn('"getDateFromLeftOffsetPosition" default func is being used')},showPeriod:()=>{console.warn('"showPeriod" default func is being used')}},{Consumer:Ye,Provider:Ae}=/*#__PURE__*/l.default.createContext(Ge);class _e extends l.default.Component{constructor(e){super(e),this.getTimelineState=()=>{const{visibleTimeStart:e,visibleTimeEnd:t,canvasTimeStart:i,canvasTimeEnd:s,canvasWidth:r,timelineUnit:n,timelineWidth:o}=this.props;return{visibleTimeStart:e,visibleTimeEnd:t,canvasTimeStart:i,canvasTimeEnd:s,canvasWidth:r,timelineUnit:n,timelineWidth:o}},this.getLeftOffsetFromDate=e=>{const{canvasTimeStart:t,canvasTimeEnd:i,canvasWidth:s}=this.props;return ce(t,i,s,e)},this.getDateFromLeftOffsetPosition=e=>{const{canvasTimeStart:t,canvasTimeEnd:i,canvasWidth:s}=this.props;return ue(t,i,s,e)},this.state={timelineContext:{getTimelineState:this.getTimelineState,getLeftOffsetFromDate:this.getLeftOffsetFromDate,getDateFromLeftOffsetPosition:this.getDateFromLeftOffsetPosition,showPeriod:this.props.showPeriod}}}render(){/*#__PURE__*/return r.jsx(Ae,{value:this.state.timelineContext,children:this.props.children})}}_e.propTypes={children:se.element.isRequired,visibleTimeStart:se.number.isRequired,visibleTimeEnd:se.number.isRequired,canvasTimeStart:se.number.isRequired,canvasTimeEnd:se.number.isRequired,canvasWidth:se.number.isRequired,showPeriod:se.func.isRequired,timelineUnit:se.string.isRequired,timelineWidth:se.number.isRequired};const Be=Ye,Ve={canvasTimeStart:se.number.isRequired,canvasTimeEnd:se.number.isRequired,canvasWidth:se.number.isRequired,lineCount:se.number.isRequired,minUnit:se.string.isRequired,timeSteps:se.object.isRequired,height:se.number.isRequired,verticalLineClassNamesForTime:se.func};class Xe extends e.Component{shouldComponentUpdate(e){return!(e.canvasTimeStart===this.props.canvasTimeStart&&e.canvasTimeEnd===this.props.canvasTimeEnd&&e.canvasWidth===this.props.canvasWidth&&e.lineCount===this.props.lineCount&&e.minUnit===this.props.minUnit&&e.timeSteps===this.props.timeSteps&&e.height===this.props.height&&e.verticalLineClassNamesForTime===this.props.verticalLineClassNamesForTime)}render(){const{canvasTimeStart:e,canvasTimeEnd:t,minUnit:i,timeSteps:s,height:n,verticalLineClassNamesForTime:o,getLeftOffsetFromDate:a}=this.props;let l=[];return pe(e,t,i,s,(e,t)=>{const s=e.get("day"===i?"date":i)===("day"===i?1:0);let d=[];o&&(d=o(1e3*e.unix(),1e3*t.unix()-1));const h="rct-vl"+(s?" rct-vl-first":"")+("day"===i||"hour"===i||"minute"===i?` rct-day-${e.day()} `:" ")+d.join(" "),c=a(e.valueOf()),u=a(t.valueOf());l.push(/*#__PURE__*/r.jsx("div",{className:h,style:{pointerEvents:"none",top:"0px",left:`${c}px`,width:u-c+"px",height:`${n}px`}},`line-${e.valueOf()}`))}),/*#__PURE__*/r.jsx("div",{className:"rct-vertical-lines",children:l})}}Xe.propTypes={...Ve,getLeftOffsetFromDate:se.func.isRequired};const Ze=e=>{let{...t}=e;/*#__PURE__*/return r.jsx(Be,{children:e=>{let{getLeftOffsetFromDate:i}=e;/*#__PURE__*/return r.jsx(Xe,{getLeftOffsetFromDate:i,...t})}})};Ze.defaultProps={...Ve};class Je extends e.Component{constructor(){super(...arguments),this.handleMouseDown=e=>{this.originClickX=e.clientX},this.handleMouseUp=e=>{Math.abs(this.originClickX-e.clientX)>this.props.clickTolerance&&(this.cancelClick=!0)},this.handleClick=e=>{this.cancelClick||this.props.onClick(e),this.cancelClick=!1,this.originClickX=null}}render(){const e=l.default.Children.only(this.props.children);/*#__PURE__*/return l.default.cloneElement(e,{onMouseDown:this.handleMouseDown,onMouseUp:this.handleMouseUp,onClick:this.handleClick})}}Je.propTypes={children:se.element.isRequired,onClick:se.func.isRequired,clickTolerance:se.number.isRequired};class Qe extends e.Component{render(){const{onContextMenu:e,onDoubleClick:t,isEvenRow:i,style:s,onClick:n,clickTolerance:o,horizontalLineClassNamesForGroup:a,group:l}=this.props;let d=[];return a&&(d=a(l)),/*#__PURE__*/r.jsx(Je,{clickTolerance:o,onClick:n,children:/*#__PURE__*/r.jsx("div",{onContextMenu:e,onDoubleClick:t,className:(i?"rct-hl-even ":"rct-hl-odd ")+(d?d.join(" "):""),style:s})})}}Qe.propTypes={onClick:se.func.isRequired,onDoubleClick:se.func.isRequired,onContextMenu:se.func.isRequired,isEvenRow:se.bool.isRequired,style:se.object.isRequired,clickTolerance:se.number.isRequired,group:se.object.isRequired,horizontalLineClassNamesForGroup:se.func};class et extends e.Component{shouldComponentUpdate(e){return!(e.canvasWidth===this.props.canvasWidth&&e.lineCount===this.props.lineCount&&e.groupHeights===this.props.groupHeights&&e.groups===this.props.groups)}render(){const{canvasWidth:e,lineCount:t,groupHeights:i,onRowClick:s,onRowDoubleClick:n,clickTolerance:o,groups:a,horizontalLineClassNamesForGroup:l,onRowContextClick:d}=this.props;let h=[];for(let c=0;c<t;c++)h.push(/*#__PURE__*/r.jsx(Qe,{clickTolerance:o,onContextMenu:e=>d(e,c),onClick:e=>s(e,c),onDoubleClick:e=>n(e,c),isEvenRow:c%2==0,group:a[c],horizontalLineClassNamesForGroup:l,style:{width:`${e}px`,height:`${i[c]}px`}},`horizontal-line-${c}`));/*#__PURE__*/return r.jsx("div",{className:"rct-horizontal-lines",children:h})}}et.propTypes={canvasWidth:se.number.isRequired,lineCount:se.number.isRequired,groupHeights:se.array.isRequired,onRowClick:se.func.isRequired,onRowDoubleClick:se.func.isRequired,clickTolerance:se.number.isRequired,groups:se.array.isRequired,horizontalLineClassNamesForGroup:se.func,onRowContextClick:se.func.isRequired};class tt extends e.Component{constructor(){super(),this.handleScroll=()=>{this.props.onScroll(this.scrollComponent.scrollLeft)},this.refHandler=e=>{this.scrollComponent=e,this.props.scrollRef(e),e&&e.addEventListener("wheel",this.handleWheel,{passive:!1})},this.handleWheel=e=>{if(e.ctrlKey||e.metaKey){e.preventDefault();const t=Ie(e.currentTarget);this.props.onWheelZoom(e.ctrlKey?1:e.metaKey?3:1,e.clientX-t.x,e.deltaY)}else e.shiftKey&&(e.preventDefault(),this.props.onScroll(this.scrollComponent.scrollLeft+(e.deltaY||e.deltaX)))},this.handleMouseDown=e=>{0===e.button&&(this.dragStartPosition=e.pageX,this.dragLastPosition=e.pageX,this.setState({isDragging:!0}))},this.handleMouseMove=e=>{this.state.isDragging&&!this.props.isInteractingWithItem&&(this.props.onScroll(this.scrollComponent.scrollLeft+this.dragLastPosition-e.pageX),this.dragLastPosition=e.pageX)},this.handleMouseUp=()=>{this.dragStartPosition=null,this.dragLastPosition=null,this.setState({isDragging:!1})},this.handleMouseLeave=()=>{this.dragStartPosition=null,this.dragLastPosition=null,this.setState({isDragging:!1})},this.handleTouchStart=e=>{if(2===e.touches.length)e.preventDefault(),this.lastTouchDistance=Math.abs(e.touches[0].screenX-e.touches[1].screenX),this.singleTouchStart=null,this.lastSingleTouch=null;else if(1===e.touches.length){e.preventDefault();let t=e.touches[0].clientX,i=e.touches[0].clientY;this.lastTouchDistance=null,this.singleTouchStart={x:t,y:i,screenY:window.pageYOffset},this.lastSingleTouch={x:t,y:i,screenY:window.pageYOffset}}},this.handleTouchMove=e=>{const{isInteractingWithItem:t,width:i,onZoom:s}=this.props;if(t)e.preventDefault();else if(this.lastTouchDistance&&2===e.touches.length){e.preventDefault();let t=Math.abs(e.touches[0].screenX-e.touches[1].screenX),r=Ie(e.currentTarget),n=(e.touches[0].screenX+e.touches[1].screenX)/2-r.x;0!==t&&0!==this.lastTouchDistance&&(s(this.lastTouchDistance/t,n/i),this.lastTouchDistance=t)}else if(this.lastSingleTouch&&1===e.touches.length){e.preventDefault();let t=e.touches[0].clientX,i=e.touches[0].clientY,s=t-this.lastSingleTouch.x,r=t-this.singleTouchStart.x,n=i-this.singleTouchStart.y;this.lastSingleTouch={x:t,y:i};let o=3*Math.abs(r)>Math.abs(n),a=3*Math.abs(n)>Math.abs(r);0!==s&&o&&this.props.onScroll(this.scrollComponent.scrollLeft-s),a&&window.scrollTo(window.pageXOffset,this.singleTouchStart.screenY-n)}},this.handleTouchEnd=()=>{this.lastTouchDistance&&(this.lastTouchDistance=null),this.lastSingleTouch&&(this.lastSingleTouch=null,this.singleTouchStart=null)},this.state={isDragging:!1}}componentWillUnmount(){this.scrollComponent&&this.scrollComponent.removeEventListener("wheel",this.handleWheel)}render(){const{width:e,height:t,children:i}=this.props,{isDragging:s}=this.state;/*#__PURE__*/return r.jsx("div",{ref:this.refHandler,"data-testid":"scroll-element",className:"rct-scroll",style:{width:`${e}px`,height:`${t+20}px`,cursor:s?"move":"default",position:"relative"},onMouseDown:this.handleMouseDown,onMouseMove:this.handleMouseMove,onMouseUp:this.handleMouseUp,onMouseLeave:this.handleMouseLeave,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd,onScroll:this.handleScroll,children:i})}}tt.propTypes={children:se.element.isRequired,width:se.number.isRequired,height:se.number.isRequired,traditionalZoom:se.bool.isRequired,scrollRef:se.func.isRequired,isInteractingWithItem:se.bool.isRequired,onZoom:se.func.isRequired,onWheelZoom:se.func.isRequired,onScroll:se.func.isRequired};const it={subscribeToMouseOver:()=>{console.warn('"subscribeToMouseOver" default func is being used')}},{Consumer:st,Provider:rt}=/*#__PURE__*/l.default.createContext(it),nt=rt,ot=st,at={markers:[],subscribeMarker:()=>(console.warn("default subscribe marker used"),ae)},{Consumer:lt,Provider:dt}=/*#__PURE__*/l.default.createContext(at);let ht=0;class ct extends l.default.Component{constructor(){super(...arguments),this.handleSubscribeToMarker=e=>(e={...e,id:(ht+=1,ht+1)},this.setState(t=>({markers:[...t.markers,e]})),{unsubscribe:()=>{this.setState(t=>({markers:t.markers.filter(t=>t.id!==e.id)}))},getMarker:()=>e}),this.handleUpdateMarker=e=>{const t=this.state.markers.findIndex(t=>t.id===e.id);t<0||this.setState(i=>({markers:[...i.markers.slice(0,t),e,...i.markers.slice(t+1)]}))},this.state={markers:[],subscribeMarker:this.handleSubscribeToMarker,updateMarker:this.handleUpdateMarker}}render(){/*#__PURE__*/return r.jsx(dt,{value:this.state,children:this.props.children})}}ct.propTypes={children:se.element.isRequired};const ut=lt,pt="Today",mt="Custom",gt="Cursor",ft={position:"absolute",top:0,bottom:0,width:"2px",backgroundColor:"black",pointerEvents:"none"},vt=e=>({...ft,left:e}),bt=e=>function(t){let{styles:i}=t;/*#__PURE__*/return r.jsx("div",{style:i,"data-testid":e})},yt=bt("default-today-line");class Tt extends l.default.Component{constructor(){super(...arguments),this.state={date:Date.now()}}componentDidMount(){this.intervalToken=this.createIntervalUpdater(this.props.interval)}componentDidUpdate(e){e.interval!==this.props.interval&&(clearInterval(this.intervalToken),this.intervalToken=this.createIntervalUpdater(this.props.interval))}createIntervalUpdater(e){return setInterval(()=>{this.setState({date:Date.now()})},e)}componentWillUnmount(){clearInterval(this.intervalToken)}render(){const{date:e}=this.state,t=this.props.getLeftOffsetFromDate(e),i=vt(t);return this.props.renderer({styles:i,date:e})}}Tt.propTypes={getLeftOffsetFromDate:se.func.isRequired,renderer:se.func,interval:se.number.isRequired},Tt.defaultProps={renderer:yt};const St=bt("default-customer-marker-id");class Rt extends l.default.Component{render(){const{date:e}=this.props,t=this.props.getLeftOffsetFromDate(e),i=vt(t);return this.props.renderer({styles:i,date:e})}}Rt.propTypes={getLeftOffsetFromDate:se.func.isRequired,renderer:se.func,date:se.number.isRequired},Rt.defaultProps={renderer:St};const Ct=bt("default-cursor-marker");class xt extends l.default.Component{constructor(){super(),this.handleCanvasMouseOver=e=>{let{leftOffset:t,date:i,isCursorOverCanvas:s}=e;this.setState({leftOffset:t,date:i,isShowingCursor:s})},this.state={leftOffset:0,date:0,isShowingCursor:!1}}componentDidMount(){this.unsubscribe=this.props.subscribeToCanvasMouseOver(this.handleCanvasMouseOver)}componentWillUnmount(){null!=this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}render(){const{isShowingCursor:e,leftOffset:t,date:i}=this.state;if(!e)return null;const s=vt(t);return this.props.renderer({styles:s,date:i})}}xt.propTypes={subscribeToCanvasMouseOver:se.func.isRequired,renderer:se.func},xt.defaultProps={renderer:Ct};const zt=e=>/*#__PURE__*/r.jsx(ot,{children:t=>{let{subscribeToMouseOver:i}=t;/*#__PURE__*/return r.jsx(xt,{subscribeToCanvasMouseOver:i,...e})}});zt.displayName="CursorMarkerWrapper";const Mt=()=>/*#__PURE__*/r.jsx(Be,{children:e=>{let{getLeftOffsetFromDate:t}=e;/*#__PURE__*/return r.jsx(ut,{children:e=>{let{markers:i}=e;return i.map(e=>{switch(e.type){case pt:/*#__PURE__*/return r.jsx(Tt,{getLeftOffsetFromDate:t,renderer:e.renderer,interval:e.interval},e.id);case mt:/*#__PURE__*/return r.jsx(Rt,{renderer:e.renderer,date:e.date,getLeftOffsetFromDate:t},e.id);case gt:/*#__PURE__*/return r.jsx(zt,{renderer:e.renderer,getLeftOffsetFromDate:t},e.id);default:return null}})}})}}),It={position:"absolute",left:0,right:0,top:0,bottom:0};class kt extends l.default.Component{constructor(){super(...arguments),this.handleMouseMove=e=>{if(null!=this.subscription){const{pageX:t}=e,{left:i}=this.containerEl.getBoundingClientRect(),s=t-i,r=this.props.getDateFromLeftOffsetPosition(s);this.subscription({leftOffset:s,date:r,isCursorOverCanvas:!0})}},this.handleMouseLeave=()=>{null!=this.subscription&&this.subscription({leftOffset:0,date:0,isCursorOverCanvas:!1})},this.handleMouseMoveSubscribe=e=>(this.subscription=e,()=>{this.subscription=null}),this.state={subscribeToMouseOver:this.handleMouseMoveSubscribe}}render(){/*#__PURE__*/return r.jsx(nt,{value:this.state,children:/*#__PURE__*/r.jsxs("div",{style:It,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,ref:e=>this.containerEl=e,children:[/*#__PURE__*/r.jsx(Mt,{}),this.props.children]})})}}kt.propTypes={getDateFromLeftOffsetPosition:se.func.isRequired,children:se.node};const Dt=e=>/*#__PURE__*/r.jsx(Be,{children:t=>{let{getDateFromLeftOffsetPosition:i}=t;/*#__PURE__*/return r.jsx(kt,{getDateFromLeftOffsetPosition:i,...e})}}),wt={year:{long:"YYYY",mediumLong:"YYYY",medium:"YYYY",short:"YY"},month:{long:"MMMM YYYY",mediumLong:"MMMM",medium:"MMMM",short:"MM/YY"},week:{long:"w",mediumLong:"w",medium:"w",short:"w"},day:{long:"dddd, LL",mediumLong:"dddd, LL",medium:"dd D",short:"D"},hour:{long:"dddd, LL, HH:00",mediumLong:"L, HH:00",medium:"HH:00",short:"HH"},minute:{long:"HH:mm",mediumLong:"HH:mm",medium:"HH:mm",short:"mm"},second:{long:"mm:ss",mediumLong:"mm:ss",medium:"mm:ss",short:"ss"}},jt={registerScroll:()=>(console.warn("default registerScroll header used"),ae),rightSidebarWidth:0,leftSidebarWidth:150,timeSteps:{}},{Consumer:Et,Provider:Lt}=/*#__PURE__*/l.default.createContext(jt);class Ot extends l.default.Component{render(){/*#__PURE__*/return r.jsx(Lt,{value:{rightSidebarWidth:this.props.rightSidebarWidth,leftSidebarWidth:this.props.leftSidebarWidth,timeSteps:this.props.timeSteps,registerScroll:this.props.registerScroll},children:this.props.children})}}Ot.propTypes={children:se.element.isRequired,rightSidebarWidth:se.number,leftSidebarWidth:se.number.isRequired,timeSteps:se.object.isRequired,registerScroll:se.func.isRequired};const Pt=Et,Wt="right";class Ht extends l.default.PureComponent{constructor(){var e;super(...arguments),e=this,this.getRootProps=function(t){void 0===t&&(t={});const{style:i}=t;return{style:{...i,width:e.props.variant===Wt?e.props.rightSidebarWidth:e.props.leftSidebarWidth}}},this.getStateAndHelpers=()=>({getRootProps:this.getRootProps,data:this.props.headerData})}render(){const e=this.getStateAndHelpers();/*#__PURE__*/return r.jsx(this.props.children,{...e})}}Ht.propTypes={children:se.func.isRequired,rightSidebarWidth:se.number,leftSidebarWidth:se.number.isRequired,variant:se.string,headerData:se.object};const qt=e=>{let{children:t,variant:i,headerData:s}=e;/*#__PURE__*/return r.jsx(Pt,{children:e=>{let{leftSidebarWidth:n,rightSidebarWidth:o}=e;/*#__PURE__*/return r.jsx(Ht,{leftSidebarWidth:n,rightSidebarWidth:o,children:t,variant:i,headerData:s})}})};qt.propTypes={children:se.func.isRequired,variant:se.string,headerData:se.object},qt.defaultProps={variant:"left",children:e=>{let{getRootProps:t}=e;/*#__PURE__*/return r.jsx("div",{"data-testid":"sidebarHeader",...t()})}},qt.secretKey="SidebarHeader";class Nt extends l.default.Component{constructor(e){super(e),this.getRootStyle=()=>({...this.props.style,display:"flex",width:"100%"}),this.getCalendarHeaderStyle=()=>{const{leftSidebarWidth:e,rightSidebarWidth:t,calendarHeaderStyle:i}=this.props;return{...i,overflow:"hidden",width:`calc(100% - ${e+t}px)`}},this.handleRootRef=e=>{this.props.headerRef&&this.props.headerRef(e)},this.isSidebarHeader=e=>void 0!==e.type&&e.type.secretKey===qt.secretKey}render(){let e,t,i=[];const s=Array.isArray(this.props.children)?this.props.children.filter(e=>e):[this.props.children];return l.default.Children.map(s,s=>{this.isSidebarHeader(s)?s.props.variant===Wt?e=s:t=s:i.push(s)}),t||(t=/*#__PURE__*/r.jsx(qt,{})),!e&&this.props.rightSidebarWidth&&(e=/*#__PURE__*/r.jsx(qt,{variant:"right"})),/*#__PURE__*/r.jsxs("div",{ref:this.handleRootRef,"data-testid":"headerRootDiv",style:this.getRootStyle(),className:u.default("rct-header-root",this.props.className),children:[t,/*#__PURE__*/r.jsx("div",{ref:this.props.registerScroll,style:this.getCalendarHeaderStyle(),className:u.default("rct-calendar-header",this.props.calendarHeaderClassName),"data-testid":"headerContainer",children:i}),e]})}}Nt.propTypes={registerScroll:se.func.isRequired,leftSidebarWidth:se.number.isRequired,rightSidebarWidth:se.number.isRequired,style:se.object,children:se.node,className:se.string,calendarHeaderStyle:se.object,calendarHeaderClassName:se.string,headerRef:se.func};const Ft=e=>{let{children:t,style:i,className:s,calendarHeaderStyle:n,calendarHeaderClassName:o}=e;/*#__PURE__*/return r.jsx(Pt,{children:e=>{let{leftSidebarWidth:a,rightSidebarWidth:l,registerScroll:d}=e;/*#__PURE__*/return r.jsx(Nt,{leftSidebarWidth:a,rightSidebarWidth:l,registerScroll:d,style:i,className:s,calendarHeaderStyle:n,calendarHeaderClassName:o,children:t})}})};Ft.propTypes={style:se.object,children:se.node,className:se.string,calendarHeaderStyle:se.object,calendarHeaderClassName:se.string},Ft.secretKey="TimelineHeaders";class $t extends l.default.Component{constructor(e){var t;super(e),t=this,this.getHeaderIntervals=e=>{let{canvasTimeStart:t,canvasTimeEnd:i,unit:s,timeSteps:r,getLeftOffsetFromDate:n}=e;const o=[];return pe(t,i,s,r,(e,t)=>{const i=n(e.valueOf()),s=n(t.valueOf());o.push({startTime:e,endTime:t,labelWidth:s-i,left:i})}),o},this.getRootProps=function(e){void 0===e&&(e={});const{style:i}=e;return{style:Object.assign({},i||{},{position:"relative",width:t.props.canvasWidth,height:t.props.height})}},this.getIntervalProps=function(e){void 0===e&&(e={});const{interval:i,style:s}=e;if(!i)throw new Error("you should provide interval to the prop getter");const{startTime:r,labelWidth:n,left:o}=i;return{style:t.getIntervalStyle({style:s,startTime:r,labelWidth:n,canvasTimeStart:t.props.canvasTimeStart,unit:t.props.unit,left:o}),key:`label-${r.valueOf()}`}},this.getIntervalStyle=e=>{let{left:t,labelWidth:i,style:s}=e;return{...s,left:t,width:i,position:"absolute"}},this.getStateAndHelpers=()=>{const{canvasTimeStart:e,canvasTimeEnd:t,unit:i,showPeriod:s,timelineWidth:r,visibleTimeStart:n,visibleTimeEnd:o,headerData:a}=this.props;return{timelineContext:{timelineWidth:r,visibleTimeStart:n,visibleTimeEnd:o,canvasTimeStart:e,canvasTimeEnd:t},headerContext:{unit:i,intervals:this.state.intervals},getRootProps:this.getRootProps,getIntervalProps:this.getIntervalProps,showPeriod:s,data:a}};const{canvasTimeStart:i,canvasTimeEnd:s,canvasWidth:r,unit:n,timeSteps:o,showPeriod:a,getLeftOffsetFromDate:l}=e,d=this.getHeaderIntervals({canvasTimeStart:i,canvasTimeEnd:s,canvasWidth:r,unit:n,timeSteps:o,showPeriod:a,getLeftOffsetFromDate:l});this.state={intervals:d}}shouldComponentUpdate(e){return e.canvasTimeStart!==this.props.canvasTimeStart||e.canvasTimeEnd!==this.props.canvasTimeEnd||e.canvasWidth!==this.props.canvasWidth||e.unit!==this.props.unit||e.timeSteps!==this.props.timeSteps||e.showPeriod!==this.props.showPeriod||e.children!==this.props.children||e.headerData!==this.props.headerData}componentWillReceiveProps(e){if(e.canvasTimeStart!==this.props.canvasTimeStart||e.canvasTimeEnd!==this.props.canvasTimeEnd||e.canvasWidth!==this.props.canvasWidth||e.unit!==this.props.unit||e.timeSteps!==this.props.timeSteps||e.showPeriod!==this.props.showPeriod){const{canvasTimeStart:t,canvasTimeEnd:i,canvasWidth:s,unit:r,timeSteps:n,showPeriod:o,getLeftOffsetFromDate:a}=e,l=this.getHeaderIntervals({canvasTimeStart:t,canvasTimeEnd:i,canvasWidth:s,unit:r,timeSteps:n,showPeriod:o,getLeftOffsetFromDate:a});this.setState({intervals:l})}}render(){const e=this.getStateAndHelpers();/*#__PURE__*/return r.jsx(this.props.children,{...e})}}$t.propTypes={children:se.func.isRequired,unit:se.string.isRequired,timeSteps:se.object.isRequired,visibleTimeStart:se.number.isRequired,visibleTimeEnd:se.number.isRequired,canvasTimeStart:se.number.isRequired,canvasTimeEnd:se.number.isRequired,canvasWidth:se.number.isRequired,showPeriod:se.func.isRequired,headerData:se.object,getLeftOffsetFromDate:se.func.isRequired,height:se.number.isRequired};const Kt=e=>{let{children:t,unit:i,headerData:s,height:n}=e;/*#__PURE__*/return r.jsx(Be,{children:e=>{let{getTimelineState:o,showPeriod:a,getLeftOffsetFromDate:l}=e;const d=o();/*#__PURE__*/return r.jsx(Pt,{children:e=>{let{timeSteps:o}=e;/*#__PURE__*/return r.jsx($t,{children:t,timeSteps:o,showPeriod:a,unit:i||d.timelineUnit,...d,headerData:s,getLeftOffsetFromDate:l,height:n})}})}})};Kt.propTypes={children:se.func.isRequired,unit:se.string,headerData:se.object,height:se.number},Kt.defaultProps={height:30};var Ut=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function Gt(e,t){if(e.length!==t.length)return!1;for(var i=0;i<e.length;i++)if(!((s=e[i])===(r=t[i])||Ut(s)&&Ut(r)))return!1;var s,r;return!0}function Yt(e,t){void 0===t&&(t=Gt);var i=null;function s(){for(var s=[],r=0;r<arguments.length;r++)s[r]=arguments[r];if(i&&i.lastThis===this&&t(s,i.lastArgs))return i.lastResult;var n=e.apply(this,s);return i={lastResult:n,lastArgs:s,lastThis:this},n}return s.clear=function(){i=null},s}class At extends l.default.PureComponent{constructor(){var e;super(...arguments),e=this,this.onIntervalClick=()=>{const{primaryHeader:e,interval:t,unit:i,showPeriod:s}=this.props;if(e){const e=ge(i);s(t.startTime.clone().startOf(e),t.startTime.clone().endOf(e))}else s(t.startTime,t.endTime)},this.getIntervalProps=function(t){return void 0===t&&(t={}),{...e.props.getIntervalProps({interval:e.props.interval,...t}),onClick:le(e.onIntervalClick,t.onClick)}}}render(){const{intervalText:e,interval:t,intervalRenderer:i,headerData:s}=this.props;return i?/*#__PURE__*/r.jsx(i,{getIntervalProps:this.getIntervalProps,intervalContext:{interval:t,intervalText:e},data:s}):/*#__PURE__*/r.jsx("div",{"data-testid":"dateHeaderInterval",...this.getIntervalProps({}),className:"rct-dateHeader "+(this.props.primaryHeader?"rct-dateHeader-primary":""),children:/*#__PURE__*/r.jsx("span",{children:e})})}}function _t(e){let{headerContext:{intervals:t,unit:i},getRootProps:s,getIntervalProps:n,showPeriod:o,data:{style:a,intervalRenderer:l,className:d,getLabelFormat:h,unitProp:c,headerData:u}}=e;/*#__PURE__*/return r.jsx("div",{"data-testid":"dateHeader",className:d,...s({style:a}),children:t.map(e=>{const t=h([e.startTime,e.endTime],i,e.labelWidth);/*#__PURE__*/return r.jsx(At,{unit:i,interval:e,showPeriod:o,intervalText:t,primaryHeader:"primaryHeader"===c,getIntervalProps:n,intervalRenderer:l,headerData:u},`label-${e.startTime.valueOf()}`)})})}At.propTypes={intervalRenderer:se.func,unit:se.string.isRequired,interval:se.object.isRequired,showPeriod:se.func.isRequired,intervalText:se.string.isRequired,primaryHeader:se.bool.isRequired,getIntervalProps:se.func.isRequired,headerData:se.object};class Bt extends l.default.Component{constructor(){super(...arguments),this.getHeaderUnit=()=>"primaryHeader"===this.props.unit?ge(this.props.timelineUnit):this.props.unit?this.props.unit:this.props.timelineUnit,this.getRootStyle=Yt(e=>({height:30,...e})),this.getLabelFormat=(e,t,i)=>{const{labelFormat:s}=this.props;if("string"==typeof s)return e[0].format(s);if("function"==typeof s)return s(e,t,i);throw new Error("labelFormat should be function or string")},this.getHeaderData=Yt((e,t,i,s,r,n)=>({intervalRenderer:e,style:t,className:i,getLabelFormat:s,unitProp:r,headerData:n}))}render(){const e=this.getHeaderUnit(),{height:t}=this.props;/*#__PURE__*/return r.jsx(Kt,{unit:e,height:t,headerData:this.getHeaderData(this.props.intervalRenderer,this.getRootStyle(this.props.style),this.props.className,this.getLabelFormat,this.props.unit,this.props.headerData),children:_t})}}Bt.propTypes={unit:se.string,style:se.object,className:se.string,timelineUnit:se.string,labelFormat:se.oneOfType([se.func,se.objectOf(se.objectOf(se.string)),se.string]).isRequired,intervalRenderer:se.func,headerData:se.object,height:se.number};const Vt=e=>{let{unit:t,labelFormat:i,style:s,className:n,intervalRenderer:o,headerData:a,height:l}=e;/*#__PURE__*/return r.jsx(Be,{children:e=>{let{getTimelineState:d}=e;const h=d();/*#__PURE__*/return r.jsx(Bt,{timelineUnit:h.timelineUnit,unit:t,labelFormat:i,style:s,className:n,intervalRenderer:o,headerData:a,height:l})}})};Vt.propTypes={style:se.object,className:se.string,unit:se.string,labelFormat:se.oneOfType([se.func,se.objectOf(se.objectOf(se.string)),se.string]),intervalRenderer:se.func,headerData:se.object,height:se.number},Vt.defaultProps={labelFormat:function(e,t,i,s){let r,[n,o]=e;return void 0===s&&(s=wt),r=i>=150?s[t].long:i>=100?s[t].mediumLong:i>=50?s[t].medium:s[t].short,n.format(r)}};class Xt extends e.Component{getChildContext(){return{getTimelineContext:()=>this.getTimelineContext()}}constructor(e){var t;super(e),t=this,this.getTimelineContext=()=>{const{width:e,visibleTimeStart:t,visibleTimeEnd:i,canvasTimeStart:s,canvasTimeEnd:r}=this.state;return{timelineWidth:e,visibleTimeStart:t,visibleTimeEnd:i,canvasTimeStart:s,canvasTimeEnd:r}},this.getTimelineUnit=()=>{const{width:e,visibleTimeStart:t,visibleTimeEnd:i}=this.state,{timeSteps:s}=this.props;return me(i-t,e,s)},this.resize=function(e){void 0===e&&(e=t.props);const{width:i}=t.container.getBoundingClientRect();let s=i-e.sidebarWidth-e.rightSidebarWidth;const r=xe(s),{dimensionItems:n,height:o,groupHeights:a,groupTops:l}=Ce(e.items,e.groups,r,t.state.canvasTimeStart,t.state.canvasTimeEnd,e.keys,e.lineHeight,e.itemHeightRatio,e.stackItems,t.state.draggingItem,t.state.resizingItem,t.state.dragTime,t.state.resizingEdge,t.state.resizeTime,t.state.newGroupOrder);t.setState({width:s,dimensionItems:n,height:o,groupHeights:a,groupTops:l}),t.scrollComponent.scrollLeft=s,t.scrollHeaderRef.scrollLeft=s},this.onScroll=e=>{const t=this.state.visibleTimeEnd-this.state.visibleTimeStart,i=this.state.canvasTimeStart+t*e/this.state.width;this.state.visibleTimeStart===i&&this.state.visibleTimeEnd===i+t||this.props.onTimeChange(i,i+t,this.updateScrollCanvas,this.getTimelineUnit())},this.updateScrollCanvas=function(e,i,s,r,n){void 0===r&&(r=t.props.items),void 0===n&&(n=t.props.groups),t.setState(Me(e,i,s,r,n,t.props,t.state))},this.handleWheelZoom=(e,t,i)=>{this.changeZoom(1+e*i/500,t/this.state.width)},this.changeZoom=function(e,i){void 0===i&&(i=.5);const{minZoom:s,maxZoom:r}=t.props,n=t.state.visibleTimeEnd-t.state.visibleTimeStart,o=Math.min(Math.max(Math.round(n*e),s),r),a=Math.round(t.state.visibleTimeStart+(n-o)*i);t.props.onTimeChange(a,a+o,t.updateScrollCanvas,t.getTimelineUnit())},this.showPeriod=(e,t)=>{let i=e.valueOf(),s=t.valueOf()-i;s<this.props.minZoom||this.props.onTimeChange(i,i+s,this.updateScrollCanvas,this.getTimelineUnit())},this.selectItem=(e,t,i)=>{if(this.isItemSelected(e)||this.props.itemTouchSendsClick&&"touch"===t){if(e&&this.props.onItemClick){const t=this.timeFromItemEvent(i);this.props.onItemClick(e,i,t)}}else if(this.setState({selectedItem:e}),e&&this.props.onItemSelect){const t=this.timeFromItemEvent(i);this.props.onItemSelect(e,i,t)}else null===e&&this.props.onItemDeselect&&this.props.onItemDeselect(i)},this.doubleClickItem=(e,t)=>{if(this.props.onItemDoubleClick){const i=this.timeFromItemEvent(t);this.props.onItemDoubleClick(e,t,i)}},this.contextMenuClickItem=(e,t)=>{if(this.props.onItemContextMenu){const i=this.timeFromItemEvent(t);this.props.onItemContextMenu(e,t,i)}},this.getTimeFromRowClickEvent=e=>{const{dragSnap:t}=this.props,{width:i,canvasTimeStart:s,canvasTimeEnd:r}=this.state,{offsetX:n}=e.nativeEvent;let o=ue(s,r,xe(i),n);return o=Math.floor(o/t)*t,o},this.timeFromItemEvent=e=>{const{width:t,visibleTimeStart:i,visibleTimeEnd:s}=this.state,{dragSnap:r}=this.props,n=this.scrollComponent,{left:o}=n.getBoundingClientRect();let a=Math.round(i+(e.clientX-o)/t*(s-i));return a=Math.floor(a/r)*r,a},this.dragItem=(e,t,i)=>{let s=this.props.groups[i];this.setState({draggingItem:e,dragTime:t,newGroupOrder:i,dragGroupTitle:s?re(s,this.props.keys.groupLabelKey):""}),this.updatingItem({eventType:"move",itemId:e,time:t,newGroupOrder:i})},this.dropItem=(e,t,i)=>{this.setState({draggingItem:null,dragTime:null,dragGroupTitle:null}),this.props.onItemMove&&this.props.onItemMove(e,t,i)},this.resizingItem=(e,t,i)=>{this.setState({resizingItem:e,resizingEdge:i,resizeTime:t}),this.updatingItem({eventType:"resize",itemId:e,time:t,edge:i})},this.resizedItem=(e,t,i,s)=>{this.setState({resizingItem:null,resizingEdge:null,resizeTime:null}),this.props.onItemResize&&0!==s&&this.props.onItemResize(e,t,i)},this.updatingItem=e=>{let{eventType:t,itemId:i,time:s,edge:r,newGroupOrder:n}=e;this.props.onItemDrag&&this.props.onItemDrag({eventType:t,itemId:i,time:s,edge:r,newGroupOrder:n})},this.handleRowClick=(e,t)=>{if(this.hasSelectedItem()&&this.selectItem(null),null==this.props.onCanvasClick)return;const i=this.getTimeFromRowClickEvent(e),s=re(this.props.groups[t],this.props.keys.groupIdKey);this.props.onCanvasClick(s,i,e)},this.handleRowDoubleClick=(e,t)=>{if(null==this.props.onCanvasDoubleClick)return;const i=this.getTimeFromRowClickEvent(e),s=re(this.props.groups[t],this.props.keys.groupIdKey);this.props.onCanvasDoubleClick(s,i,e)},this.handleScrollContextMenu=(e,t)=>{if(null==this.props.onCanvasContextMenu)return;const i=this.getTimeFromRowClickEvent(e),s=re(this.props.groups[t],this.props.keys.groupIdKey);this.props.onCanvasContextMenu&&(e.preventDefault(),this.props.onCanvasContextMenu(s,i,e))},this.handleHeaderRef=e=>{this.scrollHeaderRef=e,this.props.headerRef(e)},this.isTimelineHeader=e=>void 0!==e.type&&e.type.secretKey===Ft.secretKey,this.renderHeaders=()=>{if(this.props.children){let e;if(l.default.Children.map(this.props.children,t=>{this.isTimelineHeader(t)&&(e=t)}),e)return e}/*#__PURE__*/return r.jsxs(Ft,{children:[/*#__PURE__*/r.jsx(Vt,{unit:"primaryHeader"}),/*#__PURE__*/r.jsx(Vt,{})]})},this.getScrollElementRef=e=>{this.props.scrollRef(e),this.scrollComponent=e},this.getSelected=this.getSelected.bind(this),this.hasSelectedItem=this.hasSelectedItem.bind(this),this.isItemSelected=this.isItemSelected.bind(this);let i=null,s=null;if(this.props.defaultTimeStart&&this.props.defaultTimeEnd)i=this.props.defaultTimeStart.valueOf(),s=this.props.defaultTimeEnd.valueOf();else{if(!this.props.visibleTimeStart||!this.props.visibleTimeEnd)throw new Error('You must provide either "defaultTimeStart" and "defaultTimeEnd" or "visibleTimeStart" and "visibleTimeEnd" to initialize the Timeline');i=this.props.visibleTimeStart,s=this.props.visibleTimeEnd}const[n,o]=ze(i,s);this.state={width:1e3,visibleTimeStart:i,visibleTimeEnd:s,canvasTimeStart:n,canvasTimeEnd:o,selectedItem:null,dragTime:null,dragGroupTitle:null,resizeTime:null,resizingItem:null,resizingEdge:null};const a=xe(this.state.width),{dimensionItems:d,height:h,groupHeights:c,groupTops:u}=Ce(e.items,e.groups,a,this.state.canvasTimeStart,this.state.canvasTimeEnd,e.keys,e.lineHeight,e.itemHeightRatio,e.stackItems,this.state.draggingItem,this.state.resizingItem,this.state.dragTime,this.state.resizingEdge,this.state.resizeTime,this.state.newGroupOrder);this.state.dimensionItems=d,this.state.height=h,this.state.groupHeights=c,this.state.groupTops=u}componentDidMount(){var e;this.resize(this.props),this.props.resizeDetector&&this.props.resizeDetector.addListener&&this.props.resizeDetector.addListener(this),(e=this)._resizeEventListener={handleEvent:()=>{e.resize()}},window.addEventListener("resize",e._resizeEventListener),this.lastTouchDistance=null}componentWillUnmount(){this.props.resizeDetector&&this.props.resizeDetector.addListener&&this.props.resizeDetector.removeListener(this),window.removeEventListener("resize",this._resizeEventListener)}static getDerivedStateFromProps(e,t){const{visibleTimeStart:i,visibleTimeEnd:s,items:r,groups:n}=e;let o={items:r,groups:n};const a=r!==t.items||n!==t.groups;if(i&&s)Object.assign(o,Me(i,s,a,r,n,e,t));else if(a){const i=xe(t.width);Object.assign(o,Ce(r,n,i,t.canvasTimeStart,t.canvasTimeEnd,e.keys,e.lineHeight,e.itemHeightRatio,e.stackItems,t.draggingItem,t.resizingItem,t.dragTime,t.resizingEdge,t.resizeTime,t.newGroupOrder))}return o}componentDidUpdate(e,t){const i=this.state.visibleTimeEnd-this.state.visibleTimeStart,s=t.visibleTimeEnd-t.visibleTimeStart;this.props.onZoom&&i!==s&&this.props.onZoom(this.getTimelineContext(),this.getTimelineUnit()),this.props.onBoundsChange&&this.state.canvasTimeStart!==t.canvasTimeStart&&this.props.onBoundsChange(this.state.canvasTimeStart,this.state.canvasTimeStart+3*i);const r=Math.round(this.state.width*(this.state.visibleTimeStart-this.state.canvasTimeStart)/i);Math.round(t.width*(t.visibleTimeStart-t.canvasTimeStart)/s)!==r&&(this.scrollComponent.scrollLeft=r,this.scrollHeaderRef.scrollLeft=r)}columns(e,t,i,s,n,o){/*#__PURE__*/return r.jsx(Ze,{canvasTimeStart:e,canvasTimeEnd:t,canvasWidth:i,lineCount:ne(this.props.groups),minUnit:s,timeSteps:n,height:o,verticalLineClassNamesForTime:this.props.verticalLineClassNamesForTime})}rows(e,t,i){/*#__PURE__*/return r.jsx(et,{groups:i,canvasWidth:e,lineCount:ne(this.props.groups),groupHeights:t,clickTolerance:this.props.clickTolerance,onRowClick:this.handleRowClick,onRowDoubleClick:this.handleRowDoubleClick,horizontalLineClassNamesForGroup:this.props.horizontalLineClassNamesForGroup,onRowContextClick:this.handleScrollContextMenu})}items(e,t,i,s,n,o,a,l){/*#__PURE__*/return r.jsx(Ke,{canvasTimeStart:e,canvasTimeEnd:i,canvasWidth:s,dimensionItems:o,groupTops:l,items:this.props.items,groups:this.props.groups,keys:this.props.keys,selectedItem:this.state.selectedItem,dragSnap:this.props.dragSnap,minResizeWidth:this.props.minResizeWidth,canChangeGroup:this.props.canChangeGroup,canMove:this.props.canMove,canResize:this.props.canResize,useResizeHandle:this.props.useResizeHandle,canSelect:this.props.canSelect,moveResizeValidator:this.props.moveResizeValidator,itemSelect:this.selectItem,itemDrag:this.dragItem,itemDrop:this.dropItem,onItemDoubleClick:this.doubleClickItem,onItemContextMenu:this.props.onItemContextMenu?this.contextMenuClickItem:void 0,itemResizing:this.resizingItem,itemResized:this.resizedItem,itemRenderer:this.props.itemRenderer,selected:this.props.selected,scrollRef:this.scrollComponent})}sidebar(e,t){const{sidebarWidth:i,handleSidebarResize:s}=this.props;return i&&/*#__PURE__*/r.jsx(Ue,{groups:this.props.groups,groupRenderer:this.props.groupRenderer,keys:this.props.keys,width:i,groupHeights:t,height:e,handleSidebarResize:s})}rightSidebar(e,t){const{rightSidebarWidth:i,handleSidebarResize:s}=this.props;return i&&/*#__PURE__*/r.jsx(Ue,{groups:this.props.groups,keys:this.props.keys,groupRenderer:this.props.groupRenderer,isRightSidebar:!0,width:i,groupHeights:t,height:e,handleSidebarResize:s})}childrenWithProps(e,t,i,s,r,n,o,a,d,h,c){if(!this.props.children)return null;const u=Array.isArray(this.props.children)?this.props.children.filter(e=>e):[this.props.children],p={canvasTimeStart:e,canvasTimeEnd:t,canvasWidth:i,visibleTimeStart:a,visibleTimeEnd:d,dimensionItems:s,items:this.props.items,groups:this.props.groups,keys:this.props.keys,groupHeights:r,groupTops:n,selected:this.getSelected(),height:o,minUnit:h,timeSteps:c};return l.default.Children.map(u,e=>this.isTimelineHeader(e)?null:/*#__PURE__*/l.default.cloneElement(e,p))}getSelected(){return this.state.selectedItem&&!this.props.selected?[this.state.selectedItem]:this.props.selected||[]}hasSelectedItem(){return Array.isArray(this.props.selected)?this.props.selected.length>0:!!this.state.selectedItem}isItemSelected(e){return this.getSelected().some(t=>t===e)}render(){const{items:e,groups:t,sidebarWidth:i,rightSidebarWidth:s,timeSteps:n,traditionalZoom:o}=this.props,{draggingItem:a,resizingItem:l,width:d,visibleTimeStart:h,visibleTimeEnd:c,canvasTimeStart:u,canvasTimeEnd:p}=this.state;let{dimensionItems:m,height:g,groupHeights:f,groupTops:v}=this.state;const b=c-h,y=xe(d),T=me(b,d,n),S=!!a||!!l;if(S){const i=Ce(e,t,y,this.state.canvasTimeStart,this.state.canvasTimeEnd,this.props.keys,this.props.lineHeight,this.props.itemHeightRatio,this.props.stackItems,this.state.draggingItem,this.state.resizingItem,this.state.dragTime,this.state.resizingEdge,this.state.resizeTime,this.state.newGroupOrder);m=i.dimensionItems,g=i.height,f=i.groupHeights,v=i.groupTops}const R={height:`${g}px`};/*#__PURE__*/return r.jsx(_e,{visibleTimeStart:h,visibleTimeEnd:c,canvasTimeStart:u,canvasTimeEnd:p,canvasWidth:y,showPeriod:this.showPeriod,timelineUnit:T,timelineWidth:this.state.width,children:/*#__PURE__*/r.jsx(ct,{children:/*#__PURE__*/r.jsx(Ot,{registerScroll:this.handleHeaderRef,timeSteps:n,leftSidebarWidth:this.props.sidebarWidth,rightSidebarWidth:this.props.rightSidebarWidth,children:/*#__PURE__*/r.jsxs("div",{style:this.props.style,ref:e=>this.container=e,className:`react-calendar-timeline ${this.props.className}`,children:[this.renderHeaders(),/*#__PURE__*/r.jsxs("div",{style:R,className:"rct-outer",children:[i>0?this.sidebar(g,f):null,/*#__PURE__*/r.jsx(tt,{scrollRef:this.getScrollElementRef,width:d,height:g,onZoom:this.changeZoom,onWheelZoom:this.handleWheelZoom,traditionalZoom:o,onScroll:this.onScroll,isInteractingWithItem:S,children:/*#__PURE__*/r.jsxs(Dt,{children:[this.columns(u,p,y,T,n,g),this.rows(y,f,t),this.items(u,b,p,y,T,m,f,v),this.childrenWithProps(u,p,y,m,f,v,g,h,c,T,n)]})}),s>0?this.rightSidebar(g,f):null]})]})})})})}}Xt.propTypes={groups:se.oneOfType([se.array,se.object]).isRequired,items:se.oneOfType([se.array,se.object]).isRequired,sidebarWidth:se.number,rightSidebarWidth:se.number,dragSnap:se.number,minResizeWidth:se.number,stickyHeader:se.bool,lineHeight:se.number,itemHeightRatio:se.number,minZoom:se.number,maxZoom:se.number,clickTolerance:se.number,canChangeGroup:se.bool,canMove:se.bool,canResize:se.oneOf([!0,!1,"left","right","both"]),useResizeHandle:se.bool,canSelect:se.bool,stackItems:se.bool,traditionalZoom:se.bool,itemTouchSendsClick:se.bool,horizontalLineClassNamesForGroup:se.func,onItemMove:se.func,onItemResize:se.func,onItemClick:se.func,onItemSelect:se.func,onItemDeselect:se.func,onCanvasClick:se.func,onItemDoubleClick:se.func,onItemContextMenu:se.func,onCanvasDoubleClick:se.func,onCanvasContextMenu:se.func,onZoom:se.func,onItemDrag:se.func,handleSidebarResize:se.object,moveResizeValidator:se.func,itemRenderer:se.func,groupRenderer:se.func,className:se.string,style:se.object,keys:se.shape({groupIdKey:se.string,groupTitleKey:se.string,groupLabelKey:se.string,groupRightTitleKey:se.string,itemIdKey:se.string,itemTitleKey:se.string,itemDivTitleKey:se.string,itemGroupKey:se.string,itemTimeStartKey:se.string,itemTimeEndKey:se.string}),headerRef:se.func,scrollRef:se.func,timeSteps:se.shape({second:se.number,minute:se.number,hour:se.number,day:se.number,month:se.number,year:se.number}),defaultTimeStart:se.object,defaultTimeEnd:se.object,visibleTimeStart:se.number,visibleTimeEnd:se.number,onTimeChange:se.func,onBoundsChange:se.func,selected:se.array,headerLabelFormats:se.shape({yearShort:se.string,yearLong:se.string,monthShort:se.string,monthMedium:se.string,monthMediumLong:se.string,monthLong:se.string,dayShort:se.string,dayLong:se.string,hourShort:se.string,hourMedium:se.string,hourMediumLong:se.string,hourLong:se.string}),subHeaderLabelFormats:se.shape({yearShort:se.string,yearLong:se.string,monthShort:se.string,monthMedium:se.string,monthLong:se.string,dayShort:se.string,dayMedium:se.string,dayMediumLong:se.string,dayLong:se.string,hourShort:se.string,hourLong:se.string,minuteShort:se.string,minuteLong:se.string}),resizeDetector:se.shape({addListener:se.func,removeListener:se.func}),verticalLineClassNamesForTime:se.func,children:se.node},Xt.defaultProps={sidebarWidth:150,rightSidebarWidth:0,dragSnap:6e4,minResizeWidth:20,stickyHeader:!0,lineHeight:30,itemHeightRatio:.65,minZoom:36e5,maxZoom:15778368e4,clickTolerance:3,canChangeGroup:!0,canMove:!0,canResize:"right",useResizeHandle:!1,canSelect:!0,stackItems:!1,traditionalZoom:!1,horizontalLineClassNamesForGroup:null,onItemMove:null,onItemResize:null,onItemClick:null,onItemSelect:null,onItemDeselect:null,onItemDrag:null,onCanvasClick:null,onItemDoubleClick:null,onItemContextMenu:null,onZoom:null,verticalLineClassNamesForTime:null,moveResizeValidator:null,dayBackground:null,defaultTimeStart:null,defaultTimeEnd:null,itemTouchSendsClick:!1,style:{},className:"",keys:{groupIdKey:"id",groupTitleKey:"title",groupRightTitleKey:"rightTitle",groupLabelKey:"title",itemIdKey:"id",itemTitleKey:"title",itemDivTitleKey:"title",itemGroupKey:"group",itemTimeStartKey:"start_time",itemTimeEndKey:"end_time"},timeSteps:{second:1,minute:1,hour:1,day:1,month:1,year:1},headerRef:()=>{},scrollRef:()=>{},visibleTimeStart:null,visibleTimeEnd:null,onTimeChange:function(e,t,i){i(e,t)},onBoundsChange:null,children:null,headerLabelFormats:{yearShort:"YY",yearLong:"YYYY",monthShort:"MM/YY",monthMedium:"MM/YYYY",monthMediumLong:"MMM YYYY",monthLong:"MMMM YYYY",dayShort:"L",dayLong:"dddd, LL",hourShort:"HH",hourMedium:"HH:00",hourMediumLong:"L, HH:00",hourLong:"dddd, LL, HH:00",time:"LLL"},subHeaderLabelFormats:{yearShort:"YY",yearLong:"YYYY",monthShort:"MM",monthMedium:"MMM",monthLong:"MMMM",dayShort:"D",dayMedium:"dd D",dayMediumLong:"ddd, Do",dayLong:"dddd, Do",hourShort:"HH",hourLong:"HH:00",minuteShort:"mm",minuteLong:"HH:mm"},selected:null},Xt.childContextTypes={getTimelineContext:se.func};class Zt extends l.default.Component{componentDidMount(){const{unsubscribe:e,getMarker:t}=this.props.subscribeMarker({type:pt,renderer:this.props.children,interval:this.props.interval});this.unsubscribe=e,this.getMarker=t}componentWillUnmount(){null!=this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}componentDidUpdate(e){if(e.interval!==this.props.interval&&this.getMarker){const e=this.getMarker();this.props.updateMarker({...e,interval:this.props.interval})}}render(){return null}}Zt.propTypes={subscribeMarker:se.func.isRequired,updateMarker:se.func.isRequired,interval:se.number,children:se.func},Zt.defaultProps={interval:1e4};const Jt=e=>/*#__PURE__*/r.jsx(ut,{children:t=>{let{subscribeMarker:i,updateMarker:s}=t;/*#__PURE__*/return r.jsx(Zt,{subscribeMarker:i,updateMarker:s,...e})}});Jt.displayName="TodayMarkerWrapper";class Qt extends l.default.Component{componentDidUpdate(e){if(e.date!==this.props.date&&this.getMarker){const e=this.getMarker();this.props.updateMarker({...e,date:this.props.date})}}componentDidMount(){const{unsubscribe:e,getMarker:t}=this.props.subscribeMarker({type:mt,renderer:this.props.children,date:this.props.date});this.unsubscribe=e,this.getMarker=t}componentWillUnmount(){null!=this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}render(){return null}}Qt.propTypes={subscribeMarker:se.func.isRequired,updateMarker:se.func.isRequired,children:se.func,date:se.number.isRequired};const ei=e=>/*#__PURE__*/r.jsx(ut,{children:t=>{let{subscribeMarker:i,updateMarker:s}=t;/*#__PURE__*/return r.jsx(Qt,{subscribeMarker:i,updateMarker:s,...e})}});ei.displayName="CustomMarkerWrapper",class extends l.default.Component{componentDidMount(){const{unsubscribe:e}=this.props.subscribeMarker({type:gt,renderer:this.props.children});this.unsubscribe=e}componentWillUnmount(){null!=this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}render(){return null}}.propTypes={subscribeMarker:se.func.isRequired,children:se.func};const ti=e=>{let{item:t,group:i}=e,s=d.default(t.start,"x"),n=d.default(t.end,"x");/*#__PURE__*/return r.jsx("div",{className:"popup",children:/*#__PURE__*/r.jsxs("div",{className:"popup-body",children:[/*#__PURE__*/r.jsx("h3",{children:t.title}),/*#__PURE__*/r.jsxs("div",{className:"item-group",children:[/*#__PURE__*/r.jsx("span",{style:{fontWeight:"bold"},children:"Group:"})," ",i.title]}),/*#__PURE__*/r.jsxs("div",{className:"dates",children:[/*#__PURE__*/r.jsx("h4",{children:"Date"}),/*#__PURE__*/r.jsxs("span",{className:"date date-from",children:["From: ",s.format("LLL")]}),/*#__PURE__*/r.jsx("br",{}),/*#__PURE__*/r.jsxs("span",{className:"date date-to",children:["To: ",n.format("LLL")]})]})]})})},ii={groupIdKey:"id",groupTitleKey:"title",groupRightTitleKey:"rightTitle",itemIdKey:"id",itemTitleKey:"title",itemDivTitleKey:"title",itemGroupKey:"group",itemTimeStartKey:"start",itemTimeEndKey:"end",groupLabelKey:"title"};class si extends e.Component{constructor(e){super(e),this.getTaskBackground=e=>{if(!e["task-type"])return"#2196F3";switch(e["task-type"]["task-category"]){case"scheduled_wo":return"#aa0000";case"task_card":return"#00aa00";case"maintenance_wo":return"#0000aa";default:return"#2196F3"}},this.buildData=(e,t,i,s,r,n)=>{if(e&&Array.isArray(e))for(const o of e){const e=o.resource.id+" - "+o.resource.type;t.has(e)||t.set(e,{id:t.size,title:o.resource?o.resource.title:"",hasChildren:o.planParts&&o.planParts.length>0,parent:r,open:s<1,show:s<2,level:s});const a=d.default("SessionPlan"===o.type?o["start-time"]:o["planned-start-time"]).add("1","year").add("2","month").add("27","day"),l=d.default("SessionPlan"===o.type?o["end-time"]:o["planned-end-time"]).add("1","year").add("2","month").add("27","day"),h=i.length+1;i.push({id:h,group:t.get(e).id,title:o.title,start:a,end:l,parent:n,className:"item",bgColor:this.getTaskBackground(o),color:"#fff",selectedBgColor:"#FFC107",selectedColor:"#000",draggingBgColor:"#f00",highlightBgColor:"#FFA500",highlight:!1,canMove:s>1&&3!==s,canResize:"both",minimumDuration:!1}),o.planParts&&o.planParts.length>0&&this.buildData(o.planParts,t,i,s+1,t.get(e).id,h)}},this.handleItemMove=(e,t,i)=>{const{items:s,groups:r}=this.state,n=r.filter(e=>e.show)[i];this.addUndoItem(s.find(t=>t.id===e)),this.setState({items:s.map(i=>i.id===e?Object.assign({},i,{start:d.default(t),end:d.default(t+(i.end-i.start)),group:n.id}):i),draggedItem:void 0})},this.handleItemResize=(e,t,i)=>{const{items:s}=this.state,r=s.find(t=>t.id===e);this.addUndoItem(r);let n=d.default("left"===i?t:r.start),o=d.default("left"===i?r.end:t);this.isLessThanMinimumDuration(r,n,o)?"left"===i?n=o.clone().subtract(r.minimumDuration,"minute"):o=n.clone().add(r.minimumDuration,"minute"):this.isMoreThanMaximumDuration(r,n,o)&&("left"===i?n=o.clone().subtract(r.maximumDuration,"minute"):o=n.clone().add(r.maximumDuration,"minute")),r.start=n,r.end=o,this.setState({items:s,draggedItem:void 0})},this.handleItemDrag=e=>{let{eventType:t,itemId:i,time:s,edge:r,newGroupOrder:n}=e,o=this.state.draggedItem?this.state.draggedItem.item:void 0;if(o||(o=this.state.items.find(e=>e.id===i)),"resize"===t){let e=o.start,t=o.end;"left"===r?e=d.default(s):t=d.default(s),this.isLessThanMinimumDuration(o,e,t)&&(s="left"===r?t.clone().subtract(o.minimumDuration,"minute"):e.clone().add(o.minimumDuration,"minute"))}const a=this.state.groups.filter(e=>e.show)[n];this.setState({draggedItem:{item:o,group:a,time:s}}),this.showItemInfo(o,a,{type:t,side:r,time:s})},this.isLessThanMinimumDuration=(e,t,i)=>!!e.minimumDuration&&d.default.duration(i.diff(t)).asMinutes()<e.minimumDuration,this.isMoreThanMaximumDuration=(e,t,i)=>!!e.maximumDuration&&d.default.duration(i.diff(t)).asMinutes()>e.maximumDuration,this.toggleGroup=e=>{let{groups:t}=this.state;const i=t.find(t=>t.id===e);i.open=!i.open,t.filter(t=>t.parent===e).forEach(e=>{e.show=i.open,i.open||(e.open=!1,t=this.closeChildren(t,e.id))}),this.setState({groups:t})},this.closeChildren=(e,t)=>(e.filter(e=>e.parent===t).forEach(t=>{t.show=!1,t.hasChildren&&(t.open=!1,e=this.closeChildren(e,t.id))}),e),this.highlightChildren=e=>{const t=this.state.items.filter(t=>t.parent===e.id);for(const e of t)e.highlight=!0,this.highlightChildren(e)},this.removeHighlight=()=>{const e=this.state.items.filter(e=>e.highlight);for(const t of e)t.highlight=!1},this.itemDeselected=()=>{this.removeHighlight(),this.setState({items:this.state.items,popup:{open:!1}})},this.showItemInfo=(e,t,i)=>{if(!e)return;let s=e.start,r=e.end;i&&("resize"===i.type?"left"===i.side?s=i.time:r=i.time:"move"===i.type&&(r=i.time+(e.end-e.start),s=i.time)),this.setState({popup:{open:!0,item:{...e,start:s,end:r},group:null!=t?t:this.state.groups.find(t=>t.id===e.group),custom:this.state.popup.custom}})},this.onSidebarDown=e=>{0===e.button&&(e.stopPropagation(),e.preventDefault(),this.setState({sidebarWidth:e.clientX-document.querySelector(".rct-sidebar").getBoundingClientRect().left,sidebarResizing:!0}))},this.onSidebarMove=e=>{if(e.stopPropagation(),e.preventDefault(),!this.state.sidebarResizing)return;const t=e.clientX-document.querySelector(".rct-sidebar").getBoundingClientRect().left;t<10||this.setState({sidebarWidth:t})},this.onSidebarUp=e=>{e.stopPropagation(),e.preventDefault(),this.setState({sidebarResizing:!1})},this.addUndoItem=e=>{this.redoActions=[],this.actions.push(Object.assign({},e))},this.undo=()=>{if(this.actions.length<=0)return;const{items:e}=this.state,t=this.actions.pop();this.redoActions.push(e.find(e=>e.id===t.id)),this.setState({items:e.map(e=>e.id===t.id?Object.assign({},t):e),draggedItem:void 0})},this.redo=()=>{if(this.redoActions.length<=0)return;const{items:e}=this.state,t=this.redoActions.pop();this.actions.push(e.find(e=>e.id===t.id)),this.setState({items:e.map(e=>e.id===t.id?Object.assign({},t):e),draggedItem:void 0})},this.focusItems=e=>{if(!e||!Array.isArray(e)||e.length<=0)return;this.removeHighlight();let t=e[0].start.clone(),i=e[0].end.clone();e[0].highlight=!0,e.shift();for(const s of e)t.diff(s.start)>0&&(t=s.start.clone()),i.diff(s.end)<0&&(i=s.end.clone()),s.highlight=!0;t.subtract(1,"hour"),i.add(2,"hour"),this.timeline.current.updateScrollCanvas(t.valueOf(),i.valueOf())},this.itemRenderer=e=>{let{item:t,itemContext:i,getItemProps:s,getResizeProps:n}=e;const{left:o,right:a}=n();let l=t.bgColor,d=t.color;return i.selected?(d=t.selectedColor,l=i.dragging?t.draggingBgColor:t.selectedBgColor):t.highlight&&(l=t.highlightBgColor),i.dimensions.width<20&&(i.dimensions.width=20),/*#__PURE__*/r.jsxs("div",{...s({style:{background:l,color:d,minWidth:20},onMouseDown:()=>{t.selected=!0,this.removeHighlight(),this.highlightChildren(t),this.showItemInfo(this.state.items.find(e=>e.id===t.id)),this.setState({items:this.state.items})}}),id:"item-"+t.id,className:t.canMove?"movable-item":"static-item",children:[!i.selected||"both"!==t.canResize&&"left"!==t.canResize?"":i.useResizeHandle?/*#__PURE__*/r.jsx("div",{...o}):/*#__PURE__*/r.jsx("span",{style:{cursor:"ew-resize",width:3,zIndex:1e3,position:"absolute",top:0,left:-3,height:"100%"}}),/*#__PURE__*/r.jsx("div",{style:{height:i.dimensions.height,overflow:"hidden",paddingLeft:3,textOverflow:"ellipsis",whiteSpace:"nowrap",zIndex:"100",position:"relative"},children:i.title}),t.dependency?/*#__PURE__*/r.jsx(p.default,{start:"item-"+t.dependency,end:"item-"+t.id,strokeWidth:2,headSize:6}):"",!i.selected||"both"!==t.canResize&&"right"!==t.canResize?"":i.useResizeHandle?/*#__PURE__*/r.jsx("div",{...a}):/*#__PURE__*/r.jsx("span",{style:{cursor:"ew-resize",width:3,zIndex:1e3,position:"absolute",top:0,right:-3,height:"100%"}})]})},this.actions=[],this.redoActions=[];let t=e.items||[],i=e.groups||[];Array.isArray(t)||(t=[]),Array.isArray(i)||(i=[]);for(const e of t)e.parent=null!=e.parent?e.parent:null,e.className=null!=e.className?e.className:"item",e.bgColor=null!=e.bgColor?e.bgColor:"#2196F3",e.color=null!=e.color?e.color:"#fff",e.selectedBgColor=null!=e.selectedBgColor?e.selectedBgColor:"#FFC107",e.selectedColor=null!=e.selectedColor?e.selectedColor:"#000",e.draggingBgColor=null!=e.draggingBgColor?e.draggingBgColor:"#f00",e.highlightBgColor=null!=e.highlightBgColor?e.highlightBgColor:"#FFA500",e.highlight=null!=e.highlight&&e.highlight,e.canMove=null==e.canMove||e.canMove,e.canResize=null!=e.canResize?e.canResize:"both",e.minimumDuration=null!=e.minimumDuration&&e.minimumDuration,e.maximumDuration=null!=e.maximumDuration&&e.maximumDuration;i=i.sort((e,t)=>e.level-t.level).reduce((e,t)=>{let i=e.find(e=>e.id===t.parent),s=e.indexOf(i);const r=e.filter(e=>e.parent===t.parent).length;return s=-1!==s?s+r+1:e.length,e.splice(s,0,t),e},[]);const s=t.length>0?d.default(t[0].start).add(-12,"hour"):d.default(),n=s.clone().add(7,"day"),o={open:!1,item:null,custom:null!=e.popup&&e.popup};let a=[];e.milestones&&(a=e.milestones),this.timeline=/*#__PURE__*/l.default.createRef(),this.state={groups:i,items:t,defaultTimeStart:s,defaultTimeEnd:n,sidebarWidth:250,sidebarResizing:!1,popup:o,milestones:a}}onTimeChange(e,t,i,s){i(e,t)}render(){const{groups:e,items:t,defaultTimeStart:i,defaultTimeEnd:s,sidebarWidth:n,popup:o,milestones:a}=this.state,l=e.filter(e=>e.show).map(e=>Object.assign({},e,{title:e.hasChildren?/*#__PURE__*/r.jsxs("div",{onClick:()=>this.toggleGroup(e.id),style:{cursor:"pointer",paddingLeft:20*e.level},children:[e.open?"[-]":"[+]"," ",e.title]}):/*#__PURE__*/r.jsx("div",{style:{paddingLeft:20*e.level},children:e.title})}));/*#__PURE__*/return r.jsxs("div",{children:[/*#__PURE__*/r.jsxs(Xt,{ref:this.timeline,groups:l,items:t,keys:ii,fullUpdate:!0,itemTouchSendsClick:!1,stackItems:!0,itemHeightRatio:.75,canMove:!0,canResize:"both",sidebarWidth:n,defaultTimeStart:i,defaultTimeEnd:s,onTimeChange:this.onTimeChange,itemRenderer:this.itemRenderer,onItemMove:this.handleItemMove,onItemResize:this.handleItemResize,onItemDeselect:this.itemDeselected,onItemDrag:this.handleItemDrag,handleSidebarResize:{down:this.onSidebarDown,move:this.onSidebarMove,up:this.onSidebarUp,resizing:this.state.sidebarResizing},children:[/*#__PURE__*/r.jsx(Jt,{interval:1e3}),a.length>0?a.map((e,t)=>/*#__PURE__*/r.jsx(ei,{date:e.date.valueOf(),children:t=>{let{styles:i}=t;const s={...i,backgroundColor:e.color?e.color:"#000",width:"3px",pointerEvents:"auto",zIndex:1e3};/*#__PURE__*/return r.jsx("div",{style:s,className:"milestone",children:/*#__PURE__*/r.jsxs("span",{className:"milestone-label",children:[e.label?e.label:"",/*#__PURE__*/r.jsx("br",{}),/*#__PURE__*/r.jsx("span",{className:"milestone-date",children:e.date.format("LLL")})]})})}},"marker-"+t)):""]}),/*#__PURE__*/r.jsxs("div",{className:"action-buttons",children:[/*#__PURE__*/r.jsx("button",{className:"action-button "+(this.actions.length<=0?"disabled":""),onClick:this.undo,children:"Undo"}),/*#__PURE__*/r.jsx("button",{className:"action-button "+(this.redoActions.length<=0?"disabled":""),onClick:this.redo,children:"Redo"})]}),o.open&&(o.custom?o.custom({item:o.item,group:o.group}):/*#__PURE__*/r.jsx(ti,{item:o.item,group:o.group})),/*#__PURE__*/r.jsxs("div",{className:"explanatory-notes",children:[/*#__PURE__*/r.jsx("h3",{children:"Task types"}),/*#__PURE__*/r.jsxs("div",{className:"note",children:[/*#__PURE__*/r.jsx("span",{className:"color scheduled-wo"}),"Scheduled_wo"]}),/*#__PURE__*/r.jsxs("div",{className:"note",children:[/*#__PURE__*/r.jsx("span",{className:"color task-card"}),"Task_card"]}),/*#__PURE__*/r.jsxs("div",{className:"note",children:[/*#__PURE__*/r.jsx("span",{className:"color maintenance-wo"}),"Maintenance_wo"]})]})]})}}return si.propTypes={items:se.arrayOf(se.shape({id:se.number.isRequired,group:se.number.isRequired,title:se.string,start:se.instanceOf(d.default).isRequired,end:se.instanceOf(d.default).isRequired,parent:se.number,className:se.string,bgColor:se.string,color:se.string,selectedBgColor:se.string,selectedColor:se.string,draggingBgColor:se.string,highlightBgColor:se.string,highlight:se.bool,canMove:se.bool,canResize:se.oneOf(["both","left","right",!1]),minimumDuration:se.oneOfType([se.number,se.oneOf([!1])]),maximumDuration:se.oneOfType([se.number,se.oneOf([!1])])})).isRequired,groups:se.arrayOf(se.shape({id:se.number.isRequired,title:se.string.isRequired,hasChildren:se.bool,parent:se.number,open:se.bool.isRequired,show:se.bool.isRequired,level:se.number.isRequired})).isRequired,popup:se.elementType,milestones:se.arrayOf(se.shape({date:se.instanceOf(d.default).isRequired,label:se.string,color:se.string}))},si.defaultProps={items:[{parent:null,className:"item",bgColor:"#2196F3",color:"#fff",selectedBgColor:"#FFC107",selectedColor:"#000",draggingBgColor:"#f00",highlightBgColor:"#FFA500",highlight:!1,canMove:!0,canResize:"both",minimumDuration:!1,maximumDuration:!1}],groups:[],popup:ti},si});
//# sourceMappingURL=PlanningTool.umd.js.map