diff --git a/lib/gantt.js b/dist/frappe-gantt.js similarity index 98% rename from lib/gantt.js rename to dist/frappe-gantt.js index d7d53df..1348c7e 100644 --- a/lib/gantt.js +++ b/dist/frappe-gantt.js @@ -2,11 +2,11 @@ if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) - define("gantt", [], factory); + define("Gantt", [], factory); else if(typeof exports === 'object') - exports["gantt"] = factory(); + exports["Gantt"] = factory(); else - root["gantt"] = factory(); + root["Gantt"] = factory(); })(this, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache @@ -117,6 +117,7 @@ return /******/ (function(modules) { // webpackBootstrap // fire viewmode_change event trigger_event('view_change', [mode]); } + self.change_view_mode = change_view_mode; function prepare() { prepare_tasks(); @@ -141,9 +142,11 @@ return /******/ (function(modules) { // webpackBootstrap if (!task.start && !task.end) { task._start = moment().startOf('day'); task._end = moment().startOf('day').add(2, 'days'); - } else if (!task.start) { + } + if (!task.start && task.end) { task._start = task._end.clone().add(-2, 'days'); - } else { + } + if (task.start && !task.end) { task._end = task._start.clone().add(2, 'days'); } @@ -153,19 +156,17 @@ return /******/ (function(modules) { // webpackBootstrap } // dependencies - var deps = void 0; - - if (task.dependencies) { - deps = task.dependencies.split(',').map(function (d) { - return d.trim(); - }).filter(function (d) { - return d; - }); - } else { - deps = []; + if (typeof task.dependencies === 'string' || !task.dependencies) { + var deps = []; + if (task.dependencies) { + deps = task.dependencies.split(',').map(function (d) { + return d.trim(); + }).filter(function (d) { + return d; + }); + } + task.dependencies = deps; } - task.dependencies = deps; - return task; }); } @@ -1518,7 +1519,7 @@ return /******/ (function(modules) { // webpackBootstrap var x = self.task._start.diff(gt.gantt_start, 'hours') / gt.config.step * gt.config.column_width; if (gt.view_is('Month')) { - x = self.task._start.diff(gt.config.start, 'days') * gt.config.column_width / 30; + x = self.task._start.diff(gt.gantt_start, 'days') * gt.config.column_width / 30; } return x; } @@ -1721,4 +1722,4 @@ return /******/ (function(modules) { // webpackBootstrap /******/ ]) }); ; -//# sourceMappingURL=gantt.js.map \ No newline at end of file +//# sourceMappingURL=frappe-gantt.js.map \ No newline at end of file diff --git a/dist/frappe-gantt.js.map b/dist/frappe-gantt.js.map new file mode 100644 index 0000000..ace7ee0 --- /dev/null +++ b/dist/frappe-gantt.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 5971557e4090c39439fe","webpack:///./src/Gantt.js","webpack:///./src/gantt.scss?b27d","webpack:///./src/gantt.scss","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/style-loader/addStyles.js","webpack:///./src/Bar.js","webpack:///./src/Arrow.js"],"names":["Gantt","element","tasks","config","self","init","set_defaults","change_view_mode","view_mode","defaults","header_height","column_width","step","view_modes","bar","height","arrow","curve","padding","date_format","_tasks","Object","assign","_bars","_arrows","element_groups","mode","set_scale","prepare","render","trigger_event","prepare_tasks","prepare_dependencies","prepare_dates","prepare_canvas","map","task","i","_start","moment","start","_end","end","_index","startOf","add","clone","invalid","dependencies","deps","split","d","trim","filter","dependency_map","t","push","id","gantt_start","gantt_end","set_gantt_dates","setup_dates","canvas","Snap","addClass","clear","setup_groups","make_grid","make_dates","make_bars","make_arrows","map_arrows_on_bars","set_width","set_scroll_position","bind_grid_click","view_is","subtract","endOf","dates","cur_date","groups","group","attr","scale","cur_width","node","getBoundingClientRect","width","actual_width","getBBox","parent_element","document","querySelector","parentElement","scroll_pos","get_min_date","diff","scrollLeft","reduce","acc","curr","isSameOrBefore","make_grid_background","make_grid_rows","make_grid_header","make_grid_ticks","make_grid_highlights","grid_width","length","grid_height","rect","appendTo","grid","header_width","rows","lines","row_width","row_height","row_y","line","tick_x","tick_y","tick_height","date","tick_class","day","month","path","format","x","y","daysInMonth","get_dates_to_draw","text","lower_x","lower_y","lower_text","upper_text","$upper_text","upper_x","upper_y","x2","remove","last_date","get_date_info","date_text","year","base_pos","x_pos","arrows","dependency","get_task","dep","concat","from_task","to_task","click","unselect_all","details","selectAll","forEach","el","removeClass","modes","Array","isArray","find","get_bar","event","args","apply","Bar","gt","draw","bind","action_completed","prepare_values","prepare_plugins","compute_x","compute_y","corner_radius","duration","progress_width","progress","bar_group","handle_group","plugin","Element","Paper","global","Fragment","prototype","getX","getY","getWidth","getHeight","getEndX","draw_bar","draw_progress_bar","draw_label","draw_resize_handles","$bar","$bar_progress","name","update_label_position","bar_progress","handle_width","polygon","setup_click_event","show_details","bind_resize","bind_drag","bind_resize_progress","popover_group","details_box","select","dx","dy","f","shadow","e","pos","get_details_position","transform","start_date","end_date","heading","$heading","bbox","body1","body2","$body","get_handles","left","right","drag","onmove_left","onstart","onstop_left","onmove_right","onstop_right","onmove_handle_right","onstop_handle_right","onmove_handle_left","onstop_handle_left","onmove","onstop","handle","on_move","on_start","on_stop","max_dx","min_dx","owidth","finaldx","progress_changed","set_action_completed","ox","oy","run_method_for_dependencies","get_snap_position","update_bar_position","date_changed","fn","dm","deptask","dt","update_attr","update_handle_position","update_progressbar_position","update_arrow_position","update_details_position","hasClass","toggleClass","compute_start_date","compute_end_date","compute_progress","setTimeout","shift","new_start_date","og_x","final_x","new_end_date","odx","rem","position","value","isNaN","label","update","Arrow","start_x","condition","start_y","end_x","end_y","from_is_below_to","clockwise","curve_y","offset","down_1","down_2"],"mappings":"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BAAwB,KAAK,gBAAgB,oBAAoB,4BAA4B,8BAA8B,0BAA0B,mBAAmB,OAAO,wBAAwB,0BAA0B,yBAAyB,OAAO,qBAAqB,0BAA0B,OAAO,KAAK,aAAa,oBAAoB,KAAK,GAAG,6BAA6B;;AAE/gL;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA,yCAAwC,gBAAgB;AACxD,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,aAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjDA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB,sBAAsB;AACtC;AACA;AACA,mBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA,kBAAiB,2BAA2B;AAC5C;AACA;AACA,SAAQ,uBAAuB;AAC/B;AACA;AACA,IAAG;AACH;AACA,kBAAiB,uBAAuB;AACxC;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA,iCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA,GAAE;AACF;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wDAAuD;AACvD;;AAEA,8BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;mBCzOwBuK,G;AAZxB;AACA;;;;;;;;;;;AAWe,UAASA,GAAT,CAAaC,EAAb,EAAiBxI,IAAjB,EAAuB;;AAErC,MAAMhC,OAAO,EAAb;;AAEA,WAASC,IAAT,GAAgB;AACfC;AACAsB;AACAiJ;AACAC;AACA;;AAED,WAASxK,YAAT,GAAwB;AACvBF,QAAK2K,gBAAL,GAAwB,KAAxB;AACA3K,QAAKgC,IAAL,GAAYA,IAAZ;AACA;;AAED,WAASR,OAAT,GAAmB;AAClBoJ;AACAC;AACA;;AAED,WAASD,cAAT,GAA0B;AACzB5K,QAAK2C,OAAL,GAAe3C,KAAKgC,IAAL,CAAUW,OAAzB;AACA3C,QAAKW,MAAL,GAAc6J,GAAGzK,MAAH,CAAUW,GAAV,CAAcC,MAA5B;AACAX,QAAK6H,CAAL,GAASiD,WAAT;AACA9K,QAAK8H,CAAL,GAASiD,WAAT;AACA/K,QAAKgL,aAAL,GAAqB,CAArB;AACAhL,QAAKiL,QAAL,GAAgB,CAACjL,KAAK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","file":"frappe-gantt.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Gantt\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Gantt\"] = factory();\n\telse\n\t\troot[\"Gantt\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 5971557e4090c39439fe\n **/","/* global moment, Snap */\n/**\n * Gantt:\n * \telement: querySelector string, required\n * \ttasks: array of tasks, required\n * task: { id, name, start, end, progress, dependencies }\n * \tconfig: configuration options, optional\n */\nimport './gantt.scss';\n\nimport Bar from './Bar';\nimport Arrow from './Arrow';\n\nexport default function Gantt(element, tasks, config) {\n\n\tconst self = {};\n\n\tfunction init() {\n\t\tset_defaults();\n\t\t// initialize with default view mode\n\t\tchange_view_mode(self.config.view_mode);\n\t}\n\n\tfunction set_defaults() {\n\n\t\tconst defaults = {\n\t\t\theader_height: 50,\n\t\t\tcolumn_width: 30,\n\t\t\tstep: 24,\n\t\t\tview_modes: [\n\t\t\t\t'Quarter Day',\n\t\t\t\t'Half Day',\n\t\t\t\t'Day',\n\t\t\t\t'Week',\n\t\t\t\t'Month'\n\t\t\t],\n\t\t\tbar: {\n\t\t\t\theight: 20\n\t\t\t},\n\t\t\tarrow: {\n\t\t\t\tcurve: 5\n\t\t\t},\n\t\t\tpadding: 18,\n\t\t\tview_mode: 'Day',\n\t\t\tdate_format: 'YYYY-MM-DD'\n\t\t};\n\n\t\tself.element = element;\n\t\tself._tasks = tasks;\n\t\tself.config = Object.assign({}, defaults, config);\n\n\t\tself._bars = [];\n\t\tself._arrows = [];\n\t\tself.element_groups = {};\n\t}\n\n\tfunction change_view_mode(mode) {\n\t\tset_scale(mode);\n\t\tprepare();\n\t\trender();\n\t\t// fire viewmode_change event\n\t\ttrigger_event('view_change', [mode]);\n\t}\n\tself.change_view_mode = change_view_mode;\n\n\tfunction prepare() {\n\t\tprepare_tasks();\n\t\tprepare_dependencies();\n\t\tprepare_dates();\n\t\tprepare_canvas();\n\t}\n\n\tfunction prepare_tasks() {\n\n\t\t// prepare tasks\n\t\tself.tasks = self._tasks.map((task, i) => {\n\n\t\t\t// momentify\n\t\t\ttask._start = moment(task.start, self.config.date_format);\n\t\t\ttask._end = moment(task.end, self.config.date_format);\n\n\t\t\t// cache index\n\t\t\ttask._index = i;\n\n\t\t\t// invalid dates\n\t\t\tif(!task.start && !task.end) {\n\t\t\t\ttask._start = moment().startOf('day');\n\t\t\t\ttask._end = moment().startOf('day').add(2, 'days');\n\t\t\t}\n\t\t\tif(!task.start && task.end) {\n\t\t\t\ttask._start = task._end.clone().add(-2, 'days');\n\t\t\t}\n\t\t\tif(task.start && !task.end) {\n\t\t\t\ttask._end = task._start.clone().add(2, 'days');\n\t\t\t}\n\n\t\t\t// invalid flag\n\t\t\tif(!task.start || !task.end) {\n\t\t\t\ttask.invalid = true;\n\t\t\t}\n\n\t\t\t// dependencies\n\t\t\tif(typeof task.dependencies === 'string' || !task.dependencies) {\n\t\t\t\tlet deps = [];\n\t\t\t\tif(task.dependencies) {\n\t\t\t\t\tdeps = task.dependencies\n\t\t\t\t\t\t.split(',')\n\t\t\t\t\t\t.map(d => d.trim())\n\t\t\t\t\t\t.filter((d) => d);\n\t\t\t\t}\n\t\t\t\ttask.dependencies = deps;\n\t\t\t}\n\t\t\treturn task;\n\t\t});\n\t}\n\tfunction prepare_dependencies() {\n\n\t\tself.dependency_map = {};\n\t\tfor(let t of self.tasks) {\n\t\t\tfor(let d of t.dependencies) {\n\t\t\t\tself.dependency_map[d] = self.dependency_map[d] || [];\n\t\t\t\tself.dependency_map[d].push(t.id);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction prepare_dates() {\n\n\t\tfor(let task of self.tasks) {\n\t\t\t// set global start and end date\n\t\t\tif(!self.gantt_start || task._start < self.gantt_start) {\n\t\t\t\tself.gantt_start = task._start;\n\t\t\t}\n\t\t\tif(!self.gantt_end || task._end > self.gantt_end) {\n\t\t\t\tself.gantt_end = task._end;\n\t\t\t}\n\t\t}\n\t\tset_gantt_dates();\n\t\tsetup_dates();\n\t}\n\n\tfunction prepare_canvas() {\n\t\tself.canvas = Snap(self.element).addClass('gantt');\n\t}\n\n\tfunction render() {\n\t\tclear();\n\t\tsetup_groups();\n\t\tmake_grid();\n\t\tmake_dates();\n\t\tmake_bars();\n\t\tmake_arrows();\n\t\tmap_arrows_on_bars();\n\t\tset_width();\n\t\tset_scroll_position();\n\t\tbind_grid_click();\n\t}\n\n\tfunction clear() {\n\t\tself.canvas.clear();\n\t\tself._bars = [];\n\t\tself._arrows = [];\n\t}\n\n\tfunction set_gantt_dates() {\n\n\t\tif(view_is(['Quarter Day', 'Half Day'])) {\n\t\t\tself.gantt_start = self.gantt_start.clone().subtract(7, 'day');\n\t\t\tself.gantt_end = self.gantt_end.clone().add(7, 'day');\n\t\t} else if(view_is('Month')) {\n\t\t\tself.gantt_start = self.gantt_start.clone().startOf('year');\n\t\t\tself.gantt_end = self.gantt_end.clone().endOf('month').add(1, 'year');\n\t\t} else {\n\t\t\tself.gantt_start = self.gantt_start.clone().startOf('month').subtract(1, 'month');\n\t\t\tself.gantt_end = self.gantt_end.clone().endOf('month').add(1, 'month');\n\t\t}\n\t}\n\n\tfunction setup_dates() {\n\n\t\tself.dates = [];\n\t\tlet cur_date = null;\n\n\t\twhile(cur_date === null || cur_date < self.gantt_end) {\n\t\t\tif(!cur_date) {\n\t\t\t\tcur_date = self.gantt_start.clone();\n\t\t\t} else {\n\t\t\t\tcur_date = view_is('Month') ?\n\t\t\t\t\tcur_date.clone().add(1, 'month') :\n\t\t\t\t\tcur_date.clone().add(self.config.step, 'hours');\n\t\t\t}\n\t\t\tself.dates.push(cur_date);\n\t\t}\n\t}\n\n\tfunction setup_groups() {\n\n\t\tconst groups = ['grid', 'date', 'arrow', 'progress', 'bar', 'details'];\n\t\t// make group layers\n\t\tfor(let group of groups) {\n\t\t\tself.element_groups[group] = self.canvas.group().attr({'id': group});\n\t\t}\n\t}\n\n\tfunction set_scale(scale) {\n\t\tself.config.view_mode = scale;\n\n\t\tif(scale === 'Day') {\n\t\t\tself.config.step = 24;\n\t\t\tself.config.column_width = 38;\n\t\t} else if(scale === 'Half Day') {\n\t\t\tself.config.step = 24 / 2;\n\t\t\tself.config.column_width = 38;\n\t\t} else if(scale === 'Quarter Day') {\n\t\t\tself.config.step = 24 / 4;\n\t\t\tself.config.column_width = 38;\n\t\t} else if(scale === 'Week') {\n\t\t\tself.config.step = 24 * 7;\n\t\t\tself.config.column_width = 140;\n\t\t} else if(scale === 'Month') {\n\t\t\tself.config.step = 24 * 30;\n\t\t\tself.config.column_width = 120;\n\t\t}\n\t}\n\n\tfunction set_width() {\n\t\tconst cur_width = self.canvas.node.getBoundingClientRect().width;\n\t\tconst actual_width = self.canvas.getBBox().width;\n\t\tif(cur_width < actual_width) {\n\t\t\tself.canvas.attr('width', actual_width);\n\t\t}\n\t}\n\n\tfunction set_scroll_position() {\n\t\tconst parent_element = document.querySelector(self.element).parentElement;\n\t\tif(!parent_element) return;\n\n\t\tconst scroll_pos = get_min_date().diff(self.gantt_start, 'hours') /\n\t\t\tself.config.step * self.config.column_width;\n\t\tparent_element.scrollLeft = scroll_pos;\n\t}\n\n\tfunction get_min_date() {\n\t\tconst task = self.tasks.reduce((acc, curr) => {\n\t\t\treturn curr._start.isSameOrBefore(acc._start) ? curr : acc;\n\t\t});\n\t\treturn task._start;\n\t}\n\n\tfunction make_grid() {\n\t\tmake_grid_background();\n\t\tmake_grid_rows();\n\t\tmake_grid_header();\n\t\tmake_grid_ticks();\n\t\tmake_grid_highlights();\n\t}\n\n\tfunction make_grid_background() {\n\n\t\tconst grid_width = self.dates.length * self.config.column_width,\n\t\t\tgrid_height = self.config.header_height + self.config.padding +\n\t\t\t\t(self.config.bar.height + self.config.padding) * self.tasks.length;\n\n\t\tself.canvas.rect(0, 0, grid_width, grid_height)\n\t\t\t.addClass('grid-background')\n\t\t\t.appendTo(self.element_groups.grid);\n\n\t\tself.canvas.attr({\n\t\t\theight: grid_height + self.config.padding,\n\t\t\twidth: '100%'\n\t\t});\n\t}\n\n\tfunction make_grid_header() {\n\t\tconst header_width = self.dates.length * self.config.column_width,\n\t\t\theader_height = self.config.header_height + 10;\n\t\tself.canvas.rect(0, 0, header_width, header_height)\n\t\t\t.addClass('grid-header')\n\t\t\t.appendTo(self.element_groups.grid);\n\t}\n\n\tfunction make_grid_rows() {\n\n\t\tconst rows = self.canvas.group().appendTo(self.element_groups.grid),\n\t\t\tlines = self.canvas.group().appendTo(self.element_groups.grid),\n\t\t\trow_width = self.dates.length * self.config.column_width,\n\t\t\trow_height = self.config.bar.height + self.config.padding;\n\n\t\tlet row_y = self.config.header_height + self.config.padding / 2;\n\n\t\tfor(let task of self.tasks) { // eslint-disable-line\n\t\t\tself.canvas.rect(0, row_y, row_width, row_height)\n\t\t\t\t.addClass('grid-row')\n\t\t\t\t.appendTo(rows);\n\n\t\t\tself.canvas.line(0, row_y + row_height, row_width, row_y + row_height)\n\t\t\t\t.addClass('row-line')\n\t\t\t\t.appendTo(lines);\n\n\t\t\trow_y += self.config.bar.height + self.config.padding;\n\t\t}\n\t}\n\n\tfunction make_grid_ticks() {\n\t\tlet tick_x = 0,\n\t\t\ttick_y = self.config.header_height + self.config.padding / 2,\n\t\t\ttick_height = (self.config.bar.height + self.config.padding) * self.tasks.length;\n\n\t\tfor(let date of self.dates) {\n\t\t\tlet tick_class = 'tick';\n\t\t\t// thick tick for monday\n\t\t\tif(view_is('Day') && date.day() === 1) {\n\t\t\t\ttick_class += ' thick';\n\t\t\t}\n\t\t\t// thick tick for first week\n\t\t\tif(view_is('Week') && date.date() >= 1 && date.date() < 8) {\n\t\t\t\ttick_class += ' thick';\n\t\t\t}\n\t\t\t// thick ticks for quarters\n\t\t\tif(view_is('Month') && date.month() % 3 === 0) {\n\t\t\t\ttick_class += ' thick';\n\t\t\t}\n\n\t\t\tself.canvas.path(Snap.format('M {x} {y} v {height}', {\n\t\t\t\tx: tick_x,\n\t\t\t\ty: tick_y,\n\t\t\t\theight: tick_height\n\t\t\t}))\n\t\t\t.addClass(tick_class)\n\t\t\t.appendTo(self.element_groups.grid);\n\n\t\t\tif(view_is('Month')) {\n\t\t\t\ttick_x += date.daysInMonth() * self.config.column_width / 30;\n\t\t\t} else {\n\t\t\t\ttick_x += self.config.column_width;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction make_grid_highlights() {\n\n\t\t// highlight today's date\n\t\tif(view_is('Day')) {\n\t\t\tconst x = moment().startOf('day').diff(self.gantt_start, 'hours') /\n\t\t\t\t\tself.config.step * self.config.column_width;\n\t\t\tconst y = 0;\n\t\t\tconst width = self.config.column_width;\n\t\t\tconst height = (self.config.bar.height + self.config.padding) * self.tasks.length +\n\t\t\t\tself.config.header_height + self.config.padding / 2;\n\n\t\t\tself.canvas.rect(x, y, width, height)\n\t\t\t\t.addClass('today-highlight')\n\t\t\t\t.appendTo(self.element_groups.grid);\n\t\t}\n\t}\n\n\tfunction make_dates() {\n\n\t\tfor(let date of get_dates_to_draw()) {\n\t\t\tself.canvas.text(date.lower_x, date.lower_y, date.lower_text)\n\t\t\t\t.addClass('lower-text')\n\t\t\t\t.appendTo(self.element_groups.date);\n\n\t\t\tif(date.upper_text) {\n\t\t\t\tconst $upper_text = self.canvas.text(date.upper_x, date.upper_y, date.upper_text)\n\t\t\t\t\t.addClass('upper-text')\n\t\t\t\t\t.appendTo(self.element_groups.date);\n\n\t\t\t\t// remove out-of-bound dates\n\t\t\t\tif($upper_text.getBBox().x2 > self.element_groups.grid.getBBox().width) {\n\t\t\t\t\t$upper_text.remove();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction get_dates_to_draw() {\n\t\tlet last_date = null;\n\t\tconst dates = self.dates.map((date, i) => {\n\t\t\tconst d = get_date_info(date, last_date, i);\n\t\t\tlast_date = date;\n\t\t\treturn d;\n\t\t});\n\t\treturn dates;\n\t}\n\n\tfunction get_date_info(date, last_date, i) {\n\t\tif(!last_date) {\n\t\t\tlast_date = date.clone().add(1, 'year');\n\t\t}\n\t\tconst date_text = {\n\t\t\t'Quarter Day_lower': date.format('HH'),\n\t\t\t'Half Day_lower': date.format('HH'),\n\t\t\t'Day_lower': date.date() !== last_date.date() ? date.format('D') : '',\n\t\t\t'Week_lower': 'Week ' + date.format('W'),\n\t\t\t'Month_lower': date.format('MMMM'),\n\t\t\t'Quarter Day_upper': date.date() !== last_date.date() ? date.format('D MMM') : '',\n\t\t\t'Half Day_upper': date.date() !== last_date.date() ? date.format('D MMM') : '',\n\t\t\t'Day_upper': date.month() !== last_date.month() ? date.format('MMMM') : '',\n\t\t\t'Week_upper': date.month() !== last_date.month() ? date.format('MMMM') : '',\n\t\t\t'Month_upper': date.year() !== last_date.year() ? date.format('YYYY') : ''\n\t\t};\n\n\t\tconst base_pos = {\n\t\t\tx: i * self.config.column_width,\n\t\t\tlower_y: self.config.header_height,\n\t\t\tupper_y: self.config.header_height - 25\n\t\t};\n\n\t\tconst x_pos = {\n\t\t\t'Quarter Day_lower': (self.config.column_width * 4) / 2,\n\t\t\t'Quarter Day_upper': 0,\n\t\t\t'Half Day_lower': (self.config.column_width * 2) / 2,\n\t\t\t'Half Day_upper': 0,\n\t\t\t'Day_lower': self.config.column_width / 2,\n\t\t\t'Day_upper': (self.config.column_width * 30) / 2,\n\t\t\t'Week_lower': self.config.column_width / 2,\n\t\t\t'Week_upper': (self.config.column_width * 4) / 2,\n\t\t\t'Month_lower': (date.daysInMonth() * self.config.column_width / 30) / 2,\n\t\t\t'Month_upper': (self.config.column_width * 12) / 2\n\t\t};\n\n\t\treturn {\n\t\t\tupper_text: date_text[`${self.config.view_mode}_upper`],\n\t\t\tlower_text: date_text[`${self.config.view_mode}_lower`],\n\t\t\tupper_x: base_pos.x + x_pos[`${self.config.view_mode}_upper`],\n\t\t\tupper_y: base_pos.upper_y,\n\t\t\tlower_x: base_pos.x + x_pos[`${self.config.view_mode}_lower`],\n\t\t\tlower_y: base_pos.lower_y\n\t\t};\n\t}\n\n\tfunction make_arrows() {\n\t\tself._arrows = [];\n\t\tfor(let task of self.tasks) {\n\t\t\tlet arrows = [];\n\t\t\tarrows = task.dependencies.map(dep => {\n\t\t\t\tconst dependency = get_task(dep);\n\t\t\t\tif(!dependency) return;\n\n\t\t\t\tconst arrow = Arrow(\n\t\t\t\t\tself, // gt\n\t\t\t\t\tself._bars[dependency._index], // from_task\n\t\t\t\t\tself._bars[task._index] // to_task\n\t\t\t\t);\n\t\t\t\tself.element_groups.arrow.add(arrow.element);\n\t\t\t\treturn arrow; // eslint-disable-line\n\t\t\t});\n\t\t\tself._arrows = self._arrows.concat(arrows);\n\t\t}\n\t}\n\n\tfunction make_bars() {\n\n\t\tself._bars = self.tasks.map((task) => {\n\t\t\tconst bar = Bar(self, task);\n\t\t\tself.element_groups.bar.add(bar.group);\n\t\t\treturn bar;\n\t\t});\n\t}\n\n\tfunction map_arrows_on_bars() {\n\t\tfor(let bar of self._bars) {\n\t\t\tbar.arrows = self._arrows.filter(arrow => {\n\t\t\t\treturn (arrow.from_task.task.id === bar.task.id) ||\n\t\t\t\t\t(arrow.to_task.task.id === bar.task.id);\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction bind_grid_click() {\n\t\tself.element_groups.grid.click(() => {\n\t\t\tunselect_all();\n\t\t\tself.element_groups.details.addClass('hide');\n\t\t});\n\t}\n\n\tfunction unselect_all() {\n\t\tself.canvas.selectAll('.bar-wrapper').forEach(el => {\n\t\t\tel.removeClass('active');\n\t\t});\n\t}\n\tself.unselect_all = unselect_all;\n\n\tfunction view_is(modes) {\n\t\tif (typeof modes === 'string') {\n\t\t\treturn self.config.view_mode === modes;\n\t\t} else if(Array.isArray(modes)) {\n\t\t\tfor (let mode of modes) {\n\t\t\t\tif(self.config.view_mode === mode) return true;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}\n\tself.view_is = view_is;\n\n\tfunction get_task(id) {\n\t\treturn self.tasks.find((task) => {\n\t\t\treturn task.id === id;\n\t\t});\n\t}\n\n\tfunction get_bar(id) {\n\t\treturn self._bars.find((bar) => {\n\t\t\treturn bar.task.id === id;\n\t\t});\n\t}\n\tself.get_bar = get_bar; // required in Bar\n\n\tfunction trigger_event(event, args) {\n\t\tif(self.config['on_' + event]) {\n\t\t\tself.config['on_' + event].apply(null, args);\n\t\t}\n\t}\n\tself.trigger_event = trigger_event;\n\n\tinit();\n\n\treturn self;\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/Gantt.js\n **/","// style-loader: Adds some css to the DOM by adding a - +
@@ -32,7 +32,7 @@ var tasks = arr.map(function(i){ return { start: "2016-10-0"+i, - end: "2016-10-2"+i, + end: "2016-11-0"+i, name: "Task "+i, id: "Task"+i, progress: i*10 @@ -41,7 +41,7 @@ tasks[1].dependencies = 'Task1'; tasks[2].dependencies = 'Task2'; - var gantt_chart = gantt("#gantt", tasks, { + var gantt_chart = Gantt("#gantt", tasks, { date_format: "YYYY-MM-DD", bar: { height: 20 diff --git a/lib/gantt.js.map b/lib/gantt.js.map deleted file mode 100644 index f436f15..0000000 --- a/lib/gantt.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 7e7b8d5718495ae06844","webpack:///./src/Gantt.js","webpack:///./src/gantt.scss?b27d","webpack:///./src/gantt.scss","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/style-loader/addStyles.js","webpack:///./src/Bar.js","webpack:///./src/Arrow.js"],"names":["Gantt","element","tasks","config","self","init","set_defaults","change_view_mode","view_mode","defaults","header_height","column_width","step","view_modes","bar","height","arrow","curve","padding","date_format","_tasks","Object","assign","_bars","_arrows","element_groups","mode","set_scale","prepare","render","trigger_event","prepare_tasks","prepare_dependencies","prepare_dates","prepare_canvas","map","task","i","_start","moment","start","_end","end","_index","startOf","add","clone","invalid","deps","dependencies","split","d","trim","filter","dependency_map","t","push","id","gantt_start","gantt_end","set_gantt_dates","setup_dates","canvas","Snap","addClass","clear","setup_groups","make_grid","make_dates","make_bars","make_arrows","map_arrows_on_bars","set_width","set_scroll_position","bind_grid_click","view_is","subtract","endOf","dates","cur_date","groups","group","attr","scale","cur_width","node","getBoundingClientRect","width","actual_width","getBBox","parent_element","document","querySelector","parentElement","scroll_pos","get_min_date","diff","scrollLeft","reduce","acc","curr","isSameOrBefore","make_grid_background","make_grid_rows","make_grid_header","make_grid_ticks","make_grid_highlights","grid_width","length","grid_height","rect","appendTo","grid","header_width","rows","lines","row_width","row_height","row_y","line","tick_x","tick_y","tick_height","date","tick_class","day","month","path","format","x","y","daysInMonth","get_dates_to_draw","text","lower_x","lower_y","lower_text","upper_text","$upper_text","upper_x","upper_y","x2","remove","last_date","get_date_info","date_text","year","base_pos","x_pos","arrows","dependency","get_task","dep","concat","from_task","to_task","click","unselect_all","details","selectAll","forEach","el","removeClass","modes","Array","isArray","find","get_bar","event","args","apply","Bar","gt","draw","bind","action_completed","prepare_values","prepare_plugins","compute_x","compute_y","corner_radius","duration","progress_width","progress","bar_group","handle_group","plugin","Element","Paper","global","Fragment","prototype","getX","getY","getWidth","getHeight","getEndX","draw_bar","draw_progress_bar","draw_label","draw_resize_handles","$bar","$bar_progress","name","update_label_position","bar_progress","handle_width","polygon","setup_click_event","show_details","bind_resize","bind_drag","bind_resize_progress","popover_group","details_box","select","dx","dy","f","shadow","e","pos","get_details_position","transform","start_date","end_date","heading","$heading","bbox","body1","body2","$body","get_handles","left","right","drag","onmove_left","onstart","onstop_left","onmove_right","onstop_right","onmove_handle_right","onstop_handle_right","onmove_handle_left","onstop_handle_left","onmove","onstop","handle","on_move","on_start","on_stop","max_dx","min_dx","owidth","finaldx","progress_changed","set_action_completed","ox","oy","run_method_for_dependencies","get_snap_position","update_bar_position","date_changed","fn","dm","deptask","dt","update_attr","update_handle_position","update_progressbar_position","update_arrow_position","update_details_position","hasClass","toggleClass","compute_start_date","compute_end_date","compute_progress","setTimeout","shift","new_start_date","og_x","final_x","new_end_date","odx","rem","position","value","isNaN","label","update","Arrow","start_x","condition","start_y","end_x","end_y","from_is_below_to","clockwise","curve_y","offset","down_1","down_2"],"mappings":"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;;AAE/gL;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA,yCAAwC,gBAAgB;AACxD,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,aAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjDA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB,sBAAsB;AACtC;AACA;AACA,mBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA,kBAAiB,2BAA2B;AAC5C;AACA;AACA,SAAQ,uBAAuB;AAC/B;AACA;AACA,IAAG;AACH;AACA,kBAAiB,uBAAuB;AACxC;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA,iCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA,GAAE;AACF;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAE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","file":"gantt.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"gantt\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"gantt\"] = factory();\n\telse\n\t\troot[\"gantt\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 7e7b8d5718495ae06844\n **/","/* global moment, Snap */\n/**\n * Gantt:\n * \telement: querySelector string, required\n * \ttasks: array of tasks, required\n * task: { id, name, start, end, progress, dependencies }\n * \tconfig: configuration options, optional\n */\nimport './gantt.scss';\n\nimport Bar from './Bar';\nimport Arrow from './Arrow';\n\nexport default function Gantt(element, tasks, config) {\n\n\tconst self = {};\n\n\tfunction init() {\n\t\tset_defaults();\n\t\t// initialize with default view mode\n\t\tchange_view_mode(self.config.view_mode);\n\t}\n\n\tfunction set_defaults() {\n\n\t\tconst defaults = {\n\t\t\theader_height: 50,\n\t\t\tcolumn_width: 30,\n\t\t\tstep: 24,\n\t\t\tview_modes: [\n\t\t\t\t'Quarter Day',\n\t\t\t\t'Half Day',\n\t\t\t\t'Day',\n\t\t\t\t'Week',\n\t\t\t\t'Month'\n\t\t\t],\n\t\t\tbar: {\n\t\t\t\theight: 20\n\t\t\t},\n\t\t\tarrow: {\n\t\t\t\tcurve: 5\n\t\t\t},\n\t\t\tpadding: 18,\n\t\t\tview_mode: 'Day',\n\t\t\tdate_format: 'YYYY-MM-DD'\n\t\t};\n\n\t\tself.element = element;\n\t\tself._tasks = tasks;\n\t\tself.config = Object.assign({}, defaults, config);\n\n\t\tself._bars = [];\n\t\tself._arrows = [];\n\t\tself.element_groups = {};\n\t}\n\n\tfunction change_view_mode(mode) {\n\t\tset_scale(mode);\n\t\tprepare();\n\t\trender();\n\t\t// fire viewmode_change event\n\t\ttrigger_event('view_change', [mode]);\n\t}\n\n\tfunction prepare() {\n\t\tprepare_tasks();\n\t\tprepare_dependencies();\n\t\tprepare_dates();\n\t\tprepare_canvas();\n\t}\n\n\tfunction prepare_tasks() {\n\n\t\t// prepare tasks\n\t\tself.tasks = self._tasks.map((task, i) => {\n\n\t\t\t// momentify\n\t\t\ttask._start = moment(task.start, self.config.date_format);\n\t\t\ttask._end = moment(task.end, self.config.date_format);\n\n\t\t\t// cache index\n\t\t\ttask._index = i;\n\n\t\t\t// invalid dates\n\t\t\tif(!task.start && !task.end) {\n\t\t\t\ttask._start = moment().startOf('day');\n\t\t\t\ttask._end = moment().startOf('day').add(2, 'days');\n\t\t\t} else if(!task.start) {\n\t\t\t\ttask._start = task._end.clone().add(-2, 'days');\n\t\t\t} else {\n\t\t\t\ttask._end = task._start.clone().add(2, 'days');\n\t\t\t}\n\n\t\t\t// invalid flag\n\t\t\tif(!task.start || !task.end) {\n\t\t\t\ttask.invalid = true;\n\t\t\t}\n\n\t\t\t// dependencies\n\t\t\tlet deps;\n\n\t\t\tif(task.dependencies) {\n\t\t\t\tdeps = task.dependencies\n\t\t\t\t\t.split(',')\n\t\t\t\t\t.map(d => d.trim())\n\t\t\t\t\t.filter((d) => d);\n\t\t\t} else {\n\t\t\t\tdeps = [];\n\t\t\t}\n\t\t\ttask.dependencies = deps;\n\n\t\t\treturn task;\n\t\t});\n\t}\n\tfunction prepare_dependencies() {\n\n\t\tself.dependency_map = {};\n\t\tfor(let t of self.tasks) {\n\t\t\tfor(let d of t.dependencies) {\n\t\t\t\tself.dependency_map[d] = self.dependency_map[d] || [];\n\t\t\t\tself.dependency_map[d].push(t.id);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction prepare_dates() {\n\n\t\tfor(let task of self.tasks) {\n\t\t\t// set global start and end date\n\t\t\tif(!self.gantt_start || task._start < self.gantt_start) {\n\t\t\t\tself.gantt_start = task._start;\n\t\t\t}\n\t\t\tif(!self.gantt_end || task._end > self.gantt_end) {\n\t\t\t\tself.gantt_end = task._end;\n\t\t\t}\n\t\t}\n\t\tset_gantt_dates();\n\t\tsetup_dates();\n\t}\n\n\tfunction prepare_canvas() {\n\t\tself.canvas = Snap(self.element).addClass('gantt');\n\t}\n\n\tfunction render() {\n\t\tclear();\n\t\tsetup_groups();\n\t\tmake_grid();\n\t\tmake_dates();\n\t\tmake_bars();\n\t\tmake_arrows();\n\t\tmap_arrows_on_bars();\n\t\tset_width();\n\t\tset_scroll_position();\n\t\tbind_grid_click();\n\t}\n\n\tfunction clear() {\n\t\tself.canvas.clear();\n\t\tself._bars = [];\n\t\tself._arrows = [];\n\t}\n\n\tfunction set_gantt_dates() {\n\n\t\tif(view_is(['Quarter Day', 'Half Day'])) {\n\t\t\tself.gantt_start = self.gantt_start.clone().subtract(7, 'day');\n\t\t\tself.gantt_end = self.gantt_end.clone().add(7, 'day');\n\t\t} else if(view_is('Month')) {\n\t\t\tself.gantt_start = self.gantt_start.clone().startOf('year');\n\t\t\tself.gantt_end = self.gantt_end.clone().endOf('month').add(1, 'year');\n\t\t} else {\n\t\t\tself.gantt_start = self.gantt_start.clone().startOf('month').subtract(1, 'month');\n\t\t\tself.gantt_end = self.gantt_end.clone().endOf('month').add(1, 'month');\n\t\t}\n\t}\n\n\tfunction setup_dates() {\n\n\t\tself.dates = [];\n\t\tlet cur_date = null;\n\n\t\twhile(cur_date === null || cur_date < self.gantt_end) {\n\t\t\tif(!cur_date) {\n\t\t\t\tcur_date = self.gantt_start.clone();\n\t\t\t} else {\n\t\t\t\tcur_date = view_is('Month') ?\n\t\t\t\t\tcur_date.clone().add(1, 'month') :\n\t\t\t\t\tcur_date.clone().add(self.config.step, 'hours');\n\t\t\t}\n\t\t\tself.dates.push(cur_date);\n\t\t}\n\t}\n\n\tfunction setup_groups() {\n\n\t\tconst groups = ['grid', 'date', 'arrow', 'progress', 'bar', 'details'];\n\t\t// make group layers\n\t\tfor(let group of groups) {\n\t\t\tself.element_groups[group] = self.canvas.group().attr({'id': group});\n\t\t}\n\t}\n\n\tfunction set_scale(scale) {\n\t\tself.config.view_mode = scale;\n\n\t\tif(scale === 'Day') {\n\t\t\tself.config.step = 24;\n\t\t\tself.config.column_width = 38;\n\t\t} else if(scale === 'Half Day') {\n\t\t\tself.config.step = 24 / 2;\n\t\t\tself.config.column_width = 38;\n\t\t} else if(scale === 'Quarter Day') {\n\t\t\tself.config.step = 24 / 4;\n\t\t\tself.config.column_width = 38;\n\t\t} else if(scale === 'Week') {\n\t\t\tself.config.step = 24 * 7;\n\t\t\tself.config.column_width = 140;\n\t\t} else if(scale === 'Month') {\n\t\t\tself.config.step = 24 * 30;\n\t\t\tself.config.column_width = 120;\n\t\t}\n\t}\n\n\tfunction set_width() {\n\t\tconst cur_width = self.canvas.node.getBoundingClientRect().width;\n\t\tconst actual_width = self.canvas.getBBox().width;\n\t\tif(cur_width < actual_width) {\n\t\t\tself.canvas.attr('width', actual_width);\n\t\t}\n\t}\n\n\tfunction set_scroll_position() {\n\t\tconst parent_element = document.querySelector(self.element).parentElement;\n\t\tif(!parent_element) return;\n\n\t\tconst scroll_pos = get_min_date().diff(self.gantt_start, 'hours') /\n\t\t\tself.config.step * self.config.column_width;\n\t\tparent_element.scrollLeft = scroll_pos;\n\t}\n\n\tfunction get_min_date() {\n\t\tconst task = self.tasks.reduce((acc, curr) => {\n\t\t\treturn curr._start.isSameOrBefore(acc._start) ? curr : acc;\n\t\t});\n\t\treturn task._start;\n\t}\n\n\tfunction make_grid() {\n\t\tmake_grid_background();\n\t\tmake_grid_rows();\n\t\tmake_grid_header();\n\t\tmake_grid_ticks();\n\t\tmake_grid_highlights();\n\t}\n\n\tfunction make_grid_background() {\n\n\t\tconst grid_width = self.dates.length * self.config.column_width,\n\t\t\tgrid_height = self.config.header_height + self.config.padding +\n\t\t\t\t(self.config.bar.height + self.config.padding) * self.tasks.length;\n\n\t\tself.canvas.rect(0, 0, grid_width, grid_height)\n\t\t\t.addClass('grid-background')\n\t\t\t.appendTo(self.element_groups.grid);\n\n\t\tself.canvas.attr({\n\t\t\theight: grid_height + self.config.padding,\n\t\t\twidth: '100%'\n\t\t});\n\t}\n\n\tfunction make_grid_header() {\n\t\tconst header_width = self.dates.length * self.config.column_width,\n\t\t\theader_height = self.config.header_height + 10;\n\t\tself.canvas.rect(0, 0, header_width, header_height)\n\t\t\t.addClass('grid-header')\n\t\t\t.appendTo(self.element_groups.grid);\n\t}\n\n\tfunction make_grid_rows() {\n\n\t\tconst rows = self.canvas.group().appendTo(self.element_groups.grid),\n\t\t\tlines = self.canvas.group().appendTo(self.element_groups.grid),\n\t\t\trow_width = self.dates.length * self.config.column_width,\n\t\t\trow_height = self.config.bar.height + self.config.padding;\n\n\t\tlet row_y = self.config.header_height + self.config.padding / 2;\n\n\t\tfor(let task of self.tasks) { // eslint-disable-line\n\t\t\tself.canvas.rect(0, row_y, row_width, row_height)\n\t\t\t\t.addClass('grid-row')\n\t\t\t\t.appendTo(rows);\n\n\t\t\tself.canvas.line(0, row_y + row_height, row_width, row_y + row_height)\n\t\t\t\t.addClass('row-line')\n\t\t\t\t.appendTo(lines);\n\n\t\t\trow_y += self.config.bar.height + self.config.padding;\n\t\t}\n\t}\n\n\tfunction make_grid_ticks() {\n\t\tlet tick_x = 0,\n\t\t\ttick_y = self.config.header_height + self.config.padding / 2,\n\t\t\ttick_height = (self.config.bar.height + self.config.padding) * self.tasks.length;\n\n\t\tfor(let date of self.dates) {\n\t\t\tlet tick_class = 'tick';\n\t\t\t// thick tick for monday\n\t\t\tif(view_is('Day') && date.day() === 1) {\n\t\t\t\ttick_class += ' thick';\n\t\t\t}\n\t\t\t// thick tick for first week\n\t\t\tif(view_is('Week') && date.date() >= 1 && date.date() < 8) {\n\t\t\t\ttick_class += ' thick';\n\t\t\t}\n\t\t\t// thick ticks for quarters\n\t\t\tif(view_is('Month') && date.month() % 3 === 0) {\n\t\t\t\ttick_class += ' thick';\n\t\t\t}\n\n\t\t\tself.canvas.path(Snap.format('M {x} {y} v {height}', {\n\t\t\t\tx: tick_x,\n\t\t\t\ty: tick_y,\n\t\t\t\theight: tick_height\n\t\t\t}))\n\t\t\t.addClass(tick_class)\n\t\t\t.appendTo(self.element_groups.grid);\n\n\t\t\tif(view_is('Month')) {\n\t\t\t\ttick_x += date.daysInMonth() * self.config.column_width / 30;\n\t\t\t} else {\n\t\t\t\ttick_x += self.config.column_width;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction make_grid_highlights() {\n\n\t\t// highlight today's date\n\t\tif(view_is('Day')) {\n\t\t\tconst x = moment().startOf('day').diff(self.gantt_start, 'hours') /\n\t\t\t\t\tself.config.step * self.config.column_width;\n\t\t\tconst y = 0;\n\t\t\tconst width = self.config.column_width;\n\t\t\tconst height = (self.config.bar.height + self.config.padding) * self.tasks.length +\n\t\t\t\tself.config.header_height + self.config.padding / 2;\n\n\t\t\tself.canvas.rect(x, y, width, height)\n\t\t\t\t.addClass('today-highlight')\n\t\t\t\t.appendTo(self.element_groups.grid);\n\t\t}\n\t}\n\n\tfunction make_dates() {\n\n\t\tfor(let date of get_dates_to_draw()) {\n\t\t\tself.canvas.text(date.lower_x, date.lower_y, date.lower_text)\n\t\t\t\t.addClass('lower-text')\n\t\t\t\t.appendTo(self.element_groups.date);\n\n\t\t\tif(date.upper_text) {\n\t\t\t\tconst $upper_text = self.canvas.text(date.upper_x, date.upper_y, date.upper_text)\n\t\t\t\t\t.addClass('upper-text')\n\t\t\t\t\t.appendTo(self.element_groups.date);\n\n\t\t\t\t// remove out-of-bound dates\n\t\t\t\tif($upper_text.getBBox().x2 > self.element_groups.grid.getBBox().width) {\n\t\t\t\t\t$upper_text.remove();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction get_dates_to_draw() {\n\t\tlet last_date = null;\n\t\tconst dates = self.dates.map((date, i) => {\n\t\t\tconst d = get_date_info(date, last_date, i);\n\t\t\tlast_date = date;\n\t\t\treturn d;\n\t\t});\n\t\treturn dates;\n\t}\n\n\tfunction get_date_info(date, last_date, i) {\n\t\tif(!last_date) {\n\t\t\tlast_date = date.clone().add(1, 'year');\n\t\t}\n\t\tconst date_text = {\n\t\t\t'Quarter Day_lower': date.format('HH'),\n\t\t\t'Half Day_lower': date.format('HH'),\n\t\t\t'Day_lower': date.date() !== last_date.date() ? date.format('D') : '',\n\t\t\t'Week_lower': 'Week ' + date.format('W'),\n\t\t\t'Month_lower': date.format('MMMM'),\n\t\t\t'Quarter Day_upper': date.date() !== last_date.date() ? date.format('D MMM') : '',\n\t\t\t'Half Day_upper': date.date() !== last_date.date() ? date.format('D MMM') : '',\n\t\t\t'Day_upper': date.month() !== last_date.month() ? date.format('MMMM') : '',\n\t\t\t'Week_upper': date.month() !== last_date.month() ? date.format('MMMM') : '',\n\t\t\t'Month_upper': date.year() !== last_date.year() ? date.format('YYYY') : ''\n\t\t};\n\n\t\tconst base_pos = {\n\t\t\tx: i * self.config.column_width,\n\t\t\tlower_y: self.config.header_height,\n\t\t\tupper_y: self.config.header_height - 25\n\t\t};\n\n\t\tconst x_pos = {\n\t\t\t'Quarter Day_lower': (self.config.column_width * 4) / 2,\n\t\t\t'Quarter Day_upper': 0,\n\t\t\t'Half Day_lower': (self.config.column_width * 2) / 2,\n\t\t\t'Half Day_upper': 0,\n\t\t\t'Day_lower': self.config.column_width / 2,\n\t\t\t'Day_upper': (self.config.column_width * 30) / 2,\n\t\t\t'Week_lower': self.config.column_width / 2,\n\t\t\t'Week_upper': (self.config.column_width * 4) / 2,\n\t\t\t'Month_lower': (date.daysInMonth() * self.config.column_width / 30) / 2,\n\t\t\t'Month_upper': (self.config.column_width * 12) / 2\n\t\t};\n\n\t\treturn {\n\t\t\tupper_text: date_text[`${self.config.view_mode}_upper`],\n\t\t\tlower_text: date_text[`${self.config.view_mode}_lower`],\n\t\t\tupper_x: base_pos.x + x_pos[`${self.config.view_mode}_upper`],\n\t\t\tupper_y: base_pos.upper_y,\n\t\t\tlower_x: base_pos.x + x_pos[`${self.config.view_mode}_lower`],\n\t\t\tlower_y: base_pos.lower_y\n\t\t};\n\t}\n\n\tfunction make_arrows() {\n\t\tself._arrows = [];\n\t\tfor(let task of self.tasks) {\n\t\t\tlet arrows = [];\n\t\t\tarrows = task.dependencies.map(dep => {\n\t\t\t\tconst dependency = get_task(dep);\n\t\t\t\tif(!dependency) return;\n\n\t\t\t\tconst arrow = Arrow(\n\t\t\t\t\tself, // gt\n\t\t\t\t\tself._bars[dependency._index], // from_task\n\t\t\t\t\tself._bars[task._index] // to_task\n\t\t\t\t);\n\t\t\t\tself.element_groups.arrow.add(arrow.element);\n\t\t\t\treturn arrow; // eslint-disable-line\n\t\t\t});\n\t\t\tself._arrows = self._arrows.concat(arrows);\n\t\t}\n\t}\n\n\tfunction make_bars() {\n\n\t\tself._bars = self.tasks.map((task) => {\n\t\t\tconst bar = Bar(self, task);\n\t\t\tself.element_groups.bar.add(bar.group);\n\t\t\treturn bar;\n\t\t});\n\t}\n\n\tfunction map_arrows_on_bars() {\n\t\tfor(let bar of self._bars) {\n\t\t\tbar.arrows = self._arrows.filter(arrow => {\n\t\t\t\treturn (arrow.from_task.task.id === bar.task.id) ||\n\t\t\t\t\t(arrow.to_task.task.id === bar.task.id);\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction bind_grid_click() {\n\t\tself.element_groups.grid.click(() => {\n\t\t\tunselect_all();\n\t\t\tself.element_groups.details.addClass('hide');\n\t\t});\n\t}\n\n\tfunction unselect_all() {\n\t\tself.canvas.selectAll('.bar-wrapper').forEach(el => {\n\t\t\tel.removeClass('active');\n\t\t});\n\t}\n\tself.unselect_all = unselect_all;\n\n\tfunction view_is(modes) {\n\t\tif (typeof modes === 'string') {\n\t\t\treturn self.config.view_mode === modes;\n\t\t} else if(Array.isArray(modes)) {\n\t\t\tfor (let mode of modes) {\n\t\t\t\tif(self.config.view_mode === mode) return true;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}\n\tself.view_is = view_is;\n\n\tfunction get_task(id) {\n\t\treturn self.tasks.find((task) => {\n\t\t\treturn task.id === id;\n\t\t});\n\t}\n\n\tfunction get_bar(id) {\n\t\treturn self._bars.find((bar) => {\n\t\t\treturn bar.task.id === id;\n\t\t});\n\t}\n\tself.get_bar = get_bar; // required in Bar\n\n\tfunction trigger_event(event, args) {\n\t\tif(self.config['on_' + event]) {\n\t\t\tself.config['on_' + event].apply(null, args);\n\t\t}\n\t}\n\tself.trigger_event = trigger_event;\n\n\tinit();\n\n\treturn self;\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/eslint-loader!./src/Gantt.js\n **/","// style-loader: Adds some css to the DOM by adding a