-
Notifications
You must be signed in to change notification settings - Fork 1
/
PlanningTool.js
2 lines (2 loc) · 93.3 KB
/
PlanningTool.js
1
2
var e=require("react"),t=require("moment"),i=require("interactjs"),s=require("lodash.isequal"),r=require("react/jsx-runtime"),n=require("classnames"),o=require("react-xarrows");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=/*#__PURE__*/a(e),d=/*#__PURE__*/a(t),c=/*#__PURE__*/a(i),u=/*#__PURE__*/a(s),h=/*#__PURE__*/a(n),p=/*#__PURE__*/a(o);function m(){return m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(e[s]=i[s])}return e},m.apply(this,arguments)}function g(e,t){return g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},g(e,t)}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,s=new Array(t);i<t;i++)s[i]=e[i];return s}function v(e,t){var i="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(i)return(i=i.call(e)).next.bind(i);if(Array.isArray(e)||(i=function(e,t){if(e){if("string"==typeof e)return f(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?f(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){i&&(e=i);var s=0;return function(){return s>=e.length?{done:!0}:{done:!1,value:e[s++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e){var t={exports:{}};return e(t,t.exports),t.exports}var y="function"==typeof Symbol&&Symbol.for,T=y?Symbol.for("react.element"):60103,S=y?Symbol.for("react.portal"):60106,R=y?Symbol.for("react.fragment"):60107,C=y?Symbol.for("react.strict_mode"):60108,x=y?Symbol.for("react.profiler"):60114,z=y?Symbol.for("react.provider"):60109,M=y?Symbol.for("react.context"):60110,I=y?Symbol.for("react.async_mode"):60111,k=y?Symbol.for("react.concurrent_mode"):60111,D=y?Symbol.for("react.forward_ref"):60112,w=y?Symbol.for("react.suspense"):60113,j=y?Symbol.for("react.suspense_list"):60120,E=y?Symbol.for("react.memo"):60115,L=y?Symbol.for("react.lazy"):60116,O=y?Symbol.for("react.block"):60121,P=y?Symbol.for("react.fundamental"):60117,W=y?Symbol.for("react.responder"):60118,H=y?Symbol.for("react.scope"):60119;function q(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case T:switch(e=e.type){case I:case k:case R:case x:case C:case w:return e;default:switch(e=e&&e.$$typeof){case M:case D:case L:case E:case z:return e;default:return t}}case S:return t}}}function N(e){return q(e)===k}var F={AsyncMode:I,ConcurrentMode:k,ContextConsumer:M,ContextProvider:z,Element:T,ForwardRef:D,Fragment:R,Lazy:L,Memo:E,Portal:S,Profiler:x,StrictMode:C,Suspense:w,isAsyncMode:function(e){return N(e)||q(e)===I},isConcurrentMode:N,isContextConsumer:function(e){return q(e)===M},isContextProvider:function(e){return q(e)===z},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===T},isForwardRef:function(e){return q(e)===D},isFragment:function(e){return q(e)===R},isLazy:function(e){return q(e)===L},isMemo:function(e){return q(e)===E},isPortal:function(e){return q(e)===S},isProfiler:function(e){return q(e)===x},isStrictMode:function(e){return q(e)===C},isSuspense:function(e){return q(e)===w},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===R||e===k||e===x||e===C||e===w||e===j||"object"==typeof e&&null!==e&&(e.$$typeof===L||e.$$typeof===E||e.$$typeof===z||e.$$typeof===M||e.$$typeof===D||e.$$typeof===P||e.$$typeof===W||e.$$typeof===H||e.$$typeof===O)},typeOf:q},$=b(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,c=e?Symbol.for("react.concurrent_mode"):60111,u=e?Symbol.for("react.forward_ref"):60112,h=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 c:case r:case o:case n:case h:return p;default:var f=p&&p.$$typeof;switch(f){case l:case u:case g:case m:case a:return f;default:return t}}case s:return t}}}var S=c,R=l,C=a,x=i,z=u,M=r,I=g,k=m,D=s,w=o,j=n,E=h,L=!1;function O(e){return T(e)===c}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)===u},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)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===r||e===c||e===o||e===n||e===h||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===a||e.$$typeof===l||e.$$typeof===u||e.$$typeof===v||e.$$typeof===b||e.$$typeof===y||e.$$typeof===f)},t.typeOf=T}()}),K=b(function(e){e.exports="production"===process.env.NODE_ENV?F:$}),U=Object.getOwnPropertySymbols,G=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable;function A(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var _=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=A(e),n=1;n<arguments.length;n++){for(var o in i=Object(arguments[n]))G.call(i,o)&&(r[o]=i[o]);if(U){s=U(i);for(var a=0;a<s.length;a++)Y.call(i,s[a])&&(r[s[a]]=i[s[a]])}}return r},B=Function.call.bind(Object.prototype.hasOwnProperty),V="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",X=B,Z=function(){};if("production"!==process.env.NODE_ENV){var J=V,Q={},ee=X;Z=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}}function te(e,t,i,s,r){if("production"!==process.env.NODE_ENV)for(var n in e)if(ee(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,J)}catch(e){o=e}if(!o||o instanceof Error||Z((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 Q)){Q[o.message]=!0;var l=r?r():"";Z("Failed "+i+" type: "+o.message+(null!=l?l:""))}}}te.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&(Q={})};var ie=te,se=function(){};function re(){return null}function ne(){}function oe(){}"production"!==process.env.NODE_ENV&&(se=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}),oe.resetWarningCache=ne;var ae=b(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(re),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 `"+u(a)+"` supplied to `"+s+"`, expected an array.");for(var l=0;l<a.length;l++){var d=e(a,l,s,r,n+"["+l+"]",V);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 `"+u(a)+"` supplied to `"+s+"`, expected a single ReactElement.")}),elementType:a(function(e,t,i,s,r){var n=e[t];return K.isValidElementType(n)?null:new o("Invalid "+s+" `"+r+"` of type `"+u(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 c(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=u(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(X(a,d)){var c=e(a,d,s,r,n+"."+d,V);if(c instanceof Error)return c}return null})},oneOf:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&se(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."),re;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 c=JSON.stringify(e,function(e,t){return"symbol"===h(t)?String(t):t});return new o("Invalid "+r+" `"+a+"` of value `"+String(l)+"` supplied to `"+s+"`, expected one of "+c+".")}return a(t)},oneOfType:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&se("Invalid argument supplied to oneOfType, expected an instance of array."),re;for(var t=0;t<e.length;t++){var i=e[t];if("function"!=typeof i)return se("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+p(i)+" at index "+t+"."),re}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,V);if(null==d)return null;d.data&&X(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=u(a);if("object"!==l)return new o("Invalid "+r+" `"+n+"` of type `"+l+"` supplied to `"+s+"`, expected `object`.");for(var c in e){var p=e[c];if("function"!=typeof p)return d(s,r,n,c,h(p));var m=p(a,c,s,r,n+"."+c,V);if(m)return m}return null})},exact:function(e){return a(function(t,i,s,r,n){var a=t[i],l=u(a);if("object"!==l)return new o("Invalid "+r+" `"+n+"` of type `"+l+"` supplied to `"+s+"`, expected `object`.");var c=_({},t[i],e);for(var p in c){var m=e[p];if(X(e,p)&&"function"!=typeof m)return d(s,r,n,p,h(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,V);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!==V){var c=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 c.name="Invariant Violation",c}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 u(l)!==e?new o("Invalid "+r+" `"+n+"` of type `"+h(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 c(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(c);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(!c(r.value))return!1}else for(;!(r=n.next()).done;){var o=r.value;if(o&&!c(o[1]))return!1}return!0;default:return!1}}function u(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 h(e){if(null==e)return""+e;var t=u(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function p(e){var t=h(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=ie,r.resetWarningCache=ie.resetWarningCache,r.PropTypes=r,r}(K.isElement):function(){function e(e,t,i,s,r,n){if(n!==V){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:oe,resetWarningCache:ne};return i.PropTypes=i,i}()});function le(e,t){return"function"==typeof e.get?e.get(t):e[t]}function de(e){return"function"==typeof e.count?e.count():e.length}function ce(e,t){return de(e)===de(t)&&e.every((e,i)=>e===le(t,i))}function ue(){}function he(){var e=arguments;return function(t){t.preventDefault(),[].slice.call(e).forEach(e=>e&&e(t,...[].slice.call(arguments,1)))}}const pe=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 me(e,t,i){return(t-e)/i}function ge(e,t,i,s){return i/(t-e)*(s-e)}function fe(e,t,i,s){return(t-e)/i*s+e}function ve(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 be(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 ye(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 Te(e,t){const{groupIdKey:i}=t;let s={};for(let t=0;t<e.length;t++)s[le(e[t],i)]={index:t,group:e[t]};return s}function Se(e,t,i,s){const{itemTimeStartKey:r,itemTimeEndKey:n}=s;return e.filter(e=>le(e,r)<=i&&le(e,n)>=t)}function Re(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 Ce(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 c=i[d];if(null!==c.dimensions.top&&c.dimensions.stack&&Re(t.dimensions,c.dimensions)){l=c;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 xe(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 ze(e){return void 0===e&&(e=[]),e.reduce((e,t)=>e+t,0)}function Me(e,t,i,s){var r=0,n=0;for(let o=0;o<e.length;o++){let a={};a=t?Ce(i,e[o],e,r,s,o):xe(i,e[o],r,s),r=a.groupHeight,n=a.verticalMargin}return{groupHeight:r,verticalMargin:n}}function Ie(e,t,i,s,r,n,o,a,l,d,c,u,h,p,m){const g=Se(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 c=le(t,i.itemIdKey),u=c===s,h=c===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:le(t,i.itemTimeStartKey),itemTimeEnd:le(t,i.itemTimeEndKey),isDragging:u,isResizing:h,dragTime:n,resizingEdge:o,resizeTime:a});return{...t,[i.itemTimeStartKey]:p,[i.itemTimeEndKey]:m,[i.itemGroupKey]:u?le(l[d],i.groupIdKey):le(t,i.itemGroupKey)}}({item:e,keys:n,draggingItem:d,resizingItem:c,dragTime:u,resizingEdge:h,resizeTime:p,groups:t,newGroupOrder:m}));if(0===t.length)return{dimensionItems:[],height:0,groupHeights:[],groupTops:[]};const f=Te(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=le(t,i.itemIdKey);let c=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=ge(s,r,n,a),c=ge(s,r,n,l);return{left:d,width:Math.max(c-d,3),collisionLeft:t,collisionWidth:o}}({itemTimeStart:le(t,i.itemTimeStartKey),itemTimeEnd:le(t,i.itemTimeEndKey),canvasTimeStart:s,canvasTimeEnd:r,canvasWidth:n});if(c)return c.top=null,c.order=o[le(t,i.itemGroupKey)],c.stack=!t.isOverlay,c.height=a*l,{id:d,dimensions:c}}({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=ze(r),c=void 0!==l.stackItems?l.stackItems:s,{groupHeight:u}=Me(t,c,i,d);n.push(d),r.push(l.height?l.height:Math.max(u,i))}return{height:ze(r),groupHeights:r,groupTops:n}}(v,f,o,l);return{dimensionItems:v,height:b,groupHeights:y,groupTops:T}}function ke(e,t){return void 0===t&&(t=3),e*t}function De(e,t){const i=e-(t-e);return[i,i+3*(t-e)]}function we(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]=De(e,t);d.canvasTimeStart=i,d.canvasTimeEnd=a;const l={...o,...d},c=ke(l.width);Object.assign(d,Ie(s,r,c,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 je(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 Ee(e){if(e===document.body)return{scrollLeft:0,scrollTop:0};{const t=Ee(e.parentNode);return{scrollLeft:e.scrollLeft+t.scrollLeft,scrollTop:e.scrollTop+t.scrollTop}}}function Le(e){if(e!==document.body&&e.offsetParent){const t=Le(e.offsetParent);return{offsetLeft:e.offsetLeft+t.offsetLeft,offsetTop:e.offsetTop+t.offsetTop}}return{offsetLeft:0,offsetTop:0}}pe.propTypes={item:ae.any,itemContext:ae.any,getItemProps:ae.any,getResizeProps:ae.any};const Oe={fontSize:12,color:"white",cursor:"pointer",background:"#2196f3",border:"1px solid #1a6fb3",zIndex:80},Pe={background:"#ffc107",border:"1px solid #ff9800",zIndex:82},We={cursor:"move"},He={borderLeftWidth:3},qe={cursor:"ew-resize"},Ne={borderRightWidth:3},Fe={cursor:"ew-resize"},$e={position:"absolute",width:24,maxWidth:"20%",minWidth:2,height:"100%",top:0,left:0,cursor:"pointer",zIndex:88},Ke={position:"absolute",width:24,maxWidth:"20%",minWidth:2,height:"100%",top:0,right:0,cursor:"pointer",zIndex:88};class Ue 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:he(t.onMouseDown,e.onMouseDown),onMouseUp:he(t.onMouseUp,e.onMouseUp),onTouchStart:he(t.onTouchStart,e.onTouchStart),onTouchEnd:he(t.onTouchEnd,e.onTouchEnd),onDoubleClick:he(t.handleDoubleClick,e.onDoubleClick),onContextMenu:he(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({},$e,e.leftStyle)},right:{ref:t.getDragRightRef,className:s,style:Object.assign({},Ke,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||!u.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=le(e.item,e.keys.itemIdKey),this.itemTitle=le(e.item,e.keys.itemTitleKey),this.itemDivTitle=e.keys.itemDivTitleKey?le(e.item,e.keys.itemDivTitleKey):this.itemTitle,this.itemTimeStart=le(e.item,e.keys.itemTimeStartKey),this.itemTimeEnd=le(e.item,e.keys.itemTimeEndKey)}getTimeRatio(){const{canvasTimeStart:e,canvasTimeEnd:t,canvasWidth:i}=this.props;return me(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=me(this.props.canvasTimeStart,this.props.canvasTimeEnd,this.props.canvasWidth),i=Le(this.props.scrollRef).offsetLeft,s=Ee(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=Le(this.props.scrollRef).offsetTop,o=Ee(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";c.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;c.default(this.item).resizable({enabled:o||a,edges:{top:!1,bottom:!1,left:o&&e,right:a&&t}})}t&&i!==n&&c.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({},Oe,this.props.selected?Pe:{},this.props.selected&this.canMove(this.props)?We:{},this.props.selected&this.canResizeLeft(this.props)?He:{},this.props.selected&this.canResizeLeft(this.props)&this.state.dragging?qe:{},this.props.selected&this.canResizeRight(this.props)?Ne:{},this.props.selected&this.canResizeRight(this.props)&this.state.dragging?Fe:{},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})}}Ue.propTypes={canvasTimeStart:ae.number.isRequired,canvasTimeEnd:ae.number.isRequired,canvasWidth:ae.number.isRequired,order:ae.object,dragSnap:ae.number,minResizeWidth:ae.number,selected:ae.bool,canChangeGroup:ae.bool.isRequired,canMove:ae.bool.isRequired,canResizeLeft:ae.bool.isRequired,canResizeRight:ae.bool.isRequired,keys:ae.object.isRequired,item:ae.object.isRequired,onSelect:ae.func,onDrag:ae.func,onDrop:ae.func,onResizing:ae.func,onResized:ae.func,onContextMenu:ae.func,itemRenderer:ae.func,itemProps:ae.object,canSelect:ae.bool,dimensions:ae.object,groupTops:ae.array,useResizeHandle:ae.bool,moveResizeValidator:ae.func,onItemDoubleClick:ae.func,scrollRef:ae.object},Ue.defaultProps={selected:!1,itemRenderer:pe},Ue.contextTypes={getTimelineContext:ae.func};const Ge=(e,t)=>{const i=void 0!==le(e,"canResize")?le(e,"canResize"):t;return"left"===i||"both"===i},Ye=(e,t)=>{const i=void 0!==le(e,"canResize")?le(e,"canResize"):t;return"right"===i||"both"===i||!0===i};class Ae extends e.Component{shouldComponentUpdate(e){return!(ce(e.groups,this.props.groups)&&ce(e.items,this.props.items)&&ce(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=le(e,t);return this.props.selected.includes(i)}return this.props.selectedItem===le(e,t)}getVisibleItems(e,t){const{keys:i,items:s}=this.props;return Se(s,e,t,i)}render(){const{canvasTimeStart:e,canvasTimeEnd:t,dimensionItems:i,keys:s,groups:n}=this.props,{itemIdKey:o,itemGroupKey:a}=s,l=Te(n,s),d=this.getVisibleItems(e,t,l),c=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=>c[le(e,o)]).map(e=>/*#__PURE__*/r.jsx(Ue,{item:e,keys:this.props.keys,order:l[le(e,a)],dimensions:c[le(e,o)].dimensions,selected:this.isSelected(e,o),canChangeGroup:void 0!==le(e,"canChangeGroup")?le(e,"canChangeGroup"):this.props.canChangeGroup,canMove:void 0!==le(e,"canMove")?le(e,"canMove"):this.props.canMove,canResizeLeft:Ge(e,this.props.canResize),canResizeRight:Ye(e,this.props.canResize),canSelect:void 0!==le(e,"canSelect")?le(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},le(e,o)))})}}Ae.propTypes={groups:ae.oneOfType([ae.array,ae.object]).isRequired,items:ae.oneOfType([ae.array,ae.object]).isRequired,canvasTimeStart:ae.number.isRequired,canvasTimeEnd:ae.number.isRequired,canvasWidth:ae.number.isRequired,dragSnap:ae.number,minResizeWidth:ae.number,selectedItem:ae.oneOfType([ae.string,ae.number]),canChangeGroup:ae.bool.isRequired,canMove:ae.bool.isRequired,canResize:ae.oneOf([!0,!1,"left","right","both"]),canSelect:ae.bool,keys:ae.object.isRequired,moveResizeValidator:ae.func,itemSelect:ae.func,itemDrag:ae.func,itemDrop:ae.func,itemResizing:ae.func,itemResized:ae.func,onItemDoubleClick:ae.func,onItemContextMenu:ae.func,itemRenderer:ae.func,selected:ae.array,dimensionItems:ae.array,groupTops:ae.array,useResizeHandle:ae.bool,scrollRef:ae.object},Ae.defaultProps={selected:[]};class _e 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&&ce(e.groups,this.props.groups)&&ce(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}):le(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 c=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)},le(t,n)));/*#__PURE__*/return r.jsxs("div",{className:"rct-sidebar"+(s?" rct-sidebar-right":""),style:l,children:[/*#__PURE__*/r.jsx("div",{style:d,children:c}),/*#__PURE__*/r.jsx("div",{className:"rct-sidebar-resize",onMouseDown:this.onSidebarDown})]})}}_e.propTypes={groups:ae.oneOfType([ae.array,ae.object]).isRequired,width:ae.number.isRequired,height:ae.number.isRequired,groupHeights:ae.array.isRequired,keys:ae.object.isRequired,groupRenderer:ae.func,isRightSidebar:ae.bool,handleSidebarResize:ae.object};const Be={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:Ve,Provider:Xe}=/*#__PURE__*/l.default.createContext(Be);class Ze 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 ge(t,i,s,e)},this.getDateFromLeftOffsetPosition=e=>{const{canvasTimeStart:t,canvasTimeEnd:i,canvasWidth:s}=this.props;return fe(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(Xe,{value:this.state.timelineContext,children:this.props.children})}}Ze.propTypes={children:ae.element.isRequired,visibleTimeStart:ae.number.isRequired,visibleTimeEnd:ae.number.isRequired,canvasTimeStart:ae.number.isRequired,canvasTimeEnd:ae.number.isRequired,canvasWidth:ae.number.isRequired,showPeriod:ae.func.isRequired,timelineUnit:ae.string.isRequired,timelineWidth:ae.number.isRequired};const Je=Ve,Qe={canvasTimeStart:ae.number.isRequired,canvasTimeEnd:ae.number.isRequired,canvasWidth:ae.number.isRequired,lineCount:ae.number.isRequired,minUnit:ae.string.isRequired,timeSteps:ae.object.isRequired,height:ae.number.isRequired,verticalLineClassNamesForTime:ae.func};class et 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 ve(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 c="rct-vl"+(s?" rct-vl-first":"")+("day"===i||"hour"===i||"minute"===i?` rct-day-${e.day()} `:" ")+d.join(" "),u=a(e.valueOf()),h=a(t.valueOf());l.push(/*#__PURE__*/r.jsx("div",{className:c,style:{pointerEvents:"none",top:"0px",left:`${u}px`,width:h-u+"px",height:`${n}px`}},`line-${e.valueOf()}`))}),/*#__PURE__*/r.jsx("div",{className:"rct-vertical-lines",children:l})}}et.propTypes={...Qe,getLeftOffsetFromDate:ae.func.isRequired};const tt=e=>{let{...t}=e;/*#__PURE__*/return r.jsx(Je,{children:e=>{let{getLeftOffsetFromDate:i}=e;/*#__PURE__*/return r.jsx(et,{getLeftOffsetFromDate:i,...t})}})};tt.defaultProps={...Qe};class it 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})}}it.propTypes={children:ae.element.isRequired,onClick:ae.func.isRequired,clickTolerance:ae.number.isRequired};class st 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(it,{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})})}}st.propTypes={onClick:ae.func.isRequired,onDoubleClick:ae.func.isRequired,onContextMenu:ae.func.isRequired,isEvenRow:ae.bool.isRequired,style:ae.object.isRequired,clickTolerance:ae.number.isRequired,group:ae.object.isRequired,horizontalLineClassNamesForGroup:ae.func};class rt 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 c=[];for(let u=0;u<t;u++)c.push(/*#__PURE__*/r.jsx(st,{clickTolerance:o,onContextMenu:e=>d(e,u),onClick:e=>s(e,u),onDoubleClick:e=>n(e,u),isEvenRow:u%2==0,group:a[u],horizontalLineClassNamesForGroup:l,style:{width:`${e}px`,height:`${i[u]}px`}},`horizontal-line-${u}`));/*#__PURE__*/return r.jsx("div",{className:"rct-horizontal-lines",children:c})}}rt.propTypes={canvasWidth:ae.number.isRequired,lineCount:ae.number.isRequired,groupHeights:ae.array.isRequired,onRowClick:ae.func.isRequired,onRowDoubleClick:ae.func.isRequired,clickTolerance:ae.number.isRequired,groups:ae.array.isRequired,horizontalLineClassNamesForGroup:ae.func,onRowContextClick:ae.func.isRequired};class nt 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=je(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=je(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})}}nt.propTypes={children:ae.element.isRequired,width:ae.number.isRequired,height:ae.number.isRequired,traditionalZoom:ae.bool.isRequired,scrollRef:ae.func.isRequired,isInteractingWithItem:ae.bool.isRequired,onZoom:ae.func.isRequired,onWheelZoom:ae.func.isRequired,onScroll:ae.func.isRequired};const ot={subscribeToMouseOver:()=>{console.warn('"subscribeToMouseOver" default func is being used')}},{Consumer:at,Provider:lt}=/*#__PURE__*/l.default.createContext(ot),dt=lt,ct=at,ut={markers:[],subscribeMarker:()=>(console.warn("default subscribe marker used"),ue)},{Consumer:ht,Provider:pt}=/*#__PURE__*/l.default.createContext(ut);let mt=0;class gt extends l.default.Component{constructor(){super(...arguments),this.handleSubscribeToMarker=e=>(e={...e,id:(mt+=1,mt+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(pt,{value:this.state,children:this.props.children})}}gt.propTypes={children:ae.element.isRequired};const ft=ht,vt={position:"absolute",top:0,bottom:0,width:"2px",backgroundColor:"black",pointerEvents:"none"},bt=e=>({...vt,left:e}),yt=e=>function(t){let{styles:i}=t;/*#__PURE__*/return r.jsx("div",{style:i,"data-testid":e})},Tt=yt("default-today-line");class St 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=bt(t);return this.props.renderer({styles:i,date:e})}}St.propTypes={getLeftOffsetFromDate:ae.func.isRequired,renderer:ae.func,interval:ae.number.isRequired},St.defaultProps={renderer:Tt};const Rt=yt("default-customer-marker-id");class Ct extends l.default.Component{render(){const{date:e}=this.props,t=this.props.getLeftOffsetFromDate(e),i=bt(t);return this.props.renderer({styles:i,date:e})}}Ct.propTypes={getLeftOffsetFromDate:ae.func.isRequired,renderer:ae.func,date:ae.number.isRequired},Ct.defaultProps={renderer:Rt};const xt=yt("default-cursor-marker");class zt 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=bt(t);return this.props.renderer({styles:s,date:i})}}zt.propTypes={subscribeToCanvasMouseOver:ae.func.isRequired,renderer:ae.func},zt.defaultProps={renderer:xt};const Mt=e=>/*#__PURE__*/r.jsx(ct,{children:t=>{let{subscribeToMouseOver:i}=t;/*#__PURE__*/return r.jsx(zt,{subscribeToCanvasMouseOver:i,...e})}});Mt.displayName="CursorMarkerWrapper";const It=()=>/*#__PURE__*/r.jsx(Je,{children:e=>{let{getLeftOffsetFromDate:t}=e;/*#__PURE__*/return r.jsx(ft,{children:e=>{let{markers:i}=e;return i.map(e=>{switch(e.type){case"Today":/*#__PURE__*/return r.jsx(St,{getLeftOffsetFromDate:t,renderer:e.renderer,interval:e.interval},e.id);case"Custom":/*#__PURE__*/return r.jsx(Ct,{renderer:e.renderer,date:e.date,getLeftOffsetFromDate:t},e.id);case"Cursor":/*#__PURE__*/return r.jsx(Mt,{renderer:e.renderer,getLeftOffsetFromDate:t},e.id);default:return null}})}})}}),kt={position:"absolute",left:0,right:0,top:0,bottom:0};class Dt 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(dt,{value:this.state,children:/*#__PURE__*/r.jsxs("div",{style:kt,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,ref:e=>this.containerEl=e,children:[/*#__PURE__*/r.jsx(It,{}),this.props.children]})})}}Dt.propTypes={getDateFromLeftOffsetPosition:ae.func.isRequired,children:ae.node};const wt=e=>/*#__PURE__*/r.jsx(Je,{children:t=>{let{getDateFromLeftOffsetPosition:i}=t;/*#__PURE__*/return r.jsx(Dt,{getDateFromLeftOffsetPosition:i,...e})}}),jt={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"}},Et={registerScroll:()=>(console.warn("default registerScroll header used"),ue),rightSidebarWidth:0,leftSidebarWidth:150,timeSteps:{}},{Consumer:Lt,Provider:Ot}=/*#__PURE__*/l.default.createContext(Et);class Pt extends l.default.Component{render(){/*#__PURE__*/return r.jsx(Ot,{value:{rightSidebarWidth:this.props.rightSidebarWidth,leftSidebarWidth:this.props.leftSidebarWidth,timeSteps:this.props.timeSteps,registerScroll:this.props.registerScroll},children:this.props.children})}}Pt.propTypes={children:ae.element.isRequired,rightSidebarWidth:ae.number,leftSidebarWidth:ae.number.isRequired,timeSteps:ae.object.isRequired,registerScroll:ae.func.isRequired};const Wt=Lt;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:"right"===e.props.variant?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:ae.func.isRequired,rightSidebarWidth:ae.number,leftSidebarWidth:ae.number.isRequired,variant:ae.string,headerData:ae.object};const qt=e=>{let{children:t,variant:i,headerData:s}=e;/*#__PURE__*/return r.jsx(Wt,{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:ae.func.isRequired,variant:ae.string,headerData:ae.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)?"right"===s.props.variant?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:h.default("rct-header-root",this.props.className),children:[t,/*#__PURE__*/r.jsx("div",{ref:this.props.registerScroll,style:this.getCalendarHeaderStyle(),className:h.default("rct-calendar-header",this.props.calendarHeaderClassName),"data-testid":"headerContainer",children:i}),e]})}}Nt.propTypes={registerScroll:ae.func.isRequired,leftSidebarWidth:ae.number.isRequired,rightSidebarWidth:ae.number.isRequired,style:ae.object,children:ae.node,className:ae.string,calendarHeaderStyle:ae.object,calendarHeaderClassName:ae.string,headerRef:ae.func};const Ft=e=>{let{children:t,style:i,className:s,calendarHeaderStyle:n,calendarHeaderClassName:o}=e;/*#__PURE__*/return r.jsx(Wt,{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:ae.object,children:ae.node,className:ae.string,calendarHeaderStyle:ae.object,calendarHeaderClassName:ae.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 ve(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:ae.func.isRequired,unit:ae.string.isRequired,timeSteps:ae.object.isRequired,visibleTimeStart:ae.number.isRequired,visibleTimeEnd:ae.number.isRequired,canvasTimeStart:ae.number.isRequired,canvasTimeEnd:ae.number.isRequired,canvasWidth:ae.number.isRequired,showPeriod:ae.func.isRequired,headerData:ae.object,getLeftOffsetFromDate:ae.func.isRequired,height:ae.number.isRequired};const Kt=e=>{let{children:t,unit:i,headerData:s,height:n}=e;/*#__PURE__*/return r.jsx(Je,{children:e=>{let{getTimelineState:o,showPeriod:a,getLeftOffsetFromDate:l}=e;const d=o();/*#__PURE__*/return r.jsx(Wt,{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:ae.func.isRequired,unit:ae.string,headerData:ae.object,height:ae.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=ye(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:he(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:c,unitProp:u,headerData:h}}=e;/*#__PURE__*/return r.jsx("div",{"data-testid":"dateHeader",className:d,...s({style:a}),children:t.map(e=>{const t=c([e.startTime,e.endTime],i,e.labelWidth);/*#__PURE__*/return r.jsx(At,{unit:i,interval:e,showPeriod:o,intervalText:t,primaryHeader:"primaryHeader"===u,getIntervalProps:n,intervalRenderer:l,headerData:h},`label-${e.startTime.valueOf()}`)})})}At.propTypes={intervalRenderer:ae.func,unit:ae.string.isRequired,interval:ae.object.isRequired,showPeriod:ae.func.isRequired,intervalText:ae.string.isRequired,primaryHeader:ae.bool.isRequired,getIntervalProps:ae.func.isRequired,headerData:ae.object};class Bt extends l.default.Component{constructor(){super(...arguments),this.getHeaderUnit=()=>"primaryHeader"===this.props.unit?ye(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:ae.string,style:ae.object,className:ae.string,timelineUnit:ae.string,labelFormat:ae.oneOfType([ae.func,ae.objectOf(ae.objectOf(ae.string)),ae.string]).isRequired,intervalRenderer:ae.func,headerData:ae.object,height:ae.number};const Vt=e=>{let{unit:t,labelFormat:i,style:s,className:n,intervalRenderer:o,headerData:a,height:l}=e;/*#__PURE__*/return r.jsx(Je,{children:e=>{let{getTimelineState:d}=e;const c=d();/*#__PURE__*/return r.jsx(Bt,{timelineUnit:c.timelineUnit,unit:t,labelFormat:i,style:s,className:n,intervalRenderer:o,headerData:a,height:l})}})};Vt.propTypes={style:ae.object,className:ae.string,unit:ae.string,labelFormat:ae.oneOfType([ae.func,ae.objectOf(ae.objectOf(ae.string)),ae.string]),intervalRenderer:ae.func,headerData:ae.object,height:ae.number},Vt.defaultProps={labelFormat:function(e,t,i,s){let r,[n,o]=e;return void 0===s&&(s=jt),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 be(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=ke(s),{dimensionItems:n,height:o,groupHeights:a,groupTops:l}=Ie(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(we(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=fe(s,r,ke(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?le(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=le(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=le(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=le(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]=De(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=ke(this.state.width),{dimensionItems:d,height:c,groupHeights:u,groupTops:h}=Ie(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=c,this.state.groupHeights=u,this.state.groupTops=h}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,we(i,s,a,r,n,e,t));else if(a){const i=ke(t.width);Object.assign(o,Ie(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(tt,{canvasTimeStart:e,canvasTimeEnd:t,canvasWidth:i,lineCount:de(this.props.groups),minUnit:s,timeSteps:n,height:o,verticalLineClassNamesForTime:this.props.verticalLineClassNamesForTime})}rows(e,t,i){/*#__PURE__*/return r.jsx(rt,{groups:i,canvasWidth:e,lineCount:de(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(Ae,{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(_e,{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(_e,{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,c,u){if(!this.props.children)return null;const h=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:c,timeSteps:u};return l.default.Children.map(h,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:c,visibleTimeEnd:u,canvasTimeStart:h,canvasTimeEnd:p}=this.state;let{dimensionItems:m,height:g,groupHeights:f,groupTops:v}=this.state;const b=u-c,y=ke(d),T=be(b,d,n),S=!!a||!!l;if(S){const i=Ie(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(Ze,{visibleTimeStart:c,visibleTimeEnd:u,canvasTimeStart:h,canvasTimeEnd:p,canvasWidth:y,showPeriod:this.showPeriod,timelineUnit:T,timelineWidth:this.state.width,children:/*#__PURE__*/r.jsx(gt,{children:/*#__PURE__*/r.jsx(Pt,{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(nt,{scrollRef:this.getScrollElementRef,width:d,height:g,onZoom:this.changeZoom,onWheelZoom:this.handleWheelZoom,traditionalZoom:o,onScroll:this.onScroll,isInteractingWithItem:S,children:/*#__PURE__*/r.jsxs(wt,{children:[this.columns(h,p,y,T,n,g),this.rows(y,f,t),this.items(h,b,p,y,T,m,f,v),this.childrenWithProps(h,p,y,m,f,v,g,c,u,T,n)]})}),s>0?this.rightSidebar(g,f):null]})]})})})})}}Xt.propTypes={groups:ae.oneOfType([ae.array,ae.object]).isRequired,items:ae.oneOfType([ae.array,ae.object]).isRequired,sidebarWidth:ae.number,rightSidebarWidth:ae.number,dragSnap:ae.number,minResizeWidth:ae.number,stickyHeader:ae.bool,lineHeight:ae.number,itemHeightRatio:ae.number,minZoom:ae.number,maxZoom:ae.number,clickTolerance:ae.number,canChangeGroup:ae.bool,canMove:ae.bool,canResize:ae.oneOf([!0,!1,"left","right","both"]),useResizeHandle:ae.bool,canSelect:ae.bool,stackItems:ae.bool,traditionalZoom:ae.bool,itemTouchSendsClick:ae.bool,horizontalLineClassNamesForGroup:ae.func,onItemMove:ae.func,onItemResize:ae.func,onItemClick:ae.func,onItemSelect:ae.func,onItemDeselect:ae.func,onCanvasClick:ae.func,onItemDoubleClick:ae.func,onItemContextMenu:ae.func,onCanvasDoubleClick:ae.func,onCanvasContextMenu:ae.func,onZoom:ae.func,onItemDrag:ae.func,handleSidebarResize:ae.object,moveResizeValidator:ae.func,itemRenderer:ae.func,groupRenderer:ae.func,className:ae.string,style:ae.object,keys:ae.shape({groupIdKey:ae.string,groupTitleKey:ae.string,groupLabelKey:ae.string,groupRightTitleKey:ae.string,itemIdKey:ae.string,itemTitleKey:ae.string,itemDivTitleKey:ae.string,itemGroupKey:ae.string,itemTimeStartKey:ae.string,itemTimeEndKey:ae.string}),headerRef:ae.func,scrollRef:ae.func,timeSteps:ae.shape({second:ae.number,minute:ae.number,hour:ae.number,day:ae.number,month:ae.number,year:ae.number}),defaultTimeStart:ae.object,defaultTimeEnd:ae.object,visibleTimeStart:ae.number,visibleTimeEnd:ae.number,onTimeChange:ae.func,onBoundsChange:ae.func,selected:ae.array,headerLabelFormats:ae.shape({yearShort:ae.string,yearLong:ae.string,monthShort:ae.string,monthMedium:ae.string,monthMediumLong:ae.string,monthLong:ae.string,dayShort:ae.string,dayLong:ae.string,hourShort:ae.string,hourMedium:ae.string,hourMediumLong:ae.string,hourLong:ae.string}),subHeaderLabelFormats:ae.shape({yearShort:ae.string,yearLong:ae.string,monthShort:ae.string,monthMedium:ae.string,monthLong:ae.string,dayShort:ae.string,dayMedium:ae.string,dayMediumLong:ae.string,dayLong:ae.string,hourShort:ae.string,hourLong:ae.string,minuteShort:ae.string,minuteLong:ae.string}),resizeDetector:ae.shape({addListener:ae.func,removeListener:ae.func}),verticalLineClassNamesForTime:ae.func,children:ae.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:ae.func};class Zt extends l.default.Component{componentDidMount(){const{unsubscribe:e,getMarker:t}=this.props.subscribeMarker({type:"Today",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:ae.func.isRequired,updateMarker:ae.func.isRequired,interval:ae.number,children:ae.func},Zt.defaultProps={interval:1e4};const Jt=e=>/*#__PURE__*/r.jsx(ft,{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:"Custom",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:ae.func.isRequired,updateMarker:ae.func.isRequired,children:ae.func,date:ae.number.isRequired};const ei=e=>/*#__PURE__*/r.jsx(ft,{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:"Cursor",renderer:this.props.children});this.unsubscribe=e}componentWillUnmount(){null!=this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}render(){return null}}.propTypes={subscribeMarker:ae.func.isRequired,children:ae.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")]})]})]})})};var ii={groupIdKey:"id",groupTitleKey:"title",groupRightTitleKey:"rightTitle",itemIdKey:"id",itemTitleKey:"title",itemDivTitleKey:"title",itemGroupKey:"group",itemTimeStartKey:"start",itemTimeEndKey:"end",groupLabelKey:"title"},si=/*#__PURE__*/function(e){var t,i;function s(t){var i;(i=e.call(this,t)||this).getTaskBackground=function(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"}},i.buildData=function(e,t,s,r,n,o){if(e&&Array.isArray(e))for(var a,l=v(e);!(a=l()).done;){var c=a.value,u=c.resource.id+" - "+c.resource.type;t.has(u)||t.set(u,{id:t.size,title:c.resource?c.resource.title:"",hasChildren:c.planParts&&c.planParts.length>0,parent:n,open:r<1,show:r<2,level:r});var h=d.default("SessionPlan"===c.type?c["start-time"]:c["planned-start-time"]).add("1","year").add("2","month").add("27","day"),p=d.default("SessionPlan"===c.type?c["end-time"]:c["planned-end-time"]).add("1","year").add("2","month").add("27","day"),m=s.length+1;s.push({id:m,group:t.get(u).id,title:c.title,start:h,end:p,parent:o,className:"item",bgColor:i.getTaskBackground(c),color:"#fff",selectedBgColor:"#FFC107",selectedColor:"#000",draggingBgColor:"#f00",highlightBgColor:"#FFA500",highlight:!1,canMove:r>1&&3!==r,canResize:"both",minimumDuration:!1}),c.planParts&&c.planParts.length>0&&i.buildData(c.planParts,t,s,r+1,t.get(u).id,m)}},i.handleItemMove=function(e,t,s){var r=i.state,n=r.items,o=r.groups.filter(function(e){return e.show})[s];i.addUndoItem(n.find(function(t){return t.id===e})),i.setState({items:n.map(function(i){return i.id===e?Object.assign({},i,{start:d.default(t),end:d.default(t+(i.end-i.start)),group:o.id}):i}),draggedItem:void 0})},i.handleItemResize=function(e,t,s){var r=i.state.items,n=r.find(function(t){return t.id===e});i.addUndoItem(n);var o=d.default("left"===s?t:n.start),a=d.default("left"===s?n.end:t);i.isLessThanMinimumDuration(n,o,a)?"left"===s?o=a.clone().subtract(n.minimumDuration,"minute"):a=o.clone().add(n.minimumDuration,"minute"):i.isMoreThanMaximumDuration(n,o,a)&&("left"===s?o=a.clone().subtract(n.maximumDuration,"minute"):a=o.clone().add(n.maximumDuration,"minute")),n.start=o,n.end=a,i.setState({items:r,draggedItem:void 0})},i.handleItemDrag=function(e){var t=e.eventType,s=e.itemId,r=e.time,n=e.edge,o=e.newGroupOrder,a=i.state.draggedItem?i.state.draggedItem.item:void 0;if(a||(a=i.state.items.find(function(e){return e.id===s})),"resize"===t){var l=a.start,c=a.end;"left"===n?l=d.default(r):c=d.default(r),i.isLessThanMinimumDuration(a,l,c)&&(r="left"===n?c.clone().subtract(a.minimumDuration,"minute"):l.clone().add(a.minimumDuration,"minute"))}var u=i.state.groups.filter(function(e){return e.show})[o];i.setState({draggedItem:{item:a,group:u,time:r}}),i.showItemInfo(a,u,{type:t,side:n,time:r})},i.isLessThanMinimumDuration=function(e,t,i){return!!e.minimumDuration&&d.default.duration(i.diff(t)).asMinutes()<e.minimumDuration},i.isMoreThanMaximumDuration=function(e,t,i){return!!e.maximumDuration&&d.default.duration(i.diff(t)).asMinutes()>e.maximumDuration},i.toggleGroup=function(e){var t=i.state.groups,s=t.find(function(t){return t.id===e});s.open=!s.open,t.filter(function(t){return t.parent===e}).forEach(function(e){e.show=s.open,s.open||(e.open=!1,t=i.closeChildren(t,e.id))}),i.setState({groups:t})},i.closeChildren=function(e,t){return e.filter(function(e){return e.parent===t}).forEach(function(t){t.show=!1,t.hasChildren&&(t.open=!1,e=i.closeChildren(e,t.id))}),e},i.highlightChildren=function(e){for(var t,s=v(i.state.items.filter(function(t){return t.parent===e.id}));!(t=s()).done;){var r=t.value;r.highlight=!0,i.highlightChildren(r)}},i.removeHighlight=function(){for(var e,t=i.state.items.filter(function(e){return e.highlight}),s=v(t);!(e=s()).done;)e.value.highlight=!1},i.itemDeselected=function(){i.removeHighlight(),i.setState({items:i.state.items,popup:{open:!1}})},i.showItemInfo=function(e,t,s){if(e){var r=e.start,n=e.end;s&&("resize"===s.type?"left"===s.side?r=s.time:n=s.time:"move"===s.type&&(n=s.time+(e.end-e.start),r=s.time)),i.setState({popup:{open:!0,item:m({},e,{start:r,end:n}),group:null!=t?t:i.state.groups.find(function(t){return t.id===e.group}),custom:i.state.popup.custom}})}},i.onSidebarDown=function(e){0===e.button&&(e.stopPropagation(),e.preventDefault(),i.setState({sidebarWidth:e.clientX-document.querySelector(".rct-sidebar").getBoundingClientRect().left,sidebarResizing:!0}))},i.onSidebarMove=function(e){if(e.stopPropagation(),e.preventDefault(),i.state.sidebarResizing){var t=e.clientX-document.querySelector(".rct-sidebar").getBoundingClientRect().left;t<10||i.setState({sidebarWidth:t})}},i.onSidebarUp=function(e){e.stopPropagation(),e.preventDefault(),i.setState({sidebarResizing:!1})},i.addUndoItem=function(e){i.redoActions=[],i.actions.push(Object.assign({},e))},i.undo=function(){if(!(i.actions.length<=0)){var e=i.state.items,t=i.actions.pop();i.redoActions.push(e.find(function(e){return e.id===t.id})),i.setState({items:e.map(function(e){return e.id===t.id?Object.assign({},t):e}),draggedItem:void 0})}},i.redo=function(){if(!(i.redoActions.length<=0)){var e=i.state.items,t=i.redoActions.pop();i.actions.push(e.find(function(e){return e.id===t.id})),i.setState({items:e.map(function(e){return e.id===t.id?Object.assign({},t):e}),draggedItem:void 0})}},i.focusItems=function(e){if(e&&Array.isArray(e)&&!(e.length<=0)){i.removeHighlight();var t=e[0].start.clone(),s=e[0].end.clone();e[0].highlight=!0,e.shift();for(var r,n=v(e);!(r=n()).done;){var o=r.value;t.diff(o.start)>0&&(t=o.start.clone()),s.diff(o.end)<0&&(s=o.end.clone()),o.highlight=!0}t.subtract(1,"hour"),s.add(2,"hour"),i.timeline.current.updateScrollCanvas(t.valueOf(),s.valueOf())}},i.itemRenderer=function(e){var t=e.item,s=e.itemContext,n=e.getItemProps,o=(0,e.getResizeProps)(),a=o.left,l=o.right,d=t.bgColor,c=t.color;return s.selected?(c=t.selectedColor,d=s.dragging?t.draggingBgColor:t.selectedBgColor):t.highlight&&(d=t.highlightBgColor),s.dimensions.width<20&&(s.dimensions.width=20),/*#__PURE__*/r.jsxs("div",m({},n({style:{background:d,color:c,minWidth:20},onMouseDown:function(){t.selected=!0,i.removeHighlight(),i.highlightChildren(t),i.showItemInfo(i.state.items.find(function(e){return e.id===t.id})),i.setState({items:i.state.items})}}),{id:"item-"+t.id,className:t.canMove?"movable-item":"static-item",children:[!s.selected||"both"!==t.canResize&&"left"!==t.canResize?"":s.useResizeHandle?/*#__PURE__*/r.jsx("div",m({},a)):/*#__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:s.dimensions.height,overflow:"hidden",paddingLeft:3,textOverflow:"ellipsis",whiteSpace:"nowrap",zIndex:"100",position:"relative"},children:s.title}),t.dependency?/*#__PURE__*/r.jsx(p.default,{start:"item-"+t.dependency,end:"item-"+t.id,strokeWidth:2,headSize:6}):"",!s.selected||"both"!==t.canResize&&"right"!==t.canResize?"":s.useResizeHandle?/*#__PURE__*/r.jsx("div",m({},l)):/*#__PURE__*/r.jsx("span",{style:{cursor:"ew-resize",width:3,zIndex:1e3,position:"absolute",top:0,right:-3,height:"100%"}})]}))},i.actions=[],i.redoActions=[];var s=t.items||[],n=t.groups||[];Array.isArray(s)||(s=[]),Array.isArray(n)||(n=[]);for(var o,a=v(s);!(o=a()).done;){var c=o.value;c.parent=null!=c.parent?c.parent:null,c.className=null!=c.className?c.className:"item",c.bgColor=null!=c.bgColor?c.bgColor:"#2196F3",c.color=null!=c.color?c.color:"#fff",c.selectedBgColor=null!=c.selectedBgColor?c.selectedBgColor:"#FFC107",c.selectedColor=null!=c.selectedColor?c.selectedColor:"#000",c.draggingBgColor=null!=c.draggingBgColor?c.draggingBgColor:"#f00",c.highlightBgColor=null!=c.highlightBgColor?c.highlightBgColor:"#FFA500",c.highlight=null!=c.highlight&&c.highlight,c.canMove=null==c.canMove||c.canMove,c.canResize=null!=c.canResize?c.canResize:"both",c.minimumDuration=null!=c.minimumDuration&&c.minimumDuration,c.maximumDuration=null!=c.maximumDuration&&c.maximumDuration}n=n.sort(function(e,t){return e.level-t.level}).reduce(function(e,t){var i=e.find(function(e){return e.id===t.parent}),s=e.indexOf(i),r=e.filter(function(e){return e.parent===t.parent}).length;return e.splice(s=-1!==s?s+r+1:e.length,0,t),e},[]);var u=s.length>0?d.default(s[0].start).add(-12,"hour"):d.default(),h=u.clone().add(7,"day"),g={open:!1,item:null,custom:null!=t.popup&&t.popup},f=[];return t.milestones&&(f=t.milestones),i.timeline=/*#__PURE__*/l.default.createRef(),i.state={groups:n,items:s,defaultTimeStart:u,defaultTimeEnd:h,sidebarWidth:250,sidebarResizing:!1,popup:g,milestones:f},i}i=e,(t=s).prototype=Object.create(i.prototype),t.prototype.constructor=t,g(t,i);var n=s.prototype;return n.onTimeChange=function(e,t,i,s){i(e,t)},n.render=function(){var e=this,t=this.state,i=t.items,s=t.defaultTimeStart,n=t.defaultTimeEnd,o=t.sidebarWidth,a=t.popup,l=t.milestones,d=t.groups.filter(function(e){return e.show}).map(function(t){return Object.assign({},t,{title:t.hasChildren?/*#__PURE__*/r.jsxs("div",{onClick:function(){return e.toggleGroup(t.id)},style:{cursor:"pointer",paddingLeft:20*t.level},children:[t.open?"[-]":"[+]"," ",t.title]}):/*#__PURE__*/r.jsx("div",{style:{paddingLeft:20*t.level},children:t.title})})});/*#__PURE__*/return r.jsxs("div",{children:[/*#__PURE__*/r.jsxs(Xt,{ref:this.timeline,groups:d,items:i,keys:ii,fullUpdate:!0,itemTouchSendsClick:!1,stackItems:!0,itemHeightRatio:.75,canMove:!0,canResize:"both",sidebarWidth:o,defaultTimeStart:s,defaultTimeEnd:n,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}),l.length>0?l.map(function(e,t){/*#__PURE__*/return r.jsx(ei,{date:e.date.valueOf(),children:function(t){var i=m({},t.styles,{backgroundColor:e.color?e.color:"#000",width:"3px",pointerEvents:"auto",zIndex:1e3});/*#__PURE__*/return r.jsx("div",{style:i,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"})]}),a.open&&(a.custom?a.custom({item:a.item,group:a.group}):/*#__PURE__*/r.jsx(ti,{item:a.item,group:a.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"]})]})]})},s}(e.Component);si.propTypes={items:ae.arrayOf(ae.shape({id:ae.number.isRequired,group:ae.number.isRequired,title:ae.string,start:ae.instanceOf(d.default).isRequired,end:ae.instanceOf(d.default).isRequired,parent:ae.number,className:ae.string,bgColor:ae.string,color:ae.string,selectedBgColor:ae.string,selectedColor:ae.string,draggingBgColor:ae.string,highlightBgColor:ae.string,highlight:ae.bool,canMove:ae.bool,canResize:ae.oneOf(["both","left","right",!1]),minimumDuration:ae.oneOfType([ae.number,ae.oneOf([!1])]),maximumDuration:ae.oneOfType([ae.number,ae.oneOf([!1])])})).isRequired,groups:ae.arrayOf(ae.shape({id:ae.number.isRequired,title:ae.string.isRequired,hasChildren:ae.bool,parent:ae.number,open:ae.bool.isRequired,show:ae.bool.isRequired,level:ae.number.isRequired})).isRequired,popup:ae.elementType,milestones:ae.arrayOf(ae.shape({date:ae.instanceOf(d.default).isRequired,label:ae.string,color:ae.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},module.exports=si;
//# sourceMappingURL=PlanningTool.js.map