!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("Gantt",[],e):"object"==typeof exports?exports.Gantt=e():t.Gantt=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return t[r].call(a.exports,a,a.exports,e),a.loaded=!0,a.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function a(t,e,n){function r(){a(),O.change_view_mode=o,O.unselect_all=X,O.view_is=U,O.get_bar=j,O.trigger_event=G,o(O.config.view_mode)}function a(){var r={header_height:50,column_width:30,step:24,view_modes:["Quarter Day","Half Day","Day","Week","Month"],bar:{height:20},arrow:{curve:5},padding:18,view_mode:"Day",date_format:"YYYY-MM-DD"};O.element=t,O._tasks=e,O.config=Object.assign({},r,n),O._bars=[],O._arrows=[],O.element_groups={}}function o(t){y(t),d(),g(),G("view_change",[t])}function d(){c(),l(),f(),u()}function c(){O.tasks=O._tasks.map(function(t,e){if(t._start=moment(t.start,O.config.date_format),t._end=moment(t.end,O.config.date_format),t._index=e,t.start||t.end||(t._start=moment().startOf("day"),t._end=moment().startOf("day").add(2,"days")),!t.start&&t.end&&(t._start=t._end.clone().add(-2,"days")),t.start&&!t.end&&(t._end=t._start.clone().add(2,"days")),t.start&&t.end||(t.invalid=!0),"string"==typeof t.dependencies||!t.dependencies){var n=[];t.dependencies&&(n=t.dependencies.split(",").map(function(t){return t.trim()}).filter(function(t){return t})),t.dependencies=n}return t})}function l(){O.dependency_map={};var t=!0,e=!1,n=void 0;try{for(var r,a=O.tasks[Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var o=r.value,i=!0,d=!1,s=void 0;try{for(var c,l=o.dependencies[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var f=c.value;O.dependency_map[f]=O.dependency_map[f]||[],O.dependency_map[f].push(o.id)}}catch(u){d=!0,s=u}finally{try{!i&&l["return"]&&l["return"]()}finally{if(d)throw s}}}}catch(u){e=!0,n=u}finally{try{!t&&a["return"]&&a["return"]()}finally{if(e)throw n}}}function f(){var t=!0,e=!1,n=void 0;try{for(var r,a=O.tasks[Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var o=r.value;(!O.gantt_start||o._startO.gantt_end)&&(O.gantt_end=o._end)}}catch(i){e=!0,n=i}finally{try{!t&&a["return"]&&a["return"]()}finally{if(e)throw n}}p(),_()}function u(){O.canvas=Snap(O.element).addClass("gantt")}function g(){h(),v(),x(),M(),T(),S(),W(),m(),w(),Y()}function h(){O.canvas.clear(),O._bars=[],O._arrows=[]}function p(){U(["Quarter Day","Half Day"])?(O.gantt_start=O.gantt_start.clone().subtract(7,"day"),O.gantt_end=O.gantt_end.clone().add(7,"day")):U("Month")?(O.gantt_start=O.gantt_start.clone().startOf("year"),O.gantt_end=O.gantt_end.clone().endOf("month").add(1,"year")):(O.gantt_start=O.gantt_start.clone().startOf("month").subtract(1,"month"),O.gantt_end=O.gantt_end.clone().endOf("month").add(1,"month"))}function _(){O.dates=[];for(var t=null;null===t||t=1&&s.date()<8&&(c+=" thick"),U("Month")&&s.month()%3===0&&(c+=" thick"),O.canvas.path(Snap.format("M {x} {y} v {height}",{x:t,y:e,height:n})).addClass(c).appendTo(O.element_groups.grid),t+=U("Month")?s.daysInMonth()*O.config.column_width/30:O.config.column_width}}catch(l){a=!0,o=l}finally{try{!r&&d["return"]&&d["return"]()}finally{if(a)throw o}}}function $(){if(U("Day")){var t=moment().startOf("day").diff(O.gantt_start,"hours")/O.config.step*O.config.column_width,e=0,n=O.config.column_width,r=(O.config.bar.height+O.config.padding)*O.tasks.length+O.config.header_height+O.config.padding/2;O.canvas.rect(t,e,n,r).addClass("today-highlight").appendTo(O.element_groups.grid)}}function M(){var t=!0,e=!1,n=void 0;try{for(var r,a=E()[Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var o=r.value;if(O.canvas.text(o.lower_x,o.lower_y,o.lower_text).addClass("lower-text").appendTo(O.element_groups.date),o.upper_text){var i=O.canvas.text(o.upper_x,o.upper_y,o.upper_text).addClass("upper-text").appendTo(O.element_groups.date);i.getBBox().x2>O.element_groups.grid.getBBox().width&&i.remove()}}}catch(d){e=!0,n=d}finally{try{!t&&a["return"]&&a["return"]()}finally{if(e)throw n}}}function E(){var t=null,e=O.dates.map(function(e,n){var r=D(e,t,n);return t=e,r});return e}function D(t,e,n){e||(e=t.clone().add(1,"year"));var r={"Quarter Day_lower":t.format("HH"),"Half Day_lower":t.format("HH"),Day_lower:t.date()!==e.date()?t.format("D"):"",Week_lower:"Week "+t.format("W"),Month_lower:t.format("MMMM"),"Quarter Day_upper":t.date()!==e.date()?t.format("D MMM"):"","Half Day_upper":t.date()!==e.date()?t.format("D MMM"):"",Day_upper:t.month()!==e.month()?t.format("MMMM"):"",Week_upper:t.month()!==e.month()?t.format("MMMM"):"",Month_upper:t.year()!==e.year()?t.format("YYYY"):""},a={x:n*O.config.column_width,lower_y:O.config.header_height,upper_y:O.config.header_height-25},o={"Quarter Day_lower":4*O.config.column_width/2,"Quarter Day_upper":0,"Half Day_lower":2*O.config.column_width/2,"Half Day_upper":0,Day_lower:O.config.column_width/2,Day_upper:30*O.config.column_width/2,Week_lower:O.config.column_width/2,Week_upper:4*O.config.column_width/2,Month_lower:t.daysInMonth()*O.config.column_width/30/2,Month_upper:12*O.config.column_width/2};return{upper_text:r[O.config.view_mode+"_upper"],lower_text:r[O.config.view_mode+"_lower"],upper_x:a.x+o[O.config.view_mode+"_upper"],upper_y:a.upper_y,lower_x:a.x+o[O.config.view_mode+"_lower"],lower_y:a.lower_y}}function S(){O._arrows=[];var t=!0,e=!1,n=void 0;try{for(var r,a=function(){var t=r.value,e=[];e=t.dependencies.map(function(e){var n=H(e);if(n){var r=(0,s["default"])(O,O._bars[n._index],O._bars[t._index]);return O.element_groups.arrow.add(r.element),r}}),O._arrows=O._arrows.concat(e)},o=O.tasks[Symbol.iterator]();!(t=(r=o.next()).done);t=!0)a()}catch(i){e=!0,n=i}finally{try{!t&&o["return"]&&o["return"]()}finally{if(e)throw n}}}function T(){O._bars=O.tasks.map(function(t){var e=(0,i["default"])(O,t);return O.element_groups.bar.add(e.group),e})}function W(){var t=!0,e=!1,n=void 0;try{for(var r,a=function(){var t=r.value;t.arrows=O._arrows.filter(function(e){return e.from_task.task.id===t.task.id||e.to_task.task.id===t.task.id})},o=O._bars[Symbol.iterator]();!(t=(r=o.next()).done);t=!0)a()}catch(i){e=!0,n=i}finally{try{!t&&o["return"]&&o["return"]()}finally{if(e)throw n}}}function Y(){O.element_groups.grid.click(function(){X(),O.element_groups.details.selectAll(".details-wrapper").forEach(function(t){return t.addClass("hide")})})}function X(){O.canvas.selectAll(".bar-wrapper").forEach(function(t){t.removeClass("active")})}function U(t){if("string"==typeof t)return O.config.view_mode===t;if(Array.isArray(t)){var e=!0,n=!1,r=void 0;try{for(var a,o=t[Symbol.iterator]();!(e=(a=o.next()).done);e=!0){var i=a.value;if(O.config.view_mode===i)return!0}}catch(d){n=!0,r=d}finally{try{!e&&o["return"]&&o["return"]()}finally{if(n)throw r}}return!1}}function H(t){return O.tasks.find(function(e){return e.id===t})}function j(t){return O._bars.find(function(e){return e.task.id===t})}function G(t,e){O.config["on_"+t]&&O.config["on_"+t].apply(null,e)}var O={};return r(),O}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=a,n(1);var o=n(5),i=r(o),d=n(6),s=r(d);t.exports=e["default"]},function(t,e,n){var r=n(2);"string"==typeof r&&(r=[[t.id,r,""]]);n(4)(r,{});r.locals&&(t.exports=r.locals)},function(t,e,n){e=t.exports=n(3)(),e.push([t.id,".gantt .grid-background{fill:none}.gantt .grid-header{fill:#fff;stroke:#e0e0e0;stroke-width:1.4}.gantt .grid-row{fill:#fff}.gantt .grid-row:nth-child(2n){fill:#f5f5f5}.gantt .row-line{stroke:#ebeff2}.gantt .tick{stroke:#e0e0e0;stroke-width:.2}.gantt .tick.thick{stroke-width:.4}.gantt .today-highlight{fill:#fcf8e3;opacity:.5}.gantt #arrow{fill:none;stroke:#666;stroke-width:1.4}.gantt .bar{fill:#b8c2cc;stroke:#8d99a6;stroke-width:0;transition:stroke-width .3s ease}.gantt .bar-progress{fill:#a3a3ff}.gantt .bar-invalid{fill:transparent;stroke:#8d99a6;stroke-width:1;stroke-dasharray:5}.gantt .bar-invalid~.bar-label{fill:#555}.gantt .bar-label{fill:#fff;dominant-baseline:central;text-anchor:middle;font-size:12px;font-weight:lighter;letter-spacing:.8px}.gantt .bar-label.big{fill:#555;text-anchor:start}.gantt .handle{fill:#ddd;cursor:ew-resize;opacity:0;visibility:hidden;transition:opacity .3s ease}.gantt .bar-wrapper{cursor:pointer}.gantt .bar-wrapper:hover .bar{stroke-width:2}.gantt .bar-wrapper:hover .handle{visibility:visible;opacity:1}.gantt .bar-wrapper.active .bar{stroke-width:2}.gantt .primary-text,.gantt .secondary-text{font-size:12px;text-anchor:middle}.gantt .primary-text{fill:#555}.gantt .secondary-text{fill:#333}.gantt #details{font-size:14}.gantt #details .details-container{stroke:#e0e0e0;stroke-width:1.1;fill:#fff}.gantt #details .details-heading{fill:#333;font-weight:500}.gantt #details .details-body{fill:#555}.gantt .hide{display:none}","",{version:3,sources:["/./src/src/gantt.scss"],names:[],mappings:"AAYA,wBAGE,SAAU,CAHZ,oBAME,UACA,eACA,gBAAiB,CARnB,iBAWE,SAAa,CAXf,+BAcE,YAvBgB,CASlB,iBAiBE,cAzB0B,CAQ5B,aAoBE,eACA,eAAiB,CArBnB,mBAuBG,eAAiB,CAvBpB,wBA2BE,aACA,UAAY,CA5Bd,cAgCE,UACA,YACA,gBAAiB,CAlCnB,YAsCE,aACA,eACA,eACA,gCAAiC,CAzCnC,qBA4CE,YA/CY,CAGd,oBA+CE,iBACA,eACA,eACA,kBAAmB,CAlDrB,+BAqDG,SA1Dc,CAKjB,kBAyDE,UACA,0BACA,mBACA,eACA,oBACA,mBAAqB,CA9DvB,sBAiEG,UACA,iBAAkB,CAlErB,eAuEE,UACA,iBACA,UACA,kBACA,2BAA4B,CA3E9B,oBA+EE,cAAe,CA/EjB,+BAmFI,cAAe,CAnFnB,kCAuFI,mBACA,SAAU,CAxFd,gCA8FI,cAAe,CA9FnB,4CAoGE,eACA,kBAAmB,CArGrB,qBAwGE,SA7Ge,CAKjB,uBA2GE,SA/Ge,CAIjB,gBA+GE,YAAa,CA/Gf,mCAkHG,eACA,iBACA,SAAU,CApHb,iCAuHG,UACA,eAAgB,CAxHnB,8BA2HG,SAhIc,CAKjB,aAgIE,YAAa,CACb",file:"gantt.scss",sourcesContent:["$bar-color: #b8c2cc;\n$bar-stroke: #8D99A6;\n$border-color: #e0e0e0;\n$light-bg: #f5f5f5;\n$light-border-color: #ebeff2;\n$light-yellow: #fcf8e3;\n$text-muted: #666;\n$text-light: #555;\n$text-color: #333;\n$blue: #a3a3ff;\n$handle-color: #ddd;\n\n.gantt {\n\n\t.grid-background {\n\t\tfill: none;\n\t}\n\t.grid-header {\n\t\tfill: #ffffff;\n\t\tstroke: $border-color;\n\t\tstroke-width: 1.4;\n\t}\n\t.grid-row {\n\t\tfill: #ffffff;\n\t}\n\t.grid-row:nth-child(even) {\n\t\tfill: $light-bg;\n\t}\n\t.row-line {\n\t\tstroke: $light-border-color;\n\t}\n\t.tick {\n\t\tstroke: $border-color;\n\t\tstroke-width: 0.2;\n\t\t&.thick {\n\t\t\tstroke-width: 0.4;\n\t\t}\n\t}\n\t.today-highlight {\n\t\tfill: $light-yellow;\n\t\topacity: 0.5;\n\t}\n\n\t#arrow {\n\t\tfill: none;\n\t\tstroke: $text-muted;\n\t\tstroke-width: 1.4;\n\t}\n\n\t.bar {\n\t\tfill: $bar-color;\n\t\tstroke: $bar-stroke;\n\t\tstroke-width: 0;\n\t\ttransition: stroke-width .3s ease;\n\t}\n\t.bar-progress {\n\t\tfill: $blue;\n\t}\n\t.bar-invalid {\n\t\tfill: transparent;\n\t\tstroke: $bar-stroke;\n\t\tstroke-width: 1;\n\t\tstroke-dasharray: 5;\n\n\t\t&~.bar-label {\n\t\t\tfill: $text-light;\n\t\t}\n\t}\n\t.bar-label {\n\t\tfill: #fff;\n\t\tdominant-baseline: central;\n\t\ttext-anchor: middle;\n\t\tfont-size: 12px;\n\t\tfont-weight: lighter;\n\t\tletter-spacing: 0.8px;\n\n\t\t&.big {\n\t\t\tfill: $text-light;\n\t\t\ttext-anchor: start;\n\t\t}\n\t}\n\n\t.handle {\n\t\tfill: $handle-color;\n\t\tcursor: ew-resize;\n\t\topacity: 0;\n\t\tvisibility: hidden;\n\t\ttransition: opacity .3s ease;\n\t}\n\n\t.bar-wrapper {\n\t\tcursor: pointer;\n\n\t\t&:hover {\n\t\t\t.bar {\n\t\t\t\tstroke-width: 2;\n\t\t\t}\n\n\t\t\t.handle {\n\t\t\t\tvisibility: visible;\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t&.active {\n\t\t\t.bar {\n\t\t\t\tstroke-width: 2;\n\t\t\t}\n\t\t}\n\t}\n\n\t.primary-text, .secondary-text {\n\t\tfont-size: 12px;\n\t\ttext-anchor: middle;\n\t}\n\t.primary-text {\n\t\tfill: $text-light;\n\t}\n\t.secondary-text {\n\t\tfill: $text-color;\n\t}\n\n\t#details {\n\t\tfont-size: 14;\n\n\t\t.details-container {\n\t\t\tstroke: $border-color;\n\t\t\tstroke-width: 1.1;\n\t\t\tfill: #fff;\n\t\t}\n\t\t.details-heading {\n\t\t\tfill: $text-color;\n\t\t\tfont-weight: 500;\n\t\t}\n\t\t.details-body {\n\t\t\tfill: $text-light;\n\t\t}\n\t}\n\n\t.hide {\n\t\tdisplay: none;\n\t}\n}"],sourceRoot:"webpack://"}])},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e=0&&m.splice(e,1)}function d(t){var e=document.createElement("style");return e.type="text/css",o(t,e),e}function s(t){var e=document.createElement("link");return e.rel="stylesheet",o(t,e),e}function c(t,e){var n,r,a;if(e.singleton){var o=y++;n=v||(v=d(e)),r=l.bind(null,n,o,!1),a=l.bind(null,n,o,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=s(e),r=u.bind(null,n),a=function(){i(n),n.href&&URL.revokeObjectURL(n.href)}):(n=d(e),r=f.bind(null,n),a=function(){i(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else a()}}function l(t,e,n,r){var a=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=w(e,a);else{var o=document.createTextNode(a),i=t.childNodes;i[e]&&t.removeChild(i[e]),i.length?t.insertBefore(o,i[e]):t.appendChild(o)}}function f(t,e){var n=e.css,r=e.media;if(r&&t.setAttribute("media",r),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function u(t,e){var n=e.css,r=e.sourceMap;r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var a=new Blob([n],{type:"text/css"}),o=t.href;t.href=URL.createObjectURL(a),o&&URL.revokeObjectURL(o)}var g={},h=function(t){var e;return function(){return"undefined"==typeof e&&(e=t.apply(this,arguments)),e}},p=h(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),_=h(function(){return document.head||document.getElementsByTagName("head")[0]}),v=null,y=0,m=[];t.exports=function(t,e){e=e||{},"undefined"==typeof e.singleton&&(e.singleton=p()),"undefined"==typeof e.insertAt&&(e.insertAt="bottom");var n=a(t);return r(n,e),function(t){for(var o=[],i=0;ia.max_dx&&(t=a.max_dx),t=e},a);if(!c)return void(i=null);G(d,"x",a)}i&&i>=t.config.column_width&&G(d,"width",i),L(),R(),O(),I(),z()}function D(){N.group.click(function(){N.action_completed||(N.group.hasClass("active")&&t.trigger_event("click",[N.task]),t.unselect_all(),N.group.toggleClass("active"))})}function S(){var e=Y(),n=e.new_start_date,r=e.new_end_date;N.task._start=n,N.task._end=r,p(),t.trigger_event("date_change",[N.task,n,r])}function T(){var e=X();N.task.progress=e,p(),t.trigger_event("progress_change",[N.task,e])}function W(){N.action_completed=!0,setTimeout(function(){return N.action_completed=!1},2e3)}function Y(){var e=N.$bar,n=e.getX()/t.config.column_width,r=t.gantt_start.clone().add(n*t.config.step,"hours"),a=e.getWidth()/t.config.column_width,o=r.clone().add(a*t.config.step,"hours");return{new_start_date:r,new_end_date:o}}function X(){var t=N.$bar_progress.getWidth()/N.$bar.getWidth()*100;return parseInt(t,10)}function U(){var e=N.task._start.diff(t.gantt_start,"hours")/t.config.step*t.config.column_width;return t.view_is("Month")&&(e=N.task._start.diff(t.gantt_start,"days")*t.config.column_width/30),e}function H(){return t.config.header_height+t.config.padding+N.task._index*(N.height+t.config.padding)}function j(e){var n=e,r=void 0,a=void 0;return t.view_is("Week")?(r=e%(t.config.column_width/7),a=n-r+(rt.getWidth()?e.addClass("big").attr("x",t.getX()+t.getWidth()+5):e.removeClass("big").attr("x",t.getX()+t.getWidth()/2)}function R(){var t=N.$bar;N.handle_group.select(".handle.left").attr({x:t.getX()+1}),N.handle_group.select(".handle.right").attr({x:t.getEndX()-9}),N.group.select(".handle.progress").attr("points",u())}function I(){var t=!0,e=!1,n=void 0;try{for(var r,a=N.arrows[Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var o=r.value;o.update()}}catch(i){e=!0,n=i}finally{try{!t&&a["return"]&&a["return"]()}finally{if(e)throw n}}}function z(){var t=_(),e=t.x,n=t.y;N.details_box&&N.details_box.transform("t"+e+","+n)}var N={};return N.onstart=b,N.onmove=x,N.onstop=A,N.onmove_handle_left=k,N.onstop_handle_left=C,n(),N}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n,t.exports=e["default"]},function(t,e){"use strict";function n(t,e,n){function r(){d.from_task=e,d.to_task=n,a(),o()}function a(){d.start_x=e.$bar.getX()+e.$bar.getWidth()/2;for(var r=function(){return n.$bar.getX()e.$bar.getX()+t.config.padding};r();)d.start_x-=10;d.start_y=t.config.header_height+t.config.bar.height+(t.config.padding+t.config.bar.height)*e.task._index+t.config.padding,d.end_x=n.$bar.getX()-t.config.padding/2,d.end_y=t.config.header_height+t.config.bar.height/2+(t.config.padding+t.config.bar.height)*n.task._index+t.config.padding;var a=e.task._index>n.task._index;d.curve=t.config.arrow.curve,d.clockwise=a?1:0,d.curve_y=a?-d.curve:d.curve,d.offset=a?d.end_y+t.config.arrow.curve:d.end_y-t.config.arrow.curve,d.path=Snap.format("M {start_x} {start_y} V {offset} a {curve} {curve} 0 0 {clockwise} {curve} {curve_y} L {end_x} {end_y} m -5 -5 l 5 5 l -5 5",{start_x:d.start_x,start_y:d.start_y,end_x:d.end_x,end_y:d.end_y,offset:d.offset,curve:d.curve,clockwise:d.clockwise,curve_y:d.curve_y}),n.$bar.getX()