2 lines
26 KiB
JavaScript
2 lines
26 KiB
JavaScript
!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define("gantt",[],n):"object"==typeof exports?exports.gantt=n():t.gantt=n()}(this,function(){return function(t){function n(r){if(e[r])return e[r].exports;var a=e[r]={exports:{},id:r,loaded:!1};return t[r].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}var e={};return n.m=t,n.c=e,n.p="",n(0)}([function(t,n,e){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function a(t,n,e){function r(){a(),o(G.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"};G.element=t,G._tasks=n,G.config=Object.assign({},r,e),G._bars=[],G._arrows=[],G.element_groups={}}function o(t){y(t),d(),g()}function d(){c(),f(),l(),u()}function c(){G.tasks=G._tasks.map(function(t,n){t._start=moment(t.start,G.config.date_format),t._end=moment(t.end,G.config.date_format),t._index=n,t.start||t.end?t.start?t._end=t._start.clone().add(2,"days"):t._start=t._end.clone().add(-2,"days"):(t._start=moment().startOf("day"),t._end=moment().startOf("day").add(2,"days")),t.start&&t.end||(t.invalid=!0);var e=void 0;return e=t.dependencies?t.dependencies.split(",").map(function(t){return t.trim()}).filter(function(t){return t}):[],t.dependencies=e,t})}function f(){G.dependency_map={};var t=!0,n=!1,e=void 0;try{for(var r,a=G.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,f=o.dependencies[Symbol.iterator]();!(i=(c=f.next()).done);i=!0){var l=c.value;G.dependency_map[l]=G.dependency_map[l]||[],G.dependency_map[l].push(o.id)}}catch(u){d=!0,s=u}finally{try{!i&&f["return"]&&f["return"]()}finally{if(d)throw s}}}}catch(u){n=!0,e=u}finally{try{!t&&a["return"]&&a["return"]()}finally{if(n)throw e}}}function l(){var t=!0,n=!1,e=void 0;try{for(var r,a=G.tasks[Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var o=r.value;(!G.gantt_start||o._start<G.gantt_start)&&(G.gantt_start=o._start),(!G.gantt_end||o._end>G.gantt_end)&&(G.gantt_end=o._end)}}catch(i){n=!0,e=i}finally{try{!t&&a["return"]&&a["return"]()}finally{if(n)throw e}}p(),_()}function u(){G.canvas=Snap(G.element).addClass("gantt")}function g(){h(),v(),A(),M(),E(),T(),Y(),W(),m(),w(),X()}function h(){G.canvas.clear(),G._bars=[],G._arrows=[]}function p(){H(["Quarter Day","Half Day"])?(G.gantt_start=G.gantt_start.clone().subtract(7,"day"),G.gantt_end=G.gantt_end.clone().add(7,"day")):H("Month")?(G.gantt_start=G.gantt_start.clone().startOf("year"),G.gantt_end=G.gantt_end.clone().endOf("month").add(1,"year")):(G.gantt_start=G.gantt_start.clone().startOf("month").subtract(1,"month"),G.gantt_end=G.gantt_end.clone().endOf("month").add(1,"month"))}function _(){G.dates=[];for(var t=null;null===t||t<G.gantt_end;)t=t?H("Month")?t.clone().add(1,"month"):t.clone().add(G.config.step,"hours"):G.gantt_start.clone(),G.dates.push(t)}function v(){var t=["grid","date","arrow","progress","bar","details"],n=!0,e=!1,r=void 0;try{for(var a,o=t[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var i=a.value;G.element_groups[i]=G.canvas.group().attr({id:i})}}catch(d){e=!0,r=d}finally{try{!n&&o["return"]&&o["return"]()}finally{if(e)throw r}}}function y(t){G.config.view_mode=t,"Day"===t?(G.config.step=24,G.config.column_width=38):"Half Day"===t?(G.config.step=12,G.config.column_width=38):"Quarter Day"===t?(G.config.step=6,G.config.column_width=38):"Week"===t?(G.config.step=168,G.config.column_width=140):"Month"===t&&(G.config.step=720,G.config.column_width=120)}function m(){var t=G.canvas.node.getBoundingClientRect().width,n=G.canvas.getBBox().width;t<n&&G.canvas.attr("width",n)}function w(){var t=document.querySelector(G.element).parentElement;if(t){var n=b().diff(G.gantt_start,"hours")/G.config.step*G.config.column_width;t.scrollLeft=n}}function b(){var t=G.tasks.reduce(function(t,n){return n._start.isSameOrBefore(t._start)?n:t});return t._start}function A(){x(),C(),k(),B(),$()}function x(){var t=G.dates.length*G.config.column_width,n=G.config.header_height+G.config.padding+(G.config.bar.height+G.config.padding)*G.tasks.length;G.canvas.rect(0,0,t,n).addClass("grid-background").appendTo(G.element_groups.grid),G.canvas.attr({height:n+G.config.padding,width:"100%"})}function k(){var t=G.dates.length*G.config.column_width,n=G.config.header_height+10;G.canvas.rect(0,0,t,n).addClass("grid-header").appendTo(G.element_groups.grid)}function C(){var t=G.canvas.group().appendTo(G.element_groups.grid),n=G.canvas.group().appendTo(G.element_groups.grid),e=G.dates.length*G.config.column_width,r=G.config.bar.height+G.config.padding,a=G.config.header_height+G.config.padding/2,o=!0,i=!1,d=void 0;try{for(var s,c=G.tasks[Symbol.iterator]();!(o=(s=c.next()).done);o=!0){s.value;G.canvas.rect(0,a,e,r).addClass("grid-row").appendTo(t),G.canvas.line(0,a+r,e,a+r).addClass("row-line").appendTo(n),a+=G.config.bar.height+G.config.padding}}catch(f){i=!0,d=f}finally{try{!o&&c["return"]&&c["return"]()}finally{if(i)throw d}}}function B(){var t=0,n=G.config.header_height+G.config.padding/2,e=(G.config.bar.height+G.config.padding)*G.tasks.length,r=!0,a=!1,o=void 0;try{for(var i,d=G.dates[Symbol.iterator]();!(r=(i=d.next()).done);r=!0){var s=i.value,c="tick";H("Day")&&1===s.day()&&(c+=" thick"),H("Week")&&s.date()>=1&&s.date()<8&&(c+=" thick"),H("Month")&&s.month()%3===0&&(c+=" thick"),G.canvas.path(Snap.format("M {x} {y} v {height}",{x:t,y:n,height:e})).addClass(c).appendTo(G.element_groups.grid),t+=H("Month")?s.daysInMonth()*G.config.column_width/30:G.config.column_width}}catch(f){a=!0,o=f}finally{try{!r&&d["return"]&&d["return"]()}finally{if(a)throw o}}}function $(){if(H("Day")){var t=moment().startOf("day").diff(G.gantt_start,"hours")/G.config.step*G.config.column_width,n=0,e=G.config.column_width,r=(G.config.bar.height+G.config.padding)*G.tasks.length+G.config.header_height+G.config.padding/2;G.canvas.rect(t,n,e,r).addClass("today-highlight").appendTo(G.element_groups.grid)}}function M(){var t=!0,n=!1,e=void 0;try{for(var r,a=D()[Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var o=r.value;if(G.canvas.text(o.lower_x,o.lower_y,o.lower_text).addClass("lower-text").appendTo(G.element_groups.date),o.upper_text){var i=G.canvas.text(o.upper_x,o.upper_y,o.upper_text).addClass("upper-text").appendTo(G.element_groups.date);i.getBBox().x2>G.element_groups.grid.getBBox().width&&i.remove()}}}catch(d){n=!0,e=d}finally{try{!t&&a["return"]&&a["return"]()}finally{if(n)throw e}}}function D(){var t=null,n=G.dates.map(function(n,e){var r=S(n,t,e);return t=n,r});return n}function S(t,n,e){n||(n=t.clone().add(1,"year"));var r={"Quarter Day_lower":t.format("HH"),"Half Day_lower":t.format("HH"),Day_lower:t.date()!==n.date()?t.format("D"):"",Week_lower:"Week "+t.format("W"),Month_lower:t.format("MMMM"),"Quarter Day_upper":t.date()!==n.date()?t.format("D MMM"):"","Half Day_upper":t.date()!==n.date()?t.format("D MMM"):"",Day_upper:t.month()!==n.month()?t.format("MMMM"):"",Week_upper:t.month()!==n.month()?t.format("MMMM"):"",Month_upper:t.year()!==n.year()?t.format("YYYY"):""},a={x:e*G.config.column_width,lower_y:G.config.header_height,upper_y:G.config.header_height-25},o={"Quarter Day_lower":4*G.config.column_width/2,"Quarter Day_upper":0,"Half Day_lower":2*G.config.column_width/2,"Half Day_upper":0,Day_lower:G.config.column_width/2,Day_upper:30*G.config.column_width/2,Week_lower:G.config.column_width/2,Week_upper:4*G.config.column_width/2,Month_lower:t.daysInMonth()*G.config.column_width/30/2,Month_upper:12*G.config.column_width/2};return{upper_text:r[G.config.view_mode+"_upper"],lower_text:r[G.config.view_mode+"_lower"],upper_x:a.x+o[G.config.view_mode+"_upper"],upper_y:a.upper_y,lower_x:a.x+o[G.config.view_mode+"_lower"],lower_y:a.lower_y}}function T(){var t=!0,n=!1,e=void 0;try{for(var r,a=function(){var t=r.value;G._arrows=t.dependencies.map(function(n){var e=U(n);if(e){var r=(0,s["default"])(G,G._bars[e._index],G._bars[t._index]);return G.element_groups.arrow.add(r.element),r}})},o=G.tasks[Symbol.iterator]();!(t=(r=o.next()).done);t=!0)a()}catch(i){n=!0,e=i}finally{try{!t&&o["return"]&&o["return"]()}finally{if(n)throw e}}}function E(){G._bars=G.tasks.map(function(t){var n=(0,i["default"])(G,t);return G.element_groups.bar.add(n.group),n})}function Y(){var t=!0,n=!1,e=void 0;try{for(var r,a=function(){var t=r.value;t.arrows=G._arrows.filter(function(n){return n.from_task.task.id===t.task.id||n.to_task.task.id===t.task.id})},o=G._bars[Symbol.iterator]();!(t=(r=o.next()).done);t=!0)a()}catch(i){n=!0,e=i}finally{try{!t&&o["return"]&&o["return"]()}finally{if(n)throw e}}}function W(){}function X(){G.element_groups.grid.click(function(){G.canvas.selectAll(".bar-wrapper").forEach(function(t){t.removeClass("active")})})}function H(t){if("string"==typeof t)return G.config.view_mode===t;if(Array.isArray(t)){var n=!0,e=!1,r=void 0;try{for(var a,o=t[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var i=a.value;if(G.config.view_mode===i)return!0}}catch(d){e=!0,r=d}finally{try{!n&&o["return"]&&o["return"]()}finally{if(e)throw r}}return!1}}function U(t){G.tasks.find(function(n){return n.id===t})}function j(t){G._bars.find(function(n){return n.task.id===t})}var G={};return G.view_is=H,G.get_bar=j,r(),G}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=a,e(1);var o=e(5),i=r(o),d=e(6),s=r(d);t.exports=n["default"]},function(t,n,e){var r=e(2);"string"==typeof r&&(r=[[t.id,r,""]]);e(4)(r,{});r.locals&&(t.exports=r.locals)},function(t,n,e){n=t.exports=e(3)(),n.push([t.id,".gantt #grid .grid-background{fill:none}.gantt #grid .grid-header{fill:#fff;stroke:#e0e0e0;stroke-width:1.4}.gantt #grid .grid-row{fill:#fff}.gantt #grid .grid-row:nth-child(even){fill:#f5f5f5}.gantt #grid .row-line{stroke:#ebeff2}.gantt #grid .tick{stroke:#e0e0e0;stroke-width:.2}.gantt #grid .tick.thick{stroke-width:.4}.gantt #grid .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,8BAGG,SAAU,CAHb,0BAMG,UACA,eACA,gBAAiB,CARpB,uBAWG,SAAa,CAXhB,uCAcG,YAvBe,CASlB,uBAiBG,cAzByB,CAQ5B,mBAoBG,eACA,eAAiB,CArBpB,yBAuBI,eAAiB,CAvBrB,8BA2BG,aACA,UAAY,CA5Bf,cAiCE,UACA,YACA,gBAAiB,CAnCnB,YAuCE,aACA,eACA,eACA,gCAAiC,CA1CnC,qBA6CE,YAhDY,CAGd,oBAgDE,iBACA,eACA,eACA,kBAAmB,CAnDrB,+BAsDG,SA3Dc,CAKjB,kBA0DE,UACA,0BACA,mBACA,eACA,oBACA,mBAAqB,CA/DvB,sBAkEG,UACA,iBAAkB,CAnErB,eAwEE,UACA,iBACA,UACA,kBACA,2BAA4B,CA5E9B,oBAgFE,cAAe,CAhFjB,+BAoFI,cAAe,CApFnB,kCAwFI,mBACA,SAAU,CAzFd,gCA+FI,cAAe,CA/FnB,4CAqGE,eACA,kBAAmB,CAtGrB,qBAyGE,SA9Ge,CAKjB,uBA4GE,SAhHe,CAIjB,gBAgHE,YAAa,CAhHf,mCAmHG,eACA,iBACA,SAAU,CArHb,iCAwHG,UACA,eAAgB,CAzHnB,8BA4HG,SAjIc,CAKjB,aAiIE,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\t#grid {\n\t\t.grid-background {\n\t\t\tfill: none;\n\t\t}\n\t\t.grid-header {\n\t\t\tfill: #ffffff;\n\t\t\tstroke: $border-color;\n\t\t\tstroke-width: 1.4;\n\t\t}\n\t\t.grid-row {\n\t\t\tfill: #ffffff;\n\t\t}\n\t\t.grid-row:nth-child(even) {\n\t\t\tfill: $light-bg;\n\t\t}\n\t\t.row-line {\n\t\t\tstroke: $light-border-color;\n\t\t}\n\t\t.tick {\n\t\t\tstroke: $border-color;\n\t\t\tstroke-width: 0.2;\n\t\t\t&.thick {\n\t\t\t\tstroke-width: 0.4;\n\t\t\t}\n\t\t}\n\t\t.today-highlight {\n\t\t\tfill: $light-yellow;\n\t\t\topacity: 0.5;\n\t\t}\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,n){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],n=0;n<this.length;n++){var e=this[n];e[2]?t.push("@media "+e[2]+"{"+e[1]+"}"):t.push(e[1])}return t.join("")},t.i=function(n,e){"string"==typeof n&&(n=[[null,n,""]]);for(var r={},a=0;a<this.length;a++){var o=this[a][0];"number"==typeof o&&(r[o]=!0)}for(a=0;a<n.length;a++){var i=n[a];"number"==typeof i[0]&&r[i[0]]||(e&&!i[2]?i[2]=e:e&&(i[2]="("+i[2]+") and ("+e+")"),t.push(i))}},t}},function(t,n,e){function r(t,n){for(var e=0;e<t.length;e++){var r=t[e],a=g[r.id];if(a){a.refs++;for(var o=0;o<a.parts.length;o++)a.parts[o](r.parts[o]);for(;o<r.parts.length;o++)a.parts.push(c(r.parts[o],n))}else{for(var i=[],o=0;o<r.parts.length;o++)i.push(c(r.parts[o],n));g[r.id]={id:r.id,refs:1,parts:i}}}}function a(t){for(var n=[],e={},r=0;r<t.length;r++){var a=t[r],o=a[0],i=a[1],d=a[2],s=a[3],c={css:i,media:d,sourceMap:s};e[o]?e[o].parts.push(c):n.push(e[o]={id:o,parts:[c]})}return n}function o(t,n){var e=_(),r=m[m.length-1];if("top"===t.insertAt)r?r.nextSibling?e.insertBefore(n,r.nextSibling):e.appendChild(n):e.insertBefore(n,e.firstChild),m.push(n);else{if("bottom"!==t.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");e.appendChild(n)}}function i(t){t.parentNode.removeChild(t);var n=m.indexOf(t);n>=0&&m.splice(n,1)}function d(t){var n=document.createElement("style");return n.type="text/css",o(t,n),n}function s(t){var n=document.createElement("link");return n.rel="stylesheet",o(t,n),n}function c(t,n){var e,r,a;if(n.singleton){var o=y++;e=v||(v=d(n)),r=f.bind(null,e,o,!1),a=f.bind(null,e,o,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(e=s(n),r=u.bind(null,e),a=function(){i(e),e.href&&URL.revokeObjectURL(e.href)}):(e=d(n),r=l.bind(null,e),a=function(){i(e)});return r(t),function(n){if(n){if(n.css===t.css&&n.media===t.media&&n.sourceMap===t.sourceMap)return;r(t=n)}else a()}}function f(t,n,e,r){var a=e?"":r.css;if(t.styleSheet)t.styleSheet.cssText=w(n,a);else{var o=document.createTextNode(a),i=t.childNodes;i[n]&&t.removeChild(i[n]),i.length?t.insertBefore(o,i[n]):t.appendChild(o)}}function l(t,n){var e=n.css,r=n.media;if(r&&t.setAttribute("media",r),t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}function u(t,n){var e=n.css,r=n.sourceMap;r&&(e+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var a=new Blob([e],{type:"text/css"}),o=t.href;t.href=URL.createObjectURL(a),o&&URL.revokeObjectURL(o)}var g={},h=function(t){var n;return function(){return"undefined"==typeof n&&(n=t.apply(this,arguments)),n}},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,n){n=n||{},"undefined"==typeof n.singleton&&(n.singleton=p()),"undefined"==typeof n.insertAt&&(n.insertAt="bottom");var e=a(t);return r(e,n),function(t){for(var o=[],i=0;i<e.length;i++){var d=e[i],s=g[d.id];s.refs--,o.push(s)}if(t){var c=a(t);r(c,n)}for(var i=0;i<o.length;i++){var s=o[i];if(0===s.refs){for(var f=0;f<s.parts.length;f++)s.parts[f]();delete g[s.id]}}}};var w=function(){var t=[];return function(n,e){return t[n]=e,t.filter(Boolean).join("\n")}}()},function(t,n){"use strict";function e(t,n){function e(){r(),a(),d(),u()}function r(){z.action_completed=!1,z.task=n}function a(){o(),i()}function o(){z.invalid=z.task.invalid,z.height=t.config.bar.height,z.x=W(),z.y=X(),z.corner_radius=3,z.duration=(z.task._end.diff(z.task._start,"hours")+24)/t.config.step,z.width=t.config.column_width*z.duration,z.progress_width=t.config.column_width*z.duration*(z.task.progress/100)||0,z.group=t.canvas.group().addClass("bar-wrapper"),z.bar_group=t.canvas.group().addClass("bar-group").appendTo(z.group),z.handle_group=t.canvas.group().addClass("handle-group").appendTo(z.group)}function i(){Snap.plugin(function(t,n,e,r,a){n.prototype.getX=function(){return+this.attr("x")},n.prototype.getY=function(){return+this.attr("y")},n.prototype.getWidth=function(){return+this.attr("width")},n.prototype.getHeight=function(){return+this.attr("height")},n.prototype.getEndX=function(){return this.getX()+this.getWidth()}})}function d(){s(),c(),f(),l()}function s(){z.$bar=t.canvas.rect(z.x,z.y,z.width,z.height,z.corner_radius,z.corner_radius).addClass("bar").appendTo(z.bar_group),z.invalid&&z.$bar.addClass("bar-invalid")}function c(){z.invalid||(z.$bar_progress=t.canvas.rect(z.x,z.y,z.progress_width,z.height,z.corner_radius,z.corner_radius).addClass("bar-progress").appendTo(z.bar_group))}function f(){t.canvas.text(z.x+z.width/2,z.y+z.height/2,z.task.name).addClass("bar-label").appendTo(z.bar_group),G()}function l(){if(!z.invalid){var n=z.$bar,e=z.$bar_progress,r=8;t.canvas.rect(n.getX()+n.getWidth()-9,n.getY()+1,r,z.height-2,z.corner_radius,z.corner_radius).addClass("handle right").appendTo(z.handle_group),t.canvas.rect(n.getX()+1,n.getY()+1,r,z.height-2,z.corner_radius,z.corner_radius).addClass("handle left").appendTo(z.handle_group),z.task.progress&&z.task.progress<100&&t.canvas.polygon(e.getEndX()-5,e.getY()+e.getHeight(),e.getEndX()+5,e.getY()+e.getHeight(),e.getEndX(),e.getY()+e.getHeight()-8.66).addClass("handle progress").appendTo(z.handle_group)}}function u(){z.invalid||(g(),p(),v(),y())}function g(){var n=t.element_groups.details,e=n.select(".details-wrapper");e||(e=t.canvas.group().addClass("details-wrapper").appendTo(n),t.canvas.rect(0,0,0,110,2,2).addClass("details-container").appendTo(e),t.canvas.text(0,0,"").attr({dx:10,dy:30}).addClass("details-heading").appendTo(e),t.canvas.text(0,0,"").attr({dx:10,dy:65}).addClass("details-body").appendTo(e),t.canvas.text(0,0,"").attr({dx:10,dy:90}).addClass("details-body").appendTo(e)),z.group.mouseover(function(t,r,a){n.removeClass("hide");var o=h();e.transform("t"+o.x+","+o.y);var i=z.task._start.format("MMM D"),d=z.task._end.format("MMM D"),s=z.task.name+": "+i+" - "+d,c=n.select(".details-heading").attr("text",s),f=c.getBBox();e.select(".details-container").attr({width:f.width+20});var l=z.task._end.diff(z.task._start,"days"),u="Duration: "+l+" days",g=z.task.progress?"Progress: "+z.task.progress:"",p=n.selectAll(".details-body");p[0].attr("text",u),p[1].attr("text",g)}),z.group.mouseout(function(){setTimeout(function(){return n.addClass("hide")},500)})}function h(){return{x:z.$bar.getEndX()+2,y:z.$bar.getY()-10}}function p(){function t(){t(),this.ox=this.getX(),this.oy=this.getY()}function n(t,n){C(t,n)}function e(){B()}function r(t,n){A(t,n)}function a(){x()}var o=_(),i=o.left,d=o.right;i.drag(r,t,a),d.drag(n,t,e)}function _(){return{left:z.handle_group.select(".handle.left"),right:z.handle_group.select(".handle.right")}}function v(){function t(n,e){t(n,e)}function n(){n()}function e(){e()}z.bar_group.drag(t,e,n)}function y(){function t(t,n){t>a.max_dx&&(t=a.max_dx),t<a.min_dx&&(t=a.min_dx),a.attr("width",a.owidth+t),o.transform("t{dx},0"),a.finaldx=t}function n(){a.finaldx&&(D(),S())}function e(){a.finaldx=0,a.owidth=a.getWidth(),a.min_dx=-a.getWidth(),a.max_dx=r.getWidth()-a.getWidth()}var r=z.$bar,a=z.$bar_progress,o=z.group.select(".handle.progress");o&&o.drag(t,e,n)}function m(){var t=z.$bar;t.ox=t.getX(),t.oy=t.getY(),t.owidth=t.getWidth(),t.finaldx=0,k("onstart")}function w(t,n){var e=z.$bar;e.finaldx=H(t),$(e.ox+e.finaldx),k("onmove",[t,n])}function b(){var t=z.$bar;t.finaldx&&(M(),S(),k("onstop"))}function A(t,n){var e=z.$bar;e.finaldx=H(t),$(e.ox+e.finaldx,e.owidth-e.finaldx),k("onmove_handle_left",[t,n])}function x(){var t=z.$bar;t.finaldx&&M(),S(),k("onstop_handle_left")}function k(n,e){var r=t.dependency_map;if(r[z.task.id]){var a=!0,o=!1,i=void 0;try{for(var d,s=r[z.task.id][Symbol.iterator]();!(a=(d=s.next()).done);a=!0){var c=d.value,f=t.get_bar(c);f[n].apply(f,e)}}catch(l){o=!0,i=l}finally{try{!a&&s["return"]&&s["return"]()}finally{if(o)throw i}}}}function C(t,n){var e=z.$bar;e.finaldx=H(t),$(null,e.owidth+e.finaldx)}function B(){var t=z.$bar;t.finaldx&&M(),S()}function $(t,n){var e=z.$bar;t&&U(e,"x",t),n&&U(e,"width",n),G(),O(),j(),L(),R()}function M(){z.events.on_date_change&&z.events.on_date_change(z.task,T(),E())}function D(){z.events.on_progress_change&&z.events.on_progress_change(z.task,Y())}function S(){z.action_completed=!0,setTimeout(function(){return z.action_completed=!1},2e3)}function T(){var n=z.$bar,e=(n.getX()-W())/t.config.column_width,r=z.task._start.clone().add(t.config.step*e,"hours");return r}function E(){var n=z.$bar,e=W()+z.duration*t.config.column_width,r=n.getEndX(),a=(r-e)/t.config.column_width,o=z.task._end.clone().add(t.config.step*a,"hours");return o}function Y(){return z.$bar_progress.getWidth()/z.$bar.getWidth()*100}function W(){var n=z.task._start.diff(t.gantt_start,"hours")/t.config.step*t.config.column_width;return t.view_is("Month")&&(n=z.task._start.diff(t.config.start,"days")*t.config.column_width/30),n}function X(){return t.config.header_height+t.config.padding+z.task._index*(z.height+t.config.padding)}function H(n){var e=n,r=void 0,a=void 0;return t.view_is("Week")?(r=n%(t.config.column_width/7),a=e-r+(r<t.config.column_width/14?0:t.config.column_width/7)):t.view_is("Month")?(r=n%(t.config.column_width/30),a=e-r+(r<t.config.column_width/60?0:t.config.column_width/30)):(r=n%t.config.column_width,a=e-r+(r<t.config.column_width/2?0:t.config.column_width)),a}function U(t,n,e){return e=+e,isNaN(e)||t.attr(n,e),t}function j(){z.$bar_progress.attr("x",z.$bar.getX()),z.$bar_progress.attr("width",z.$bar.getWidth()*(z.task.progress/100))}function G(){var t=z.$bar,n=z.group.select(".bar-label");n.getBBox().width>t.getWidth()?n.addClass("big").attr("x",t.getX()+t.getWidth()+5):n.removeClass("big").attr("x",t.getX()+t.getWidth()/2)}function O(){var t=z.$bar;z.handle_group.select(".handle.left").attr({x:t.getX()+1}),z.handle_group.select(".handle.right").attr({x:t.getEndX()-9})}function L(){var t=!0,n=!1,e=void 0;try{for(var r,a=z.arrows[Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var o=r.value;o.update()}}catch(i){n=!0,e=i}finally{try{!t&&a["return"]&&a["return"]()}finally{if(n)throw e}}}function R(){var n=t.element_groups.details.select(".details-wrapper"),e=h();n&&n.transform("t"+e.x+","+e.y)}var z={};return z.onstart=m,z.onmove=w,z.onstop=b,z.onmove_handle_left=A,z.onstop_handle_left=x,e(),z}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=e,t.exports=n["default"]},function(t,n){"use strict";function e(t,n,e){function r(){d.from_task=n,d.to_task=e,a(),o()}function a(){d.start_x=n.$bar.getX()+n.$bar.getWidth()/2;for(var r=function(){return e.$bar.getX()<d.start_x+t.config.padding&&d.start_x>n.$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)*n.task._index+t.config.padding,d.end_x=e.$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)*e.task._index+t.config.padding;var a=n.task._index>e.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}),e.$bar.getX()<n.$bar.getX()+t.config.padding&&(d.path=Snap.format("M {start_x} {start_y} v {down_1} a {curve} {curve} 0 0 1 -{curve} {curve} H {left} a {curve} {curve} 0 0 {clockwise} -{curve} {curve_y} V {down_2} 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,down_1:t.config.padding/2-d.curve,down_2:e.$bar.getY()+e.$bar.get("height")/2-d.curve_y,left:e.$bar.getX()-t.config.padding,offset:d.offset,curve:d.curve,clockwise:d.clockwise,curve_y:d.curve_y}))}function o(){d.element=d.gantt.canvas.path(d.path).attr("data-from",d.from_task.task.id).attr("data-to",d.to_task.task.id)}function i(){d.prepare(),d.element.attr("d",d.path)}var d={};return d.update=i,r(),d}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=e,t.exports=n["default"]}])});
|
|
//# sourceMappingURL=gantt.min.js.map
|