From b33216274c81761cb929a17fd059bca2170c8294 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Tue, 14 Feb 2017 17:14:57 +0530 Subject: [PATCH] generate id if not given, custom popup html --- dist/frappe-gantt.js | 64 +++++++++++++++++++++++---------- dist/frappe-gantt.js.map | 2 +- src/Bar.js | 77 +++++++++++++++++++++++----------------- src/Gantt.js | 13 ++++++- src/gantt.scss | 32 +++++++++++------ 5 files changed, 124 insertions(+), 64 deletions(-) diff --git a/dist/frappe-gantt.js b/dist/frappe-gantt.js index a745235..2eb2784 100644 --- a/dist/frappe-gantt.js +++ b/dist/frappe-gantt.js @@ -107,7 +107,8 @@ return /******/ (function(modules) { // webpackBootstrap }, padding: 18, view_mode: 'Day', - date_format: 'YYYY-MM-DD' + date_format: 'YYYY-MM-DD', + custom_popup_html: null }; self.config = Object.assign({}, defaults, config); @@ -185,6 +186,12 @@ return /******/ (function(modules) { // webpackBootstrap } task.dependencies = deps; } + + // uids + if (!task.id) { + task.id = generate_id(task); + } + return task; }); } @@ -779,6 +786,10 @@ return /******/ (function(modules) { // webpackBootstrap }); } + function generate_id(task) { + return task.name + '_' + Math.random().toString(36).slice(2, 12); + } + function trigger_event(event, args) { if (self.config['on_' + event]) { self.config['on_' + event].apply(null, args); @@ -833,7 +844,7 @@ return /******/ (function(modules) { // webpackBootstrap // module - exports.push([module.id, ".gantt .grid-background {\n fill: none; }\n\n.gantt .grid-header {\n fill: #ffffff;\n stroke: #e0e0e0;\n stroke-width: 1.4; }\n\n.gantt .grid-row {\n fill: #ffffff; }\n\n.gantt .grid-row:nth-child(even) {\n fill: #f5f5f5; }\n\n.gantt .row-line {\n stroke: #ebeff2; }\n\n.gantt .tick {\n stroke: #e0e0e0;\n stroke-width: 0.2; }\n .gantt .tick.thick {\n stroke-width: 0.4; }\n\n.gantt .today-highlight {\n fill: #fcf8e3;\n opacity: 0.5; }\n\n.gantt #arrow {\n fill: none;\n stroke: #666;\n stroke-width: 1.4; }\n\n.gantt .bar {\n fill: #b8c2cc;\n stroke: #8D99A6;\n stroke-width: 0;\n transition: stroke-width .3s ease; }\n\n.gantt .bar-progress {\n fill: #a3a3ff; }\n\n.gantt .bar-invalid {\n fill: transparent;\n stroke: #8D99A6;\n stroke-width: 1;\n stroke-dasharray: 5; }\n .gantt .bar-invalid ~ .bar-label {\n fill: #555; }\n\n.gantt .bar-label {\n fill: #fff;\n dominant-baseline: central;\n text-anchor: middle;\n font-size: 12px;\n font-weight: lighter;\n letter-spacing: 0.8px; }\n .gantt .bar-label.big {\n fill: #555;\n text-anchor: start; }\n\n.gantt .handle {\n fill: #ddd;\n cursor: ew-resize;\n opacity: 0;\n visibility: hidden;\n transition: opacity .3s ease; }\n\n.gantt .bar-wrapper {\n cursor: pointer; }\n .gantt .bar-wrapper:hover .bar {\n stroke-width: 2; }\n .gantt .bar-wrapper:hover .handle {\n visibility: visible;\n opacity: 1; }\n .gantt .bar-wrapper.active .bar {\n stroke-width: 2; }\n\n.gantt .lower-text, .gantt .upper-text {\n font-size: 12px;\n text-anchor: middle; }\n\n.gantt .upper-text {\n fill: #555; }\n\n.gantt .lower-text {\n fill: #333; }\n\n.gantt #details {\n font-size: 14; }\n .gantt #details .details-container {\n stroke: #e0e0e0;\n stroke-width: 1.1;\n fill: #fff; }\n .gantt #details .details-heading {\n fill: #333;\n font-weight: 500; }\n .gantt #details .details-body {\n fill: #555; }\n\n.gantt .hide {\n display: none; }\n", "", {"version":3,"sources":["/./src/src/gantt.scss"],"names":[],"mappings":"AAYA;EAGE,WAAU,EACV;;AAJF;EAME,cAAa;EACb,gBAjBoB;EAkBpB,kBAAiB,EACjB;;AATF;EAWE,cAAa,EACb;;AAZF;EAcE,cAvBgB,EAwBhB;;AAfF;EAiBE,gBAzB0B,EA0B1B;;AAlBF;EAoBE,gBA9BoB;EA+BpB,kBAAiB,EAIjB;EAzBF;IAuBG,kBAAiB,EACjB;;AAxBH;EA2BE,cAlCoB;EAmCpB,aAAY,EACZ;;AA7BF;EAgCE,WAAU;EACV,aAvCe;EAwCf,kBAAiB,EACjB;;AAnCF;EAsCE,cAlDiB;EAmDjB,gBAlDkB;EAmDlB,gBAAe;EACf,kCAAiC,EACjC;;AA1CF;EA4CE,cA/CY,EAgDZ;;AA7CF;EA+CE,kBAAiB;EACjB,gBA3DkB;EA4DlB,gBAAe;EACf,oBAAmB,EAKnB;EAvDF;IAqDG,WA1Dc,EA2Dd;;AAtDH;EAyDE,WAAU;EACV,2BAA0B;EAC1B,oBAAmB;EACnB,gBAAe;EACf,qBAAoB;EACpB,sBAAqB,EAMrB;EApEF;IAiEG,WAtEc;IAuEd,mBAAkB,EAClB;;AAnEH;EAuEE,WAzEiB;EA0EjB,kBAAiB;EACjB,WAAU;EACV,mBAAkB;EAClB,6BAA4B,EAC5B;;AA5EF;EA+EE,gBAAe,EAkBf;EAjGF;IAmFI,gBAAe,EACf;EApFJ;IAuFI,oBAAmB;IACnB,WAAU,EACV;EAzFJ;IA8FI,gBAAe,EACf;;AA/FJ;EAoGE,gBAAe;EACf,oBAAmB,EACnB;;AAtGF;EAwGE,WA7Ge,EA8Gf;;AAzGF;EA2GE,WA/Ge,EAgHf;;AA5GF;EA+GE,cAAa,EAcb;EA7HF;IAkHG,gBA5HmB;IA6HnB,kBAAiB;IACjB,WAAU,EACV;EArHH;IAuHG,WA3Hc;IA4Hd,iBAAgB,EAChB;EAzHH;IA2HG,WAhIc,EAiId;;AA5HH;EAgIE,cAAa,EACb","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.lower-text, .upper-text {\n\t\tfont-size: 12px;\n\t\ttext-anchor: middle;\n\t}\n\t.upper-text {\n\t\tfill: $text-light;\n\t}\n\t.lower-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://"}]); + exports.push([module.id, ".gantt .grid-background {\n fill: none; }\n\n.gantt .grid-header {\n fill: #ffffff;\n stroke: #e0e0e0;\n stroke-width: 1.4; }\n\n.gantt .grid-row {\n fill: #ffffff; }\n\n.gantt .grid-row:nth-child(even) {\n fill: #f5f5f5; }\n\n.gantt .row-line {\n stroke: #ebeff2; }\n\n.gantt .tick {\n stroke: #e0e0e0;\n stroke-width: 0.2; }\n .gantt .tick.thick {\n stroke-width: 0.4; }\n\n.gantt .today-highlight {\n fill: #fcf8e3;\n opacity: 0.5; }\n\n.gantt #arrow {\n fill: none;\n stroke: #666;\n stroke-width: 1.4; }\n\n.gantt .bar {\n fill: #b8c2cc;\n stroke: #8D99A6;\n stroke-width: 0;\n transition: stroke-width .3s ease; }\n\n.gantt .bar-progress {\n fill: #a3a3ff; }\n\n.gantt .bar-invalid {\n fill: transparent;\n stroke: #8D99A6;\n stroke-width: 1;\n stroke-dasharray: 5; }\n .gantt .bar-invalid ~ .bar-label {\n fill: #555; }\n\n.gantt .bar-label {\n fill: #fff;\n dominant-baseline: central;\n text-anchor: middle;\n font-size: 12px;\n font-weight: lighter;\n letter-spacing: 0.8px; }\n .gantt .bar-label.big {\n fill: #555;\n text-anchor: start; }\n\n.gantt .handle {\n fill: #ddd;\n cursor: ew-resize;\n opacity: 0;\n visibility: hidden;\n transition: opacity .3s ease; }\n\n.gantt .bar-wrapper {\n cursor: pointer; }\n .gantt .bar-wrapper:hover .bar {\n stroke-width: 2; }\n .gantt .bar-wrapper:hover .handle {\n visibility: visible;\n opacity: 1; }\n .gantt .bar-wrapper.active .bar {\n stroke-width: 2; }\n\n.gantt .lower-text, .gantt .upper-text {\n font-size: 12px;\n text-anchor: middle; }\n\n.gantt .upper-text {\n fill: #555; }\n\n.gantt .lower-text {\n fill: #333; }\n\n.gantt #details .details-container {\n background: #fff;\n display: inline-block;\n padding: 12px; }\n .gantt #details .details-container h5, .gantt #details .details-container p {\n margin: 0; }\n .gantt #details .details-container h5 {\n font-size: 12px;\n font-weight: bold;\n margin-bottom: 10px;\n color: #555; }\n .gantt #details .details-container p {\n font-size: 12px;\n margin-bottom: 6px;\n color: #666; }\n .gantt #details .details-container p:last-child {\n margin-bottom: 0; }\n\n.gantt .hide {\n display: none; }\n", "", {"version":3,"sources":["/./src/src/gantt.scss"],"names":[],"mappings":"AAYA;EAGE,WAAU,EACV;;AAJF;EAME,cAAa;EACb,gBAjBoB;EAkBpB,kBAAiB,EACjB;;AATF;EAWE,cAAa,EACb;;AAZF;EAcE,cAvBgB,EAwBhB;;AAfF;EAiBE,gBAzB0B,EA0B1B;;AAlBF;EAoBE,gBA9BoB;EA+BpB,kBAAiB,EAIjB;EAzBF;IAuBG,kBAAiB,EACjB;;AAxBH;EA2BE,cAlCoB;EAmCpB,aAAY,EACZ;;AA7BF;EAgCE,WAAU;EACV,aAvCe;EAwCf,kBAAiB,EACjB;;AAnCF;EAsCE,cAlDiB;EAmDjB,gBAlDkB;EAmDlB,gBAAe;EACf,kCAAiC,EACjC;;AA1CF;EA4CE,cA/CY,EAgDZ;;AA7CF;EA+CE,kBAAiB;EACjB,gBA3DkB;EA4DlB,gBAAe;EACf,oBAAmB,EAKnB;EAvDF;IAqDG,WA1Dc,EA2Dd;;AAtDH;EAyDE,WAAU;EACV,2BAA0B;EAC1B,oBAAmB;EACnB,gBAAe;EACf,qBAAoB;EACpB,sBAAqB,EAMrB;EApEF;IAiEG,WAtEc;IAuEd,mBAAkB,EAClB;;AAnEH;EAuEE,WAzEiB;EA0EjB,kBAAiB;EACjB,WAAU;EACV,mBAAkB;EAClB,6BAA4B,EAC5B;;AA5EF;EA+EE,gBAAe,EAkBf;EAjGF;IAmFI,gBAAe,EACf;EApFJ;IAuFI,oBAAmB;IACnB,WAAU,EACV;EAzFJ;IA8FI,gBAAe,EACf;;AA/FJ;EAoGE,gBAAe;EACf,oBAAmB,EACnB;;AAtGF;EAwGE,WA7Ge,EA8Gf;;AAzGF;EA2GE,WA/Ge,EAgHf;;AA5GF;EA+GE,iBAAgB;EAChB,sBAAqB;EACrB,cAAa,EAsBb;EAvIF;IAoHG,UAAS,EACT;EArHH;IAwHG,gBAAe;IACf,kBAAiB;IACjB,oBAAmB;IACnB,YAhIc,EAiId;EA5HH;IA+HG,gBAAe;IACf,mBAAkB;IAClB,YAvIc,EAwId;EAlIH;IAqIG,iBAAgB,EAChB;;AAtIH;EA0IE,cAAa,EACb","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.lower-text, .upper-text {\n\t\tfont-size: 12px;\n\t\ttext-anchor: middle;\n\t}\n\t.upper-text {\n\t\tfill: $text-light;\n\t}\n\t.lower-text {\n\t\tfill: $text-color;\n\t}\n\n\t#details .details-container {\n\t\tbackground: #fff;\n\t\tdisplay: inline-block;\n\t\tpadding: 12px;\n\n\t\th5, p {\n\t\t\tmargin: 0;\n\t\t}\n\n\t\th5 {\n\t\t\tfont-size: 12px;\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 10px;\n\t\t\tcolor: $text-light;\n\t\t}\n\n\t\tp {\n\t\t\tfont-size: 12px;\n\t\t\tmargin-bottom: 6px;\n\t\t\tcolor: $text-muted;\n\t\t}\n\n\t\tp:last-child {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n\n\t.hide {\n\t\tdisplay: none;\n\t}\n}"],"sourceRoot":"webpack://"}]); // exports @@ -1278,10 +1289,9 @@ return /******/ (function(modules) { // webpackBootstrap if (!self.details_box) { self.details_box = gt.canvas.group().addClass('details-wrapper hide').attr('data-task', self.task.id).appendTo(popover_group); - gt.canvas.rect(0, 0, 0, 110, 2, 2).addClass('details-container').appendTo(self.details_box); - gt.canvas.text(0, 0, '').attr({ dx: 10, dy: 30 }).addClass('details-heading').appendTo(self.details_box); - gt.canvas.text(0, 0, '').attr({ dx: 10, dy: 65 }).addClass('details-body').appendTo(self.details_box); - gt.canvas.text(0, 0, '').attr({ dx: 10, dy: 90 }).addClass('details-body').appendTo(self.details_box); + + render_details(); + var f = gt.canvas.filter(Snap.filter.shadow(0, 1, 1, '#666', 0.6)); self.details_box.attr({ filter: f @@ -1296,7 +1306,6 @@ return /******/ (function(modules) { // webpackBootstrap popover_group.selectAll('.details-wrapper').forEach(function (el) { return el.addClass('hide'); }); - render_details(); self.details_box.removeClass('hide'); }); } @@ -1307,23 +1316,35 @@ return /******/ (function(modules) { // webpackBootstrap y = _get_details_position.y; self.details_box.transform('t' + x + ',' + y); + self.details_box.clear(); - var start_date = self.task._start.format('MMM D'), - end_date = self.task._end.format('MMM D'), - heading = self.task.name + ': ' + start_date + ' - ' + end_date; + var html = get_details_html(); + var foreign_object = Snap.parse('\n\t\t\t\t\n\t\t\t\t\t' + html + '\n\t\t\t\t\n\t\t\t\t'); + self.details_box.append(foreign_object); + } - var $heading = self.details_box.select('.details-heading').attr('text', heading); + function get_details_html() { - var bbox = $heading.getBBox(); - self.details_box.select('.details-container').attr({ width: bbox.width + 20 }); + // custom html in config + if (gt.config.custom_popup_html) { + var _html = gt.config.custom_popup_html; + if (typeof _html === 'string') { + return _html; + } + if (isFunction(_html)) { + return _html(task); + } + } - var duration = self.task._end.diff(self.task._start, 'days'), - body1 = 'Duration: ' + (duration + 1) + ' days', - body2 = self.task.progress ? 'Progress: ' + self.task.progress : ''; + var start_date = self.task._start.format('MMM D'); + var end_date = self.task._end.format('MMM D'); + var heading = self.task.name + ': ' + start_date + ' - ' + end_date; - var $body = self.details_box.selectAll('.details-body'); - $body[0].attr('text', body1); - $body[1].attr('text', body2); + var line_1 = 'Duration: ' + self.duration + ' days'; + var line_2 = self.task.progress ? 'Progress: ' + self.task.progress : null; + + var html = '\n\t\t\t
\n\t\t\t\t
' + heading + '
\n\t\t\t\t

' + line_1 + '

\n\t\t\t\t' + (line_2 ? '

' + line_2 + '

' : '') + '\n\t\t\t
\n\t\t'; + return html; } function get_details_position() { @@ -1673,6 +1694,11 @@ return /******/ (function(modules) { // webpackBootstrap self.details_box && self.details_box.transform('t' + x + ',' + y); } + function isFunction(functionToCheck) { + var getType = {}; + return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; + } + init(); return self; diff --git a/dist/frappe-gantt.js.map b/dist/frappe-gantt.js.map index ca1a172..6d1f48f 100644 --- a/dist/frappe-gantt.js.map +++ b/dist/frappe-gantt.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap dcbfe20e95af2daaba75","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","unselect_all","view_is","get_bar","trigger_event","refresh","view_mode","defaults","header_height","column_width","step","view_modes","bar","height","arrow","curve","padding","date_format","Object","assign","reset_variables","_tasks","_bars","_arrows","element_groups","updated_tasks","mode","set_scale","prepare","render","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","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","details","selectAll","forEach","el","removeClass","modes","Array","isArray","find","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","handle_width","polygon","get_progress_polygon_points","bar_progress","setup_click_event","show_details","bind_resize","bind_drag","bind_resize_progress","popover_group","details_box","select","dx","dy","f","shadow","e","render_details","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","xs","valid_x","prev","update_attr","update_handle_position","update_progressbar_position","update_arrow_position","update_details_position","hasClass","toggleClass","compute_start_end_date","new_start_date","new_end_date","new_progress","compute_progress","setTimeout","x_in_units","width_in_units","parseInt","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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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;;;;;;;;;;;;mBC5OwB0K,G;AATxB;AACA;;;;;;;;AAQe,UAASA,GAAT,CAAaC,EAAb,EAAiBrI,IAAjB,EAAuB;;AAErC,MAAMtC,OAAO,EAAb;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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 dcbfe20e95af2daaba75\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\n\t\t// expose methods\n\t\tself.change_view_mode = change_view_mode;\n\t\tself.unselect_all = unselect_all;\n\t\tself.view_is = view_is;\n\t\tself.get_bar = get_bar;\n\t\tself.trigger_event = trigger_event;\n\t\tself.refresh = refresh;\n\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\t\tself.config = Object.assign({}, defaults, config);\n\n\t\treset_variables(tasks);\n\t}\n\n\tfunction reset_variables(tasks) {\n\n\t\tself.element = element;\n\t\tself._tasks = tasks;\n\n\t\tself._bars = [];\n\t\tself._arrows = [];\n\t\tself.element_groups = {};\n\t}\n\n\tfunction refresh(updated_tasks) {\n\t\treset_variables(updated_tasks);\n\t\tchange_view_mode(self.config.view_mode);\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}\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\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\tself.gantt_start = self.gantt_end = null;\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\tif(self.canvas) return;\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 - 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': date.month() !== last_date.month() ?\n\t\t\t\tdate.format('D MMM') : date.format('D'),\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() ?\n\t\t\t\tdate.month() !== last_date.month() ?\n\t\t\t\tdate.format('D MMM') : date.format('D') : '',\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': 0,\n\t\t\t'Week_upper': (self.config.column_width * 4) / 2,\n\t\t\t'Month_lower': self.config.column_width / 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\n\t\t\t\t.selectAll('.details-wrapper')\n\t\t\t\t.forEach(el => el.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\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\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\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\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