From 65be650d8f9ac47d6c0a6036948271b5cc4fcb5a Mon Sep 17 00:00:00 2001 From: Toilal Date: Fri, 28 Nov 2014 18:36:02 +0100 Subject: [PATCH] chore(release) Release v1.0.0-rc7 --- Gruntfile.js | 2 +- assets/angular-gantt-bounds-plugin.js | 2 +- assets/angular-gantt-drawtask-plugin.js | 2 +- assets/angular-gantt-labels-plugin.js | 2 +- assets/angular-gantt-movable-plugin.js | 2 +- assets/angular-gantt-plugins.js | 2 +- assets/angular-gantt-progress-plugin.js | 2 +- assets/angular-gantt-sortable-plugin.js | 2 +- assets/angular-gantt-tooltips-plugin.js | 2 +- assets/angular-gantt.js | 2 +- bower.json | 2 +- demo/bower.json | 2 +- demo/dist/scripts/vendor.js | 4 +- demo/package.json | 2 +- dist/angular-gantt-bounds-plugin.js | 2 +- dist/angular-gantt-bounds-plugin.min.js | 2 +- dist/angular-gantt-drawtask-plugin.js | 2 +- dist/angular-gantt-drawtask-plugin.min.js | 2 +- dist/angular-gantt-labels-plugin.css | 1 - dist/angular-gantt-labels-plugin.js | 2 +- dist/angular-gantt-labels-plugin.min.css | 2 +- dist/angular-gantt-labels-plugin.min.js | 2 +- dist/angular-gantt-movable-plugin.css | 2 + dist/angular-gantt-movable-plugin.js | 96 +++---- dist/angular-gantt-movable-plugin.js.map | 2 +- dist/angular-gantt-movable-plugin.min.css | 2 +- dist/angular-gantt-movable-plugin.min.js | 4 +- dist/angular-gantt-movable-plugin.min.js.map | 2 +- dist/angular-gantt-plugins.css | 3 +- dist/angular-gantt-plugins.js | 249 +++++++++++------- dist/angular-gantt-plugins.js.map | 2 +- dist/angular-gantt-plugins.min.css | 2 +- dist/angular-gantt-plugins.min.js | 4 +- dist/angular-gantt-plugins.min.js.map | 2 +- dist/angular-gantt-progress-plugin.js | 2 +- dist/angular-gantt-progress-plugin.min.js | 2 +- dist/angular-gantt-sortable-plugin.js | 151 +++++++---- dist/angular-gantt-sortable-plugin.js.map | 2 +- dist/angular-gantt-sortable-plugin.min.js | 4 +- dist/angular-gantt-sortable-plugin.min.js.map | 2 +- dist/angular-gantt-tooltips-plugin.js | 2 +- dist/angular-gantt-tooltips-plugin.min.js | 2 +- dist/angular-gantt.css | 6 - dist/angular-gantt.js | 241 ++++++++++++----- dist/angular-gantt.js.map | 2 +- dist/angular-gantt.min.css | 2 +- dist/angular-gantt.min.js | 8 +- dist/angular-gantt.min.js.map | 2 +- package.json | 2 +- 49 files changed, 545 insertions(+), 300 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index fa37cd2b6..8a8562e55 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -296,7 +296,7 @@ module.exports = function(grunt) { grunt.registerTask('buildDemo', ['run:buildDemo']); - grunt.registerTask('buildSite', ['clean:site', 'run:buildDocs', 'replace:site', 'replace:siteMkdocsFix', 'run:buildDemo', 'copy:demoToSite', 'copy:ghPagesToSite']); + grunt.registerTask('buildSite', ['clean:site', 'run:buildDocs', 'run:buildDemo', 'copy:demoToSite', 'copy:ghPagesToSite', 'replace:site', 'replace:siteMkdocsFix']); grunt.registerTask('uploadSite', ['gh-pages']); diff --git a/assets/angular-gantt-bounds-plugin.js b/assets/angular-gantt-bounds-plugin.js index 023ccd175..2fe77900c 100644 --- a/assets/angular-gantt-bounds-plugin.js +++ b/assets/angular-gantt-bounds-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/assets/angular-gantt-drawtask-plugin.js b/assets/angular-gantt-drawtask-plugin.js index bcef81af7..15147e865 100644 --- a/assets/angular-gantt-drawtask-plugin.js +++ b/assets/angular-gantt-drawtask-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/assets/angular-gantt-labels-plugin.js b/assets/angular-gantt-labels-plugin.js index b544af1d6..d294f257f 100644 --- a/assets/angular-gantt-labels-plugin.js +++ b/assets/angular-gantt-labels-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/assets/angular-gantt-movable-plugin.js b/assets/angular-gantt-movable-plugin.js index ee10faa22..c17003e55 100644 --- a/assets/angular-gantt-movable-plugin.js +++ b/assets/angular-gantt-movable-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/assets/angular-gantt-plugins.js b/assets/angular-gantt-plugins.js index e684c6d22..5199d1a1a 100644 --- a/assets/angular-gantt-plugins.js +++ b/assets/angular-gantt-plugins.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/assets/angular-gantt-progress-plugin.js b/assets/angular-gantt-progress-plugin.js index 2059c5271..5900e6c17 100644 --- a/assets/angular-gantt-progress-plugin.js +++ b/assets/angular-gantt-progress-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/assets/angular-gantt-sortable-plugin.js b/assets/angular-gantt-sortable-plugin.js index 0e35ecc58..2af6c79e0 100644 --- a/assets/angular-gantt-sortable-plugin.js +++ b/assets/angular-gantt-sortable-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/assets/angular-gantt-tooltips-plugin.js b/assets/angular-gantt-tooltips-plugin.js index c85a0db5e..f0fbd3b19 100644 --- a/assets/angular-gantt-tooltips-plugin.js +++ b/assets/angular-gantt-tooltips-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/assets/angular-gantt.js b/assets/angular-gantt.js index 461e4065f..58983b05d 100644 --- a/assets/angular-gantt.js +++ b/assets/angular-gantt.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/bower.json b/bower.json index 977f1b7ce..6d437c10f 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "angular-gantt", - "version": "1.0.0-rc6", + "version": "1.0.0-rc7", "homepage": "https://github.com/angular-gantt/angular-gantt", "authors": [ "Marco Schweighauser", diff --git a/demo/bower.json b/demo/bower.json index 0c6c55b87..b3e581553 100644 --- a/demo/bower.json +++ b/demo/bower.json @@ -1,6 +1,6 @@ { "name": "angular-gantt-demo", - "version": "1.0.0-rc6", + "version": "1.0.0-rc7", "homepage": "https://github.com/angular-gantt-demo/angular-gantt", "authors": [ "Marco Schweighauser", diff --git a/demo/dist/scripts/vendor.js b/demo/dist/scripts/vendor.js index 214842044..f9845ee92 100644 --- a/demo/dist/scripts/vendor.js +++ b/demo/dist/scripts/vendor.js @@ -36676,7 +36676,7 @@ angular.module("ang-drag-drop",[]) /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com @@ -41082,7 +41082,7 @@ angular.module('gantt.templates', []).run(['$templateCache', function($templateC //# sourceMappingURL=angular-gantt.js.map /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/demo/package.json b/demo/package.json index 49b3e946f..26110ef1b 100644 --- a/demo/package.json +++ b/demo/package.json @@ -1,6 +1,6 @@ { "name": "angular-gantt-demo", - "version": "1.0.0-rc6", + "version": "1.0.0-rc7", "description": "Gantt chart component for AngularJS - Demo", "author": "Marco Schweighauser", "contributors": [ diff --git a/dist/angular-gantt-bounds-plugin.js b/dist/angular-gantt-bounds-plugin.js index 023ccd175..2fe77900c 100644 --- a/dist/angular-gantt-bounds-plugin.js +++ b/dist/angular-gantt-bounds-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/dist/angular-gantt-bounds-plugin.min.js b/dist/angular-gantt-bounds-plugin.min.js index d6dfe8e98..979aac138 100644 --- a/dist/angular-gantt-bounds-plugin.min.js +++ b/dist/angular-gantt-bounds-plugin.min.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/dist/angular-gantt-drawtask-plugin.js b/dist/angular-gantt-drawtask-plugin.js index bcef81af7..15147e865 100644 --- a/dist/angular-gantt-drawtask-plugin.js +++ b/dist/angular-gantt-drawtask-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/dist/angular-gantt-drawtask-plugin.min.js b/dist/angular-gantt-drawtask-plugin.min.js index ea938b17b..3ed8a0e85 100644 --- a/dist/angular-gantt-drawtask-plugin.min.js +++ b/dist/angular-gantt-drawtask-plugin.min.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/dist/angular-gantt-labels-plugin.css b/dist/angular-gantt-labels-plugin.css index 681b8f87f..06aecb58c 100644 --- a/dist/angular-gantt-labels-plugin.css +++ b/dist/angular-gantt-labels-plugin.css @@ -21,7 +21,6 @@ .gantt-labels-header { overflow: hidden; - border-bottom: 1px solid #dddddd; } .gantt-labels-body { diff --git a/dist/angular-gantt-labels-plugin.js b/dist/angular-gantt-labels-plugin.js index b544af1d6..d294f257f 100644 --- a/dist/angular-gantt-labels-plugin.js +++ b/dist/angular-gantt-labels-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/dist/angular-gantt-labels-plugin.min.css b/dist/angular-gantt-labels-plugin.min.css index 7f72c61ed..c3701e64a 100644 --- a/dist/angular-gantt-labels-plugin.min.css +++ b/dist/angular-gantt-labels-plugin.min.css @@ -1 +1 @@ -.gantt-row-label span{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:inline-block;text-align:center;padding-top:.5em;overflow:hidden;text-overflow:clip;padding-left:12px;padding-right:12px}.gantt-row-label{overflow:hidden;white-space:nowrap}.gantt-labels-header{overflow:hidden;border-bottom:1px solid #ddd}.gantt-labels-body{overflow:hidden}.gantt-labels-header-row{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;white-space:nowrap} \ No newline at end of file +.gantt-row-label span{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:inline-block;text-align:center;padding-top:.5em;overflow:hidden;text-overflow:clip;padding-left:12px;padding-right:12px}.gantt-row-label{overflow:hidden;white-space:nowrap}.gantt-labels-body,.gantt-labels-header{overflow:hidden}.gantt-labels-header-row{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;white-space:nowrap} \ No newline at end of file diff --git a/dist/angular-gantt-labels-plugin.min.js b/dist/angular-gantt-labels-plugin.min.js index 73e859419..97baeffbb 100644 --- a/dist/angular-gantt-labels-plugin.min.js +++ b/dist/angular-gantt-labels-plugin.min.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/dist/angular-gantt-movable-plugin.css b/dist/angular-gantt-movable-plugin.css index 072ed3934..1b3480e9f 100644 --- a/dist/angular-gantt-movable-plugin.css +++ b/dist/angular-gantt-movable-plugin.css @@ -1,4 +1,6 @@ .gantt-task-moving, .gantt-task-resizing { + z-index: 750 !important; + opacity: 0.6; filter: alpha(opacity=60); diff --git a/dist/angular-gantt-movable-plugin.js b/dist/angular-gantt-movable-plugin.js index e418e068f..c17003e55 100644 --- a/dist/angular-gantt-movable-plugin.js +++ b/dist/angular-gantt-movable-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com @@ -44,6 +44,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git var _moveEvents = 'touchmove mousemove'; var _releaseEvents = 'touchend mouseup'; + var taskWithSmallWidth = 15; var resizeAreaWidthBig = 5; var resizeAreaWidthSmall = 3; var scrollSpeed = 15; @@ -79,10 +80,10 @@ Github: https://github.com/angular-gantt/angular-gantt.git taskElement.on('mousemove', function(evt) { var enabled = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'enabled', scope.enabled); - if (enabled) { + if (enabled && !taskScope.task.isMoving) { var taskOffsetX = mouseOffset.getOffset(evt).x; var mode = getMoveMode(taskOffsetX); - if (mode !== '' && (taskScope.task.isMoving || mode !== 'M')) { + if (mode !== '' && mode !== 'M') { taskElement.css('cursor', getCursor(mode)); } else { taskElement.css('cursor', ''); @@ -90,22 +91,23 @@ Github: https://github.com/angular-gantt/angular-gantt.git } }); - var handleMove = function(mode, evt) { - moveTask(mode, evt); - scrollScreen(mode, evt); + var handleMove = function(evt) { + moveTask(evt); + scrollScreen(evt); }; - var moveTask = function(mode, evt) { + var moveTask = function(evt) { var mousePos = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt); var x = mousePos.x; taskScope.task.mouseOffsetX = x; - if (mode === 'M') { + if (taskScope.task.moveMode === 'M') { var allowRowSwitching = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowRowSwitching', scope.allowRowSwitching); if (allowRowSwitching) { var scrollRect = ganttScrollElement[0].getBoundingClientRect(); + var rowCenterLeft = scrollRect.left + scrollRect.width / 2; - var targetRowElement = utils.findElementFromPoint(scrollRect.left, evt.clientY, function(element) { + var targetRowElement = utils.findElementFromPoint(rowCenterLeft, evt.clientY, function(element) { return angular.element(element).hasClass('gantt-row'); }); var rows = ganttCtrl.gantt.rowsManager.rows; @@ -129,6 +131,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git var allowMoving = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowMoving', scope.allowMoving); if (allowMoving) { x = x - mouseStartOffsetX; + if (taskScope.taskOutOfRange !== 'truncate') { if (x < 0) { x = 0; @@ -136,29 +139,36 @@ Github: https://github.com/angular-gantt/angular-gantt.git x = taskScope.gantt.width - taskScope.task.width; } } + taskScope.task.moveTo(x, true); taskScope.$digest(); taskScope.row.rowsManager.gantt.api.tasks.raise.move(taskScope.task); } - } else if (mode === 'E') { - if (taskScope.taskOutOfRange !== 'truncate') { - if (x < taskScope.task.left) { - x = taskScope.task.left; - } else if (x > taskScope.gantt.width) { - x = taskScope.gantt.width; - } + } else if (taskScope.task.moveMode === 'E') { + if (x <= taskScope.task.left) { + x = taskScope.task.left; + taskScope.task.moveMode = 'W'; + setGlobalCursor(getCursor(taskScope.task.moveMode )); + } + + if (taskScope.taskOutOfRange !== 'truncate' && x >= taskScope.gantt.width) { + x = taskScope.gantt.width; } + taskScope.task.setTo(x, true); taskScope.$digest(); taskScope.row.rowsManager.gantt.api.tasks.raise.resize(taskScope.task); } else { - if (taskScope.taskOutOfRange !== 'truncate') { - if (x > taskScope.task.left + taskScope.task.width) { - x = taskScope.task.left + taskScope.task.width; - } else if (x < 0) { - x = 0; - } + if (x > taskScope.task.left + taskScope.task.width) { + x = taskScope.task.left + taskScope.task.width; + taskScope.task.moveMode = 'E'; + setGlobalCursor(getCursor(taskScope.task.moveMode )); } + + if (taskScope.taskOutOfRange !== 'truncate' && x < 0) { + x = 0; + } + taskScope.task.setFrom(x, true); taskScope.$digest(); taskScope.row.rowsManager.gantt.api.tasks.raise.resize(taskScope.task); @@ -167,7 +177,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git taskHasBeenChanged = true; }; - var scrollScreen = function(mode, evt) { + var scrollScreen = function(evt) { var mousePos = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt); var leftScreenBorder = ganttScrollElement[0].scrollLeft; var screenWidth = ganttScrollElement[0].offsetWidth; @@ -193,7 +203,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git if (keepOnScrolling) { scrollInterval = $timeout(function() { - handleMove(mode, evt); + handleMove(evt); }, 100, true); } }; @@ -214,7 +224,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git // Define resize&move area. Make sure the move area does not get too small. if (allowResizing) { - distance = taskElement[0].offsetWidth < 10 ? resizeAreaWidthSmall : resizeAreaWidthBig; + distance = taskElement[0].offsetWidth < taskWithSmallWidth ? resizeAreaWidthSmall : resizeAreaWidthBig; } if (allowResizing && x > taskElement[0].offsetWidth - distance) { @@ -239,6 +249,17 @@ Github: https://github.com/angular-gantt/angular-gantt.git } }; + var setGlobalCursor = function(cursor) { + taskElement.css('cursor', cursor); + angular.element($document[0].body).css({ + '-moz-user-select': cursor === '' ? '': '-moz-none', + '-webkit-user-select': cursor === '' ? '': 'none', + '-ms-user-select': cursor === '' ? '': 'none', + 'user-select': cursor === '' ? '': 'none', + 'cursor': cursor + }); + }; + var enableMoveMode = function(mode, x) { // Clone taskModel if (taskScope.task.originalModel === undefined) { @@ -260,7 +281,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git } // Init mouse start variables (if tasks was not move from another row) - if (!taskScope.task.isMoving) { + if (!taskScope.task.isMoving && !taskScope.task.isResizing) { moveStartX = x; mouseStartOffsetX = x - taskScope.task.modelLeft; } @@ -282,7 +303,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git // Without this check, task.changed event is not fired for faster moves. // See github issue #190 clearScrollInterval(); - handleMove(mode, evt); + handleMove(evt); } }; var moveSmartEvent = smartEvent(taskScope, windowElement, _moveEvents, taskMoveHandler); @@ -297,15 +318,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git taskScope.$digest(); }).bindOnce(); - // Show mouse move/resize cursor - taskElement.css('cursor', getCursor(mode)); - angular.element($document[0].body).css({ - '-moz-user-select': '-moz-none', - '-webkit-user-select': 'none', - '-ms-user-select': 'none', - 'user-select': 'none', - 'cursor': getCursor(mode) - }); + setGlobalCursor(getCursor(mode)); }; var disableMoveMode = function() { @@ -334,14 +347,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git clearScrollInterval(); // Set mouse cursor back to default - taskElement.css('cursor', ''); - angular.element($document[0].body).css({ - '-moz-user-select': '', - '-webkit-user-select': '', - '-ms-user-select': '', - 'user-select': '', - 'cursor': '' - }); + setGlobalCursor(''); // Raise move end event if (taskScope.task.moveMode === 'M') { @@ -361,8 +367,8 @@ Github: https://github.com/angular-gantt/angular-gantt.git }; if (taskScope.task.isResizing) { - delete taskScope.task.isResizing; enableMoveMode('E', taskScope.task.mouseOffsetX); + delete taskScope.task.isResizing; } else if (taskScope.task.isMoving) { // In case the task has been moved to another row a new controller is is created by angular. // Enable the move mode again if this was the case. diff --git a/dist/angular-gantt-movable-plugin.js.map b/dist/angular-gantt-movable-plugin.js.map index 0af1fd1d0..79ea8bafb 100644 --- a/dist/angular-gantt-movable-plugin.js.map +++ b/dist/angular-gantt-movable-plugin.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/plugins/movable.js","../src/plugins/movable/movableOptions.factory.js"],"names":[],"mappings":"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","file":"angular-gantt-movable-plugin.js","sourcesContent":["(function(){\n 'use strict';\n angular.module('gantt.movable', ['gantt']).directive('ganttMovable', ['ganttMouseButton', 'ganttMouseOffset', 'ganttSmartEvent', 'ganttMovableOptions', 'ganttUtils', '$window', '$document', '$timeout',\n function(mouseButton, mouseOffset, smartEvent, movableOptions, utils, $window, $document, $timeout) {\n // Provides moving and resizing of tasks\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?',\n allowMoving: '=?',\n allowResizing: '=?',\n allowRowSwitching: '=?'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n // Load options from global options attribute.\n if (scope.options && typeof(scope.options.movable) === 'object') {\n for (var option in scope.options.movable) {\n scope[option] = scope.options[option];\n }\n }\n\n movableOptions.initialize(scope);\n\n api.registerEvent('tasks', 'move');\n api.registerEvent('tasks', 'moveBegin');\n api.registerEvent('tasks', 'moveEnd');\n api.registerEvent('tasks', 'resize');\n api.registerEvent('tasks', 'resizeBegin');\n api.registerEvent('tasks', 'resizeEnd');\n api.registerEvent('tasks', 'change');\n\n var _hasTouch = ('ontouchstart' in $window) || $window.DocumentTouch && $document[0] instanceof $window.DocumentTouch;\n var _pressEvents = 'touchstart mousedown';\n var _moveEvents = 'touchmove mousemove';\n var _releaseEvents = 'touchend mouseup';\n\n var resizeAreaWidthBig = 5;\n var resizeAreaWidthSmall = 3;\n var scrollSpeed = 15;\n var scrollTriggerDistance = 5;\n var mouseStartOffsetX;\n var moveStartX;\n\n api.directives.on.new(scope, function(directiveName, taskScope, taskElement) {\n if (directiveName === 'ganttTask') {\n var windowElement = angular.element($window);\n var ganttBodyElement = taskScope.row.rowsManager.gantt.body.$element;\n var ganttScrollElement = taskScope.row.rowsManager.gantt.scroll.$element;\n\n var taskHasBeenChanged = false;\n var scrollInterval;\n\n taskElement.on(_pressEvents, function(evt) {\n evt.preventDefault();\n if (_hasTouch) {\n evt = mouseOffset.getTouch(evt);\n }\n var enabled = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'enabled', scope.enabled);\n if (enabled) {\n var taskOffsetX = mouseOffset.getOffset(evt).x;\n var mode = getMoveMode(taskOffsetX);\n if (mode !== '' && mouseButton.getButton(evt) === 1) {\n var bodyOffsetX = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt).x;\n enableMoveMode(mode, bodyOffsetX);\n }\n taskScope.$digest();\n }\n });\n\n taskElement.on('mousemove', function(evt) {\n var enabled = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'enabled', scope.enabled);\n if (enabled) {\n var taskOffsetX = mouseOffset.getOffset(evt).x;\n var mode = getMoveMode(taskOffsetX);\n if (mode !== '' && (taskScope.task.isMoving || mode !== 'M')) {\n taskElement.css('cursor', getCursor(mode));\n } else {\n taskElement.css('cursor', '');\n }\n }\n });\n\n var handleMove = function(mode, evt) {\n moveTask(mode, evt);\n scrollScreen(mode, evt);\n };\n\n var moveTask = function(mode, evt) {\n var mousePos = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt);\n var x = mousePos.x;\n taskScope.task.mouseOffsetX = x;\n\n if (mode === 'M') {\n var allowRowSwitching = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowRowSwitching', scope.allowRowSwitching);\n if (allowRowSwitching) {\n var scrollRect = ganttScrollElement[0].getBoundingClientRect();\n\n var targetRowElement = utils.findElementFromPoint(scrollRect.left, evt.clientY, function(element) {\n return angular.element(element).hasClass('gantt-row');\n });\n var rows = ganttCtrl.gantt.rowsManager.rows;\n var targetRow;\n for (var i= 0, l=rows.length; i= taskScope.gantt.width) {\n x = taskScope.gantt.width - taskScope.task.width;\n }\n }\n taskScope.task.moveTo(x, true);\n taskScope.$digest();\n taskScope.row.rowsManager.gantt.api.tasks.raise.move(taskScope.task);\n }\n } else if (mode === 'E') {\n if (taskScope.taskOutOfRange !== 'truncate') {\n if (x < taskScope.task.left) {\n x = taskScope.task.left;\n } else if (x > taskScope.gantt.width) {\n x = taskScope.gantt.width;\n }\n }\n taskScope.task.setTo(x, true);\n taskScope.$digest();\n taskScope.row.rowsManager.gantt.api.tasks.raise.resize(taskScope.task);\n } else {\n if (taskScope.taskOutOfRange !== 'truncate') {\n if (x > taskScope.task.left + taskScope.task.width) {\n x = taskScope.task.left + taskScope.task.width;\n } else if (x < 0) {\n x = 0;\n }\n }\n taskScope.task.setFrom(x, true);\n taskScope.$digest();\n taskScope.row.rowsManager.gantt.api.tasks.raise.resize(taskScope.task);\n }\n\n taskHasBeenChanged = true;\n };\n\n var scrollScreen = function(mode, evt) {\n var mousePos = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt);\n var leftScreenBorder = ganttScrollElement[0].scrollLeft;\n var screenWidth = ganttScrollElement[0].offsetWidth;\n var scrollWidth = ganttScrollElement[0].scrollWidth;\n var rightScreenBorder = leftScreenBorder + screenWidth;\n var keepOnScrolling = false;\n\n if (mousePos.x < moveStartX) {\n // Scroll to the left\n if (leftScreenBorder > 0 && mousePos.x <= leftScreenBorder + scrollTriggerDistance) {\n mousePos.x -= scrollSpeed;\n keepOnScrolling = true;\n taskScope.row.rowsManager.gantt.api.scroll.left(scrollSpeed);\n }\n } else {\n // Scroll to the right\n if (rightScreenBorder < scrollWidth && mousePos.x >= rightScreenBorder - scrollTriggerDistance) {\n mousePos.x += scrollSpeed;\n keepOnScrolling = true;\n taskScope.row.rowsManager.gantt.api.scroll.right(scrollSpeed);\n }\n }\n\n if (keepOnScrolling) {\n scrollInterval = $timeout(function() {\n handleMove(mode, evt);\n }, 100, true);\n }\n };\n\n var clearScrollInterval = function() {\n if (scrollInterval !== undefined) {\n $timeout.cancel(scrollInterval);\n scrollInterval = undefined;\n }\n };\n\n var getMoveMode = function(x) {\n var distance = 0;\n\n var allowResizing = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowResizing', scope.allowResizing);\n var allowRowSwitching = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowRowSwitching', scope.allowRowSwitching);\n var allowMoving = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowMoving', scope.allowMoving);\n\n // Define resize&move area. Make sure the move area does not get too small.\n if (allowResizing) {\n distance = taskElement[0].offsetWidth < 10 ? resizeAreaWidthSmall : resizeAreaWidthBig;\n }\n\n if (allowResizing && x > taskElement[0].offsetWidth - distance) {\n return 'E';\n } else if (allowResizing && x < distance) {\n return 'W';\n } else if ((allowMoving || allowRowSwitching) && x >= distance && x <= taskElement[0].offsetWidth - distance) {\n return 'M';\n } else {\n return '';\n }\n };\n\n var getCursor = function(mode) {\n switch (mode) {\n case 'E':\n return 'e-resize';\n case 'W':\n return 'w-resize';\n case 'M':\n return 'move';\n }\n };\n\n var enableMoveMode = function(mode, x) {\n // Clone taskModel\n if (taskScope.task.originalModel === undefined) {\n taskScope.task.originalRow = taskScope.task.row;\n taskScope.task.originalModel = taskScope.task.model;\n taskScope.task.model = angular.copy(taskScope.task.originalModel);\n }\n\n if (mode === 'M') {\n taskElement.addClass('gantt-task-moving');\n if (!taskScope.task.isMoving) {\n taskScope.row.rowsManager.gantt.api.tasks.raise.moveBegin(taskScope.task);\n }\n } else {\n taskElement.addClass('gantt-task-resizing');\n if (!taskScope.task.isMoving) {\n taskScope.row.rowsManager.gantt.api.tasks.raise.resizeBegin(taskScope.task);\n }\n }\n\n // Init mouse start variables (if tasks was not move from another row)\n if (!taskScope.task.isMoving) {\n moveStartX = x;\n mouseStartOffsetX = x - taskScope.task.modelLeft;\n }\n\n // Init task move\n taskHasBeenChanged = false;\n taskScope.task.moveMode = mode;\n taskScope.task.isMoving = true;\n taskScope.task.active = true;\n\n // Add move event handlers\n var taskMoveHandler = function(evt) {\n evt.stopImmediatePropagation();\n if (_hasTouch) {\n evt = mouseOffset.getTouch(evt);\n }\n if (taskScope.task.isMoving) {\n // As this function is defered, disableMoveMode may have been called before.\n // Without this check, task.changed event is not fired for faster moves.\n // See github issue #190\n clearScrollInterval();\n handleMove(mode, evt);\n }\n };\n var moveSmartEvent = smartEvent(taskScope, windowElement, _moveEvents, taskMoveHandler);\n moveSmartEvent.bind();\n\n smartEvent(taskScope, windowElement, _releaseEvents, function(evt) {\n if (_hasTouch) {\n evt = mouseOffset.getTouch(evt);\n }\n moveSmartEvent.unbind();\n disableMoveMode(evt);\n taskScope.$digest();\n }).bindOnce();\n\n // Show mouse move/resize cursor\n taskElement.css('cursor', getCursor(mode));\n angular.element($document[0].body).css({\n '-moz-user-select': '-moz-none',\n '-webkit-user-select': 'none',\n '-ms-user-select': 'none',\n 'user-select': 'none',\n 'cursor': getCursor(mode)\n });\n };\n\n var disableMoveMode = function() {\n taskElement.removeClass('gantt-task-moving');\n taskElement.removeClass('gantt-task-resizing');\n\n if (taskScope.task.originalModel !== undefined) {\n angular.extend(taskScope.task.originalModel, taskScope.task.model);\n taskScope.task.model = taskScope.task.originalModel;\n if (taskScope.task.row.model.id !== taskScope.task.originalRow.model.id) {\n var targetRow = taskScope.task.row;\n targetRow.removeTask(taskScope.task.model.id, false, true);\n taskScope.task.row = taskScope.task.originalRow;\n targetRow.moveTaskToRow(taskScope.task, false);\n }\n delete taskScope.task.originalModel;\n delete taskScope.task.originalRow;\n\n taskScope.$apply();\n }\n\n taskScope.task.isMoving = false;\n taskScope.task.active = false;\n\n // Stop any active auto scroll\n clearScrollInterval();\n\n // Set mouse cursor back to default\n taskElement.css('cursor', '');\n angular.element($document[0].body).css({\n '-moz-user-select': '',\n '-webkit-user-select': '',\n '-ms-user-select': '',\n 'user-select': '',\n 'cursor': ''\n });\n\n // Raise move end event\n if (taskScope.task.moveMode === 'M') {\n taskScope.row.rowsManager.gantt.api.tasks.raise.moveEnd(taskScope.task);\n } else {\n taskScope.row.rowsManager.gantt.api.tasks.raise.resizeEnd(taskScope.task);\n }\n\n taskScope.task.moveMode = undefined;\n\n // Raise task changed event\n if (taskHasBeenChanged === true) {\n taskHasBeenChanged = false;\n taskScope.task.row.sortTasks(); // Sort tasks so they have the right z-order\n taskScope.row.rowsManager.gantt.api.tasks.raise.change(taskScope.task);\n }\n };\n\n if (taskScope.task.isResizing) {\n delete taskScope.task.isResizing;\n enableMoveMode('E', taskScope.task.mouseOffsetX);\n } else if (taskScope.task.isMoving) {\n // In case the task has been moved to another row a new controller is is created by angular.\n // Enable the move mode again if this was the case.\n enableMoveMode('M', taskScope.task.mouseOffsetX);\n }\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.movable').factory('ganttMovableOptions', [function() {\n return {\n initialize: function(options) {\n\n options.enabled = options.enabled !== undefined ? !!options.enabled : true;\n options.allowMoving = options.allowMoving !== undefined ? !!options.allowMoving : true;\n options.allowResizing = options.allowResizing !== undefined ? !!options.allowResizing : true;\n options.allowRowSwitching = options.allowRowSwitching !== undefined ? !!options.allowRowSwitching : true;\n\n return options;\n }\n };\n }]);\n}());\n\n"]} \ No newline at end of file +{"version":3,"sources":["../src/plugins/movable.js","../src/plugins/movable/movableOptions.factory.js"],"names":[],"mappings":"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","file":"angular-gantt-movable-plugin.js","sourcesContent":["(function(){\n 'use strict';\n angular.module('gantt.movable', ['gantt']).directive('ganttMovable', ['ganttMouseButton', 'ganttMouseOffset', 'ganttSmartEvent', 'ganttMovableOptions', 'ganttUtils', '$window', '$document', '$timeout',\n function(mouseButton, mouseOffset, smartEvent, movableOptions, utils, $window, $document, $timeout) {\n // Provides moving and resizing of tasks\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?',\n allowMoving: '=?',\n allowResizing: '=?',\n allowRowSwitching: '=?'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n // Load options from global options attribute.\n if (scope.options && typeof(scope.options.movable) === 'object') {\n for (var option in scope.options.movable) {\n scope[option] = scope.options[option];\n }\n }\n\n movableOptions.initialize(scope);\n\n api.registerEvent('tasks', 'move');\n api.registerEvent('tasks', 'moveBegin');\n api.registerEvent('tasks', 'moveEnd');\n api.registerEvent('tasks', 'resize');\n api.registerEvent('tasks', 'resizeBegin');\n api.registerEvent('tasks', 'resizeEnd');\n api.registerEvent('tasks', 'change');\n\n var _hasTouch = ('ontouchstart' in $window) || $window.DocumentTouch && $document[0] instanceof $window.DocumentTouch;\n var _pressEvents = 'touchstart mousedown';\n var _moveEvents = 'touchmove mousemove';\n var _releaseEvents = 'touchend mouseup';\n\n var taskWithSmallWidth = 15;\n var resizeAreaWidthBig = 5;\n var resizeAreaWidthSmall = 3;\n var scrollSpeed = 15;\n var scrollTriggerDistance = 5;\n var mouseStartOffsetX;\n var moveStartX;\n\n api.directives.on.new(scope, function(directiveName, taskScope, taskElement) {\n if (directiveName === 'ganttTask') {\n var windowElement = angular.element($window);\n var ganttBodyElement = taskScope.row.rowsManager.gantt.body.$element;\n var ganttScrollElement = taskScope.row.rowsManager.gantt.scroll.$element;\n\n var taskHasBeenChanged = false;\n var scrollInterval;\n\n taskElement.on(_pressEvents, function(evt) {\n evt.preventDefault();\n if (_hasTouch) {\n evt = mouseOffset.getTouch(evt);\n }\n var enabled = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'enabled', scope.enabled);\n if (enabled) {\n var taskOffsetX = mouseOffset.getOffset(evt).x;\n var mode = getMoveMode(taskOffsetX);\n if (mode !== '' && mouseButton.getButton(evt) === 1) {\n var bodyOffsetX = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt).x;\n enableMoveMode(mode, bodyOffsetX);\n }\n taskScope.$digest();\n }\n });\n\n taskElement.on('mousemove', function(evt) {\n var enabled = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'enabled', scope.enabled);\n if (enabled && !taskScope.task.isMoving) {\n var taskOffsetX = mouseOffset.getOffset(evt).x;\n var mode = getMoveMode(taskOffsetX);\n if (mode !== '' && mode !== 'M') {\n taskElement.css('cursor', getCursor(mode));\n } else {\n taskElement.css('cursor', '');\n }\n }\n });\n\n var handleMove = function(evt) {\n moveTask(evt);\n scrollScreen(evt);\n };\n\n var moveTask = function(evt) {\n var mousePos = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt);\n var x = mousePos.x;\n taskScope.task.mouseOffsetX = x;\n\n if (taskScope.task.moveMode === 'M') {\n var allowRowSwitching = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowRowSwitching', scope.allowRowSwitching);\n if (allowRowSwitching) {\n var scrollRect = ganttScrollElement[0].getBoundingClientRect();\n var rowCenterLeft = scrollRect.left + scrollRect.width / 2;\n\n var targetRowElement = utils.findElementFromPoint(rowCenterLeft, evt.clientY, function(element) {\n return angular.element(element).hasClass('gantt-row');\n });\n var rows = ganttCtrl.gantt.rowsManager.rows;\n var targetRow;\n for (var i= 0, l=rows.length; i= taskScope.gantt.width) {\n x = taskScope.gantt.width - taskScope.task.width;\n }\n }\n\n taskScope.task.moveTo(x, true);\n taskScope.$digest();\n taskScope.row.rowsManager.gantt.api.tasks.raise.move(taskScope.task);\n }\n } else if (taskScope.task.moveMode === 'E') {\n if (x <= taskScope.task.left) {\n x = taskScope.task.left;\n taskScope.task.moveMode = 'W';\n setGlobalCursor(getCursor(taskScope.task.moveMode ));\n }\n\n if (taskScope.taskOutOfRange !== 'truncate' && x >= taskScope.gantt.width) {\n x = taskScope.gantt.width;\n }\n\n taskScope.task.setTo(x, true);\n taskScope.$digest();\n taskScope.row.rowsManager.gantt.api.tasks.raise.resize(taskScope.task);\n } else {\n if (x > taskScope.task.left + taskScope.task.width) {\n x = taskScope.task.left + taskScope.task.width;\n taskScope.task.moveMode = 'E';\n setGlobalCursor(getCursor(taskScope.task.moveMode ));\n }\n\n if (taskScope.taskOutOfRange !== 'truncate' && x < 0) {\n x = 0;\n }\n\n taskScope.task.setFrom(x, true);\n taskScope.$digest();\n taskScope.row.rowsManager.gantt.api.tasks.raise.resize(taskScope.task);\n }\n\n taskHasBeenChanged = true;\n };\n\n var scrollScreen = function(evt) {\n var mousePos = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt);\n var leftScreenBorder = ganttScrollElement[0].scrollLeft;\n var screenWidth = ganttScrollElement[0].offsetWidth;\n var scrollWidth = ganttScrollElement[0].scrollWidth;\n var rightScreenBorder = leftScreenBorder + screenWidth;\n var keepOnScrolling = false;\n\n if (mousePos.x < moveStartX) {\n // Scroll to the left\n if (leftScreenBorder > 0 && mousePos.x <= leftScreenBorder + scrollTriggerDistance) {\n mousePos.x -= scrollSpeed;\n keepOnScrolling = true;\n taskScope.row.rowsManager.gantt.api.scroll.left(scrollSpeed);\n }\n } else {\n // Scroll to the right\n if (rightScreenBorder < scrollWidth && mousePos.x >= rightScreenBorder - scrollTriggerDistance) {\n mousePos.x += scrollSpeed;\n keepOnScrolling = true;\n taskScope.row.rowsManager.gantt.api.scroll.right(scrollSpeed);\n }\n }\n\n if (keepOnScrolling) {\n scrollInterval = $timeout(function() {\n handleMove(evt);\n }, 100, true);\n }\n };\n\n var clearScrollInterval = function() {\n if (scrollInterval !== undefined) {\n $timeout.cancel(scrollInterval);\n scrollInterval = undefined;\n }\n };\n\n var getMoveMode = function(x) {\n var distance = 0;\n\n var allowResizing = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowResizing', scope.allowResizing);\n var allowRowSwitching = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowRowSwitching', scope.allowRowSwitching);\n var allowMoving = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowMoving', scope.allowMoving);\n\n // Define resize&move area. Make sure the move area does not get too small.\n if (allowResizing) {\n distance = taskElement[0].offsetWidth < taskWithSmallWidth ? resizeAreaWidthSmall : resizeAreaWidthBig;\n }\n\n if (allowResizing && x > taskElement[0].offsetWidth - distance) {\n return 'E';\n } else if (allowResizing && x < distance) {\n return 'W';\n } else if ((allowMoving || allowRowSwitching) && x >= distance && x <= taskElement[0].offsetWidth - distance) {\n return 'M';\n } else {\n return '';\n }\n };\n\n var getCursor = function(mode) {\n switch (mode) {\n case 'E':\n return 'e-resize';\n case 'W':\n return 'w-resize';\n case 'M':\n return 'move';\n }\n };\n\n var setGlobalCursor = function(cursor) {\n taskElement.css('cursor', cursor);\n angular.element($document[0].body).css({\n '-moz-user-select': cursor === '' ? '': '-moz-none',\n '-webkit-user-select': cursor === '' ? '': 'none',\n '-ms-user-select': cursor === '' ? '': 'none',\n 'user-select': cursor === '' ? '': 'none',\n 'cursor': cursor\n });\n };\n\n var enableMoveMode = function(mode, x) {\n // Clone taskModel\n if (taskScope.task.originalModel === undefined) {\n taskScope.task.originalRow = taskScope.task.row;\n taskScope.task.originalModel = taskScope.task.model;\n taskScope.task.model = angular.copy(taskScope.task.originalModel);\n }\n\n if (mode === 'M') {\n taskElement.addClass('gantt-task-moving');\n if (!taskScope.task.isMoving) {\n taskScope.row.rowsManager.gantt.api.tasks.raise.moveBegin(taskScope.task);\n }\n } else {\n taskElement.addClass('gantt-task-resizing');\n if (!taskScope.task.isMoving) {\n taskScope.row.rowsManager.gantt.api.tasks.raise.resizeBegin(taskScope.task);\n }\n }\n\n // Init mouse start variables (if tasks was not move from another row)\n if (!taskScope.task.isMoving && !taskScope.task.isResizing) {\n moveStartX = x;\n mouseStartOffsetX = x - taskScope.task.modelLeft;\n }\n\n // Init task move\n taskHasBeenChanged = false;\n taskScope.task.moveMode = mode;\n taskScope.task.isMoving = true;\n taskScope.task.active = true;\n\n // Add move event handlers\n var taskMoveHandler = function(evt) {\n evt.stopImmediatePropagation();\n if (_hasTouch) {\n evt = mouseOffset.getTouch(evt);\n }\n if (taskScope.task.isMoving) {\n // As this function is defered, disableMoveMode may have been called before.\n // Without this check, task.changed event is not fired for faster moves.\n // See github issue #190\n clearScrollInterval();\n handleMove(evt);\n }\n };\n var moveSmartEvent = smartEvent(taskScope, windowElement, _moveEvents, taskMoveHandler);\n moveSmartEvent.bind();\n\n smartEvent(taskScope, windowElement, _releaseEvents, function(evt) {\n if (_hasTouch) {\n evt = mouseOffset.getTouch(evt);\n }\n moveSmartEvent.unbind();\n disableMoveMode(evt);\n taskScope.$digest();\n }).bindOnce();\n\n setGlobalCursor(getCursor(mode));\n };\n\n var disableMoveMode = function() {\n taskElement.removeClass('gantt-task-moving');\n taskElement.removeClass('gantt-task-resizing');\n\n if (taskScope.task.originalModel !== undefined) {\n angular.extend(taskScope.task.originalModel, taskScope.task.model);\n taskScope.task.model = taskScope.task.originalModel;\n if (taskScope.task.row.model.id !== taskScope.task.originalRow.model.id) {\n var targetRow = taskScope.task.row;\n targetRow.removeTask(taskScope.task.model.id, false, true);\n taskScope.task.row = taskScope.task.originalRow;\n targetRow.moveTaskToRow(taskScope.task, false);\n }\n delete taskScope.task.originalModel;\n delete taskScope.task.originalRow;\n\n taskScope.$apply();\n }\n\n taskScope.task.isMoving = false;\n taskScope.task.active = false;\n\n // Stop any active auto scroll\n clearScrollInterval();\n\n // Set mouse cursor back to default\n setGlobalCursor('');\n\n // Raise move end event\n if (taskScope.task.moveMode === 'M') {\n taskScope.row.rowsManager.gantt.api.tasks.raise.moveEnd(taskScope.task);\n } else {\n taskScope.row.rowsManager.gantt.api.tasks.raise.resizeEnd(taskScope.task);\n }\n\n taskScope.task.moveMode = undefined;\n\n // Raise task changed event\n if (taskHasBeenChanged === true) {\n taskHasBeenChanged = false;\n taskScope.task.row.sortTasks(); // Sort tasks so they have the right z-order\n taskScope.row.rowsManager.gantt.api.tasks.raise.change(taskScope.task);\n }\n };\n\n if (taskScope.task.isResizing) {\n enableMoveMode('E', taskScope.task.mouseOffsetX);\n delete taskScope.task.isResizing;\n } else if (taskScope.task.isMoving) {\n // In case the task has been moved to another row a new controller is is created by angular.\n // Enable the move mode again if this was the case.\n enableMoveMode('M', taskScope.task.mouseOffsetX);\n }\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.movable').factory('ganttMovableOptions', [function() {\n return {\n initialize: function(options) {\n\n options.enabled = options.enabled !== undefined ? !!options.enabled : true;\n options.allowMoving = options.allowMoving !== undefined ? !!options.allowMoving : true;\n options.allowResizing = options.allowResizing !== undefined ? !!options.allowResizing : true;\n options.allowRowSwitching = options.allowRowSwitching !== undefined ? !!options.allowRowSwitching : true;\n\n return options;\n }\n };\n }]);\n}());\n\n"]} \ No newline at end of file diff --git a/dist/angular-gantt-movable-plugin.min.css b/dist/angular-gantt-movable-plugin.min.css index 6c63d3a67..7bab0e133 100644 --- a/dist/angular-gantt-movable-plugin.min.css +++ b/dist/angular-gantt-movable-plugin.min.css @@ -1 +1 @@ -.gantt-task-moving,.gantt-task-resizing{opacity:.6;-webkit-filter:grayscale(0.7);-moz-filter:grayscale(0.7);-ms-filter:grayscale(0.7);-o-filter:grayscale(0.7);filter:grayscale(0.7)} \ No newline at end of file +.gantt-task-moving,.gantt-task-resizing{z-index:750!important;opacity:.6;-webkit-filter:grayscale(0.7);-moz-filter:grayscale(0.7);-ms-filter:grayscale(0.7);-o-filter:grayscale(0.7);filter:grayscale(0.7)} \ No newline at end of file diff --git a/dist/angular-gantt-movable-plugin.min.js b/dist/angular-gantt-movable-plugin.min.js index 2daa0774c..99e373db6 100644 --- a/dist/angular-gantt-movable-plugin.min.js +++ b/dist/angular-gantt-movable-plugin.min.js @@ -1,10 +1,10 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com Github: https://github.com/angular-gantt/angular-gantt.git */ -!function(){"use strict";angular.module("gantt.movable",["gantt"]).directive("ganttMovable",["ganttMouseButton","ganttMouseOffset","ganttSmartEvent","ganttMovableOptions","ganttUtils","$window","$document","$timeout",function(a,b,c,d,e,f,g,h){return{restrict:"E",require:"^gantt",scope:{enabled:"=?",allowMoving:"=?",allowResizing:"=?",allowRowSwitching:"=?"},link:function(i,j,k,l){var m=l.gantt.api;if(i.options&&"object"==typeof i.options.movable)for(var n in i.options.movable)i[n]=i.options[n];d.initialize(i),m.registerEvent("tasks","move"),m.registerEvent("tasks","moveBegin"),m.registerEvent("tasks","moveEnd"),m.registerEvent("tasks","resize"),m.registerEvent("tasks","resizeBegin"),m.registerEvent("tasks","resizeEnd"),m.registerEvent("tasks","change");var o,p,q="ontouchstart"in f||f.DocumentTouch&&g[0]instanceof f.DocumentTouch,r="touchstart mousedown",s="touchmove mousemove",t="touchend mouseup",u=5,v=3,w=15,x=5;m.directives.on.new(i,function(d,j,k){if("ganttTask"===d){var m,n=angular.element(f),y=j.row.rowsManager.gantt.body.$element,z=j.row.rowsManager.gantt.scroll.$element,A=!1;k.on(r,function(c){c.preventDefault(),q&&(c=b.getTouch(c));var d=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"enabled",i.enabled);if(d){var f=b.getOffset(c).x,g=F(f);if(""!==g&&1===a.getButton(c)){var h=b.getOffsetForElement(y[0],c).x;H(g,h)}j.$digest()}}),k.on("mousemove",function(a){var c=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"enabled",i.enabled);if(c){var d=b.getOffset(a).x,f=F(d);""===f||!j.task.isMoving&&"M"===f?k.css("cursor",""):k.css("cursor",G(f))}});var B=function(a,b){C(a,b),D(a,b)},C=function(a,c){var d=b.getOffsetForElement(y[0],c),f=d.x;if(j.task.mouseOffsetX=f,"M"===a){var g=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowRowSwitching",i.allowRowSwitching);if(g){for(var h,k=z[0].getBoundingClientRect(),m=e.findElementFromPoint(k.left,c.clientY,function(a){return angular.element(a).hasClass("gantt-row")}),n=l.gantt.rowsManager.rows,p=0,q=n.length;q>p;p++)if(m===n[p].$element[0]){h=n[p];break}var r=j.task.row;void 0!==h&&r!==h&&(h.moveTaskToRow(j.task,!0),r.$scope.$digest(),h.$scope.$digest())}var s=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowMoving",i.allowMoving);s&&(f-=o,"truncate"!==j.taskOutOfRange&&(0>f?f=0:f+j.task.width>=j.gantt.width&&(f=j.gantt.width-j.task.width)),j.task.moveTo(f,!0),j.$digest(),j.row.rowsManager.gantt.api.tasks.raise.move(j.task))}else"E"===a?("truncate"!==j.taskOutOfRange&&(fj.gantt.width&&(f=j.gantt.width)),j.task.setTo(f,!0),j.$digest(),j.row.rowsManager.gantt.api.tasks.raise.resize(j.task)):("truncate"!==j.taskOutOfRange&&(f>j.task.left+j.task.width?f=j.task.left+j.task.width:0>f&&(f=0)),j.task.setFrom(f,!0),j.$digest(),j.row.rowsManager.gantt.api.tasks.raise.resize(j.task));A=!0},D=function(a,c){var d=b.getOffsetForElement(y[0],c),e=z[0].scrollLeft,f=z[0].offsetWidth,g=z[0].scrollWidth,i=e+f,k=!1;d.x0&&d.x<=e+x&&(d.x-=w,k=!0,j.row.rowsManager.gantt.api.scroll.left(w)):g>i&&d.x>=i-x&&(d.x+=w,k=!0,j.row.rowsManager.gantt.api.scroll.right(w)),k&&(m=h(function(){B(a,c)},100,!0))},E=function(){void 0!==m&&(h.cancel(m),m=void 0)},F=function(a){var b=0,c=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowResizing",i.allowResizing),d=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowRowSwitching",i.allowRowSwitching),f=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowMoving",i.allowMoving);return c&&(b=k[0].offsetWidth<10?v:u),c&&a>k[0].offsetWidth-b?"E":c&&b>a?"W":(f||d)&&a>=b&&a<=k[0].offsetWidth-b?"M":""},G=function(a){switch(a){case"E":return"e-resize";case"W":return"w-resize";case"M":return"move"}},H=function(a,d){void 0===j.task.originalModel&&(j.task.originalRow=j.task.row,j.task.originalModel=j.task.model,j.task.model=angular.copy(j.task.originalModel)),"M"===a?(k.addClass("gantt-task-moving"),j.task.isMoving||j.row.rowsManager.gantt.api.tasks.raise.moveBegin(j.task)):(k.addClass("gantt-task-resizing"),j.task.isMoving||j.row.rowsManager.gantt.api.tasks.raise.resizeBegin(j.task)),j.task.isMoving||(p=d,o=d-j.task.modelLeft),A=!1,j.task.moveMode=a,j.task.isMoving=!0,j.task.active=!0;var e=function(c){c.stopImmediatePropagation(),q&&(c=b.getTouch(c)),j.task.isMoving&&(E(),B(a,c))},f=c(j,n,s,e);f.bind(),c(j,n,t,function(a){q&&(a=b.getTouch(a)),f.unbind(),I(a),j.$digest()}).bindOnce(),k.css("cursor",G(a)),angular.element(g[0].body).css({"-moz-user-select":"-moz-none","-webkit-user-select":"none","-ms-user-select":"none","user-select":"none",cursor:G(a)})},I=function(){if(k.removeClass("gantt-task-moving"),k.removeClass("gantt-task-resizing"),void 0!==j.task.originalModel){if(angular.extend(j.task.originalModel,j.task.model),j.task.model=j.task.originalModel,j.task.row.model.id!==j.task.originalRow.model.id){var a=j.task.row;a.removeTask(j.task.model.id,!1,!0),j.task.row=j.task.originalRow,a.moveTaskToRow(j.task,!1)}delete j.task.originalModel,delete j.task.originalRow,j.$apply()}j.task.isMoving=!1,j.task.active=!1,E(),k.css("cursor",""),angular.element(g[0].body).css({"-moz-user-select":"","-webkit-user-select":"","-ms-user-select":"","user-select":"",cursor:""}),"M"===j.task.moveMode?j.row.rowsManager.gantt.api.tasks.raise.moveEnd(j.task):j.row.rowsManager.gantt.api.tasks.raise.resizeEnd(j.task),j.task.moveMode=void 0,A===!0&&(A=!1,j.task.row.sortTasks(),j.row.rowsManager.gantt.api.tasks.raise.change(j.task))};j.task.isResizing?(delete j.task.isResizing,H("E",j.task.mouseOffsetX)):j.task.isMoving&&H("M",j.task.mouseOffsetX)}})}}}])}(),function(){"use strict";angular.module("gantt.movable").factory("ganttMovableOptions",[function(){return{initialize:function(a){return a.enabled=void 0!==a.enabled?!!a.enabled:!0,a.allowMoving=void 0!==a.allowMoving?!!a.allowMoving:!0,a.allowResizing=void 0!==a.allowResizing?!!a.allowResizing:!0,a.allowRowSwitching=void 0!==a.allowRowSwitching?!!a.allowRowSwitching:!0,a}}}])}(); +!function(){"use strict";angular.module("gantt.movable",["gantt"]).directive("ganttMovable",["ganttMouseButton","ganttMouseOffset","ganttSmartEvent","ganttMovableOptions","ganttUtils","$window","$document","$timeout",function(a,b,c,d,e,f,g,h){return{restrict:"E",require:"^gantt",scope:{enabled:"=?",allowMoving:"=?",allowResizing:"=?",allowRowSwitching:"=?"},link:function(i,j,k,l){var m=l.gantt.api;if(i.options&&"object"==typeof i.options.movable)for(var n in i.options.movable)i[n]=i.options[n];d.initialize(i),m.registerEvent("tasks","move"),m.registerEvent("tasks","moveBegin"),m.registerEvent("tasks","moveEnd"),m.registerEvent("tasks","resize"),m.registerEvent("tasks","resizeBegin"),m.registerEvent("tasks","resizeEnd"),m.registerEvent("tasks","change");var o,p,q="ontouchstart"in f||f.DocumentTouch&&g[0]instanceof f.DocumentTouch,r="touchstart mousedown",s="touchmove mousemove",t="touchend mouseup",u=15,v=5,w=3,x=15,y=5;m.directives.on.new(i,function(d,j,k){if("ganttTask"===d){var m,n=angular.element(f),z=j.row.rowsManager.gantt.body.$element,A=j.row.rowsManager.gantt.scroll.$element,B=!1;k.on(r,function(c){c.preventDefault(),q&&(c=b.getTouch(c));var d=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"enabled",i.enabled);if(d){var f=b.getOffset(c).x,g=G(f);if(""!==g&&1===a.getButton(c)){var h=b.getOffsetForElement(z[0],c).x;J(g,h)}j.$digest()}}),k.on("mousemove",function(a){var c=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"enabled",i.enabled);if(c&&!j.task.isMoving){var d=b.getOffset(a).x,f=G(d);""!==f&&"M"!==f?k.css("cursor",H(f)):k.css("cursor","")}});var C=function(a){D(a),E(a)},D=function(a){var c=b.getOffsetForElement(z[0],a),d=c.x;if(j.task.mouseOffsetX=d,"M"===j.task.moveMode){var f=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowRowSwitching",i.allowRowSwitching);if(f){for(var g,h=A[0].getBoundingClientRect(),k=h.left+h.width/2,m=e.findElementFromPoint(k,a.clientY,function(a){return angular.element(a).hasClass("gantt-row")}),n=l.gantt.rowsManager.rows,p=0,q=n.length;q>p;p++)if(m===n[p].$element[0]){g=n[p];break}var r=j.task.row;void 0!==g&&r!==g&&(g.moveTaskToRow(j.task,!0),r.$scope.$digest(),g.$scope.$digest())}var s=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowMoving",i.allowMoving);s&&(d-=o,"truncate"!==j.taskOutOfRange&&(0>d?d=0:d+j.task.width>=j.gantt.width&&(d=j.gantt.width-j.task.width)),j.task.moveTo(d,!0),j.$digest(),j.row.rowsManager.gantt.api.tasks.raise.move(j.task))}else"E"===j.task.moveMode?(d<=j.task.left&&(d=j.task.left,j.task.moveMode="W",I(H(j.task.moveMode))),"truncate"!==j.taskOutOfRange&&d>=j.gantt.width&&(d=j.gantt.width),j.task.setTo(d,!0),j.$digest(),j.row.rowsManager.gantt.api.tasks.raise.resize(j.task)):(d>j.task.left+j.task.width&&(d=j.task.left+j.task.width,j.task.moveMode="E",I(H(j.task.moveMode))),"truncate"!==j.taskOutOfRange&&0>d&&(d=0),j.task.setFrom(d,!0),j.$digest(),j.row.rowsManager.gantt.api.tasks.raise.resize(j.task));B=!0},E=function(a){var c=b.getOffsetForElement(z[0],a),d=A[0].scrollLeft,e=A[0].offsetWidth,f=A[0].scrollWidth,g=d+e,i=!1;c.x0&&c.x<=d+y&&(c.x-=x,i=!0,j.row.rowsManager.gantt.api.scroll.left(x)):f>g&&c.x>=g-y&&(c.x+=x,i=!0,j.row.rowsManager.gantt.api.scroll.right(x)),i&&(m=h(function(){C(a)},100,!0))},F=function(){void 0!==m&&(h.cancel(m),m=void 0)},G=function(a){var b=0,c=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowResizing",i.allowResizing),d=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowRowSwitching",i.allowRowSwitching),f=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowMoving",i.allowMoving);return c&&(b=k[0].offsetWidthk[0].offsetWidth-b?"E":c&&b>a?"W":(f||d)&&a>=b&&a<=k[0].offsetWidth-b?"M":""},H=function(a){switch(a){case"E":return"e-resize";case"W":return"w-resize";case"M":return"move"}},I=function(a){k.css("cursor",a),angular.element(g[0].body).css({"-moz-user-select":""===a?"":"-moz-none","-webkit-user-select":""===a?"":"none","-ms-user-select":""===a?"":"none","user-select":""===a?"":"none",cursor:a})},J=function(a,d){void 0===j.task.originalModel&&(j.task.originalRow=j.task.row,j.task.originalModel=j.task.model,j.task.model=angular.copy(j.task.originalModel)),"M"===a?(k.addClass("gantt-task-moving"),j.task.isMoving||j.row.rowsManager.gantt.api.tasks.raise.moveBegin(j.task)):(k.addClass("gantt-task-resizing"),j.task.isMoving||j.row.rowsManager.gantt.api.tasks.raise.resizeBegin(j.task)),j.task.isMoving||j.task.isResizing||(p=d,o=d-j.task.modelLeft),B=!1,j.task.moveMode=a,j.task.isMoving=!0,j.task.active=!0;var e=function(a){a.stopImmediatePropagation(),q&&(a=b.getTouch(a)),j.task.isMoving&&(F(),C(a))},f=c(j,n,s,e);f.bind(),c(j,n,t,function(a){q&&(a=b.getTouch(a)),f.unbind(),K(a),j.$digest()}).bindOnce(),I(H(a))},K=function(){if(k.removeClass("gantt-task-moving"),k.removeClass("gantt-task-resizing"),void 0!==j.task.originalModel){if(angular.extend(j.task.originalModel,j.task.model),j.task.model=j.task.originalModel,j.task.row.model.id!==j.task.originalRow.model.id){var a=j.task.row;a.removeTask(j.task.model.id,!1,!0),j.task.row=j.task.originalRow,a.moveTaskToRow(j.task,!1)}delete j.task.originalModel,delete j.task.originalRow,j.$apply()}j.task.isMoving=!1,j.task.active=!1,F(),I(""),"M"===j.task.moveMode?j.row.rowsManager.gantt.api.tasks.raise.moveEnd(j.task):j.row.rowsManager.gantt.api.tasks.raise.resizeEnd(j.task),j.task.moveMode=void 0,B===!0&&(B=!1,j.task.row.sortTasks(),j.row.rowsManager.gantt.api.tasks.raise.change(j.task))};j.task.isResizing?(J("E",j.task.mouseOffsetX),delete j.task.isResizing):j.task.isMoving&&J("M",j.task.mouseOffsetX)}})}}}])}(),function(){"use strict";angular.module("gantt.movable").factory("ganttMovableOptions",[function(){return{initialize:function(a){return a.enabled=void 0!==a.enabled?!!a.enabled:!0,a.allowMoving=void 0!==a.allowMoving?!!a.allowMoving:!0,a.allowResizing=void 0!==a.allowResizing?!!a.allowResizing:!0,a.allowRowSwitching=void 0!==a.allowRowSwitching?!!a.allowRowSwitching:!0,a}}}])}(); //# sourceMappingURL=angular-gantt-movable-plugin.min.js.map \ No newline at end of file diff --git a/dist/angular-gantt-movable-plugin.min.js.map b/dist/angular-gantt-movable-plugin.min.js.map index 994aca725..8b7396aa5 100644 --- a/dist/angular-gantt-movable-plugin.min.js.map +++ b/dist/angular-gantt-movable-plugin.min.js.map @@ -1 +1 @@ -{"version":3,"file":"angular-gantt-movable-plugin.min.js","sources":["../src/plugins/movable.js","../src/plugins/movable/movableOptions.factory.js"],"names":["angular","module","directive","mouseButton","mouseOffset","smartEvent","movableOptions","utils","$window","$document","$timeout","restrict","require","scope","enabled","allowMoving","allowResizing","allowRowSwitching","link","element","attrs","ganttCtrl","api","gantt","options","option","movable","initialize","registerEvent","mouseStartOffsetX","moveStartX","_hasTouch","DocumentTouch","_pressEvents","_moveEvents","_releaseEvents","resizeAreaWidthBig","resizeAreaWidthSmall","scrollSpeed","scrollTriggerDistance","directives","on","new","directiveName","taskScope","taskElement","scrollInterval","windowElement","ganttBodyElement","row","rowsManager","body","$element","ganttScrollElement","scroll","taskHasBeenChanged","evt","preventDefault","getTouch","firstProperty","task","model","taskOffsetX","getOffset","x","mode","getMoveMode","getButton","bodyOffsetX","getOffsetForElement","enableMoveMode","$digest","isMoving","css","getCursor","handleMove","moveTask","scrollScreen","mousePos","mouseOffsetX","targetRow","scrollRect","getBoundingClientRect","targetRowElement","findElementFromPoint","left","clientY","hasClass","rows","i","l","length","sourceRow","undefined","moveTaskToRow","$scope","taskOutOfRange","width","moveTo","tasks","raise","move","setTo","resize","setFrom","leftScreenBorder","scrollLeft","screenWidth","offsetWidth","scrollWidth","rightScreenBorder","keepOnScrolling","right","clearScrollInterval","cancel","distance","originalModel","originalRow","copy","addClass","moveBegin","resizeBegin","modelLeft","moveMode","active","taskMoveHandler","stopImmediatePropagation","moveSmartEvent","bind","unbind","disableMoveMode","bindOnce","-moz-user-select","-webkit-user-select","-ms-user-select","user-select","cursor","removeClass","extend","id","removeTask","$apply","moveEnd","resizeEnd","sortTasks","change","isResizing","factory"],"mappings":";;;;;;;;CAAC,WACG,YACAA,SAAQC,OAAO,iBAAkB,UAAUC,UAAU,gBAAiB,mBAAoB,mBAAoB,kBAAmB,sBAAuB,aAAc,UAAW,YAAa,WAC1L,SAASC,EAAaC,EAAaC,EAAYC,EAAgBC,EAAOC,EAASC,EAAWC,GAEtF,OACIC,SAAU,IACVC,QAAS,SACTC,OACIC,QAAS,KACTC,YAAa,KACbC,cAAe,KACfC,kBAAmB,MAEvBC,KAAM,SAASL,EAAOM,EAASC,EAAOC,GAClC,GAAIC,GAAMD,EAAUE,MAAMD,GAG1B,IAAIT,EAAMW,SAA6C,gBAA3BX,GAAMW,QAAe,QAC7C,IAAK,GAAIC,KAAUZ,GAAMW,QAAQE,QAC7Bb,EAAMY,GAAUZ,EAAMW,QAAQC,EAItCnB,GAAeqB,WAAWd,GAE1BS,EAAIM,cAAc,QAAS,QAC3BN,EAAIM,cAAc,QAAS,aAC3BN,EAAIM,cAAc,QAAS,WAC3BN,EAAIM,cAAc,QAAS,UAC3BN,EAAIM,cAAc,QAAS,eAC3BN,EAAIM,cAAc,QAAS,aAC3BN,EAAIM,cAAc,QAAS,SAE3B,IASIC,GACAC,EAVAC,EAAa,gBAAkBvB,IAAYA,EAAQwB,eAAiBvB,EAAU,YAAcD,GAAQwB,cACpGC,EAAe,uBACfC,EAAc,sBACdC,EAAiB,mBAEjBC,EAAqB,EACrBC,EAAuB,EACvBC,EAAc,GACdC,EAAwB,CAI5BjB,GAAIkB,WAAWC,GAAGC,IAAI7B,EAAO,SAAS8B,EAAeC,EAAWC,GAC5D,GAAsB,cAAlBF,EAA+B,CAC/B,GAKIG,GALAC,EAAgB/C,QAAQmB,QAAQX,GAChCwC,EAAmBJ,EAAUK,IAAIC,YAAY3B,MAAM4B,KAAKC,SACxDC,EAAqBT,EAAUK,IAAIC,YAAY3B,MAAM+B,OAAOF,SAE5DG,GAAqB,CAGzBV,GAAYJ,GAAGR,EAAc,SAASuB,GAClCA,EAAIC,iBACA1B,IACAyB,EAAMpD,EAAYsD,SAASF,GAE/B,IAAI1C,GAAUP,EAAMoD,eAAef,EAAUgB,KAAKC,MAAMnC,QAASkB,EAAUgB,KAAKX,IAAIY,MAAMnC,SAAU,UAAWb,EAAMC,QACrH,IAAIA,EAAS,CACT,GAAIgD,GAAc1D,EAAY2D,UAAUP,GAAKQ,EACzCC,EAAOC,EAAYJ,EACvB,IAAa,KAATG,GAA8C,IAA/B9D,EAAYgE,UAAUX,GAAY,CACjD,GAAIY,GAAchE,EAAYiE,oBAAoBrB,EAAiB,GAAIQ,GAAKQ,CAC5EM,GAAeL,EAAMG,GAEzBxB,EAAU2B,aAIlB1B,EAAYJ,GAAG,YAAa,SAASe,GACjC,GAAI1C,GAAUP,EAAMoD,eAAef,EAAUgB,KAAKC,MAAMnC,QAASkB,EAAUgB,KAAKX,IAAIY,MAAMnC,SAAU,UAAWb,EAAMC,QACrH,IAAIA,EAAS,CACT,GAAIgD,GAAc1D,EAAY2D,UAAUP,GAAKQ,EACzCC,EAAOC,EAAYJ,EACV,MAATG,IAAgBrB,EAAUgB,KAAKY,UAAqB,MAATP,EAG3CpB,EAAY4B,IAAI,SAAU,IAF1B5B,EAAY4B,IAAI,SAAUC,EAAUT,MAOhD,IAAIU,GAAa,SAASV,EAAMT,GAC5BoB,EAASX,EAAMT,GACfqB,EAAaZ,EAAMT,IAGnBoB,EAAW,SAASX,EAAMT,GAC1B,GAAIsB,GAAW1E,EAAYiE,oBAAoBrB,EAAiB,GAAIQ,GAChEQ,EAAIc,EAASd,CAGjB,IAFApB,EAAUgB,KAAKmB,aAAef,EAEjB,MAATC,EAAc,CACd,GAAIhD,GAAoBV,EAAMoD,eAAef,EAAUgB,KAAKC,MAAMnC,QAASkB,EAAUgB,KAAKX,IAAIY,MAAMnC,SAAU,oBAAqBb,EAAMI,kBACzI,IAAIA,EAAmB,CAQnB,IAAK,GADD+D,GANAC,EAAa5B,EAAmB,GAAG6B,wBAEnCC,EAAmB5E,EAAM6E,qBAAqBH,EAAWI,KAAM7B,EAAI8B,QAAS,SAASnE,GACrF,MAAOnB,SAAQmB,QAAQA,GAASoE,SAAS,eAEzCC,EAAOnE,EAAUE,MAAM2B,YAAYsC,KAE9BC,EAAG,EAAGC,EAAEF,EAAKG,OAAUD,EAAFD,EAAKA,IAC/B,GAAIN,IAAqBK,EAAKC,GAAGrC,SAAS,GAAI,CAC1C4B,EAAYQ,EAAKC,EACjB,OAIR,GAAIG,GAAYhD,EAAUgB,KAAKX,GAEb4C,UAAdb,GAA2BY,IAAcZ,IACzCA,EAAUc,cAAclD,EAAUgB,MAAM,GACxCgC,EAAUG,OAAOxB,UACjBS,EAAUe,OAAOxB,WAIzB,GAAIxD,GAAcR,EAAMoD,eAAef,EAAUgB,KAAKC,MAAMnC,QAASkB,EAAUgB,KAAKX,IAAIY,MAAMnC,SAAU,cAAeb,EAAME,YACzHA,KACAiD,GAAQnC,EACyB,aAA7Be,EAAUoD,iBACF,EAAJhC,EACAA,EAAI,EACGA,EAAIpB,EAAUgB,KAAKqC,OAASrD,EAAUrB,MAAM0E,QACnDjC,EAAIpB,EAAUrB,MAAM0E,MAAQrD,EAAUgB,KAAKqC,QAGnDrD,EAAUgB,KAAKsC,OAAOlC,GAAG,GACzBpB,EAAU2B,UACV3B,EAAUK,IAAIC,YAAY3B,MAAMD,IAAI6E,MAAMC,MAAMC,KAAKzD,EAAUgB,WAEnD,MAATK,GAC0B,aAA7BrB,EAAUoD,iBACNhC,EAAIpB,EAAUgB,KAAKyB,KACnBrB,EAAIpB,EAAUgB,KAAKyB,KACZrB,EAAIpB,EAAUrB,MAAM0E,QAC3BjC,EAAIpB,EAAUrB,MAAM0E,QAG5BrD,EAAUgB,KAAK0C,MAAMtC,GAAG,GACxBpB,EAAU2B,UACV3B,EAAUK,IAAIC,YAAY3B,MAAMD,IAAI6E,MAAMC,MAAMG,OAAO3D,EAAUgB,QAEhC,aAA7BhB,EAAUoD,iBACNhC,EAAIpB,EAAUgB,KAAKyB,KAAOzC,EAAUgB,KAAKqC,MACzCjC,EAAIpB,EAAUgB,KAAKyB,KAAOzC,EAAUgB,KAAKqC,MAC9B,EAAJjC,IACPA,EAAI,IAGZpB,EAAUgB,KAAK4C,QAAQxC,GAAG,GAC1BpB,EAAU2B,UACV3B,EAAUK,IAAIC,YAAY3B,MAAMD,IAAI6E,MAAMC,MAAMG,OAAO3D,EAAUgB,MAGrEL,IAAqB,GAGrBsB,EAAe,SAASZ,EAAMT,GAC9B,GAAIsB,GAAW1E,EAAYiE,oBAAoBrB,EAAiB,GAAIQ,GAChEiD,EAAmBpD,EAAmB,GAAGqD,WACzCC,EAActD,EAAmB,GAAGuD,YACpCC,EAAcxD,EAAmB,GAAGwD,YACpCC,EAAoBL,EAAmBE,EACvCI,GAAkB,CAElBjC,GAASd,EAAIlC,EAET2E,EAAmB,GAAK3B,EAASd,GAAKyC,EAAmBlE,IACzDuC,EAASd,GAAK1B,EACdyE,GAAkB,EAClBnE,EAAUK,IAAIC,YAAY3B,MAAMD,IAAIgC,OAAO+B,KAAK/C,IAI5BuE,EAApBC,GAAmChC,EAASd,GAAK8C,EAAoBvE,IACrEuC,EAASd,GAAK1B,EACdyE,GAAkB,EAClBnE,EAAUK,IAAIC,YAAY3B,MAAMD,IAAIgC,OAAO0D,MAAM1E,IAIrDyE,IACAjE,EAAiBpC,EAAS,WACtBiE,EAAWV,EAAMT,IAClB,KAAK,KAIZyD,EAAsB,WACCpB,SAAnB/C,IACApC,EAASwG,OAAOpE,GAChBA,EAAiB+C,SAIrB3B,EAAc,SAASF,GACvB,GAAImD,GAAW,EAEXnG,EAAgBT,EAAMoD,eAAef,EAAUgB,KAAKC,MAAMnC,QAASkB,EAAUgB,KAAKX,IAAIY,MAAMnC,SAAU,gBAAiBb,EAAMG,eAC7HC,EAAoBV,EAAMoD,eAAef,EAAUgB,KAAKC,MAAMnC,QAASkB,EAAUgB,KAAKX,IAAIY,MAAMnC,SAAU,oBAAqBb,EAAMI,mBACrIF,EAAcR,EAAMoD,eAAef,EAAUgB,KAAKC,MAAMnC,QAASkB,EAAUgB,KAAKX,IAAIY,MAAMnC,SAAU,cAAeb,EAAME,YAO7H,OAJIC,KACAmG,EAAWtE,EAAY,GAAG+D,YAAc,GAAKvE,EAAuBD,GAGpEpB,GAAiBgD,EAAInB,EAAY,GAAG+D,YAAcO,EAC3C,IACAnG,GAAqBmG,EAAJnD,EACjB,KACCjD,GAAeE,IAAsB+C,GAAKmD,GAAYnD,GAAKnB,EAAY,GAAG+D,YAAcO,EACzF,IAEA,IAIXzC,EAAY,SAAST,GACrB,OAAQA,GACJ,IAAK,IACD,MAAO,UACX,KAAK,IACD,MAAO,UACX,KAAK,IACD,MAAO,SAIfK,EAAiB,SAASL,EAAMD,GAEK6B,SAAjCjD,EAAUgB,KAAKwD,gBACfxE,EAAUgB,KAAKyD,YAAczE,EAAUgB,KAAKX,IAC5CL,EAAUgB,KAAKwD,cAAgBxE,EAAUgB,KAAKC,MAC9CjB,EAAUgB,KAAKC,MAAQ7D,QAAQsH,KAAK1E,EAAUgB,KAAKwD,gBAG1C,MAATnD,GACApB,EAAY0E,SAAS,qBAChB3E,EAAUgB,KAAKY,UAChB5B,EAAUK,IAAIC,YAAY3B,MAAMD,IAAI6E,MAAMC,MAAMoB,UAAU5E,EAAUgB,QAGxEf,EAAY0E,SAAS,uBAChB3E,EAAUgB,KAAKY,UAChB5B,EAAUK,IAAIC,YAAY3B,MAAMD,IAAI6E,MAAMC,MAAMqB,YAAY7E,EAAUgB,OAKzEhB,EAAUgB,KAAKY,WAChB1C,EAAakC,EACbnC,EAAoBmC,EAAIpB,EAAUgB,KAAK8D,WAI3CnE,GAAqB,EACrBX,EAAUgB,KAAK+D,SAAW1D,EAC1BrB,EAAUgB,KAAKY,UAAW,EAC1B5B,EAAUgB,KAAKgE,QAAS,CAGxB,IAAIC,GAAkB,SAASrE,GAC3BA,EAAIsE,2BACA/F,IACAyB,EAAMpD,EAAYsD,SAASF,IAE3BZ,EAAUgB,KAAKY,WAIfyC,IACAtC,EAAWV,EAAMT,KAGrBuE,EAAiB1H,EAAWuC,EAAWG,EAAeb,EAAa2F,EACvEE,GAAeC,OAEf3H,EAAWuC,EAAWG,EAAeZ,EAAgB,SAASqB,GACtDzB,IACAyB,EAAMpD,EAAYsD,SAASF,IAE/BuE,EAAeE,SACfC,EAAgB1E,GAChBZ,EAAU2B,YACX4D,WAGHtF,EAAY4B,IAAI,SAAUC,EAAUT,IACpCjE,QAAQmB,QAAQV,EAAU,GAAG0C,MAAMsB,KAC/B2D,mBAAoB,YACpBC,sBAAuB,OACvBC,kBAAmB,OACnBC,cAAe,OACfC,OAAU9D,EAAUT,MAIxBiE,EAAkB,WAIlB,GAHArF,EAAY4F,YAAY,qBACxB5F,EAAY4F,YAAY,uBAEa5C,SAAjCjD,EAAUgB,KAAKwD,cAA6B,CAG5C,GAFApH,QAAQ0I,OAAO9F,EAAUgB,KAAKwD,cAAexE,EAAUgB,KAAKC,OAC5DjB,EAAUgB,KAAKC,MAAQjB,EAAUgB,KAAKwD,cAClCxE,EAAUgB,KAAKX,IAAIY,MAAM8E,KAAO/F,EAAUgB,KAAKyD,YAAYxD,MAAM8E,GAAI,CACrE,GAAI3D,GAAYpC,EAAUgB,KAAKX,GAC/B+B,GAAU4D,WAAWhG,EAAUgB,KAAKC,MAAM8E,IAAI,GAAO,GACrD/F,EAAUgB,KAAKX,IAAML,EAAUgB,KAAKyD,YACpCrC,EAAUc,cAAclD,EAAUgB,MAAM,SAErChB,GAAUgB,KAAKwD,oBACfxE,GAAUgB,KAAKyD,YAEtBzE,EAAUiG,SAGdjG,EAAUgB,KAAKY,UAAW,EAC1B5B,EAAUgB,KAAKgE,QAAS,EAGxBX,IAGApE,EAAY4B,IAAI,SAAU,IAC1BzE,QAAQmB,QAAQV,EAAU,GAAG0C,MAAMsB,KAC/B2D,mBAAoB,GACpBC,sBAAuB,GACvBC,kBAAmB,GACnBC,cAAe,GACfC,OAAU,KAIkB,MAA5B5F,EAAUgB,KAAK+D,SACf/E,EAAUK,IAAIC,YAAY3B,MAAMD,IAAI6E,MAAMC,MAAM0C,QAAQlG,EAAUgB,MAElEhB,EAAUK,IAAIC,YAAY3B,MAAMD,IAAI6E,MAAMC,MAAM2C,UAAUnG,EAAUgB,MAGxEhB,EAAUgB,KAAK+D,SAAW9B,OAGtBtC,KAAuB,IACvBA,GAAqB,EACrBX,EAAUgB,KAAKX,IAAI+F,YACnBpG,EAAUK,IAAIC,YAAY3B,MAAMD,IAAI6E,MAAMC,MAAM6C,OAAOrG,EAAUgB,OAIrEhB,GAAUgB,KAAKsF,kBACRtG,GAAUgB,KAAKsF,WACtB5E,EAAe,IAAK1B,EAAUgB,KAAKmB,eAC5BnC,EAAUgB,KAAKY,UAGtBF,EAAe,IAAK1B,EAAUgB,KAAKmB,yBCzWlE,WACG,YACA/E,SAAQC,OAAO,iBAAiBkJ,QAAQ,uBAAwB,WAC5D,OACIxH,WAAY,SAASH,GAOjB,MALAA,GAAQV,QAA8B+E,SAApBrE,EAAQV,UAA0BU,EAAQV,SAAU,EACtEU,EAAQT,YAAsC8E,SAAxBrE,EAAQT,cAA8BS,EAAQT,aAAc,EAClFS,EAAQR,cAA0C6E,SAA1BrE,EAAQR,gBAAgCQ,EAAQR,eAAgB,EACxFQ,EAAQP,kBAAkD4E,SAA9BrE,EAAQP,oBAAoCO,EAAQP,mBAAoB,EAE7FO"} \ No newline at end of file +{"version":3,"file":"angular-gantt-movable-plugin.min.js","sources":["../src/plugins/movable.js","../src/plugins/movable/movableOptions.factory.js"],"names":["angular","module","directive","mouseButton","mouseOffset","smartEvent","movableOptions","utils","$window","$document","$timeout","restrict","require","scope","enabled","allowMoving","allowResizing","allowRowSwitching","link","element","attrs","ganttCtrl","api","gantt","options","option","movable","initialize","registerEvent","mouseStartOffsetX","moveStartX","_hasTouch","DocumentTouch","_pressEvents","_moveEvents","_releaseEvents","taskWithSmallWidth","resizeAreaWidthBig","resizeAreaWidthSmall","scrollSpeed","scrollTriggerDistance","directives","on","new","directiveName","taskScope","taskElement","scrollInterval","windowElement","ganttBodyElement","row","rowsManager","body","$element","ganttScrollElement","scroll","taskHasBeenChanged","evt","preventDefault","getTouch","firstProperty","task","model","taskOffsetX","getOffset","x","mode","getMoveMode","getButton","bodyOffsetX","getOffsetForElement","enableMoveMode","$digest","isMoving","css","getCursor","handleMove","moveTask","scrollScreen","mousePos","mouseOffsetX","moveMode","targetRow","scrollRect","getBoundingClientRect","rowCenterLeft","left","width","targetRowElement","findElementFromPoint","clientY","hasClass","rows","i","l","length","sourceRow","undefined","moveTaskToRow","$scope","taskOutOfRange","moveTo","tasks","raise","move","setGlobalCursor","setTo","resize","setFrom","leftScreenBorder","scrollLeft","screenWidth","offsetWidth","scrollWidth","rightScreenBorder","keepOnScrolling","right","clearScrollInterval","cancel","distance","cursor","-moz-user-select","-webkit-user-select","-ms-user-select","user-select","originalModel","originalRow","copy","addClass","moveBegin","resizeBegin","isResizing","modelLeft","active","taskMoveHandler","stopImmediatePropagation","moveSmartEvent","bind","unbind","disableMoveMode","bindOnce","removeClass","extend","id","removeTask","$apply","moveEnd","resizeEnd","sortTasks","change","factory"],"mappings":"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"} \ No newline at end of file diff --git a/dist/angular-gantt-plugins.css b/dist/angular-gantt-plugins.css index 4be026375..2ef57838d 100644 --- a/dist/angular-gantt-plugins.css +++ b/dist/angular-gantt-plugins.css @@ -37,7 +37,6 @@ .gantt-labels-header { overflow: hidden; - border-bottom: 1px solid #dddddd; } .gantt-labels-body { @@ -52,6 +51,8 @@ } .gantt-task-moving, .gantt-task-resizing { + z-index: 750 !important; + opacity: 0.6; filter: alpha(opacity=60); diff --git a/dist/angular-gantt-plugins.js b/dist/angular-gantt-plugins.js index 0daa372bf..5199d1a1a 100644 --- a/dist/angular-gantt-plugins.js +++ b/dist/angular-gantt-plugins.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com @@ -210,6 +210,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git var _moveEvents = 'touchmove mousemove'; var _releaseEvents = 'touchend mouseup'; + var taskWithSmallWidth = 15; var resizeAreaWidthBig = 5; var resizeAreaWidthSmall = 3; var scrollSpeed = 15; @@ -245,10 +246,10 @@ Github: https://github.com/angular-gantt/angular-gantt.git taskElement.on('mousemove', function(evt) { var enabled = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'enabled', scope.enabled); - if (enabled) { + if (enabled && !taskScope.task.isMoving) { var taskOffsetX = mouseOffset.getOffset(evt).x; var mode = getMoveMode(taskOffsetX); - if (mode !== '' && (taskScope.task.isMoving || mode !== 'M')) { + if (mode !== '' && mode !== 'M') { taskElement.css('cursor', getCursor(mode)); } else { taskElement.css('cursor', ''); @@ -256,22 +257,23 @@ Github: https://github.com/angular-gantt/angular-gantt.git } }); - var handleMove = function(mode, evt) { - moveTask(mode, evt); - scrollScreen(mode, evt); + var handleMove = function(evt) { + moveTask(evt); + scrollScreen(evt); }; - var moveTask = function(mode, evt) { + var moveTask = function(evt) { var mousePos = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt); var x = mousePos.x; taskScope.task.mouseOffsetX = x; - if (mode === 'M') { + if (taskScope.task.moveMode === 'M') { var allowRowSwitching = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowRowSwitching', scope.allowRowSwitching); if (allowRowSwitching) { var scrollRect = ganttScrollElement[0].getBoundingClientRect(); + var rowCenterLeft = scrollRect.left + scrollRect.width / 2; - var targetRowElement = utils.findElementFromPoint(scrollRect.left, evt.clientY, function(element) { + var targetRowElement = utils.findElementFromPoint(rowCenterLeft, evt.clientY, function(element) { return angular.element(element).hasClass('gantt-row'); }); var rows = ganttCtrl.gantt.rowsManager.rows; @@ -295,6 +297,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git var allowMoving = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowMoving', scope.allowMoving); if (allowMoving) { x = x - mouseStartOffsetX; + if (taskScope.taskOutOfRange !== 'truncate') { if (x < 0) { x = 0; @@ -302,29 +305,36 @@ Github: https://github.com/angular-gantt/angular-gantt.git x = taskScope.gantt.width - taskScope.task.width; } } + taskScope.task.moveTo(x, true); taskScope.$digest(); taskScope.row.rowsManager.gantt.api.tasks.raise.move(taskScope.task); } - } else if (mode === 'E') { - if (taskScope.taskOutOfRange !== 'truncate') { - if (x < taskScope.task.left) { - x = taskScope.task.left; - } else if (x > taskScope.gantt.width) { - x = taskScope.gantt.width; - } + } else if (taskScope.task.moveMode === 'E') { + if (x <= taskScope.task.left) { + x = taskScope.task.left; + taskScope.task.moveMode = 'W'; + setGlobalCursor(getCursor(taskScope.task.moveMode )); } + + if (taskScope.taskOutOfRange !== 'truncate' && x >= taskScope.gantt.width) { + x = taskScope.gantt.width; + } + taskScope.task.setTo(x, true); taskScope.$digest(); taskScope.row.rowsManager.gantt.api.tasks.raise.resize(taskScope.task); } else { - if (taskScope.taskOutOfRange !== 'truncate') { - if (x > taskScope.task.left + taskScope.task.width) { - x = taskScope.task.left + taskScope.task.width; - } else if (x < 0) { - x = 0; - } + if (x > taskScope.task.left + taskScope.task.width) { + x = taskScope.task.left + taskScope.task.width; + taskScope.task.moveMode = 'E'; + setGlobalCursor(getCursor(taskScope.task.moveMode )); } + + if (taskScope.taskOutOfRange !== 'truncate' && x < 0) { + x = 0; + } + taskScope.task.setFrom(x, true); taskScope.$digest(); taskScope.row.rowsManager.gantt.api.tasks.raise.resize(taskScope.task); @@ -333,7 +343,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git taskHasBeenChanged = true; }; - var scrollScreen = function(mode, evt) { + var scrollScreen = function(evt) { var mousePos = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt); var leftScreenBorder = ganttScrollElement[0].scrollLeft; var screenWidth = ganttScrollElement[0].offsetWidth; @@ -359,7 +369,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git if (keepOnScrolling) { scrollInterval = $timeout(function() { - handleMove(mode, evt); + handleMove(evt); }, 100, true); } }; @@ -380,7 +390,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git // Define resize&move area. Make sure the move area does not get too small. if (allowResizing) { - distance = taskElement[0].offsetWidth < 10 ? resizeAreaWidthSmall : resizeAreaWidthBig; + distance = taskElement[0].offsetWidth < taskWithSmallWidth ? resizeAreaWidthSmall : resizeAreaWidthBig; } if (allowResizing && x > taskElement[0].offsetWidth - distance) { @@ -405,6 +415,17 @@ Github: https://github.com/angular-gantt/angular-gantt.git } }; + var setGlobalCursor = function(cursor) { + taskElement.css('cursor', cursor); + angular.element($document[0].body).css({ + '-moz-user-select': cursor === '' ? '': '-moz-none', + '-webkit-user-select': cursor === '' ? '': 'none', + '-ms-user-select': cursor === '' ? '': 'none', + 'user-select': cursor === '' ? '': 'none', + 'cursor': cursor + }); + }; + var enableMoveMode = function(mode, x) { // Clone taskModel if (taskScope.task.originalModel === undefined) { @@ -426,7 +447,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git } // Init mouse start variables (if tasks was not move from another row) - if (!taskScope.task.isMoving) { + if (!taskScope.task.isMoving && !taskScope.task.isResizing) { moveStartX = x; mouseStartOffsetX = x - taskScope.task.modelLeft; } @@ -448,7 +469,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git // Without this check, task.changed event is not fired for faster moves. // See github issue #190 clearScrollInterval(); - handleMove(mode, evt); + handleMove(evt); } }; var moveSmartEvent = smartEvent(taskScope, windowElement, _moveEvents, taskMoveHandler); @@ -463,15 +484,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git taskScope.$digest(); }).bindOnce(); - // Show mouse move/resize cursor - taskElement.css('cursor', getCursor(mode)); - angular.element($document[0].body).css({ - '-moz-user-select': '-moz-none', - '-webkit-user-select': 'none', - '-ms-user-select': 'none', - 'user-select': 'none', - 'cursor': getCursor(mode) - }); + setGlobalCursor(getCursor(mode)); }; var disableMoveMode = function() { @@ -500,14 +513,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git clearScrollInterval(); // Set mouse cursor back to default - taskElement.css('cursor', ''); - angular.element($document[0].body).css({ - '-moz-user-select': '', - '-webkit-user-select': '', - '-ms-user-select': '', - 'user-select': '', - 'cursor': '' - }); + setGlobalCursor(''); // Raise move end event if (taskScope.task.moveMode === 'M') { @@ -527,8 +533,8 @@ Github: https://github.com/angular-gantt/angular-gantt.git }; if (taskScope.task.isResizing) { - delete taskScope.task.isResizing; enableMoveMode('E', taskScope.task.mouseOffsetX); + delete taskScope.task.isResizing; } else if (taskScope.task.isMoving) { // In case the task has been moved to another row a new controller is is created by angular. // Enable the move mode again if this was the case. @@ -602,63 +608,120 @@ Github: https://github.com/angular-gantt/angular-gantt.git (function(){ 'use strict'; - angular.module('gantt.sortable', ['gantt', 'ang-drag-drop']).directive('ganttSortable', ['ganttUtils', '$compile', function(utils, $compile) { - // Provides the row sort functionality to any Gantt row - // Uses the sortableState to share the current row - return { - restrict: 'E', - require: '^gantt', - scope: { - enabled: '=?' - }, - link: function(scope, element, attrs, ganttCtrl) { - var api = ganttCtrl.gantt.api; + var moduleName = 'gantt.sortable'; + var directiveName = 'ganttSortable'; + var pluginDependencies = [ + 'gantt', + {module:'ang-drag-drop', url:'https://github.com/ganarajpr/angular-dragdrop.git#master'} + ]; + + var failedDependencies = []; + var loadedDependencies = []; + var failedDependency; + + for (var i = 0, l = pluginDependencies.length; i < l; i++) { + var currentDependency = pluginDependencies[i]; + try { + if (angular.isString(currentDependency)) { + currentDependency = {module: currentDependency}; + pluginDependencies[i] = currentDependency; + } + angular.module(currentDependency.module); + loadedDependencies.push(currentDependency.module); + } catch (e) { + currentDependency.exception = e; + failedDependencies.push(currentDependency); + } + } + + if (failedDependencies.length > 0) { + angular.module(moduleName, []).directive(directiveName, ['$log', function($log) { + return { + restrict: 'E', + require: '^gantt', + scope: { + enabled: '=?' + }, + link: function() { + $log.warn(moduleName + ' module can\'t require some dependencies:'); + for (var i= 0,l =failedDependencies.length; i\n' + ''); $templateCache.put('plugins/labels/rowHeader.tmpl.html', - '
\n' + - ' Name\n' + + '
\n' + + '
\n' + + '
{{$last ? "Name" : ""}}
\n' + + '
\n' + '
\n' + ''); $templateCache.put('plugins/labels/rowLabel.tmpl.html', diff --git a/dist/angular-gantt-plugins.js.map b/dist/angular-gantt-plugins.js.map index efc9a0795..31a134143 100644 --- a/dist/angular-gantt-plugins.js.map +++ b/dist/angular-gantt-plugins.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/plugins/bounds.js","../src/plugins/drawtask.js","../src/plugins/labels.js","../src/plugins/movable.js","../src/plugins/progress.js","../src/plugins/sortable.js","../src/plugins/tooltips.js","../src/plugins/bounds/taskBounds.directive.js","../src/plugins/labels/labelsBody.directive.js","../src/plugins/labels/labelsHeader.directive.js","../src/plugins/labels/rowHeader.directive.js","../src/plugins/labels/rowLabel.directive.js","../src/plugins/labels/rowLabels.directive.js","../src/plugins/labels/sideContentLabels.directive.js","../src/plugins/movable/movableOptions.factory.js","../src/plugins/progress/taskProgress.directive.js","../src/plugins/tooltips/tooltip.directive.js","../.tmp/generated/plugins/bounds/html2js.js","../.tmp/generated/plugins/drawtask/html2js.js","../.tmp/generated/plugins/labels/html2js.js","../.tmp/generated/plugins/movable/html2js.js","../.tmp/generated/plugins/progress/html2js.js","../.tmp/generated/plugins/sortable/html2js.js","../.tmp/generated/plugins/tooltips/html2js.js"],"names":[],"mappings":"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","file":"angular-gantt-plugins.js","sourcesContent":["(function(){\n 'use strict';\n angular.module('gantt.bounds', ['gantt', 'gantt.bounds.templates']).directive('ganttBounds', ['moment', '$compile', '$document', function(moment, $compile, $document) {\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n // Load options from global options attribute.\n if (scope.options && typeof(scope.options.bounds) === 'object') {\n for (var option in scope.options.bounds) {\n scope[option] = scope.options[option];\n }\n }\n\n if (scope.enabled === undefined) {\n scope.enabled = true;\n }\n\n api.directives.on.new(scope, function(directiveName, taskScope, taskElement) {\n if (directiveName === 'ganttTask') {\n var boundsScope = taskScope.$new();\n boundsScope.pluginScope = scope;\n\n var ifElement = $document[0].createElement('div');\n angular.element(ifElement).attr('data-ng-if', 'task.model.est && task.model.lct && pluginScope.enabled');\n var boundsElement = $document[0].createElement('gantt-task-bounds');\n if (attrs.templateUrl !== undefined) {\n angular.element(boundsElement).attr('data-template-url', attrs.templateUrl);\n }\n if (attrs.template !== undefined) {\n angular.element(boundsElement).attr('data-template', attrs.template);\n }\n angular.element(ifElement).append(boundsElement);\n taskElement.append($compile(ifElement)(boundsScope));\n }\n });\n\n api.tasks.on.clean(scope, function(model) {\n if (model.est !== undefined && !moment.isMoment(model.est)) {\n model.est = moment(model.est); //Earliest Start Time\n }\n if (model.lct !== undefined && !moment.isMoment(model.lct)) {\n model.lct = moment(model.lct); //Latest Completion Time\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.drawtask', ['gantt']).directive('ganttDrawTask', ['ganttMouseOffset', 'moment', function(mouseOffset, moment) {\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?',\n taskModelFactory: '=taskFactory'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n if (scope.enabled === undefined) {\n scope.enabled = true;\n }\n\n api.directives.on.new(scope, function(directiveName, directiveScope, element) {\n if (directiveName === 'ganttRow') {\n var drawHandler = function(evt) {\n var evtTarget = (evt.target ? evt.target : evt.srcElement);\n if (scope.enabled && evtTarget.className.indexOf('gantt-row') > -1) {\n var startDate = api.core.getDateByPosition(mouseOffset.getOffset(evt).x);\n var endDate = moment(startDate);\n\n var taskModel = scope.taskModelFactory();\n taskModel.from = startDate;\n taskModel.to = endDate;\n\n var task = directiveScope.row.addTask(taskModel);\n task.isResizing = true;\n task.updatePosAndSize();\n directiveScope.row.updateVisibleTasks();\n\n directiveScope.row.$scope.$digest();\n }\n };\n\n element.on('mousedown', drawHandler);\n directiveScope.drawTaskHandler = drawHandler;\n }\n });\n\n api.directives.on.destroy(scope, function(directiveName, directiveScope, element) {\n if (directiveName === 'ganttRow') {\n element.off('mousedown', directiveScope.drawTaskHandler);\n delete directiveScope.drawTaskHandler;\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.labels', ['gantt', 'gantt.labels.templates']).directive('ganttLabels', ['ganttUtils', '$compile', '$document', '$timeout', function(utils, $compile, $document, $timeout) {\n // Provides the row sort functionality to any Gantt row\n // Uses the sortableState to share the current row\n\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n // Load options from global options attribute.\n if (scope.options && typeof(scope.options.sortable) === 'object') {\n for (var option in scope.options.sortable) {\n scope[option] = scope.options[option];\n }\n }\n\n if (scope.enabled === undefined) {\n scope.enabled = true;\n }\n\n scope.$watch('enabled', function(oldValue, newValue) {\n if (oldValue !== newValue) {\n $timeout(function() {\n api.columns.refresh();\n });\n }\n });\n\n api.directives.on.new(scope, function(directiveName, sideContentScope, sideContentElement) {\n if (directiveName === 'ganttSideContent') {\n var labelsScope = sideContentScope.$new();\n labelsScope.pluginScope = scope;\n\n var ifElement = $document[0].createElement('div');\n angular.element(ifElement).attr('data-ng-if', 'pluginScope.enabled');\n\n var labelsElement = $document[0].createElement('gantt-side-content-labels');\n angular.element(ifElement).append(labelsElement);\n\n sideContentElement.append($compile(ifElement)(labelsScope));\n }\n });\n\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.movable', ['gantt']).directive('ganttMovable', ['ganttMouseButton', 'ganttMouseOffset', 'ganttSmartEvent', 'ganttMovableOptions', 'ganttUtils', '$window', '$document', '$timeout',\n function(mouseButton, mouseOffset, smartEvent, movableOptions, utils, $window, $document, $timeout) {\n // Provides moving and resizing of tasks\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?',\n allowMoving: '=?',\n allowResizing: '=?',\n allowRowSwitching: '=?'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n // Load options from global options attribute.\n if (scope.options && typeof(scope.options.movable) === 'object') {\n for (var option in scope.options.movable) {\n scope[option] = scope.options[option];\n }\n }\n\n movableOptions.initialize(scope);\n\n api.registerEvent('tasks', 'move');\n api.registerEvent('tasks', 'moveBegin');\n api.registerEvent('tasks', 'moveEnd');\n api.registerEvent('tasks', 'resize');\n api.registerEvent('tasks', 'resizeBegin');\n api.registerEvent('tasks', 'resizeEnd');\n api.registerEvent('tasks', 'change');\n\n var _hasTouch = ('ontouchstart' in $window) || $window.DocumentTouch && $document[0] instanceof $window.DocumentTouch;\n var _pressEvents = 'touchstart mousedown';\n var _moveEvents = 'touchmove mousemove';\n var _releaseEvents = 'touchend mouseup';\n\n var resizeAreaWidthBig = 5;\n var resizeAreaWidthSmall = 3;\n var scrollSpeed = 15;\n var scrollTriggerDistance = 5;\n var mouseStartOffsetX;\n var moveStartX;\n\n api.directives.on.new(scope, function(directiveName, taskScope, taskElement) {\n if (directiveName === 'ganttTask') {\n var windowElement = angular.element($window);\n var ganttBodyElement = taskScope.row.rowsManager.gantt.body.$element;\n var ganttScrollElement = taskScope.row.rowsManager.gantt.scroll.$element;\n\n var taskHasBeenChanged = false;\n var scrollInterval;\n\n taskElement.on(_pressEvents, function(evt) {\n evt.preventDefault();\n if (_hasTouch) {\n evt = mouseOffset.getTouch(evt);\n }\n var enabled = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'enabled', scope.enabled);\n if (enabled) {\n var taskOffsetX = mouseOffset.getOffset(evt).x;\n var mode = getMoveMode(taskOffsetX);\n if (mode !== '' && mouseButton.getButton(evt) === 1) {\n var bodyOffsetX = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt).x;\n enableMoveMode(mode, bodyOffsetX);\n }\n taskScope.$digest();\n }\n });\n\n taskElement.on('mousemove', function(evt) {\n var enabled = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'enabled', scope.enabled);\n if (enabled) {\n var taskOffsetX = mouseOffset.getOffset(evt).x;\n var mode = getMoveMode(taskOffsetX);\n if (mode !== '' && (taskScope.task.isMoving || mode !== 'M')) {\n taskElement.css('cursor', getCursor(mode));\n } else {\n taskElement.css('cursor', '');\n }\n }\n });\n\n var handleMove = function(mode, evt) {\n moveTask(mode, evt);\n scrollScreen(mode, evt);\n };\n\n var moveTask = function(mode, evt) {\n var mousePos = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt);\n var x = mousePos.x;\n taskScope.task.mouseOffsetX = x;\n\n if (mode === 'M') {\n var allowRowSwitching = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowRowSwitching', scope.allowRowSwitching);\n if (allowRowSwitching) {\n var scrollRect = ganttScrollElement[0].getBoundingClientRect();\n\n var targetRowElement = utils.findElementFromPoint(scrollRect.left, evt.clientY, function(element) {\n return angular.element(element).hasClass('gantt-row');\n });\n var rows = ganttCtrl.gantt.rowsManager.rows;\n var targetRow;\n for (var i= 0, l=rows.length; i= taskScope.gantt.width) {\n x = taskScope.gantt.width - taskScope.task.width;\n }\n }\n taskScope.task.moveTo(x, true);\n taskScope.$digest();\n taskScope.row.rowsManager.gantt.api.tasks.raise.move(taskScope.task);\n }\n } else if (mode === 'E') {\n if (taskScope.taskOutOfRange !== 'truncate') {\n if (x < taskScope.task.left) {\n x = taskScope.task.left;\n } else if (x > taskScope.gantt.width) {\n x = taskScope.gantt.width;\n }\n }\n taskScope.task.setTo(x, true);\n taskScope.$digest();\n taskScope.row.rowsManager.gantt.api.tasks.raise.resize(taskScope.task);\n } else {\n if (taskScope.taskOutOfRange !== 'truncate') {\n if (x > taskScope.task.left + taskScope.task.width) {\n x = taskScope.task.left + taskScope.task.width;\n } else if (x < 0) {\n x = 0;\n }\n }\n taskScope.task.setFrom(x, true);\n taskScope.$digest();\n taskScope.row.rowsManager.gantt.api.tasks.raise.resize(taskScope.task);\n }\n\n taskHasBeenChanged = true;\n };\n\n var scrollScreen = function(mode, evt) {\n var mousePos = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt);\n var leftScreenBorder = ganttScrollElement[0].scrollLeft;\n var screenWidth = ganttScrollElement[0].offsetWidth;\n var scrollWidth = ganttScrollElement[0].scrollWidth;\n var rightScreenBorder = leftScreenBorder + screenWidth;\n var keepOnScrolling = false;\n\n if (mousePos.x < moveStartX) {\n // Scroll to the left\n if (leftScreenBorder > 0 && mousePos.x <= leftScreenBorder + scrollTriggerDistance) {\n mousePos.x -= scrollSpeed;\n keepOnScrolling = true;\n taskScope.row.rowsManager.gantt.api.scroll.left(scrollSpeed);\n }\n } else {\n // Scroll to the right\n if (rightScreenBorder < scrollWidth && mousePos.x >= rightScreenBorder - scrollTriggerDistance) {\n mousePos.x += scrollSpeed;\n keepOnScrolling = true;\n taskScope.row.rowsManager.gantt.api.scroll.right(scrollSpeed);\n }\n }\n\n if (keepOnScrolling) {\n scrollInterval = $timeout(function() {\n handleMove(mode, evt);\n }, 100, true);\n }\n };\n\n var clearScrollInterval = function() {\n if (scrollInterval !== undefined) {\n $timeout.cancel(scrollInterval);\n scrollInterval = undefined;\n }\n };\n\n var getMoveMode = function(x) {\n var distance = 0;\n\n var allowResizing = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowResizing', scope.allowResizing);\n var allowRowSwitching = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowRowSwitching', scope.allowRowSwitching);\n var allowMoving = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowMoving', scope.allowMoving);\n\n // Define resize&move area. Make sure the move area does not get too small.\n if (allowResizing) {\n distance = taskElement[0].offsetWidth < 10 ? resizeAreaWidthSmall : resizeAreaWidthBig;\n }\n\n if (allowResizing && x > taskElement[0].offsetWidth - distance) {\n return 'E';\n } else if (allowResizing && x < distance) {\n return 'W';\n } else if ((allowMoving || allowRowSwitching) && x >= distance && x <= taskElement[0].offsetWidth - distance) {\n return 'M';\n } else {\n return '';\n }\n };\n\n var getCursor = function(mode) {\n switch (mode) {\n case 'E':\n return 'e-resize';\n case 'W':\n return 'w-resize';\n case 'M':\n return 'move';\n }\n };\n\n var enableMoveMode = function(mode, x) {\n // Clone taskModel\n if (taskScope.task.originalModel === undefined) {\n taskScope.task.originalRow = taskScope.task.row;\n taskScope.task.originalModel = taskScope.task.model;\n taskScope.task.model = angular.copy(taskScope.task.originalModel);\n }\n\n if (mode === 'M') {\n taskElement.addClass('gantt-task-moving');\n if (!taskScope.task.isMoving) {\n taskScope.row.rowsManager.gantt.api.tasks.raise.moveBegin(taskScope.task);\n }\n } else {\n taskElement.addClass('gantt-task-resizing');\n if (!taskScope.task.isMoving) {\n taskScope.row.rowsManager.gantt.api.tasks.raise.resizeBegin(taskScope.task);\n }\n }\n\n // Init mouse start variables (if tasks was not move from another row)\n if (!taskScope.task.isMoving) {\n moveStartX = x;\n mouseStartOffsetX = x - taskScope.task.modelLeft;\n }\n\n // Init task move\n taskHasBeenChanged = false;\n taskScope.task.moveMode = mode;\n taskScope.task.isMoving = true;\n taskScope.task.active = true;\n\n // Add move event handlers\n var taskMoveHandler = function(evt) {\n evt.stopImmediatePropagation();\n if (_hasTouch) {\n evt = mouseOffset.getTouch(evt);\n }\n if (taskScope.task.isMoving) {\n // As this function is defered, disableMoveMode may have been called before.\n // Without this check, task.changed event is not fired for faster moves.\n // See github issue #190\n clearScrollInterval();\n handleMove(mode, evt);\n }\n };\n var moveSmartEvent = smartEvent(taskScope, windowElement, _moveEvents, taskMoveHandler);\n moveSmartEvent.bind();\n\n smartEvent(taskScope, windowElement, _releaseEvents, function(evt) {\n if (_hasTouch) {\n evt = mouseOffset.getTouch(evt);\n }\n moveSmartEvent.unbind();\n disableMoveMode(evt);\n taskScope.$digest();\n }).bindOnce();\n\n // Show mouse move/resize cursor\n taskElement.css('cursor', getCursor(mode));\n angular.element($document[0].body).css({\n '-moz-user-select': '-moz-none',\n '-webkit-user-select': 'none',\n '-ms-user-select': 'none',\n 'user-select': 'none',\n 'cursor': getCursor(mode)\n });\n };\n\n var disableMoveMode = function() {\n taskElement.removeClass('gantt-task-moving');\n taskElement.removeClass('gantt-task-resizing');\n\n if (taskScope.task.originalModel !== undefined) {\n angular.extend(taskScope.task.originalModel, taskScope.task.model);\n taskScope.task.model = taskScope.task.originalModel;\n if (taskScope.task.row.model.id !== taskScope.task.originalRow.model.id) {\n var targetRow = taskScope.task.row;\n targetRow.removeTask(taskScope.task.model.id, false, true);\n taskScope.task.row = taskScope.task.originalRow;\n targetRow.moveTaskToRow(taskScope.task, false);\n }\n delete taskScope.task.originalModel;\n delete taskScope.task.originalRow;\n\n taskScope.$apply();\n }\n\n taskScope.task.isMoving = false;\n taskScope.task.active = false;\n\n // Stop any active auto scroll\n clearScrollInterval();\n\n // Set mouse cursor back to default\n taskElement.css('cursor', '');\n angular.element($document[0].body).css({\n '-moz-user-select': '',\n '-webkit-user-select': '',\n '-ms-user-select': '',\n 'user-select': '',\n 'cursor': ''\n });\n\n // Raise move end event\n if (taskScope.task.moveMode === 'M') {\n taskScope.row.rowsManager.gantt.api.tasks.raise.moveEnd(taskScope.task);\n } else {\n taskScope.row.rowsManager.gantt.api.tasks.raise.resizeEnd(taskScope.task);\n }\n\n taskScope.task.moveMode = undefined;\n\n // Raise task changed event\n if (taskHasBeenChanged === true) {\n taskHasBeenChanged = false;\n taskScope.task.row.sortTasks(); // Sort tasks so they have the right z-order\n taskScope.row.rowsManager.gantt.api.tasks.raise.change(taskScope.task);\n }\n };\n\n if (taskScope.task.isResizing) {\n delete taskScope.task.isResizing;\n enableMoveMode('E', taskScope.task.mouseOffsetX);\n } else if (taskScope.task.isMoving) {\n // In case the task has been moved to another row a new controller is is created by angular.\n // Enable the move mode again if this was the case.\n enableMoveMode('M', taskScope.task.mouseOffsetX);\n }\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.progress', ['gantt', 'gantt.progress.templates']).directive('ganttProgress', ['moment', '$compile', '$document', function(moment, $compile, $document) {\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n // Load options from global options attribute.\n if (scope.options && typeof(scope.options.progress) === 'object') {\n for (var option in scope.options.progress) {\n scope[option] = scope.options[option];\n }\n }\n\n if (scope.enabled === undefined) {\n scope.enabled = true;\n }\n\n api.directives.on.new(scope, function(directiveName, taskScope, taskElement) {\n if (directiveName === 'ganttTask') {\n var progressScope = taskScope.$new();\n progressScope.pluginScope = scope;\n\n var ifElement = $document[0].createElement('div');\n angular.element(ifElement).attr('data-ng-if', 'task.model.progress !== undefined && pluginScope.enabled');\n\n var progressElement = $document[0].createElement('gantt-task-progress');\n if (attrs.templateUrl !== undefined) {\n angular.element(progressElement).attr('data-template-url', attrs.templateUrl);\n }\n if (attrs.template !== undefined) {\n angular.element(progressElement).attr('data-template', attrs.template);\n }\n angular.element(ifElement).append(progressElement);\n taskElement.append($compile(ifElement)(progressScope));\n }\n });\n\n api.tasks.on.clean(scope, function(model) {\n if (model.est !== undefined && !moment.isMoment(model.est)) {\n model.est = moment(model.est); //Earliest Start Time\n }\n\n if (model.lct !== undefined && !moment.isMoment(model.lct)) {\n model.lct = moment(model.lct); //Latest Completion Time\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.sortable', ['gantt', 'ang-drag-drop']).directive('ganttSortable', ['ganttUtils', '$compile', function(utils, $compile) {\n // Provides the row sort functionality to any Gantt row\n // Uses the sortableState to share the current row\n\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n // Load options from global options attribute.\n if (scope.options && typeof(scope.options.sortable) === 'object') {\n for (var option in scope.options.sortable) {\n scope[option] = scope.options[option];\n }\n }\n\n if (scope.enabled === undefined) {\n scope.enabled = true;\n }\n\n api.directives.on.new(scope, function(directiveName, rowScope, rowElement) {\n if (directiveName === 'ganttRowLabel') {\n rowScope.checkDraggable = function() {\n return utils.firstProperty([rowScope.row.model.sortable], 'enabled', scope.enabled);\n };\n\n rowScope.onDropSuccess = function() {\n rowScope.$evalAsync();\n };\n\n rowScope.onDrop = function(evt, data) {\n var row = rowScope.row.rowsManager.rowsMap[data.id];\n if (row !== rowScope) {\n rowScope.row.rowsManager.moveRow(row, rowScope.row);\n rowScope.$evalAsync();\n }\n };\n\n rowElement.attr('ui-draggable', '{{checkDraggable()}}');\n rowElement.attr('drag-channel', '\\'sortable\\'');\n rowElement.attr('ui-on-drop', 'onDrop($event, $data)');\n rowElement.attr('on-drop-success', 'onDropSuccess()');\n\n rowElement.attr('drop-channel', '\\'sortable\\'');\n rowElement.attr('drag', 'row.model');\n\n $compile(rowElement)(rowScope);\n }\n });\n\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.tooltips', ['gantt', 'gantt.tooltips.templates']).directive('ganttTooltips', ['$compile', '$document', function($compile, $document) {\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?',\n dateFormat: '=?'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n // Load options from global options attribute.\n if (scope.options && typeof(scope.options.tooltips) === 'object') {\n for (var option in scope.options.tooltips) {\n scope[option] = scope.options[option];\n }\n }\n\n if (scope.enabled === undefined) {\n scope.enabled = true;\n }\n if (scope.dateFormat === undefined) {\n scope.dateFormat = 'MMM DD, HH:mm';\n }\n\n scope.api = api;\n\n api.directives.on.new(scope, function(directiveName, taskScope, taskElement) {\n if (directiveName === 'ganttTask') {\n var tooltipScope = taskScope.$new();\n\n tooltipScope.pluginScope = scope;\n var ifElement = $document[0].createElement('div');\n angular.element(ifElement).attr('data-ng-if', 'pluginScope.enabled');\n\n var tooltipElement = $document[0].createElement('gantt-tooltip');\n if (attrs.templateUrl !== undefined) {\n angular.element(tooltipElement).attr('data-template-url', attrs.templateUrl);\n }\n if (attrs.template !== undefined) {\n angular.element(tooltipElement).attr('data-template', attrs.template);\n }\n\n angular.element(ifElement).append(tooltipElement);\n taskElement.append($compile(ifElement)(tooltipScope));\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.bounds').directive('ganttTaskBounds', ['$templateCache', 'moment', function($templateCache, moment) {\n // Displays a box representing the earliest allowable start time and latest completion time for a job\n\n return {\n restrict: 'E',\n templateUrl: function(tElement, tAttrs) {\n var templateUrl;\n if (tAttrs.templateUrl === undefined) {\n templateUrl = 'plugins/bounds/taskBounds.tmpl.html';\n } else {\n templateUrl = tAttrs.templateUrl;\n }\n if (tAttrs.template) {\n $templateCache.put(templateUrl, tAttrs.template);\n }\n return templateUrl;\n },\n replace: true,\n scope: true,\n controller: ['$scope', '$element', function($scope, $element) {\n $element.toggleClass('ng-hide', true);\n\n $scope.simplifyMoment = function(d) {\n return moment.isMoment(d) ? d.unix() : d;\n };\n\n $scope.$watchGroup(['simplifyMoment(task.model.est)', 'simplifyMoment(task.model.lct)', 'task.left', 'task.width'], function() {\n var left = $scope.task.rowsManager.gantt.getPositionByDate($scope.task.model.est);\n var right = $scope.task.rowsManager.gantt.getPositionByDate($scope.task.model.lct);\n\n $element.css('left', left - $scope.task.left + 'px');\n $element.css('width', right - left + 'px');\n\n $element.toggleClass('gantt-task-bounds-in', false);\n $element.toggleClass('gantt-task-bounds-out', false);\n if ($scope.task.model.est === undefined || $scope.task.model.lct === undefined) {\n $element.toggleClass('gantt-task-bounds-in', true);\n } else if ($scope.task.model.est > $scope.task.model.from) {\n $element.toggleClass('gantt-task-bounds-out', true);\n }\n else if ($scope.task.model.lct < $scope.task.model.to) {\n $element.toggleClass('gantt-task-bounds-out', true);\n } else {\n $element.toggleClass('gantt-task-bounds-in', true);\n }\n });\n\n $scope.task.$element.bind('mouseenter', function() {\n $element.toggleClass('ng-hide', false);\n });\n\n $scope.task.$element.bind('mouseleave', function() {\n $element.toggleClass('ng-hide', true);\n });\n\n $scope.task.rowsManager.gantt.api.directives.raise.new('ganttBounds', $scope, $element);\n $scope.$on('$destroy', function() {\n $scope.task.rowsManager.gantt.api.directives.raise.destroy('ganttBounds', $scope, $element);\n });\n }]\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttLabelsBody', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttLabelsBody', 'plugins/labels/labelsBody.tmpl.html');\n return builder.build();\n }]);\n}());\n\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttLabelsHeader', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttLabelsHeader', 'plugins/labels/labelsHeader.tmpl.html');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttRowHeader', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttRowHeader', 'plugins/labels/rowHeader.tmpl.html');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttRowLabel', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttRowLabel', 'plugins/labels/rowLabel.tmpl.html');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttRowLabels', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttRowLabels', 'plugins/labels/rowLabels.tmpl.html');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttSideContentLabels', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttSideContentLabels', 'plugins/labels/sideContentLabels.tmpl.html');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.movable').factory('ganttMovableOptions', [function() {\n return {\n initialize: function(options) {\n\n options.enabled = options.enabled !== undefined ? !!options.enabled : true;\n options.allowMoving = options.allowMoving !== undefined ? !!options.allowMoving : true;\n options.allowResizing = options.allowResizing !== undefined ? !!options.allowResizing : true;\n options.allowRowSwitching = options.allowRowSwitching !== undefined ? !!options.allowRowSwitching : true;\n\n return options;\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.progress').directive('ganttTaskProgress', ['$templateCache', function($templateCache) {\n return {\n restrict: 'E',\n requires: '^ganttTask',\n templateUrl: function(tElement, tAttrs) {\n var templateUrl;\n if (tAttrs.templateUrl === undefined) {\n templateUrl = 'plugins/progress/taskProgress.tmpl.html';\n } else {\n templateUrl = tAttrs.templateUrl;\n }\n if (tAttrs.template !== undefined) {\n $templateCache.put(templateUrl, tAttrs.template);\n }\n return templateUrl;\n },\n replace: true,\n scope: true,\n controller: ['$scope', '$element', function($scope, $element) {\n $scope.getClasses = function() {\n var classes = [];\n\n if (typeof($scope.task.model.progress) === 'object') {\n classes = $scope.task.model.progress.classes;\n }\n\n return classes;\n };\n\n $scope.getCss = function() {\n var css = {};\n\n var progress;\n if ($scope.task.model.progress !== undefined) {\n if (typeof($scope.task.model.progress) === 'object') {\n progress = $scope.task.model.progress;\n } else {\n progress = {percent: $scope.task.model.progress};\n }\n }\n\n if (progress) {\n if (progress.color) {\n css['background-color'] = progress.color;\n } else {\n css['background-color'] = '#6BC443';\n }\n\n css.width = progress.percent + '%';\n }\n\n return css;\n };\n\n $scope.task.rowsManager.gantt.api.directives.raise.new('ganttTaskProgress', $scope, $element);\n $scope.$on('$destroy', function() {\n $scope.task.rowsManager.gantt.api.directives.raise.destroy('ganttTaskProgress', $scope, $element);\n });\n }]\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.tooltips').directive('ganttTooltip', ['$timeout', '$compile', '$document', '$templateCache', 'ganttDebounce', 'ganttSmartEvent', function($timeout, $compile, $document, $templateCache, debounce, smartEvent) {\n // This tooltip displays more information about a task\n\n return {\n restrict: 'E',\n templateUrl: function(tElement, tAttrs) {\n var templateUrl;\n if (tAttrs.templateUrl === undefined) {\n templateUrl = 'plugins/tooltips/tooltip.tmpl.html';\n } else {\n templateUrl = tAttrs.templateUrl;\n }\n if (tAttrs.template !== undefined) {\n $templateCache.put(templateUrl, tAttrs.template);\n }\n return templateUrl;\n },\n scope: true,\n replace: true,\n controller: ['$scope', '$element', 'ganttUtils', function($scope, $element, utils) {\n var bodyElement = angular.element($document[0].body);\n var parentElement = $scope.task.$element;\n var showTooltipPromise;\n var visible = false;\n var mouseEnterX;\n\n $element.toggleClass('ng-hide', true);\n\n $scope.getFromLabel = function() {\n var dateFormat = utils.firstProperty([$scope.task.model.tooltips, $scope.task.row.model.tooltips], 'dateFormat', $scope.pluginScope.dateFormat);\n return $scope.task.model.from.format(dateFormat);\n };\n\n $scope.getToLabel = function() {\n var dateFormat = utils.firstProperty([$scope.task.model.tooltips, $scope.task.row.model.tooltips], 'dateFormat', $scope.pluginScope.dateFormat);\n return $scope.task.model.to.format(dateFormat);\n };\n\n var mouseMoveHandler = smartEvent($scope, bodyElement, 'mousemove', debounce(function(e) {\n if (!visible) {\n mouseEnterX = e.clientX;\n displayTooltip(true, false);\n } else {\n updateTooltip(e.clientX);\n }\n }, 5, false));\n\n $scope.task.$element.bind('mousemove', function(evt) {\n mouseEnterX = evt.clientX;\n });\n\n $scope.task.$element.bind('mouseenter', function(evt) {\n mouseEnterX = evt.clientX;\n displayTooltip(true, true);\n });\n\n $scope.task.$element.bind('mouseleave', function() {\n displayTooltip(false);\n });\n\n if ($scope.pluginScope.api.tasks.on.moveBegin) {\n $scope.pluginScope.api.tasks.on.moveBegin($scope, function(task) {\n if (task === $scope.task) {\n mouseMoveHandler.bind();\n }\n });\n\n $scope.pluginScope.api.tasks.on.moveEnd($scope, function(task) {\n if (task === $scope.task) {\n mouseMoveHandler.unbind();\n displayTooltip(false);\n }\n });\n\n $scope.pluginScope.api.tasks.on.resizeBegin($scope, function(task) {\n if (task === $scope.task) {\n mouseMoveHandler.bind();\n }\n });\n\n $scope.pluginScope.api.tasks.on.resizeEnd($scope, function(task) {\n if (task === $scope.task) {\n mouseMoveHandler.unbind();\n displayTooltip(false);\n }\n });\n }\n\n var displayTooltip = function(newValue, showDelayed) {\n if (showTooltipPromise) {\n $timeout.cancel(showTooltipPromise);\n }\n var enabled = utils.firstProperty([$scope.task.model.tooltips, $scope.task.row.model.tooltips], 'enabled', $scope.pluginScope.enabled);\n if (enabled && !visible && newValue) {\n if (showDelayed) {\n showTooltipPromise = $timeout(function() {\n showTooltip(mouseEnterX);\n }, 500, false);\n } else {\n showTooltip(mouseEnterX);\n }\n } else if (!newValue) {\n if (!$scope.task.active) {\n hideTooltip();\n }\n }\n };\n\n var showTooltip = function(x) {\n visible = true;\n $element.toggleClass('ng-hide', false);\n\n $timeout(function() {\n updateTooltip(x);\n $element.css('top', parentElement[0].getBoundingClientRect().top + 'px');\n $element.css('marginTop', -$element[0].offsetHeight - 8 + 'px');\n $element.css('opacity', 1);\n }, 0, true);\n };\n\n var getViewPortWidth = function() {\n var d = $document[0];\n return d.documentElement.clientWidth || d.documentElement.getElementById('body')[0].clientWidth;\n };\n\n var updateTooltip = function(x) {\n // Check if info is overlapping with view port\n if (x + $element[0].offsetWidth > getViewPortWidth()) {\n $element.css('left', (x + 20 - $element[0].offsetWidth) + 'px');\n $element.addClass('gantt-task-infoArrowR'); // Right aligned info\n $element.removeClass('gantt-task-infoArrow');\n } else {\n $element.css('left', (x - 20) + 'px');\n $element.addClass('gantt-task-infoArrow');\n $element.removeClass('gantt-task-infoArrowR');\n }\n };\n\n var hideTooltip = function() {\n visible = false;\n $element.css('opacity', 0);\n $element.toggleClass('ng-hide', true);\n };\n\n if ($scope.task.isMoving) {\n // Restore tooltip because task has been moved to a new row\n mouseMoveHandler.bind();\n }\n\n $scope.gantt.api.directives.raise.new('ganttTooltip', $scope, $element);\n $scope.$on('$destroy', function() {\n $scope.gantt.api.directives.raise.destroy('ganttTooltip', $scope, $element);\n });\n }]\n };\n }]);\n}());\n\n","angular.module('gantt.bounds.templates', []).run(['$templateCache', function($templateCache) {\n $templateCache.put('plugins/bounds/taskBounds.tmpl.html',\n '
\\n' +\n '');\n}]);\n","angular.module('gantt.drawtask.templates', []).run(['$templateCache', function($templateCache) {\n\n}]);\n","angular.module('gantt.labels.templates', []).run(['$templateCache', function($templateCache) {\n $templateCache.put('plugins/labels/labelsBody.tmpl.html',\n '
0 && {\\'max-height\\': (maxHeight - gantt.header.getHeight())+\\'px\\'} || {})\">\\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '');\n $templateCache.put('plugins/labels/labelsHeader.tmpl.html',\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '');\n $templateCache.put('plugins/labels/rowHeader.tmpl.html',\n '
0 && gantt.columnsManager.headers.length > 0\"\\n' +\n ' ng-style=\"{\\'margin-top\\': ((gantt.columnsManager.headers.length-1)*2)+\\'em\\'}\">\\n' +\n ' Name\\n' +\n '
\\n' +\n '');\n $templateCache.put('plugins/labels/rowLabel.tmpl.html',\n '
\\n' +\n ' {{row.model.name}}\\n' +\n '
\\n' +\n '');\n $templateCache.put('plugins/labels/rowLabels.tmpl.html',\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '');\n $templateCache.put('plugins/labels/sideContentLabels.tmpl.html',\n '\\n' +\n '');\n}]);\n","angular.module('gantt.movable.templates', []).run(['$templateCache', function($templateCache) {\n\n}]);\n","angular.module('gantt.progress.templates', []).run(['$templateCache', function($templateCache) {\n $templateCache.put('plugins/progress/taskProgress.tmpl.html',\n '
\\n' +\n '');\n}]);\n","angular.module('gantt.sortable.templates', []).run(['$templateCache', function($templateCache) {\n\n}]);\n","angular.module('gantt.tooltips.templates', []).run(['$templateCache', function($templateCache) {\n $templateCache.put('plugins/tooltips/tooltip.tmpl.html',\n '
\\n' +\n '
\\n' +\n ' {{task.model.name}}
\\n' +\n ' \\n' +\n ' {{task.isMilestone() === true && (getFromLabel()) || (getFromLabel() + \\' - \\' + getToLabel())}}\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '');\n}]);\n"]} \ No newline at end of file +{"version":3,"sources":["../src/plugins/bounds.js","../src/plugins/drawtask.js","../src/plugins/labels.js","../src/plugins/movable.js","../src/plugins/progress.js","../src/plugins/sortable.js","../src/plugins/tooltips.js","../src/plugins/bounds/taskBounds.directive.js","../src/plugins/labels/labelsBody.directive.js","../src/plugins/labels/labelsHeader.directive.js","../src/plugins/labels/rowHeader.directive.js","../src/plugins/labels/rowLabel.directive.js","../src/plugins/labels/rowLabels.directive.js","../src/plugins/labels/sideContentLabels.directive.js","../src/plugins/movable/movableOptions.factory.js","../src/plugins/progress/taskProgress.directive.js","../src/plugins/tooltips/tooltip.directive.js","../.tmp/generated/plugins/bounds/html2js.js","../.tmp/generated/plugins/drawtask/html2js.js","../.tmp/generated/plugins/labels/html2js.js","../.tmp/generated/plugins/movable/html2js.js","../.tmp/generated/plugins/progress/html2js.js","../.tmp/generated/plugins/sortable/html2js.js","../.tmp/generated/plugins/tooltips/html2js.js"],"names":[],"mappings":"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","file":"angular-gantt-plugins.js","sourcesContent":["(function(){\n 'use strict';\n angular.module('gantt.bounds', ['gantt', 'gantt.bounds.templates']).directive('ganttBounds', ['moment', '$compile', '$document', function(moment, $compile, $document) {\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n // Load options from global options attribute.\n if (scope.options && typeof(scope.options.bounds) === 'object') {\n for (var option in scope.options.bounds) {\n scope[option] = scope.options[option];\n }\n }\n\n if (scope.enabled === undefined) {\n scope.enabled = true;\n }\n\n api.directives.on.new(scope, function(directiveName, taskScope, taskElement) {\n if (directiveName === 'ganttTask') {\n var boundsScope = taskScope.$new();\n boundsScope.pluginScope = scope;\n\n var ifElement = $document[0].createElement('div');\n angular.element(ifElement).attr('data-ng-if', 'task.model.est && task.model.lct && pluginScope.enabled');\n var boundsElement = $document[0].createElement('gantt-task-bounds');\n if (attrs.templateUrl !== undefined) {\n angular.element(boundsElement).attr('data-template-url', attrs.templateUrl);\n }\n if (attrs.template !== undefined) {\n angular.element(boundsElement).attr('data-template', attrs.template);\n }\n angular.element(ifElement).append(boundsElement);\n taskElement.append($compile(ifElement)(boundsScope));\n }\n });\n\n api.tasks.on.clean(scope, function(model) {\n if (model.est !== undefined && !moment.isMoment(model.est)) {\n model.est = moment(model.est); //Earliest Start Time\n }\n if (model.lct !== undefined && !moment.isMoment(model.lct)) {\n model.lct = moment(model.lct); //Latest Completion Time\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.drawtask', ['gantt']).directive('ganttDrawTask', ['ganttMouseOffset', 'moment', function(mouseOffset, moment) {\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?',\n taskModelFactory: '=taskFactory'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n if (scope.enabled === undefined) {\n scope.enabled = true;\n }\n\n api.directives.on.new(scope, function(directiveName, directiveScope, element) {\n if (directiveName === 'ganttRow') {\n var drawHandler = function(evt) {\n var evtTarget = (evt.target ? evt.target : evt.srcElement);\n if (scope.enabled && evtTarget.className.indexOf('gantt-row') > -1) {\n var startDate = api.core.getDateByPosition(mouseOffset.getOffset(evt).x);\n var endDate = moment(startDate);\n\n var taskModel = scope.taskModelFactory();\n taskModel.from = startDate;\n taskModel.to = endDate;\n\n var task = directiveScope.row.addTask(taskModel);\n task.isResizing = true;\n task.updatePosAndSize();\n directiveScope.row.updateVisibleTasks();\n\n directiveScope.row.$scope.$digest();\n }\n };\n\n element.on('mousedown', drawHandler);\n directiveScope.drawTaskHandler = drawHandler;\n }\n });\n\n api.directives.on.destroy(scope, function(directiveName, directiveScope, element) {\n if (directiveName === 'ganttRow') {\n element.off('mousedown', directiveScope.drawTaskHandler);\n delete directiveScope.drawTaskHandler;\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.labels', ['gantt', 'gantt.labels.templates']).directive('ganttLabels', ['ganttUtils', '$compile', '$document', '$timeout', function(utils, $compile, $document, $timeout) {\n // Provides the row sort functionality to any Gantt row\n // Uses the sortableState to share the current row\n\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n // Load options from global options attribute.\n if (scope.options && typeof(scope.options.sortable) === 'object') {\n for (var option in scope.options.sortable) {\n scope[option] = scope.options[option];\n }\n }\n\n if (scope.enabled === undefined) {\n scope.enabled = true;\n }\n\n scope.$watch('enabled', function(oldValue, newValue) {\n if (oldValue !== newValue) {\n $timeout(function() {\n api.columns.refresh();\n });\n }\n });\n\n api.directives.on.new(scope, function(directiveName, sideContentScope, sideContentElement) {\n if (directiveName === 'ganttSideContent') {\n var labelsScope = sideContentScope.$new();\n labelsScope.pluginScope = scope;\n\n var ifElement = $document[0].createElement('div');\n angular.element(ifElement).attr('data-ng-if', 'pluginScope.enabled');\n\n var labelsElement = $document[0].createElement('gantt-side-content-labels');\n angular.element(ifElement).append(labelsElement);\n\n sideContentElement.append($compile(ifElement)(labelsScope));\n }\n });\n\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.movable', ['gantt']).directive('ganttMovable', ['ganttMouseButton', 'ganttMouseOffset', 'ganttSmartEvent', 'ganttMovableOptions', 'ganttUtils', '$window', '$document', '$timeout',\n function(mouseButton, mouseOffset, smartEvent, movableOptions, utils, $window, $document, $timeout) {\n // Provides moving and resizing of tasks\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?',\n allowMoving: '=?',\n allowResizing: '=?',\n allowRowSwitching: '=?'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n // Load options from global options attribute.\n if (scope.options && typeof(scope.options.movable) === 'object') {\n for (var option in scope.options.movable) {\n scope[option] = scope.options[option];\n }\n }\n\n movableOptions.initialize(scope);\n\n api.registerEvent('tasks', 'move');\n api.registerEvent('tasks', 'moveBegin');\n api.registerEvent('tasks', 'moveEnd');\n api.registerEvent('tasks', 'resize');\n api.registerEvent('tasks', 'resizeBegin');\n api.registerEvent('tasks', 'resizeEnd');\n api.registerEvent('tasks', 'change');\n\n var _hasTouch = ('ontouchstart' in $window) || $window.DocumentTouch && $document[0] instanceof $window.DocumentTouch;\n var _pressEvents = 'touchstart mousedown';\n var _moveEvents = 'touchmove mousemove';\n var _releaseEvents = 'touchend mouseup';\n\n var taskWithSmallWidth = 15;\n var resizeAreaWidthBig = 5;\n var resizeAreaWidthSmall = 3;\n var scrollSpeed = 15;\n var scrollTriggerDistance = 5;\n var mouseStartOffsetX;\n var moveStartX;\n\n api.directives.on.new(scope, function(directiveName, taskScope, taskElement) {\n if (directiveName === 'ganttTask') {\n var windowElement = angular.element($window);\n var ganttBodyElement = taskScope.row.rowsManager.gantt.body.$element;\n var ganttScrollElement = taskScope.row.rowsManager.gantt.scroll.$element;\n\n var taskHasBeenChanged = false;\n var scrollInterval;\n\n taskElement.on(_pressEvents, function(evt) {\n evt.preventDefault();\n if (_hasTouch) {\n evt = mouseOffset.getTouch(evt);\n }\n var enabled = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'enabled', scope.enabled);\n if (enabled) {\n var taskOffsetX = mouseOffset.getOffset(evt).x;\n var mode = getMoveMode(taskOffsetX);\n if (mode !== '' && mouseButton.getButton(evt) === 1) {\n var bodyOffsetX = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt).x;\n enableMoveMode(mode, bodyOffsetX);\n }\n taskScope.$digest();\n }\n });\n\n taskElement.on('mousemove', function(evt) {\n var enabled = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'enabled', scope.enabled);\n if (enabled && !taskScope.task.isMoving) {\n var taskOffsetX = mouseOffset.getOffset(evt).x;\n var mode = getMoveMode(taskOffsetX);\n if (mode !== '' && mode !== 'M') {\n taskElement.css('cursor', getCursor(mode));\n } else {\n taskElement.css('cursor', '');\n }\n }\n });\n\n var handleMove = function(evt) {\n moveTask(evt);\n scrollScreen(evt);\n };\n\n var moveTask = function(evt) {\n var mousePos = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt);\n var x = mousePos.x;\n taskScope.task.mouseOffsetX = x;\n\n if (taskScope.task.moveMode === 'M') {\n var allowRowSwitching = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowRowSwitching', scope.allowRowSwitching);\n if (allowRowSwitching) {\n var scrollRect = ganttScrollElement[0].getBoundingClientRect();\n var rowCenterLeft = scrollRect.left + scrollRect.width / 2;\n\n var targetRowElement = utils.findElementFromPoint(rowCenterLeft, evt.clientY, function(element) {\n return angular.element(element).hasClass('gantt-row');\n });\n var rows = ganttCtrl.gantt.rowsManager.rows;\n var targetRow;\n for (var i= 0, l=rows.length; i= taskScope.gantt.width) {\n x = taskScope.gantt.width - taskScope.task.width;\n }\n }\n\n taskScope.task.moveTo(x, true);\n taskScope.$digest();\n taskScope.row.rowsManager.gantt.api.tasks.raise.move(taskScope.task);\n }\n } else if (taskScope.task.moveMode === 'E') {\n if (x <= taskScope.task.left) {\n x = taskScope.task.left;\n taskScope.task.moveMode = 'W';\n setGlobalCursor(getCursor(taskScope.task.moveMode ));\n }\n\n if (taskScope.taskOutOfRange !== 'truncate' && x >= taskScope.gantt.width) {\n x = taskScope.gantt.width;\n }\n\n taskScope.task.setTo(x, true);\n taskScope.$digest();\n taskScope.row.rowsManager.gantt.api.tasks.raise.resize(taskScope.task);\n } else {\n if (x > taskScope.task.left + taskScope.task.width) {\n x = taskScope.task.left + taskScope.task.width;\n taskScope.task.moveMode = 'E';\n setGlobalCursor(getCursor(taskScope.task.moveMode ));\n }\n\n if (taskScope.taskOutOfRange !== 'truncate' && x < 0) {\n x = 0;\n }\n\n taskScope.task.setFrom(x, true);\n taskScope.$digest();\n taskScope.row.rowsManager.gantt.api.tasks.raise.resize(taskScope.task);\n }\n\n taskHasBeenChanged = true;\n };\n\n var scrollScreen = function(evt) {\n var mousePos = mouseOffset.getOffsetForElement(ganttBodyElement[0], evt);\n var leftScreenBorder = ganttScrollElement[0].scrollLeft;\n var screenWidth = ganttScrollElement[0].offsetWidth;\n var scrollWidth = ganttScrollElement[0].scrollWidth;\n var rightScreenBorder = leftScreenBorder + screenWidth;\n var keepOnScrolling = false;\n\n if (mousePos.x < moveStartX) {\n // Scroll to the left\n if (leftScreenBorder > 0 && mousePos.x <= leftScreenBorder + scrollTriggerDistance) {\n mousePos.x -= scrollSpeed;\n keepOnScrolling = true;\n taskScope.row.rowsManager.gantt.api.scroll.left(scrollSpeed);\n }\n } else {\n // Scroll to the right\n if (rightScreenBorder < scrollWidth && mousePos.x >= rightScreenBorder - scrollTriggerDistance) {\n mousePos.x += scrollSpeed;\n keepOnScrolling = true;\n taskScope.row.rowsManager.gantt.api.scroll.right(scrollSpeed);\n }\n }\n\n if (keepOnScrolling) {\n scrollInterval = $timeout(function() {\n handleMove(evt);\n }, 100, true);\n }\n };\n\n var clearScrollInterval = function() {\n if (scrollInterval !== undefined) {\n $timeout.cancel(scrollInterval);\n scrollInterval = undefined;\n }\n };\n\n var getMoveMode = function(x) {\n var distance = 0;\n\n var allowResizing = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowResizing', scope.allowResizing);\n var allowRowSwitching = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowRowSwitching', scope.allowRowSwitching);\n var allowMoving = utils.firstProperty([taskScope.task.model.movable, taskScope.task.row.model.movable], 'allowMoving', scope.allowMoving);\n\n // Define resize&move area. Make sure the move area does not get too small.\n if (allowResizing) {\n distance = taskElement[0].offsetWidth < taskWithSmallWidth ? resizeAreaWidthSmall : resizeAreaWidthBig;\n }\n\n if (allowResizing && x > taskElement[0].offsetWidth - distance) {\n return 'E';\n } else if (allowResizing && x < distance) {\n return 'W';\n } else if ((allowMoving || allowRowSwitching) && x >= distance && x <= taskElement[0].offsetWidth - distance) {\n return 'M';\n } else {\n return '';\n }\n };\n\n var getCursor = function(mode) {\n switch (mode) {\n case 'E':\n return 'e-resize';\n case 'W':\n return 'w-resize';\n case 'M':\n return 'move';\n }\n };\n\n var setGlobalCursor = function(cursor) {\n taskElement.css('cursor', cursor);\n angular.element($document[0].body).css({\n '-moz-user-select': cursor === '' ? '': '-moz-none',\n '-webkit-user-select': cursor === '' ? '': 'none',\n '-ms-user-select': cursor === '' ? '': 'none',\n 'user-select': cursor === '' ? '': 'none',\n 'cursor': cursor\n });\n };\n\n var enableMoveMode = function(mode, x) {\n // Clone taskModel\n if (taskScope.task.originalModel === undefined) {\n taskScope.task.originalRow = taskScope.task.row;\n taskScope.task.originalModel = taskScope.task.model;\n taskScope.task.model = angular.copy(taskScope.task.originalModel);\n }\n\n if (mode === 'M') {\n taskElement.addClass('gantt-task-moving');\n if (!taskScope.task.isMoving) {\n taskScope.row.rowsManager.gantt.api.tasks.raise.moveBegin(taskScope.task);\n }\n } else {\n taskElement.addClass('gantt-task-resizing');\n if (!taskScope.task.isMoving) {\n taskScope.row.rowsManager.gantt.api.tasks.raise.resizeBegin(taskScope.task);\n }\n }\n\n // Init mouse start variables (if tasks was not move from another row)\n if (!taskScope.task.isMoving && !taskScope.task.isResizing) {\n moveStartX = x;\n mouseStartOffsetX = x - taskScope.task.modelLeft;\n }\n\n // Init task move\n taskHasBeenChanged = false;\n taskScope.task.moveMode = mode;\n taskScope.task.isMoving = true;\n taskScope.task.active = true;\n\n // Add move event handlers\n var taskMoveHandler = function(evt) {\n evt.stopImmediatePropagation();\n if (_hasTouch) {\n evt = mouseOffset.getTouch(evt);\n }\n if (taskScope.task.isMoving) {\n // As this function is defered, disableMoveMode may have been called before.\n // Without this check, task.changed event is not fired for faster moves.\n // See github issue #190\n clearScrollInterval();\n handleMove(evt);\n }\n };\n var moveSmartEvent = smartEvent(taskScope, windowElement, _moveEvents, taskMoveHandler);\n moveSmartEvent.bind();\n\n smartEvent(taskScope, windowElement, _releaseEvents, function(evt) {\n if (_hasTouch) {\n evt = mouseOffset.getTouch(evt);\n }\n moveSmartEvent.unbind();\n disableMoveMode(evt);\n taskScope.$digest();\n }).bindOnce();\n\n setGlobalCursor(getCursor(mode));\n };\n\n var disableMoveMode = function() {\n taskElement.removeClass('gantt-task-moving');\n taskElement.removeClass('gantt-task-resizing');\n\n if (taskScope.task.originalModel !== undefined) {\n angular.extend(taskScope.task.originalModel, taskScope.task.model);\n taskScope.task.model = taskScope.task.originalModel;\n if (taskScope.task.row.model.id !== taskScope.task.originalRow.model.id) {\n var targetRow = taskScope.task.row;\n targetRow.removeTask(taskScope.task.model.id, false, true);\n taskScope.task.row = taskScope.task.originalRow;\n targetRow.moveTaskToRow(taskScope.task, false);\n }\n delete taskScope.task.originalModel;\n delete taskScope.task.originalRow;\n\n taskScope.$apply();\n }\n\n taskScope.task.isMoving = false;\n taskScope.task.active = false;\n\n // Stop any active auto scroll\n clearScrollInterval();\n\n // Set mouse cursor back to default\n setGlobalCursor('');\n\n // Raise move end event\n if (taskScope.task.moveMode === 'M') {\n taskScope.row.rowsManager.gantt.api.tasks.raise.moveEnd(taskScope.task);\n } else {\n taskScope.row.rowsManager.gantt.api.tasks.raise.resizeEnd(taskScope.task);\n }\n\n taskScope.task.moveMode = undefined;\n\n // Raise task changed event\n if (taskHasBeenChanged === true) {\n taskHasBeenChanged = false;\n taskScope.task.row.sortTasks(); // Sort tasks so they have the right z-order\n taskScope.row.rowsManager.gantt.api.tasks.raise.change(taskScope.task);\n }\n };\n\n if (taskScope.task.isResizing) {\n enableMoveMode('E', taskScope.task.mouseOffsetX);\n delete taskScope.task.isResizing;\n } else if (taskScope.task.isMoving) {\n // In case the task has been moved to another row a new controller is is created by angular.\n // Enable the move mode again if this was the case.\n enableMoveMode('M', taskScope.task.mouseOffsetX);\n }\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.progress', ['gantt', 'gantt.progress.templates']).directive('ganttProgress', ['moment', '$compile', '$document', function(moment, $compile, $document) {\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?'\n },\n link: function(scope, element, attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n\n // Load options from global options attribute.\n if (scope.options && typeof(scope.options.progress) === 'object') {\n for (var option in scope.options.progress) {\n scope[option] = scope.options[option];\n }\n }\n\n if (scope.enabled === undefined) {\n scope.enabled = true;\n }\n\n api.directives.on.new(scope, function(directiveName, taskScope, taskElement) {\n if (directiveName === 'ganttTask') {\n var progressScope = taskScope.$new();\n progressScope.pluginScope = scope;\n\n var ifElement = $document[0].createElement('div');\n angular.element(ifElement).attr('data-ng-if', 'task.model.progress !== undefined && pluginScope.enabled');\n\n var progressElement = $document[0].createElement('gantt-task-progress');\n if (attrs.templateUrl !== undefined) {\n angular.element(progressElement).attr('data-template-url', attrs.templateUrl);\n }\n if (attrs.template !== undefined) {\n angular.element(progressElement).attr('data-template', attrs.template);\n }\n angular.element(ifElement).append(progressElement);\n taskElement.append($compile(ifElement)(progressScope));\n }\n });\n\n api.tasks.on.clean(scope, function(model) {\n if (model.est !== undefined && !moment.isMoment(model.est)) {\n model.est = moment(model.est); //Earliest Start Time\n }\n\n if (model.lct !== undefined && !moment.isMoment(model.lct)) {\n model.lct = moment(model.lct); //Latest Completion Time\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n\n var moduleName = 'gantt.sortable';\n var directiveName = 'ganttSortable';\n var pluginDependencies = [\n 'gantt',\n {module:'ang-drag-drop', url:'https://github.com/ganarajpr/angular-dragdrop.git#master'}\n ];\n\n var failedDependencies = [];\n var loadedDependencies = [];\n var failedDependency;\n\n for (var i = 0, l = pluginDependencies.length; i < l; i++) {\n var currentDependency = pluginDependencies[i];\n try {\n if (angular.isString(currentDependency)) {\n currentDependency = {module: currentDependency};\n pluginDependencies[i] = currentDependency;\n }\n angular.module(currentDependency.module);\n loadedDependencies.push(currentDependency.module);\n } catch (e) {\n currentDependency.exception = e;\n failedDependencies.push(currentDependency);\n }\n }\n\n if (failedDependencies.length > 0) {\n angular.module(moduleName, []).directive(directiveName, ['$log', function($log) {\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?'\n },\n link: function() {\n $log.warn(moduleName + ' module can\\'t require some dependencies:');\n for (var i= 0,l =failedDependencies.length; i $scope.task.model.from) {\n $element.toggleClass('gantt-task-bounds-out', true);\n }\n else if ($scope.task.model.lct < $scope.task.model.to) {\n $element.toggleClass('gantt-task-bounds-out', true);\n } else {\n $element.toggleClass('gantt-task-bounds-in', true);\n }\n });\n\n $scope.task.$element.bind('mouseenter', function() {\n $element.toggleClass('ng-hide', false);\n });\n\n $scope.task.$element.bind('mouseleave', function() {\n $element.toggleClass('ng-hide', true);\n });\n\n $scope.task.rowsManager.gantt.api.directives.raise.new('ganttBounds', $scope, $element);\n $scope.$on('$destroy', function() {\n $scope.task.rowsManager.gantt.api.directives.raise.destroy('ganttBounds', $scope, $element);\n });\n }]\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttLabelsBody', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttLabelsBody', 'plugins/labels/labelsBody.tmpl.html');\n return builder.build();\n }]);\n}());\n\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttLabelsHeader', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttLabelsHeader', 'plugins/labels/labelsHeader.tmpl.html');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttRowHeader', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttRowHeader', 'plugins/labels/rowHeader.tmpl.html');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttRowLabel', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttRowLabel', 'plugins/labels/rowLabel.tmpl.html');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttRowLabels', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttRowLabels', 'plugins/labels/rowLabels.tmpl.html');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttSideContentLabels', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttSideContentLabels', 'plugins/labels/sideContentLabels.tmpl.html');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.movable').factory('ganttMovableOptions', [function() {\n return {\n initialize: function(options) {\n\n options.enabled = options.enabled !== undefined ? !!options.enabled : true;\n options.allowMoving = options.allowMoving !== undefined ? !!options.allowMoving : true;\n options.allowResizing = options.allowResizing !== undefined ? !!options.allowResizing : true;\n options.allowRowSwitching = options.allowRowSwitching !== undefined ? !!options.allowRowSwitching : true;\n\n return options;\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.progress').directive('ganttTaskProgress', ['$templateCache', function($templateCache) {\n return {\n restrict: 'E',\n requires: '^ganttTask',\n templateUrl: function(tElement, tAttrs) {\n var templateUrl;\n if (tAttrs.templateUrl === undefined) {\n templateUrl = 'plugins/progress/taskProgress.tmpl.html';\n } else {\n templateUrl = tAttrs.templateUrl;\n }\n if (tAttrs.template !== undefined) {\n $templateCache.put(templateUrl, tAttrs.template);\n }\n return templateUrl;\n },\n replace: true,\n scope: true,\n controller: ['$scope', '$element', function($scope, $element) {\n $scope.getClasses = function() {\n var classes = [];\n\n if (typeof($scope.task.model.progress) === 'object') {\n classes = $scope.task.model.progress.classes;\n }\n\n return classes;\n };\n\n $scope.getCss = function() {\n var css = {};\n\n var progress;\n if ($scope.task.model.progress !== undefined) {\n if (typeof($scope.task.model.progress) === 'object') {\n progress = $scope.task.model.progress;\n } else {\n progress = {percent: $scope.task.model.progress};\n }\n }\n\n if (progress) {\n if (progress.color) {\n css['background-color'] = progress.color;\n } else {\n css['background-color'] = '#6BC443';\n }\n\n css.width = progress.percent + '%';\n }\n\n return css;\n };\n\n $scope.task.rowsManager.gantt.api.directives.raise.new('ganttTaskProgress', $scope, $element);\n $scope.$on('$destroy', function() {\n $scope.task.rowsManager.gantt.api.directives.raise.destroy('ganttTaskProgress', $scope, $element);\n });\n }]\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt.tooltips').directive('ganttTooltip', ['$timeout', '$compile', '$document', '$templateCache', 'ganttDebounce', 'ganttSmartEvent', function($timeout, $compile, $document, $templateCache, debounce, smartEvent) {\n // This tooltip displays more information about a task\n\n return {\n restrict: 'E',\n templateUrl: function(tElement, tAttrs) {\n var templateUrl;\n if (tAttrs.templateUrl === undefined) {\n templateUrl = 'plugins/tooltips/tooltip.tmpl.html';\n } else {\n templateUrl = tAttrs.templateUrl;\n }\n if (tAttrs.template !== undefined) {\n $templateCache.put(templateUrl, tAttrs.template);\n }\n return templateUrl;\n },\n scope: true,\n replace: true,\n controller: ['$scope', '$element', 'ganttUtils', function($scope, $element, utils) {\n var bodyElement = angular.element($document[0].body);\n var parentElement = $scope.task.$element;\n var showTooltipPromise;\n var visible = false;\n var mouseEnterX;\n\n $element.toggleClass('ng-hide', true);\n\n $scope.getFromLabel = function() {\n var dateFormat = utils.firstProperty([$scope.task.model.tooltips, $scope.task.row.model.tooltips], 'dateFormat', $scope.pluginScope.dateFormat);\n return $scope.task.model.from.format(dateFormat);\n };\n\n $scope.getToLabel = function() {\n var dateFormat = utils.firstProperty([$scope.task.model.tooltips, $scope.task.row.model.tooltips], 'dateFormat', $scope.pluginScope.dateFormat);\n return $scope.task.model.to.format(dateFormat);\n };\n\n var mouseMoveHandler = smartEvent($scope, bodyElement, 'mousemove', debounce(function(e) {\n if (!visible) {\n mouseEnterX = e.clientX;\n displayTooltip(true, false);\n } else {\n updateTooltip(e.clientX);\n }\n }, 5, false));\n\n $scope.task.$element.bind('mousemove', function(evt) {\n mouseEnterX = evt.clientX;\n });\n\n $scope.task.$element.bind('mouseenter', function(evt) {\n mouseEnterX = evt.clientX;\n displayTooltip(true, true);\n });\n\n $scope.task.$element.bind('mouseleave', function() {\n displayTooltip(false);\n });\n\n if ($scope.pluginScope.api.tasks.on.moveBegin) {\n $scope.pluginScope.api.tasks.on.moveBegin($scope, function(task) {\n if (task === $scope.task) {\n mouseMoveHandler.bind();\n }\n });\n\n $scope.pluginScope.api.tasks.on.moveEnd($scope, function(task) {\n if (task === $scope.task) {\n mouseMoveHandler.unbind();\n displayTooltip(false);\n }\n });\n\n $scope.pluginScope.api.tasks.on.resizeBegin($scope, function(task) {\n if (task === $scope.task) {\n mouseMoveHandler.bind();\n }\n });\n\n $scope.pluginScope.api.tasks.on.resizeEnd($scope, function(task) {\n if (task === $scope.task) {\n mouseMoveHandler.unbind();\n displayTooltip(false);\n }\n });\n }\n\n var displayTooltip = function(newValue, showDelayed) {\n if (showTooltipPromise) {\n $timeout.cancel(showTooltipPromise);\n }\n var enabled = utils.firstProperty([$scope.task.model.tooltips, $scope.task.row.model.tooltips], 'enabled', $scope.pluginScope.enabled);\n if (enabled && !visible && newValue) {\n if (showDelayed) {\n showTooltipPromise = $timeout(function() {\n showTooltip(mouseEnterX);\n }, 500, false);\n } else {\n showTooltip(mouseEnterX);\n }\n } else if (!newValue) {\n if (!$scope.task.active) {\n hideTooltip();\n }\n }\n };\n\n var showTooltip = function(x) {\n visible = true;\n $element.toggleClass('ng-hide', false);\n\n $timeout(function() {\n updateTooltip(x);\n $element.css('top', parentElement[0].getBoundingClientRect().top + 'px');\n $element.css('marginTop', -$element[0].offsetHeight - 8 + 'px');\n $element.css('opacity', 1);\n }, 0, true);\n };\n\n var getViewPortWidth = function() {\n var d = $document[0];\n return d.documentElement.clientWidth || d.documentElement.getElementById('body')[0].clientWidth;\n };\n\n var updateTooltip = function(x) {\n // Check if info is overlapping with view port\n if (x + $element[0].offsetWidth > getViewPortWidth()) {\n $element.css('left', (x + 20 - $element[0].offsetWidth) + 'px');\n $element.addClass('gantt-task-infoArrowR'); // Right aligned info\n $element.removeClass('gantt-task-infoArrow');\n } else {\n $element.css('left', (x - 20) + 'px');\n $element.addClass('gantt-task-infoArrow');\n $element.removeClass('gantt-task-infoArrowR');\n }\n };\n\n var hideTooltip = function() {\n visible = false;\n $element.css('opacity', 0);\n $element.toggleClass('ng-hide', true);\n };\n\n if ($scope.task.isMoving) {\n // Restore tooltip because task has been moved to a new row\n mouseMoveHandler.bind();\n }\n\n $scope.gantt.api.directives.raise.new('ganttTooltip', $scope, $element);\n $scope.$on('$destroy', function() {\n $scope.gantt.api.directives.raise.destroy('ganttTooltip', $scope, $element);\n });\n }]\n };\n }]);\n}());\n\n","angular.module('gantt.bounds.templates', []).run(['$templateCache', function($templateCache) {\n $templateCache.put('plugins/bounds/taskBounds.tmpl.html',\n '
\\n' +\n '');\n}]);\n","angular.module('gantt.drawtask.templates', []).run(['$templateCache', function($templateCache) {\n\n}]);\n","angular.module('gantt.labels.templates', []).run(['$templateCache', function($templateCache) {\n $templateCache.put('plugins/labels/labelsBody.tmpl.html',\n '
0 && {\\'max-height\\': (maxHeight - gantt.header.getHeight())+\\'px\\'} || {})\">\\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '');\n $templateCache.put('plugins/labels/labelsHeader.tmpl.html',\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '');\n $templateCache.put('plugins/labels/rowHeader.tmpl.html',\n '
0 && gantt.columnsManager.headers.length > 0\">\\n' +\n '
\\n' +\n '
{{$last ? \"Name\" : \"\"}}
\\n' +\n '
\\n' +\n '
\\n' +\n '');\n $templateCache.put('plugins/labels/rowLabel.tmpl.html',\n '
\\n' +\n ' {{row.model.name}}\\n' +\n '
\\n' +\n '');\n $templateCache.put('plugins/labels/rowLabels.tmpl.html',\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '');\n $templateCache.put('plugins/labels/sideContentLabels.tmpl.html',\n '\\n' +\n '');\n}]);\n","angular.module('gantt.movable.templates', []).run(['$templateCache', function($templateCache) {\n\n}]);\n","angular.module('gantt.progress.templates', []).run(['$templateCache', function($templateCache) {\n $templateCache.put('plugins/progress/taskProgress.tmpl.html',\n '
\\n' +\n '');\n}]);\n","angular.module('gantt.sortable.templates', []).run(['$templateCache', function($templateCache) {\n\n}]);\n","angular.module('gantt.tooltips.templates', []).run(['$templateCache', function($templateCache) {\n $templateCache.put('plugins/tooltips/tooltip.tmpl.html',\n '
\\n' +\n '
\\n' +\n ' {{task.model.name}}
\\n' +\n ' \\n' +\n ' {{task.isMilestone() === true && (getFromLabel()) || (getFromLabel() + \\' - \\' + getToLabel())}}\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '');\n}]);\n"]} \ No newline at end of file diff --git a/dist/angular-gantt-plugins.min.css b/dist/angular-gantt-plugins.min.css index a9921e199..956851526 100644 --- a/dist/angular-gantt-plugins.min.css +++ b/dist/angular-gantt-plugins.min.css @@ -1 +1 @@ -.gantt-task-bounds{height:125%;top:-12.5%;position:absolute;z-index:99;border:1px dashed;pointer-events:none}.gantt-task-bounds-in{border-color:#2E4F2E}.gantt-task-bounds-out{border-color:tomato}.gantt-row-label span{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:inline-block;text-align:center;padding-top:.5em;overflow:hidden;text-overflow:clip;padding-left:12px;padding-right:12px}.gantt-row-label{overflow:hidden;white-space:nowrap}.gantt-labels-header{overflow:hidden;border-bottom:1px solid #ddd}.gantt-labels-body{overflow:hidden}.gantt-labels-header-row{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;white-space:nowrap}.gantt-task-moving,.gantt-task-resizing{opacity:.6;-webkit-filter:grayscale(0.7);-moz-filter:grayscale(0.7);-ms-filter:grayscale(0.7);-o-filter:grayscale(0.7);filter:grayscale(0.7)}.gantt-task-progress{position:relative;overflow:hidden;height:6px;border-radius:2px}.gantt-task-info{position:fixed;background:#fff;border:1px solid rgba(0,0,0,.2);border-radius:4px;box-shadow:0 5px 10px rgba(0,0,0,.2);padding:9px 12px;opacity:0;z-index:999}.gantt-task-info-content{line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-task-infoArrow:before,.gantt-task-infoArrowR:before{position:absolute;top:100%;width:0;height:0;border-top:8px solid rgba(0,0,0,.1);border-right:8px solid transparent;border-left:8px solid transparent;content:''}.gantt-task-infoArrow:before{left:10px}.gantt-task-infoArrowR:before{right:10px}.gantt-task-infoArrow:after,.gantt-task-infoArrowR:after{position:absolute;top:100%;width:0;height:0;border-top:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent;content:''}.gantt-task-infoArrow:after{left:11px}.gantt-task-infoArrowR:after{right:11px} \ No newline at end of file +.gantt-task-bounds{height:125%;top:-12.5%;position:absolute;z-index:99;border:1px dashed;pointer-events:none}.gantt-task-bounds-in{border-color:#2E4F2E}.gantt-task-bounds-out{border-color:tomato}.gantt-row-label span{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:inline-block;text-align:center;padding-top:.5em;overflow:hidden;text-overflow:clip;padding-left:12px;padding-right:12px}.gantt-row-label{overflow:hidden;white-space:nowrap}.gantt-labels-body,.gantt-labels-header{overflow:hidden}.gantt-labels-header-row{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;white-space:nowrap}.gantt-task-moving,.gantt-task-resizing{z-index:750!important;opacity:.6;-webkit-filter:grayscale(0.7);-moz-filter:grayscale(0.7);-ms-filter:grayscale(0.7);-o-filter:grayscale(0.7);filter:grayscale(0.7)}.gantt-task-progress{position:relative;overflow:hidden;height:6px;border-radius:2px}.gantt-task-info{position:fixed;background:#fff;border:1px solid rgba(0,0,0,.2);border-radius:4px;box-shadow:0 5px 10px rgba(0,0,0,.2);padding:9px 12px;opacity:0;z-index:999}.gantt-task-info-content{line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-task-infoArrow:before,.gantt-task-infoArrowR:before{position:absolute;top:100%;width:0;height:0;border-top:8px solid rgba(0,0,0,.1);border-right:8px solid transparent;border-left:8px solid transparent;content:''}.gantt-task-infoArrow:before{left:10px}.gantt-task-infoArrowR:before{right:10px}.gantt-task-infoArrow:after,.gantt-task-infoArrowR:after{position:absolute;top:100%;width:0;height:0;border-top:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent;content:''}.gantt-task-infoArrow:after{left:11px}.gantt-task-infoArrowR:after{right:11px} \ No newline at end of file diff --git a/dist/angular-gantt-plugins.min.js b/dist/angular-gantt-plugins.min.js index e8fb3eb1d..aaa201ac3 100644 --- a/dist/angular-gantt-plugins.min.js +++ b/dist/angular-gantt-plugins.min.js @@ -1,10 +1,10 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com Github: https://github.com/angular-gantt/angular-gantt.git */ -!function(){"use strict";angular.module("gantt.bounds",["gantt","gantt.bounds.templates"]).directive("ganttBounds",["moment","$compile","$document",function(a,b,c){return{restrict:"E",require:"^gantt",scope:{enabled:"=?"},link:function(d,e,f,g){var h=g.gantt.api;if(d.options&&"object"==typeof d.options.bounds)for(var i in d.options.bounds)d[i]=d.options[i];void 0===d.enabled&&(d.enabled=!0),h.directives.on.new(d,function(a,e,g){if("ganttTask"===a){var h=e.$new();h.pluginScope=d;var i=c[0].createElement("div");angular.element(i).attr("data-ng-if","task.model.est && task.model.lct && pluginScope.enabled");var j=c[0].createElement("gantt-task-bounds");void 0!==f.templateUrl&&angular.element(j).attr("data-template-url",f.templateUrl),void 0!==f.template&&angular.element(j).attr("data-template",f.template),angular.element(i).append(j),g.append(b(i)(h))}}),h.tasks.on.clean(d,function(b){void 0===b.est||a.isMoment(b.est)||(b.est=a(b.est)),void 0===b.lct||a.isMoment(b.lct)||(b.lct=a(b.lct))})}}}])}(),function(){"use strict";angular.module("gantt.drawtask",["gantt"]).directive("ganttDrawTask",["ganttMouseOffset","moment",function(a,b){return{restrict:"E",require:"^gantt",scope:{enabled:"=?",taskModelFactory:"=taskFactory"},link:function(c,d,e,f){var g=f.gantt.api;void 0===c.enabled&&(c.enabled=!0),g.directives.on.new(c,function(d,e,f){if("ganttRow"===d){var h=function(d){var f=d.target?d.target:d.srcElement;if(c.enabled&&f.className.indexOf("gantt-row")>-1){var h=g.core.getDateByPosition(a.getOffset(d).x),i=b(h),j=c.taskModelFactory();j.from=h,j.to=i;var k=e.row.addTask(j);k.isResizing=!0,k.updatePosAndSize(),e.row.updateVisibleTasks(),e.row.$scope.$digest()}};f.on("mousedown",h),e.drawTaskHandler=h}}),g.directives.on.destroy(c,function(a,b,c){"ganttRow"===a&&(c.off("mousedown",b.drawTaskHandler),delete b.drawTaskHandler)})}}}])}(),function(){"use strict";angular.module("gantt.labels",["gantt","gantt.labels.templates"]).directive("ganttLabels",["ganttUtils","$compile","$document","$timeout",function(a,b,c,d){return{restrict:"E",require:"^gantt",scope:{enabled:"=?"},link:function(a,e,f,g){var h=g.gantt.api;if(a.options&&"object"==typeof a.options.sortable)for(var i in a.options.sortable)a[i]=a.options[i];void 0===a.enabled&&(a.enabled=!0),a.$watch("enabled",function(a,b){a!==b&&d(function(){h.columns.refresh()})}),h.directives.on.new(a,function(d,e,f){if("ganttSideContent"===d){var g=e.$new();g.pluginScope=a;var h=c[0].createElement("div");angular.element(h).attr("data-ng-if","pluginScope.enabled");var i=c[0].createElement("gantt-side-content-labels");angular.element(h).append(i),f.append(b(h)(g))}})}}}])}(),function(){"use strict";angular.module("gantt.movable",["gantt"]).directive("ganttMovable",["ganttMouseButton","ganttMouseOffset","ganttSmartEvent","ganttMovableOptions","ganttUtils","$window","$document","$timeout",function(a,b,c,d,e,f,g,h){return{restrict:"E",require:"^gantt",scope:{enabled:"=?",allowMoving:"=?",allowResizing:"=?",allowRowSwitching:"=?"},link:function(i,j,k,l){var m=l.gantt.api;if(i.options&&"object"==typeof i.options.movable)for(var n in i.options.movable)i[n]=i.options[n];d.initialize(i),m.registerEvent("tasks","move"),m.registerEvent("tasks","moveBegin"),m.registerEvent("tasks","moveEnd"),m.registerEvent("tasks","resize"),m.registerEvent("tasks","resizeBegin"),m.registerEvent("tasks","resizeEnd"),m.registerEvent("tasks","change");var o,p,q="ontouchstart"in f||f.DocumentTouch&&g[0]instanceof f.DocumentTouch,r="touchstart mousedown",s="touchmove mousemove",t="touchend mouseup",u=5,v=3,w=15,x=5;m.directives.on.new(i,function(d,j,k){if("ganttTask"===d){var m,n=angular.element(f),y=j.row.rowsManager.gantt.body.$element,z=j.row.rowsManager.gantt.scroll.$element,A=!1;k.on(r,function(c){c.preventDefault(),q&&(c=b.getTouch(c));var d=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"enabled",i.enabled);if(d){var f=b.getOffset(c).x,g=F(f);if(""!==g&&1===a.getButton(c)){var h=b.getOffsetForElement(y[0],c).x;H(g,h)}j.$digest()}}),k.on("mousemove",function(a){var c=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"enabled",i.enabled);if(c){var d=b.getOffset(a).x,f=F(d);""===f||!j.task.isMoving&&"M"===f?k.css("cursor",""):k.css("cursor",G(f))}});var B=function(a,b){C(a,b),D(a,b)},C=function(a,c){var d=b.getOffsetForElement(y[0],c),f=d.x;if(j.task.mouseOffsetX=f,"M"===a){var g=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowRowSwitching",i.allowRowSwitching);if(g){for(var h,k=z[0].getBoundingClientRect(),m=e.findElementFromPoint(k.left,c.clientY,function(a){return angular.element(a).hasClass("gantt-row")}),n=l.gantt.rowsManager.rows,p=0,q=n.length;q>p;p++)if(m===n[p].$element[0]){h=n[p];break}var r=j.task.row;void 0!==h&&r!==h&&(h.moveTaskToRow(j.task,!0),r.$scope.$digest(),h.$scope.$digest())}var s=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowMoving",i.allowMoving);s&&(f-=o,"truncate"!==j.taskOutOfRange&&(0>f?f=0:f+j.task.width>=j.gantt.width&&(f=j.gantt.width-j.task.width)),j.task.moveTo(f,!0),j.$digest(),j.row.rowsManager.gantt.api.tasks.raise.move(j.task))}else"E"===a?("truncate"!==j.taskOutOfRange&&(fj.gantt.width&&(f=j.gantt.width)),j.task.setTo(f,!0),j.$digest(),j.row.rowsManager.gantt.api.tasks.raise.resize(j.task)):("truncate"!==j.taskOutOfRange&&(f>j.task.left+j.task.width?f=j.task.left+j.task.width:0>f&&(f=0)),j.task.setFrom(f,!0),j.$digest(),j.row.rowsManager.gantt.api.tasks.raise.resize(j.task));A=!0},D=function(a,c){var d=b.getOffsetForElement(y[0],c),e=z[0].scrollLeft,f=z[0].offsetWidth,g=z[0].scrollWidth,i=e+f,k=!1;d.x0&&d.x<=e+x&&(d.x-=w,k=!0,j.row.rowsManager.gantt.api.scroll.left(w)):g>i&&d.x>=i-x&&(d.x+=w,k=!0,j.row.rowsManager.gantt.api.scroll.right(w)),k&&(m=h(function(){B(a,c)},100,!0))},E=function(){void 0!==m&&(h.cancel(m),m=void 0)},F=function(a){var b=0,c=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowResizing",i.allowResizing),d=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowRowSwitching",i.allowRowSwitching),f=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowMoving",i.allowMoving);return c&&(b=k[0].offsetWidth<10?v:u),c&&a>k[0].offsetWidth-b?"E":c&&b>a?"W":(f||d)&&a>=b&&a<=k[0].offsetWidth-b?"M":""},G=function(a){switch(a){case"E":return"e-resize";case"W":return"w-resize";case"M":return"move"}},H=function(a,d){void 0===j.task.originalModel&&(j.task.originalRow=j.task.row,j.task.originalModel=j.task.model,j.task.model=angular.copy(j.task.originalModel)),"M"===a?(k.addClass("gantt-task-moving"),j.task.isMoving||j.row.rowsManager.gantt.api.tasks.raise.moveBegin(j.task)):(k.addClass("gantt-task-resizing"),j.task.isMoving||j.row.rowsManager.gantt.api.tasks.raise.resizeBegin(j.task)),j.task.isMoving||(p=d,o=d-j.task.modelLeft),A=!1,j.task.moveMode=a,j.task.isMoving=!0,j.task.active=!0;var e=function(c){c.stopImmediatePropagation(),q&&(c=b.getTouch(c)),j.task.isMoving&&(E(),B(a,c))},f=c(j,n,s,e);f.bind(),c(j,n,t,function(a){q&&(a=b.getTouch(a)),f.unbind(),I(a),j.$digest()}).bindOnce(),k.css("cursor",G(a)),angular.element(g[0].body).css({"-moz-user-select":"-moz-none","-webkit-user-select":"none","-ms-user-select":"none","user-select":"none",cursor:G(a)})},I=function(){if(k.removeClass("gantt-task-moving"),k.removeClass("gantt-task-resizing"),void 0!==j.task.originalModel){if(angular.extend(j.task.originalModel,j.task.model),j.task.model=j.task.originalModel,j.task.row.model.id!==j.task.originalRow.model.id){var a=j.task.row;a.removeTask(j.task.model.id,!1,!0),j.task.row=j.task.originalRow,a.moveTaskToRow(j.task,!1)}delete j.task.originalModel,delete j.task.originalRow,j.$apply()}j.task.isMoving=!1,j.task.active=!1,E(),k.css("cursor",""),angular.element(g[0].body).css({"-moz-user-select":"","-webkit-user-select":"","-ms-user-select":"","user-select":"",cursor:""}),"M"===j.task.moveMode?j.row.rowsManager.gantt.api.tasks.raise.moveEnd(j.task):j.row.rowsManager.gantt.api.tasks.raise.resizeEnd(j.task),j.task.moveMode=void 0,A===!0&&(A=!1,j.task.row.sortTasks(),j.row.rowsManager.gantt.api.tasks.raise.change(j.task))};j.task.isResizing?(delete j.task.isResizing,H("E",j.task.mouseOffsetX)):j.task.isMoving&&H("M",j.task.mouseOffsetX)}})}}}])}(),function(){"use strict";angular.module("gantt.progress",["gantt","gantt.progress.templates"]).directive("ganttProgress",["moment","$compile","$document",function(a,b,c){return{restrict:"E",require:"^gantt",scope:{enabled:"=?"},link:function(d,e,f,g){var h=g.gantt.api;if(d.options&&"object"==typeof d.options.progress)for(var i in d.options.progress)d[i]=d.options[i];void 0===d.enabled&&(d.enabled=!0),h.directives.on.new(d,function(a,e,g){if("ganttTask"===a){var h=e.$new();h.pluginScope=d;var i=c[0].createElement("div");angular.element(i).attr("data-ng-if","task.model.progress !== undefined && pluginScope.enabled");var j=c[0].createElement("gantt-task-progress");void 0!==f.templateUrl&&angular.element(j).attr("data-template-url",f.templateUrl),void 0!==f.template&&angular.element(j).attr("data-template",f.template),angular.element(i).append(j),g.append(b(i)(h))}}),h.tasks.on.clean(d,function(b){void 0===b.est||a.isMoment(b.est)||(b.est=a(b.est)),void 0===b.lct||a.isMoment(b.lct)||(b.lct=a(b.lct))})}}}])}(),function(){"use strict";angular.module("gantt.sortable",["gantt","ang-drag-drop"]).directive("ganttSortable",["ganttUtils","$compile",function(a,b){return{restrict:"E",require:"^gantt",scope:{enabled:"=?"},link:function(c,d,e,f){var g=f.gantt.api;if(c.options&&"object"==typeof c.options.sortable)for(var h in c.options.sortable)c[h]=c.options[h];void 0===c.enabled&&(c.enabled=!0),g.directives.on.new(c,function(d,e,f){"ganttRowLabel"===d&&(e.checkDraggable=function(){return a.firstProperty([e.row.model.sortable],"enabled",c.enabled)},e.onDropSuccess=function(){e.$evalAsync()},e.onDrop=function(a,b){var c=e.row.rowsManager.rowsMap[b.id];c!==e&&(e.row.rowsManager.moveRow(c,e.row),e.$evalAsync())},f.attr("ui-draggable","{{checkDraggable()}}"),f.attr("drag-channel","'sortable'"),f.attr("ui-on-drop","onDrop($event, $data)"),f.attr("on-drop-success","onDropSuccess()"),f.attr("drop-channel","'sortable'"),f.attr("drag","row.model"),b(f)(e))})}}}])}(),function(){"use strict";angular.module("gantt.tooltips",["gantt","gantt.tooltips.templates"]).directive("ganttTooltips",["$compile","$document",function(a,b){return{restrict:"E",require:"^gantt",scope:{enabled:"=?",dateFormat:"=?"},link:function(c,d,e,f){var g=f.gantt.api;if(c.options&&"object"==typeof c.options.tooltips)for(var h in c.options.tooltips)c[h]=c.options[h];void 0===c.enabled&&(c.enabled=!0),void 0===c.dateFormat&&(c.dateFormat="MMM DD, HH:mm"),c.api=g,g.directives.on.new(c,function(d,f,g){if("ganttTask"===d){var h=f.$new();h.pluginScope=c;var i=b[0].createElement("div");angular.element(i).attr("data-ng-if","pluginScope.enabled");var j=b[0].createElement("gantt-tooltip");void 0!==e.templateUrl&&angular.element(j).attr("data-template-url",e.templateUrl),void 0!==e.template&&angular.element(j).attr("data-template",e.template),angular.element(i).append(j),g.append(a(i)(h))}})}}}])}(),function(){"use strict";angular.module("gantt.bounds").directive("ganttTaskBounds",["$templateCache","moment",function(a,b){return{restrict:"E",templateUrl:function(b,c){var d;return d=void 0===c.templateUrl?"plugins/bounds/taskBounds.tmpl.html":c.templateUrl,c.template&&a.put(d,c.template),d},replace:!0,scope:!0,controller:["$scope","$element",function(a,c){c.toggleClass("ng-hide",!0),a.simplifyMoment=function(a){return b.isMoment(a)?a.unix():a},a.$watchGroup(["simplifyMoment(task.model.est)","simplifyMoment(task.model.lct)","task.left","task.width"],function(){var b=a.task.rowsManager.gantt.getPositionByDate(a.task.model.est),d=a.task.rowsManager.gantt.getPositionByDate(a.task.model.lct);c.css("left",b-a.task.left+"px"),c.css("width",d-b+"px"),c.toggleClass("gantt-task-bounds-in",!1),c.toggleClass("gantt-task-bounds-out",!1),void 0===a.task.model.est||void 0===a.task.model.lct?c.toggleClass("gantt-task-bounds-in",!0):a.task.model.est>a.task.model.from?c.toggleClass("gantt-task-bounds-out",!0):a.task.model.lctp()?(d.css("left",a+20-d[0].offsetWidth+"px"),d.addClass("gantt-task-infoArrowR"),d.removeClass("gantt-task-infoArrow")):(d.css("left",a-20+"px"),d.addClass("gantt-task-infoArrow"),d.removeClass("gantt-task-infoArrowR"))},r=function(){l=!1,d.css("opacity",0),d.toggleClass("ng-hide",!0)};b.task.isMoving&&m.bind(),b.gantt.api.directives.raise.new("ganttTooltip",b,d),b.$on("$destroy",function(){b.gantt.api.directives.raise.destroy("ganttTooltip",b,d)})}]}}])}(),angular.module("gantt.bounds.templates",[]).run(["$templateCache",function(a){a.put("plugins/bounds/taskBounds.tmpl.html",'
\n')}]),angular.module("gantt.drawtask.templates",[]).run(["$templateCache",function(){}]),angular.module("gantt.labels.templates",[]).run(["$templateCache",function(a){a.put("plugins/labels/labelsBody.tmpl.html",'
\n
\n
\n \n
\n
\n
\n'),a.put("plugins/labels/labelsHeader.tmpl.html",'
\n \n
\n'),a.put("plugins/labels/rowHeader.tmpl.html",'
\n Name\n
\n'),a.put("plugins/labels/rowLabel.tmpl.html",'
\n {{row.model.name}}\n
\n'),a.put("plugins/labels/rowLabels.tmpl.html",'
\n \n
\n'),a.put("plugins/labels/sideContentLabels.tmpl.html",'\n')}]),angular.module("gantt.movable.templates",[]).run(["$templateCache",function(){}]),angular.module("gantt.progress.templates",[]).run(["$templateCache",function(a){a.put("plugins/progress/taskProgress.tmpl.html",'
\n')}]),angular.module("gantt.sortable.templates",[]).run(["$templateCache",function(){}]),angular.module("gantt.tooltips.templates",[]).run(["$templateCache",function(a){a.put("plugins/tooltips/tooltip.tmpl.html",'
\n
\n {{task.model.name}}
\n \n {{task.isMilestone() === true && (getFromLabel()) || (getFromLabel() + \' - \' + getToLabel())}}\n \n
\n
\n')}]); +!function(){"use strict";angular.module("gantt.bounds",["gantt","gantt.bounds.templates"]).directive("ganttBounds",["moment","$compile","$document",function(a,b,c){return{restrict:"E",require:"^gantt",scope:{enabled:"=?"},link:function(d,e,f,g){var h=g.gantt.api;if(d.options&&"object"==typeof d.options.bounds)for(var i in d.options.bounds)d[i]=d.options[i];void 0===d.enabled&&(d.enabled=!0),h.directives.on.new(d,function(a,e,g){if("ganttTask"===a){var h=e.$new();h.pluginScope=d;var i=c[0].createElement("div");angular.element(i).attr("data-ng-if","task.model.est && task.model.lct && pluginScope.enabled");var j=c[0].createElement("gantt-task-bounds");void 0!==f.templateUrl&&angular.element(j).attr("data-template-url",f.templateUrl),void 0!==f.template&&angular.element(j).attr("data-template",f.template),angular.element(i).append(j),g.append(b(i)(h))}}),h.tasks.on.clean(d,function(b){void 0===b.est||a.isMoment(b.est)||(b.est=a(b.est)),void 0===b.lct||a.isMoment(b.lct)||(b.lct=a(b.lct))})}}}])}(),function(){"use strict";angular.module("gantt.drawtask",["gantt"]).directive("ganttDrawTask",["ganttMouseOffset","moment",function(a,b){return{restrict:"E",require:"^gantt",scope:{enabled:"=?",taskModelFactory:"=taskFactory"},link:function(c,d,e,f){var g=f.gantt.api;void 0===c.enabled&&(c.enabled=!0),g.directives.on.new(c,function(d,e,f){if("ganttRow"===d){var h=function(d){var f=d.target?d.target:d.srcElement;if(c.enabled&&f.className.indexOf("gantt-row")>-1){var h=g.core.getDateByPosition(a.getOffset(d).x),i=b(h),j=c.taskModelFactory();j.from=h,j.to=i;var k=e.row.addTask(j);k.isResizing=!0,k.updatePosAndSize(),e.row.updateVisibleTasks(),e.row.$scope.$digest()}};f.on("mousedown",h),e.drawTaskHandler=h}}),g.directives.on.destroy(c,function(a,b,c){"ganttRow"===a&&(c.off("mousedown",b.drawTaskHandler),delete b.drawTaskHandler)})}}}])}(),function(){"use strict";angular.module("gantt.labels",["gantt","gantt.labels.templates"]).directive("ganttLabels",["ganttUtils","$compile","$document","$timeout",function(a,b,c,d){return{restrict:"E",require:"^gantt",scope:{enabled:"=?"},link:function(a,e,f,g){var h=g.gantt.api;if(a.options&&"object"==typeof a.options.sortable)for(var i in a.options.sortable)a[i]=a.options[i];void 0===a.enabled&&(a.enabled=!0),a.$watch("enabled",function(a,b){a!==b&&d(function(){h.columns.refresh()})}),h.directives.on.new(a,function(d,e,f){if("ganttSideContent"===d){var g=e.$new();g.pluginScope=a;var h=c[0].createElement("div");angular.element(h).attr("data-ng-if","pluginScope.enabled");var i=c[0].createElement("gantt-side-content-labels");angular.element(h).append(i),f.append(b(h)(g))}})}}}])}(),function(){"use strict";angular.module("gantt.movable",["gantt"]).directive("ganttMovable",["ganttMouseButton","ganttMouseOffset","ganttSmartEvent","ganttMovableOptions","ganttUtils","$window","$document","$timeout",function(a,b,c,d,e,f,g,h){return{restrict:"E",require:"^gantt",scope:{enabled:"=?",allowMoving:"=?",allowResizing:"=?",allowRowSwitching:"=?"},link:function(i,j,k,l){var m=l.gantt.api;if(i.options&&"object"==typeof i.options.movable)for(var n in i.options.movable)i[n]=i.options[n];d.initialize(i),m.registerEvent("tasks","move"),m.registerEvent("tasks","moveBegin"),m.registerEvent("tasks","moveEnd"),m.registerEvent("tasks","resize"),m.registerEvent("tasks","resizeBegin"),m.registerEvent("tasks","resizeEnd"),m.registerEvent("tasks","change");var o,p,q="ontouchstart"in f||f.DocumentTouch&&g[0]instanceof f.DocumentTouch,r="touchstart mousedown",s="touchmove mousemove",t="touchend mouseup",u=15,v=5,w=3,x=15,y=5;m.directives.on.new(i,function(d,j,k){if("ganttTask"===d){var m,n=angular.element(f),z=j.row.rowsManager.gantt.body.$element,A=j.row.rowsManager.gantt.scroll.$element,B=!1;k.on(r,function(c){c.preventDefault(),q&&(c=b.getTouch(c));var d=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"enabled",i.enabled);if(d){var f=b.getOffset(c).x,g=G(f);if(""!==g&&1===a.getButton(c)){var h=b.getOffsetForElement(z[0],c).x;J(g,h)}j.$digest()}}),k.on("mousemove",function(a){var c=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"enabled",i.enabled);if(c&&!j.task.isMoving){var d=b.getOffset(a).x,f=G(d);""!==f&&"M"!==f?k.css("cursor",H(f)):k.css("cursor","")}});var C=function(a){D(a),E(a)},D=function(a){var c=b.getOffsetForElement(z[0],a),d=c.x;if(j.task.mouseOffsetX=d,"M"===j.task.moveMode){var f=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowRowSwitching",i.allowRowSwitching);if(f){for(var g,h=A[0].getBoundingClientRect(),k=h.left+h.width/2,m=e.findElementFromPoint(k,a.clientY,function(a){return angular.element(a).hasClass("gantt-row")}),n=l.gantt.rowsManager.rows,p=0,q=n.length;q>p;p++)if(m===n[p].$element[0]){g=n[p];break}var r=j.task.row;void 0!==g&&r!==g&&(g.moveTaskToRow(j.task,!0),r.$scope.$digest(),g.$scope.$digest())}var s=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowMoving",i.allowMoving);s&&(d-=o,"truncate"!==j.taskOutOfRange&&(0>d?d=0:d+j.task.width>=j.gantt.width&&(d=j.gantt.width-j.task.width)),j.task.moveTo(d,!0),j.$digest(),j.row.rowsManager.gantt.api.tasks.raise.move(j.task))}else"E"===j.task.moveMode?(d<=j.task.left&&(d=j.task.left,j.task.moveMode="W",I(H(j.task.moveMode))),"truncate"!==j.taskOutOfRange&&d>=j.gantt.width&&(d=j.gantt.width),j.task.setTo(d,!0),j.$digest(),j.row.rowsManager.gantt.api.tasks.raise.resize(j.task)):(d>j.task.left+j.task.width&&(d=j.task.left+j.task.width,j.task.moveMode="E",I(H(j.task.moveMode))),"truncate"!==j.taskOutOfRange&&0>d&&(d=0),j.task.setFrom(d,!0),j.$digest(),j.row.rowsManager.gantt.api.tasks.raise.resize(j.task));B=!0},E=function(a){var c=b.getOffsetForElement(z[0],a),d=A[0].scrollLeft,e=A[0].offsetWidth,f=A[0].scrollWidth,g=d+e,i=!1;c.x0&&c.x<=d+y&&(c.x-=x,i=!0,j.row.rowsManager.gantt.api.scroll.left(x)):f>g&&c.x>=g-y&&(c.x+=x,i=!0,j.row.rowsManager.gantt.api.scroll.right(x)),i&&(m=h(function(){C(a)},100,!0))},F=function(){void 0!==m&&(h.cancel(m),m=void 0)},G=function(a){var b=0,c=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowResizing",i.allowResizing),d=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowRowSwitching",i.allowRowSwitching),f=e.firstProperty([j.task.model.movable,j.task.row.model.movable],"allowMoving",i.allowMoving);return c&&(b=k[0].offsetWidthk[0].offsetWidth-b?"E":c&&b>a?"W":(f||d)&&a>=b&&a<=k[0].offsetWidth-b?"M":""},H=function(a){switch(a){case"E":return"e-resize";case"W":return"w-resize";case"M":return"move"}},I=function(a){k.css("cursor",a),angular.element(g[0].body).css({"-moz-user-select":""===a?"":"-moz-none","-webkit-user-select":""===a?"":"none","-ms-user-select":""===a?"":"none","user-select":""===a?"":"none",cursor:a})},J=function(a,d){void 0===j.task.originalModel&&(j.task.originalRow=j.task.row,j.task.originalModel=j.task.model,j.task.model=angular.copy(j.task.originalModel)),"M"===a?(k.addClass("gantt-task-moving"),j.task.isMoving||j.row.rowsManager.gantt.api.tasks.raise.moveBegin(j.task)):(k.addClass("gantt-task-resizing"),j.task.isMoving||j.row.rowsManager.gantt.api.tasks.raise.resizeBegin(j.task)),j.task.isMoving||j.task.isResizing||(p=d,o=d-j.task.modelLeft),B=!1,j.task.moveMode=a,j.task.isMoving=!0,j.task.active=!0;var e=function(a){a.stopImmediatePropagation(),q&&(a=b.getTouch(a)),j.task.isMoving&&(F(),C(a))},f=c(j,n,s,e);f.bind(),c(j,n,t,function(a){q&&(a=b.getTouch(a)),f.unbind(),K(a),j.$digest()}).bindOnce(),I(H(a))},K=function(){if(k.removeClass("gantt-task-moving"),k.removeClass("gantt-task-resizing"),void 0!==j.task.originalModel){if(angular.extend(j.task.originalModel,j.task.model),j.task.model=j.task.originalModel,j.task.row.model.id!==j.task.originalRow.model.id){var a=j.task.row;a.removeTask(j.task.model.id,!1,!0),j.task.row=j.task.originalRow,a.moveTaskToRow(j.task,!1)}delete j.task.originalModel,delete j.task.originalRow,j.$apply()}j.task.isMoving=!1,j.task.active=!1,F(),I(""),"M"===j.task.moveMode?j.row.rowsManager.gantt.api.tasks.raise.moveEnd(j.task):j.row.rowsManager.gantt.api.tasks.raise.resizeEnd(j.task),j.task.moveMode=void 0,B===!0&&(B=!1,j.task.row.sortTasks(),j.row.rowsManager.gantt.api.tasks.raise.change(j.task))};j.task.isResizing?(J("E",j.task.mouseOffsetX),delete j.task.isResizing):j.task.isMoving&&J("M",j.task.mouseOffsetX)}})}}}])}(),function(){"use strict";angular.module("gantt.progress",["gantt","gantt.progress.templates"]).directive("ganttProgress",["moment","$compile","$document",function(a,b,c){return{restrict:"E",require:"^gantt",scope:{enabled:"=?"},link:function(d,e,f,g){var h=g.gantt.api;if(d.options&&"object"==typeof d.options.progress)for(var i in d.options.progress)d[i]=d.options[i];void 0===d.enabled&&(d.enabled=!0),h.directives.on.new(d,function(a,e,g){if("ganttTask"===a){var h=e.$new();h.pluginScope=d;var i=c[0].createElement("div");angular.element(i).attr("data-ng-if","task.model.progress !== undefined && pluginScope.enabled");var j=c[0].createElement("gantt-task-progress");void 0!==f.templateUrl&&angular.element(j).attr("data-template-url",f.templateUrl),void 0!==f.template&&angular.element(j).attr("data-template",f.template),angular.element(i).append(j),g.append(b(i)(h))}}),h.tasks.on.clean(d,function(b){void 0===b.est||a.isMoment(b.est)||(b.est=a(b.est)),void 0===b.lct||a.isMoment(b.lct)||(b.lct=a(b.lct))})}}}])}(),function(){"use strict";for(var a,b="gantt.sortable",c="ganttSortable",d=["gantt",{module:"ang-drag-drop",url:"https://github.com/ganarajpr/angular-dragdrop.git#master"}],e=[],f=[],g=0,h=d.length;h>g;g++){var i=d[g];try{angular.isString(i)&&(i={module:i},d[g]=i),angular.module(i.module),f.push(i.module)}catch(j){i.exception=j,e.push(i)}}e.length>0?angular.module(b,[]).directive(c,["$log",function(d){return{restrict:"E",require:"^gantt",scope:{enabled:"=?"},link:function(){d.warn(b+" module can't require some dependencies:");for(var f=0,g=e.length;g>f;f++){a=e[f];var h=a.module;a.url&&(h+=" ("+a.url+")"),a.exception&&a.exception.message&&(h+=": "+a.exception.message),d.warn(h)}d.warn(c+" plugin directive won't be available")}}}]):angular.module(b,f).directive(c,["ganttUtils","$compile",function(a,b){return{restrict:"E",require:"^gantt",scope:{enabled:"=?"},link:function(c,d,e,f){var g=f.gantt.api;if(c.options&&"object"==typeof c.options.sortable)for(var h in c.options.sortable)c[h]=c.options[h];void 0===c.enabled&&(c.enabled=!0),g.directives.on.new(c,function(d,e,f){"ganttRowLabel"===d&&(e.checkDraggable=function(){return a.firstProperty([e.row.model.sortable],"enabled",c.enabled)},e.onDropSuccess=function(){e.$evalAsync()},e.onDrop=function(a,b){var c=e.row.rowsManager.rowsMap[b.id];c!==e&&(e.row.rowsManager.moveRow(c,e.row),e.$evalAsync())},f.attr("ui-draggable","{{checkDraggable()}}"),f.attr("drag-channel","'sortable'"),f.attr("ui-on-drop","onDrop($event, $data)"),f.attr("on-drop-success","onDropSuccess()"),f.attr("drop-channel","'sortable'"),f.attr("drag","row.model"),b(f)(e))})}}}])}(),function(){"use strict";angular.module("gantt.tooltips",["gantt","gantt.tooltips.templates"]).directive("ganttTooltips",["$compile","$document",function(a,b){return{restrict:"E",require:"^gantt",scope:{enabled:"=?",dateFormat:"=?"},link:function(c,d,e,f){var g=f.gantt.api;if(c.options&&"object"==typeof c.options.tooltips)for(var h in c.options.tooltips)c[h]=c.options[h];void 0===c.enabled&&(c.enabled=!0),void 0===c.dateFormat&&(c.dateFormat="MMM DD, HH:mm"),c.api=g,g.directives.on.new(c,function(d,f,g){if("ganttTask"===d){var h=f.$new();h.pluginScope=c;var i=b[0].createElement("div");angular.element(i).attr("data-ng-if","pluginScope.enabled");var j=b[0].createElement("gantt-tooltip");void 0!==e.templateUrl&&angular.element(j).attr("data-template-url",e.templateUrl),void 0!==e.template&&angular.element(j).attr("data-template",e.template),angular.element(i).append(j),g.append(a(i)(h))}})}}}])}(),function(){"use strict";angular.module("gantt.bounds").directive("ganttTaskBounds",["$templateCache","moment",function(a,b){return{restrict:"E",templateUrl:function(b,c){var d;return d=void 0===c.templateUrl?"plugins/bounds/taskBounds.tmpl.html":c.templateUrl,c.template&&a.put(d,c.template),d},replace:!0,scope:!0,controller:["$scope","$element",function(a,c){c.toggleClass("ng-hide",!0),a.simplifyMoment=function(a){return b.isMoment(a)?a.unix():a},a.$watchGroup(["simplifyMoment(task.model.est)","simplifyMoment(task.model.lct)","task.left","task.width"],function(){var b=a.task.rowsManager.gantt.getPositionByDate(a.task.model.est),d=a.task.rowsManager.gantt.getPositionByDate(a.task.model.lct);c.css("left",b-a.task.left+"px"),c.css("width",d-b+"px"),c.toggleClass("gantt-task-bounds-in",!1),c.toggleClass("gantt-task-bounds-out",!1),void 0===a.task.model.est||void 0===a.task.model.lct?c.toggleClass("gantt-task-bounds-in",!0):a.task.model.est>a.task.model.from?c.toggleClass("gantt-task-bounds-out",!0):a.task.model.lctp()?(d.css("left",a+20-d[0].offsetWidth+"px"),d.addClass("gantt-task-infoArrowR"),d.removeClass("gantt-task-infoArrow")):(d.css("left",a-20+"px"),d.addClass("gantt-task-infoArrow"),d.removeClass("gantt-task-infoArrowR"))},r=function(){l=!1,d.css("opacity",0),d.toggleClass("ng-hide",!0)};b.task.isMoving&&m.bind(),b.gantt.api.directives.raise.new("ganttTooltip",b,d),b.$on("$destroy",function(){b.gantt.api.directives.raise.destroy("ganttTooltip",b,d)})}]}}])}(),angular.module("gantt.bounds.templates",[]).run(["$templateCache",function(a){a.put("plugins/bounds/taskBounds.tmpl.html",'
\n')}]),angular.module("gantt.drawtask.templates",[]).run(["$templateCache",function(){}]),angular.module("gantt.labels.templates",[]).run(["$templateCache",function(a){a.put("plugins/labels/labelsBody.tmpl.html",'
\n
\n
\n \n
\n
\n
\n'),a.put("plugins/labels/labelsHeader.tmpl.html",'
\n \n
\n'),a.put("plugins/labels/rowHeader.tmpl.html",'
\n
\n
{{$last ? "Name" : ""}}
\n
\n
\n'),a.put("plugins/labels/rowLabel.tmpl.html",'
\n {{row.model.name}}\n
\n'),a.put("plugins/labels/rowLabels.tmpl.html",'
\n \n
\n'),a.put("plugins/labels/sideContentLabels.tmpl.html",'\n')}]),angular.module("gantt.movable.templates",[]).run(["$templateCache",function(){}]),angular.module("gantt.progress.templates",[]).run(["$templateCache",function(a){a.put("plugins/progress/taskProgress.tmpl.html",'
\n')}]),angular.module("gantt.sortable.templates",[]).run(["$templateCache",function(){}]),angular.module("gantt.tooltips.templates",[]).run(["$templateCache",function(a){a.put("plugins/tooltips/tooltip.tmpl.html",'
\n
\n {{task.model.name}}
\n \n {{task.isMilestone() === true && (getFromLabel()) || (getFromLabel() + \' - \' + getToLabel())}}\n \n
\n
\n')}]); //# sourceMappingURL=angular-gantt-plugins.min.js.map \ No newline at end of file diff --git a/dist/angular-gantt-plugins.min.js.map b/dist/angular-gantt-plugins.min.js.map index 677bad07a..8561e2e0a 100644 --- a/dist/angular-gantt-plugins.min.js.map +++ b/dist/angular-gantt-plugins.min.js.map @@ -1 +1 @@ -{"version":3,"file":"angular-gantt-plugins.min.js","sources":["../src/plugins/bounds.js","../src/plugins/drawtask.js","../src/plugins/labels.js","../src/plugins/movable.js","../src/plugins/progress.js","../src/plugins/sortable.js","../src/plugins/tooltips.js","../src/plugins/bounds/taskBounds.directive.js","../src/plugins/labels/labelsBody.directive.js","../src/plugins/labels/labelsHeader.directive.js","../src/plugins/labels/rowHeader.directive.js","../src/plugins/labels/rowLabel.directive.js","../src/plugins/labels/rowLabels.directive.js","../src/plugins/labels/sideContentLabels.directive.js","../src/plugins/movable/movableOptions.factory.js","../src/plugins/progress/taskProgress.directive.js","../src/plugins/tooltips/tooltip.directive.js","../.tmp/generated/plugins/bounds/html2js.js","../.tmp/generated/plugins/drawtask/html2js.js","../.tmp/generated/plugins/labels/html2js.js","../.tmp/generated/plugins/movable/html2js.js","../.tmp/generated/plugins/progress/html2js.js","../.tmp/generated/plugins/sortable/html2js.js","../.tmp/generated/plugins/tooltips/html2js.js"],"names":["angular","module","directive","moment","$compile","$document","restrict","require","scope","enabled","link","element","attrs","ganttCtrl","api","gantt","options","option","bounds","undefined","directives","on","new","directiveName","taskScope","taskElement","boundsScope","$new","pluginScope","ifElement","createElement","attr","boundsElement","templateUrl","template","append","tasks","clean","model","est","isMoment","lct","mouseOffset","taskModelFactory","directiveScope","drawHandler","evt","evtTarget","target","srcElement","className","indexOf","startDate","core","getDateByPosition","getOffset","x","endDate","taskModel","from","to","task","row","addTask","isResizing","updatePosAndSize","updateVisibleTasks","$scope","$digest","drawTaskHandler","destroy","off","utils","$timeout","sortable","$watch","oldValue","newValue","columns","refresh","sideContentScope","sideContentElement","labelsScope","labelsElement","mouseButton","smartEvent","movableOptions","$window","allowMoving","allowResizing","allowRowSwitching","movable","initialize","registerEvent","mouseStartOffsetX","moveStartX","_hasTouch","DocumentTouch","_pressEvents","_moveEvents","_releaseEvents","resizeAreaWidthBig","resizeAreaWidthSmall","scrollSpeed","scrollTriggerDistance","scrollInterval","windowElement","ganttBodyElement","rowsManager","body","$element","ganttScrollElement","scroll","taskHasBeenChanged","preventDefault","getTouch","firstProperty","taskOffsetX","mode","getMoveMode","getButton","bodyOffsetX","getOffsetForElement","enableMoveMode","isMoving","css","getCursor","handleMove","moveTask","scrollScreen","mousePos","mouseOffsetX","targetRow","scrollRect","getBoundingClientRect","targetRowElement","findElementFromPoint","left","clientY","hasClass","rows","i","l","length","sourceRow","moveTaskToRow","taskOutOfRange","width","moveTo","raise","move","setTo","resize","setFrom","leftScreenBorder","scrollLeft","screenWidth","offsetWidth","scrollWidth","rightScreenBorder","keepOnScrolling","right","clearScrollInterval","cancel","distance","originalModel","originalRow","copy","addClass","moveBegin","resizeBegin","modelLeft","moveMode","active","taskMoveHandler","stopImmediatePropagation","moveSmartEvent","bind","unbind","disableMoveMode","bindOnce","-moz-user-select","-webkit-user-select","-ms-user-select","user-select","cursor","removeClass","extend","id","removeTask","$apply","moveEnd","resizeEnd","sortTasks","change","progress","progressScope","progressElement","rowScope","rowElement","checkDraggable","onDropSuccess","$evalAsync","onDrop","data","rowsMap","moveRow","dateFormat","tooltips","tooltipScope","tooltipElement","$templateCache","tElement","tAttrs","put","replace","controller","toggleClass","simplifyMoment","d","unix","$watchGroup","getPositionByDate","$on","Builder","builder","build","factory","requires","getClasses","classes","getCss","percent","color","debounce","showTooltipPromise","mouseEnterX","bodyElement","parentElement","visible","getFromLabel","format","getToLabel","mouseMoveHandler","e","updateTooltip","clientX","displayTooltip","showDelayed","showTooltip","hideTooltip","top","offsetHeight","getViewPortWidth","documentElement","clientWidth","getElementById","run"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"angular-gantt-plugins.min.js","sources":["../src/plugins/bounds.js","../src/plugins/drawtask.js","../src/plugins/labels.js","../src/plugins/movable.js","../src/plugins/progress.js","../src/plugins/sortable.js","../src/plugins/tooltips.js","../src/plugins/bounds/taskBounds.directive.js","../src/plugins/labels/labelsBody.directive.js","../src/plugins/labels/labelsHeader.directive.js","../src/plugins/labels/rowHeader.directive.js","../src/plugins/labels/rowLabel.directive.js","../src/plugins/labels/rowLabels.directive.js","../src/plugins/labels/sideContentLabels.directive.js","../src/plugins/movable/movableOptions.factory.js","../src/plugins/progress/taskProgress.directive.js","../src/plugins/tooltips/tooltip.directive.js","../.tmp/generated/plugins/bounds/html2js.js","../.tmp/generated/plugins/drawtask/html2js.js","../.tmp/generated/plugins/labels/html2js.js","../.tmp/generated/plugins/movable/html2js.js","../.tmp/generated/plugins/progress/html2js.js","../.tmp/generated/plugins/sortable/html2js.js","../.tmp/generated/plugins/tooltips/html2js.js"],"names":["angular","module","directive","moment","$compile","$document","restrict","require","scope","enabled","link","element","attrs","ganttCtrl","api","gantt","options","option","bounds","undefined","directives","on","new","directiveName","taskScope","taskElement","boundsScope","$new","pluginScope","ifElement","createElement","attr","boundsElement","templateUrl","template","append","tasks","clean","model","est","isMoment","lct","mouseOffset","taskModelFactory","directiveScope","drawHandler","evt","evtTarget","target","srcElement","className","indexOf","startDate","core","getDateByPosition","getOffset","x","endDate","taskModel","from","to","task","row","addTask","isResizing","updatePosAndSize","updateVisibleTasks","$scope","$digest","drawTaskHandler","destroy","off","utils","$timeout","sortable","$watch","oldValue","newValue","columns","refresh","sideContentScope","sideContentElement","labelsScope","labelsElement","mouseButton","smartEvent","movableOptions","$window","allowMoving","allowResizing","allowRowSwitching","movable","initialize","registerEvent","mouseStartOffsetX","moveStartX","_hasTouch","DocumentTouch","_pressEvents","_moveEvents","_releaseEvents","taskWithSmallWidth","resizeAreaWidthBig","resizeAreaWidthSmall","scrollSpeed","scrollTriggerDistance","scrollInterval","windowElement","ganttBodyElement","rowsManager","body","$element","ganttScrollElement","scroll","taskHasBeenChanged","preventDefault","getTouch","firstProperty","taskOffsetX","mode","getMoveMode","getButton","bodyOffsetX","getOffsetForElement","enableMoveMode","isMoving","css","getCursor","handleMove","moveTask","scrollScreen","mousePos","mouseOffsetX","moveMode","targetRow","scrollRect","getBoundingClientRect","rowCenterLeft","left","width","targetRowElement","findElementFromPoint","clientY","hasClass","rows","i","l","length","sourceRow","moveTaskToRow","taskOutOfRange","moveTo","raise","move","setGlobalCursor","setTo","resize","setFrom","leftScreenBorder","scrollLeft","screenWidth","offsetWidth","scrollWidth","rightScreenBorder","keepOnScrolling","right","clearScrollInterval","cancel","distance","cursor","-moz-user-select","-webkit-user-select","-ms-user-select","user-select","originalModel","originalRow","copy","addClass","moveBegin","resizeBegin","modelLeft","active","taskMoveHandler","stopImmediatePropagation","moveSmartEvent","bind","unbind","disableMoveMode","bindOnce","removeClass","extend","id","removeTask","$apply","moveEnd","resizeEnd","sortTasks","change","progress","progressScope","progressElement","failedDependency","moduleName","pluginDependencies","url","failedDependencies","loadedDependencies","currentDependency","isString","push","e","exception","$log","warn","errorMessage","message","rowScope","rowElement","checkDraggable","onDropSuccess","$evalAsync","onDrop","data","rowsMap","moveRow","dateFormat","tooltips","tooltipScope","tooltipElement","$templateCache","tElement","tAttrs","put","replace","controller","toggleClass","simplifyMoment","d","unix","$watchGroup","getPositionByDate","$on","Builder","builder","build","factory","requires","getClasses","classes","getCss","percent","color","debounce","showTooltipPromise","mouseEnterX","bodyElement","parentElement","visible","getFromLabel","format","getToLabel","mouseMoveHandler","updateTooltip","clientX","displayTooltip","showDelayed","showTooltip","hideTooltip","top","offsetHeight","getViewPortWidth","documentElement","clientWidth","getElementById","run"],"mappings":"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"} \ No newline at end of file diff --git a/dist/angular-gantt-progress-plugin.js b/dist/angular-gantt-progress-plugin.js index 2059c5271..5900e6c17 100644 --- a/dist/angular-gantt-progress-plugin.js +++ b/dist/angular-gantt-progress-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/dist/angular-gantt-progress-plugin.min.js b/dist/angular-gantt-progress-plugin.min.js index e41fa540c..614c52989 100644 --- a/dist/angular-gantt-progress-plugin.min.js +++ b/dist/angular-gantt-progress-plugin.min.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/dist/angular-gantt-sortable-plugin.js b/dist/angular-gantt-sortable-plugin.js index 96716a002..2af6c79e0 100644 --- a/dist/angular-gantt-sortable-plugin.js +++ b/dist/angular-gantt-sortable-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com @@ -7,63 +7,120 @@ Github: https://github.com/angular-gantt/angular-gantt.git */ (function(){ 'use strict'; - angular.module('gantt.sortable', ['gantt', 'ang-drag-drop']).directive('ganttSortable', ['ganttUtils', '$compile', function(utils, $compile) { - // Provides the row sort functionality to any Gantt row - // Uses the sortableState to share the current row - - return { - restrict: 'E', - require: '^gantt', - scope: { - enabled: '=?' - }, - link: function(scope, element, attrs, ganttCtrl) { - var api = ganttCtrl.gantt.api; - - // Load options from global options attribute. - if (scope.options && typeof(scope.options.sortable) === 'object') { - for (var option in scope.options.sortable) { - scope[option] = scope.options[option]; + + var moduleName = 'gantt.sortable'; + var directiveName = 'ganttSortable'; + var pluginDependencies = [ + 'gantt', + {module:'ang-drag-drop', url:'https://github.com/ganarajpr/angular-dragdrop.git#master'} + ]; + + var failedDependencies = []; + var loadedDependencies = []; + var failedDependency; + + for (var i = 0, l = pluginDependencies.length; i < l; i++) { + var currentDependency = pluginDependencies[i]; + try { + if (angular.isString(currentDependency)) { + currentDependency = {module: currentDependency}; + pluginDependencies[i] = currentDependency; + } + angular.module(currentDependency.module); + loadedDependencies.push(currentDependency.module); + } catch (e) { + currentDependency.exception = e; + failedDependencies.push(currentDependency); + } + } + + if (failedDependencies.length > 0) { + angular.module(moduleName, []).directive(directiveName, ['$log', function($log) { + return { + restrict: 'E', + require: '^gantt', + scope: { + enabled: '=?' + }, + link: function() { + $log.warn(moduleName + ' module can\'t require some dependencies:'); + for (var i= 0,l =failedDependencies.length; i 0) {\n angular.module(moduleName, []).directive(directiveName, ['$log', function($log) {\n return {\n restrict: 'E',\n require: '^gantt',\n scope: {\n enabled: '=?'\n },\n link: function() {\n $log.warn(moduleName + ' module can\\'t require some dependencies:');\n for (var i= 0,l =failedDependencies.length; ig;g++){var i=d[g];try{angular.isString(i)&&(i={module:i},d[g]=i),angular.module(i.module),f.push(i.module)}catch(j){i.exception=j,e.push(i)}}e.length>0?angular.module(b,[]).directive(c,["$log",function(d){return{restrict:"E",require:"^gantt",scope:{enabled:"=?"},link:function(){d.warn(b+" module can't require some dependencies:");for(var f=0,g=e.length;g>f;f++){a=e[f];var h=a.module;a.url&&(h+=" ("+a.url+")"),a.exception&&a.exception.message&&(h+=": "+a.exception.message),d.warn(h)}d.warn(c+" plugin directive won't be available")}}}]):angular.module(b,f).directive(c,["ganttUtils","$compile",function(a,b){return{restrict:"E",require:"^gantt",scope:{enabled:"=?"},link:function(c,d,e,f){var g=f.gantt.api;if(c.options&&"object"==typeof c.options.sortable)for(var h in c.options.sortable)c[h]=c.options[h];void 0===c.enabled&&(c.enabled=!0),g.directives.on.new(c,function(d,e,f){"ganttRowLabel"===d&&(e.checkDraggable=function(){return a.firstProperty([e.row.model.sortable],"enabled",c.enabled)},e.onDropSuccess=function(){e.$evalAsync()},e.onDrop=function(a,b){var c=e.row.rowsManager.rowsMap[b.id];c!==e&&(e.row.rowsManager.moveRow(c,e.row),e.$evalAsync())},f.attr("ui-draggable","{{checkDraggable()}}"),f.attr("drag-channel","'sortable'"),f.attr("ui-on-drop","onDrop($event, $data)"),f.attr("on-drop-success","onDropSuccess()"),f.attr("drop-channel","'sortable'"),f.attr("drag","row.model"),b(f)(e))})}}}])}(); //# sourceMappingURL=angular-gantt-sortable-plugin.min.js.map \ No newline at end of file diff --git a/dist/angular-gantt-sortable-plugin.min.js.map b/dist/angular-gantt-sortable-plugin.min.js.map index d160936c8..99b0fb5e1 100644 --- a/dist/angular-gantt-sortable-plugin.min.js.map +++ b/dist/angular-gantt-sortable-plugin.min.js.map @@ -1 +1 @@ -{"version":3,"file":"angular-gantt-sortable-plugin.min.js","sources":["../src/plugins/sortable.js"],"names":["angular","module","directive","utils","$compile","restrict","require","scope","enabled","link","element","attrs","ganttCtrl","api","gantt","options","option","sortable","undefined","directives","on","new","directiveName","rowScope","rowElement","checkDraggable","firstProperty","row","model","onDropSuccess","$evalAsync","onDrop","evt","data","rowsManager","rowsMap","id","moveRow","attr"],"mappings":";;;;;;;;CAAC,WACG,YACAA,SAAQC,OAAO,kBAAmB,QAAS,kBAAkBC,UAAU,iBAAkB,aAAc,WAAY,SAASC,EAAOC,GAI/H,OACIC,SAAU,IACVC,QAAS,SACTC,OACIC,QAAS,MAEbC,KAAM,SAASF,EAAOG,EAASC,EAAOC,GAClC,GAAIC,GAAMD,EAAUE,MAAMD,GAG1B,IAAIN,EAAMQ,SAA8C,gBAA5BR,GAAMQ,QAAgB,SAC9C,IAAK,GAAIC,KAAUT,GAAMQ,QAAQE,SAC7BV,EAAMS,GAAUT,EAAMQ,QAAQC,EAIhBE,UAAlBX,EAAMC,UACND,EAAMC,SAAU,GAGpBK,EAAIM,WAAWC,GAAGC,IAAId,EAAO,SAASe,EAAeC,EAAUC,GACrC,kBAAlBF,IACAC,EAASE,eAAiB,WACtB,MAAOtB,GAAMuB,eAAeH,EAASI,IAAIC,MAAMX,UAAW,UAAWV,EAAMC,UAG/Ee,EAASM,cAAgB,WACrBN,EAASO,cAGbP,EAASQ,OAAS,SAASC,EAAKC,GAC5B,GAAIN,GAAMJ,EAASI,IAAIO,YAAYC,QAAQF,EAAKG,GAC5CT,KAAQJ,IACRA,EAASI,IAAIO,YAAYG,QAAQV,EAAKJ,EAASI,KAC/CJ,EAASO,eAIjBN,EAAWc,KAAK,eAAgB,wBAChCd,EAAWc,KAAK,eAAgB,cAChCd,EAAWc,KAAK,aAAc,yBAC9Bd,EAAWc,KAAK,kBAAmB,mBAEnCd,EAAWc,KAAK,eAAgB,cAChCd,EAAWc,KAAK,OAAQ,aAExBlC,EAASoB,GAAYD"} \ No newline at end of file +{"version":3,"file":"angular-gantt-sortable-plugin.min.js","sources":["../src/plugins/sortable.js"],"names":["failedDependency","moduleName","directiveName","pluginDependencies","module","url","failedDependencies","loadedDependencies","i","l","length","currentDependency","angular","isString","push","e","exception","directive","$log","restrict","require","scope","enabled","link","warn","errorMessage","message","utils","$compile","element","attrs","ganttCtrl","api","gantt","options","option","sortable","undefined","directives","on","new","rowScope","rowElement","checkDraggable","firstProperty","row","model","onDropSuccess","$evalAsync","onDrop","evt","data","rowsManager","rowsMap","id","moveRow","attr"],"mappings":";;;;;;;;CAAC,WACG,YAaA,KAAK,GAFDA,GATAC,EAAa,iBACbC,EAAgB,gBAChBC,GACA,SACCC,OAAO,gBAAiBC,IAAI,6DAG7BC,KACAC,KAGKC,EAAI,EAAGC,EAAIN,EAAmBO,OAAYD,EAAJD,EAAOA,IAAK,CACvD,GAAIG,GAAoBR,EAAmBK,EAC3C,KACQI,QAAQC,SAASF,KACjBA,GAAqBP,OAAQO,GAC7BR,EAAmBK,GAAKG,GAE5BC,QAAQR,OAAOO,EAAkBP,QACjCG,EAAmBO,KAAKH,EAAkBP,QAC5C,MAAOW,GACLJ,EAAkBK,UAAYD,EAC9BT,EAAmBQ,KAAKH,IAI5BL,EAAmBI,OAAS,EAC5BE,QAAQR,OAAOH,MAAgBgB,UAAUf,GAAgB,OAAQ,SAASgB,GACtE,OACIC,SAAU,IACVC,QAAS,SACTC,OACIC,QAAS,MAEbC,KAAM,WACFL,EAAKM,KAAKvB,EAAa,2CACvB,KAAK,GAAIO,GAAG,EAAEC,EAAGH,EAAmBI,OAAUD,EAAFD,EAAKA,IAAK,CAClDR,EAAmBM,EAAmBE,EAEtC,IAAIiB,GAAezB,EAAiBI,MAChCJ,GAAiBK,MACjBoB,GAAgB,KAAOzB,EAAiBK,IAAM,KAE9CL,EAAiBgB,WAAahB,EAAiBgB,UAAUU,UACzDD,GAAgB,KAAOzB,EAAiBgB,UAAUU,SAGtDR,EAAKM,KAAKC,GAEdP,EAAKM,KAAKtB,EAAgB,6CAKtCU,QAAQR,OAAOH,EAAYM,GAAoBU,UAAUf,GAAgB,aAAc,WAAY,SAASyB,EAAOC,GAI/G,OACIT,SAAU,IACVC,QAAS,SACTC,OACIC,QAAS,MAEbC,KAAM,SAASF,EAAOQ,EAASC,EAAOC,GAClC,GAAIC,GAAMD,EAAUE,MAAMD,GAG1B,IAAIX,EAAMa,SAA8C,gBAA5Bb,GAAMa,QAAgB,SAC9C,IAAK,GAAIC,KAAUd,GAAMa,QAAQE,SAC7Bf,EAAMc,GAAUd,EAAMa,QAAQC,EAIhBE,UAAlBhB,EAAMC,UACND,EAAMC,SAAU,GAGpBU,EAAIM,WAAWC,GAAGC,IAAInB,EAAO,SAASnB,EAAeuC,EAAUC,GACrC,kBAAlBxC,IACAuC,EAASE,eAAiB,WACtB,MAAOhB,GAAMiB,eAAeH,EAASI,IAAIC,MAAMV,UAAW,UAAWf,EAAMC,UAG/EmB,EAASM,cAAgB,WACrBN,EAASO,cAGbP,EAASQ,OAAS,SAASC,EAAKC,GAC5B,GAAIN,GAAMJ,EAASI,IAAIO,YAAYC,QAAQF,EAAKG,GAC5CT,KAAQJ,IACRA,EAASI,IAAIO,YAAYG,QAAQV,EAAKJ,EAASI,KAC/CJ,EAASO,eAIjBN,EAAWc,KAAK,eAAgB,wBAChCd,EAAWc,KAAK,eAAgB,cAChCd,EAAWc,KAAK,aAAc,yBAC9Bd,EAAWc,KAAK,kBAAmB,mBAEnCd,EAAWc,KAAK,eAAgB,cAChCd,EAAWc,KAAK,OAAQ,aAExB5B,EAASc,GAAYD"} \ No newline at end of file diff --git a/dist/angular-gantt-tooltips-plugin.js b/dist/angular-gantt-tooltips-plugin.js index c85a0db5e..f0fbd3b19 100644 --- a/dist/angular-gantt-tooltips-plugin.js +++ b/dist/angular-gantt-tooltips-plugin.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/dist/angular-gantt-tooltips-plugin.min.js b/dist/angular-gantt-tooltips-plugin.min.js index 34276919b..f440416ea 100644 --- a/dist/angular-gantt-tooltips-plugin.min.js +++ b/dist/angular-gantt-tooltips-plugin.min.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com diff --git a/dist/angular-gantt.css b/dist/angular-gantt.css index 9e6913d60..763188a4f 100644 --- a/dist/angular-gantt.css +++ b/dist/angular-gantt.css @@ -193,12 +193,6 @@ position: relative; } -/* Move row to top when hovering to ensure its tooltips - appear above other tasks which may have higher z-index. */ -.gantt-row:hover { - z-index: 999; -} - .gantt-row-height { height: 2em; } diff --git a/dist/angular-gantt.js b/dist/angular-gantt.js index 1f195e85c..58983b05d 100644 --- a/dist/angular-gantt.js +++ b/dist/angular-gantt.js @@ -1,5 +1,5 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com @@ -1271,7 +1271,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git (function(){ 'use strict'; - angular.module('gantt').factory('GanttColumnsManager', ['GanttColumnGenerator', 'GanttHeaderGenerator', '$filter', '$timeout', 'ganttLayout', 'ganttBinarySearch', function(ColumnGenerator, HeaderGenerator, $filter, $timeout, layout, bs) { + angular.module('gantt').factory('GanttColumnsManager', ['GanttColumnGenerator', 'GanttHeaderGenerator', '$filter', '$timeout', 'ganttLayout', 'ganttBinarySearch', 'moment', function(ColumnGenerator, HeaderGenerator, $filter, $timeout, layout, bs, moment) { var ColumnsManager = function(gantt) { var self = this; @@ -1397,6 +1397,14 @@ Github: https://github.com/angular-gantt/angular-gantt.git } } + if (from !== undefined && !moment.isMoment(from)) { + from = moment(from); + } + + if (to !== undefined && !moment.isMoment(to)) { + to = moment(to); + } + if (this.gantt.$scope.taskOutOfRange === 'expand') { from = this.gantt.rowsManager.getExpandedFrom(from); to = this.gantt.rowsManager.getExpandedTo(to); @@ -1425,26 +1433,14 @@ Github: https://github.com/angular-gantt/angular-gantt.git var lastColumn = this.getLastColumn(); this.gantt.originalWidth = lastColumn !== undefined ? lastColumn.originalSize.left + lastColumn.originalSize.width : 0; - var autoFitWidthEnabled = this.gantt.$scope.columnWidth === undefined; - var scrollWidth = this.gantt.getElementWidth() - this.gantt.side.getWidth(); - if (autoFitWidthEnabled) { - var newWidth = scrollWidth - this.gantt.scroll.getBordersWidth(); - - layout.setColumnsWidth(newWidth, this.gantt.originalWidth, this.previousColumns); - layout.setColumnsWidth(newWidth, this.gantt.originalWidth, this.columns); - layout.setColumnsWidth(newWidth, this.gantt.originalWidth, this.nextColumns); - - angular.forEach(this.headers, function(header) { - layout.setColumnsWidth(newWidth, this.gantt.originalWidth, header); - }, this); - } + var columnsWidthChanged = this.updateColumnsWidths([this.previousColumns, this.columns, this.nextColumns, this.headers]); this.gantt.width = lastColumn !== undefined ? lastColumn.left + lastColumn.width : 0; this.gantt.rowsManager.updateTasksPosAndSize(); this.gantt.timespansManager.updateTimespansPosAndSize(); - this.updateVisibleColumns(autoFitWidthEnabled); + this.updateVisibleColumns(columnsWidthChanged); this.gantt.rowsManager.updateVisibleObjects(); this.gantt.currentDateManager.setCurrentDate(this.gantt.$scope.currentDateValue); @@ -1491,9 +1487,32 @@ Github: https://github.com/angular-gantt/angular-gantt.git ColumnsManager.prototype.getColumnByPosition = function(x) { this.expandExtendedColumnsForPosition(x); var extendedColumns = this.previousColumns.concat(this.columns, this.nextColumns); - return bs.get(extendedColumns, x, function(c) { + var columns = bs.get(extendedColumns, x, function(c) { return c.left; - }, true)[0]; + }, true); + return columns[0] === undefined ? columns[1]: columns[0]; + }; + + var updateColumnsWidthImpl = function(newWidth, originalWidth, columnsArray) { + if (angular.isArray(columnsArray)) { + if (columnsArray.length > 0 && angular.isArray(columnsArray[0])) { + angular.forEach(columnsArray, function(columns) { + updateColumnsWidthImpl(newWidth, originalWidth, columns); + }); + return; + } + } + layout.setColumnsWidth(newWidth, originalWidth, columnsArray); + }; + + ColumnsManager.prototype.updateColumnsWidths = function(columns) { + var autoFitWidthEnabled = this.gantt.$scope.columnWidth === undefined; + var scrollWidth = this.gantt.getWidth() - this.gantt.side.getWidth(); + if (autoFitWidthEnabled) { + var newWidth = scrollWidth - this.gantt.scroll.getBordersWidth(); + updateColumnsWidthImpl(newWidth, this.gantt.originalWidth, columns); + } + return autoFitWidthEnabled; }; ColumnsManager.prototype.expandExtendedColumnsForPosition = function(x) { @@ -1503,6 +1522,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git var firstExtendedColumn = this.getFirstColumn(true); if (!firstExtendedColumn || firstExtendedColumn.left > x) { this.previousColumns = new ColumnGenerator(this).generate(from, undefined, -x, 0, true); + this.updateColumnsWidths(this.previousColumns); } return true; } else if (x > this.gantt.width) { @@ -1511,6 +1531,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git var lastExtendedColumn = this.getLastColumn(true); if (!lastExtendedColumn || lastExtendedColumn.left + lastExtendedColumn.width < x) { this.nextColumns = new ColumnGenerator(this).generate(endDate, undefined, x - this.gantt.width, this.gantt.width, false); + this.updateColumnsWidths(this.nextColumns); } return true; } @@ -1534,12 +1555,14 @@ Github: https://github.com/angular-gantt/angular-gantt.git var firstExtendedColumn = this.getFirstColumn(true); if (!firstExtendedColumn || firstExtendedColumn.date > date) { this.previousColumns = new ColumnGenerator(this).generate(from, date, undefined, 0, true); + this.updateColumnsWidths(this.previousColumns); } return true; } else if (endDate && date > endDate) { var lastExtendedColumn = this.getLastColumn(true); if (!lastExtendedColumn || endDate < lastExtendedColumn) { this.nextColumns = new ColumnGenerator(this).generate(endDate, date, undefined, this.gantt.width, false); + this.updateColumnsWidths(this.nextColumns); } return true; } @@ -1889,7 +1912,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git this.api.data.raise.clear(this.$scope); }; - Gantt.prototype.getElementWidth = function() { + Gantt.prototype.getWidth = function() { return this.$element[0].offsetWidth; }; @@ -2579,29 +2602,37 @@ Github: https://github.com/angular-gantt/angular-gantt.git this.modelLeft = this.rowsManager.gantt.getPositionByDate(this.model.from); this.modelWidth = this.rowsManager.gantt.getPositionByDate(this.model.to) - this.modelLeft; - this.left = Math.min(Math.max(this.modelLeft, 0), this.rowsManager.gantt.width); - if (this.modelLeft < 0) { - this.truncatedLeft = true; - if (this.modelWidth + this.modelLeft > this.rowsManager.gantt.width) { + var lastColumn = this.rowsManager.gantt.columnsManager.getLastColumn(); + var maxModelLeft = lastColumn ? lastColumn.left + lastColumn.width : 0; + + if (this.modelLeft + this.modelWidth < 0 || this.modelLeft > maxModelLeft) { + this.left = undefined; + this.width = undefined; + } else { + this.left = Math.min(Math.max(this.modelLeft, 0), this.rowsManager.gantt.width); + if (this.modelLeft < 0) { + this.truncatedLeft = true; + if (this.modelWidth + this.modelLeft > this.rowsManager.gantt.width) { + this.truncatedRight = true; + this.width = this.rowsManager.gantt.width; + } else { + this.truncatedRight = false; + this.width = this.modelWidth + this.modelLeft; + } + } else if (this.modelWidth + this.modelLeft > this.rowsManager.gantt.width) { this.truncatedRight = true; - this.width = this.rowsManager.gantt.width; + this.truncatedLeft = false; + this.width = this.rowsManager.gantt.width - this.modelLeft; } else { + this.truncatedLeft = false; this.truncatedRight = false; - this.width = this.modelWidth + this.modelLeft; + this.width = this.modelWidth; } - } else if (this.modelWidth + this.modelLeft > this.rowsManager.gantt.width) { - this.truncatedRight = true; - this.truncatedLeft = false; - this.width = this.rowsManager.gantt.width - this.modelLeft; - } else { - this.truncatedLeft = false; - this.truncatedRight = false; - this.width = this.modelWidth; - } - if (this.width < 0) { - this.left = this.left + this.width; - this.width = -this.width; + if (this.width < 0) { + this.left = this.left + this.width; + this.width = -this.width; + } } this.updateView(); @@ -2609,15 +2640,24 @@ Github: https://github.com/angular-gantt/angular-gantt.git Task.prototype.updateView = function() { if (this.$element) { - this.$element.css('left', this.left + 'px'); - this.$element.css('width', this.width + 'px'); + if (this.left === undefined || this.width === undefined) { + this.$element.css('display', 'none'); + } else { + this.$element.css('display', ''); + + this.$element.css('left', this.left + 'px'); + this.$element.css('width', this.width + 'px'); + + this.$element.css('background-color', this.model.color); + if (this.model.priority > 0) { + this.$element.css('z-index', this.model.priority); + } + + this.$element.toggleClass('gantt-task-milestone', this.isMilestone()); + this.$element.toggleClass('gantt-task', !this.isMilestone()); + } - this.$element.css('background-color', this.model.color); - this.$element.css('z-index', this.model.priority); - this.$element.toggleClass('gantt-task-milestone', this.isMilestone()); - this.$element.toggleClass('gantt-task', !this.isMilestone()); - this.$element.toggleClass('gantt-task', !this.isMilestone()); } }; @@ -2869,15 +2909,55 @@ Github: https://github.com/angular-gantt/angular-gantt.git // Updates the pos and size of the timespan according to the from - to date Timespan.prototype.updatePosAndSize = function() { - this.left = this.gantt.getPositionByDate(this.model.from); - this.width = this.gantt.getPositionByDate(this.model.to) - this.left; + this.modelLeft = this.gantt.getPositionByDate(this.model.from); + this.modelWidth = this.gantt.getPositionByDate(this.model.to) - this.modelLeft; + + var lastColumn = this.gantt.columnsManager.getLastColumn(); + var maxModelLeft = lastColumn ? lastColumn.left + lastColumn.width : 0; + + if (this.modelLeft + this.modelWidth < 0 || this.modelLeft > maxModelLeft) { + this.left = undefined; + this.width = undefined; + } else { + this.left = Math.min(Math.max(this.modelLeft, 0), this.gantt.width); + if (this.modelLeft < 0) { + this.truncatedLeft = true; + if (this.modelWidth + this.modelLeft > this.gantt.width) { + this.truncatedRight = true; + this.width = this.gantt.width; + } else { + this.truncatedRight = false; + this.width = this.modelWidth + this.modelLeft; + } + } else if (this.modelWidth + this.modelLeft > this.gantt.width) { + this.truncatedRight = true; + this.truncatedLeft = false; + this.width = this.gantt.width - this.modelLeft; + } else { + this.truncatedLeft = false; + this.truncatedRight = false; + this.width = this.modelWidth; + } + + if (this.width < 0) { + this.left = this.left + this.width; + this.width = -this.width; + } + } + + this.updateView(); }; Timespan.prototype.updateView = function() { if (this.$element) { - this.$element.css('left', this.left + 'px'); - this.$element.css('width', this.width + 'px'); + if (this.left === undefined || this.width === undefined) { + this.$element.css('display', 'none'); + } else { + this.$element.css('display', ''); + this.$element.css('left', this.left + 'px'); + this.$element.css('width', this.width + 'px'); + } } }; @@ -3286,13 +3366,17 @@ Github: https://github.com/angular-gantt/angular-gantt.git if (task.active) { res.push(task); } else { - // If task has a visible part on the screen - if (!scrollContainerWidth || - task.left >= scrollLeft && task.left <= scrollLeft + scrollContainerWidth || - task.left + task.width >= scrollLeft && task.left + task.width <= scrollLeft + scrollContainerWidth || - task.left < scrollLeft && task.left + task.width > scrollLeft + scrollContainerWidth) { + // If the task can be drawn with gantt columns only. + if (task.model.to > firstColumn.date && task.model.from < lastColumn.endDate) { - res.push(task); + // If task has a visible part on the screen + if (!scrollContainerWidth || + task.left >= scrollLeft && task.left <= scrollLeft + scrollContainerWidth || + task.left + task.width >= scrollLeft && task.left + task.width <= scrollLeft + scrollContainerWidth || + task.left < scrollLeft && task.left + task.width > scrollLeft + scrollContainerWidth) { + + res.push(task); + } } } } @@ -3502,11 +3586,10 @@ Github: https://github.com/angular-gantt/angular-gantt.git (function(){ 'use strict'; - angular.module('gantt').directive('ganttScrollable', ['GanttDirectiveBuilder', 'ganttDebounce', 'ganttLayout', 'moment', function(Builder, debounce, layout, moment) { + angular.module('gantt').directive('ganttScrollable', ['GanttDirectiveBuilder', 'ganttDebounce', 'moment', function(Builder, debounce, moment) { var builder = new Builder('ganttScrollable'); builder.controller = function($scope, $element) { $scope.gantt.scroll.$element = $element; - var lastScrollLeft; var lastAutoExpand; @@ -3567,6 +3650,7 @@ Github: https://github.com/angular-gantt/angular-gantt.git if ($scope.maxHeight > 0) { css['max-height'] = $scope.maxHeight - $scope.gantt.header.getHeight() + 'px'; css['overflow-y'] = 'auto'; + css['border-right'] = 'none'; // Could be enhanced, display borders only when vertical scroll is displayed. } return css; @@ -3802,8 +3886,20 @@ Github: https://github.com/angular-gantt/angular-gantt.git (function(){ 'use strict'; - angular.module('gantt').directive('ganttScrollableHeader', ['GanttDirectiveBuilder', function(Builder) { + angular.module('gantt').directive('ganttScrollableHeader', ['GanttDirectiveBuilder', 'ganttLayout', function(Builder, layout) { var builder = new Builder('ganttScrollableHeader'); + builder.controller = function($scope) { + var scrollBarWidth = layout.getScrollBarWidth(); + $scope.getScrollableHeaderCss = function() { + var css = {}; + + if ($scope.maxHeight > 0) { + css.width = $scope.gantt.getWidth() - $scope.gantt.side.getWidth() - scrollBarWidth + 'px'; + } + + return css; + }; + }; return builder.build(); }]); }()); @@ -3998,13 +4094,40 @@ Github: https://github.com/angular-gantt/angular-gantt.git (function(){ 'use strict'; - angular.module('gantt').service('ganttLayout', [function() { + angular.module('gantt').service('ganttLayout', ['$document', function($document) { return { /** * Compute the width of scrollbar. * * @returns {number} width of the scrollbar, in px. */ + getScrollBarWidth: function() { + var inner = $document[0].createElement('p'); + inner.style.width = '100%'; + inner.style.height = '200px'; + + var outer = $document[0].createElement('div'); + outer.style.position = 'absolute'; + outer.style.top = '0px'; + outer.style.left = '0px'; + outer.style.visibility = 'hidden'; + outer.style.width = '200px'; + outer.style.height = '150px'; + outer.style.overflow = 'hidden'; + outer.appendChild (inner); + + $document[0].body.appendChild (outer); + var w1 = inner.offsetWidth; + outer.style.overflow = 'scroll'; + var w2 = inner.offsetWidth; + if (w1 === w2) { + w2 = outer.clientWidth; + } + $document[0].body.removeChild (outer); + + return (w1 - w2); + }, + setColumnsWidth: function(width, originalWidth, columns) { if (width && originalWidth && columns) { @@ -4241,7 +4364,7 @@ angular.module('gantt.templates', []).run(['$templateCache', function($templateC ' \n' + '\n' + ' \n' + '\n' + ' \n' + diff --git a/dist/angular-gantt.js.map b/dist/angular-gantt.js.map index e18475149..7c3f3696f 100644 --- a/dist/angular-gantt.js.map +++ b/dist/angular-gantt.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/core/gantt.directive.js","../src/core/logic/api/api.factory.js","../src/core/logic/api/options.factory.js","../src/core/logic/calendar/calendar.factory.js","../src/core/logic/calendar/currentDateManager.factory.js","../src/core/logic/column/column.factory.js","../src/core/logic/column/columnGenerator.factory.js","../src/core/logic/column/columnHeader.factory.js","../src/core/logic/column/columnsManager.factory.js","../src/core/logic/column/headerGenerator.factory.js","../src/core/logic/gantt.factory.js","../src/core/logic/model/objectModel.factory.js","../src/core/logic/row/row.factory.js","../src/core/logic/row/rowHeader.factory.js","../src/core/logic/row/rowsManager.factory.js","../src/core/logic/task/task.factory.js","../src/core/logic/template/body.factory.js","../src/core/logic/template/bodyBackground.factory.js","../src/core/logic/template/bodyColumns.factory.js","../src/core/logic/template/bodyForeground.factory.js","../src/core/logic/template/bodyRows.factory.js","../src/core/logic/template/header.factory.js","../src/core/logic/template/headerColumns.factory.js","../src/core/logic/template/scroll.factory.js","../src/core/logic/template/side.factory.js","../src/core/logic/timespan/timespan.factory.js","../src/core/logic/timespan/timespansManager.factory.js","../src/core/logic/util/arrays.service.js","../src/core/logic/util/binarySearch.service.js","../src/core/logic/util/utils.service.js","../src/core/ui/limit/columnLimit.filter.js","../src/core/ui/limit/taskLimit.filter.js","../src/core/ui/resizer/resizer.directive.js","../src/core/ui/scroll/horizontalScrollReceiver.directive.js","../src/core/ui/scroll/scrollManager.directive.js","../src/core/ui/scroll/scrollSender.directive.js","../src/core/ui/scroll/scrollable.directive.js","../src/core/ui/scroll/verticalScrollReceiver.directive.js","../src/core/ui/size/elementLeftListener.directive.js","../src/core/ui/size/elementWidthListener.directive.js","../src/core/ui/template/body.directive.js","../src/core/ui/template/bodyBackground.directive.js","../src/core/ui/template/bodyColumns.directive.js","../src/core/ui/template/bodyForeground.directive.js","../src/core/ui/template/bodyRows.directive.js","../src/core/ui/template/column.directive.js","../src/core/ui/template/columnHeader.directive.js","../src/core/ui/template/header.directive.js","../src/core/ui/template/headerColumns.directive.js","../src/core/ui/template/row.directive.js","../src/core/ui/template/rowBackground.directive.js","../src/core/ui/template/scrollableHeader.directive.js","../src/core/ui/template/side.directive.js","../src/core/ui/template/sideContent.directive.js","../src/core/ui/template/task.directive.js","../src/core/ui/template/taskContent.directive.js","../src/core/ui/template/timeFrame.directive.js","../src/core/ui/template/timespan.directive.js","../src/core/ui/util/debounce.factory.js","../src/core/ui/util/directiveBuilder.service.js","../src/core/ui/util/enableNgAnimate.service.js","../src/core/ui/util/layout.service.js","../src/core/ui/util/mouseButton.service.js","../src/core/ui/util/mouseOffset.service.js","../src/core/ui/util/smartEvent.factory.js","../.tmp/generated/core/html2js.js"],"names":[],"mappings":"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","file":"angular-gantt.js","sourcesContent":["(function(){\n 'use strict';\n angular.module('gantt', ['gantt.templates', 'angularMoment'])\n .directive('gantt', ['Gantt', 'ganttOptions', 'GanttCalendar', 'moment', 'ganttMouseOffset', 'ganttDebounce', 'ganttEnableNgAnimate', '$timeout', '$templateCache', function(Gantt, Options, Calendar, moment, mouseOffset, debounce, enableNgAnimate, $timeout, $templateCache) {\n return {\n restrict: 'A',\n transclude: true,\n templateUrl: function(tElement, tAttrs) {\n var templateUrl;\n if (tAttrs.templateUrl === undefined) {\n templateUrl = 'template/gantt.tmpl.html';\n } else {\n templateUrl = tAttrs.templateUrl;\n }\n if (tAttrs.template !== undefined) {\n $templateCache.put(templateUrl, tAttrs.template);\n }\n return templateUrl;\n },\n scope: {\n sortMode: '=?', // Possible modes: 'name', 'date', 'custom'\n filterTask: '=?', // Task filter as a angularJS expression\n filterTaskComparator: '=?', // Comparator to use for the task filter\n filterRow: '=?', // Row filter as a angularJS expression\n filterRowComparator: '=?', // Comparator to use for the row filter\n viewScale: '=?', // Possible scales: 'hour', 'day', 'week', 'month'\n columnWidth: '=?', // Defines the size of a column, 1 being 1em per unit (hour or day, .. depending on scale),\n allowSideResizing: '=?', // Set to true if the user should be able to resize the side section.\n fromDate: '=?', // If not specified will use the earliest task date (note: as of now this can only expand not shrink)\n toDate: '=?', // If not specified will use the latest task date (note: as of now this can only expand not shrink)\n currentDateValue: '=?', // If specified, the current date will be displayed\n currentDate: '=?', // The display of currentDate ('none', 'line' or 'column').\n autoExpand: '=?', // Set this both, left or right if the date range shall expand if the user scroll to the left or right end. Otherwise set to false or none.\n taskOutOfRange: '=?', // Set this to expand or truncate to define the behavior of tasks going out of visible range.\n maxHeight: '=?', // Define the maximum height of the Gantt in PX. > 0 to activate max height behaviour.\n headers: '=?', // An array of units for headers.\n headersFormats: '=?', // An array of corresponding formats for headers.\n timeFrames: '=?',\n dateFrames: '=?',\n timeFramesWorkingMode: '=?',\n timeFramesNonWorkingMode: '=?',\n timespans: '=?',\n columnMagnet: '=?',\n shiftColumnMagnet: '=?',\n data: '=?',\n api: '=?',\n options: '=?'\n },\n controller: ['$scope', '$element', function($scope, $element) {\n for (var option in $scope.options) {\n $scope[option] = $scope.options[option];\n }\n\n Options.initialize($scope);\n\n // Disable animation if ngAnimate is present, as it drops down performance.\n enableNgAnimate(false, $element);\n\n $scope.gantt = new Gantt($scope, $element);\n this.gantt = $scope.gantt;\n }],\n link: function(scope, element) {\n scope.gantt.api.directives.raise.new('gantt', scope, element);\n scope.$on('$destroy', function() {\n scope.gantt.api.directives.raise.destroy('gantt', scope, element);\n });\n\n $timeout(function() {\n // Gantt is initialized. Signal that the Gantt is ready.\n scope.gantt.api.core.raise.ready(scope.gantt.api);\n\n scope.gantt.rendered = true;\n scope.gantt.columnsManager.generateColumns();\n scope.gantt.api.core.raise.rendered(scope.gantt.api);\n });\n }\n };\n }]);\n}());\n\n","// This file is adapted from Angular UI ngGrid project\n// MIT License\n// https://github.com/angular-ui/ng-grid/blob/v3.0.0-rc.12/src/js/core/factories/GridApi.js\n(function() {\n 'use strict';\n angular.module('gantt')\n .factory('GanttApi', ['$q', '$rootScope', 'ganttUtils',\n function($q, $rootScope, utils) {\n /**\n * @ngdoc function\n * @name gantt.class:GanttApi\n * @description GanttApi provides the ability to register public methods events inside the gantt and allow\n * for other components to use the api via featureName.methodName and featureName.on.eventName(function(args){}\n * @param {object} gantt gantt that owns api\n */\n var GanttApi = function GanttApi(gantt) {\n this.gantt = gantt;\n this.listeners = [];\n this.apiId = utils.newId();\n };\n\n /**\n * @ngdoc function\n * @name gantt.class:suppressEvents\n * @methodOf gantt.class:GanttApi\n * @description Used to execute a function while disabling the specified event listeners.\n * Disables the listenerFunctions, executes the callbackFn, and then enables\n * the listenerFunctions again\n * @param {object} listenerFuncs listenerFunc or array of listenerFuncs to suppress. These must be the same\n * functions that were used in the .on.eventName method\n * @param {object} callBackFn function to execute\n * @example\n *
\n                 *    var navigate = function (newRowCol, oldRowCol){\n                 *       //do something on navigate\n                 *    }\n                 *\n                 *    ganttApi.cellNav.on.navigate(scope,navigate);\n                 *\n                 *\n                 *    //call the scrollTo event and suppress our navigate listener\n                 *    //scrollTo will still raise the event for other listeners\n                 *    ganttApi.suppressEvents(navigate, function(){\n                 *       ganttApi.cellNav.scrollTo(aRow, aCol);\n                 *    });\n                 *\n                 * 
\n */\n GanttApi.prototype.suppressEvents = function(listenerFuncs, callBackFn) {\n var self = this;\n var listeners = angular.isArray(listenerFuncs) ? listenerFuncs : [listenerFuncs];\n\n //find all registered listeners\n var foundListeners = [];\n listeners.forEach(function(l) {\n foundListeners = self.listeners.filter(function(lstnr) {\n return l === lstnr.handler;\n });\n });\n\n //deregister all the listeners\n foundListeners.forEach(function(l) {\n l.dereg();\n });\n\n callBackFn();\n\n //reregister all the listeners\n foundListeners.forEach(function(l) {\n l.dereg = registerEventWithAngular(l.scope, l.eventId, l.handler, self.gantt);\n });\n\n };\n\n /**\n * @ngdoc function\n * @name registerEvent\n * @methodOf gantt.class:GanttApi\n * @description Registers a new event for the given feature\n * @param {string} featureName name of the feature that raises the event\n * @param {string} eventName name of the event\n */\n GanttApi.prototype.registerEvent = function(featureName, eventName) {\n var self = this;\n if (!self[featureName]) {\n self[featureName] = {};\n }\n\n var feature = self[featureName];\n if (!feature.on) {\n feature.on = {};\n feature.raise = {};\n }\n\n var eventId = 'event:gantt:' + this.apiId + ':' + featureName + ':' + eventName;\n\n feature.raise[eventName] = function() {\n $rootScope.$broadcast.apply($rootScope, [eventId].concat(Array.prototype.slice.call(arguments)));\n };\n\n feature.on[eventName] = function(scope, handler) {\n var dereg = registerEventWithAngular(scope, eventId, handler, self.gantt);\n\n //track our listener so we can turn off and on\n var listener = {handler: handler, dereg: dereg, eventId: eventId, scope: scope};\n self.listeners.push(listener);\n\n //destroy tracking when scope is destroyed\n //wanted to remove the listener from the array but angular does\n //strange things in scope.$destroy so I could not access the listener array\n scope.$on('$destroy', function() {\n listener.dereg = null;\n listener.handler = null;\n listener.eventId = null;\n listener.scope = null;\n });\n };\n };\n\n function registerEventWithAngular(scope, eventId, handler, gantt) {\n return scope.$on(eventId, function() {\n var args = Array.prototype.slice.call(arguments);\n args.splice(0, 1); //remove evt argument\n handler.apply(gantt.api, args);\n });\n }\n\n /**\n * @ngdoc function\n * @name registerEventsFromObject\n * @methodOf gantt.class:GanttApi\n * @description Registers features and events from a simple objectMap.\n * eventObjectMap must be in this format (multiple features allowed)\n *
\n                 * {featureName:\n                 *        {\n                 *          eventNameOne:function(args){},\n                 *          eventNameTwo:function(args){}\n                 *        }\n                 *  }\n                 * 
\n * @param {object} eventObjectMap map of feature/event names\n */\n GanttApi.prototype.registerEventsFromObject = function(eventObjectMap) {\n var self = this;\n var features = [];\n angular.forEach(eventObjectMap, function(featProp, featPropName) {\n var feature = {name: featPropName, events: []};\n angular.forEach(featProp, function(prop, propName) {\n feature.events.push(propName);\n });\n features.push(feature);\n });\n\n features.forEach(function(feature) {\n feature.events.forEach(function(event) {\n self.registerEvent(feature.name, event);\n });\n });\n\n };\n\n /**\n * @ngdoc function\n * @name registerMethod\n * @methodOf gantt.class:GanttApi\n * @description Registers a new event for the given feature\n * @param {string} featureName name of the feature\n * @param {string} methodName name of the method\n * @param {object} callBackFn function to execute\n * @param {object} thisArg binds callBackFn 'this' to thisArg. Defaults to ganttApi.gantt\n */\n GanttApi.prototype.registerMethod = function(featureName, methodName, callBackFn, thisArg) {\n if (!this[featureName]) {\n this[featureName] = {};\n }\n\n var feature = this[featureName];\n\n feature[methodName] = utils.createBoundedWrapper(thisArg || this.gantt, callBackFn);\n };\n\n /**\n * @ngdoc function\n * @name registerMethodsFromObject\n * @methodOf gantt.class:GanttApi\n * @description Registers features and methods from a simple objectMap.\n * eventObjectMap must be in this format (multiple features allowed)\n *
\n * {featureName:\n * {\n * methodNameOne:function(args){},\n * methodNameTwo:function(args){}\n * }\n * @param {object} eventObjectMap map of feature/event names\n * @param {object} thisArg binds this to thisArg for all functions. Defaults to GanttApi.gantt\n */\n GanttApi.prototype.registerMethodsFromObject = function(methodMap, thisArg) {\n var self = this;\n var features = [];\n angular.forEach(methodMap, function(featProp, featPropName) {\n var feature = {name: featPropName, methods: []};\n angular.forEach(featProp, function(prop, propName) {\n feature.methods.push({name: propName, fn: prop});\n });\n features.push(feature);\n });\n\n features.forEach(function(feature) {\n feature.methods.forEach(function(method) {\n self.registerMethod(feature.name, method.name, method.fn, thisArg);\n });\n });\n\n };\n\n return GanttApi;\n\n }]);\n\n})();\n","(function(){\n 'use strict';\n angular.module('gantt').factory('ganttOptions', ['moment', function(moment) {\n return {initialize: function(options) {\n options.api = options.api || angular.noop();\n\n options.data = options.data || [];\n\n options.timespans = options.timespans || [];\n\n options.sortMode = options.sortMode || undefined;\n\n options.filterTask = options.filterTask || undefined;\n options.filterTaskComparator = options.filterTaskComparator || undefined;\n\n options.filterRow = options.filterRow || undefined;\n options.filterRowComparator = options.filterRowComparator || undefined;\n\n options.viewScale = options.viewScale || 'day';\n options.columnMagnet = options.columnMagnet || '15 minutes';\n options.columnWidth = options.columnWidth || undefined;\n\n options.fromDate = options.fromDate || undefined;\n options.toDate = options.toDate || undefined;\n\n options.allowSideResizing = options.allowSideResizing !== undefined ? !!options.allowSideResizing : true;\n\n options.currentDate = options.currentDate || 'line';\n options.currentDateValue = options.currentDateValue || moment();\n\n options.autoExpand = options.autoExpand || 'none';\n options.taskOutOfRange = options.taskOutOfRange || 'truncate';\n\n options.maxHeight = options.maxHeight || 0;\n\n options.headers = options.headers || undefined;\n options.headersFormats = options.headersFormats || undefined;\n\n options.timeFrames = options.timeFrames || [];\n options.dateFrames = options.dateFrames || [];\n\n options.timeFramesWorkingMode = options.timeFramesWorkingMode || 'hidden';\n options.timeFramesNonWorkingMode = options.timeFramesNonWorkingMode || 'visible';\n\n return options;\n }\n };\n }]);\n}());\n","(function(){\n 'use strict';\n /**\n * Calendar factory is used to define working periods, non working periods, and other specific period of time,\n * and retrieve effective timeFrames for each day of the gantt.\n */\n angular.module('gantt').factory('GanttCalendar', ['$filter', 'moment', function($filter, moment) {\n /**\n * TimeFrame represents time frame in any day. parameters are given using options object.\n *\n * @param {moment|string} start start of timeFrame. If a string is given, it will be parsed as a moment.\n * @param {moment|string} end end of timeFrame. If a string is given, it will be parsed as a moment.\n * @param {boolean} working is this timeFrame flagged as working.\n * @param {boolean} default is this timeFrame will be used as default.\n * @param {color} css color attached to this timeFrame.\n * @param {string} classes css classes attached to this timeFrame.\n *\n * @constructor\n */\n var TimeFrame = function(options) {\n if (options === undefined) {\n options = {};\n }\n\n this.start = options.start;\n this.end = options.end;\n this.working = options.working;\n this.default = options.default;\n this.color = options.color;\n this.classes = options.classes;\n };\n\n TimeFrame.prototype.updateView = function() {\n if (this.$element) {\n if (this.left !== undefined) {\n this.$element.css('left', this.left + 'px');\n } else {\n this.$element.css('left', '');\n }\n if (this.width !== undefined) {\n this.$element.css('width', this.width + 'px');\n } else {\n this.$element.css('width', '');\n }\n\n if (this.color !== undefined) {\n this.$element.css('background-color', this.color);\n } else {\n this.$element.css('background-color', '');\n }\n\n var classes = ['gantt-timeframe' + (this.working ? '' : '-non') + '-working'];\n if (this.classes) {\n classes = classes.concat(this.classes);\n }\n for (var i= 0, l=classes.length; i= this.start && date <= this.end;\n } else {\n return false;\n }\n };\n\n DateFrame.prototype.clone = function() {\n return new DateFrame(this);\n };\n\n\n\n /**\n * Register TimeFrame, TimeFrameMapping and DateMapping objects into Calendar object,\n * and use Calendar#getTimeFrames(date) function to retrieve effective timeFrames for a specific day.\n *\n * @constructor\n */\n var Calendar = function() {\n this.timeFrames = {};\n this.timeFrameMappings = {};\n this.dateFrames = {};\n };\n\n /**\n * Remove all objects.\n */\n Calendar.prototype.clear = function() {\n this.timeFrames = {};\n this.timeFrameMappings = {};\n this.dateFrames = {};\n };\n\n /**\n * Register TimeFrame objects.\n *\n * @param {object} timeFrames with names of timeFrames for keys and TimeFrame objects for values.\n */\n Calendar.prototype.registerTimeFrames = function(timeFrames) {\n angular.forEach(timeFrames, function(timeFrame, name) {\n this.timeFrames[name] = new TimeFrame(timeFrame);\n }, this);\n };\n\n /**\n * Removes TimeFrame objects.\n *\n * @param {array} timeFrames names of timeFrames to remove.\n */\n Calendar.prototype.removeTimeFrames = function(timeFrames) {\n angular.forEach(timeFrames, function(name) {\n delete this.timeFrames[name];\n }, this);\n };\n\n /**\n * Remove all TimeFrame objects.\n */\n Calendar.prototype.clearTimeFrames = function() {\n this.timeFrames = {};\n };\n\n /**\n * Register TimeFrameMapping objects.\n *\n * @param {object} mappings object with names of timeFrames mappings for keys and TimeFrameMapping objects for values.\n */\n Calendar.prototype.registerTimeFrameMappings = function(mappings) {\n angular.forEach(mappings, function(timeFrameMapping, name) {\n this.timeFrameMappings[name] = new TimeFrameMapping(timeFrameMapping);\n }, this);\n };\n\n /**\n * Removes TimeFrameMapping objects.\n *\n * @param {array} mappings names of timeFrame mappings to remove.\n */\n Calendar.prototype.removeTimeFrameMappings = function(mappings) {\n angular.forEach(mappings, function(name) {\n delete this.timeFrameMappings[name];\n }, this);\n };\n\n /**\n * Removes all TimeFrameMapping objects.\n */\n Calendar.prototype.clearTimeFrameMappings = function() {\n this.timeFrameMappings = {};\n };\n\n /**\n * Register DateFrame objects.\n *\n * @param {object} dateFrames object with names of dateFrames for keys and DateFrame objects for values.\n */\n Calendar.prototype.registerDateFrames = function(dateFrames) {\n angular.forEach(dateFrames, function(dateFrame, name) {\n this.dateFrames[name] = new DateFrame(dateFrame);\n }, this);\n };\n\n /**\n * Remove DateFrame objects.\n *\n * @param {array} mappings names of date frames to remove.\n */\n Calendar.prototype.removeDateFrames = function(dateFrames) {\n angular.forEach(dateFrames, function(name) {\n delete this.dateFrames[name];\n }, this);\n };\n\n /**\n * Removes all DateFrame objects.\n */\n Calendar.prototype.clearDateFrames = function() {\n this.dateFrames = {};\n };\n\n var filterDateFrames = function(inputDateFrames, date) {\n var dateFrames = [];\n angular.forEach(inputDateFrames, function(dateFrame) {\n if (dateFrame.dateMatch(date)) {\n dateFrames.push(dateFrame);\n }\n });\n if (dateFrames.length === 0) {\n angular.forEach(inputDateFrames, function(dateFrame) {\n if (dateFrame.default) {\n dateFrames.push(dateFrame);\n }\n });\n }\n return dateFrames;\n };\n\n /**\n * Retrieves TimeFrame objects for a given date, using whole configuration for this Calendar object.\n *\n * @param {moment} date\n *\n * @return {array} an array of TimeFrame objects.\n */\n Calendar.prototype.getTimeFrames = function(date) {\n var timeFrames = [];\n var dateFrames = filterDateFrames(this.dateFrames, date);\n\n angular.forEach(dateFrames, function(dateFrame) {\n if (dateFrame !== undefined) {\n angular.forEach(dateFrame.targets, function(timeFrameMappingName) {\n var timeFrameMapping = this.timeFrameMappings[timeFrameMappingName];\n if (timeFrameMapping !== undefined) {\n // If a timeFrame mapping is found\n timeFrames.push(timeFrameMapping.getTimeFrames());\n } else {\n // If no timeFrame mapping is found, try using direct timeFrame\n var timeFrame = this.timeFrames[timeFrameMappingName];\n if (timeFrame !== undefined) {\n timeFrames.push(timeFrame);\n }\n }\n }, this);\n }\n }, this);\n\n var dateYear = date.year();\n var dateMonth = date.month();\n var dateDate = date.date();\n\n var validatedTimeFrames = [];\n if (timeFrames.length === 0) {\n angular.forEach(this.timeFrames, function(timeFrame) {\n if (timeFrame.default) {\n timeFrames.push(timeFrame);\n }\n });\n }\n\n angular.forEach(timeFrames, function(timeFrame) {\n timeFrame = timeFrame.clone();\n\n if (timeFrame.start !== undefined) {\n timeFrame.start.year(dateYear);\n timeFrame.start.month(dateMonth);\n timeFrame.start.date(dateDate);\n }\n\n if (timeFrame.end !== undefined) {\n timeFrame.end.year(dateYear);\n timeFrame.end.month(dateMonth);\n timeFrame.end.date(dateDate);\n\n if (moment(timeFrame.end).startOf('day') === timeFrame.end) {\n timeFrame.end.add(1, 'day');\n }\n }\n\n validatedTimeFrames.push(timeFrame);\n });\n\n return validatedTimeFrames;\n };\n\n /**\n * Solve timeFrames using two rules.\n *\n * 1) If at least one working timeFrame is defined, everything outside\n * defined timeFrames is considered as non-working. Else it's considered\n * as working.\n *\n * 2) Smaller timeFrames have priority over larger one.\n *\n * @param {array} timeFrames Array of timeFrames to solve\n * @param {moment} startDate\n * @param {moment} endDate\n */\n Calendar.prototype.solve = function(timeFrames, startDate, endDate) {\n var defaultWorking = timeFrames.length === 0;\n var color;\n var classes;\n var minDate;\n var maxDate;\n\n angular.forEach(timeFrames, function(timeFrame) {\n if (minDate === undefined || minDate > timeFrame.start) {\n minDate = timeFrame.start;\n }\n if (maxDate === undefined || maxDate < timeFrame.end) {\n maxDate = timeFrame.end;\n }\n if (color === undefined && timeFrame.color) {\n color = timeFrame.color;\n }\n if (timeFrame.classes !== undefined) {\n if (classes === undefined) {\n classes = [];\n }\n classes = classes.concat(timeFrame.classes);\n }\n });\n\n if (startDate === undefined) {\n startDate = minDate;\n }\n\n if (endDate === undefined) {\n endDate = maxDate;\n }\n\n var solvedTimeFrames = [new TimeFrame({start: startDate, end: endDate, working: defaultWorking, color: color, classes: classes})];\n\n timeFrames = $filter('filter')(timeFrames, function(timeFrame) {\n return (timeFrame.start === undefined || timeFrame.start < endDate) && (timeFrame.end === undefined || timeFrame.end > startDate);\n });\n\n var orderedTimeFrames = $filter('orderBy')(timeFrames, function(timeFrame) {\n return -timeFrame.getDuration();\n });\n\n angular.forEach(orderedTimeFrames, function(timeFrame) {\n var tmpSolvedTimeFrames = solvedTimeFrames.slice();\n\n var i=0;\n var dispatched = false;\n var treated = false;\n angular.forEach(solvedTimeFrames, function(solvedTimeFrame) {\n if (!treated) {\n if (timeFrame.end > solvedTimeFrame.start && timeFrame.start < solvedTimeFrame.end) {\n // timeFrame is included in this solvedTimeFrame.\n // solvedTimeFrame:|ssssssssssssssssssssssssssssssssss|\n // timeFrame: |tttttt|\n // result:|sssssssss|tttttt|sssssssssssssssss|\n\n var newSolvedTimeFrame = solvedTimeFrame.clone();\n\n solvedTimeFrame.end = moment(timeFrame.start);\n newSolvedTimeFrame.start = moment(timeFrame.end);\n\n tmpSolvedTimeFrames.splice(i + 1, 0, timeFrame.clone(), newSolvedTimeFrame);\n treated = true;\n dispatched = false;\n } else if (!dispatched && timeFrame.start < solvedTimeFrame.end) {\n // timeFrame is dispatched on two solvedTimeFrame.\n // First part\n // solvedTimeFrame:|sssssssssssssssssssssssssssssssssss|s+1;s+1;s+1;s+1;s+1;s+1|\n // timeFrame: |tttttt|\n // result:|sssssssssssssssssssssssssssssss|tttttt|;s+1;s+1;s+1;s+1;s+1|\n\n solvedTimeFrame.end = moment(timeFrame.start);\n tmpSolvedTimeFrames.splice(i + 1, 0, timeFrame.clone());\n\n dispatched = true;\n } else if (dispatched && timeFrame.end > solvedTimeFrame.start) {\n // timeFrame is dispatched on two solvedTimeFrame.\n // Second part\n\n solvedTimeFrame.start = moment(timeFrame.end);\n dispatched = false;\n treated = true;\n }\n i++;\n }\n });\n\n solvedTimeFrames = tmpSolvedTimeFrames;\n });\n\n solvedTimeFrames = $filter('filter')(solvedTimeFrames, function(timeFrame) {\n return (timeFrame.start === undefined || timeFrame.start < endDate) && (timeFrame.end === undefined || timeFrame.end > startDate);\n });\n\n return solvedTimeFrames;\n\n };\n\n return Calendar;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttCurrentDateManager', ['moment', function(moment) {\n var GanttCurrentDateManager = function(gantt) {\n var self = this;\n\n this.gantt = gantt;\n\n this.date = undefined;\n this.position = undefined;\n this.currentDateColumn = undefined;\n\n this.gantt.$scope.simplifyMoment = function(d) {\n return moment.isMoment(d) ? d.unix() : d;\n };\n\n this.gantt.$scope.$watchGroup(['currentDate', 'simplifyMoment(currentDateValue)'], function() {\n self.setCurrentDate(self.gantt.$scope.currentDateValue);\n });\n };\n\n GanttCurrentDateManager.prototype.setCurrentDate = function(currentDate) {\n this.date = currentDate;\n if (this.currentDateColumn !== undefined) {\n if (this.currentDateColumn.$element !== undefined) {\n this.currentDateColumn.$element.removeClass('gantt-foreground-col-current-date');\n }\n delete this.currentDateColumn;\n }\n\n if (this.date !== undefined) {\n var column = this.gantt.columnsManager.getColumnByDate(this.date);\n if (column !== undefined) {\n this.currentDateColumn = column;\n if (this.gantt.$scope.currentDate === 'column' && this.currentDateColumn.$element !== undefined) {\n this.currentDateColumn.$element.addClass('gantt-foreground-col-current-date');\n }\n }\n }\n\n this.position = this.gantt.getPositionByDate(this.date);\n };\n return GanttCurrentDateManager;\n }]);\n /* code */\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttColumn', [ 'moment', function(moment) {\n // Used to display the Gantt grid and header.\n // The columns are generated by the column generator.\n var Column = function(date, endDate, left, width, calendar, timeFramesWorkingMode, timeFramesNonWorkingMode) {\n this.date = date;\n this.endDate = endDate;\n this.left = left;\n this.width = width;\n this.calendar = calendar;\n this.duration = this.endDate.diff(this.date, 'milliseconds');\n this.timeFramesWorkingMode = timeFramesWorkingMode;\n this.timeFramesNonWorkingMode = timeFramesNonWorkingMode;\n this.timeFrames = [];\n this.visibleTimeFrames = [];\n this.daysTimeFrames = {};\n this.cropped = false;\n this.originalSize = {left: this.left, width: this.width};\n this.updateTimeFrames();\n };\n\n var getDateKey = function(date) {\n return date.year() + '-' + date.month() + '-' + date.date();\n };\n\n Column.prototype.updateView = function() {\n if (this.$element) {\n this.$element.css('left', this.left + 'px');\n this.$element.css('width', this.width + 'px');\n\n for (var i= 0, l = this.timeFrames.length; i self.endDate) {\n end = self.endDate;\n }\n\n timeFrame = timeFrame.clone();\n\n timeFrame.start = moment(start);\n timeFrame.end = moment(end);\n\n timeFrames.push(timeFrame);\n };\n };\n\n var cDate = self.date;\n var cDateStartOfDay = moment(cDate).startOf('day');\n var cDateNextDay = cDateStartOfDay.add(1, 'day');\n while (cDate < self.endDate) {\n var timeFrames = self.calendar.getTimeFrames(cDate);\n var nextCDate = moment.min(cDateNextDay, self.endDate);\n timeFrames = self.calendar.solve(timeFrames, cDate, nextCDate);\n var cTimeFrames = [];\n angular.forEach(timeFrames, buildPushTimeFrames(cTimeFrames, cDate, nextCDate));\n self.timeFrames = self.timeFrames.concat(cTimeFrames);\n\n var cDateKey = getDateKey(cDate);\n self.daysTimeFrames[cDateKey] = cTimeFrames;\n\n cDate = nextCDate;\n cDateStartOfDay = moment(cDate).startOf('day');\n cDateNextDay = cDateStartOfDay.add(1, 'day');\n }\n\n angular.forEach(self.timeFrames, function(timeFrame) {\n var positionDuration = timeFrame.start.diff(self.date, 'milliseconds');\n var position = positionDuration / self.duration * self.width;\n\n var timeFrameDuration = timeFrame.end.diff(timeFrame.start, 'milliseconds');\n var timeFramePosition = timeFrameDuration / self.duration * self.width;\n\n var hidden = false;\n if (timeFrame.working && self.timeFramesWorkingMode !== 'visible') {\n hidden = true;\n } else if (!timeFrame.working && self.timeFramesNonWorkingMode !== 'visible') {\n hidden = true;\n }\n\n if (!hidden) {\n self.visibleTimeFrames.push(timeFrame);\n }\n\n timeFrame.hidden = hidden;\n timeFrame.left = position;\n timeFrame.width = timeFramePosition;\n timeFrame.originalSize = {left: timeFrame.left, width: timeFrame.width};\n });\n\n if (self.timeFramesNonWorkingMode === 'cropped' || self.timeFramesWorkingMode === 'cropped') {\n var timeFramesWidth = 0;\n angular.forEach(self.timeFrames, function(timeFrame) {\n if (!timeFrame.working && self.timeFramesNonWorkingMode !== 'cropped' ||\n timeFrame.working && self.timeFramesWorkingMode !== 'cropped') {\n timeFramesWidth += timeFrame.width;\n }\n });\n\n if (timeFramesWidth !== self.width) {\n var croppedRatio = self.width / timeFramesWidth;\n var croppedWidth = 0;\n var originalCroppedWidth = 0;\n\n var allCropped = true;\n\n angular.forEach(self.timeFrames, function(timeFrame) {\n if (!timeFrame.working && self.timeFramesNonWorkingMode !== 'cropped' ||\n timeFrame.working && self.timeFramesWorkingMode !== 'cropped') {\n timeFrame.left = (timeFrame.left - croppedWidth) * croppedRatio;\n timeFrame.width = timeFrame.width * croppedRatio;\n timeFrame.originalSize.left = (timeFrame.originalSize.left - originalCroppedWidth) * croppedRatio;\n timeFrame.originalSize.width = timeFrame.originalSize.width * croppedRatio;\n timeFrame.cropped = false;\n allCropped = false;\n } else {\n croppedWidth += timeFrame.width;\n originalCroppedWidth += timeFrame.originalSize.width;\n timeFrame.left = undefined;\n timeFrame.width = 0;\n timeFrame.originalSize = {left: undefined, width: 0};\n timeFrame.cropped = true;\n }\n });\n\n self.cropped = allCropped;\n } else {\n self.cropped = false;\n }\n }\n }\n };\n\n Column.prototype.clone = function() {\n return new Column(moment(this.date), moment(this.endDate), this.left, this.width, this.calendar);\n };\n\n Column.prototype.containsDate = function(date) {\n return date > this.date && date <= this.endDate;\n };\n\n Column.prototype.equals = function(other) {\n return this.date === other.date;\n };\n\n Column.prototype.getMagnetDate = function(date, magnetValue, magnetUnit) {\n if (magnetValue > 0 && magnetUnit !== undefined) {\n var initialDate = date;\n date = moment(date);\n var value;\n var roundedMagnet;\n var duration;\n\n if (magnetValue < 1) {\n date.startOf(magnetUnit);\n value = initialDate.diff(date, 'milliseconds');\n duration = moment.duration(magnetValue, magnetUnit).asMilliseconds();\n\n roundedMagnet = Math.round(value/duration) * duration;\n date.set('milliseconds', roundedMagnet);\n } else {\n value = date.get(magnetUnit);\n roundedMagnet = Math.round(value/magnetValue) * magnetValue;\n date.startOf(magnetUnit);\n date.set(magnetUnit, roundedMagnet);\n }\n\n // Snap to a timeFrame border if initialDate is nearer of timeFrame border than actual magnet date.\n for (var i= 0, l=this.timeFrames.length; i < l; i++) {\n var timeFrame = this.timeFrames[i];\n\n var previousCropped;\n if (timeFrame.cropped && date >= timeFrame.start && date <= timeFrame.end) {\n previousCropped = true;\n }\n\n if (!timeFrame.cropped && (previousCropped || date >= timeFrame.start && date <= timeFrame.end)) {\n if (previousCropped) {\n previousCropped = false;\n if (date < timeFrame.start) {\n initialDate = timeFrame.start;\n } else if (date > timeFrame.end) {\n initialDate = timeFrame.end;\n }\n }\n\n var magnetDiff = Math.abs(initialDate.diff(date, 'milliseconds'));\n if (initialDate.diff(timeFrame.start, 'milliseconds') < magnetDiff) {\n date = timeFrame.start;\n } else if (timeFrame.end.diff(initialDate, 'milliseconds') < magnetDiff) {\n date = timeFrame.end;\n }\n\n break;\n }\n }\n }\n return date;\n };\n\n Column.prototype.getDateByPositionUsingTimeFrames = function(position) {\n for (var i= 0, l = this.timeFrames.length; i < l; i++) {\n // TODO: performance optimization could be done.\n var timeFrame = this.timeFrames[i];\n if (!timeFrame.cropped && position >= timeFrame.left && position <= timeFrame.left + timeFrame.width) {\n var positionDuration = timeFrame.getDuration() / timeFrame.width * (position - timeFrame.left);\n var date = moment(timeFrame.start).add(positionDuration, 'milliseconds');\n return date;\n }\n }\n };\n\n Column.prototype.getDateByPosition = function(position, magnetValue, magnetUnit) {\n var positionDuration;\n var date;\n\n if (position < 0) {\n position = 0;\n }\n if (position > this.width) {\n position = this.width;\n }\n\n if (this.timeFramesNonWorkingMode === 'cropped' || this.timeFramesWorkingMode === 'cropped') {\n date = this.getDateByPositionUsingTimeFrames(position);\n }\n\n if (date === undefined) {\n positionDuration = this.duration / this.width * position;\n date = moment(this.date).add(positionDuration, 'milliseconds');\n }\n\n date = this.getMagnetDate(date, magnetValue, magnetUnit);\n\n return date;\n };\n\n Column.prototype.getDayTimeFrame = function(date) {\n var dtf = this.daysTimeFrames[getDateKey(date)];\n if (dtf === undefined) {\n return [];\n }\n return dtf;\n };\n\n Column.prototype.getPositionByDate = function(date) {\n var positionDuration;\n var position;\n\n if (this.timeFramesNonWorkingMode === 'cropped' || this.timeFramesWorkingMode === 'cropped') {\n var croppedDate = date;\n var timeFrames = this.getDayTimeFrame(croppedDate);\n for (var i=0; i < timeFrames.length; i++) {\n var timeFrame = timeFrames[i];\n if (croppedDate >= timeFrame.start && croppedDate <= timeFrame.end) {\n if (timeFrame.cropped) {\n if (timeFrames.length > i+1) {\n croppedDate = timeFrames[i+1].start;\n } else {\n croppedDate = timeFrame.end;\n }\n } else {\n positionDuration = croppedDate.diff(timeFrame.start, 'milliseconds');\n position = positionDuration / timeFrame.getDuration() * timeFrame.width;\n return this.left + timeFrame.left + position;\n }\n }\n }\n }\n\n positionDuration = date.diff(this.date, 'milliseconds');\n position = positionDuration / this.duration * this.width;\n\n if (position < 0) {\n position = 0;\n }\n\n if (position > this.width) {\n position = this.width;\n }\n\n return this.left + position;\n };\n\n return Column;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttColumnGenerator', [ 'GanttColumn', 'moment', function(Column, moment) {\n var ColumnGenerator = function(columnsManager) {\n var self = this;\n\n var columnWidth = columnsManager.gantt.$scope.columnWidth;\n if (columnWidth === undefined) {\n columnWidth = 20;\n }\n var unit = columnsManager.gantt.$scope.viewScale;\n var calendar = columnsManager.gantt.calendar;\n var timeFramesWorkingMode = columnsManager.gantt.$scope.timeFramesWorkingMode;\n var timeFramesNonWorkingMode = columnsManager.gantt.$scope.timeFramesNonWorkingMode;\n\n // Generates one column for each time unit between the given from and to date.\n self.generate = function(from, to, maximumWidth, leftOffset, reverse) {\n if (!to && !maximumWidth) {\n throw 'to or maximumWidth must be defined';\n }\n\n var excludeTo = false;\n from = moment(from).startOf(unit);\n if (to) {\n excludeTo = isToDateToExclude(to);\n to = moment(to).startOf(unit);\n }\n\n var date = moment(from).startOf(unit);\n var generatedCols = [];\n var left = 0;\n\n while (true) {\n if (maximumWidth && Math.abs(left) > maximumWidth + columnWidth) {\n break;\n }\n\n var startDate = moment(date);\n var endDate = moment(startDate).add(1, unit);\n\n var column = new Column(startDate, endDate, leftOffset ? left + leftOffset : left, columnWidth, calendar, timeFramesWorkingMode, timeFramesNonWorkingMode);\n if (!column.cropped) {\n generatedCols.push(column);\n if (reverse) {\n left -= columnWidth;\n } else {\n left += columnWidth;\n }\n\n if (to) {\n if (reverse) {\n if (excludeTo && date < to || !excludeTo && date <= to) {\n break;\n }\n } else {\n if (excludeTo && date > to || !excludeTo && date >= to) {\n break;\n }\n }\n }\n }\n date.add(reverse ? -1 : 1, unit);\n }\n\n if (reverse) {\n if (isToDateToExclude(from)) {\n generatedCols.shift();\n }\n generatedCols.reverse();\n }\n\n return generatedCols;\n };\n\n // Columns are generated including or excluding the to date.\n // If the To date is the first day of month and the time is 00:00 then no new column is generated for this month.\n\n var isToDateToExclude = function(to) {\n return moment(to).add(1, unit).startOf(unit) === to;\n };\n };\n return ColumnGenerator;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttColumnHeader', [ 'moment', 'GanttColumn', function(moment, Column) {\n // Used to display the Gantt grid and header.\n // The columns are generated by the column generator.\n\n var ColumnHeader = function(date, unit, left, width, labelFormat) {\n var startDate = moment(date);\n var endDate = moment(startDate).add(1, unit);\n\n var column = new Column(startDate, endDate, left, width);\n column.unit = unit;\n column.label = angular.isFunction(labelFormat) ? labelFormat(column): startDate.format(labelFormat);\n\n return column;\n };\n return ColumnHeader;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttColumnsManager', ['GanttColumnGenerator', 'GanttHeaderGenerator', '$filter', '$timeout', 'ganttLayout', 'ganttBinarySearch', function(ColumnGenerator, HeaderGenerator, $filter, $timeout, layout, bs) {\n var ColumnsManager = function(gantt) {\n var self = this;\n\n this.gantt = gantt;\n\n this.from = undefined;\n this.to = undefined;\n\n this.columns = [];\n this.visibleColumns = [];\n this.previousColumns = [];\n this.nextColumns = [];\n\n this.headers = [];\n this.visibleHeaders = [];\n\n this.scrollAnchor = undefined;\n\n // Add a watcher if a view related setting changed from outside of the Gantt. Update the gantt accordingly if so.\n // All those changes need a recalculation of the header columns\n this.gantt.$scope.$watchGroup(['viewScale', 'columnWidth', 'timeFramesWorkingMode', 'timeFramesNonWorkingMode', 'fromDate', 'toDate', 'autoExpand', 'taskOutOfRange'], function(oldValues, newValues) {\n if (oldValues !== newValues && self.gantt.rendered) {\n self.generateColumns();\n }\n });\n\n this.gantt.$scope.$watchCollection('headers', function(oldValues, newValues) {\n if (oldValues !== newValues && self.gantt.rendered) {\n self.generateColumns();\n }\n });\n\n this.gantt.$scope.$watchCollection('headersFormats', function(oldValues, newValues) {\n if (oldValues !== newValues && self.gantt.rendered) {\n self.generateColumns();\n }\n });\n\n this.gantt.$scope.$watchGroup(['bodyRowsWidth', 'bodyRowsLeft', 'ganttElementWidth', 'sideWidth', 'maxHeight'], function(oldValues, newValues) {\n if (oldValues !== newValues && self.gantt.rendered) {\n self.updateColumnsMeta();\n }\n });\n\n this.gantt.api.data.on.load(this.gantt.$scope, function() {\n if ((self.from === undefined || self.to === undefined ||\n self.from > self.gantt.rowsManager.getDefaultFrom() ||\n self.to < self.gantt.rowsManager.getDefaultTo()) && self.gantt.rendered) {\n self.generateColumns();\n }\n\n self.gantt.rowsManager.sortRows();\n });\n\n this.gantt.api.data.on.remove(this.gantt.$scope, function() {\n self.gantt.rowsManager.sortRows();\n });\n\n this.gantt.api.registerMethod('columns', 'clear', this.clearColumns, this);\n this.gantt.api.registerMethod('columns', 'generate', this.generateColumns, this);\n this.gantt.api.registerMethod('columns', 'refresh', this.updateColumnsMeta, this);\n\n this.gantt.api.registerEvent('columns', 'generate');\n };\n\n ColumnsManager.prototype.setScrollAnchor = function() {\n if (this.gantt.scroll.$element && this.columns.length > 0) {\n var el = this.gantt.scroll.$element[0];\n var center = el.scrollLeft + el.offsetWidth / 2;\n\n this.scrollAnchor = this.gantt.getDateByPosition(center);\n }\n };\n\n ColumnsManager.prototype.scrollToScrollAnchor = function() {\n var self = this;\n\n if (this.columns.length > 0 && this.scrollAnchor !== undefined) {\n // Ugly but prevents screen flickering (unlike $timeout)\n this.gantt.$scope.$$postDigest(function() {\n self.gantt.api.scroll.toDate(self.scrollAnchor);\n });\n }\n };\n\n ColumnsManager.prototype.clearColumns = function() {\n this.setScrollAnchor();\n\n this.from = undefined;\n this.to = undefined;\n\n this.columns = [];\n this.visibleColumns = [];\n this.previousColumns = [];\n this.nextColumns = [];\n\n this.headers = [];\n this.visibleHeaders = [];\n\n this.gantt.api.columns.raise.clear();\n };\n\n ColumnsManager.prototype.generateColumns = function(from, to) {\n if (!from) {\n from = this.gantt.$scope.fromDate;\n }\n\n if (!to) {\n to = this.gantt.$scope.toDate;\n }\n\n if (!from) {\n from = this.gantt.rowsManager.getDefaultFrom();\n if (!from) {\n return false;\n }\n }\n\n if (!to) {\n to = this.gantt.rowsManager.getDefaultTo();\n if (!to) {\n return false;\n }\n }\n\n if (this.gantt.$scope.taskOutOfRange === 'expand') {\n from = this.gantt.rowsManager.getExpandedFrom(from);\n to = this.gantt.rowsManager.getExpandedTo(to);\n }\n\n this.setScrollAnchor();\n\n this.from = from;\n this.to = to;\n\n var columnGenerator = new ColumnGenerator(this);\n var headerGenerator = new HeaderGenerator(this);\n\n this.columns = columnGenerator.generate(from, to);\n this.headers = headerGenerator.generate(this.columns);\n this.previousColumns = [];\n this.nextColumns = [];\n\n this.updateColumnsMeta();\n this.scrollToScrollAnchor();\n\n this.gantt.api.columns.raise.generate(this.columns, this.headers);\n };\n\n ColumnsManager.prototype.updateColumnsMeta = function() {\n var lastColumn = this.getLastColumn();\n this.gantt.originalWidth = lastColumn !== undefined ? lastColumn.originalSize.left + lastColumn.originalSize.width : 0;\n\n var autoFitWidthEnabled = this.gantt.$scope.columnWidth === undefined;\n var scrollWidth = this.gantt.getElementWidth() - this.gantt.side.getWidth();\n if (autoFitWidthEnabled) {\n var newWidth = scrollWidth - this.gantt.scroll.getBordersWidth();\n\n layout.setColumnsWidth(newWidth, this.gantt.originalWidth, this.previousColumns);\n layout.setColumnsWidth(newWidth, this.gantt.originalWidth, this.columns);\n layout.setColumnsWidth(newWidth, this.gantt.originalWidth, this.nextColumns);\n\n angular.forEach(this.headers, function(header) {\n layout.setColumnsWidth(newWidth, this.gantt.originalWidth, header);\n }, this);\n }\n\n this.gantt.width = lastColumn !== undefined ? lastColumn.left + lastColumn.width : 0;\n\n this.gantt.rowsManager.updateTasksPosAndSize();\n this.gantt.timespansManager.updateTimespansPosAndSize();\n\n this.updateVisibleColumns(autoFitWidthEnabled);\n this.gantt.rowsManager.updateVisibleObjects();\n\n this.gantt.currentDateManager.setCurrentDate(this.gantt.$scope.currentDateValue);\n };\n\n // Returns the last Gantt column or undefined\n ColumnsManager.prototype.getLastColumn = function(extended) {\n var columns = this.columns;\n if (extended) {\n columns = this.nextColumns;\n }\n if (columns && columns.length > 0) {\n return columns[columns.length - 1];\n } else {\n return undefined;\n }\n };\n\n // Returns the first Gantt column or undefined\n ColumnsManager.prototype.getFirstColumn = function(extended) {\n var columns = this.columns;\n if (extended) {\n columns = this.previousColumns;\n }\n\n if (columns && columns.length > 0) {\n return columns[0];\n } else {\n return undefined;\n }\n };\n\n // Returns the column at the given or next possible date\n ColumnsManager.prototype.getColumnByDate = function(date) {\n this.expandExtendedColumnsForDate(date);\n var extendedColumns = this.previousColumns.concat(this.columns, this.nextColumns);\n var columns = bs.get(extendedColumns, date, function(c) {\n return c.date;\n }, true);\n return columns[0] !== undefined ? columns[0] : columns[1];\n };\n\n // Returns the column at the given position x (in em)\n ColumnsManager.prototype.getColumnByPosition = function(x) {\n this.expandExtendedColumnsForPosition(x);\n var extendedColumns = this.previousColumns.concat(this.columns, this.nextColumns);\n return bs.get(extendedColumns, x, function(c) {\n return c.left;\n }, true)[0];\n };\n\n ColumnsManager.prototype.expandExtendedColumnsForPosition = function(x) {\n if (x < 0) {\n var firstColumn = this.getFirstColumn();\n var from = firstColumn.date;\n var firstExtendedColumn = this.getFirstColumn(true);\n if (!firstExtendedColumn || firstExtendedColumn.left > x) {\n this.previousColumns = new ColumnGenerator(this).generate(from, undefined, -x, 0, true);\n }\n return true;\n } else if (x > this.gantt.width) {\n var lastColumn = this.getLastColumn();\n var endDate = lastColumn.getDateByPosition(lastColumn.width);\n var lastExtendedColumn = this.getLastColumn(true);\n if (!lastExtendedColumn || lastExtendedColumn.left + lastExtendedColumn.width < x) {\n this.nextColumns = new ColumnGenerator(this).generate(endDate, undefined, x - this.gantt.width, this.gantt.width, false);\n }\n return true;\n }\n return false;\n };\n\n ColumnsManager.prototype.expandExtendedColumnsForDate = function(date) {\n var firstColumn = this.getFirstColumn();\n var from;\n if (firstColumn) {\n from = firstColumn.date;\n }\n\n var lastColumn = this.getLastColumn();\n var endDate;\n if (lastColumn) {\n endDate = lastColumn.getDateByPosition(lastColumn.width);\n }\n\n if (from && date < from) {\n var firstExtendedColumn = this.getFirstColumn(true);\n if (!firstExtendedColumn || firstExtendedColumn.date > date) {\n this.previousColumns = new ColumnGenerator(this).generate(from, date, undefined, 0, true);\n }\n return true;\n } else if (endDate && date > endDate) {\n var lastExtendedColumn = this.getLastColumn(true);\n if (!lastExtendedColumn || endDate < lastExtendedColumn) {\n this.nextColumns = new ColumnGenerator(this).generate(endDate, date, undefined, this.gantt.width, false);\n }\n return true;\n }\n return false;\n };\n\n // Returns the number of active headers\n ColumnsManager.prototype.getActiveHeadersCount = function() {\n return this.headers.length;\n };\n\n ColumnsManager.prototype.updateVisibleColumns = function(includeViews) {\n this.visibleColumns = $filter('ganttColumnLimit')(this.columns, this.gantt);\n\n this.visibleHeaders = [];\n angular.forEach(this.headers, function(header) {\n this.visibleHeaders.push($filter('ganttColumnLimit')(header, this.gantt));\n }, this);\n\n if (includeViews) {\n angular.forEach(this.visibleColumns, function(c) {\n c.updateView();\n });\n\n angular.forEach(this.visibleHeaders, function(headerRow) {\n angular.forEach(headerRow, function(header) {\n header.updateView();\n });\n });\n }\n };\n\n var defaultHeadersFormats = {'year': 'YYYY', 'quarter': '[Q]Q YYYY', month: 'MMMM YYYY', week: 'w', day: 'D', hour: 'H', minute:'HH:mm'};\n var defaultDayHeadersFormats = {day: 'LL', hour: 'H', minute:'HH:mm'};\n var defaultYearHeadersFormats = {'year': 'YYYY', 'quarter': '[Q]Q', month: 'MMMM'};\n\n ColumnsManager.prototype.getHeaderFormat = function(unit) {\n var format;\n if (this.gantt.$scope.headersFormats !== undefined) {\n format = this.gantt.$scope.headersFormats[unit];\n }\n if (format === undefined) {\n if (['millisecond', 'second', 'minute', 'hour'].indexOf(this.gantt.$scope.viewScale) > -1) {\n format = defaultDayHeadersFormats[unit];\n } else if (['month', 'quarter', 'year'].indexOf(this.gantt.$scope.viewScale) > -1) {\n format = defaultYearHeadersFormats[unit];\n }\n if (format === undefined) {\n format = defaultHeadersFormats[unit];\n }\n }\n return format;\n };\n\n return ColumnsManager;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttHeaderGenerator', ['GanttColumnHeader', function(ColumnHeader) {\n var generateHeader = function(columnsManager, columns, unit) {\n var generatedHeaders = [];\n var header;\n var prevColDateVal;\n\n for (var i = 0, l = columns.length; i < l; i++) {\n var col = columns[i];\n var colDateVal = col.date.get(unit);\n if (i === 0 || prevColDateVal !== colDateVal) {\n prevColDateVal = colDateVal;\n var labelFormat = columnsManager.getHeaderFormat(unit);\n\n header = new ColumnHeader(col.date, unit, col.originalSize.left, col.originalSize.width, labelFormat);\n header.left = col.left;\n header.width = col.width;\n generatedHeaders.push(header);\n } else {\n header.originalSize.width += col.originalSize.width;\n header.width += col.width;\n }\n }\n return generatedHeaders;\n\n };\n\n return function(columnsManager) {\n this.generate = function(columns) {\n var units = [];\n if (columnsManager.gantt.$scope.headers === undefined) {\n units = [];\n if (['year', 'quarter', 'month'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('year');\n }\n if (['quarter'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('quarter');\n }\n if (['day', 'week', 'month'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('month');\n }\n if (['day', 'week'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('week');\n }\n if (['hour', 'day'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('day');\n }\n if (['hour', 'minute', 'second'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('hour');\n }\n if (['minute', 'second'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('minute');\n }\n if (['second'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('second');\n }\n if (units.length === 0) {\n units.push(columnsManager.gantt.$scope.viewScale);\n }\n } else {\n units = columnsManager.gantt.$scope.headers;\n }\n\n var headers = [];\n angular.forEach(units, function(unit) {\n headers.push(generateHeader(columnsManager, columns, unit));\n });\n\n return headers;\n };\n };\n }]);\n}());\n\n","(function() {\n 'use strict';\n angular.module('gantt').factory('Gantt', [\n 'GanttApi', 'GanttCalendar', 'GanttScroll', 'GanttBody', 'GanttRowHeader', 'GanttHeader', 'GanttSide', 'GanttObjectModel', 'GanttRowsManager', 'GanttColumnsManager', 'GanttTimespansManager', 'GanttCurrentDateManager', 'ganttArrays', 'moment', '$document',\n function(GanttApi, Calendar, Scroll, Body, RowHeader, Header, Side, ObjectModel, RowsManager, ColumnsManager, TimespansManager, CurrentDateManager, arrays, moment, $document) {\n // Gantt logic. Manages the columns, rows and sorting functionality.\n var Gantt = function($scope, $element) {\n var self = this;\n\n this.$scope = $scope;\n this.$element = $element;\n\n this.api = new GanttApi(this);\n\n this.api.registerEvent('core', 'ready');\n this.api.registerEvent('core', 'rendered');\n\n this.api.registerEvent('directives', 'preLink');\n this.api.registerEvent('directives', 'postLink');\n this.api.registerEvent('directives', 'new');\n this.api.registerEvent('directives', 'destroy');\n\n this.api.registerEvent('data', 'load');\n this.api.registerEvent('data', 'remove');\n this.api.registerEvent('data', 'clear');\n\n this.api.registerMethod('core', 'getDateByPosition', this.getDateByPosition, this);\n this.api.registerMethod('core', 'getPositionByDate', this.getPositionByDate, this);\n\n this.api.registerMethod('data', 'load', this.loadData, this);\n this.api.registerMethod('data', 'remove', this.removeData, this);\n this.api.registerMethod('data', 'clear', this.clearData, this);\n this.api.registerMethod('data', 'get', this.getData, this);\n\n this.calendar = new Calendar(this);\n this.calendar.registerTimeFrames(this.$scope.timeFrames);\n this.calendar.registerDateFrames(this.$scope.dateFrames);\n\n this.api.registerMethod('timeframes', 'registerTimeFrames', this.calendar.registerTimeFrames, this.calendar);\n this.api.registerMethod('timeframes', 'clearTimeframes', this.calendar.clearTimeFrames, this.calendar);\n this.api.registerMethod('timeframes', 'registerDateFrames', this.calendar.registerDateFrames, this.calendar);\n this.api.registerMethod('timeframes', 'clearDateFrames', this.calendar.clearDateFrames, this.calendar);\n this.api.registerMethod('timeframes', 'registerTimeFrameMappings', this.calendar.registerTimeFrameMappings, this.calendar);\n this.api.registerMethod('timeframes', 'clearTimeFrameMappings', this.calendar.clearTimeFrameMappings, this.calendar);\n\n $scope.$watchGroup(['timeFrames', 'dateFrames'], function(newValues, oldValues) {\n if (newValues !== oldValues) {\n var timeFrames = newValues[0];\n var dateFrames = newValues[1];\n\n var oldTimeFrames = oldValues[0];\n var oldDateFrames = oldValues[1];\n\n if (!angular.equals(timeFrames, oldTimeFrames)) {\n self.calendar.clearTimeFrames();\n self.calendar.registerTimeFrames(timeFrames);\n }\n\n if (!angular.equals(dateFrames, oldDateFrames)) {\n self.calendar.clearDateFrames();\n self.calendar.registerDateFrames(dateFrames);\n }\n\n self.columnsManager.generateColumns();\n }\n });\n\n $scope.$watch('columnMagnet', function() {\n var splittedColumnMagnet;\n if ($scope.columnMagnet) {\n splittedColumnMagnet = $scope.columnMagnet.trim().split(' ');\n }\n if (splittedColumnMagnet && splittedColumnMagnet.length > 1) {\n self.columnMagnetValue = parseFloat(splittedColumnMagnet[0]);\n self.columnMagnetUnit = splittedColumnMagnet[splittedColumnMagnet.length-1];\n } else {\n self.columnMagnetValue = undefined;\n self.columnMagnetUnit = undefined;\n }\n });\n\n $scope.$watchGroup(['shiftColumnMagnet', 'viewScale'], function() {\n var splittedColumnMagnet;\n if ($scope.shiftColumnMagnet) {\n splittedColumnMagnet = $scope.shiftColumnMagnet.trim().split(' ');\n }\n if (splittedColumnMagnet !== undefined && splittedColumnMagnet.length > 1) {\n self.shiftColumnMagnetValue = parseFloat(splittedColumnMagnet[0]);\n self.shiftColumnMagnetUnit = splittedColumnMagnet[splittedColumnMagnet.length-1];\n } else {\n self.shiftColumnMagnetValue = undefined;\n self.shiftColumnMagnetUnit = undefined;\n }\n });\n\n $document.on('keyup keydown', function(e) {\n self.shiftKey = e.shiftKey;\n return true;\n });\n\n this.scroll = new Scroll(this);\n this.body = new Body(this);\n this.header = new Header(this);\n this.side = new Side(this);\n\n this.objectModel = new ObjectModel(this.api);\n\n this.rowsManager = new RowsManager(this);\n this.columnsManager = new ColumnsManager(this);\n this.timespansManager = new TimespansManager(this);\n this.currentDateManager = new CurrentDateManager(this);\n\n this.originalWidth = 0;\n this.width = 0;\n\n if (angular.isFunction(this.$scope.api)) {\n this.$scope.api(this.api);\n }\n\n this.$scope.$watchCollection('data', function(newData, oldData) {\n var toRemoveIds = arrays.getRemovedIds(newData, oldData);\n\n for (var i = 0, l = toRemoveIds.length; i < l; i++) {\n var toRemoveId = toRemoveIds[i];\n self.rowsManager.removeRow(toRemoveId);\n }\n\n if (newData !== undefined) {\n self.loadData(newData);\n }\n });\n };\n\n // Returns the exact column date at the given position x (in em)\n Gantt.prototype.getDateByPosition = function(x, magnet) {\n var column = this.columnsManager.getColumnByPosition(x);\n if (column !== undefined) {\n var magnetValue;\n var magnetUnit;\n if (magnet) {\n if (this.shiftKey) {\n if (this.shiftColumnMagnetValue !== undefined && this.shiftColumnMagnetUnit !== undefined) {\n magnetValue = this.shiftColumnMagnetValue;\n magnetUnit = this.shiftColumnMagnetUnit;\n } else {\n magnetValue = 0.25;\n magnetUnit = this.$scope.viewScale;\n }\n } else {\n magnetValue = this.columnMagnetValue;\n magnetUnit = this.columnMagnetUnit;\n }\n }\n\n return column.getDateByPosition(x - column.left, magnetValue, magnetUnit);\n } else {\n return undefined;\n }\n };\n\n // Returns the position inside the Gantt calculated by the given date\n Gantt.prototype.getPositionByDate = function(date) {\n if (date === undefined) {\n return undefined;\n }\n\n if (!moment.isMoment(moment)) {\n date = moment(date);\n }\n\n var column = this.columnsManager.getColumnByDate(date);\n if (column !== undefined) {\n return column.getPositionByDate(date);\n } else {\n return undefined;\n }\n };\n\n // Adds or update rows and tasks.\n Gantt.prototype.loadData = function(data) {\n if (!angular.isArray(data)) {\n data = data !== undefined ? [data] : [];\n }\n\n if (this.$scope.data === undefined || this.$scope.data !== data) {\n this.$scope.data = [];\n }\n for (var i = 0, l = data.length; i < l; i++) {\n var rowData = data[i];\n this.rowsManager.addRow(rowData);\n }\n this.api.data.raise.load(this.$scope, data);\n };\n\n Gantt.prototype.getData = function() {\n return this.$scope.data;\n };\n\n // Removes specified rows or tasks.\n // If a row has no tasks inside the complete row will be deleted.\n Gantt.prototype.removeData = function(data) {\n if (!angular.isArray(data)) {\n data = data !== undefined ? [data] : [];\n }\n\n this.rowsManager.removeData(data);\n this.api.data.raise.remove(this.$scope, data);\n };\n\n // Removes all rows and tasks\n Gantt.prototype.clearData = function() {\n this.rowsManager.removeAll();\n this.api.data.raise.clear(this.$scope);\n };\n\n Gantt.prototype.getElementWidth = function() {\n return this.$element[0].offsetWidth;\n };\n\n return Gantt;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttObjectModel', ['ganttUtils', 'moment', function(utils, moment) {\n var ObjectModel = function(api) {\n this.api = api;\n\n this.api.registerEvent('tasks', 'clean');\n this.api.registerEvent('rows', 'clean');\n this.api.registerEvent('timespans', 'clean');\n };\n\n ObjectModel.prototype.cleanTask = function(model) {\n if (model.id === undefined) {\n model.id = utils.randomUuid();\n }\n\n if (model.from !== undefined && !moment.isMoment(model.from)) {\n model.from = moment(model.from);\n }\n\n if (model.to !== undefined && !moment.isMoment(model.to)) {\n model.to = moment(model.to);\n }\n\n this.api.tasks.raise.clean(model);\n };\n\n ObjectModel.prototype.cleanRow = function(model) {\n if (model.id === undefined) {\n model.id = utils.randomUuid();\n }\n\n if (model.from !== undefined && !moment.isMoment(model.from)) {\n model.from = moment(model.from);\n }\n\n if (model.to !== undefined && !moment.isMoment(model.to)) {\n model.to = moment(model.to);\n }\n\n this.api.rows.raise.clean(model);\n };\n\n ObjectModel.prototype.cleanTimespan = function(model) {\n if (model.id === undefined) {\n model.id = utils.randomUuid();\n }\n\n if (model.from !== undefined && !moment.isMoment(model.from)) {\n model.from = moment(model.from);\n }\n\n if (model.to !== undefined && !moment.isMoment(model.to)) {\n model.to = moment(model.to);\n }\n\n this.api.timespans.raise.clean(model);\n };\n\n return ObjectModel;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttRow', ['GanttTask', 'moment', '$filter', function(Task, moment, $filter) {\n var Row = function(rowsManager, model) {\n this.rowsManager = rowsManager;\n this.model = model;\n\n this.from = undefined;\n this.to = undefined;\n\n this.tasksMap = {};\n this.tasks = [];\n this.filteredTasks = [];\n this.visibleTasks = [];\n };\n\n Row.prototype.addTaskImpl = function(task, viewOnly) {\n this.tasksMap[task.model.id] = task;\n this.tasks.push(task);\n this.filteredTasks.push(task);\n this.visibleTasks.push(task);\n\n if (!viewOnly) {\n if (this.model.tasks === undefined) {\n this.model.tasks = [];\n }\n if (this.model.tasks.indexOf(task.model) === -1) {\n this.model.tasks.push(task.model);\n }\n }\n\n };\n\n // Adds a task to a specific row. Merges the task if there is already one with the same id\n Row.prototype.addTask = function(taskModel, viewOnly) {\n // Copy to new task (add) or merge with existing (update)\n var task, isUpdate = false;\n\n this.rowsManager.gantt.objectModel.cleanTask(taskModel);\n if (taskModel.id in this.tasksMap) {\n task = this.tasksMap[taskModel.id];\n if (task.model === taskModel) {\n return task;\n }\n task.model = taskModel;\n isUpdate = true;\n } else {\n task = new Task(this, taskModel);\n this.addTaskImpl(task, viewOnly);\n }\n\n this.sortTasks();\n this.setFromToByTask(task);\n\n if (!viewOnly) {\n if (isUpdate) {\n this.rowsManager.gantt.api.tasks.raise.change(task);\n } else {\n this.rowsManager.gantt.api.tasks.raise.add(task);\n }\n }\n\n return task;\n };\n\n // Removes the task from the existing row and adds it to he current one\n Row.prototype.moveTaskToRow = function(task, viewOnly) {\n var oldRow = task.row;\n oldRow.removeTask(task.model.id, viewOnly, true);\n\n task.row = this;\n this.addTaskImpl(task, viewOnly);\n\n this.sortTasks();\n this.setFromToByTask(task);\n\n task.updatePosAndSize();\n\n if (!viewOnly) {\n this.rowsManager.gantt.api.tasks.raise.rowChange(task, oldRow);\n }\n };\n\n Row.prototype.updateVisibleTasks = function() {\n if (this.rowsManager.gantt.$scope.filterTask) {\n var filterTask = this.rowsManager.gantt.$scope.filterTask;\n if (typeof(filterTask) === 'object') {\n filterTask = {model: filterTask};\n }\n\n var filterTaskComparator = this.rowsManager.gantt.$scope.filterTaskComparator;\n if (typeof(filterTaskComparator) === 'function') {\n filterTaskComparator = function(actual, expected) {\n return this.rowsManager.gantt.$scope.filterRowComparator(actual.model, expected.model);\n };\n }\n\n this.filteredTasks = $filter('filter')(this.tasks, filterTask, filterTaskComparator);\n } else {\n this.filteredTasks = this.tasks.slice(0);\n }\n this.visibleTasks = $filter('ganttTaskLimit')(this.filteredTasks, this.rowsManager.gantt);\n };\n\n Row.prototype.updateTasksPosAndSize = function() {\n for (var j = 0, k = this.tasks.length; j < k; j++) {\n this.tasks[j].updatePosAndSize();\n }\n };\n\n // Remove the specified task from the row\n Row.prototype.removeTask = function(taskId, viewOnly, silent) {\n if (taskId in this.tasksMap) {\n var removedTask = this.tasksMap[taskId];\n var task;\n var i;\n\n for (i = this.tasks.length - 1; i >= 0; i--) {\n task = this.tasks[i];\n if (task.model.id === taskId) {\n this.tasks.splice(i, 1); // Remove from array\n\n // Update earliest or latest date info as this may change\n if (this.from - task.model.from === 0 || this.to - task.model.to === 0) {\n this.setFromTo();\n }\n\n break;\n }\n }\n\n for (i = this.filteredTasks.length - 1; i >= 0; i--) {\n task = this.filteredTasks[i];\n if (task.model.id === taskId) {\n this.filteredTasks.splice(i, 1); // Remove from filtered array\n break;\n }\n }\n\n for (i = this.visibleTasks.length - 1; i >= 0; i--) {\n task = this.visibleTasks[i];\n if (task.model.id === taskId) {\n this.visibleTasks.splice(i, 1); // Remove from visible array\n break;\n }\n }\n\n if (!viewOnly) {\n delete this.tasksMap[taskId]; // Remove from map\n\n if (this.model.tasks !== undefined) {\n var taskIndex = this.model.tasks.indexOf(removedTask.model);\n if (taskIndex > -1) {\n this.model.tasks.splice(taskIndex, 1);\n }\n }\n\n if (!silent) {\n this.rowsManager.gantt.api.tasks.raise.remove(removedTask);\n }\n }\n\n return removedTask;\n }\n };\n\n Row.prototype.removeAllTasks = function() {\n this.from = undefined;\n this.to = undefined;\n\n this.tasksMap = {};\n this.tasks = [];\n this.filteredTasks = [];\n this.visibleTasks = [];\n };\n\n // Calculate the earliest from and latest to date of all tasks in a row\n Row.prototype.setFromTo = function() {\n this.from = undefined;\n this.to = undefined;\n for (var j = 0, k = this.tasks.length; j < k; j++) {\n this.setFromToByTask(this.tasks[j]);\n }\n };\n\n Row.prototype.setFromToByTask = function(task) {\n if (this.from === undefined) {\n this.from = moment(task.model.from);\n } else if (task.model.from < this.from) {\n this.from = moment(task.model.from);\n }\n\n if (this.to === undefined) {\n this.to = moment(task.model.to);\n } else if (task.model.to > this.to) {\n this.to = moment(task.model.to);\n }\n };\n\n Row.prototype.sortTasks = function() {\n this.tasks.sort(function(t1, t2) {\n return t1.left - t2.left;\n });\n };\n\n Row.prototype.clone = function() {\n var clone = new Row(this.rowsManager, angular.copy(this));\n for (var i = 0, l = this.tasks.length; i < l; i++) {\n clone.addTask(this.tasks[i].model);\n }\n return clone;\n };\n\n return Row;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttRowHeader', [function() {\n var RowHeader = function(gantt) {\n this.gantt = gantt;\n };\n return RowHeader;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttRowsManager', ['GanttRow', 'ganttArrays', '$filter', 'moment', function(Row, arrays, $filter, moment) {\n var RowsManager = function(gantt) {\n var self = this;\n\n this.gantt = gantt;\n\n this.rowsMap = {};\n this.rows = [];\n this.sortedRows = [];\n this.filteredRows = [];\n this.visibleRows = [];\n this.rowsTaskWatchers = [];\n\n this.gantt.$scope.$watchGroup(['filterTask', 'filterTaskComparator'], function(oldValues, newValues) {\n if (oldValues !== newValues) {\n self.updateVisibleTasks();\n }\n });\n\n this.gantt.$scope.$watchGroup(['filterRow', 'filterRowComparator'], function(oldValues, newValues) {\n if (oldValues !== newValues) {\n self.updateVisibleRows();\n }\n });\n\n this.gantt.$scope.$watch('sortMode', function(oldValues, newValues) {\n if (oldValues !== newValues) {\n self.sortRows();\n }\n });\n\n this.gantt.api.registerMethod('rows', 'sort', RowsManager.prototype.sortRows, this);\n this.gantt.api.registerMethod('rows', 'applySort', RowsManager.prototype.applySort, this);\n this.gantt.api.registerMethod('rows', 'refresh', RowsManager.prototype.updateVisibleObjects, this);\n\n this.gantt.api.registerEvent('tasks', 'add');\n this.gantt.api.registerEvent('tasks', 'change');\n this.gantt.api.registerEvent('tasks', 'rowChange');\n this.gantt.api.registerEvent('tasks', 'remove');\n this.gantt.api.registerEvent('tasks', 'filter');\n\n this.gantt.api.registerEvent('rows', 'add');\n this.gantt.api.registerEvent('rows', 'change');\n this.gantt.api.registerEvent('rows', 'remove');\n this.gantt.api.registerEvent('rows', 'move');\n\n this.gantt.api.registerEvent('rows', 'filter');\n\n this.updateVisibleObjects();\n };\n\n RowsManager.prototype.addRow = function(rowModel) {\n // Copy to new row (add) or merge with existing (update)\n var row, i, l, isUpdate = false;\n\n this.gantt.objectModel.cleanRow(rowModel);\n\n if (rowModel.id in this.rowsMap) {\n row = this.rowsMap[rowModel.id];\n if (row.model === rowModel) {\n return;\n }\n\n var toRemoveIds = arrays.getRemovedIds(rowModel.tasks, row.model.tasks);\n for (i= 0, l=toRemoveIds.length; i 0) {\n for (i = 0, l = rowModel.tasks.length; i < l; i++) {\n var taskModel = rowModel.tasks[i];\n row.addTask(taskModel);\n }\n }\n\n if (isUpdate) {\n this.gantt.api.rows.raise.change(row);\n } else {\n this.gantt.api.rows.raise.add(row);\n }\n\n if (!isUpdate) {\n var watcher = this.gantt.$scope.$watchCollection(function() {return rowModel.tasks;}, function(newTasks, oldTasks) {\n if (newTasks !== oldTasks) {\n var i, l;\n\n var toRemoveIds = arrays.getRemovedIds(newTasks, oldTasks);\n for (i= 0, l = toRemoveIds.length; i -1) {\n removedRow = this.rows.splice(indexOf, 1)[0]; // Remove from array\n var deregisterFunction = this.rowsTaskWatchers.splice(indexOf, 1)[0]; // Remove watcher\n deregisterFunction();\n }\n\n arrays.removeId(this.sortedRows, rowId, ['model', 'id']);\n arrays.removeId(this.filteredRows, rowId, ['model', 'id']);\n arrays.removeId(this.visibleRows, rowId, ['model', 'id']);\n arrays.remove(this.gantt.$scope.data, removedRow.model);\n\n this.gantt.api.rows.raise.remove(removedRow);\n return row;\n }\n\n return undefined;\n };\n\n RowsManager.prototype.removeData = function(data) {\n for (var i = 0, l = data.length; i < l; i++) {\n var rowData = data[i];\n var row;\n\n if (rowData.tasks !== undefined && rowData.tasks.length > 0) {\n // Only delete the specified tasks but not the row and the other tasks\n\n if (rowData.id in this.rowsMap) {\n row = this.rowsMap[rowData.id];\n\n for (var j = 0, k = rowData.tasks.length; j < k; j++) {\n row.removeTask(rowData.tasks[j].id);\n }\n\n this.gantt.api.rows.raise.change(row);\n }\n } else {\n // Delete the complete row\n row = this.removeRow(rowData.id);\n }\n }\n this.updateVisibleObjects();\n };\n\n RowsManager.prototype.removeAll = function() {\n this.rowsMap = {};\n this.rows = [];\n this.sortedRows = [];\n this.filteredRows = [];\n this.visibleRows = [];\n var data = this.gantt.$scope.data;\n while(data > 0) {\n data.pop();\n }\n for (var i= 0, l=this.rowsTaskWatchers.length; i 0) {\n data.pop();\n }\n var rows = [];\n for (var i = 0, l = this.sortedRows.length; i < l; i++) {\n data.push(this.sortedRows[i].model);\n rows.push(this.sortedRows[i]);\n }\n\n this.rows = rows;\n };\n\n RowsManager.prototype.moveRow = function(row, targetRow) {\n if (this.gantt.$scope.sortMode !== undefined) {\n // Apply current sort to model\n this.applySort();\n\n this.gantt.$scope.sortMode = undefined;\n }\n\n var targetRowIndex = this.rows.indexOf(targetRow);\n var rowIndex = this.rows.indexOf(row);\n\n if (targetRowIndex > -1 && rowIndex > -1 && targetRowIndex !== rowIndex) {\n arrays.moveToIndex(this.rows, rowIndex, targetRowIndex);\n arrays.moveToIndex(this.rowsTaskWatchers, rowIndex, targetRowIndex);\n arrays.moveToIndex(this.gantt.$scope.data, rowIndex, targetRowIndex);\n\n this.gantt.api.rows.raise.change(row);\n this.gantt.api.rows.raise.move(row, rowIndex, targetRowIndex);\n\n this.updateVisibleObjects();\n this.sortRows();\n }\n };\n\n RowsManager.prototype.updateVisibleObjects = function() {\n this.updateVisibleRows();\n this.updateVisibleTasks();\n };\n\n RowsManager.prototype.updateVisibleRows = function() {\n var oldFilteredRows = this.filteredRows;\n if (this.gantt.$scope.filterRow) {\n var filterRow = this.gantt.$scope.filterRow;\n if (typeof(filterRow) === 'object') {\n filterRow = {model: filterRow};\n }\n\n var filterRowComparator = this.gantt.$scope.filterRowComparator;\n if (typeof(filterRowComparator) === 'function') {\n filterRowComparator = function(actual, expected) {\n return this.gantt.$scope.filterRowComparator(actual.model, expected.model);\n };\n }\n\n this.filteredRows = $filter('filter')(this.sortedRows, filterRow, filterRowComparator);\n } else {\n this.filteredRows = this.sortedRows.slice(0);\n }\n\n\n var raiseEvent = !angular.equals(oldFilteredRows, this.filteredRows);\n\n // TODO: Implement rowLimit like columnLimit to enhance performance for gantt with many rows\n this.visibleRows = this.filteredRows;\n if (raiseEvent) {\n this.gantt.api.rows.raise.filter(this.sortedRows, this.filteredRows);\n }\n };\n\n RowsManager.prototype.updateVisibleTasks = function() {\n var oldFilteredTasks = [];\n var filteredTasks = [];\n var tasks = [];\n\n angular.forEach(this.rows, function(row) {\n oldFilteredTasks = oldFilteredTasks.concat(row.filteredTasks);\n row.updateVisibleTasks();\n filteredTasks = filteredTasks.concat(row.filteredTasks);\n tasks = tasks.concat(row.tasks);\n });\n\n var filterEvent = !angular.equals(oldFilteredTasks, filteredTasks);\n\n if (filterEvent) {\n this.gantt.api.tasks.raise.filter(tasks, filteredTasks);\n }\n };\n\n // Update the position/size of all tasks in the Gantt\n RowsManager.prototype.updateTasksPosAndSize = function() {\n for (var i = 0, l = this.rows.length; i < l; i++) {\n this.rows[i].updateTasksPosAndSize();\n }\n };\n\n RowsManager.prototype.getExpandedFrom = function(from) {\n from = from ? moment(from) : from;\n\n var minRowFrom = from;\n angular.forEach(this.rows, function(row) {\n if (minRowFrom === undefined || minRowFrom > row.from) {\n minRowFrom = row.from;\n }\n });\n if (minRowFrom && (!from || minRowFrom < from)) {\n return minRowFrom;\n }\n return from;\n };\n\n RowsManager.prototype.getExpandedTo = function(to) {\n to = to ? moment(to) : to;\n\n var maxRowTo = to;\n angular.forEach(this.rows, function(row) {\n if (maxRowTo === undefined || maxRowTo < row.to) {\n maxRowTo = row.to;\n }\n });\n if (maxRowTo && (!this.gantt.$scope.toDate || maxRowTo > this.gantt.$scope.toDate)) {\n return maxRowTo;\n }\n return to;\n };\n\n RowsManager.prototype.getDefaultFrom = function() {\n var defaultFrom;\n angular.forEach(this.rows, function(row) {\n if (defaultFrom === undefined || row.from < defaultFrom) {\n defaultFrom = row.from;\n }\n });\n return defaultFrom;\n };\n\n RowsManager.prototype.getDefaultTo = function() {\n var defaultTo;\n angular.forEach(this.rows, function(row) {\n if (defaultTo === undefined || row.to > defaultTo) {\n defaultTo = row.to;\n }\n });\n return defaultTo;\n };\n\n return RowsManager;\n }]);\n}());\n","(function() {\n 'use strict';\n angular.module('gantt').factory('GanttTask', [function() {\n var Task = function(row, model) {\n this.rowsManager = row.rowsManager;\n this.row = row;\n this.model = model;\n this.truncatedLeft = false;\n this.truncatedRight = false;\n };\n\n Task.prototype.isMilestone = function() {\n return !this.model.to || this.model.from - this.model.to === 0;\n };\n\n // Updates the pos and size of the task according to the from - to date\n Task.prototype.updatePosAndSize = function() {\n this.modelLeft = this.rowsManager.gantt.getPositionByDate(this.model.from);\n this.modelWidth = this.rowsManager.gantt.getPositionByDate(this.model.to) - this.modelLeft;\n\n this.left = Math.min(Math.max(this.modelLeft, 0), this.rowsManager.gantt.width);\n if (this.modelLeft < 0) {\n this.truncatedLeft = true;\n if (this.modelWidth + this.modelLeft > this.rowsManager.gantt.width) {\n this.truncatedRight = true;\n this.width = this.rowsManager.gantt.width;\n } else {\n this.truncatedRight = false;\n this.width = this.modelWidth + this.modelLeft;\n }\n } else if (this.modelWidth + this.modelLeft > this.rowsManager.gantt.width) {\n this.truncatedRight = true;\n this.truncatedLeft = false;\n this.width = this.rowsManager.gantt.width - this.modelLeft;\n } else {\n this.truncatedLeft = false;\n this.truncatedRight = false;\n this.width = this.modelWidth;\n }\n\n if (this.width < 0) {\n this.left = this.left + this.width;\n this.width = -this.width;\n }\n\n this.updateView();\n };\n\n Task.prototype.updateView = function() {\n if (this.$element) {\n this.$element.css('left', this.left + 'px');\n this.$element.css('width', this.width + 'px');\n\n this.$element.css('background-color', this.model.color);\n this.$element.css('z-index', this.model.priority);\n\n this.$element.toggleClass('gantt-task-milestone', this.isMilestone());\n this.$element.toggleClass('gantt-task', !this.isMilestone());\n this.$element.toggleClass('gantt-task', !this.isMilestone());\n }\n };\n\n // Expands the start of the task to the specified position (in em)\n Task.prototype.setFrom = function(x, magnetEnabled) {\n this.model.from = this.rowsManager.gantt.getDateByPosition(x, magnetEnabled);\n this.row.setFromToByTask(this);\n this.updatePosAndSize();\n };\n\n // Expands the end of the task to the specified position (in em)\n Task.prototype.setTo = function(x, magnetEnabled) {\n this.model.to = this.rowsManager.gantt.getDateByPosition(x, magnetEnabled);\n this.row.setFromToByTask(this);\n this.updatePosAndSize();\n };\n\n // Moves the task to the specified position (in em)\n Task.prototype.moveTo = function(x, magnetEnabled) {\n if (x > this.left) {\n // Driven by right/to side.\n this.model.to = this.rowsManager.gantt.getDateByPosition(x + this.modelWidth, magnetEnabled);\n var newTaskRight = this.rowsManager.gantt.getPositionByDate(this.model.to);\n this.model.from = this.rowsManager.gantt.getDateByPosition(newTaskRight - this.modelWidth, false);\n } else {\n // Drive by left/from side.\n this.model.from = this.rowsManager.gantt.getDateByPosition(x, magnetEnabled);\n var newTaskLeft = this.rowsManager.gantt.getPositionByDate(this.model.from);\n this.model.to = this.rowsManager.gantt.getDateByPosition(newTaskLeft + this.modelWidth, false);\n }\n\n this.row.setFromToByTask(this);\n this.updatePosAndSize();\n };\n\n Task.prototype.clone = function() {\n return new Task(this.row, angular.copy(this.model));\n };\n\n return Task;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttBody', ['GanttBodyColumns', 'GanttBodyRows', 'GanttBodyBackground', 'GanttBodyForeground', function(BodyColumns, BodyRows, BodyBackground, BodyForeground) {\n var Body= function(gantt) {\n this.gantt = gantt;\n\n this.background = new BodyBackground(this);\n this.foreground = new BodyForeground(this);\n this.columns = new BodyColumns(this);\n this.rows = new BodyRows(this);\n };\n Body.prototype.getWidth = function() {\n return this.$element === undefined ? undefined : this.$element[0].offsetWidth;\n };\n return Body;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttBodyBackground', [function() {\n var GanttBodyBackground = function(body) {\n this.body = body;\n };\n return GanttBodyBackground;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttBodyColumns', [function() {\n var BodyColumns = function(body) {\n this.body = body;\n };\n return BodyColumns;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttBodyForeground', [function() {\n var GanttBodyForeground = function(body) {\n this.body = body;\n };\n return GanttBodyForeground;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttBodyRows', [function() {\n var BodyRows = function(body) {\n this.body = body;\n };\n return BodyRows;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttHeader', ['GanttHeaderColumns', function(HeaderColumns) {\n var Header = function(gantt) {\n this.gantt = gantt;\n this.columns = new HeaderColumns(this);\n\n this.getHeight = function() {\n return this.$element[0].offsetHeight;\n };\n };\n return Header;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttHeaderColumns', [function() {\n var HeaderColumns = function($element) {\n this.$element = $element;\n };\n return HeaderColumns;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttScroll', [function() {\n var Scroll = function(gantt) {\n this.gantt = gantt;\n\n this.gantt.api.registerEvent('scroll', 'scroll');\n\n this.gantt.api.registerMethod('scroll', 'to', Scroll.prototype.scrollTo, this);\n this.gantt.api.registerMethod('scroll', 'toDate', Scroll.prototype.scrollToDate, this);\n this.gantt.api.registerMethod('scroll', 'left', Scroll.prototype.scrollToLeft, this);\n this.gantt.api.registerMethod('scroll', 'right', Scroll.prototype.scrollToRight, this);\n\n this.gantt.api.registerMethod('scroll', 'setWidth', Scroll.prototype.setWidth, this);\n };\n\n Scroll.prototype.getScrollLeft = function() {\n return this.$element === undefined ? undefined : this.$element[0].scrollLeft;\n };\n\n Scroll.prototype.getScrollWidth = function() {\n return this.$element === undefined ? undefined : this.$element[0].scrollWidth;\n };\n\n Scroll.prototype.getWidth = function() {\n return this.$element === undefined ? undefined : this.$element[0].offsetWidth;\n };\n\n Scroll.prototype.setWidth = function(width) {\n if (this.$element[0]) {\n this.$element[0].offsetWidth = width;\n }\n };\n\n Scroll.prototype.getBordersWidth = function() {\n return this.$element === undefined ? undefined : (this.$element[0].offsetWidth - this.$element[0].clientWidth);\n };\n\n /**\n * Scroll to a position\n *\n * @param {number} position Position to scroll to.\n */\n Scroll.prototype.scrollTo = function(position) {\n this.$element[0].scrollLeft = position;\n this.$element.triggerHandler('scroll');\n };\n\n /**\n * Scroll to the left side\n *\n * @param {number} offset Offset to scroll.\n */\n Scroll.prototype.scrollToLeft = function(offset) {\n this.$element[0].scrollLeft -= offset;\n this.$element.triggerHandler('scroll');\n };\n\n /**\n * Scroll to the right side\n *\n * @param {number} offset Offset to scroll.\n */\n Scroll.prototype.scrollToRight = function(offset) {\n this.$element[0].scrollLeft += offset;\n this.$element.triggerHandler('scroll');\n };\n\n /**\n * Scroll to a date\n *\n * @param {moment} date moment to scroll to.\n */\n Scroll.prototype.scrollToDate = function(date) {\n var position = this.gantt.getPositionByDate(date);\n\n if (position !== undefined) {\n this.$element[0].scrollLeft = position - this.$element[0].offsetWidth / 2;\n }\n };\n\n return Scroll;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttSide', [function() {\n var Side= function(gantt) {\n this.gantt = gantt;\n\n this.gantt.api.registerMethod('side', 'setWidth', Side.prototype.setWidth, this);\n };\n Side.prototype.getWidth = function() {\n // If height is 0, returns a 0 width. (Case when no labels plugin is enabled).\n return this.$element === undefined ? undefined : (this.$element[0].offsetHeight === 0 ? 0 : this.$element[0].offsetWidth);\n };\n Side.prototype.setWidth = function(width) {\n if (this.$element !== undefined) {\n this.$element[0].offsetWidth = width;\n }\n };\n return Side;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttTimespan', [function() {\n var Timespan = function(gantt, model) {\n this.gantt = gantt;\n this.model = model;\n };\n\n // Updates the pos and size of the timespan according to the from - to date\n Timespan.prototype.updatePosAndSize = function() {\n this.left = this.gantt.getPositionByDate(this.model.from);\n this.width = this.gantt.getPositionByDate(this.model.to) - this.left;\n this.updateView();\n };\n\n Timespan.prototype.updateView = function() {\n if (this.$element) {\n this.$element.css('left', this.left + 'px');\n this.$element.css('width', this.width + 'px');\n }\n };\n\n // Expands the start of the timespan to the specified position (in em)\n Timespan.prototype.setFrom = function(x) {\n this.from = this.gantt.getDateByPosition(x);\n this.updatePosAndSize();\n };\n\n // Expands the end of the timespan to the specified position (in em)\n Timespan.prototype.setTo = function(x) {\n this.to = this.gantt.getDateByPosition(x);\n this.updatePosAndSize();\n };\n\n // Moves the timespan to the specified position (in em)\n Timespan.prototype.moveTo = function(x) {\n this.from = this.gantt.getDateByPosition(x);\n this.to = this.gantt.getDateByPosition(x + this.width);\n this.updatePosAndSize();\n };\n\n Timespan.prototype.clone = function() {\n return new Timespan(this.gantt, angular.copy(this.model));\n };\n\n return Timespan;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttTimespansManager', ['GanttTimespan', function(Timespan) {\n var GanttTimespansManager = function(gantt) {\n var self = this;\n\n this.gantt = gantt;\n\n this.timespansMap = {};\n this.timespans = [];\n\n this.gantt.$scope.$watchCollection('timespans', function(newValue) {\n self.clearTimespans();\n self.loadTimespans(newValue);\n });\n\n this.gantt.api.registerMethod('timespans', 'load', this.loadTimespans, this);\n this.gantt.api.registerMethod('timespans', 'remove', this.removeTimespans, this);\n this.gantt.api.registerMethod('timespans', 'clear', this.clearTimespans, this);\n\n this.gantt.api.registerEvent('timespans', 'add');\n this.gantt.api.registerEvent('timespans', 'remove');\n this.gantt.api.registerEvent('timespans', 'change');\n };\n\n // Adds or updates timespans\n GanttTimespansManager.prototype.loadTimespans = function(timespans) {\n if (!angular.isArray(timespans)) {\n timespans = timespans !== undefined ? [timespans] : [];\n }\n\n this.gantt.$scope.timespans = timespans;\n for (var i = 0, l = timespans.length; i < l; i++) {\n var timespanModel = timespans[i];\n this.gantt.objectModel.cleanTimespan(timespanModel);\n this.loadTimespan(timespanModel);\n }\n };\n\n // Adds a timespan or merges the timespan if there is already one with the same id\n GanttTimespansManager.prototype.loadTimespan = function(timespanModel) {\n // Copy to new timespan (add) or merge with existing (update)\n var timespan, isUpdate = false;\n\n if (timespanModel.id in this.timespansMap) {\n timespan = this.timespansMap[timespanModel.id];\n timespan.model = timespanModel;\n isUpdate = true;\n this.gantt.api.timespans.raise.change(timespan);\n } else {\n timespan = new Timespan(this.gantt, timespanModel);\n this.timespansMap[timespanModel.id] = timespan;\n this.timespans.push(timespan);\n this.gantt.api.timespans.raise.add(timespan);\n }\n\n timespan.updatePosAndSize();\n return isUpdate;\n };\n\n GanttTimespansManager.prototype.removeTimespans = function(timespans) {\n if (!angular.isArray(timespans)) {\n timespans = [timespans];\n }\n\n for (var i = 0, l = timespans.length; i < l; i++) {\n var timespanData = timespans[i];\n // Delete the timespan\n this.removeTimespan(timespanData.id);\n }\n this.updateVisibleObjects();\n };\n\n GanttTimespansManager.prototype.removeTimespan = function(timespanId) {\n if (timespanId in this.timespansMap) {\n delete this.timespansMap[timespanId]; // Remove from map\n\n var removedTimespan;\n var timespan;\n for (var i = this.timespans.length - 1; i >= 0; i--) {\n timespan = this.timespans[i];\n if (timespan.model.id === timespanId) {\n removedTimespan = timespan;\n this.timespans.splice(i, 1); // Remove from array\n break;\n }\n }\n\n this.gantt.api.timespans.raise.remove(removedTimespan);\n return removedTimespan;\n }\n\n return undefined;\n };\n\n // Removes all timespans\n GanttTimespansManager.prototype.clearTimespans = function() {\n this.timespansMap = {};\n this.timespans = [];\n };\n\n GanttTimespansManager.prototype.updateTimespansPosAndSize = function() {\n for (var i = 0, l = this.timespans.length; i < l; i++) {\n this.timespans[i].updatePosAndSize();\n }\n };\n\n return GanttTimespansManager;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').service('ganttArrays', [function() {\n return {\n moveToIndex: function(array, oldIndex, newIndex) {\n if (newIndex >= array.length) {\n var k = newIndex - array.length;\n while ((k--) + 1) {\n array.push(undefined);\n }\n }\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\n return array;\n },\n getRemovedIds: function(newArray, oldArray, idProperty) {\n if (idProperty === undefined) {\n idProperty = 'id';\n }\n\n var i, l;\n var removedIds = [];\n\n if (oldArray !== undefined) {\n for (i = 0, l = oldArray.length; i < l; i++) {\n removedIds.push(oldArray[i][idProperty]);\n }\n }\n\n if (newArray !== undefined) {\n for (i = 0, l = newArray.length; i < l; i++) {\n var newObject = newArray[i];\n\n if (newObject[idProperty] !== undefined) {\n var newObjectIndex = removedIds.indexOf(newObject[idProperty]);\n if (newObjectIndex > -1) {\n removedIds.splice(newObjectIndex, 1);\n }\n }\n }\n }\n\n return removedIds;\n },\n indexOfId: function(array, value, idProperties) {\n var i;\n if (idProperties === undefined) {\n idProperties = 'id';\n } else if (idProperties instanceof Array) {\n for (i = array.length - 1; i >= 0; i--) {\n var arrayValue = array[i];\n for (var k = 0, l = idProperties.length; k < l; k++) {\n arrayValue = arrayValue[idProperties[k]];\n }\n if (arrayValue === value) {\n return i;\n }\n }\n return -1;\n }\n for (i = array.length - 1; i >= 0; i--) {\n if (array[i][idProperties] === value) {\n return i;\n }\n }\n return -1;\n },\n removeId: function(array, value, idProperties) {\n var indexOf = this.indexOfId(array, value, idProperties);\n if (indexOf > -1) {\n return array.splice(indexOf, 1)[0];\n }\n },\n remove: function(array, value) {\n var index = array.indexOf(value);\n if (index > -1) {\n array.splice(index, 1);\n return true;\n }\n return false;\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').service('ganttBinarySearch', [ function() {\n // Returns the object on the left and right in an array using the given cmp function.\n // The compare function defined which property of the value to compare (e.g.: c => c.left)\n\n return {\n getIndicesOnly: function(input, value, comparer, strict) {\n var lo = -1, hi = input.length;\n while (hi - lo > 1) {\n var mid = Math.floor((lo + hi) / 2);\n if (strict ? comparer(input[mid]) < value : comparer(input[mid]) <= value) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n if (!strict && input[lo] !== undefined && comparer(input[lo]) === value) {\n hi = lo;\n }\n return [lo, hi];\n },\n get: function(input, value, comparer, strict) {\n var res = this.getIndicesOnly(input, value, comparer, strict);\n return [input[res[0]], input[res[1]]];\n }\n };\n }]);\n}());\n","(function() {\n 'use strict';\n angular.module('gantt').service('ganttUtils', ['$document', function($document) {\n return {\n createBoundedWrapper: function(object, method) {\n return function() {\n return method.apply(object, arguments);\n };\n },\n firstProperty: function(objects, propertyName, defaultValue) {\n for (var i = 0, l = objects.length; i < l; i++) {\n var object = objects[i];\n if (object !== undefined && propertyName in object) {\n if (object[propertyName] !== undefined) {\n return object[propertyName];\n }\n }\n }\n return defaultValue;\n },\n elementFromPoint: function(x, y) {\n return $document[0].elementFromPoint(x, y);\n },\n elementsFromPoint: function(x, y, depth) {\n var elements = [], previousPointerEvents = [], cDepth = 0, current, i, l, d;\n\n // get all elements via elementFromPoint, and remove them from hit-testing in order\n while ((current = this.elementFromPoint(x, y)) && elements.indexOf(current) === -1 && current !== null &&\n (depth === undefined || cDepth < depth)) {\n\n // push the element and its current style\n elements.push(current);\n previousPointerEvents.push({\n value: current.style.getPropertyValue('pointer-events'),\n priority: current.style.getPropertyPriority('pointer-events')\n });\n\n // add \"pointer-events: none\", to get to the underlying element\n current.style.setProperty('pointer-events', 'none', 'important');\n\n cDepth++;\n }\n\n // restore the previous pointer-events values\n for (i = 0, l = previousPointerEvents.length; i < l; i++) {\n d = previousPointerEvents[i];\n elements[i].style.setProperty('pointer-events', d.value ? d.value : '', d.priority);\n }\n\n return elements;\n },\n findElementFromPoint: function(x, y, checkFunction) {\n var elements = [], previousPointerEvents = [], cDepth = 0, current, found, i, l, d;\n\n // get all elements via elementFromPoint, and remove them from hit-testing in order\n while ((current = this.elementFromPoint(x, y)) && elements.indexOf(current) === -1 && current !== null) {\n\n // push the element and its current style\n elements.push(current);\n previousPointerEvents.push({\n value: current.style.getPropertyValue('pointer-events'),\n priority: current.style.getPropertyPriority('pointer-events')\n });\n\n // add \"pointer-events: none\", to get to the underlying element\n current.style.setProperty('pointer-events', 'none', 'important');\n\n cDepth++;\n\n if (checkFunction(current)) {\n found = current;\n break;\n }\n }\n\n // restore the previous pointer-events values\n for (i = 0, l = previousPointerEvents.length; i < l; i++) {\n d = previousPointerEvents[i];\n elements[i].style.setProperty('pointer-events', d.value ? d.value : '', d.priority);\n }\n\n return found;\n },\n random4: function() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n },\n randomUuid: function() {\n return this.random4() + this.random4() + '-' + this.random4() + '-' + this.random4() + '-' +\n this.random4() + '-' + this.random4() + this.random4() + this.random4();\n },\n newId: (function() {\n var seedId = new Date().getTime();\n return function() {\n return seedId += 1;\n };\n })()\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').filter('ganttColumnLimit', [ 'ganttBinarySearch', function(bs) {\n // Returns only the columns which are visible on the screen\n var leftComparator = function(c) {\n return c.left;\n };\n\n return function(input, gantt) {\n var scrollLeft = gantt.scroll.getScrollLeft();\n var scrollContainerWidth = gantt.scroll.getWidth();\n\n if (scrollContainerWidth > 0) {\n var start = bs.getIndicesOnly(input, scrollLeft, leftComparator)[0];\n var end = bs.getIndicesOnly(input, scrollLeft + scrollContainerWidth, leftComparator)[1];\n return input.slice(start, end);\n } else {\n return input.slice();\n }\n\n\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').filter('ganttTaskLimit', [function() {\n // Returns only the tasks which are visible on the screen\n // Use the task width and position to decide if a task is still visible\n\n return function(input, gantt) {\n var firstColumn = gantt.columnsManager.getFirstColumn();\n var lastColumn = gantt.columnsManager.getLastColumn();\n\n if (firstColumn !== undefined && lastColumn !== undefined) {\n var res = [];\n\n var scrollLeft = gantt.scroll.getScrollLeft();\n var scrollContainerWidth = gantt.scroll.getWidth();\n\n for (var i = 0, l = input.length; i < l; i++) {\n var task = input[i];\n\n if (task.active) {\n res.push(task);\n } else {\n // If task has a visible part on the screen\n if (!scrollContainerWidth ||\n task.left >= scrollLeft && task.left <= scrollLeft + scrollContainerWidth ||\n task.left + task.width >= scrollLeft && task.left + task.width <= scrollLeft + scrollContainerWidth ||\n task.left < scrollLeft && task.left + task.width > scrollLeft + scrollContainerWidth) {\n\n res.push(task);\n }\n }\n }\n\n return res;\n } else {\n return input.splice();\n }\n };\n }]);\n}());\n\n","(function() {\n 'use strict';\n\n angular.module('gantt').directive('ganttResizer', ['$document', 'ganttMouseOffset', function($document, mouseOffset) {\n return {\n restrict: 'A',\n require: '^gantt',\n scope: {\n targetElement: '=ganttResizer',\n enabled: '=?ganttResizerEnabled'\n },\n link: function ($scope, $element, $attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n var eventTopic = $attrs.ganttResizerEventTopic;\n\n if ($scope.enabled === undefined) {\n $scope.enabled = true;\n }\n\n $scope.$watch('enabled', function (value) {\n if (value === undefined) {\n value = true;\n }\n\n $element.toggleClass('gantt-resizer-enabled', value);\n\n if (value) {\n $element.on('mousedown', mousedown);\n } else {\n $element.off('mousedown', mousedown);\n }\n });\n\n function mousedown(event) {\n event.preventDefault();\n\n if (eventTopic !== undefined) {\n api[eventTopic].raise.resizeBegin(getWidth());\n }\n $document.on('mousemove', mousemove);\n $document.on('mouseup', mouseup);\n }\n\n function mousemove(event) {\n var offset = mouseOffset.getOffsetForElement($scope.targetElement[0], event);\n var width = offset.x;\n\n if (width !== undefined) {\n setWidth(width);\n }\n }\n\n function mouseup() {\n if (eventTopic !== undefined) {\n api[eventTopic].raise.resizeEnd(getWidth());\n }\n $document.unbind('mousemove', mousemove);\n $document.unbind('mouseup', mouseup);\n }\n\n function setWidth(width) {\n var oldWidth = getWidth();\n if (oldWidth !== width) {\n $scope.targetElement[0].style.width = width + 'px';\n\n if ($attrs.resizerWidth) {\n $scope.$eval($attrs.resizerWidth + ' = $$xValue', {'$$xValue': width});\n ganttCtrl.gantt.$scope.$digest(); // May not be there as resizer is generic ?\n }\n\n if (eventTopic !== undefined) {\n api[eventTopic].raise.resize(width);\n }\n }\n }\n\n function getWidth() {\n return $scope.targetElement[0].offsetWidth;\n }\n\n if (eventTopic) {\n api.registerEvent(eventTopic, 'resize');\n api.registerEvent(eventTopic, 'resizeBegin');\n api.registerEvent(eventTopic, 'resizeEnd');\n\n api.registerMethod(eventTopic, 'setWidth', setWidth, this);\n api.registerMethod(eventTopic, 'getWidth', getWidth, this);\n }\n }\n };\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttHorizontalScrollReceiver', function() {\n // The element with this attribute will scroll at the same time as the scrollSender element\n\n return {\n restrict: 'A',\n require: '^ganttScrollManager',\n link: function(scope, element, attrs, ganttScrollManagerCtrl) {\n ganttScrollManagerCtrl.registerHorizontalReceiver(element);\n }\n };\n });\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttScrollManager', function() {\n // The element with this attribute will scroll at the same time as the scrollSender element\n\n return {\n restrict: 'A',\n scope: {},\n controller: ['$scope', function($scope) {\n $scope.horizontal = [];\n $scope.vertical = [];\n\n this.registerVerticalReceiver = function (element) {\n element.css('position', 'relative');\n $scope.vertical.push(element[0]);\n };\n\n this.registerHorizontalReceiver = function (element) {\n element.css('position', 'relative');\n $scope.horizontal.push(element[0]);\n };\n\n this.getHorizontalRecievers = function() {\n return $scope.horizontal;\n };\n\n this.getVerticalRecievers = function() {\n return $scope.vertical;\n };\n }]\n };\n });\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttScrollSender', [function() {\n // Updates the element which are registered for the horizontal or vertical scroll event\n\n return {\n restrict: 'A',\n require: ['^gantt', '^ganttScrollManager'],\n link: function(scope, element, attrs, controllers) {\n var el = element[0];\n\n var updateListeners = function() {\n var i, l;\n\n var vertical = controllers[1].getVerticalRecievers();\n for (i = 0, l = vertical.length; i < l; i++) {\n var vElement = vertical[i];\n if (vElement.parentNode.scrollTop !== el.scrollTop) {\n vElement.parentNode.scrollTop = el.scrollTop;\n }\n }\n\n var horizontal = controllers[1].getHorizontalRecievers();\n for (i = 0, l = horizontal.length; i < l; i++) {\n var hElement =horizontal[i];\n if (hElement.parentNode.scrollLeft !== el.scrollLeft) {\n hElement.parentNode.scrollLeft = el.scrollLeft;\n }\n }\n };\n\n element.bind('scroll', updateListeners);\n\n scope.oldBodyWidth = undefined;\n scope.$watch(function() {\n var newWidth = controllers[0].gantt.body.getWidth();\n if (scope.oldBodyWidth !== newWidth) {\n scope.oldBodyWidth = newWidth;\n var horizontal = controllers[1].getHorizontalRecievers();\n for (var i = 0, l = horizontal.length; i < l; i++) {\n var hElement = horizontal[i];\n hElement.style.width = newWidth + 'px';\n }\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttScrollable', ['GanttDirectiveBuilder', 'ganttDebounce', 'ganttLayout', 'moment', function(Builder, debounce, layout, moment) {\n var builder = new Builder('ganttScrollable');\n builder.controller = function($scope, $element) {\n $scope.gantt.scroll.$element = $element;\n\n var lastScrollLeft;\n\n var lastAutoExpand;\n var autoExpandCoolDownPeriod = 500;\n var autoExpandColumns = function(el, date, direction) {\n if ($scope.autoExpand !== 'both' && $scope.autoExpand !== true && $scope.autoExpand !== direction) {\n return;\n }\n\n if (Date.now() - lastAutoExpand < autoExpandCoolDownPeriod) {\n return;\n }\n\n var from, to;\n var expandHour = 1, expandDay = 31;\n\n if (direction === 'left') {\n from = $scope.viewScale === 'hour' ? moment(date).add(-expandHour, 'day') : moment(date).add(-expandDay, 'day');\n to = date;\n } else {\n from = date;\n to = $scope.viewScale === 'hour' ? moment(date).add(expandHour, 'day') : moment(date).add(expandDay, 'day');\n }\n\n $scope.fromDate = from;\n $scope.toDate = to;\n lastAutoExpand = Date.now();\n };\n\n $element.bind('scroll', debounce(function() {\n var el = $element[0];\n var direction;\n var date;\n\n if (el.scrollLeft < lastScrollLeft && el.scrollLeft === 0) {\n direction = 'left';\n date = $scope.gantt.columnsManager.from;\n } else if (el.scrollLeft > lastScrollLeft && el.offsetWidth + el.scrollLeft >= el.scrollWidth - 1) {\n direction = 'right';\n date = $scope.gantt.columnsManager.to;\n }\n\n lastScrollLeft = el.scrollLeft;\n $scope.gantt.columnsManager.updateVisibleColumns();\n $scope.gantt.rowsManager.updateVisibleTasks();\n\n if (date !== undefined) {\n autoExpandColumns(el, date, direction);\n $scope.gantt.api.scroll.raise.scroll(el.scrollLeft, date, direction);\n } else {\n $scope.gantt.api.scroll.raise.scroll(el.scrollLeft);\n }\n }, 5));\n\n $scope.getScrollableCss = function() {\n var css = {};\n\n if ($scope.maxHeight > 0) {\n css['max-height'] = $scope.maxHeight - $scope.gantt.header.getHeight() + 'px';\n css['overflow-y'] = 'auto';\n }\n\n return css;\n };\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttVerticalScrollReceiver', function() {\n // The element with this attribute will scroll at the same time as the scrollSender element\n\n return {\n restrict: 'A',\n require: '^ganttScrollManager',\n link: function(scope, element, attrs, ganttScrollManagerCtrl) {\n ganttScrollManagerCtrl.registerVerticalReceiver(element);\n }\n };\n });\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttElementLeftListener', [function() {\n return {\n restrict: 'A',\n controller: ['$scope', '$element', '$attrs', function($scope, $element, $attrs) {\n var scopeVariable = $attrs.ganttElementLeftListener;\n if (scopeVariable === '') {\n scopeVariable = 'ganttElementLeft';\n }\n\n var effectiveScope = $scope;\n\n while(scopeVariable.indexOf('$parent.') === 0) {\n scopeVariable = scopeVariable.substring('$parent.'.length);\n effectiveScope = effectiveScope.$parent;\n }\n\n effectiveScope.$watch(function() {\n effectiveScope[scopeVariable] = $element[0].left;\n });\n }]\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttElementWidthListener', [function() {\n return {\n restrict: 'A',\n controller: ['$scope', '$element', '$attrs', function($scope, $element, $attrs) {\n var scopeVariable = $attrs.ganttElementWidthListener;\n if (scopeVariable === '') {\n scopeVariable = 'ganttElementWidth';\n }\n\n var effectiveScope = $scope;\n\n while(scopeVariable.indexOf('$parent.') === 0) {\n scopeVariable = scopeVariable.substring('$parent.'.length);\n effectiveScope = effectiveScope.$parent;\n }\n\n effectiveScope.$watch(function() {\n if ($element[0].offsetWidth > 0) {\n effectiveScope[scopeVariable] = $element[0].offsetWidth;\n }\n });\n }]\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttBody', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttBody');\n builder.controller = function($scope, $element) {\n $scope.gantt.body.$element = $element;\n $scope.gantt.body.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttBodyBackground', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttBodyBackground');\n builder.controller = function($scope, $element) {\n $scope.gantt.body.background.$element = $element;\n $scope.gantt.body.background.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttBodyColumns', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttBodyColumns');\n builder.controller = function($scope, $element) {\n $scope.gantt.body.columns.$element = $element;\n $scope.gantt.body.background.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttBodyForeground', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttBodyForeground');\n builder.controller = function($scope, $element) {\n $scope.gantt.body.foreground.$element = $element;\n $scope.gantt.body.foreground.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttBodyRows', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttBodyRows');\n builder.controller = function($scope, $element) {\n $scope.gantt.body.rows.$element = $element;\n $scope.gantt.body.rows.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttColumn', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttColumn');\n builder.controller = function($scope, $element) {\n $scope.column.$element = $element;\n $scope.column.$scope = $scope;\n $scope.column.updateView();\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttColumnHeader', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttColumnHeader');\n builder.controller = function($scope, $element) {\n $scope.column.$element = $element;\n $scope.column.$scope = $scope;\n $scope.column.updateView();\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttHeader', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttHeader');\n builder.controller = function($scope, $element) {\n $scope.gantt.header.$element = $element;\n $scope.gantt.header.$scope = $scope;\n\n $scope.getHeaderCss = function() {\n var css = {};\n\n if ($scope.gantt.width - $scope.gantt.side.getWidth() > $scope.gantt.width) {\n css.width = $scope.gantt.width + 'px';\n }\n\n return css;\n };\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttHeaderColumns', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttHeaderColumns');\n builder.controller = function($scope, $element) {\n $scope.gantt.header.columns.$element = $element;\n $scope.gantt.header.columns.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttRow', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttRow');\n builder.controller = function($scope, $element) {\n $scope.row.$element = $element;\n $scope.row.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttRowBackground', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttRowBackground');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttScrollableHeader', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttScrollableHeader');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttSide', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttSide');\n builder.controller = function($scope, $element) {\n $scope.gantt.side.$element = $element;\n $scope.gantt.side.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttSideContent', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttSideContent');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttTask', ['GanttDirectiveBuilder', 'moment', function(Builder, moment) {\n var builder = new Builder('ganttTask');\n builder.controller = function($scope, $element) {\n $scope.task.$element = $element;\n $scope.task.$scope = $scope;\n\n $scope.simplifyMoment = function(d) {\n return moment.isMoment(d) ? d.unix() : d;\n };\n\n $scope.$watchGroup(['simplifyMoment(task.model.from)', 'simplifyMoment(task.model.to)'], function() {\n $scope.task.updatePosAndSize();\n });\n };\n return builder.build();\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttTaskContent', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttTaskContent');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttTimeFrame', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttTimeFrame');\n builder.controller = function($scope, $element) {\n $scope.timeFrame.$element = $element;\n $scope.timeFrame.$scope = $scope;\n $scope.timeFrame.updateView();\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttTimespan', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttTimespan');\n builder.controller = function($scope, $element) {\n $scope.timespan.$element = $element;\n $scope.timespan.$scope = $scope;\n $scope.timespan.updateView();\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('ganttDebounce', ['$timeout', function($timeout) {\n function debounce(fn, timeout, invokeApply) {\n var nthCall = 0;\n return function() {\n var self = this;\n var argz = arguments;\n nthCall++;\n var later = (function(version) {\n return function() {\n if (version === nthCall) {\n return fn.apply(self, argz);\n }\n };\n })(nthCall);\n return $timeout(later, timeout, invokeApply === undefined ? true: invokeApply);\n };\n }\n\n return debounce;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').service('GanttDirectiveBuilder', [function() {\n var DirectiveBuilder = function DirectiveBuilder(directiveName, templateUrl, require, restrict) {\n var self = this;\n\n this.directiveName = directiveName;\n this.templateUrl = templateUrl === undefined ? 'template/' + directiveName + '.tmpl.html' : templateUrl;\n this.require = require === undefined ? '^gantt' : require;\n this.restrict = restrict === undefined ? 'E' : restrict;\n this.scope = false;\n this.transclude = true;\n this.replace = true;\n\n this.build = function() {\n var directiveName = self.directiveName;\n var templateUrl = self.templateUrl;\n var controllerFunction = self.controller;\n\n return {\n restrict: self.restrict,\n require: self.require,\n transclude: self.transclude,\n replace: self.replace,\n scope: self.scope,\n templateUrl: function(tElement, tAttrs) {\n if (tAttrs.templateUrl === undefined) {\n return templateUrl;\n } else {\n return tAttrs.templateUrl;\n }\n },\n compile: function () {\n return {\n pre: function preLink(scope, iElement, iAttrs, controller) {\n scope.gantt.api.directives.raise.preLink(directiveName, scope, iElement, iAttrs, controller);\n },\n post: function postLink(scope, iElement, iAttrs, controller) {\n scope.gantt.api.directives.raise.postLink(directiveName, scope, iElement, iAttrs, controller);\n }\n };\n },\n controller: ['$scope', '$element', '$attrs', function($scope, $element, $attrs) {\n var controller = this;\n\n if (controllerFunction !== undefined) {\n controllerFunction($scope, $element, $attrs, controller);\n }\n\n $scope.gantt.api.directives.raise.new(directiveName, $scope, $element, $attrs, controller);\n $scope.$on('$destroy', function() {\n $scope.gantt.api.directives.raise.destroy(directiveName, $scope, $element, $attrs, controller);\n });\n }]\n };\n };\n };\n\n return DirectiveBuilder;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').service('ganttEnableNgAnimate', ['$injector', function($injector) {\n var ngAnimate;\n try {\n ngAnimate = $injector.get('$animate');\n } catch (e) {\n }\n\n if (ngAnimate !== undefined) {\n return function(enabled, element) {\n ngAnimate.enabled(false, element);\n };\n } else {\n return function() {};\n }\n\n\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').service('ganttLayout', [function() {\n return {\n /**\n * Compute the width of scrollbar.\n *\n * @returns {number} width of the scrollbar, in px.\n */\n setColumnsWidth: function(width, originalWidth, columns) {\n if (width && originalWidth && columns) {\n\n var widthFactor = Math.abs(width / originalWidth);\n\n angular.forEach(columns, function(column) {\n column.left = widthFactor * column.originalSize.left;\n column.width = widthFactor * column.originalSize.width;\n\n angular.forEach(column.timeFrames, function(timeFrame) {\n timeFrame.left = widthFactor * timeFrame.originalSize.left;\n timeFrame.width = widthFactor * timeFrame.originalSize.width;\n });\n });\n }\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').service('ganttMouseButton', [ function() {\n // Mouse button cross browser normalization\n\n return {\n getButton: function(e) {\n e = e || window.event;\n\n if (!e.which) {\n if (e.button === undefined) {\n return 1;\n }\n return e.button < 2 ? 1 : e.button === 4 ? 2 : 3;\n } else {\n return e.which;\n }\n }\n };\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').service('ganttMouseOffset', [ function() {\n // Mouse offset support for lesser browsers (read IE 8)\n\n return {\n getTouch: function(evt) {\n if (evt.touches !== undefined) {\n return evt.touches[0];\n }\n return evt;\n },\n getOffset: function(evt) {\n if (evt.offsetX && evt.offsetY) {\n return { x: evt.offsetX, y: evt.offsetY };\n }\n if (evt.layerX && evt.layerY) {\n return { x: evt.layerX, y: evt.layerY };\n }\n return this.getOffsetForElement(evt.target, evt);\n },\n getOffsetForElement: function(el, evt) {\n var bb = el.getBoundingClientRect();\n return { x: evt.clientX - bb.left, y: evt.clientY - bb.top };\n }\n };\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('ganttSmartEvent', [function() {\n // Auto released the binding when the scope is destroyed. Use if an event is registered on another element than the scope.\n\n function smartEvent($scope, $element, event, fn) {\n $scope.$on('$destroy', function() {\n $element.unbind(event, fn);\n });\n\n return {\n bindOnce: function() {\n $element.one(event, fn);\n },\n bind: function() {\n $element.bind(event, fn);\n },\n unbind: function() {\n $element.unbind(event, fn);\n }\n };\n }\n\n return smartEvent;\n }]);\n}());\n","angular.module('gantt.templates', []).run(['$templateCache', function($templateCache) {\n $templateCache.put('template/gantt.tmpl.html',\n '
\\n' +\n ' \\n' +\n ' \\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n ' \\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n ' \\n' +\n ' \\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n ' \\n' +\n ' \\n' +\n ' \\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n '
\\n' +\n '');\n}]);\n"]} \ No newline at end of file +{"version":3,"sources":["../src/core/gantt.directive.js","../src/core/logic/api/api.factory.js","../src/core/logic/api/options.factory.js","../src/core/logic/calendar/calendar.factory.js","../src/core/logic/calendar/currentDateManager.factory.js","../src/core/logic/column/column.factory.js","../src/core/logic/column/columnGenerator.factory.js","../src/core/logic/column/columnHeader.factory.js","../src/core/logic/column/columnsManager.factory.js","../src/core/logic/column/headerGenerator.factory.js","../src/core/logic/gantt.factory.js","../src/core/logic/model/objectModel.factory.js","../src/core/logic/row/row.factory.js","../src/core/logic/row/rowHeader.factory.js","../src/core/logic/row/rowsManager.factory.js","../src/core/logic/task/task.factory.js","../src/core/logic/template/body.factory.js","../src/core/logic/template/bodyBackground.factory.js","../src/core/logic/template/bodyColumns.factory.js","../src/core/logic/template/bodyForeground.factory.js","../src/core/logic/template/bodyRows.factory.js","../src/core/logic/template/header.factory.js","../src/core/logic/template/headerColumns.factory.js","../src/core/logic/template/scroll.factory.js","../src/core/logic/template/side.factory.js","../src/core/logic/timespan/timespan.factory.js","../src/core/logic/timespan/timespansManager.factory.js","../src/core/logic/util/arrays.service.js","../src/core/logic/util/binarySearch.service.js","../src/core/logic/util/utils.service.js","../src/core/ui/limit/columnLimit.filter.js","../src/core/ui/limit/taskLimit.filter.js","../src/core/ui/resizer/resizer.directive.js","../src/core/ui/scroll/horizontalScrollReceiver.directive.js","../src/core/ui/scroll/scrollManager.directive.js","../src/core/ui/scroll/scrollSender.directive.js","../src/core/ui/scroll/scrollable.directive.js","../src/core/ui/scroll/verticalScrollReceiver.directive.js","../src/core/ui/size/elementLeftListener.directive.js","../src/core/ui/size/elementWidthListener.directive.js","../src/core/ui/template/body.directive.js","../src/core/ui/template/bodyBackground.directive.js","../src/core/ui/template/bodyColumns.directive.js","../src/core/ui/template/bodyForeground.directive.js","../src/core/ui/template/bodyRows.directive.js","../src/core/ui/template/column.directive.js","../src/core/ui/template/columnHeader.directive.js","../src/core/ui/template/header.directive.js","../src/core/ui/template/headerColumns.directive.js","../src/core/ui/template/row.directive.js","../src/core/ui/template/rowBackground.directive.js","../src/core/ui/template/scrollableHeader.directive.js","../src/core/ui/template/side.directive.js","../src/core/ui/template/sideContent.directive.js","../src/core/ui/template/task.directive.js","../src/core/ui/template/taskContent.directive.js","../src/core/ui/template/timeFrame.directive.js","../src/core/ui/template/timespan.directive.js","../src/core/ui/util/debounce.factory.js","../src/core/ui/util/directiveBuilder.service.js","../src/core/ui/util/enableNgAnimate.service.js","../src/core/ui/util/layout.service.js","../src/core/ui/util/mouseButton.service.js","../src/core/ui/util/mouseOffset.service.js","../src/core/ui/util/smartEvent.factory.js","../.tmp/generated/core/html2js.js"],"names":[],"mappings":"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","file":"angular-gantt.js","sourcesContent":["(function(){\n 'use strict';\n angular.module('gantt', ['gantt.templates', 'angularMoment'])\n .directive('gantt', ['Gantt', 'ganttOptions', 'GanttCalendar', 'moment', 'ganttMouseOffset', 'ganttDebounce', 'ganttEnableNgAnimate', '$timeout', '$templateCache', function(Gantt, Options, Calendar, moment, mouseOffset, debounce, enableNgAnimate, $timeout, $templateCache) {\n return {\n restrict: 'A',\n transclude: true,\n templateUrl: function(tElement, tAttrs) {\n var templateUrl;\n if (tAttrs.templateUrl === undefined) {\n templateUrl = 'template/gantt.tmpl.html';\n } else {\n templateUrl = tAttrs.templateUrl;\n }\n if (tAttrs.template !== undefined) {\n $templateCache.put(templateUrl, tAttrs.template);\n }\n return templateUrl;\n },\n scope: {\n sortMode: '=?', // Possible modes: 'name', 'date', 'custom'\n filterTask: '=?', // Task filter as a angularJS expression\n filterTaskComparator: '=?', // Comparator to use for the task filter\n filterRow: '=?', // Row filter as a angularJS expression\n filterRowComparator: '=?', // Comparator to use for the row filter\n viewScale: '=?', // Possible scales: 'hour', 'day', 'week', 'month'\n columnWidth: '=?', // Defines the size of a column, 1 being 1em per unit (hour or day, .. depending on scale),\n allowSideResizing: '=?', // Set to true if the user should be able to resize the side section.\n fromDate: '=?', // If not specified will use the earliest task date (note: as of now this can only expand not shrink)\n toDate: '=?', // If not specified will use the latest task date (note: as of now this can only expand not shrink)\n currentDateValue: '=?', // If specified, the current date will be displayed\n currentDate: '=?', // The display of currentDate ('none', 'line' or 'column').\n autoExpand: '=?', // Set this both, left or right if the date range shall expand if the user scroll to the left or right end. Otherwise set to false or none.\n taskOutOfRange: '=?', // Set this to expand or truncate to define the behavior of tasks going out of visible range.\n maxHeight: '=?', // Define the maximum height of the Gantt in PX. > 0 to activate max height behaviour.\n headers: '=?', // An array of units for headers.\n headersFormats: '=?', // An array of corresponding formats for headers.\n timeFrames: '=?',\n dateFrames: '=?',\n timeFramesWorkingMode: '=?',\n timeFramesNonWorkingMode: '=?',\n timespans: '=?',\n columnMagnet: '=?',\n shiftColumnMagnet: '=?',\n data: '=?',\n api: '=?',\n options: '=?'\n },\n controller: ['$scope', '$element', function($scope, $element) {\n for (var option in $scope.options) {\n $scope[option] = $scope.options[option];\n }\n\n Options.initialize($scope);\n\n // Disable animation if ngAnimate is present, as it drops down performance.\n enableNgAnimate(false, $element);\n\n $scope.gantt = new Gantt($scope, $element);\n this.gantt = $scope.gantt;\n }],\n link: function(scope, element) {\n scope.gantt.api.directives.raise.new('gantt', scope, element);\n scope.$on('$destroy', function() {\n scope.gantt.api.directives.raise.destroy('gantt', scope, element);\n });\n\n $timeout(function() {\n // Gantt is initialized. Signal that the Gantt is ready.\n scope.gantt.api.core.raise.ready(scope.gantt.api);\n\n scope.gantt.rendered = true;\n scope.gantt.columnsManager.generateColumns();\n scope.gantt.api.core.raise.rendered(scope.gantt.api);\n });\n }\n };\n }]);\n}());\n\n","// This file is adapted from Angular UI ngGrid project\n// MIT License\n// https://github.com/angular-ui/ng-grid/blob/v3.0.0-rc.12/src/js/core/factories/GridApi.js\n(function() {\n 'use strict';\n angular.module('gantt')\n .factory('GanttApi', ['$q', '$rootScope', 'ganttUtils',\n function($q, $rootScope, utils) {\n /**\n * @ngdoc function\n * @name gantt.class:GanttApi\n * @description GanttApi provides the ability to register public methods events inside the gantt and allow\n * for other components to use the api via featureName.methodName and featureName.on.eventName(function(args){}\n * @param {object} gantt gantt that owns api\n */\n var GanttApi = function GanttApi(gantt) {\n this.gantt = gantt;\n this.listeners = [];\n this.apiId = utils.newId();\n };\n\n /**\n * @ngdoc function\n * @name gantt.class:suppressEvents\n * @methodOf gantt.class:GanttApi\n * @description Used to execute a function while disabling the specified event listeners.\n * Disables the listenerFunctions, executes the callbackFn, and then enables\n * the listenerFunctions again\n * @param {object} listenerFuncs listenerFunc or array of listenerFuncs to suppress. These must be the same\n * functions that were used in the .on.eventName method\n * @param {object} callBackFn function to execute\n * @example\n *
\n                 *    var navigate = function (newRowCol, oldRowCol){\n                 *       //do something on navigate\n                 *    }\n                 *\n                 *    ganttApi.cellNav.on.navigate(scope,navigate);\n                 *\n                 *\n                 *    //call the scrollTo event and suppress our navigate listener\n                 *    //scrollTo will still raise the event for other listeners\n                 *    ganttApi.suppressEvents(navigate, function(){\n                 *       ganttApi.cellNav.scrollTo(aRow, aCol);\n                 *    });\n                 *\n                 * 
\n */\n GanttApi.prototype.suppressEvents = function(listenerFuncs, callBackFn) {\n var self = this;\n var listeners = angular.isArray(listenerFuncs) ? listenerFuncs : [listenerFuncs];\n\n //find all registered listeners\n var foundListeners = [];\n listeners.forEach(function(l) {\n foundListeners = self.listeners.filter(function(lstnr) {\n return l === lstnr.handler;\n });\n });\n\n //deregister all the listeners\n foundListeners.forEach(function(l) {\n l.dereg();\n });\n\n callBackFn();\n\n //reregister all the listeners\n foundListeners.forEach(function(l) {\n l.dereg = registerEventWithAngular(l.scope, l.eventId, l.handler, self.gantt);\n });\n\n };\n\n /**\n * @ngdoc function\n * @name registerEvent\n * @methodOf gantt.class:GanttApi\n * @description Registers a new event for the given feature\n * @param {string} featureName name of the feature that raises the event\n * @param {string} eventName name of the event\n */\n GanttApi.prototype.registerEvent = function(featureName, eventName) {\n var self = this;\n if (!self[featureName]) {\n self[featureName] = {};\n }\n\n var feature = self[featureName];\n if (!feature.on) {\n feature.on = {};\n feature.raise = {};\n }\n\n var eventId = 'event:gantt:' + this.apiId + ':' + featureName + ':' + eventName;\n\n feature.raise[eventName] = function() {\n $rootScope.$broadcast.apply($rootScope, [eventId].concat(Array.prototype.slice.call(arguments)));\n };\n\n feature.on[eventName] = function(scope, handler) {\n var dereg = registerEventWithAngular(scope, eventId, handler, self.gantt);\n\n //track our listener so we can turn off and on\n var listener = {handler: handler, dereg: dereg, eventId: eventId, scope: scope};\n self.listeners.push(listener);\n\n //destroy tracking when scope is destroyed\n //wanted to remove the listener from the array but angular does\n //strange things in scope.$destroy so I could not access the listener array\n scope.$on('$destroy', function() {\n listener.dereg = null;\n listener.handler = null;\n listener.eventId = null;\n listener.scope = null;\n });\n };\n };\n\n function registerEventWithAngular(scope, eventId, handler, gantt) {\n return scope.$on(eventId, function() {\n var args = Array.prototype.slice.call(arguments);\n args.splice(0, 1); //remove evt argument\n handler.apply(gantt.api, args);\n });\n }\n\n /**\n * @ngdoc function\n * @name registerEventsFromObject\n * @methodOf gantt.class:GanttApi\n * @description Registers features and events from a simple objectMap.\n * eventObjectMap must be in this format (multiple features allowed)\n *
\n                 * {featureName:\n                 *        {\n                 *          eventNameOne:function(args){},\n                 *          eventNameTwo:function(args){}\n                 *        }\n                 *  }\n                 * 
\n * @param {object} eventObjectMap map of feature/event names\n */\n GanttApi.prototype.registerEventsFromObject = function(eventObjectMap) {\n var self = this;\n var features = [];\n angular.forEach(eventObjectMap, function(featProp, featPropName) {\n var feature = {name: featPropName, events: []};\n angular.forEach(featProp, function(prop, propName) {\n feature.events.push(propName);\n });\n features.push(feature);\n });\n\n features.forEach(function(feature) {\n feature.events.forEach(function(event) {\n self.registerEvent(feature.name, event);\n });\n });\n\n };\n\n /**\n * @ngdoc function\n * @name registerMethod\n * @methodOf gantt.class:GanttApi\n * @description Registers a new event for the given feature\n * @param {string} featureName name of the feature\n * @param {string} methodName name of the method\n * @param {object} callBackFn function to execute\n * @param {object} thisArg binds callBackFn 'this' to thisArg. Defaults to ganttApi.gantt\n */\n GanttApi.prototype.registerMethod = function(featureName, methodName, callBackFn, thisArg) {\n if (!this[featureName]) {\n this[featureName] = {};\n }\n\n var feature = this[featureName];\n\n feature[methodName] = utils.createBoundedWrapper(thisArg || this.gantt, callBackFn);\n };\n\n /**\n * @ngdoc function\n * @name registerMethodsFromObject\n * @methodOf gantt.class:GanttApi\n * @description Registers features and methods from a simple objectMap.\n * eventObjectMap must be in this format (multiple features allowed)\n *
\n * {featureName:\n * {\n * methodNameOne:function(args){},\n * methodNameTwo:function(args){}\n * }\n * @param {object} eventObjectMap map of feature/event names\n * @param {object} thisArg binds this to thisArg for all functions. Defaults to GanttApi.gantt\n */\n GanttApi.prototype.registerMethodsFromObject = function(methodMap, thisArg) {\n var self = this;\n var features = [];\n angular.forEach(methodMap, function(featProp, featPropName) {\n var feature = {name: featPropName, methods: []};\n angular.forEach(featProp, function(prop, propName) {\n feature.methods.push({name: propName, fn: prop});\n });\n features.push(feature);\n });\n\n features.forEach(function(feature) {\n feature.methods.forEach(function(method) {\n self.registerMethod(feature.name, method.name, method.fn, thisArg);\n });\n });\n\n };\n\n return GanttApi;\n\n }]);\n\n})();\n","(function(){\n 'use strict';\n angular.module('gantt').factory('ganttOptions', ['moment', function(moment) {\n return {initialize: function(options) {\n options.api = options.api || angular.noop();\n\n options.data = options.data || [];\n\n options.timespans = options.timespans || [];\n\n options.sortMode = options.sortMode || undefined;\n\n options.filterTask = options.filterTask || undefined;\n options.filterTaskComparator = options.filterTaskComparator || undefined;\n\n options.filterRow = options.filterRow || undefined;\n options.filterRowComparator = options.filterRowComparator || undefined;\n\n options.viewScale = options.viewScale || 'day';\n options.columnMagnet = options.columnMagnet || '15 minutes';\n options.columnWidth = options.columnWidth || undefined;\n\n options.fromDate = options.fromDate || undefined;\n options.toDate = options.toDate || undefined;\n\n options.allowSideResizing = options.allowSideResizing !== undefined ? !!options.allowSideResizing : true;\n\n options.currentDate = options.currentDate || 'line';\n options.currentDateValue = options.currentDateValue || moment();\n\n options.autoExpand = options.autoExpand || 'none';\n options.taskOutOfRange = options.taskOutOfRange || 'truncate';\n\n options.maxHeight = options.maxHeight || 0;\n\n options.headers = options.headers || undefined;\n options.headersFormats = options.headersFormats || undefined;\n\n options.timeFrames = options.timeFrames || [];\n options.dateFrames = options.dateFrames || [];\n\n options.timeFramesWorkingMode = options.timeFramesWorkingMode || 'hidden';\n options.timeFramesNonWorkingMode = options.timeFramesNonWorkingMode || 'visible';\n\n return options;\n }\n };\n }]);\n}());\n","(function(){\n 'use strict';\n /**\n * Calendar factory is used to define working periods, non working periods, and other specific period of time,\n * and retrieve effective timeFrames for each day of the gantt.\n */\n angular.module('gantt').factory('GanttCalendar', ['$filter', 'moment', function($filter, moment) {\n /**\n * TimeFrame represents time frame in any day. parameters are given using options object.\n *\n * @param {moment|string} start start of timeFrame. If a string is given, it will be parsed as a moment.\n * @param {moment|string} end end of timeFrame. If a string is given, it will be parsed as a moment.\n * @param {boolean} working is this timeFrame flagged as working.\n * @param {boolean} default is this timeFrame will be used as default.\n * @param {color} css color attached to this timeFrame.\n * @param {string} classes css classes attached to this timeFrame.\n *\n * @constructor\n */\n var TimeFrame = function(options) {\n if (options === undefined) {\n options = {};\n }\n\n this.start = options.start;\n this.end = options.end;\n this.working = options.working;\n this.default = options.default;\n this.color = options.color;\n this.classes = options.classes;\n };\n\n TimeFrame.prototype.updateView = function() {\n if (this.$element) {\n if (this.left !== undefined) {\n this.$element.css('left', this.left + 'px');\n } else {\n this.$element.css('left', '');\n }\n if (this.width !== undefined) {\n this.$element.css('width', this.width + 'px');\n } else {\n this.$element.css('width', '');\n }\n\n if (this.color !== undefined) {\n this.$element.css('background-color', this.color);\n } else {\n this.$element.css('background-color', '');\n }\n\n var classes = ['gantt-timeframe' + (this.working ? '' : '-non') + '-working'];\n if (this.classes) {\n classes = classes.concat(this.classes);\n }\n for (var i= 0, l=classes.length; i= this.start && date <= this.end;\n } else {\n return false;\n }\n };\n\n DateFrame.prototype.clone = function() {\n return new DateFrame(this);\n };\n\n\n\n /**\n * Register TimeFrame, TimeFrameMapping and DateMapping objects into Calendar object,\n * and use Calendar#getTimeFrames(date) function to retrieve effective timeFrames for a specific day.\n *\n * @constructor\n */\n var Calendar = function() {\n this.timeFrames = {};\n this.timeFrameMappings = {};\n this.dateFrames = {};\n };\n\n /**\n * Remove all objects.\n */\n Calendar.prototype.clear = function() {\n this.timeFrames = {};\n this.timeFrameMappings = {};\n this.dateFrames = {};\n };\n\n /**\n * Register TimeFrame objects.\n *\n * @param {object} timeFrames with names of timeFrames for keys and TimeFrame objects for values.\n */\n Calendar.prototype.registerTimeFrames = function(timeFrames) {\n angular.forEach(timeFrames, function(timeFrame, name) {\n this.timeFrames[name] = new TimeFrame(timeFrame);\n }, this);\n };\n\n /**\n * Removes TimeFrame objects.\n *\n * @param {array} timeFrames names of timeFrames to remove.\n */\n Calendar.prototype.removeTimeFrames = function(timeFrames) {\n angular.forEach(timeFrames, function(name) {\n delete this.timeFrames[name];\n }, this);\n };\n\n /**\n * Remove all TimeFrame objects.\n */\n Calendar.prototype.clearTimeFrames = function() {\n this.timeFrames = {};\n };\n\n /**\n * Register TimeFrameMapping objects.\n *\n * @param {object} mappings object with names of timeFrames mappings for keys and TimeFrameMapping objects for values.\n */\n Calendar.prototype.registerTimeFrameMappings = function(mappings) {\n angular.forEach(mappings, function(timeFrameMapping, name) {\n this.timeFrameMappings[name] = new TimeFrameMapping(timeFrameMapping);\n }, this);\n };\n\n /**\n * Removes TimeFrameMapping objects.\n *\n * @param {array} mappings names of timeFrame mappings to remove.\n */\n Calendar.prototype.removeTimeFrameMappings = function(mappings) {\n angular.forEach(mappings, function(name) {\n delete this.timeFrameMappings[name];\n }, this);\n };\n\n /**\n * Removes all TimeFrameMapping objects.\n */\n Calendar.prototype.clearTimeFrameMappings = function() {\n this.timeFrameMappings = {};\n };\n\n /**\n * Register DateFrame objects.\n *\n * @param {object} dateFrames object with names of dateFrames for keys and DateFrame objects for values.\n */\n Calendar.prototype.registerDateFrames = function(dateFrames) {\n angular.forEach(dateFrames, function(dateFrame, name) {\n this.dateFrames[name] = new DateFrame(dateFrame);\n }, this);\n };\n\n /**\n * Remove DateFrame objects.\n *\n * @param {array} mappings names of date frames to remove.\n */\n Calendar.prototype.removeDateFrames = function(dateFrames) {\n angular.forEach(dateFrames, function(name) {\n delete this.dateFrames[name];\n }, this);\n };\n\n /**\n * Removes all DateFrame objects.\n */\n Calendar.prototype.clearDateFrames = function() {\n this.dateFrames = {};\n };\n\n var filterDateFrames = function(inputDateFrames, date) {\n var dateFrames = [];\n angular.forEach(inputDateFrames, function(dateFrame) {\n if (dateFrame.dateMatch(date)) {\n dateFrames.push(dateFrame);\n }\n });\n if (dateFrames.length === 0) {\n angular.forEach(inputDateFrames, function(dateFrame) {\n if (dateFrame.default) {\n dateFrames.push(dateFrame);\n }\n });\n }\n return dateFrames;\n };\n\n /**\n * Retrieves TimeFrame objects for a given date, using whole configuration for this Calendar object.\n *\n * @param {moment} date\n *\n * @return {array} an array of TimeFrame objects.\n */\n Calendar.prototype.getTimeFrames = function(date) {\n var timeFrames = [];\n var dateFrames = filterDateFrames(this.dateFrames, date);\n\n angular.forEach(dateFrames, function(dateFrame) {\n if (dateFrame !== undefined) {\n angular.forEach(dateFrame.targets, function(timeFrameMappingName) {\n var timeFrameMapping = this.timeFrameMappings[timeFrameMappingName];\n if (timeFrameMapping !== undefined) {\n // If a timeFrame mapping is found\n timeFrames.push(timeFrameMapping.getTimeFrames());\n } else {\n // If no timeFrame mapping is found, try using direct timeFrame\n var timeFrame = this.timeFrames[timeFrameMappingName];\n if (timeFrame !== undefined) {\n timeFrames.push(timeFrame);\n }\n }\n }, this);\n }\n }, this);\n\n var dateYear = date.year();\n var dateMonth = date.month();\n var dateDate = date.date();\n\n var validatedTimeFrames = [];\n if (timeFrames.length === 0) {\n angular.forEach(this.timeFrames, function(timeFrame) {\n if (timeFrame.default) {\n timeFrames.push(timeFrame);\n }\n });\n }\n\n angular.forEach(timeFrames, function(timeFrame) {\n timeFrame = timeFrame.clone();\n\n if (timeFrame.start !== undefined) {\n timeFrame.start.year(dateYear);\n timeFrame.start.month(dateMonth);\n timeFrame.start.date(dateDate);\n }\n\n if (timeFrame.end !== undefined) {\n timeFrame.end.year(dateYear);\n timeFrame.end.month(dateMonth);\n timeFrame.end.date(dateDate);\n\n if (moment(timeFrame.end).startOf('day') === timeFrame.end) {\n timeFrame.end.add(1, 'day');\n }\n }\n\n validatedTimeFrames.push(timeFrame);\n });\n\n return validatedTimeFrames;\n };\n\n /**\n * Solve timeFrames using two rules.\n *\n * 1) If at least one working timeFrame is defined, everything outside\n * defined timeFrames is considered as non-working. Else it's considered\n * as working.\n *\n * 2) Smaller timeFrames have priority over larger one.\n *\n * @param {array} timeFrames Array of timeFrames to solve\n * @param {moment} startDate\n * @param {moment} endDate\n */\n Calendar.prototype.solve = function(timeFrames, startDate, endDate) {\n var defaultWorking = timeFrames.length === 0;\n var color;\n var classes;\n var minDate;\n var maxDate;\n\n angular.forEach(timeFrames, function(timeFrame) {\n if (minDate === undefined || minDate > timeFrame.start) {\n minDate = timeFrame.start;\n }\n if (maxDate === undefined || maxDate < timeFrame.end) {\n maxDate = timeFrame.end;\n }\n if (color === undefined && timeFrame.color) {\n color = timeFrame.color;\n }\n if (timeFrame.classes !== undefined) {\n if (classes === undefined) {\n classes = [];\n }\n classes = classes.concat(timeFrame.classes);\n }\n });\n\n if (startDate === undefined) {\n startDate = minDate;\n }\n\n if (endDate === undefined) {\n endDate = maxDate;\n }\n\n var solvedTimeFrames = [new TimeFrame({start: startDate, end: endDate, working: defaultWorking, color: color, classes: classes})];\n\n timeFrames = $filter('filter')(timeFrames, function(timeFrame) {\n return (timeFrame.start === undefined || timeFrame.start < endDate) && (timeFrame.end === undefined || timeFrame.end > startDate);\n });\n\n var orderedTimeFrames = $filter('orderBy')(timeFrames, function(timeFrame) {\n return -timeFrame.getDuration();\n });\n\n angular.forEach(orderedTimeFrames, function(timeFrame) {\n var tmpSolvedTimeFrames = solvedTimeFrames.slice();\n\n var i=0;\n var dispatched = false;\n var treated = false;\n angular.forEach(solvedTimeFrames, function(solvedTimeFrame) {\n if (!treated) {\n if (timeFrame.end > solvedTimeFrame.start && timeFrame.start < solvedTimeFrame.end) {\n // timeFrame is included in this solvedTimeFrame.\n // solvedTimeFrame:|ssssssssssssssssssssssssssssssssss|\n // timeFrame: |tttttt|\n // result:|sssssssss|tttttt|sssssssssssssssss|\n\n var newSolvedTimeFrame = solvedTimeFrame.clone();\n\n solvedTimeFrame.end = moment(timeFrame.start);\n newSolvedTimeFrame.start = moment(timeFrame.end);\n\n tmpSolvedTimeFrames.splice(i + 1, 0, timeFrame.clone(), newSolvedTimeFrame);\n treated = true;\n dispatched = false;\n } else if (!dispatched && timeFrame.start < solvedTimeFrame.end) {\n // timeFrame is dispatched on two solvedTimeFrame.\n // First part\n // solvedTimeFrame:|sssssssssssssssssssssssssssssssssss|s+1;s+1;s+1;s+1;s+1;s+1|\n // timeFrame: |tttttt|\n // result:|sssssssssssssssssssssssssssssss|tttttt|;s+1;s+1;s+1;s+1;s+1|\n\n solvedTimeFrame.end = moment(timeFrame.start);\n tmpSolvedTimeFrames.splice(i + 1, 0, timeFrame.clone());\n\n dispatched = true;\n } else if (dispatched && timeFrame.end > solvedTimeFrame.start) {\n // timeFrame is dispatched on two solvedTimeFrame.\n // Second part\n\n solvedTimeFrame.start = moment(timeFrame.end);\n dispatched = false;\n treated = true;\n }\n i++;\n }\n });\n\n solvedTimeFrames = tmpSolvedTimeFrames;\n });\n\n solvedTimeFrames = $filter('filter')(solvedTimeFrames, function(timeFrame) {\n return (timeFrame.start === undefined || timeFrame.start < endDate) && (timeFrame.end === undefined || timeFrame.end > startDate);\n });\n\n return solvedTimeFrames;\n\n };\n\n return Calendar;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttCurrentDateManager', ['moment', function(moment) {\n var GanttCurrentDateManager = function(gantt) {\n var self = this;\n\n this.gantt = gantt;\n\n this.date = undefined;\n this.position = undefined;\n this.currentDateColumn = undefined;\n\n this.gantt.$scope.simplifyMoment = function(d) {\n return moment.isMoment(d) ? d.unix() : d;\n };\n\n this.gantt.$scope.$watchGroup(['currentDate', 'simplifyMoment(currentDateValue)'], function() {\n self.setCurrentDate(self.gantt.$scope.currentDateValue);\n });\n };\n\n GanttCurrentDateManager.prototype.setCurrentDate = function(currentDate) {\n this.date = currentDate;\n if (this.currentDateColumn !== undefined) {\n if (this.currentDateColumn.$element !== undefined) {\n this.currentDateColumn.$element.removeClass('gantt-foreground-col-current-date');\n }\n delete this.currentDateColumn;\n }\n\n if (this.date !== undefined) {\n var column = this.gantt.columnsManager.getColumnByDate(this.date);\n if (column !== undefined) {\n this.currentDateColumn = column;\n if (this.gantt.$scope.currentDate === 'column' && this.currentDateColumn.$element !== undefined) {\n this.currentDateColumn.$element.addClass('gantt-foreground-col-current-date');\n }\n }\n }\n\n this.position = this.gantt.getPositionByDate(this.date);\n };\n return GanttCurrentDateManager;\n }]);\n /* code */\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttColumn', [ 'moment', function(moment) {\n // Used to display the Gantt grid and header.\n // The columns are generated by the column generator.\n var Column = function(date, endDate, left, width, calendar, timeFramesWorkingMode, timeFramesNonWorkingMode) {\n this.date = date;\n this.endDate = endDate;\n this.left = left;\n this.width = width;\n this.calendar = calendar;\n this.duration = this.endDate.diff(this.date, 'milliseconds');\n this.timeFramesWorkingMode = timeFramesWorkingMode;\n this.timeFramesNonWorkingMode = timeFramesNonWorkingMode;\n this.timeFrames = [];\n this.visibleTimeFrames = [];\n this.daysTimeFrames = {};\n this.cropped = false;\n this.originalSize = {left: this.left, width: this.width};\n this.updateTimeFrames();\n };\n\n var getDateKey = function(date) {\n return date.year() + '-' + date.month() + '-' + date.date();\n };\n\n Column.prototype.updateView = function() {\n if (this.$element) {\n this.$element.css('left', this.left + 'px');\n this.$element.css('width', this.width + 'px');\n\n for (var i= 0, l = this.timeFrames.length; i self.endDate) {\n end = self.endDate;\n }\n\n timeFrame = timeFrame.clone();\n\n timeFrame.start = moment(start);\n timeFrame.end = moment(end);\n\n timeFrames.push(timeFrame);\n };\n };\n\n var cDate = self.date;\n var cDateStartOfDay = moment(cDate).startOf('day');\n var cDateNextDay = cDateStartOfDay.add(1, 'day');\n while (cDate < self.endDate) {\n var timeFrames = self.calendar.getTimeFrames(cDate);\n var nextCDate = moment.min(cDateNextDay, self.endDate);\n timeFrames = self.calendar.solve(timeFrames, cDate, nextCDate);\n var cTimeFrames = [];\n angular.forEach(timeFrames, buildPushTimeFrames(cTimeFrames, cDate, nextCDate));\n self.timeFrames = self.timeFrames.concat(cTimeFrames);\n\n var cDateKey = getDateKey(cDate);\n self.daysTimeFrames[cDateKey] = cTimeFrames;\n\n cDate = nextCDate;\n cDateStartOfDay = moment(cDate).startOf('day');\n cDateNextDay = cDateStartOfDay.add(1, 'day');\n }\n\n angular.forEach(self.timeFrames, function(timeFrame) {\n var positionDuration = timeFrame.start.diff(self.date, 'milliseconds');\n var position = positionDuration / self.duration * self.width;\n\n var timeFrameDuration = timeFrame.end.diff(timeFrame.start, 'milliseconds');\n var timeFramePosition = timeFrameDuration / self.duration * self.width;\n\n var hidden = false;\n if (timeFrame.working && self.timeFramesWorkingMode !== 'visible') {\n hidden = true;\n } else if (!timeFrame.working && self.timeFramesNonWorkingMode !== 'visible') {\n hidden = true;\n }\n\n if (!hidden) {\n self.visibleTimeFrames.push(timeFrame);\n }\n\n timeFrame.hidden = hidden;\n timeFrame.left = position;\n timeFrame.width = timeFramePosition;\n timeFrame.originalSize = {left: timeFrame.left, width: timeFrame.width};\n });\n\n if (self.timeFramesNonWorkingMode === 'cropped' || self.timeFramesWorkingMode === 'cropped') {\n var timeFramesWidth = 0;\n angular.forEach(self.timeFrames, function(timeFrame) {\n if (!timeFrame.working && self.timeFramesNonWorkingMode !== 'cropped' ||\n timeFrame.working && self.timeFramesWorkingMode !== 'cropped') {\n timeFramesWidth += timeFrame.width;\n }\n });\n\n if (timeFramesWidth !== self.width) {\n var croppedRatio = self.width / timeFramesWidth;\n var croppedWidth = 0;\n var originalCroppedWidth = 0;\n\n var allCropped = true;\n\n angular.forEach(self.timeFrames, function(timeFrame) {\n if (!timeFrame.working && self.timeFramesNonWorkingMode !== 'cropped' ||\n timeFrame.working && self.timeFramesWorkingMode !== 'cropped') {\n timeFrame.left = (timeFrame.left - croppedWidth) * croppedRatio;\n timeFrame.width = timeFrame.width * croppedRatio;\n timeFrame.originalSize.left = (timeFrame.originalSize.left - originalCroppedWidth) * croppedRatio;\n timeFrame.originalSize.width = timeFrame.originalSize.width * croppedRatio;\n timeFrame.cropped = false;\n allCropped = false;\n } else {\n croppedWidth += timeFrame.width;\n originalCroppedWidth += timeFrame.originalSize.width;\n timeFrame.left = undefined;\n timeFrame.width = 0;\n timeFrame.originalSize = {left: undefined, width: 0};\n timeFrame.cropped = true;\n }\n });\n\n self.cropped = allCropped;\n } else {\n self.cropped = false;\n }\n }\n }\n };\n\n Column.prototype.clone = function() {\n return new Column(moment(this.date), moment(this.endDate), this.left, this.width, this.calendar);\n };\n\n Column.prototype.containsDate = function(date) {\n return date > this.date && date <= this.endDate;\n };\n\n Column.prototype.equals = function(other) {\n return this.date === other.date;\n };\n\n Column.prototype.getMagnetDate = function(date, magnetValue, magnetUnit) {\n if (magnetValue > 0 && magnetUnit !== undefined) {\n var initialDate = date;\n date = moment(date);\n var value;\n var roundedMagnet;\n var duration;\n\n if (magnetValue < 1) {\n date.startOf(magnetUnit);\n value = initialDate.diff(date, 'milliseconds');\n duration = moment.duration(magnetValue, magnetUnit).asMilliseconds();\n\n roundedMagnet = Math.round(value/duration) * duration;\n date.set('milliseconds', roundedMagnet);\n } else {\n value = date.get(magnetUnit);\n roundedMagnet = Math.round(value/magnetValue) * magnetValue;\n date.startOf(magnetUnit);\n date.set(magnetUnit, roundedMagnet);\n }\n\n // Snap to a timeFrame border if initialDate is nearer of timeFrame border than actual magnet date.\n for (var i= 0, l=this.timeFrames.length; i < l; i++) {\n var timeFrame = this.timeFrames[i];\n\n var previousCropped;\n if (timeFrame.cropped && date >= timeFrame.start && date <= timeFrame.end) {\n previousCropped = true;\n }\n\n if (!timeFrame.cropped && (previousCropped || date >= timeFrame.start && date <= timeFrame.end)) {\n if (previousCropped) {\n previousCropped = false;\n if (date < timeFrame.start) {\n initialDate = timeFrame.start;\n } else if (date > timeFrame.end) {\n initialDate = timeFrame.end;\n }\n }\n\n var magnetDiff = Math.abs(initialDate.diff(date, 'milliseconds'));\n if (initialDate.diff(timeFrame.start, 'milliseconds') < magnetDiff) {\n date = timeFrame.start;\n } else if (timeFrame.end.diff(initialDate, 'milliseconds') < magnetDiff) {\n date = timeFrame.end;\n }\n\n break;\n }\n }\n }\n return date;\n };\n\n Column.prototype.getDateByPositionUsingTimeFrames = function(position) {\n for (var i= 0, l = this.timeFrames.length; i < l; i++) {\n // TODO: performance optimization could be done.\n var timeFrame = this.timeFrames[i];\n if (!timeFrame.cropped && position >= timeFrame.left && position <= timeFrame.left + timeFrame.width) {\n var positionDuration = timeFrame.getDuration() / timeFrame.width * (position - timeFrame.left);\n var date = moment(timeFrame.start).add(positionDuration, 'milliseconds');\n return date;\n }\n }\n };\n\n Column.prototype.getDateByPosition = function(position, magnetValue, magnetUnit) {\n var positionDuration;\n var date;\n\n if (position < 0) {\n position = 0;\n }\n if (position > this.width) {\n position = this.width;\n }\n\n if (this.timeFramesNonWorkingMode === 'cropped' || this.timeFramesWorkingMode === 'cropped') {\n date = this.getDateByPositionUsingTimeFrames(position);\n }\n\n if (date === undefined) {\n positionDuration = this.duration / this.width * position;\n date = moment(this.date).add(positionDuration, 'milliseconds');\n }\n\n date = this.getMagnetDate(date, magnetValue, magnetUnit);\n\n return date;\n };\n\n Column.prototype.getDayTimeFrame = function(date) {\n var dtf = this.daysTimeFrames[getDateKey(date)];\n if (dtf === undefined) {\n return [];\n }\n return dtf;\n };\n\n Column.prototype.getPositionByDate = function(date) {\n var positionDuration;\n var position;\n\n if (this.timeFramesNonWorkingMode === 'cropped' || this.timeFramesWorkingMode === 'cropped') {\n var croppedDate = date;\n var timeFrames = this.getDayTimeFrame(croppedDate);\n for (var i=0; i < timeFrames.length; i++) {\n var timeFrame = timeFrames[i];\n if (croppedDate >= timeFrame.start && croppedDate <= timeFrame.end) {\n if (timeFrame.cropped) {\n if (timeFrames.length > i+1) {\n croppedDate = timeFrames[i+1].start;\n } else {\n croppedDate = timeFrame.end;\n }\n } else {\n positionDuration = croppedDate.diff(timeFrame.start, 'milliseconds');\n position = positionDuration / timeFrame.getDuration() * timeFrame.width;\n return this.left + timeFrame.left + position;\n }\n }\n }\n }\n\n positionDuration = date.diff(this.date, 'milliseconds');\n position = positionDuration / this.duration * this.width;\n\n if (position < 0) {\n position = 0;\n }\n\n if (position > this.width) {\n position = this.width;\n }\n\n return this.left + position;\n };\n\n return Column;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttColumnGenerator', [ 'GanttColumn', 'moment', function(Column, moment) {\n var ColumnGenerator = function(columnsManager) {\n var self = this;\n\n var columnWidth = columnsManager.gantt.$scope.columnWidth;\n if (columnWidth === undefined) {\n columnWidth = 20;\n }\n var unit = columnsManager.gantt.$scope.viewScale;\n var calendar = columnsManager.gantt.calendar;\n var timeFramesWorkingMode = columnsManager.gantt.$scope.timeFramesWorkingMode;\n var timeFramesNonWorkingMode = columnsManager.gantt.$scope.timeFramesNonWorkingMode;\n\n // Generates one column for each time unit between the given from and to date.\n self.generate = function(from, to, maximumWidth, leftOffset, reverse) {\n if (!to && !maximumWidth) {\n throw 'to or maximumWidth must be defined';\n }\n\n var excludeTo = false;\n from = moment(from).startOf(unit);\n if (to) {\n excludeTo = isToDateToExclude(to);\n to = moment(to).startOf(unit);\n }\n\n var date = moment(from).startOf(unit);\n var generatedCols = [];\n var left = 0;\n\n while (true) {\n if (maximumWidth && Math.abs(left) > maximumWidth + columnWidth) {\n break;\n }\n\n var startDate = moment(date);\n var endDate = moment(startDate).add(1, unit);\n\n var column = new Column(startDate, endDate, leftOffset ? left + leftOffset : left, columnWidth, calendar, timeFramesWorkingMode, timeFramesNonWorkingMode);\n if (!column.cropped) {\n generatedCols.push(column);\n if (reverse) {\n left -= columnWidth;\n } else {\n left += columnWidth;\n }\n\n if (to) {\n if (reverse) {\n if (excludeTo && date < to || !excludeTo && date <= to) {\n break;\n }\n } else {\n if (excludeTo && date > to || !excludeTo && date >= to) {\n break;\n }\n }\n }\n }\n date.add(reverse ? -1 : 1, unit);\n }\n\n if (reverse) {\n if (isToDateToExclude(from)) {\n generatedCols.shift();\n }\n generatedCols.reverse();\n }\n\n return generatedCols;\n };\n\n // Columns are generated including or excluding the to date.\n // If the To date is the first day of month and the time is 00:00 then no new column is generated for this month.\n\n var isToDateToExclude = function(to) {\n return moment(to).add(1, unit).startOf(unit) === to;\n };\n };\n return ColumnGenerator;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttColumnHeader', [ 'moment', 'GanttColumn', function(moment, Column) {\n // Used to display the Gantt grid and header.\n // The columns are generated by the column generator.\n\n var ColumnHeader = function(date, unit, left, width, labelFormat) {\n var startDate = moment(date);\n var endDate = moment(startDate).add(1, unit);\n\n var column = new Column(startDate, endDate, left, width);\n column.unit = unit;\n column.label = angular.isFunction(labelFormat) ? labelFormat(column): startDate.format(labelFormat);\n\n return column;\n };\n return ColumnHeader;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttColumnsManager', ['GanttColumnGenerator', 'GanttHeaderGenerator', '$filter', '$timeout', 'ganttLayout', 'ganttBinarySearch', 'moment', function(ColumnGenerator, HeaderGenerator, $filter, $timeout, layout, bs, moment) {\n var ColumnsManager = function(gantt) {\n var self = this;\n\n this.gantt = gantt;\n\n this.from = undefined;\n this.to = undefined;\n\n this.columns = [];\n this.visibleColumns = [];\n this.previousColumns = [];\n this.nextColumns = [];\n\n this.headers = [];\n this.visibleHeaders = [];\n\n this.scrollAnchor = undefined;\n\n // Add a watcher if a view related setting changed from outside of the Gantt. Update the gantt accordingly if so.\n // All those changes need a recalculation of the header columns\n this.gantt.$scope.$watchGroup(['viewScale', 'columnWidth', 'timeFramesWorkingMode', 'timeFramesNonWorkingMode', 'fromDate', 'toDate', 'autoExpand', 'taskOutOfRange'], function(oldValues, newValues) {\n if (oldValues !== newValues && self.gantt.rendered) {\n self.generateColumns();\n }\n });\n\n this.gantt.$scope.$watchCollection('headers', function(oldValues, newValues) {\n if (oldValues !== newValues && self.gantt.rendered) {\n self.generateColumns();\n }\n });\n\n this.gantt.$scope.$watchCollection('headersFormats', function(oldValues, newValues) {\n if (oldValues !== newValues && self.gantt.rendered) {\n self.generateColumns();\n }\n });\n\n this.gantt.$scope.$watchGroup(['bodyRowsWidth', 'bodyRowsLeft', 'ganttElementWidth', 'sideWidth', 'maxHeight'], function(oldValues, newValues) {\n if (oldValues !== newValues && self.gantt.rendered) {\n self.updateColumnsMeta();\n }\n });\n\n this.gantt.api.data.on.load(this.gantt.$scope, function() {\n if ((self.from === undefined || self.to === undefined ||\n self.from > self.gantt.rowsManager.getDefaultFrom() ||\n self.to < self.gantt.rowsManager.getDefaultTo()) && self.gantt.rendered) {\n self.generateColumns();\n }\n\n self.gantt.rowsManager.sortRows();\n });\n\n this.gantt.api.data.on.remove(this.gantt.$scope, function() {\n self.gantt.rowsManager.sortRows();\n });\n\n this.gantt.api.registerMethod('columns', 'clear', this.clearColumns, this);\n this.gantt.api.registerMethod('columns', 'generate', this.generateColumns, this);\n this.gantt.api.registerMethod('columns', 'refresh', this.updateColumnsMeta, this);\n\n this.gantt.api.registerEvent('columns', 'generate');\n };\n\n ColumnsManager.prototype.setScrollAnchor = function() {\n if (this.gantt.scroll.$element && this.columns.length > 0) {\n var el = this.gantt.scroll.$element[0];\n var center = el.scrollLeft + el.offsetWidth / 2;\n\n this.scrollAnchor = this.gantt.getDateByPosition(center);\n }\n };\n\n ColumnsManager.prototype.scrollToScrollAnchor = function() {\n var self = this;\n\n if (this.columns.length > 0 && this.scrollAnchor !== undefined) {\n // Ugly but prevents screen flickering (unlike $timeout)\n this.gantt.$scope.$$postDigest(function() {\n self.gantt.api.scroll.toDate(self.scrollAnchor);\n });\n }\n };\n\n ColumnsManager.prototype.clearColumns = function() {\n this.setScrollAnchor();\n\n this.from = undefined;\n this.to = undefined;\n\n this.columns = [];\n this.visibleColumns = [];\n this.previousColumns = [];\n this.nextColumns = [];\n\n this.headers = [];\n this.visibleHeaders = [];\n\n this.gantt.api.columns.raise.clear();\n };\n\n ColumnsManager.prototype.generateColumns = function(from, to) {\n if (!from) {\n from = this.gantt.$scope.fromDate;\n }\n\n if (!to) {\n to = this.gantt.$scope.toDate;\n }\n\n if (!from) {\n from = this.gantt.rowsManager.getDefaultFrom();\n if (!from) {\n return false;\n }\n }\n\n if (!to) {\n to = this.gantt.rowsManager.getDefaultTo();\n if (!to) {\n return false;\n }\n }\n\n if (from !== undefined && !moment.isMoment(from)) {\n from = moment(from);\n }\n\n if (to !== undefined && !moment.isMoment(to)) {\n to = moment(to);\n }\n\n if (this.gantt.$scope.taskOutOfRange === 'expand') {\n from = this.gantt.rowsManager.getExpandedFrom(from);\n to = this.gantt.rowsManager.getExpandedTo(to);\n }\n\n this.setScrollAnchor();\n\n this.from = from;\n this.to = to;\n\n var columnGenerator = new ColumnGenerator(this);\n var headerGenerator = new HeaderGenerator(this);\n\n this.columns = columnGenerator.generate(from, to);\n this.headers = headerGenerator.generate(this.columns);\n this.previousColumns = [];\n this.nextColumns = [];\n\n this.updateColumnsMeta();\n this.scrollToScrollAnchor();\n\n this.gantt.api.columns.raise.generate(this.columns, this.headers);\n };\n\n ColumnsManager.prototype.updateColumnsMeta = function() {\n var lastColumn = this.getLastColumn();\n this.gantt.originalWidth = lastColumn !== undefined ? lastColumn.originalSize.left + lastColumn.originalSize.width : 0;\n\n var columnsWidthChanged = this.updateColumnsWidths([this.previousColumns, this.columns, this.nextColumns, this.headers]);\n\n this.gantt.width = lastColumn !== undefined ? lastColumn.left + lastColumn.width : 0;\n\n this.gantt.rowsManager.updateTasksPosAndSize();\n this.gantt.timespansManager.updateTimespansPosAndSize();\n\n this.updateVisibleColumns(columnsWidthChanged);\n this.gantt.rowsManager.updateVisibleObjects();\n\n this.gantt.currentDateManager.setCurrentDate(this.gantt.$scope.currentDateValue);\n };\n\n // Returns the last Gantt column or undefined\n ColumnsManager.prototype.getLastColumn = function(extended) {\n var columns = this.columns;\n if (extended) {\n columns = this.nextColumns;\n }\n if (columns && columns.length > 0) {\n return columns[columns.length - 1];\n } else {\n return undefined;\n }\n };\n\n // Returns the first Gantt column or undefined\n ColumnsManager.prototype.getFirstColumn = function(extended) {\n var columns = this.columns;\n if (extended) {\n columns = this.previousColumns;\n }\n\n if (columns && columns.length > 0) {\n return columns[0];\n } else {\n return undefined;\n }\n };\n\n // Returns the column at the given or next possible date\n ColumnsManager.prototype.getColumnByDate = function(date) {\n this.expandExtendedColumnsForDate(date);\n var extendedColumns = this.previousColumns.concat(this.columns, this.nextColumns);\n var columns = bs.get(extendedColumns, date, function(c) {\n return c.date;\n }, true);\n return columns[0] !== undefined ? columns[0] : columns[1];\n };\n\n // Returns the column at the given position x (in em)\n ColumnsManager.prototype.getColumnByPosition = function(x) {\n this.expandExtendedColumnsForPosition(x);\n var extendedColumns = this.previousColumns.concat(this.columns, this.nextColumns);\n var columns = bs.get(extendedColumns, x, function(c) {\n return c.left;\n }, true);\n return columns[0] === undefined ? columns[1]: columns[0];\n };\n\n var updateColumnsWidthImpl = function(newWidth, originalWidth, columnsArray) {\n if (angular.isArray(columnsArray)) {\n if (columnsArray.length > 0 && angular.isArray(columnsArray[0])) {\n angular.forEach(columnsArray, function(columns) {\n updateColumnsWidthImpl(newWidth, originalWidth, columns);\n });\n return;\n }\n }\n layout.setColumnsWidth(newWidth, originalWidth, columnsArray);\n };\n\n ColumnsManager.prototype.updateColumnsWidths = function(columns) {\n var autoFitWidthEnabled = this.gantt.$scope.columnWidth === undefined;\n var scrollWidth = this.gantt.getWidth() - this.gantt.side.getWidth();\n if (autoFitWidthEnabled) {\n var newWidth = scrollWidth - this.gantt.scroll.getBordersWidth();\n updateColumnsWidthImpl(newWidth, this.gantt.originalWidth, columns);\n }\n return autoFitWidthEnabled;\n };\n\n ColumnsManager.prototype.expandExtendedColumnsForPosition = function(x) {\n if (x < 0) {\n var firstColumn = this.getFirstColumn();\n var from = firstColumn.date;\n var firstExtendedColumn = this.getFirstColumn(true);\n if (!firstExtendedColumn || firstExtendedColumn.left > x) {\n this.previousColumns = new ColumnGenerator(this).generate(from, undefined, -x, 0, true);\n this.updateColumnsWidths(this.previousColumns);\n }\n return true;\n } else if (x > this.gantt.width) {\n var lastColumn = this.getLastColumn();\n var endDate = lastColumn.getDateByPosition(lastColumn.width);\n var lastExtendedColumn = this.getLastColumn(true);\n if (!lastExtendedColumn || lastExtendedColumn.left + lastExtendedColumn.width < x) {\n this.nextColumns = new ColumnGenerator(this).generate(endDate, undefined, x - this.gantt.width, this.gantt.width, false);\n this.updateColumnsWidths(this.nextColumns);\n }\n return true;\n }\n return false;\n };\n\n ColumnsManager.prototype.expandExtendedColumnsForDate = function(date) {\n var firstColumn = this.getFirstColumn();\n var from;\n if (firstColumn) {\n from = firstColumn.date;\n }\n\n var lastColumn = this.getLastColumn();\n var endDate;\n if (lastColumn) {\n endDate = lastColumn.getDateByPosition(lastColumn.width);\n }\n\n if (from && date < from) {\n var firstExtendedColumn = this.getFirstColumn(true);\n if (!firstExtendedColumn || firstExtendedColumn.date > date) {\n this.previousColumns = new ColumnGenerator(this).generate(from, date, undefined, 0, true);\n this.updateColumnsWidths(this.previousColumns);\n }\n return true;\n } else if (endDate && date > endDate) {\n var lastExtendedColumn = this.getLastColumn(true);\n if (!lastExtendedColumn || endDate < lastExtendedColumn) {\n this.nextColumns = new ColumnGenerator(this).generate(endDate, date, undefined, this.gantt.width, false);\n this.updateColumnsWidths(this.nextColumns);\n }\n return true;\n }\n return false;\n };\n\n // Returns the number of active headers\n ColumnsManager.prototype.getActiveHeadersCount = function() {\n return this.headers.length;\n };\n\n ColumnsManager.prototype.updateVisibleColumns = function(includeViews) {\n this.visibleColumns = $filter('ganttColumnLimit')(this.columns, this.gantt);\n\n this.visibleHeaders = [];\n angular.forEach(this.headers, function(header) {\n this.visibleHeaders.push($filter('ganttColumnLimit')(header, this.gantt));\n }, this);\n\n if (includeViews) {\n angular.forEach(this.visibleColumns, function(c) {\n c.updateView();\n });\n\n angular.forEach(this.visibleHeaders, function(headerRow) {\n angular.forEach(headerRow, function(header) {\n header.updateView();\n });\n });\n }\n };\n\n var defaultHeadersFormats = {'year': 'YYYY', 'quarter': '[Q]Q YYYY', month: 'MMMM YYYY', week: 'w', day: 'D', hour: 'H', minute:'HH:mm'};\n var defaultDayHeadersFormats = {day: 'LL', hour: 'H', minute:'HH:mm'};\n var defaultYearHeadersFormats = {'year': 'YYYY', 'quarter': '[Q]Q', month: 'MMMM'};\n\n ColumnsManager.prototype.getHeaderFormat = function(unit) {\n var format;\n if (this.gantt.$scope.headersFormats !== undefined) {\n format = this.gantt.$scope.headersFormats[unit];\n }\n if (format === undefined) {\n if (['millisecond', 'second', 'minute', 'hour'].indexOf(this.gantt.$scope.viewScale) > -1) {\n format = defaultDayHeadersFormats[unit];\n } else if (['month', 'quarter', 'year'].indexOf(this.gantt.$scope.viewScale) > -1) {\n format = defaultYearHeadersFormats[unit];\n }\n if (format === undefined) {\n format = defaultHeadersFormats[unit];\n }\n }\n return format;\n };\n\n return ColumnsManager;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttHeaderGenerator', ['GanttColumnHeader', function(ColumnHeader) {\n var generateHeader = function(columnsManager, columns, unit) {\n var generatedHeaders = [];\n var header;\n var prevColDateVal;\n\n for (var i = 0, l = columns.length; i < l; i++) {\n var col = columns[i];\n var colDateVal = col.date.get(unit);\n if (i === 0 || prevColDateVal !== colDateVal) {\n prevColDateVal = colDateVal;\n var labelFormat = columnsManager.getHeaderFormat(unit);\n\n header = new ColumnHeader(col.date, unit, col.originalSize.left, col.originalSize.width, labelFormat);\n header.left = col.left;\n header.width = col.width;\n generatedHeaders.push(header);\n } else {\n header.originalSize.width += col.originalSize.width;\n header.width += col.width;\n }\n }\n return generatedHeaders;\n\n };\n\n return function(columnsManager) {\n this.generate = function(columns) {\n var units = [];\n if (columnsManager.gantt.$scope.headers === undefined) {\n units = [];\n if (['year', 'quarter', 'month'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('year');\n }\n if (['quarter'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('quarter');\n }\n if (['day', 'week', 'month'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('month');\n }\n if (['day', 'week'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('week');\n }\n if (['hour', 'day'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('day');\n }\n if (['hour', 'minute', 'second'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('hour');\n }\n if (['minute', 'second'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('minute');\n }\n if (['second'].indexOf(columnsManager.gantt.$scope.viewScale) > -1) {\n units.push('second');\n }\n if (units.length === 0) {\n units.push(columnsManager.gantt.$scope.viewScale);\n }\n } else {\n units = columnsManager.gantt.$scope.headers;\n }\n\n var headers = [];\n angular.forEach(units, function(unit) {\n headers.push(generateHeader(columnsManager, columns, unit));\n });\n\n return headers;\n };\n };\n }]);\n}());\n\n","(function() {\n 'use strict';\n angular.module('gantt').factory('Gantt', [\n 'GanttApi', 'GanttCalendar', 'GanttScroll', 'GanttBody', 'GanttRowHeader', 'GanttHeader', 'GanttSide', 'GanttObjectModel', 'GanttRowsManager', 'GanttColumnsManager', 'GanttTimespansManager', 'GanttCurrentDateManager', 'ganttArrays', 'moment', '$document',\n function(GanttApi, Calendar, Scroll, Body, RowHeader, Header, Side, ObjectModel, RowsManager, ColumnsManager, TimespansManager, CurrentDateManager, arrays, moment, $document) {\n // Gantt logic. Manages the columns, rows and sorting functionality.\n var Gantt = function($scope, $element) {\n var self = this;\n\n this.$scope = $scope;\n this.$element = $element;\n\n this.api = new GanttApi(this);\n\n this.api.registerEvent('core', 'ready');\n this.api.registerEvent('core', 'rendered');\n\n this.api.registerEvent('directives', 'preLink');\n this.api.registerEvent('directives', 'postLink');\n this.api.registerEvent('directives', 'new');\n this.api.registerEvent('directives', 'destroy');\n\n this.api.registerEvent('data', 'load');\n this.api.registerEvent('data', 'remove');\n this.api.registerEvent('data', 'clear');\n\n this.api.registerMethod('core', 'getDateByPosition', this.getDateByPosition, this);\n this.api.registerMethod('core', 'getPositionByDate', this.getPositionByDate, this);\n\n this.api.registerMethod('data', 'load', this.loadData, this);\n this.api.registerMethod('data', 'remove', this.removeData, this);\n this.api.registerMethod('data', 'clear', this.clearData, this);\n this.api.registerMethod('data', 'get', this.getData, this);\n\n this.calendar = new Calendar(this);\n this.calendar.registerTimeFrames(this.$scope.timeFrames);\n this.calendar.registerDateFrames(this.$scope.dateFrames);\n\n this.api.registerMethod('timeframes', 'registerTimeFrames', this.calendar.registerTimeFrames, this.calendar);\n this.api.registerMethod('timeframes', 'clearTimeframes', this.calendar.clearTimeFrames, this.calendar);\n this.api.registerMethod('timeframes', 'registerDateFrames', this.calendar.registerDateFrames, this.calendar);\n this.api.registerMethod('timeframes', 'clearDateFrames', this.calendar.clearDateFrames, this.calendar);\n this.api.registerMethod('timeframes', 'registerTimeFrameMappings', this.calendar.registerTimeFrameMappings, this.calendar);\n this.api.registerMethod('timeframes', 'clearTimeFrameMappings', this.calendar.clearTimeFrameMappings, this.calendar);\n\n $scope.$watchGroup(['timeFrames', 'dateFrames'], function(newValues, oldValues) {\n if (newValues !== oldValues) {\n var timeFrames = newValues[0];\n var dateFrames = newValues[1];\n\n var oldTimeFrames = oldValues[0];\n var oldDateFrames = oldValues[1];\n\n if (!angular.equals(timeFrames, oldTimeFrames)) {\n self.calendar.clearTimeFrames();\n self.calendar.registerTimeFrames(timeFrames);\n }\n\n if (!angular.equals(dateFrames, oldDateFrames)) {\n self.calendar.clearDateFrames();\n self.calendar.registerDateFrames(dateFrames);\n }\n\n self.columnsManager.generateColumns();\n }\n });\n\n $scope.$watch('columnMagnet', function() {\n var splittedColumnMagnet;\n if ($scope.columnMagnet) {\n splittedColumnMagnet = $scope.columnMagnet.trim().split(' ');\n }\n if (splittedColumnMagnet && splittedColumnMagnet.length > 1) {\n self.columnMagnetValue = parseFloat(splittedColumnMagnet[0]);\n self.columnMagnetUnit = splittedColumnMagnet[splittedColumnMagnet.length-1];\n } else {\n self.columnMagnetValue = undefined;\n self.columnMagnetUnit = undefined;\n }\n });\n\n $scope.$watchGroup(['shiftColumnMagnet', 'viewScale'], function() {\n var splittedColumnMagnet;\n if ($scope.shiftColumnMagnet) {\n splittedColumnMagnet = $scope.shiftColumnMagnet.trim().split(' ');\n }\n if (splittedColumnMagnet !== undefined && splittedColumnMagnet.length > 1) {\n self.shiftColumnMagnetValue = parseFloat(splittedColumnMagnet[0]);\n self.shiftColumnMagnetUnit = splittedColumnMagnet[splittedColumnMagnet.length-1];\n } else {\n self.shiftColumnMagnetValue = undefined;\n self.shiftColumnMagnetUnit = undefined;\n }\n });\n\n $document.on('keyup keydown', function(e) {\n self.shiftKey = e.shiftKey;\n return true;\n });\n\n this.scroll = new Scroll(this);\n this.body = new Body(this);\n this.header = new Header(this);\n this.side = new Side(this);\n\n this.objectModel = new ObjectModel(this.api);\n\n this.rowsManager = new RowsManager(this);\n this.columnsManager = new ColumnsManager(this);\n this.timespansManager = new TimespansManager(this);\n this.currentDateManager = new CurrentDateManager(this);\n\n this.originalWidth = 0;\n this.width = 0;\n\n if (angular.isFunction(this.$scope.api)) {\n this.$scope.api(this.api);\n }\n\n this.$scope.$watchCollection('data', function(newData, oldData) {\n var toRemoveIds = arrays.getRemovedIds(newData, oldData);\n\n for (var i = 0, l = toRemoveIds.length; i < l; i++) {\n var toRemoveId = toRemoveIds[i];\n self.rowsManager.removeRow(toRemoveId);\n }\n\n if (newData !== undefined) {\n self.loadData(newData);\n }\n });\n };\n\n // Returns the exact column date at the given position x (in em)\n Gantt.prototype.getDateByPosition = function(x, magnet) {\n var column = this.columnsManager.getColumnByPosition(x);\n if (column !== undefined) {\n var magnetValue;\n var magnetUnit;\n if (magnet) {\n if (this.shiftKey) {\n if (this.shiftColumnMagnetValue !== undefined && this.shiftColumnMagnetUnit !== undefined) {\n magnetValue = this.shiftColumnMagnetValue;\n magnetUnit = this.shiftColumnMagnetUnit;\n } else {\n magnetValue = 0.25;\n magnetUnit = this.$scope.viewScale;\n }\n } else {\n magnetValue = this.columnMagnetValue;\n magnetUnit = this.columnMagnetUnit;\n }\n }\n\n return column.getDateByPosition(x - column.left, magnetValue, magnetUnit);\n } else {\n return undefined;\n }\n };\n\n // Returns the position inside the Gantt calculated by the given date\n Gantt.prototype.getPositionByDate = function(date) {\n if (date === undefined) {\n return undefined;\n }\n\n if (!moment.isMoment(moment)) {\n date = moment(date);\n }\n\n var column = this.columnsManager.getColumnByDate(date);\n if (column !== undefined) {\n return column.getPositionByDate(date);\n } else {\n return undefined;\n }\n };\n\n // Adds or update rows and tasks.\n Gantt.prototype.loadData = function(data) {\n if (!angular.isArray(data)) {\n data = data !== undefined ? [data] : [];\n }\n\n if (this.$scope.data === undefined || this.$scope.data !== data) {\n this.$scope.data = [];\n }\n for (var i = 0, l = data.length; i < l; i++) {\n var rowData = data[i];\n this.rowsManager.addRow(rowData);\n }\n this.api.data.raise.load(this.$scope, data);\n };\n\n Gantt.prototype.getData = function() {\n return this.$scope.data;\n };\n\n // Removes specified rows or tasks.\n // If a row has no tasks inside the complete row will be deleted.\n Gantt.prototype.removeData = function(data) {\n if (!angular.isArray(data)) {\n data = data !== undefined ? [data] : [];\n }\n\n this.rowsManager.removeData(data);\n this.api.data.raise.remove(this.$scope, data);\n };\n\n // Removes all rows and tasks\n Gantt.prototype.clearData = function() {\n this.rowsManager.removeAll();\n this.api.data.raise.clear(this.$scope);\n };\n\n Gantt.prototype.getWidth = function() {\n return this.$element[0].offsetWidth;\n };\n\n return Gantt;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttObjectModel', ['ganttUtils', 'moment', function(utils, moment) {\n var ObjectModel = function(api) {\n this.api = api;\n\n this.api.registerEvent('tasks', 'clean');\n this.api.registerEvent('rows', 'clean');\n this.api.registerEvent('timespans', 'clean');\n };\n\n ObjectModel.prototype.cleanTask = function(model) {\n if (model.id === undefined) {\n model.id = utils.randomUuid();\n }\n\n if (model.from !== undefined && !moment.isMoment(model.from)) {\n model.from = moment(model.from);\n }\n\n if (model.to !== undefined && !moment.isMoment(model.to)) {\n model.to = moment(model.to);\n }\n\n this.api.tasks.raise.clean(model);\n };\n\n ObjectModel.prototype.cleanRow = function(model) {\n if (model.id === undefined) {\n model.id = utils.randomUuid();\n }\n\n if (model.from !== undefined && !moment.isMoment(model.from)) {\n model.from = moment(model.from);\n }\n\n if (model.to !== undefined && !moment.isMoment(model.to)) {\n model.to = moment(model.to);\n }\n\n this.api.rows.raise.clean(model);\n };\n\n ObjectModel.prototype.cleanTimespan = function(model) {\n if (model.id === undefined) {\n model.id = utils.randomUuid();\n }\n\n if (model.from !== undefined && !moment.isMoment(model.from)) {\n model.from = moment(model.from);\n }\n\n if (model.to !== undefined && !moment.isMoment(model.to)) {\n model.to = moment(model.to);\n }\n\n this.api.timespans.raise.clean(model);\n };\n\n return ObjectModel;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttRow', ['GanttTask', 'moment', '$filter', function(Task, moment, $filter) {\n var Row = function(rowsManager, model) {\n this.rowsManager = rowsManager;\n this.model = model;\n\n this.from = undefined;\n this.to = undefined;\n\n this.tasksMap = {};\n this.tasks = [];\n this.filteredTasks = [];\n this.visibleTasks = [];\n };\n\n Row.prototype.addTaskImpl = function(task, viewOnly) {\n this.tasksMap[task.model.id] = task;\n this.tasks.push(task);\n this.filteredTasks.push(task);\n this.visibleTasks.push(task);\n\n if (!viewOnly) {\n if (this.model.tasks === undefined) {\n this.model.tasks = [];\n }\n if (this.model.tasks.indexOf(task.model) === -1) {\n this.model.tasks.push(task.model);\n }\n }\n\n };\n\n // Adds a task to a specific row. Merges the task if there is already one with the same id\n Row.prototype.addTask = function(taskModel, viewOnly) {\n // Copy to new task (add) or merge with existing (update)\n var task, isUpdate = false;\n\n this.rowsManager.gantt.objectModel.cleanTask(taskModel);\n if (taskModel.id in this.tasksMap) {\n task = this.tasksMap[taskModel.id];\n if (task.model === taskModel) {\n return task;\n }\n task.model = taskModel;\n isUpdate = true;\n } else {\n task = new Task(this, taskModel);\n this.addTaskImpl(task, viewOnly);\n }\n\n this.sortTasks();\n this.setFromToByTask(task);\n\n if (!viewOnly) {\n if (isUpdate) {\n this.rowsManager.gantt.api.tasks.raise.change(task);\n } else {\n this.rowsManager.gantt.api.tasks.raise.add(task);\n }\n }\n\n return task;\n };\n\n // Removes the task from the existing row and adds it to he current one\n Row.prototype.moveTaskToRow = function(task, viewOnly) {\n var oldRow = task.row;\n oldRow.removeTask(task.model.id, viewOnly, true);\n\n task.row = this;\n this.addTaskImpl(task, viewOnly);\n\n this.sortTasks();\n this.setFromToByTask(task);\n\n task.updatePosAndSize();\n\n if (!viewOnly) {\n this.rowsManager.gantt.api.tasks.raise.rowChange(task, oldRow);\n }\n };\n\n Row.prototype.updateVisibleTasks = function() {\n if (this.rowsManager.gantt.$scope.filterTask) {\n var filterTask = this.rowsManager.gantt.$scope.filterTask;\n if (typeof(filterTask) === 'object') {\n filterTask = {model: filterTask};\n }\n\n var filterTaskComparator = this.rowsManager.gantt.$scope.filterTaskComparator;\n if (typeof(filterTaskComparator) === 'function') {\n filterTaskComparator = function(actual, expected) {\n return this.rowsManager.gantt.$scope.filterRowComparator(actual.model, expected.model);\n };\n }\n\n this.filteredTasks = $filter('filter')(this.tasks, filterTask, filterTaskComparator);\n } else {\n this.filteredTasks = this.tasks.slice(0);\n }\n this.visibleTasks = $filter('ganttTaskLimit')(this.filteredTasks, this.rowsManager.gantt);\n };\n\n Row.prototype.updateTasksPosAndSize = function() {\n for (var j = 0, k = this.tasks.length; j < k; j++) {\n this.tasks[j].updatePosAndSize();\n }\n };\n\n // Remove the specified task from the row\n Row.prototype.removeTask = function(taskId, viewOnly, silent) {\n if (taskId in this.tasksMap) {\n var removedTask = this.tasksMap[taskId];\n var task;\n var i;\n\n for (i = this.tasks.length - 1; i >= 0; i--) {\n task = this.tasks[i];\n if (task.model.id === taskId) {\n this.tasks.splice(i, 1); // Remove from array\n\n // Update earliest or latest date info as this may change\n if (this.from - task.model.from === 0 || this.to - task.model.to === 0) {\n this.setFromTo();\n }\n\n break;\n }\n }\n\n for (i = this.filteredTasks.length - 1; i >= 0; i--) {\n task = this.filteredTasks[i];\n if (task.model.id === taskId) {\n this.filteredTasks.splice(i, 1); // Remove from filtered array\n break;\n }\n }\n\n for (i = this.visibleTasks.length - 1; i >= 0; i--) {\n task = this.visibleTasks[i];\n if (task.model.id === taskId) {\n this.visibleTasks.splice(i, 1); // Remove from visible array\n break;\n }\n }\n\n if (!viewOnly) {\n delete this.tasksMap[taskId]; // Remove from map\n\n if (this.model.tasks !== undefined) {\n var taskIndex = this.model.tasks.indexOf(removedTask.model);\n if (taskIndex > -1) {\n this.model.tasks.splice(taskIndex, 1);\n }\n }\n\n if (!silent) {\n this.rowsManager.gantt.api.tasks.raise.remove(removedTask);\n }\n }\n\n return removedTask;\n }\n };\n\n Row.prototype.removeAllTasks = function() {\n this.from = undefined;\n this.to = undefined;\n\n this.tasksMap = {};\n this.tasks = [];\n this.filteredTasks = [];\n this.visibleTasks = [];\n };\n\n // Calculate the earliest from and latest to date of all tasks in a row\n Row.prototype.setFromTo = function() {\n this.from = undefined;\n this.to = undefined;\n for (var j = 0, k = this.tasks.length; j < k; j++) {\n this.setFromToByTask(this.tasks[j]);\n }\n };\n\n Row.prototype.setFromToByTask = function(task) {\n if (this.from === undefined) {\n this.from = moment(task.model.from);\n } else if (task.model.from < this.from) {\n this.from = moment(task.model.from);\n }\n\n if (this.to === undefined) {\n this.to = moment(task.model.to);\n } else if (task.model.to > this.to) {\n this.to = moment(task.model.to);\n }\n };\n\n Row.prototype.sortTasks = function() {\n this.tasks.sort(function(t1, t2) {\n return t1.left - t2.left;\n });\n };\n\n Row.prototype.clone = function() {\n var clone = new Row(this.rowsManager, angular.copy(this));\n for (var i = 0, l = this.tasks.length; i < l; i++) {\n clone.addTask(this.tasks[i].model);\n }\n return clone;\n };\n\n return Row;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttRowHeader', [function() {\n var RowHeader = function(gantt) {\n this.gantt = gantt;\n };\n return RowHeader;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttRowsManager', ['GanttRow', 'ganttArrays', '$filter', 'moment', function(Row, arrays, $filter, moment) {\n var RowsManager = function(gantt) {\n var self = this;\n\n this.gantt = gantt;\n\n this.rowsMap = {};\n this.rows = [];\n this.sortedRows = [];\n this.filteredRows = [];\n this.visibleRows = [];\n this.rowsTaskWatchers = [];\n\n this.gantt.$scope.$watchGroup(['filterTask', 'filterTaskComparator'], function(oldValues, newValues) {\n if (oldValues !== newValues) {\n self.updateVisibleTasks();\n }\n });\n\n this.gantt.$scope.$watchGroup(['filterRow', 'filterRowComparator'], function(oldValues, newValues) {\n if (oldValues !== newValues) {\n self.updateVisibleRows();\n }\n });\n\n this.gantt.$scope.$watch('sortMode', function(oldValues, newValues) {\n if (oldValues !== newValues) {\n self.sortRows();\n }\n });\n\n this.gantt.api.registerMethod('rows', 'sort', RowsManager.prototype.sortRows, this);\n this.gantt.api.registerMethod('rows', 'applySort', RowsManager.prototype.applySort, this);\n this.gantt.api.registerMethod('rows', 'refresh', RowsManager.prototype.updateVisibleObjects, this);\n\n this.gantt.api.registerEvent('tasks', 'add');\n this.gantt.api.registerEvent('tasks', 'change');\n this.gantt.api.registerEvent('tasks', 'rowChange');\n this.gantt.api.registerEvent('tasks', 'remove');\n this.gantt.api.registerEvent('tasks', 'filter');\n\n this.gantt.api.registerEvent('rows', 'add');\n this.gantt.api.registerEvent('rows', 'change');\n this.gantt.api.registerEvent('rows', 'remove');\n this.gantt.api.registerEvent('rows', 'move');\n\n this.gantt.api.registerEvent('rows', 'filter');\n\n this.updateVisibleObjects();\n };\n\n RowsManager.prototype.addRow = function(rowModel) {\n // Copy to new row (add) or merge with existing (update)\n var row, i, l, isUpdate = false;\n\n this.gantt.objectModel.cleanRow(rowModel);\n\n if (rowModel.id in this.rowsMap) {\n row = this.rowsMap[rowModel.id];\n if (row.model === rowModel) {\n return;\n }\n\n var toRemoveIds = arrays.getRemovedIds(rowModel.tasks, row.model.tasks);\n for (i= 0, l=toRemoveIds.length; i 0) {\n for (i = 0, l = rowModel.tasks.length; i < l; i++) {\n var taskModel = rowModel.tasks[i];\n row.addTask(taskModel);\n }\n }\n\n if (isUpdate) {\n this.gantt.api.rows.raise.change(row);\n } else {\n this.gantt.api.rows.raise.add(row);\n }\n\n if (!isUpdate) {\n var watcher = this.gantt.$scope.$watchCollection(function() {return rowModel.tasks;}, function(newTasks, oldTasks) {\n if (newTasks !== oldTasks) {\n var i, l;\n\n var toRemoveIds = arrays.getRemovedIds(newTasks, oldTasks);\n for (i= 0, l = toRemoveIds.length; i -1) {\n removedRow = this.rows.splice(indexOf, 1)[0]; // Remove from array\n var deregisterFunction = this.rowsTaskWatchers.splice(indexOf, 1)[0]; // Remove watcher\n deregisterFunction();\n }\n\n arrays.removeId(this.sortedRows, rowId, ['model', 'id']);\n arrays.removeId(this.filteredRows, rowId, ['model', 'id']);\n arrays.removeId(this.visibleRows, rowId, ['model', 'id']);\n arrays.remove(this.gantt.$scope.data, removedRow.model);\n\n this.gantt.api.rows.raise.remove(removedRow);\n return row;\n }\n\n return undefined;\n };\n\n RowsManager.prototype.removeData = function(data) {\n for (var i = 0, l = data.length; i < l; i++) {\n var rowData = data[i];\n var row;\n\n if (rowData.tasks !== undefined && rowData.tasks.length > 0) {\n // Only delete the specified tasks but not the row and the other tasks\n\n if (rowData.id in this.rowsMap) {\n row = this.rowsMap[rowData.id];\n\n for (var j = 0, k = rowData.tasks.length; j < k; j++) {\n row.removeTask(rowData.tasks[j].id);\n }\n\n this.gantt.api.rows.raise.change(row);\n }\n } else {\n // Delete the complete row\n row = this.removeRow(rowData.id);\n }\n }\n this.updateVisibleObjects();\n };\n\n RowsManager.prototype.removeAll = function() {\n this.rowsMap = {};\n this.rows = [];\n this.sortedRows = [];\n this.filteredRows = [];\n this.visibleRows = [];\n var data = this.gantt.$scope.data;\n while(data > 0) {\n data.pop();\n }\n for (var i= 0, l=this.rowsTaskWatchers.length; i 0) {\n data.pop();\n }\n var rows = [];\n for (var i = 0, l = this.sortedRows.length; i < l; i++) {\n data.push(this.sortedRows[i].model);\n rows.push(this.sortedRows[i]);\n }\n\n this.rows = rows;\n };\n\n RowsManager.prototype.moveRow = function(row, targetRow) {\n if (this.gantt.$scope.sortMode !== undefined) {\n // Apply current sort to model\n this.applySort();\n\n this.gantt.$scope.sortMode = undefined;\n }\n\n var targetRowIndex = this.rows.indexOf(targetRow);\n var rowIndex = this.rows.indexOf(row);\n\n if (targetRowIndex > -1 && rowIndex > -1 && targetRowIndex !== rowIndex) {\n arrays.moveToIndex(this.rows, rowIndex, targetRowIndex);\n arrays.moveToIndex(this.rowsTaskWatchers, rowIndex, targetRowIndex);\n arrays.moveToIndex(this.gantt.$scope.data, rowIndex, targetRowIndex);\n\n this.gantt.api.rows.raise.change(row);\n this.gantt.api.rows.raise.move(row, rowIndex, targetRowIndex);\n\n this.updateVisibleObjects();\n this.sortRows();\n }\n };\n\n RowsManager.prototype.updateVisibleObjects = function() {\n this.updateVisibleRows();\n this.updateVisibleTasks();\n };\n\n RowsManager.prototype.updateVisibleRows = function() {\n var oldFilteredRows = this.filteredRows;\n if (this.gantt.$scope.filterRow) {\n var filterRow = this.gantt.$scope.filterRow;\n if (typeof(filterRow) === 'object') {\n filterRow = {model: filterRow};\n }\n\n var filterRowComparator = this.gantt.$scope.filterRowComparator;\n if (typeof(filterRowComparator) === 'function') {\n filterRowComparator = function(actual, expected) {\n return this.gantt.$scope.filterRowComparator(actual.model, expected.model);\n };\n }\n\n this.filteredRows = $filter('filter')(this.sortedRows, filterRow, filterRowComparator);\n } else {\n this.filteredRows = this.sortedRows.slice(0);\n }\n\n\n var raiseEvent = !angular.equals(oldFilteredRows, this.filteredRows);\n\n // TODO: Implement rowLimit like columnLimit to enhance performance for gantt with many rows\n this.visibleRows = this.filteredRows;\n if (raiseEvent) {\n this.gantt.api.rows.raise.filter(this.sortedRows, this.filteredRows);\n }\n };\n\n RowsManager.prototype.updateVisibleTasks = function() {\n var oldFilteredTasks = [];\n var filteredTasks = [];\n var tasks = [];\n\n angular.forEach(this.rows, function(row) {\n oldFilteredTasks = oldFilteredTasks.concat(row.filteredTasks);\n row.updateVisibleTasks();\n filteredTasks = filteredTasks.concat(row.filteredTasks);\n tasks = tasks.concat(row.tasks);\n });\n\n var filterEvent = !angular.equals(oldFilteredTasks, filteredTasks);\n\n if (filterEvent) {\n this.gantt.api.tasks.raise.filter(tasks, filteredTasks);\n }\n };\n\n // Update the position/size of all tasks in the Gantt\n RowsManager.prototype.updateTasksPosAndSize = function() {\n for (var i = 0, l = this.rows.length; i < l; i++) {\n this.rows[i].updateTasksPosAndSize();\n }\n };\n\n RowsManager.prototype.getExpandedFrom = function(from) {\n from = from ? moment(from) : from;\n\n var minRowFrom = from;\n angular.forEach(this.rows, function(row) {\n if (minRowFrom === undefined || minRowFrom > row.from) {\n minRowFrom = row.from;\n }\n });\n if (minRowFrom && (!from || minRowFrom < from)) {\n return minRowFrom;\n }\n return from;\n };\n\n RowsManager.prototype.getExpandedTo = function(to) {\n to = to ? moment(to) : to;\n\n var maxRowTo = to;\n angular.forEach(this.rows, function(row) {\n if (maxRowTo === undefined || maxRowTo < row.to) {\n maxRowTo = row.to;\n }\n });\n if (maxRowTo && (!this.gantt.$scope.toDate || maxRowTo > this.gantt.$scope.toDate)) {\n return maxRowTo;\n }\n return to;\n };\n\n RowsManager.prototype.getDefaultFrom = function() {\n var defaultFrom;\n angular.forEach(this.rows, function(row) {\n if (defaultFrom === undefined || row.from < defaultFrom) {\n defaultFrom = row.from;\n }\n });\n return defaultFrom;\n };\n\n RowsManager.prototype.getDefaultTo = function() {\n var defaultTo;\n angular.forEach(this.rows, function(row) {\n if (defaultTo === undefined || row.to > defaultTo) {\n defaultTo = row.to;\n }\n });\n return defaultTo;\n };\n\n return RowsManager;\n }]);\n}());\n","(function() {\n 'use strict';\n angular.module('gantt').factory('GanttTask', [function() {\n var Task = function(row, model) {\n this.rowsManager = row.rowsManager;\n this.row = row;\n this.model = model;\n this.truncatedLeft = false;\n this.truncatedRight = false;\n };\n\n Task.prototype.isMilestone = function() {\n return !this.model.to || this.model.from - this.model.to === 0;\n };\n\n // Updates the pos and size of the task according to the from - to date\n Task.prototype.updatePosAndSize = function() {\n this.modelLeft = this.rowsManager.gantt.getPositionByDate(this.model.from);\n this.modelWidth = this.rowsManager.gantt.getPositionByDate(this.model.to) - this.modelLeft;\n\n var lastColumn = this.rowsManager.gantt.columnsManager.getLastColumn();\n var maxModelLeft = lastColumn ? lastColumn.left + lastColumn.width : 0;\n\n if (this.modelLeft + this.modelWidth < 0 || this.modelLeft > maxModelLeft) {\n this.left = undefined;\n this.width = undefined;\n } else {\n this.left = Math.min(Math.max(this.modelLeft, 0), this.rowsManager.gantt.width);\n if (this.modelLeft < 0) {\n this.truncatedLeft = true;\n if (this.modelWidth + this.modelLeft > this.rowsManager.gantt.width) {\n this.truncatedRight = true;\n this.width = this.rowsManager.gantt.width;\n } else {\n this.truncatedRight = false;\n this.width = this.modelWidth + this.modelLeft;\n }\n } else if (this.modelWidth + this.modelLeft > this.rowsManager.gantt.width) {\n this.truncatedRight = true;\n this.truncatedLeft = false;\n this.width = this.rowsManager.gantt.width - this.modelLeft;\n } else {\n this.truncatedLeft = false;\n this.truncatedRight = false;\n this.width = this.modelWidth;\n }\n\n if (this.width < 0) {\n this.left = this.left + this.width;\n this.width = -this.width;\n }\n }\n\n this.updateView();\n };\n\n Task.prototype.updateView = function() {\n if (this.$element) {\n if (this.left === undefined || this.width === undefined) {\n this.$element.css('display', 'none');\n } else {\n this.$element.css('display', '');\n\n this.$element.css('left', this.left + 'px');\n this.$element.css('width', this.width + 'px');\n\n this.$element.css('background-color', this.model.color);\n if (this.model.priority > 0) {\n this.$element.css('z-index', this.model.priority);\n }\n\n this.$element.toggleClass('gantt-task-milestone', this.isMilestone());\n this.$element.toggleClass('gantt-task', !this.isMilestone());\n }\n\n\n }\n };\n\n // Expands the start of the task to the specified position (in em)\n Task.prototype.setFrom = function(x, magnetEnabled) {\n this.model.from = this.rowsManager.gantt.getDateByPosition(x, magnetEnabled);\n this.row.setFromToByTask(this);\n this.updatePosAndSize();\n };\n\n // Expands the end of the task to the specified position (in em)\n Task.prototype.setTo = function(x, magnetEnabled) {\n this.model.to = this.rowsManager.gantt.getDateByPosition(x, magnetEnabled);\n this.row.setFromToByTask(this);\n this.updatePosAndSize();\n };\n\n // Moves the task to the specified position (in em)\n Task.prototype.moveTo = function(x, magnetEnabled) {\n if (x > this.left) {\n // Driven by right/to side.\n this.model.to = this.rowsManager.gantt.getDateByPosition(x + this.modelWidth, magnetEnabled);\n var newTaskRight = this.rowsManager.gantt.getPositionByDate(this.model.to);\n this.model.from = this.rowsManager.gantt.getDateByPosition(newTaskRight - this.modelWidth, false);\n } else {\n // Drive by left/from side.\n this.model.from = this.rowsManager.gantt.getDateByPosition(x, magnetEnabled);\n var newTaskLeft = this.rowsManager.gantt.getPositionByDate(this.model.from);\n this.model.to = this.rowsManager.gantt.getDateByPosition(newTaskLeft + this.modelWidth, false);\n }\n\n this.row.setFromToByTask(this);\n this.updatePosAndSize();\n };\n\n Task.prototype.clone = function() {\n return new Task(this.row, angular.copy(this.model));\n };\n\n return Task;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttBody', ['GanttBodyColumns', 'GanttBodyRows', 'GanttBodyBackground', 'GanttBodyForeground', function(BodyColumns, BodyRows, BodyBackground, BodyForeground) {\n var Body= function(gantt) {\n this.gantt = gantt;\n\n this.background = new BodyBackground(this);\n this.foreground = new BodyForeground(this);\n this.columns = new BodyColumns(this);\n this.rows = new BodyRows(this);\n };\n Body.prototype.getWidth = function() {\n return this.$element === undefined ? undefined : this.$element[0].offsetWidth;\n };\n return Body;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttBodyBackground', [function() {\n var GanttBodyBackground = function(body) {\n this.body = body;\n };\n return GanttBodyBackground;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttBodyColumns', [function() {\n var BodyColumns = function(body) {\n this.body = body;\n };\n return BodyColumns;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttBodyForeground', [function() {\n var GanttBodyForeground = function(body) {\n this.body = body;\n };\n return GanttBodyForeground;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttBodyRows', [function() {\n var BodyRows = function(body) {\n this.body = body;\n };\n return BodyRows;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttHeader', ['GanttHeaderColumns', function(HeaderColumns) {\n var Header = function(gantt) {\n this.gantt = gantt;\n this.columns = new HeaderColumns(this);\n\n this.getHeight = function() {\n return this.$element[0].offsetHeight;\n };\n };\n return Header;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttHeaderColumns', [function() {\n var HeaderColumns = function($element) {\n this.$element = $element;\n };\n return HeaderColumns;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttScroll', [function() {\n var Scroll = function(gantt) {\n this.gantt = gantt;\n\n this.gantt.api.registerEvent('scroll', 'scroll');\n\n this.gantt.api.registerMethod('scroll', 'to', Scroll.prototype.scrollTo, this);\n this.gantt.api.registerMethod('scroll', 'toDate', Scroll.prototype.scrollToDate, this);\n this.gantt.api.registerMethod('scroll', 'left', Scroll.prototype.scrollToLeft, this);\n this.gantt.api.registerMethod('scroll', 'right', Scroll.prototype.scrollToRight, this);\n\n this.gantt.api.registerMethod('scroll', 'setWidth', Scroll.prototype.setWidth, this);\n };\n\n Scroll.prototype.getScrollLeft = function() {\n return this.$element === undefined ? undefined : this.$element[0].scrollLeft;\n };\n\n Scroll.prototype.getScrollWidth = function() {\n return this.$element === undefined ? undefined : this.$element[0].scrollWidth;\n };\n\n Scroll.prototype.getWidth = function() {\n return this.$element === undefined ? undefined : this.$element[0].offsetWidth;\n };\n\n Scroll.prototype.setWidth = function(width) {\n if (this.$element[0]) {\n this.$element[0].offsetWidth = width;\n }\n };\n\n Scroll.prototype.getBordersWidth = function() {\n return this.$element === undefined ? undefined : (this.$element[0].offsetWidth - this.$element[0].clientWidth);\n };\n\n /**\n * Scroll to a position\n *\n * @param {number} position Position to scroll to.\n */\n Scroll.prototype.scrollTo = function(position) {\n this.$element[0].scrollLeft = position;\n this.$element.triggerHandler('scroll');\n };\n\n /**\n * Scroll to the left side\n *\n * @param {number} offset Offset to scroll.\n */\n Scroll.prototype.scrollToLeft = function(offset) {\n this.$element[0].scrollLeft -= offset;\n this.$element.triggerHandler('scroll');\n };\n\n /**\n * Scroll to the right side\n *\n * @param {number} offset Offset to scroll.\n */\n Scroll.prototype.scrollToRight = function(offset) {\n this.$element[0].scrollLeft += offset;\n this.$element.triggerHandler('scroll');\n };\n\n /**\n * Scroll to a date\n *\n * @param {moment} date moment to scroll to.\n */\n Scroll.prototype.scrollToDate = function(date) {\n var position = this.gantt.getPositionByDate(date);\n\n if (position !== undefined) {\n this.$element[0].scrollLeft = position - this.$element[0].offsetWidth / 2;\n }\n };\n\n return Scroll;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttSide', [function() {\n var Side= function(gantt) {\n this.gantt = gantt;\n\n this.gantt.api.registerMethod('side', 'setWidth', Side.prototype.setWidth, this);\n };\n Side.prototype.getWidth = function() {\n // If height is 0, returns a 0 width. (Case when no labels plugin is enabled).\n return this.$element === undefined ? undefined : (this.$element[0].offsetHeight === 0 ? 0 : this.$element[0].offsetWidth);\n };\n Side.prototype.setWidth = function(width) {\n if (this.$element !== undefined) {\n this.$element[0].offsetWidth = width;\n }\n };\n return Side;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttTimespan', [function() {\n var Timespan = function(gantt, model) {\n this.gantt = gantt;\n this.model = model;\n };\n\n // Updates the pos and size of the timespan according to the from - to date\n Timespan.prototype.updatePosAndSize = function() {\n this.modelLeft = this.gantt.getPositionByDate(this.model.from);\n this.modelWidth = this.gantt.getPositionByDate(this.model.to) - this.modelLeft;\n\n var lastColumn = this.gantt.columnsManager.getLastColumn();\n var maxModelLeft = lastColumn ? lastColumn.left + lastColumn.width : 0;\n\n if (this.modelLeft + this.modelWidth < 0 || this.modelLeft > maxModelLeft) {\n this.left = undefined;\n this.width = undefined;\n } else {\n this.left = Math.min(Math.max(this.modelLeft, 0), this.gantt.width);\n if (this.modelLeft < 0) {\n this.truncatedLeft = true;\n if (this.modelWidth + this.modelLeft > this.gantt.width) {\n this.truncatedRight = true;\n this.width = this.gantt.width;\n } else {\n this.truncatedRight = false;\n this.width = this.modelWidth + this.modelLeft;\n }\n } else if (this.modelWidth + this.modelLeft > this.gantt.width) {\n this.truncatedRight = true;\n this.truncatedLeft = false;\n this.width = this.gantt.width - this.modelLeft;\n } else {\n this.truncatedLeft = false;\n this.truncatedRight = false;\n this.width = this.modelWidth;\n }\n\n if (this.width < 0) {\n this.left = this.left + this.width;\n this.width = -this.width;\n }\n }\n\n\n this.updateView();\n };\n\n Timespan.prototype.updateView = function() {\n if (this.$element) {\n if (this.left === undefined || this.width === undefined) {\n this.$element.css('display', 'none');\n } else {\n this.$element.css('display', '');\n this.$element.css('left', this.left + 'px');\n this.$element.css('width', this.width + 'px');\n }\n }\n };\n\n // Expands the start of the timespan to the specified position (in em)\n Timespan.prototype.setFrom = function(x) {\n this.from = this.gantt.getDateByPosition(x);\n this.updatePosAndSize();\n };\n\n // Expands the end of the timespan to the specified position (in em)\n Timespan.prototype.setTo = function(x) {\n this.to = this.gantt.getDateByPosition(x);\n this.updatePosAndSize();\n };\n\n // Moves the timespan to the specified position (in em)\n Timespan.prototype.moveTo = function(x) {\n this.from = this.gantt.getDateByPosition(x);\n this.to = this.gantt.getDateByPosition(x + this.width);\n this.updatePosAndSize();\n };\n\n Timespan.prototype.clone = function() {\n return new Timespan(this.gantt, angular.copy(this.model));\n };\n\n return Timespan;\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('GanttTimespansManager', ['GanttTimespan', function(Timespan) {\n var GanttTimespansManager = function(gantt) {\n var self = this;\n\n this.gantt = gantt;\n\n this.timespansMap = {};\n this.timespans = [];\n\n this.gantt.$scope.$watchCollection('timespans', function(newValue) {\n self.clearTimespans();\n self.loadTimespans(newValue);\n });\n\n this.gantt.api.registerMethod('timespans', 'load', this.loadTimespans, this);\n this.gantt.api.registerMethod('timespans', 'remove', this.removeTimespans, this);\n this.gantt.api.registerMethod('timespans', 'clear', this.clearTimespans, this);\n\n this.gantt.api.registerEvent('timespans', 'add');\n this.gantt.api.registerEvent('timespans', 'remove');\n this.gantt.api.registerEvent('timespans', 'change');\n };\n\n // Adds or updates timespans\n GanttTimespansManager.prototype.loadTimespans = function(timespans) {\n if (!angular.isArray(timespans)) {\n timespans = timespans !== undefined ? [timespans] : [];\n }\n\n this.gantt.$scope.timespans = timespans;\n for (var i = 0, l = timespans.length; i < l; i++) {\n var timespanModel = timespans[i];\n this.gantt.objectModel.cleanTimespan(timespanModel);\n this.loadTimespan(timespanModel);\n }\n };\n\n // Adds a timespan or merges the timespan if there is already one with the same id\n GanttTimespansManager.prototype.loadTimespan = function(timespanModel) {\n // Copy to new timespan (add) or merge with existing (update)\n var timespan, isUpdate = false;\n\n if (timespanModel.id in this.timespansMap) {\n timespan = this.timespansMap[timespanModel.id];\n timespan.model = timespanModel;\n isUpdate = true;\n this.gantt.api.timespans.raise.change(timespan);\n } else {\n timespan = new Timespan(this.gantt, timespanModel);\n this.timespansMap[timespanModel.id] = timespan;\n this.timespans.push(timespan);\n this.gantt.api.timespans.raise.add(timespan);\n }\n\n timespan.updatePosAndSize();\n return isUpdate;\n };\n\n GanttTimespansManager.prototype.removeTimespans = function(timespans) {\n if (!angular.isArray(timespans)) {\n timespans = [timespans];\n }\n\n for (var i = 0, l = timespans.length; i < l; i++) {\n var timespanData = timespans[i];\n // Delete the timespan\n this.removeTimespan(timespanData.id);\n }\n this.updateVisibleObjects();\n };\n\n GanttTimespansManager.prototype.removeTimespan = function(timespanId) {\n if (timespanId in this.timespansMap) {\n delete this.timespansMap[timespanId]; // Remove from map\n\n var removedTimespan;\n var timespan;\n for (var i = this.timespans.length - 1; i >= 0; i--) {\n timespan = this.timespans[i];\n if (timespan.model.id === timespanId) {\n removedTimespan = timespan;\n this.timespans.splice(i, 1); // Remove from array\n break;\n }\n }\n\n this.gantt.api.timespans.raise.remove(removedTimespan);\n return removedTimespan;\n }\n\n return undefined;\n };\n\n // Removes all timespans\n GanttTimespansManager.prototype.clearTimespans = function() {\n this.timespansMap = {};\n this.timespans = [];\n };\n\n GanttTimespansManager.prototype.updateTimespansPosAndSize = function() {\n for (var i = 0, l = this.timespans.length; i < l; i++) {\n this.timespans[i].updatePosAndSize();\n }\n };\n\n return GanttTimespansManager;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').service('ganttArrays', [function() {\n return {\n moveToIndex: function(array, oldIndex, newIndex) {\n if (newIndex >= array.length) {\n var k = newIndex - array.length;\n while ((k--) + 1) {\n array.push(undefined);\n }\n }\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\n return array;\n },\n getRemovedIds: function(newArray, oldArray, idProperty) {\n if (idProperty === undefined) {\n idProperty = 'id';\n }\n\n var i, l;\n var removedIds = [];\n\n if (oldArray !== undefined) {\n for (i = 0, l = oldArray.length; i < l; i++) {\n removedIds.push(oldArray[i][idProperty]);\n }\n }\n\n if (newArray !== undefined) {\n for (i = 0, l = newArray.length; i < l; i++) {\n var newObject = newArray[i];\n\n if (newObject[idProperty] !== undefined) {\n var newObjectIndex = removedIds.indexOf(newObject[idProperty]);\n if (newObjectIndex > -1) {\n removedIds.splice(newObjectIndex, 1);\n }\n }\n }\n }\n\n return removedIds;\n },\n indexOfId: function(array, value, idProperties) {\n var i;\n if (idProperties === undefined) {\n idProperties = 'id';\n } else if (idProperties instanceof Array) {\n for (i = array.length - 1; i >= 0; i--) {\n var arrayValue = array[i];\n for (var k = 0, l = idProperties.length; k < l; k++) {\n arrayValue = arrayValue[idProperties[k]];\n }\n if (arrayValue === value) {\n return i;\n }\n }\n return -1;\n }\n for (i = array.length - 1; i >= 0; i--) {\n if (array[i][idProperties] === value) {\n return i;\n }\n }\n return -1;\n },\n removeId: function(array, value, idProperties) {\n var indexOf = this.indexOfId(array, value, idProperties);\n if (indexOf > -1) {\n return array.splice(indexOf, 1)[0];\n }\n },\n remove: function(array, value) {\n var index = array.indexOf(value);\n if (index > -1) {\n array.splice(index, 1);\n return true;\n }\n return false;\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').service('ganttBinarySearch', [ function() {\n // Returns the object on the left and right in an array using the given cmp function.\n // The compare function defined which property of the value to compare (e.g.: c => c.left)\n\n return {\n getIndicesOnly: function(input, value, comparer, strict) {\n var lo = -1, hi = input.length;\n while (hi - lo > 1) {\n var mid = Math.floor((lo + hi) / 2);\n if (strict ? comparer(input[mid]) < value : comparer(input[mid]) <= value) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n if (!strict && input[lo] !== undefined && comparer(input[lo]) === value) {\n hi = lo;\n }\n return [lo, hi];\n },\n get: function(input, value, comparer, strict) {\n var res = this.getIndicesOnly(input, value, comparer, strict);\n return [input[res[0]], input[res[1]]];\n }\n };\n }]);\n}());\n","(function() {\n 'use strict';\n angular.module('gantt').service('ganttUtils', ['$document', function($document) {\n return {\n createBoundedWrapper: function(object, method) {\n return function() {\n return method.apply(object, arguments);\n };\n },\n firstProperty: function(objects, propertyName, defaultValue) {\n for (var i = 0, l = objects.length; i < l; i++) {\n var object = objects[i];\n if (object !== undefined && propertyName in object) {\n if (object[propertyName] !== undefined) {\n return object[propertyName];\n }\n }\n }\n return defaultValue;\n },\n elementFromPoint: function(x, y) {\n return $document[0].elementFromPoint(x, y);\n },\n elementsFromPoint: function(x, y, depth) {\n var elements = [], previousPointerEvents = [], cDepth = 0, current, i, l, d;\n\n // get all elements via elementFromPoint, and remove them from hit-testing in order\n while ((current = this.elementFromPoint(x, y)) && elements.indexOf(current) === -1 && current !== null &&\n (depth === undefined || cDepth < depth)) {\n\n // push the element and its current style\n elements.push(current);\n previousPointerEvents.push({\n value: current.style.getPropertyValue('pointer-events'),\n priority: current.style.getPropertyPriority('pointer-events')\n });\n\n // add \"pointer-events: none\", to get to the underlying element\n current.style.setProperty('pointer-events', 'none', 'important');\n\n cDepth++;\n }\n\n // restore the previous pointer-events values\n for (i = 0, l = previousPointerEvents.length; i < l; i++) {\n d = previousPointerEvents[i];\n elements[i].style.setProperty('pointer-events', d.value ? d.value : '', d.priority);\n }\n\n return elements;\n },\n findElementFromPoint: function(x, y, checkFunction) {\n var elements = [], previousPointerEvents = [], cDepth = 0, current, found, i, l, d;\n\n // get all elements via elementFromPoint, and remove them from hit-testing in order\n while ((current = this.elementFromPoint(x, y)) && elements.indexOf(current) === -1 && current !== null) {\n\n // push the element and its current style\n elements.push(current);\n previousPointerEvents.push({\n value: current.style.getPropertyValue('pointer-events'),\n priority: current.style.getPropertyPriority('pointer-events')\n });\n\n // add \"pointer-events: none\", to get to the underlying element\n current.style.setProperty('pointer-events', 'none', 'important');\n\n cDepth++;\n\n if (checkFunction(current)) {\n found = current;\n break;\n }\n }\n\n // restore the previous pointer-events values\n for (i = 0, l = previousPointerEvents.length; i < l; i++) {\n d = previousPointerEvents[i];\n elements[i].style.setProperty('pointer-events', d.value ? d.value : '', d.priority);\n }\n\n return found;\n },\n random4: function() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n },\n randomUuid: function() {\n return this.random4() + this.random4() + '-' + this.random4() + '-' + this.random4() + '-' +\n this.random4() + '-' + this.random4() + this.random4() + this.random4();\n },\n newId: (function() {\n var seedId = new Date().getTime();\n return function() {\n return seedId += 1;\n };\n })()\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').filter('ganttColumnLimit', [ 'ganttBinarySearch', function(bs) {\n // Returns only the columns which are visible on the screen\n var leftComparator = function(c) {\n return c.left;\n };\n\n return function(input, gantt) {\n var scrollLeft = gantt.scroll.getScrollLeft();\n var scrollContainerWidth = gantt.scroll.getWidth();\n\n if (scrollContainerWidth > 0) {\n var start = bs.getIndicesOnly(input, scrollLeft, leftComparator)[0];\n var end = bs.getIndicesOnly(input, scrollLeft + scrollContainerWidth, leftComparator)[1];\n return input.slice(start, end);\n } else {\n return input.slice();\n }\n\n\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').filter('ganttTaskLimit', [function() {\n // Returns only the tasks which are visible on the screen\n // Use the task width and position to decide if a task is still visible\n\n return function(input, gantt) {\n var firstColumn = gantt.columnsManager.getFirstColumn();\n var lastColumn = gantt.columnsManager.getLastColumn();\n\n if (firstColumn !== undefined && lastColumn !== undefined) {\n var res = [];\n\n var scrollLeft = gantt.scroll.getScrollLeft();\n var scrollContainerWidth = gantt.scroll.getWidth();\n\n for (var i = 0, l = input.length; i < l; i++) {\n var task = input[i];\n\n if (task.active) {\n res.push(task);\n } else {\n // If the task can be drawn with gantt columns only.\n if (task.model.to > firstColumn.date && task.model.from < lastColumn.endDate) {\n\n // If task has a visible part on the screen\n if (!scrollContainerWidth ||\n task.left >= scrollLeft && task.left <= scrollLeft + scrollContainerWidth ||\n task.left + task.width >= scrollLeft && task.left + task.width <= scrollLeft + scrollContainerWidth ||\n task.left < scrollLeft && task.left + task.width > scrollLeft + scrollContainerWidth) {\n\n res.push(task);\n }\n }\n }\n }\n\n return res;\n } else {\n return input.splice();\n }\n };\n }]);\n}());\n\n","(function() {\n 'use strict';\n\n angular.module('gantt').directive('ganttResizer', ['$document', 'ganttMouseOffset', function($document, mouseOffset) {\n return {\n restrict: 'A',\n require: '^gantt',\n scope: {\n targetElement: '=ganttResizer',\n enabled: '=?ganttResizerEnabled'\n },\n link: function ($scope, $element, $attrs, ganttCtrl) {\n var api = ganttCtrl.gantt.api;\n var eventTopic = $attrs.ganttResizerEventTopic;\n\n if ($scope.enabled === undefined) {\n $scope.enabled = true;\n }\n\n $scope.$watch('enabled', function (value) {\n if (value === undefined) {\n value = true;\n }\n\n $element.toggleClass('gantt-resizer-enabled', value);\n\n if (value) {\n $element.on('mousedown', mousedown);\n } else {\n $element.off('mousedown', mousedown);\n }\n });\n\n function mousedown(event) {\n event.preventDefault();\n\n if (eventTopic !== undefined) {\n api[eventTopic].raise.resizeBegin(getWidth());\n }\n $document.on('mousemove', mousemove);\n $document.on('mouseup', mouseup);\n }\n\n function mousemove(event) {\n var offset = mouseOffset.getOffsetForElement($scope.targetElement[0], event);\n var width = offset.x;\n\n if (width !== undefined) {\n setWidth(width);\n }\n }\n\n function mouseup() {\n if (eventTopic !== undefined) {\n api[eventTopic].raise.resizeEnd(getWidth());\n }\n $document.unbind('mousemove', mousemove);\n $document.unbind('mouseup', mouseup);\n }\n\n function setWidth(width) {\n var oldWidth = getWidth();\n if (oldWidth !== width) {\n $scope.targetElement[0].style.width = width + 'px';\n\n if ($attrs.resizerWidth) {\n $scope.$eval($attrs.resizerWidth + ' = $$xValue', {'$$xValue': width});\n ganttCtrl.gantt.$scope.$digest(); // May not be there as resizer is generic ?\n }\n\n if (eventTopic !== undefined) {\n api[eventTopic].raise.resize(width);\n }\n }\n }\n\n function getWidth() {\n return $scope.targetElement[0].offsetWidth;\n }\n\n if (eventTopic) {\n api.registerEvent(eventTopic, 'resize');\n api.registerEvent(eventTopic, 'resizeBegin');\n api.registerEvent(eventTopic, 'resizeEnd');\n\n api.registerMethod(eventTopic, 'setWidth', setWidth, this);\n api.registerMethod(eventTopic, 'getWidth', getWidth, this);\n }\n }\n };\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttHorizontalScrollReceiver', function() {\n // The element with this attribute will scroll at the same time as the scrollSender element\n\n return {\n restrict: 'A',\n require: '^ganttScrollManager',\n link: function(scope, element, attrs, ganttScrollManagerCtrl) {\n ganttScrollManagerCtrl.registerHorizontalReceiver(element);\n }\n };\n });\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttScrollManager', function() {\n // The element with this attribute will scroll at the same time as the scrollSender element\n\n return {\n restrict: 'A',\n scope: {},\n controller: ['$scope', function($scope) {\n $scope.horizontal = [];\n $scope.vertical = [];\n\n this.registerVerticalReceiver = function (element) {\n element.css('position', 'relative');\n $scope.vertical.push(element[0]);\n };\n\n this.registerHorizontalReceiver = function (element) {\n element.css('position', 'relative');\n $scope.horizontal.push(element[0]);\n };\n\n this.getHorizontalRecievers = function() {\n return $scope.horizontal;\n };\n\n this.getVerticalRecievers = function() {\n return $scope.vertical;\n };\n }]\n };\n });\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttScrollSender', [function() {\n // Updates the element which are registered for the horizontal or vertical scroll event\n\n return {\n restrict: 'A',\n require: ['^gantt', '^ganttScrollManager'],\n link: function(scope, element, attrs, controllers) {\n var el = element[0];\n\n var updateListeners = function() {\n var i, l;\n\n var vertical = controllers[1].getVerticalRecievers();\n for (i = 0, l = vertical.length; i < l; i++) {\n var vElement = vertical[i];\n if (vElement.parentNode.scrollTop !== el.scrollTop) {\n vElement.parentNode.scrollTop = el.scrollTop;\n }\n }\n\n var horizontal = controllers[1].getHorizontalRecievers();\n for (i = 0, l = horizontal.length; i < l; i++) {\n var hElement =horizontal[i];\n if (hElement.parentNode.scrollLeft !== el.scrollLeft) {\n hElement.parentNode.scrollLeft = el.scrollLeft;\n }\n }\n };\n\n element.bind('scroll', updateListeners);\n\n scope.oldBodyWidth = undefined;\n scope.$watch(function() {\n var newWidth = controllers[0].gantt.body.getWidth();\n if (scope.oldBodyWidth !== newWidth) {\n scope.oldBodyWidth = newWidth;\n var horizontal = controllers[1].getHorizontalRecievers();\n for (var i = 0, l = horizontal.length; i < l; i++) {\n var hElement = horizontal[i];\n hElement.style.width = newWidth + 'px';\n }\n }\n });\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttScrollable', ['GanttDirectiveBuilder', 'ganttDebounce', 'moment', function(Builder, debounce, moment) {\n var builder = new Builder('ganttScrollable');\n builder.controller = function($scope, $element) {\n $scope.gantt.scroll.$element = $element;\n var lastScrollLeft;\n\n var lastAutoExpand;\n var autoExpandCoolDownPeriod = 500;\n var autoExpandColumns = function(el, date, direction) {\n if ($scope.autoExpand !== 'both' && $scope.autoExpand !== true && $scope.autoExpand !== direction) {\n return;\n }\n\n if (Date.now() - lastAutoExpand < autoExpandCoolDownPeriod) {\n return;\n }\n\n var from, to;\n var expandHour = 1, expandDay = 31;\n\n if (direction === 'left') {\n from = $scope.viewScale === 'hour' ? moment(date).add(-expandHour, 'day') : moment(date).add(-expandDay, 'day');\n to = date;\n } else {\n from = date;\n to = $scope.viewScale === 'hour' ? moment(date).add(expandHour, 'day') : moment(date).add(expandDay, 'day');\n }\n\n $scope.fromDate = from;\n $scope.toDate = to;\n lastAutoExpand = Date.now();\n };\n\n $element.bind('scroll', debounce(function() {\n var el = $element[0];\n var direction;\n var date;\n\n if (el.scrollLeft < lastScrollLeft && el.scrollLeft === 0) {\n direction = 'left';\n date = $scope.gantt.columnsManager.from;\n } else if (el.scrollLeft > lastScrollLeft && el.offsetWidth + el.scrollLeft >= el.scrollWidth - 1) {\n direction = 'right';\n date = $scope.gantt.columnsManager.to;\n }\n\n lastScrollLeft = el.scrollLeft;\n $scope.gantt.columnsManager.updateVisibleColumns();\n $scope.gantt.rowsManager.updateVisibleTasks();\n\n if (date !== undefined) {\n autoExpandColumns(el, date, direction);\n $scope.gantt.api.scroll.raise.scroll(el.scrollLeft, date, direction);\n } else {\n $scope.gantt.api.scroll.raise.scroll(el.scrollLeft);\n }\n }, 5));\n\n $scope.getScrollableCss = function() {\n var css = {};\n\n if ($scope.maxHeight > 0) {\n css['max-height'] = $scope.maxHeight - $scope.gantt.header.getHeight() + 'px';\n css['overflow-y'] = 'auto';\n css['border-right'] = 'none'; // Could be enhanced, display borders only when vertical scroll is displayed.\n }\n\n return css;\n };\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttVerticalScrollReceiver', function() {\n // The element with this attribute will scroll at the same time as the scrollSender element\n\n return {\n restrict: 'A',\n require: '^ganttScrollManager',\n link: function(scope, element, attrs, ganttScrollManagerCtrl) {\n ganttScrollManagerCtrl.registerVerticalReceiver(element);\n }\n };\n });\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttElementLeftListener', [function() {\n return {\n restrict: 'A',\n controller: ['$scope', '$element', '$attrs', function($scope, $element, $attrs) {\n var scopeVariable = $attrs.ganttElementLeftListener;\n if (scopeVariable === '') {\n scopeVariable = 'ganttElementLeft';\n }\n\n var effectiveScope = $scope;\n\n while(scopeVariable.indexOf('$parent.') === 0) {\n scopeVariable = scopeVariable.substring('$parent.'.length);\n effectiveScope = effectiveScope.$parent;\n }\n\n effectiveScope.$watch(function() {\n effectiveScope[scopeVariable] = $element[0].left;\n });\n }]\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttElementWidthListener', [function() {\n return {\n restrict: 'A',\n controller: ['$scope', '$element', '$attrs', function($scope, $element, $attrs) {\n var scopeVariable = $attrs.ganttElementWidthListener;\n if (scopeVariable === '') {\n scopeVariable = 'ganttElementWidth';\n }\n\n var effectiveScope = $scope;\n\n while(scopeVariable.indexOf('$parent.') === 0) {\n scopeVariable = scopeVariable.substring('$parent.'.length);\n effectiveScope = effectiveScope.$parent;\n }\n\n effectiveScope.$watch(function() {\n if ($element[0].offsetWidth > 0) {\n effectiveScope[scopeVariable] = $element[0].offsetWidth;\n }\n });\n }]\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttBody', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttBody');\n builder.controller = function($scope, $element) {\n $scope.gantt.body.$element = $element;\n $scope.gantt.body.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttBodyBackground', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttBodyBackground');\n builder.controller = function($scope, $element) {\n $scope.gantt.body.background.$element = $element;\n $scope.gantt.body.background.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttBodyColumns', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttBodyColumns');\n builder.controller = function($scope, $element) {\n $scope.gantt.body.columns.$element = $element;\n $scope.gantt.body.background.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttBodyForeground', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttBodyForeground');\n builder.controller = function($scope, $element) {\n $scope.gantt.body.foreground.$element = $element;\n $scope.gantt.body.foreground.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttBodyRows', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttBodyRows');\n builder.controller = function($scope, $element) {\n $scope.gantt.body.rows.$element = $element;\n $scope.gantt.body.rows.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttColumn', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttColumn');\n builder.controller = function($scope, $element) {\n $scope.column.$element = $element;\n $scope.column.$scope = $scope;\n $scope.column.updateView();\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttColumnHeader', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttColumnHeader');\n builder.controller = function($scope, $element) {\n $scope.column.$element = $element;\n $scope.column.$scope = $scope;\n $scope.column.updateView();\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttHeader', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttHeader');\n builder.controller = function($scope, $element) {\n $scope.gantt.header.$element = $element;\n $scope.gantt.header.$scope = $scope;\n\n $scope.getHeaderCss = function() {\n var css = {};\n\n if ($scope.gantt.width - $scope.gantt.side.getWidth() > $scope.gantt.width) {\n css.width = $scope.gantt.width + 'px';\n }\n\n return css;\n };\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttHeaderColumns', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttHeaderColumns');\n builder.controller = function($scope, $element) {\n $scope.gantt.header.columns.$element = $element;\n $scope.gantt.header.columns.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttRow', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttRow');\n builder.controller = function($scope, $element) {\n $scope.row.$element = $element;\n $scope.row.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttRowBackground', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttRowBackground');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttScrollableHeader', ['GanttDirectiveBuilder', 'ganttLayout', function(Builder, layout) {\n var builder = new Builder('ganttScrollableHeader');\n builder.controller = function($scope) {\n var scrollBarWidth = layout.getScrollBarWidth();\n $scope.getScrollableHeaderCss = function() {\n var css = {};\n\n if ($scope.maxHeight > 0) {\n css.width = $scope.gantt.getWidth() - $scope.gantt.side.getWidth() - scrollBarWidth + 'px';\n }\n\n return css;\n };\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttSide', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttSide');\n builder.controller = function($scope, $element) {\n $scope.gantt.side.$element = $element;\n $scope.gantt.side.$scope = $scope;\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttSideContent', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttSideContent');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttTask', ['GanttDirectiveBuilder', 'moment', function(Builder, moment) {\n var builder = new Builder('ganttTask');\n builder.controller = function($scope, $element) {\n $scope.task.$element = $element;\n $scope.task.$scope = $scope;\n\n $scope.simplifyMoment = function(d) {\n return moment.isMoment(d) ? d.unix() : d;\n };\n\n $scope.$watchGroup(['simplifyMoment(task.model.from)', 'simplifyMoment(task.model.to)'], function() {\n $scope.task.updatePosAndSize();\n });\n };\n return builder.build();\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttTaskContent', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttTaskContent');\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttTimeFrame', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttTimeFrame');\n builder.controller = function($scope, $element) {\n $scope.timeFrame.$element = $element;\n $scope.timeFrame.$scope = $scope;\n $scope.timeFrame.updateView();\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').directive('ganttTimespan', ['GanttDirectiveBuilder', function(Builder) {\n var builder = new Builder('ganttTimespan');\n builder.controller = function($scope, $element) {\n $scope.timespan.$element = $element;\n $scope.timespan.$scope = $scope;\n $scope.timespan.updateView();\n };\n return builder.build();\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').factory('ganttDebounce', ['$timeout', function($timeout) {\n function debounce(fn, timeout, invokeApply) {\n var nthCall = 0;\n return function() {\n var self = this;\n var argz = arguments;\n nthCall++;\n var later = (function(version) {\n return function() {\n if (version === nthCall) {\n return fn.apply(self, argz);\n }\n };\n })(nthCall);\n return $timeout(later, timeout, invokeApply === undefined ? true: invokeApply);\n };\n }\n\n return debounce;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').service('GanttDirectiveBuilder', [function() {\n var DirectiveBuilder = function DirectiveBuilder(directiveName, templateUrl, require, restrict) {\n var self = this;\n\n this.directiveName = directiveName;\n this.templateUrl = templateUrl === undefined ? 'template/' + directiveName + '.tmpl.html' : templateUrl;\n this.require = require === undefined ? '^gantt' : require;\n this.restrict = restrict === undefined ? 'E' : restrict;\n this.scope = false;\n this.transclude = true;\n this.replace = true;\n\n this.build = function() {\n var directiveName = self.directiveName;\n var templateUrl = self.templateUrl;\n var controllerFunction = self.controller;\n\n return {\n restrict: self.restrict,\n require: self.require,\n transclude: self.transclude,\n replace: self.replace,\n scope: self.scope,\n templateUrl: function(tElement, tAttrs) {\n if (tAttrs.templateUrl === undefined) {\n return templateUrl;\n } else {\n return tAttrs.templateUrl;\n }\n },\n compile: function () {\n return {\n pre: function preLink(scope, iElement, iAttrs, controller) {\n scope.gantt.api.directives.raise.preLink(directiveName, scope, iElement, iAttrs, controller);\n },\n post: function postLink(scope, iElement, iAttrs, controller) {\n scope.gantt.api.directives.raise.postLink(directiveName, scope, iElement, iAttrs, controller);\n }\n };\n },\n controller: ['$scope', '$element', '$attrs', function($scope, $element, $attrs) {\n var controller = this;\n\n if (controllerFunction !== undefined) {\n controllerFunction($scope, $element, $attrs, controller);\n }\n\n $scope.gantt.api.directives.raise.new(directiveName, $scope, $element, $attrs, controller);\n $scope.$on('$destroy', function() {\n $scope.gantt.api.directives.raise.destroy(directiveName, $scope, $element, $attrs, controller);\n });\n }]\n };\n };\n };\n\n return DirectiveBuilder;\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').service('ganttEnableNgAnimate', ['$injector', function($injector) {\n var ngAnimate;\n try {\n ngAnimate = $injector.get('$animate');\n } catch (e) {\n }\n\n if (ngAnimate !== undefined) {\n return function(enabled, element) {\n ngAnimate.enabled(false, element);\n };\n } else {\n return function() {};\n }\n\n\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').service('ganttLayout', ['$document', function($document) {\n return {\n /**\n * Compute the width of scrollbar.\n *\n * @returns {number} width of the scrollbar, in px.\n */\n getScrollBarWidth: function() {\n var inner = $document[0].createElement('p');\n inner.style.width = '100%';\n inner.style.height = '200px';\n\n var outer = $document[0].createElement('div');\n outer.style.position = 'absolute';\n outer.style.top = '0px';\n outer.style.left = '0px';\n outer.style.visibility = 'hidden';\n outer.style.width = '200px';\n outer.style.height = '150px';\n outer.style.overflow = 'hidden';\n outer.appendChild (inner);\n\n $document[0].body.appendChild (outer);\n var w1 = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var w2 = inner.offsetWidth;\n if (w1 === w2) {\n w2 = outer.clientWidth;\n }\n $document[0].body.removeChild (outer);\n\n return (w1 - w2);\n },\n\n setColumnsWidth: function(width, originalWidth, columns) {\n if (width && originalWidth && columns) {\n\n var widthFactor = Math.abs(width / originalWidth);\n\n angular.forEach(columns, function(column) {\n column.left = widthFactor * column.originalSize.left;\n column.width = widthFactor * column.originalSize.width;\n\n angular.forEach(column.timeFrames, function(timeFrame) {\n timeFrame.left = widthFactor * timeFrame.originalSize.left;\n timeFrame.width = widthFactor * timeFrame.originalSize.width;\n });\n });\n }\n }\n };\n }]);\n}());\n\n","(function(){\n 'use strict';\n angular.module('gantt').service('ganttMouseButton', [ function() {\n // Mouse button cross browser normalization\n\n return {\n getButton: function(e) {\n e = e || window.event;\n\n if (!e.which) {\n if (e.button === undefined) {\n return 1;\n }\n return e.button < 2 ? 1 : e.button === 4 ? 2 : 3;\n } else {\n return e.which;\n }\n }\n };\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').service('ganttMouseOffset', [ function() {\n // Mouse offset support for lesser browsers (read IE 8)\n\n return {\n getTouch: function(evt) {\n if (evt.touches !== undefined) {\n return evt.touches[0];\n }\n return evt;\n },\n getOffset: function(evt) {\n if (evt.offsetX && evt.offsetY) {\n return { x: evt.offsetX, y: evt.offsetY };\n }\n if (evt.layerX && evt.layerY) {\n return { x: evt.layerX, y: evt.layerY };\n }\n return this.getOffsetForElement(evt.target, evt);\n },\n getOffsetForElement: function(el, evt) {\n var bb = el.getBoundingClientRect();\n return { x: evt.clientX - bb.left, y: evt.clientY - bb.top };\n }\n };\n }]);\n}());\n","(function(){\n 'use strict';\n angular.module('gantt').factory('ganttSmartEvent', [function() {\n // Auto released the binding when the scope is destroyed. Use if an event is registered on another element than the scope.\n\n function smartEvent($scope, $element, event, fn) {\n $scope.$on('$destroy', function() {\n $element.unbind(event, fn);\n });\n\n return {\n bindOnce: function() {\n $element.one(event, fn);\n },\n bind: function() {\n $element.bind(event, fn);\n },\n unbind: function() {\n $element.unbind(event, fn);\n }\n };\n }\n\n return smartEvent;\n }]);\n}());\n","angular.module('gantt.templates', []).run(['$templateCache', function($templateCache) {\n $templateCache.put('template/gantt.tmpl.html',\n '
\\n' +\n ' \\n' +\n ' \\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n ' \\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n ' \\n' +\n ' \\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n ' \\n' +\n ' \\n' +\n ' \\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '
\\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n ' \\n' +\n ' \\n' +\n '\\n' +\n '
\\n' +\n '');\n}]);\n"]} \ No newline at end of file diff --git a/dist/angular-gantt.min.css b/dist/angular-gantt.min.css index 7f174ec45..ed7656697 100644 --- a/dist/angular-gantt.min.css +++ b/dist/angular-gantt.min.css @@ -1 +1 @@ -.gantt{line-height:normal}.clearfix-container:after,.clearfix-container:before{content:"";display:table}.clearfix-container:after{clear:both}.clearfix-container{zoom:1}.gantt-scrollable{overflow-x:auto;border-left:1px solid #ddd;border-right:1px solid #ddd}.gantt-scrollable-header{overflow-x:hidden;border-left:1px solid #ddd;border-right:1px solid #ddd}.gantt-header,.gantt-side,.gantt-task{cursor:default}.gantt-header{overflow:hidden}.gantt-header-columns{position:relative;height:100%}.gantt-side{float:left;position:relative}.gantt-header-row,.gantt-labels-header-row{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;height:2em;white-space:nowrap;border-top:1px solid #ddd}.gantt-header-row-last,.gantt-labels-header-row-last{border-bottom:1px solid #ddd}.gantt-header-row .gantt-column-header{position:absolute;border-right:1px solid #ddd}.gantt-header-row .gantt-column-header-last{position:absolute;border-right:none}.gantt-header-row .gantt-column-header,.gantt-labels-header-row span{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:inline-block;height:2em;text-align:center;padding-top:.5em;overflow:hidden;text-overflow:clip}.gantt-foreground-col,.gantt-foreground-col-current-date,.gantt-foreground-col-nonworkhour,.gantt-foreground-col-weekend{position:absolute;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:inline-block;height:100%;border-right:1px solid #ddd}.gantt-foreground-col-nonworkhour,.gantt-foreground-col-weekend{background-color:rgba(200,200,200,.3)}.gantt-column-header-last,.gantt-column-last{border-right:none}.gantt-labels-header-row{padding-left:12px;padding-right:12px;overflow:hidden;white-space:nowrap}.gantt-body{position:relative;height:100%}.gantt-body-rows{overflow-x:hidden}.gantt-body-background,.gantt-body-foreground{position:absolute;height:100%;width:100%}.gantt-body-columns{position:absolute;height:100%}.gantt-resizer{position:absolute;z-index:10;right:-6px;top:0;width:12px;height:100%}.gantt-resizer-enabled{cursor:ew-resize}.gantt-resizer-display{margin-left:auto;margin-right:auto;width:4px;background-color:#DDD;background-image:linear-gradient(90deg,transparent 50%,rgba(255,255,255,.5) 50%);background-size:2px 2px;height:100%}.gantt-timeframe{position:absolute;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;height:100%}.gantt-timeframe-non-working{background-color:#d3d3d3;opacity:.3}.gantt-foreground-col-current-date{background-color:green;opacity:.6}.gantt-background-row-alt{background-color:#EFEFEF}.gantt-row{position:relative}.gantt-row:hover{z-index:999}.gantt-row-height{height:2em}.gantt-task{position:absolute;margin:auto;top:0;bottom:0;min-width:.6em;height:80%;background-color:grey;border-radius:2px}.gantt-task-milestone{position:absolute;margin:auto;top:0;bottom:0;width:.6em!important;height:80%;background-color:grey;border-radius:.3em}.gantt-task-content{position:relative;margin-left:5px;margin-right:5px;margin-top:.3em;text-align:center;overflow:hidden;z-index:10}.gantt-task-truncated-left{position:absolute;top:0;bottom:0;left:.3em}.gantt-task-truncated-right{position:absolute;top:0;bottom:0;right:.3em}.gantt-task-truncated-left span,.gantt-task-truncated-right span{color:#fff;font-size:1.5em;font-weight:bolder}.gantt-task-content span{display:inline-block;white-space:nowrap}.gantt-timespan{position:absolute;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:inline-block;height:100%;color:#000;background-color:rgba(158,158,158,.5);border-left:1px solid rgba(158,158,158,1);border-right:1px solid rgba(158,158,158,1)}.gantt-current-date-line{border:1px dotted green;opacity:.6;height:100%;position:absolute;z-index:2}.unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} \ No newline at end of file +.gantt{line-height:normal}.clearfix-container:after,.clearfix-container:before{content:"";display:table}.clearfix-container:after{clear:both}.clearfix-container{zoom:1}.gantt-scrollable{overflow-x:auto;border-left:1px solid #ddd;border-right:1px solid #ddd}.gantt-scrollable-header{overflow-x:hidden;border-left:1px solid #ddd;border-right:1px solid #ddd}.gantt-header,.gantt-side,.gantt-task{cursor:default}.gantt-header{overflow:hidden}.gantt-header-columns{position:relative;height:100%}.gantt-side{float:left;position:relative}.gantt-header-row,.gantt-labels-header-row{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;height:2em;white-space:nowrap;border-top:1px solid #ddd}.gantt-header-row-last,.gantt-labels-header-row-last{border-bottom:1px solid #ddd}.gantt-header-row .gantt-column-header{position:absolute;border-right:1px solid #ddd}.gantt-header-row .gantt-column-header-last{position:absolute;border-right:none}.gantt-header-row .gantt-column-header,.gantt-labels-header-row span{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:inline-block;height:2em;text-align:center;padding-top:.5em;overflow:hidden;text-overflow:clip}.gantt-foreground-col,.gantt-foreground-col-current-date,.gantt-foreground-col-nonworkhour,.gantt-foreground-col-weekend{position:absolute;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:inline-block;height:100%;border-right:1px solid #ddd}.gantt-foreground-col-nonworkhour,.gantt-foreground-col-weekend{background-color:rgba(200,200,200,.3)}.gantt-column-header-last,.gantt-column-last{border-right:none}.gantt-labels-header-row{padding-left:12px;padding-right:12px;overflow:hidden;white-space:nowrap}.gantt-body{position:relative;height:100%}.gantt-body-rows{overflow-x:hidden}.gantt-body-background,.gantt-body-foreground{position:absolute;height:100%;width:100%}.gantt-body-columns{position:absolute;height:100%}.gantt-resizer{position:absolute;z-index:10;right:-6px;top:0;width:12px;height:100%}.gantt-resizer-enabled{cursor:ew-resize}.gantt-resizer-display{margin-left:auto;margin-right:auto;width:4px;background-color:#DDD;background-image:linear-gradient(90deg,transparent 50%,rgba(255,255,255,.5) 50%);background-size:2px 2px;height:100%}.gantt-timeframe{position:absolute;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;height:100%}.gantt-timeframe-non-working{background-color:#d3d3d3;opacity:.3}.gantt-foreground-col-current-date{background-color:green;opacity:.6}.gantt-background-row-alt{background-color:#EFEFEF}.gantt-row{position:relative}.gantt-row-height{height:2em}.gantt-task{position:absolute;margin:auto;top:0;bottom:0;min-width:.6em;height:80%;background-color:grey;border-radius:2px}.gantt-task-milestone{position:absolute;margin:auto;top:0;bottom:0;width:.6em!important;height:80%;background-color:grey;border-radius:.3em}.gantt-task-content{position:relative;margin-left:5px;margin-right:5px;margin-top:.3em;text-align:center;overflow:hidden;z-index:10}.gantt-task-truncated-left{position:absolute;top:0;bottom:0;left:.3em}.gantt-task-truncated-right{position:absolute;top:0;bottom:0;right:.3em}.gantt-task-truncated-left span,.gantt-task-truncated-right span{color:#fff;font-size:1.5em;font-weight:bolder}.gantt-task-content span{display:inline-block;white-space:nowrap}.gantt-timespan{position:absolute;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:inline-block;height:100%;color:#000;background-color:rgba(158,158,158,.5);border-left:1px solid rgba(158,158,158,1);border-right:1px solid rgba(158,158,158,1)}.gantt-current-date-line{border:1px dotted green;opacity:.6;height:100%;position:absolute;z-index:2}.unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} \ No newline at end of file diff --git a/dist/angular-gantt.min.js b/dist/angular-gantt.min.js index c95938b9f..7d2e090c4 100644 --- a/dist/angular-gantt.min.js +++ b/dist/angular-gantt.min.js @@ -1,12 +1,12 @@ /* -Project: angular-gantt v1.0.0-rc6 - Gantt chart component for AngularJS +Project: angular-gantt v1.0.0-rc7 - Gantt chart component for AngularJS Authors: Marco Schweighauser, Rémi Alvergnat License: MIT Homepage: http://www.angular-gantt.com Github: https://github.com/angular-gantt/angular-gantt.git */ -!function(){"use strict";angular.module("gantt",["gantt.templates","angularMoment"]).directive("gantt",["Gantt","ganttOptions","GanttCalendar","moment","ganttMouseOffset","ganttDebounce","ganttEnableNgAnimate","$timeout","$templateCache",function(a,b,c,d,e,f,g,h,i){return{restrict:"A",transclude:!0,templateUrl:function(a,b){var c;return c=void 0===b.templateUrl?"template/gantt.tmpl.html":b.templateUrl,void 0!==b.template&&i.put(c,b.template),c},scope:{sortMode:"=?",filterTask:"=?",filterTaskComparator:"=?",filterRow:"=?",filterRowComparator:"=?",viewScale:"=?",columnWidth:"=?",allowSideResizing:"=?",fromDate:"=?",toDate:"=?",currentDateValue:"=?",currentDate:"=?",autoExpand:"=?",taskOutOfRange:"=?",maxHeight:"=?",headers:"=?",headersFormats:"=?",timeFrames:"=?",dateFrames:"=?",timeFramesWorkingMode:"=?",timeFramesNonWorkingMode:"=?",timespans:"=?",columnMagnet:"=?",shiftColumnMagnet:"=?",data:"=?",api:"=?",options:"=?"},controller:["$scope","$element",function(c,d){for(var e in c.options)c[e]=c.options[e];b.initialize(c),g(!1,d),c.gantt=new a(c,d),this.gantt=c.gantt}],link:function(a,b){a.gantt.api.directives.raise.new("gantt",a,b),a.$on("$destroy",function(){a.gantt.api.directives.raise.destroy("gantt",a,b)}),h(function(){a.gantt.api.core.raise.ready(a.gantt.api),a.gantt.rendered=!0,a.gantt.columnsManager.generateColumns(),a.gantt.api.core.raise.rendered(a.gantt.api)})}}}])}(),function(){"use strict";angular.module("gantt").factory("GanttApi",["$q","$rootScope","ganttUtils",function(a,b,c){function d(a,b,c,d){return a.$on(b,function(){var a=Array.prototype.slice.call(arguments);a.splice(0,1),c.apply(d.api,a)})}var e=function(a){this.gantt=a,this.listeners=[],this.apiId=c.newId()};return e.prototype.suppressEvents=function(a,b){var c=this,e=angular.isArray(a)?a:[a],f=[];e.forEach(function(a){f=c.listeners.filter(function(b){return a===b.handler})}),f.forEach(function(a){a.dereg()}),b(),f.forEach(function(a){a.dereg=d(a.scope,a.eventId,a.handler,c.gantt)})},e.prototype.registerEvent=function(a,c){var e=this;e[a]||(e[a]={});var f=e[a];f.on||(f.on={},f.raise={});var g="event:gantt:"+this.apiId+":"+a+":"+c;f.raise[c]=function(){b.$broadcast.apply(b,[g].concat(Array.prototype.slice.call(arguments)))},f.on[c]=function(a,b){var c=d(a,g,b,e.gantt),f={handler:b,dereg:c,eventId:g,scope:a};e.listeners.push(f),a.$on("$destroy",function(){f.dereg=null,f.handler=null,f.eventId=null,f.scope=null})}},e.prototype.registerEventsFromObject=function(a){var b=this,c=[];angular.forEach(a,function(a,b){var d={name:b,events:[]};angular.forEach(a,function(a,b){d.events.push(b)}),c.push(d)}),c.forEach(function(a){a.events.forEach(function(c){b.registerEvent(a.name,c)})})},e.prototype.registerMethod=function(a,b,d,e){this[a]||(this[a]={});var f=this[a];f[b]=c.createBoundedWrapper(e||this.gantt,d)},e.prototype.registerMethodsFromObject=function(a,b){var c=this,d=[];angular.forEach(a,function(a,b){var c={name:b,methods:[]};angular.forEach(a,function(a,b){c.methods.push({name:b,fn:a})}),d.push(c)}),d.forEach(function(a){a.methods.forEach(function(d){c.registerMethod(a.name,d.name,d.fn,b)})})},e}])}(),function(){"use strict";angular.module("gantt").factory("ganttOptions",["moment",function(a){return{initialize:function(b){return b.api=b.api||angular.noop(),b.data=b.data||[],b.timespans=b.timespans||[],b.sortMode=b.sortMode||void 0,b.filterTask=b.filterTask||void 0,b.filterTaskComparator=b.filterTaskComparator||void 0,b.filterRow=b.filterRow||void 0,b.filterRowComparator=b.filterRowComparator||void 0,b.viewScale=b.viewScale||"day",b.columnMagnet=b.columnMagnet||"15 minutes",b.columnWidth=b.columnWidth||void 0,b.fromDate=b.fromDate||void 0,b.toDate=b.toDate||void 0,b.allowSideResizing=void 0!==b.allowSideResizing?!!b.allowSideResizing:!0,b.currentDate=b.currentDate||"line",b.currentDateValue=b.currentDateValue||a(),b.autoExpand=b.autoExpand||"none",b.taskOutOfRange=b.taskOutOfRange||"truncate",b.maxHeight=b.maxHeight||0,b.headers=b.headers||void 0,b.headersFormats=b.headersFormats||void 0,b.timeFrames=b.timeFrames||[],b.dateFrames=b.dateFrames||[],b.timeFramesWorkingMode=b.timeFramesWorkingMode||"hidden",b.timeFramesNonWorkingMode=b.timeFramesNonWorkingMode||"visible",b}}}])}(),function(){"use strict";angular.module("gantt").factory("GanttCalendar",["$filter","moment",function(a,b){var c=function(a){void 0===a&&(a={}),this.start=a.start,this.end=a.end,this.working=a.working,this.default=a.default,this.color=a.color,this.classes=a.classes};c.prototype.updateView=function(){if(this.$element){void 0!==this.left?this.$element.css("left",this.left+"px"):this.$element.css("left",""),void 0!==this.width?this.$element.css("width",this.width+"px"):this.$element.css("width",""),void 0!==this.color?this.$element.css("background-color",this.color):this.$element.css("background-color","");var a=["gantt-timeframe"+(this.working?"":"-non")+"-working"];this.classes&&(a=a.concat(this.classes));for(var b=0,c=a.length;c>b;b++)this.$element.toggleClass(a[b],!0)}},c.prototype.getDuration=function(){return this.end.diff(this.start,"milliseconds")},c.prototype.clone=function(){return new c(this)};var d=function(a){this.func=a};d.prototype.getTimeFrames=function(a){var b=this.func(a);return b instanceof Array||(b=[b]),b},d.prototype.clone=function(){return new d(this.func)};var e=function(a){this.evaluator=a.evaluator,a.date?(this.start=b(a.date).startOf("day"),this.end=b(a.date).endOf("day")):(this.start=a.start,this.end=a.end),this.targets=a.targets instanceof Array?a.targets:[a.targets],this.default=a.default};e.prototype.dateMatch=function(a){return this.evaluator?this.evaluator(a):this.start&&this.end?a>=this.start&&a<=this.end:!1},e.prototype.clone=function(){return new e(this)};var f=function(){this.timeFrames={},this.timeFrameMappings={},this.dateFrames={}};f.prototype.clear=function(){this.timeFrames={},this.timeFrameMappings={},this.dateFrames={}},f.prototype.registerTimeFrames=function(a){angular.forEach(a,function(a,b){this.timeFrames[b]=new c(a)},this)},f.prototype.removeTimeFrames=function(a){angular.forEach(a,function(a){delete this.timeFrames[a]},this)},f.prototype.clearTimeFrames=function(){this.timeFrames={}},f.prototype.registerTimeFrameMappings=function(a){angular.forEach(a,function(a,b){this.timeFrameMappings[b]=new d(a)},this)},f.prototype.removeTimeFrameMappings=function(a){angular.forEach(a,function(a){delete this.timeFrameMappings[a]},this)},f.prototype.clearTimeFrameMappings=function(){this.timeFrameMappings={}},f.prototype.registerDateFrames=function(a){angular.forEach(a,function(a,b){this.dateFrames[b]=new e(a)},this)},f.prototype.removeDateFrames=function(a){angular.forEach(a,function(a){delete this.dateFrames[a]},this)},f.prototype.clearDateFrames=function(){this.dateFrames={}};var g=function(a,b){var c=[];return angular.forEach(a,function(a){a.dateMatch(b)&&c.push(a)}),0===c.length&&angular.forEach(a,function(a){a.default&&c.push(a)}),c};return f.prototype.getTimeFrames=function(a){var c=[],d=g(this.dateFrames,a);angular.forEach(d,function(a){void 0!==a&&angular.forEach(a.targets,function(a){var b=this.timeFrameMappings[a];if(void 0!==b)c.push(b.getTimeFrames());else{var d=this.timeFrames[a];void 0!==d&&c.push(d)}},this)},this);var e=a.year(),f=a.month(),h=a.date(),i=[];return 0===c.length&&angular.forEach(this.timeFrames,function(a){a.default&&c.push(a)}),angular.forEach(c,function(a){a=a.clone(),void 0!==a.start&&(a.start.year(e),a.start.month(f),a.start.date(h)),void 0!==a.end&&(a.end.year(e),a.end.month(f),a.end.date(h),b(a.end).startOf("day")===a.end&&a.end.add(1,"day")),i.push(a)}),i},f.prototype.solve=function(d,e,f){var g,h,i,j,k=0===d.length;angular.forEach(d,function(a){(void 0===i||i>a.start)&&(i=a.start),(void 0===j||je)});var m=a("orderBy")(d,function(a){return-a.getDuration()});return angular.forEach(m,function(a){var c=l.slice(),d=0,e=!1,f=!1;angular.forEach(l,function(g){if(!f){if(a.end>g.start&&a.startg.start&&(g.start=b(a.end),e=!1,f=!0);d++}}),l=c}),l=a("filter")(l,function(a){return(void 0===a.start||a.starte)})},f}])}(),function(){"use strict";angular.module("gantt").factory("GanttCurrentDateManager",["moment",function(a){var b=function(b){var c=this;this.gantt=b,this.date=void 0,this.position=void 0,this.currentDateColumn=void 0,this.gantt.$scope.simplifyMoment=function(b){return a.isMoment(b)?b.unix():b},this.gantt.$scope.$watchGroup(["currentDate","simplifyMoment(currentDateValue)"],function(){c.setCurrentDate(c.gantt.$scope.currentDateValue)})};return b.prototype.setCurrentDate=function(a){if(this.date=a,void 0!==this.currentDateColumn&&(void 0!==this.currentDateColumn.$element&&this.currentDateColumn.$element.removeClass("gantt-foreground-col-current-date"),delete this.currentDateColumn),void 0!==this.date){var b=this.gantt.columnsManager.getColumnByDate(this.date);void 0!==b&&(this.currentDateColumn=b,"column"===this.gantt.$scope.currentDate&&void 0!==this.currentDateColumn.$element&&this.currentDateColumn.$element.addClass("gantt-foreground-col-current-date"))}this.position=this.gantt.getPositionByDate(this.date)},b}])}(),function(){"use strict";angular.module("gantt").factory("GanttColumn",["moment",function(a){var b=function(a,b,c,d,e,f,g){this.date=a,this.endDate=b,this.left=c,this.width=d,this.calendar=e,this.duration=this.endDate.diff(this.date,"milliseconds"),this.timeFramesWorkingMode=f,this.timeFramesNonWorkingMode=g,this.timeFrames=[],this.visibleTimeFrames=[],this.daysTimeFrames={},this.cropped=!1,this.originalSize={left:this.left,width:this.width},this.updateTimeFrames()},c=function(a){return a.year()+"-"+a.month()+"-"+a.date()};return b.prototype.updateView=function(){if(this.$element){this.$element.css("left",this.left+"px"),this.$element.css("width",this.width+"px");for(var a=0,b=this.timeFrames.length;b>a;a++)this.timeFrames[a].updateView()}},b.prototype.updateTimeFrames=function(){var b=this;if(void 0!==b.calendar&&("hidden"!==b.timeFramesNonWorkingMode||"hidden"!==b.timeFramesWorkingMode)){for(var d=function(c,d,e){return function(f){var g=f.start;void 0===g&&(g=d);var h=f.end;void 0===h&&(h=e),gb.endDate&&(h=b.endDate),f=f.clone(),f.start=a(g),f.end=a(h),c.push(f)}},e=b.date,f=a(e).startOf("day"),g=f.add(1,"day");ethis.date&&a<=this.endDate},b.prototype.equals=function(a){return this.date===a.date},b.prototype.getMagnetDate=function(b,c,d){if(c>0&&void 0!==d){var e=b;b=a(b);var f,g,h;1>c?(b.startOf(d),f=e.diff(b,"milliseconds"),h=a.duration(c,d).asMilliseconds(),g=Math.round(f/h)*h,b.set("milliseconds",g)):(f=b.get(d),g=Math.round(f/c)*c,b.startOf(d),b.set(d,g));for(var i=0,j=this.timeFrames.length;j>i;i++){var k,l=this.timeFrames[i];if(l.cropped&&b>=l.start&&b<=l.end&&(k=!0),!l.cropped&&(k||b>=l.start&&b<=l.end)){k&&(k=!1,bl.end&&(e=l.end));var m=Math.abs(e.diff(b,"milliseconds"));e.diff(l.start,"milliseconds")c;c++){var e=this.timeFrames[c];if(!e.cropped&&b>=e.left&&b<=e.left+e.width){var f=e.getDuration()/e.width*(b-e.left),g=a(e.start).add(f,"milliseconds");return g}}},b.prototype.getDateByPosition=function(b,c,d){var e,f;return 0>b&&(b=0),b>this.width&&(b=this.width),("cropped"===this.timeFramesNonWorkingMode||"cropped"===this.timeFramesWorkingMode)&&(f=this.getDateByPositionUsingTimeFrames(b)),void 0===f&&(e=this.duration/this.width*b,f=a(this.date).add(e,"milliseconds")),f=this.getMagnetDate(f,c,d)},b.prototype.getDayTimeFrame=function(a){var b=this.daysTimeFrames[c(a)];return void 0===b?[]:b},b.prototype.getPositionByDate=function(a){var b,c;if("cropped"===this.timeFramesNonWorkingMode||"cropped"===this.timeFramesWorkingMode)for(var d=a,e=this.getDayTimeFrame(d),f=0;f=g.start&&d<=g.end){if(!g.cropped)return b=d.diff(g.start,"milliseconds"),c=b/g.getDuration()*g.width,this.left+g.left+c;d=e.length>f+1?e[f+1].start:g.end}}return b=a.diff(this.date,"milliseconds"),c=b/this.duration*this.width,0>c&&(c=0),c>this.width&&(c=this.width),this.left+c},b}])}(),function(){"use strict";angular.module("gantt").factory("GanttColumnGenerator",["GanttColumn","moment",function(a,b){var c=function(c){var d=this,e=c.gantt.$scope.columnWidth;void 0===e&&(e=20);var f=c.gantt.$scope.viewScale,g=c.gantt.calendar,h=c.gantt.$scope.timeFramesWorkingMode,i=c.gantt.$scope.timeFramesNonWorkingMode;d.generate=function(c,d,k,l,m){if(!d&&!k)throw"to or maximumWidth must be defined";var n=!1;c=b(c).startOf(f),d&&(n=j(d),d=b(d).startOf(f));for(var o=b(c).startOf(f),p=[],q=0;;){if(k&&Math.abs(q)>k+e)break;var r=b(o),s=b(r).add(1,f),t=new a(r,s,l?q+l:q,e,g,h,i);if(!t.cropped&&(p.push(t),m?q-=e:q+=e,d))if(m){if(n&&d>o||!n&&d>=o)break}else if(n&&o>d||!n&&o>=d)break;o.add(m?-1:1,f)}return m&&(j(c)&&p.shift(),p.reverse()),p};var j=function(a){return b(a).add(1,f).startOf(f)===a}};return c}])}(),function(){"use strict";angular.module("gantt").factory("GanttColumnHeader",["moment","GanttColumn",function(a,b){var c=function(c,d,e,f,g){var h=a(c),i=a(h).add(1,d),j=new b(h,i,e,f);return j.unit=d,j.label=angular.isFunction(g)?g(j):h.format(g),j};return c}])}(),function(){"use strict";angular.module("gantt").factory("GanttColumnsManager",["GanttColumnGenerator","GanttHeaderGenerator","$filter","$timeout","ganttLayout","ganttBinarySearch",function(a,b,c,d,e,f){var g=function(a){var b=this;this.gantt=a,this.from=void 0,this.to=void 0,this.columns=[],this.visibleColumns=[],this.previousColumns=[],this.nextColumns=[],this.headers=[],this.visibleHeaders=[],this.scrollAnchor=void 0,this.gantt.$scope.$watchGroup(["viewScale","columnWidth","timeFramesWorkingMode","timeFramesNonWorkingMode","fromDate","toDate","autoExpand","taskOutOfRange"],function(a,c){a!==c&&b.gantt.rendered&&b.generateColumns()}),this.gantt.$scope.$watchCollection("headers",function(a,c){a!==c&&b.gantt.rendered&&b.generateColumns()}),this.gantt.$scope.$watchCollection("headersFormats",function(a,c){a!==c&&b.gantt.rendered&&b.generateColumns()}),this.gantt.$scope.$watchGroup(["bodyRowsWidth","bodyRowsLeft","ganttElementWidth","sideWidth","maxHeight"],function(a,c){a!==c&&b.gantt.rendered&&b.updateColumnsMeta()}),this.gantt.api.data.on.load(this.gantt.$scope,function(){(void 0===b.from||void 0===b.to||b.from>b.gantt.rowsManager.getDefaultFrom()||b.to0){var a=this.gantt.scroll.$element[0],b=a.scrollLeft+a.offsetWidth/2;this.scrollAnchor=this.gantt.getDateByPosition(b)}},g.prototype.scrollToScrollAnchor=function(){var a=this;this.columns.length>0&&void 0!==this.scrollAnchor&&this.gantt.$scope.$$postDigest(function(){a.gantt.api.scroll.toDate(a.scrollAnchor)})},g.prototype.clearColumns=function(){this.setScrollAnchor(),this.from=void 0,this.to=void 0,this.columns=[],this.visibleColumns=[],this.previousColumns=[],this.nextColumns=[],this.headers=[],this.visibleHeaders=[],this.gantt.api.columns.raise.clear()},g.prototype.generateColumns=function(c,d){if(c||(c=this.gantt.$scope.fromDate),d||(d=this.gantt.$scope.toDate),!c&&(c=this.gantt.rowsManager.getDefaultFrom(),!c))return!1;if(!d&&(d=this.gantt.rowsManager.getDefaultTo(),!d))return!1;"expand"===this.gantt.$scope.taskOutOfRange&&(c=this.gantt.rowsManager.getExpandedFrom(c),d=this.gantt.rowsManager.getExpandedTo(d)),this.setScrollAnchor(),this.from=c,this.to=d;var e=new a(this),f=new b(this);this.columns=e.generate(c,d),this.headers=f.generate(this.columns),this.previousColumns=[],this.nextColumns=[],this.updateColumnsMeta(),this.scrollToScrollAnchor(),this.gantt.api.columns.raise.generate(this.columns,this.headers)},g.prototype.updateColumnsMeta=function(){var a=this.getLastColumn();this.gantt.originalWidth=void 0!==a?a.originalSize.left+a.originalSize.width:0;var b=void 0===this.gantt.$scope.columnWidth,c=this.gantt.getElementWidth()-this.gantt.side.getWidth();if(b){var d=c-this.gantt.scroll.getBordersWidth();e.setColumnsWidth(d,this.gantt.originalWidth,this.previousColumns),e.setColumnsWidth(d,this.gantt.originalWidth,this.columns),e.setColumnsWidth(d,this.gantt.originalWidth,this.nextColumns),angular.forEach(this.headers,function(a){e.setColumnsWidth(d,this.gantt.originalWidth,a)},this)}this.gantt.width=void 0!==a?a.left+a.width:0,this.gantt.rowsManager.updateTasksPosAndSize(),this.gantt.timespansManager.updateTimespansPosAndSize(),this.updateVisibleColumns(b),this.gantt.rowsManager.updateVisibleObjects(),this.gantt.currentDateManager.setCurrentDate(this.gantt.$scope.currentDateValue)},g.prototype.getLastColumn=function(a){var b=this.columns;return a&&(b=this.nextColumns),b&&b.length>0?b[b.length-1]:void 0},g.prototype.getFirstColumn=function(a){var b=this.columns;return a&&(b=this.previousColumns),b&&b.length>0?b[0]:void 0},g.prototype.getColumnByDate=function(a){this.expandExtendedColumnsForDate(a);var b=this.previousColumns.concat(this.columns,this.nextColumns),c=f.get(b,a,function(a){return a.date},!0);return void 0!==c[0]?c[0]:c[1]},g.prototype.getColumnByPosition=function(a){this.expandExtendedColumnsForPosition(a);var b=this.previousColumns.concat(this.columns,this.nextColumns);return f.get(b,a,function(a){return a.left},!0)[0]},g.prototype.expandExtendedColumnsForPosition=function(b){if(0>b){var c=this.getFirstColumn(),d=c.date,e=this.getFirstColumn(!0);return(!e||e.left>b)&&(this.previousColumns=new a(this).generate(d,void 0,-b,0,!0)),!0}if(b>this.gantt.width){var f=this.getLastColumn(),g=f.getDateByPosition(f.width),h=this.getLastColumn(!0);return(!h||h.left+h.widthb){var g=this.getFirstColumn(!0);return(!g||g.date>b)&&(this.previousColumns=new a(this).generate(c,b,void 0,0,!0)),!0}if(e&&b>e){var h=this.getLastColumn(!0);return(!h||h>e)&&(this.nextColumns=new a(this).generate(e,b,void 0,this.gantt.width,!1)),!0}return!1},g.prototype.getActiveHeadersCount=function(){return this.headers.length},g.prototype.updateVisibleColumns=function(a){this.visibleColumns=c("ganttColumnLimit")(this.columns,this.gantt),this.visibleHeaders=[],angular.forEach(this.headers,function(a){this.visibleHeaders.push(c("ganttColumnLimit")(a,this.gantt))},this),a&&(angular.forEach(this.visibleColumns,function(a){a.updateView()}),angular.forEach(this.visibleHeaders,function(a){angular.forEach(a,function(a){a.updateView()})}))};var h={year:"YYYY",quarter:"[Q]Q YYYY",month:"MMMM YYYY",week:"w",day:"D",hour:"H",minute:"HH:mm"},i={day:"LL",hour:"H",minute:"HH:mm"},j={year:"YYYY",quarter:"[Q]Q",month:"MMMM"};return g.prototype.getHeaderFormat=function(a){var b;return void 0!==this.gantt.$scope.headersFormats&&(b=this.gantt.$scope.headersFormats[a]),void 0===b&&(["millisecond","second","minute","hour"].indexOf(this.gantt.$scope.viewScale)>-1?b=i[a]:["month","quarter","year"].indexOf(this.gantt.$scope.viewScale)>-1&&(b=j[a]),void 0===b&&(b=h[a])),b},g}])}(),function(){"use strict";angular.module("gantt").factory("GanttHeaderGenerator",["GanttColumnHeader",function(a){var b=function(b,c,d){for(var e,f,g=[],h=0,i=c.length;i>h;h++){var j=c[h],k=j.date.get(d);if(0===h||f!==k){f=k;var l=b.getHeaderFormat(d);e=new a(j.date,d,j.originalSize.left,j.originalSize.width,l),e.left=j.left,e.width=j.width,g.push(e)}else e.originalSize.width+=j.originalSize.width,e.width+=j.width}return g};return function(a){this.generate=function(c){var d=[];void 0===a.gantt.$scope.headers?(d=[],["year","quarter","month"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("year"),["quarter"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("quarter"),["day","week","month"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("month"),["day","week"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("week"),["hour","day"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("day"),["hour","minute","second"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("hour"),["minute","second"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("minute"),["second"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("second"),0===d.length&&d.push(a.gantt.$scope.viewScale)):d=a.gantt.$scope.headers;var e=[];return angular.forEach(d,function(d){e.push(b(a,c,d))}),e}}}])}(),function(){"use strict";angular.module("gantt").factory("Gantt",["GanttApi","GanttCalendar","GanttScroll","GanttBody","GanttRowHeader","GanttHeader","GanttSide","GanttObjectModel","GanttRowsManager","GanttColumnsManager","GanttTimespansManager","GanttCurrentDateManager","ganttArrays","moment","$document",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var p=function(e,n){var p=this;this.$scope=e,this.$element=n,this.api=new a(this),this.api.registerEvent("core","ready"),this.api.registerEvent("core","rendered"),this.api.registerEvent("directives","preLink"),this.api.registerEvent("directives","postLink"),this.api.registerEvent("directives","new"),this.api.registerEvent("directives","destroy"),this.api.registerEvent("data","load"),this.api.registerEvent("data","remove"),this.api.registerEvent("data","clear"),this.api.registerMethod("core","getDateByPosition",this.getDateByPosition,this),this.api.registerMethod("core","getPositionByDate",this.getPositionByDate,this),this.api.registerMethod("data","load",this.loadData,this),this.api.registerMethod("data","remove",this.removeData,this),this.api.registerMethod("data","clear",this.clearData,this),this.api.registerMethod("data","get",this.getData,this),this.calendar=new b(this),this.calendar.registerTimeFrames(this.$scope.timeFrames),this.calendar.registerDateFrames(this.$scope.dateFrames),this.api.registerMethod("timeframes","registerTimeFrames",this.calendar.registerTimeFrames,this.calendar),this.api.registerMethod("timeframes","clearTimeframes",this.calendar.clearTimeFrames,this.calendar),this.api.registerMethod("timeframes","registerDateFrames",this.calendar.registerDateFrames,this.calendar),this.api.registerMethod("timeframes","clearDateFrames",this.calendar.clearDateFrames,this.calendar),this.api.registerMethod("timeframes","registerTimeFrameMappings",this.calendar.registerTimeFrameMappings,this.calendar),this.api.registerMethod("timeframes","clearTimeFrameMappings",this.calendar.clearTimeFrameMappings,this.calendar),e.$watchGroup(["timeFrames","dateFrames"],function(a,b){if(a!==b){var c=a[0],d=a[1],e=b[0],f=b[1];angular.equals(c,e)||(p.calendar.clearTimeFrames(),p.calendar.registerTimeFrames(c)),angular.equals(d,f)||(p.calendar.clearDateFrames(),p.calendar.registerDateFrames(d)),p.columnsManager.generateColumns()}}),e.$watch("columnMagnet",function(){var a;e.columnMagnet&&(a=e.columnMagnet.trim().split(" ")),a&&a.length>1?(p.columnMagnetValue=parseFloat(a[0]),p.columnMagnetUnit=a[a.length-1]):(p.columnMagnetValue=void 0,p.columnMagnetUnit=void 0)}),e.$watchGroup(["shiftColumnMagnet","viewScale"],function(){var a;e.shiftColumnMagnet&&(a=e.shiftColumnMagnet.trim().split(" ")),void 0!==a&&a.length>1?(p.shiftColumnMagnetValue=parseFloat(a[0]),p.shiftColumnMagnetUnit=a[a.length-1]):(p.shiftColumnMagnetValue=void 0,p.shiftColumnMagnetUnit=void 0)}),o.on("keyup keydown",function(a){return p.shiftKey=a.shiftKey,!0}),this.scroll=new c(this),this.body=new d(this),this.header=new f(this),this.side=new g(this),this.objectModel=new h(this.api),this.rowsManager=new i(this),this.columnsManager=new j(this),this.timespansManager=new k(this),this.currentDateManager=new l(this),this.originalWidth=0,this.width=0,angular.isFunction(this.$scope.api)&&this.$scope.api(this.api),this.$scope.$watchCollection("data",function(a,b){for(var c=m.getRemovedIds(a,b),d=0,e=c.length;e>d;d++){var f=c[d];p.rowsManager.removeRow(f)}void 0!==a&&p.loadData(a)})};return p.prototype.getDateByPosition=function(a,b){var c=this.columnsManager.getColumnByPosition(a);if(void 0!==c){var d,e;return b&&(this.shiftKey?void 0!==this.shiftColumnMagnetValue&&void 0!==this.shiftColumnMagnetUnit?(d=this.shiftColumnMagnetValue,e=this.shiftColumnMagnetUnit):(d=.25,e=this.$scope.viewScale):(d=this.columnMagnetValue,e=this.columnMagnetUnit)),c.getDateByPosition(a-c.left,d,e)}return void 0},p.prototype.getPositionByDate=function(a){if(void 0===a)return void 0;n.isMoment(n)||(a=n(a));var b=this.columnsManager.getColumnByDate(a);return void 0!==b?b.getPositionByDate(a):void 0},p.prototype.loadData=function(a){angular.isArray(a)||(a=void 0!==a?[a]:[]),(void 0===this.$scope.data||this.$scope.data!==a)&&(this.$scope.data=[]);for(var b=0,c=a.length;c>b;b++){var d=a[b];this.rowsManager.addRow(d)}this.api.data.raise.load(this.$scope,a)},p.prototype.getData=function(){return this.$scope.data},p.prototype.removeData=function(a){angular.isArray(a)||(a=void 0!==a?[a]:[]),this.rowsManager.removeData(a),this.api.data.raise.remove(this.$scope,a)},p.prototype.clearData=function(){this.rowsManager.removeAll(),this.api.data.raise.clear(this.$scope)},p.prototype.getElementWidth=function(){return this.$element[0].offsetWidth},p}])}(),function(){"use strict";angular.module("gantt").factory("GanttObjectModel",["ganttUtils","moment",function(a,b){var c=function(a){this.api=a,this.api.registerEvent("tasks","clean"),this.api.registerEvent("rows","clean"),this.api.registerEvent("timespans","clean")};return c.prototype.cleanTask=function(c){void 0===c.id&&(c.id=a.randomUuid()),void 0===c.from||b.isMoment(c.from)||(c.from=b(c.from)),void 0===c.to||b.isMoment(c.to)||(c.to=b(c.to)),this.api.tasks.raise.clean(c)},c.prototype.cleanRow=function(c){void 0===c.id&&(c.id=a.randomUuid()),void 0===c.from||b.isMoment(c.from)||(c.from=b(c.from)),void 0===c.to||b.isMoment(c.to)||(c.to=b(c.to)),this.api.rows.raise.clean(c)},c.prototype.cleanTimespan=function(c){void 0===c.id&&(c.id=a.randomUuid()),void 0===c.from||b.isMoment(c.from)||(c.from=b(c.from)),void 0===c.to||b.isMoment(c.to)||(c.to=b(c.to)),this.api.timespans.raise.clean(c)},c}])}(),function(){"use strict";angular.module("gantt").factory("GanttRow",["GanttTask","moment","$filter",function(a,b,c){var d=function(a,b){this.rowsManager=a,this.model=b,this.from=void 0,this.to=void 0,this.tasksMap={},this.tasks=[],this.filteredTasks=[],this.visibleTasks=[]};return d.prototype.addTaskImpl=function(a,b){this.tasksMap[a.model.id]=a,this.tasks.push(a),this.filteredTasks.push(a),this.visibleTasks.push(a),b||(void 0===this.model.tasks&&(this.model.tasks=[]),-1===this.model.tasks.indexOf(a.model)&&this.model.tasks.push(a.model))},d.prototype.addTask=function(b,c){var d,e=!1;if(this.rowsManager.gantt.objectModel.cleanTask(b),b.id in this.tasksMap){if(d=this.tasksMap[b.id],d.model===b)return d;d.model=b,e=!0}else d=new a(this,b),this.addTaskImpl(d,c);return this.sortTasks(),this.setFromToByTask(d),c||(e?this.rowsManager.gantt.api.tasks.raise.change(d):this.rowsManager.gantt.api.tasks.raise.add(d)),d},d.prototype.moveTaskToRow=function(a,b){var c=a.row;c.removeTask(a.model.id,b,!0),a.row=this,this.addTaskImpl(a,b),this.sortTasks(),this.setFromToByTask(a),a.updatePosAndSize(),b||this.rowsManager.gantt.api.tasks.raise.rowChange(a,c)},d.prototype.updateVisibleTasks=function(){if(this.rowsManager.gantt.$scope.filterTask){var a=this.rowsManager.gantt.$scope.filterTask;"object"==typeof a&&(a={model:a});var b=this.rowsManager.gantt.$scope.filterTaskComparator;"function"==typeof b&&(b=function(a,b){return this.rowsManager.gantt.$scope.filterRowComparator(a.model,b.model)}),this.filteredTasks=c("filter")(this.tasks,a,b)}else this.filteredTasks=this.tasks.slice(0);this.visibleTasks=c("ganttTaskLimit")(this.filteredTasks,this.rowsManager.gantt)},d.prototype.updateTasksPosAndSize=function(){for(var a=0,b=this.tasks.length;b>a;a++)this.tasks[a].updatePosAndSize()},d.prototype.removeTask=function(a,b,c){if(a in this.tasksMap){var d,e,f=this.tasksMap[a];for(e=this.tasks.length-1;e>=0;e--)if(d=this.tasks[e],d.model.id===a){this.tasks.splice(e,1),(this.from-d.model.from===0||this.to-d.model.to===0)&&this.setFromTo();break}for(e=this.filteredTasks.length-1;e>=0;e--)if(d=this.filteredTasks[e],d.model.id===a){this.filteredTasks.splice(e,1);break}for(e=this.visibleTasks.length-1;e>=0;e--)if(d=this.visibleTasks[e],d.model.id===a){this.visibleTasks.splice(e,1);break}if(!b){if(delete this.tasksMap[a],void 0!==this.model.tasks){var g=this.model.tasks.indexOf(f.model);g>-1&&this.model.tasks.splice(g,1)}c||this.rowsManager.gantt.api.tasks.raise.remove(f)}return f}},d.prototype.removeAllTasks=function(){this.from=void 0,this.to=void 0,this.tasksMap={},this.tasks=[],this.filteredTasks=[],this.visibleTasks=[]},d.prototype.setFromTo=function(){this.from=void 0,this.to=void 0;for(var a=0,b=this.tasks.length;b>a;a++)this.setFromToByTask(this.tasks[a])},d.prototype.setFromToByTask=function(a){void 0===this.from?this.from=b(a.model.from):a.model.fromthis.to&&(this.to=b(a.model.to))},d.prototype.sortTasks=function(){this.tasks.sort(function(a,b){return a.left-b.left})},d.prototype.clone=function(){for(var a=new d(this.rowsManager,angular.copy(this)),b=0,c=this.tasks.length;c>b;b++)a.addTask(this.tasks[b].model);return a},d}])}(),function(){"use strict";angular.module("gantt").factory("GanttRowHeader",[function(){var a=function(a){this.gantt=a};return a}])}(),function(){"use strict";angular.module("gantt").factory("GanttRowsManager",["GanttRow","ganttArrays","$filter","moment",function(a,b,c,d){var e=function(a){var b=this; -this.gantt=a,this.rowsMap={},this.rows=[],this.sortedRows=[],this.filteredRows=[],this.visibleRows=[],this.rowsTaskWatchers=[],this.gantt.$scope.$watchGroup(["filterTask","filterTaskComparator"],function(a,c){a!==c&&b.updateVisibleTasks()}),this.gantt.$scope.$watchGroup(["filterRow","filterRowComparator"],function(a,c){a!==c&&b.updateVisibleRows()}),this.gantt.$scope.$watch("sortMode",function(a,c){a!==c&&b.sortRows()}),this.gantt.api.registerMethod("rows","sort",e.prototype.sortRows,this),this.gantt.api.registerMethod("rows","applySort",e.prototype.applySort,this),this.gantt.api.registerMethod("rows","refresh",e.prototype.updateVisibleObjects,this),this.gantt.api.registerEvent("tasks","add"),this.gantt.api.registerEvent("tasks","change"),this.gantt.api.registerEvent("tasks","rowChange"),this.gantt.api.registerEvent("tasks","remove"),this.gantt.api.registerEvent("tasks","filter"),this.gantt.api.registerEvent("rows","add"),this.gantt.api.registerEvent("rows","change"),this.gantt.api.registerEvent("rows","remove"),this.gantt.api.registerEvent("rows","move"),this.gantt.api.registerEvent("rows","filter"),this.updateVisibleObjects()};return e.prototype.addRow=function(c){var d,e,f,g=!1;if(this.gantt.objectModel.cleanRow(c),c.id in this.rowsMap){if(d=this.rowsMap[c.id],d.model===c)return;var h=b.getRemovedIds(c.tasks,d.model.tasks);for(e=0,f=h.length;f>e;e++){var i=h[e];d.removeTask(i)}d.model=c,g=!0}else d=new a(this,c),this.rowsMap[c.id]=d,this.rows.push(d),this.sortedRows.push(d),this.filteredRows.push(d),this.visibleRows.push(d),-1===this.gantt.$scope.data.indexOf(c)&&this.gantt.$scope.data.push(c);if(void 0!==c.tasks&&c.tasks.length>0)for(e=0,f=c.tasks.length;f>e;e++){var j=c.tasks[e];d.addTask(j)}if(g?this.gantt.api.rows.raise.change(d):this.gantt.api.rows.raise.add(d),!g){var k=this.gantt.$scope.$watchCollection(function(){return c.tasks},function(a,c){if(a!==c){var e,f,g=b.getRemovedIds(a,c);for(e=0,f=g.length;f>e;e++){var h=g[e];d.removeTask(h)}if(void 0!==a)for(e=0,f=a.length;f>e;e++){var i=a[e];d.addTask(i)}}});this.rowsTaskWatchers.push(k)}return g},e.prototype.removeRow=function(a){if(a in this.rowsMap){delete this.rowsMap[a];var c,d,e=b.indexOfId(this.rows,a,["model","id"]);if(e>-1){c=this.rows.splice(e,1)[0];var f=this.rowsTaskWatchers.splice(e,1)[0];f()}return b.removeId(this.sortedRows,a,["model","id"]),b.removeId(this.filteredRows,a,["model","id"]),b.removeId(this.visibleRows,a,["model","id"]),b.remove(this.gantt.$scope.data,c.model),this.gantt.api.rows.raise.remove(c),d}return void 0},e.prototype.removeData=function(a){for(var b=0,c=a.length;c>b;b++){var d,e=a[b];if(void 0!==e.tasks&&e.tasks.length>0){if(e.id in this.rowsMap){d=this.rowsMap[e.id];for(var f=0,g=e.tasks.length;g>f;f++)d.removeTask(e.tasks[f].id);this.gantt.api.rows.raise.change(d)}}else d=this.removeRow(e.id)}this.updateVisibleObjects()},e.prototype.removeAll=function(){this.rowsMap={},this.rows=[],this.sortedRows=[],this.filteredRows=[],this.visibleRows=[];for(var a=this.gantt.$scope.data;a>0;)a.pop();for(var b=0,c=this.rowsTaskWatchers.length;c>b;b++){var d=this.rowsTaskWatchers[b];d()}this.rowsTaskWatchers=[]},e.prototype.sortRows=function(){var a=this.gantt.$scope.sortMode;if(void 0!==a){var b=!1;"-"===a.charAt(0)&&(b=!0,a=a.substr(1));var d=c("orderBy");this.sortedRows=d(this.rows,a,b)}else this.sortedRows=this.rows.slice();this.updateVisibleRows()},e.prototype.applySort=function(){for(var a=this.gantt.$scope.data;a>0;)a.pop();for(var b=[],c=0,d=this.sortedRows.length;d>c;c++)a.push(this.sortedRows[c].model),b.push(this.sortedRows[c]);this.rows=b},e.prototype.moveRow=function(a,c){void 0!==this.gantt.$scope.sortMode&&(this.applySort(),this.gantt.$scope.sortMode=void 0);var d=this.rows.indexOf(c),e=this.rows.indexOf(a);d>-1&&e>-1&&d!==e&&(b.moveToIndex(this.rows,e,d),b.moveToIndex(this.rowsTaskWatchers,e,d),b.moveToIndex(this.gantt.$scope.data,e,d),this.gantt.api.rows.raise.change(a),this.gantt.api.rows.raise.move(a,e,d),this.updateVisibleObjects(),this.sortRows())},e.prototype.updateVisibleObjects=function(){this.updateVisibleRows(),this.updateVisibleTasks()},e.prototype.updateVisibleRows=function(){var a=this.filteredRows;if(this.gantt.$scope.filterRow){var b=this.gantt.$scope.filterRow;"object"==typeof b&&(b={model:b});var d=this.gantt.$scope.filterRowComparator;"function"==typeof d&&(d=function(a,b){return this.gantt.$scope.filterRowComparator(a.model,b.model)}),this.filteredRows=c("filter")(this.sortedRows,b,d)}else this.filteredRows=this.sortedRows.slice(0);var e=!angular.equals(a,this.filteredRows);this.visibleRows=this.filteredRows,e&&this.gantt.api.rows.raise.filter(this.sortedRows,this.filteredRows)},e.prototype.updateVisibleTasks=function(){var a=[],b=[],c=[];angular.forEach(this.rows,function(d){a=a.concat(d.filteredTasks),d.updateVisibleTasks(),b=b.concat(d.filteredTasks),c=c.concat(d.tasks)});var d=!angular.equals(a,b);d&&this.gantt.api.tasks.raise.filter(c,b)},e.prototype.updateTasksPosAndSize=function(){for(var a=0,b=this.rows.length;b>a;a++)this.rows[a].updateTasksPosAndSize()},e.prototype.getExpandedFrom=function(a){a=a?d(a):a;var b=a;return angular.forEach(this.rows,function(a){(void 0===b||b>a.from)&&(b=a.from)}),b&&(!a||a>b)?b:a},e.prototype.getExpandedTo=function(a){a=a?d(a):a;var b=a;return angular.forEach(this.rows,function(a){(void 0===b||bthis.gantt.$scope.toDate)?b:a},e.prototype.getDefaultFrom=function(){var a;return angular.forEach(this.rows,function(b){(void 0===a||b.froma)&&(a=b.to)}),a},e}])}(),function(){"use strict";angular.module("gantt").factory("GanttTask",[function(){var a=function(a,b){this.rowsManager=a.rowsManager,this.row=a,this.model=b,this.truncatedLeft=!1,this.truncatedRight=!1};return a.prototype.isMilestone=function(){return!this.model.to||this.model.from-this.model.to===0},a.prototype.updatePosAndSize=function(){this.modelLeft=this.rowsManager.gantt.getPositionByDate(this.model.from),this.modelWidth=this.rowsManager.gantt.getPositionByDate(this.model.to)-this.modelLeft,this.left=Math.min(Math.max(this.modelLeft,0),this.rowsManager.gantt.width),this.modelLeft<0?(this.truncatedLeft=!0,this.modelWidth+this.modelLeft>this.rowsManager.gantt.width?(this.truncatedRight=!0,this.width=this.rowsManager.gantt.width):(this.truncatedRight=!1,this.width=this.modelWidth+this.modelLeft)):this.modelWidth+this.modelLeft>this.rowsManager.gantt.width?(this.truncatedRight=!0,this.truncatedLeft=!1,this.width=this.rowsManager.gantt.width-this.modelLeft):(this.truncatedLeft=!1,this.truncatedRight=!1,this.width=this.modelWidth),this.width<0&&(this.left=this.left+this.width,this.width=-this.width),this.updateView()},a.prototype.updateView=function(){this.$element&&(this.$element.css("left",this.left+"px"),this.$element.css("width",this.width+"px"),this.$element.css("background-color",this.model.color),this.$element.css("z-index",this.model.priority),this.$element.toggleClass("gantt-task-milestone",this.isMilestone()),this.$element.toggleClass("gantt-task",!this.isMilestone()),this.$element.toggleClass("gantt-task",!this.isMilestone()))},a.prototype.setFrom=function(a,b){this.model.from=this.rowsManager.gantt.getDateByPosition(a,b),this.row.setFromToByTask(this),this.updatePosAndSize()},a.prototype.setTo=function(a,b){this.model.to=this.rowsManager.gantt.getDateByPosition(a,b),this.row.setFromToByTask(this),this.updatePosAndSize()},a.prototype.moveTo=function(a,b){if(a>this.left){this.model.to=this.rowsManager.gantt.getDateByPosition(a+this.modelWidth,b);var c=this.rowsManager.gantt.getPositionByDate(this.model.to);this.model.from=this.rowsManager.gantt.getDateByPosition(c-this.modelWidth,!1)}else{this.model.from=this.rowsManager.gantt.getDateByPosition(a,b);var d=this.rowsManager.gantt.getPositionByDate(this.model.from);this.model.to=this.rowsManager.gantt.getDateByPosition(d+this.modelWidth,!1)}this.row.setFromToByTask(this),this.updatePosAndSize()},a.prototype.clone=function(){return new a(this.row,angular.copy(this.model))},a}])}(),function(){"use strict";angular.module("gantt").factory("GanttBody",["GanttBodyColumns","GanttBodyRows","GanttBodyBackground","GanttBodyForeground",function(a,b,c,d){var e=function(e){this.gantt=e,this.background=new c(this),this.foreground=new d(this),this.columns=new a(this),this.rows=new b(this)};return e.prototype.getWidth=function(){return void 0===this.$element?void 0:this.$element[0].offsetWidth},e}])}(),function(){"use strict";angular.module("gantt").factory("GanttBodyBackground",[function(){var a=function(a){this.body=a};return a}])}(),function(){"use strict";angular.module("gantt").factory("GanttBodyColumns",[function(){var a=function(a){this.body=a};return a}])}(),function(){"use strict";angular.module("gantt").factory("GanttBodyForeground",[function(){var a=function(a){this.body=a};return a}])}(),function(){"use strict";angular.module("gantt").factory("GanttBodyRows",[function(){var a=function(a){this.body=a};return a}])}(),function(){"use strict";angular.module("gantt").factory("GanttHeader",["GanttHeaderColumns",function(a){var b=function(b){this.gantt=b,this.columns=new a(this),this.getHeight=function(){return this.$element[0].offsetHeight}};return b}])}(),function(){"use strict";angular.module("gantt").factory("GanttHeaderColumns",[function(){var a=function(a){this.$element=a};return a}])}(),function(){"use strict";angular.module("gantt").factory("GanttScroll",[function(){var a=function(b){this.gantt=b,this.gantt.api.registerEvent("scroll","scroll"),this.gantt.api.registerMethod("scroll","to",a.prototype.scrollTo,this),this.gantt.api.registerMethod("scroll","toDate",a.prototype.scrollToDate,this),this.gantt.api.registerMethod("scroll","left",a.prototype.scrollToLeft,this),this.gantt.api.registerMethod("scroll","right",a.prototype.scrollToRight,this),this.gantt.api.registerMethod("scroll","setWidth",a.prototype.setWidth,this)};return a.prototype.getScrollLeft=function(){return void 0===this.$element?void 0:this.$element[0].scrollLeft},a.prototype.getScrollWidth=function(){return void 0===this.$element?void 0:this.$element[0].scrollWidth},a.prototype.getWidth=function(){return void 0===this.$element?void 0:this.$element[0].offsetWidth},a.prototype.setWidth=function(a){this.$element[0]&&(this.$element[0].offsetWidth=a)},a.prototype.getBordersWidth=function(){return void 0===this.$element?void 0:this.$element[0].offsetWidth-this.$element[0].clientWidth},a.prototype.scrollTo=function(a){this.$element[0].scrollLeft=a,this.$element.triggerHandler("scroll")},a.prototype.scrollToLeft=function(a){this.$element[0].scrollLeft-=a,this.$element.triggerHandler("scroll")},a.prototype.scrollToRight=function(a){this.$element[0].scrollLeft+=a,this.$element.triggerHandler("scroll")},a.prototype.scrollToDate=function(a){var b=this.gantt.getPositionByDate(a);void 0!==b&&(this.$element[0].scrollLeft=b-this.$element[0].offsetWidth/2)},a}])}(),function(){"use strict";angular.module("gantt").factory("GanttSide",[function(){var a=function(b){this.gantt=b,this.gantt.api.registerMethod("side","setWidth",a.prototype.setWidth,this)};return a.prototype.getWidth=function(){return void 0===this.$element?void 0:0===this.$element[0].offsetHeight?0:this.$element[0].offsetWidth},a.prototype.setWidth=function(a){void 0!==this.$element&&(this.$element[0].offsetWidth=a)},a}])}(),function(){"use strict";angular.module("gantt").factory("GanttTimespan",[function(){var a=function(a,b){this.gantt=a,this.model=b};return a.prototype.updatePosAndSize=function(){this.left=this.gantt.getPositionByDate(this.model.from),this.width=this.gantt.getPositionByDate(this.model.to)-this.left,this.updateView()},a.prototype.updateView=function(){this.$element&&(this.$element.css("left",this.left+"px"),this.$element.css("width",this.width+"px"))},a.prototype.setFrom=function(a){this.from=this.gantt.getDateByPosition(a),this.updatePosAndSize()},a.prototype.setTo=function(a){this.to=this.gantt.getDateByPosition(a),this.updatePosAndSize()},a.prototype.moveTo=function(a){this.from=this.gantt.getDateByPosition(a),this.to=this.gantt.getDateByPosition(a+this.width),this.updatePosAndSize()},a.prototype.clone=function(){return new a(this.gantt,angular.copy(this.model))},a}])}(),function(){"use strict";angular.module("gantt").factory("GanttTimespansManager",["GanttTimespan",function(a){var b=function(a){var b=this;this.gantt=a,this.timespansMap={},this.timespans=[],this.gantt.$scope.$watchCollection("timespans",function(a){b.clearTimespans(),b.loadTimespans(a)}),this.gantt.api.registerMethod("timespans","load",this.loadTimespans,this),this.gantt.api.registerMethod("timespans","remove",this.removeTimespans,this),this.gantt.api.registerMethod("timespans","clear",this.clearTimespans,this),this.gantt.api.registerEvent("timespans","add"),this.gantt.api.registerEvent("timespans","remove"),this.gantt.api.registerEvent("timespans","change")};return b.prototype.loadTimespans=function(a){angular.isArray(a)||(a=void 0!==a?[a]:[]),this.gantt.$scope.timespans=a;for(var b=0,c=a.length;c>b;b++){var d=a[b];this.gantt.objectModel.cleanTimespan(d),this.loadTimespan(d)}},b.prototype.loadTimespan=function(b){var c,d=!1;return b.id in this.timespansMap?(c=this.timespansMap[b.id],c.model=b,d=!0,this.gantt.api.timespans.raise.change(c)):(c=new a(this.gantt,b),this.timespansMap[b.id]=c,this.timespans.push(c),this.gantt.api.timespans.raise.add(c)),c.updatePosAndSize(),d},b.prototype.removeTimespans=function(a){angular.isArray(a)||(a=[a]);for(var b=0,c=a.length;c>b;b++){var d=a[b];this.removeTimespan(d.id)}this.updateVisibleObjects()},b.prototype.removeTimespan=function(a){if(a in this.timespansMap){delete this.timespansMap[a];for(var b,c,d=this.timespans.length-1;d>=0;d--)if(c=this.timespans[d],c.model.id===a){b=c,this.timespans.splice(d,1);break}return this.gantt.api.timespans.raise.remove(b),b}return void 0},b.prototype.clearTimespans=function(){this.timespansMap={},this.timespans=[]},b.prototype.updateTimespansPosAndSize=function(){for(var a=0,b=this.timespans.length;b>a;a++)this.timespans[a].updatePosAndSize()},b}])}(),function(){"use strict";angular.module("gantt").service("ganttArrays",[function(){return{moveToIndex:function(a,b,c){if(c>=a.length)for(var d=c-a.length;d--+1;)a.push(void 0);return a.splice(c,0,a.splice(b,1)[0]),a},getRemovedIds:function(a,b,c){void 0===c&&(c="id");var d,e,f=[];if(void 0!==b)for(d=0,e=b.length;e>d;d++)f.push(b[d][c]);if(void 0!==a)for(d=0,e=a.length;e>d;d++){var g=a[d];if(void 0!==g[c]){var h=f.indexOf(g[c]);h>-1&&f.splice(h,1)}}return f},indexOfId:function(a,b,c){var d;if(void 0===c)c="id";else if(c instanceof Array){for(d=a.length-1;d>=0;d--){for(var e=a[d],f=0,g=c.length;g>f;f++)e=e[c[f]];if(e===b)return d}return-1}for(d=a.length-1;d>=0;d--)if(a[d][c]===b)return d;return-1},removeId:function(a,b,c){var d=this.indexOfId(a,b,c);return d>-1?a.splice(d,1)[0]:void 0},remove:function(a,b){var c=a.indexOf(b);return c>-1?(a.splice(c,1),!0):!1}}}])}(),function(){"use strict";angular.module("gantt").service("ganttBinarySearch",[function(){return{getIndicesOnly:function(a,b,c,d){for(var e=-1,f=a.length;f-e>1;){var g=Math.floor((e+f)/2);(d?c(a[g])d;d++){var f=a[d];if(void 0!==f&&b in f&&void 0!==f[b])return f[b]}return c},elementFromPoint:function(b,c){return a[0].elementFromPoint(b,c)},elementsFromPoint:function(a,b,c){for(var d,e,f,g,h=[],i=[],j=0;(d=this.elementFromPoint(a,b))&&-1===h.indexOf(d)&&null!==d&&(void 0===c||c>j);)h.push(d),i.push({value:d.style.getPropertyValue("pointer-events"),priority:d.style.getPropertyPriority("pointer-events")}),d.style.setProperty("pointer-events","none","important"),j++;for(e=0,f=i.length;f>e;e++)g=i[e],h[e].style.setProperty("pointer-events",g.value?g.value:"",g.priority);return h},findElementFromPoint:function(a,b,c){for(var d,e,f,g,h,i=[],j=[],k=0;(d=this.elementFromPoint(a,b))&&-1===i.indexOf(d)&&null!==d;)if(i.push(d),j.push({value:d.style.getPropertyValue("pointer-events"),priority:d.style.getPropertyPriority("pointer-events")}),d.style.setProperty("pointer-events","none","important"),k++,c(d)){e=d;break}for(f=0,g=j.length;g>f;f++)h=j[f],i[f].style.setProperty("pointer-events",h.value?h.value:"",h.priority);return e},random4:function(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)},randomUuid:function(){return this.random4()+this.random4()+"-"+this.random4()+"-"+this.random4()+"-"+this.random4()+"-"+this.random4()+this.random4()+this.random4()},newId:function(){var a=(new Date).getTime();return function(){return a+=1}}()}}])}(),function(){"use strict";angular.module("gantt").filter("ganttColumnLimit",["ganttBinarySearch",function(a){var b=function(a){return a.left};return function(c,d){var e=d.scroll.getScrollLeft(),f=d.scroll.getWidth();if(f>0){var g=a.getIndicesOnly(c,e,b)[0],h=a.getIndicesOnly(c,e+f,b)[1];return c.slice(g,h)}return c.slice()}}])}(),function(){"use strict";angular.module("gantt").filter("ganttTaskLimit",[function(){return function(a,b){var c=b.columnsManager.getFirstColumn(),d=b.columnsManager.getLastColumn();if(void 0!==c&&void 0!==d){for(var e=[],f=b.scroll.getScrollLeft(),g=b.scroll.getWidth(),h=0,i=a.length;i>h;h++){var j=a[h];j.active?e.push(j):(!g||j.left>=f&&j.left<=f+g||j.left+j.width>=f&&j.left+j.width<=f+g||j.leftf+g)&&e.push(j)}return e}return a.splice()}}])}(),function(){"use strict";angular.module("gantt").directive("ganttResizer",["$document","ganttMouseOffset",function(a,b){return{restrict:"A",require:"^gantt",scope:{targetElement:"=ganttResizer",enabled:"=?ganttResizerEnabled"},link:function(c,d,e,f){function g(b){b.preventDefault(),void 0!==m&&l[m].raise.resizeBegin(k()),a.on("mousemove",h),a.on("mouseup",i)}function h(a){var d=b.getOffsetForElement(c.targetElement[0],a),e=d.x;void 0!==e&&j(e)}function i(){void 0!==m&&l[m].raise.resizeEnd(k()),a.unbind("mousemove",h),a.unbind("mouseup",i)}function j(a){var b=k();b!==a&&(c.targetElement[0].style.width=a+"px",e.resizerWidth&&(c.$eval(e.resizerWidth+" = $$xValue",{$$xValue:a}),f.gantt.$scope.$digest()),void 0!==m&&l[m].raise.resize(a))}function k(){return c.targetElement[0].offsetWidth}var l=f.gantt.api,m=e.ganttResizerEventTopic;void 0===c.enabled&&(c.enabled=!0),c.$watch("enabled",function(a){void 0===a&&(a=!0),d.toggleClass("gantt-resizer-enabled",a),a?d.on("mousedown",g):d.off("mousedown",g)}),m&&(l.registerEvent(m,"resize"),l.registerEvent(m,"resizeBegin"),l.registerEvent(m,"resizeEnd"),l.registerMethod(m,"setWidth",j,this),l.registerMethod(m,"getWidth",k,this))}}}])}(),function(){"use strict";angular.module("gantt").directive("ganttHorizontalScrollReceiver",function(){return{restrict:"A",require:"^ganttScrollManager",link:function(a,b,c,d){d.registerHorizontalReceiver(b)}}})}(),function(){"use strict";angular.module("gantt").directive("ganttScrollManager",function(){return{restrict:"A",scope:{},controller:["$scope",function(a){a.horizontal=[],a.vertical=[],this.registerVerticalReceiver=function(b){b.css("position","relative"),a.vertical.push(b[0])},this.registerHorizontalReceiver=function(b){b.css("position","relative"),a.horizontal.push(b[0])},this.getHorizontalRecievers=function(){return a.horizontal},this.getVerticalRecievers=function(){return a.vertical}}]}})}(),function(){"use strict";angular.module("gantt").directive("ganttScrollSender",[function(){return{restrict:"A",require:["^gantt","^ganttScrollManager"],link:function(a,b,c,d){var e=b[0],f=function(){var a,b,c=d[1].getVerticalRecievers();for(a=0,b=c.length;b>a;a++){var f=c[a];f.parentNode.scrollTop!==e.scrollTop&&(f.parentNode.scrollTop=e.scrollTop)}var g=d[1].getHorizontalRecievers();for(a=0,b=g.length;b>a;a++){var h=g[a];h.parentNode.scrollLeft!==e.scrollLeft&&(h.parentNode.scrollLeft=e.scrollLeft)}};b.bind("scroll",f),a.oldBodyWidth=void 0,a.$watch(function(){var b=d[0].gantt.body.getWidth();if(a.oldBodyWidth!==b){a.oldBodyWidth=b;for(var c=d[1].getHorizontalRecievers(),e=0,f=c.length;f>e;e++){var g=c[e];g.style.width=b+"px"}}})}}}])}(),function(){"use strict";angular.module("gantt").directive("ganttScrollable",["GanttDirectiveBuilder","ganttDebounce","ganttLayout","moment",function(a,b,c,d){var e=new a("ganttScrollable");return e.controller=function(a,c){a.gantt.scroll.$element=c;var e,f,g=500,h=function(b,c,e){if(!("both"!==a.autoExpand&&a.autoExpand!==!0&&a.autoExpand!==e||Date.now()-fe&&f.offsetWidth+f.scrollLeft>=f.scrollWidth-1&&(b="right",d=a.gantt.columnsManager.to),e=f.scrollLeft,a.gantt.columnsManager.updateVisibleColumns(),a.gantt.rowsManager.updateVisibleTasks(),void 0!==d?(h(f,d,b),a.gantt.api.scroll.raise.scroll(f.scrollLeft,d,b)):a.gantt.api.scroll.raise.scroll(f.scrollLeft)},5)),a.getScrollableCss=function(){var b={};return a.maxHeight>0&&(b["max-height"]=a.maxHeight-a.gantt.header.getHeight()+"px",b["overflow-y"]="auto"),b}},e.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttVerticalScrollReceiver",function(){return{restrict:"A",require:"^ganttScrollManager",link:function(a,b,c,d){d.registerVerticalReceiver(b)}}})}(),function(){"use strict";angular.module("gantt").directive("ganttElementLeftListener",[function(){return{restrict:"A",controller:["$scope","$element","$attrs",function(a,b,c){var d=c.ganttElementLeftListener;""===d&&(d="ganttElementLeft");for(var e=a;0===d.indexOf("$parent.");)d=d.substring("$parent.".length),e=e.$parent;e.$watch(function(){e[d]=b[0].left})}]}}])}(),function(){"use strict";angular.module("gantt").directive("ganttElementWidthListener",[function(){return{restrict:"A",controller:["$scope","$element","$attrs",function(a,b,c){var d=c.ganttElementWidthListener;""===d&&(d="ganttElementWidth");for(var e=a;0===d.indexOf("$parent.");)d=d.substring("$parent.".length),e=e.$parent;e.$watch(function(){b[0].offsetWidth>0&&(e[d]=b[0].offsetWidth)})}]}}])}(),function(){"use strict";angular.module("gantt").directive("ganttBody",["GanttDirectiveBuilder",function(a){var b=new a("ganttBody");return b.controller=function(a,b){a.gantt.body.$element=b,a.gantt.body.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttBodyBackground",["GanttDirectiveBuilder",function(a){var b=new a("ganttBodyBackground");return b.controller=function(a,b){a.gantt.body.background.$element=b,a.gantt.body.background.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttBodyColumns",["GanttDirectiveBuilder",function(a){var b=new a("ganttBodyColumns");return b.controller=function(a,b){a.gantt.body.columns.$element=b,a.gantt.body.background.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttBodyForeground",["GanttDirectiveBuilder",function(a){var b=new a("ganttBodyForeground");return b.controller=function(a,b){a.gantt.body.foreground.$element=b,a.gantt.body.foreground.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttBodyRows",["GanttDirectiveBuilder",function(a){var b=new a("ganttBodyRows");return b.controller=function(a,b){a.gantt.body.rows.$element=b,a.gantt.body.rows.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttColumn",["GanttDirectiveBuilder",function(a){var b=new a("ganttColumn");return b.controller=function(a,b){a.column.$element=b,a.column.$scope=a,a.column.updateView()},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttColumnHeader",["GanttDirectiveBuilder",function(a){var b=new a("ganttColumnHeader");return b.controller=function(a,b){a.column.$element=b,a.column.$scope=a,a.column.updateView()},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttHeader",["GanttDirectiveBuilder",function(a){var b=new a("ganttHeader");return b.controller=function(a,b){a.gantt.header.$element=b,a.gantt.header.$scope=a,a.getHeaderCss=function(){var b={};return a.gantt.width-a.gantt.side.getWidth()>a.gantt.width&&(b.width=a.gantt.width+"px"),b}},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttHeaderColumns",["GanttDirectiveBuilder",function(a){var b=new a("ganttHeaderColumns");return b.controller=function(a,b){a.gantt.header.columns.$element=b,a.gantt.header.columns.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttRow",["GanttDirectiveBuilder",function(a){var b=new a("ganttRow");return b.controller=function(a,b){a.row.$element=b,a.row.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttRowBackground",["GanttDirectiveBuilder",function(a){var b=new a("ganttRowBackground");return b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttScrollableHeader",["GanttDirectiveBuilder",function(a){var b=new a("ganttScrollableHeader");return b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttSide",["GanttDirectiveBuilder",function(a){var b=new a("ganttSide");return b.controller=function(a,b){a.gantt.side.$element=b,a.gantt.side.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttSideContent",["GanttDirectiveBuilder",function(a){var b=new a("ganttSideContent");return b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttTask",["GanttDirectiveBuilder","moment",function(a,b){var c=new a("ganttTask");return c.controller=function(a,c){a.task.$element=c,a.task.$scope=a,a.simplifyMoment=function(a){return b.isMoment(a)?a.unix():a},a.$watchGroup(["simplifyMoment(task.model.from)","simplifyMoment(task.model.to)"],function(){a.task.updatePosAndSize()})},c.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttTaskContent",["GanttDirectiveBuilder",function(a){var b=new a("ganttTaskContent");return b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttTimeFrame",["GanttDirectiveBuilder",function(a){var b=new a("ganttTimeFrame");return b.controller=function(a,b){a.timeFrame.$element=b,a.timeFrame.$scope=a,a.timeFrame.updateView()},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttTimespan",["GanttDirectiveBuilder",function(a){var b=new a("ganttTimespan");return b.controller=function(a,b){a.timespan.$element=b,a.timespan.$scope=a,a.timespan.updateView()},b.build()}])}(),function(){"use strict";angular.module("gantt").factory("ganttDebounce",["$timeout",function(a){function b(b,c,d){var e=0;return function(){var f=this,g=arguments;e++;var h=function(a){return function(){return a===e?b.apply(f,g):void 0}}(e);return a(h,c,void 0===d?!0:d)}}return b}])}(),function(){"use strict";angular.module("gantt").service("GanttDirectiveBuilder",[function(){var a=function(a,b,c,d){var e=this;this.directiveName=a,this.templateUrl=void 0===b?"template/"+a+".tmpl.html":b,this.require=void 0===c?"^gantt":c,this.restrict=void 0===d?"E":d,this.scope=!1,this.transclude=!0,this.replace=!0,this.build=function(){var a=e.directiveName,b=e.templateUrl,c=e.controller;return{restrict:e.restrict,require:e.require,transclude:e.transclude,replace:e.replace,scope:e.scope,templateUrl:function(a,c){return void 0===c.templateUrl?b:c.templateUrl},compile:function(){return{pre:function(b,c,d,e){b.gantt.api.directives.raise.preLink(a,b,c,d,e)},post:function(b,c,d,e){b.gantt.api.directives.raise.postLink(a,b,c,d,e)}}},controller:["$scope","$element","$attrs",function(b,d,e){var f=this;void 0!==c&&c(b,d,e,f),b.gantt.api.directives.raise.new(a,b,d,e,f),b.$on("$destroy",function(){b.gantt.api.directives.raise.destroy(a,b,d,e,f)})}]}}};return a}])}(),function(){"use strict";angular.module("gantt").service("ganttEnableNgAnimate",["$injector",function(a){var b;try{b=a.get("$animate")}catch(c){}return void 0!==b?function(a,c){b.enabled(!1,c)}:function(){}}])}(),function(){"use strict";angular.module("gantt").service("ganttLayout",[function(){return{setColumnsWidth:function(a,b,c){if(a&&b&&c){var d=Math.abs(a/b);angular.forEach(c,function(a){a.left=d*a.originalSize.left,a.width=d*a.originalSize.width,angular.forEach(a.timeFrames,function(a){a.left=d*a.originalSize.left,a.width=d*a.originalSize.width})})}}}}])}(),function(){"use strict";angular.module("gantt").service("ganttMouseButton",[function(){return{getButton:function(a){return a=a||window.event,a.which?a.which:void 0===a.button?1:a.button<2?1:4===a.button?2:3}}}])}(),function(){"use strict";angular.module("gantt").service("ganttMouseOffset",[function(){return{getTouch:function(a){return void 0!==a.touches?a.touches[0]:a},getOffset:function(a){return a.offsetX&&a.offsetY?{x:a.offsetX,y:a.offsetY}:a.layerX&&a.layerY?{x:a.layerX,y:a.layerY}:this.getOffsetForElement(a.target,a)},getOffsetForElement:function(a,b){var c=a.getBoundingClientRect();return{x:b.clientX-c.left,y:b.clientY-c.top}}}}])}(),function(){"use strict";angular.module("gantt").factory("ganttSmartEvent",[function(){function a(a,b,c,d){return a.$on("$destroy",function(){b.unbind(c,d)}),{bindOnce:function(){b.one(c,d)},bind:function(){b.bind(c,d)},unbind:function(){b.unbind(c,d)}}}return a}])}(),angular.module("gantt.templates",[]).run(["$templateCache",function(a){a.put("template/gantt.tmpl.html",'
\n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n \n
\n
\n \n \n \n \n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n\n \n \n\n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n\n \n\n \n \n\n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n
\n') -}]); +!function(){"use strict";angular.module("gantt",["gantt.templates","angularMoment"]).directive("gantt",["Gantt","ganttOptions","GanttCalendar","moment","ganttMouseOffset","ganttDebounce","ganttEnableNgAnimate","$timeout","$templateCache",function(a,b,c,d,e,f,g,h,i){return{restrict:"A",transclude:!0,templateUrl:function(a,b){var c;return c=void 0===b.templateUrl?"template/gantt.tmpl.html":b.templateUrl,void 0!==b.template&&i.put(c,b.template),c},scope:{sortMode:"=?",filterTask:"=?",filterTaskComparator:"=?",filterRow:"=?",filterRowComparator:"=?",viewScale:"=?",columnWidth:"=?",allowSideResizing:"=?",fromDate:"=?",toDate:"=?",currentDateValue:"=?",currentDate:"=?",autoExpand:"=?",taskOutOfRange:"=?",maxHeight:"=?",headers:"=?",headersFormats:"=?",timeFrames:"=?",dateFrames:"=?",timeFramesWorkingMode:"=?",timeFramesNonWorkingMode:"=?",timespans:"=?",columnMagnet:"=?",shiftColumnMagnet:"=?",data:"=?",api:"=?",options:"=?"},controller:["$scope","$element",function(c,d){for(var e in c.options)c[e]=c.options[e];b.initialize(c),g(!1,d),c.gantt=new a(c,d),this.gantt=c.gantt}],link:function(a,b){a.gantt.api.directives.raise.new("gantt",a,b),a.$on("$destroy",function(){a.gantt.api.directives.raise.destroy("gantt",a,b)}),h(function(){a.gantt.api.core.raise.ready(a.gantt.api),a.gantt.rendered=!0,a.gantt.columnsManager.generateColumns(),a.gantt.api.core.raise.rendered(a.gantt.api)})}}}])}(),function(){"use strict";angular.module("gantt").factory("GanttApi",["$q","$rootScope","ganttUtils",function(a,b,c){function d(a,b,c,d){return a.$on(b,function(){var a=Array.prototype.slice.call(arguments);a.splice(0,1),c.apply(d.api,a)})}var e=function(a){this.gantt=a,this.listeners=[],this.apiId=c.newId()};return e.prototype.suppressEvents=function(a,b){var c=this,e=angular.isArray(a)?a:[a],f=[];e.forEach(function(a){f=c.listeners.filter(function(b){return a===b.handler})}),f.forEach(function(a){a.dereg()}),b(),f.forEach(function(a){a.dereg=d(a.scope,a.eventId,a.handler,c.gantt)})},e.prototype.registerEvent=function(a,c){var e=this;e[a]||(e[a]={});var f=e[a];f.on||(f.on={},f.raise={});var g="event:gantt:"+this.apiId+":"+a+":"+c;f.raise[c]=function(){b.$broadcast.apply(b,[g].concat(Array.prototype.slice.call(arguments)))},f.on[c]=function(a,b){var c=d(a,g,b,e.gantt),f={handler:b,dereg:c,eventId:g,scope:a};e.listeners.push(f),a.$on("$destroy",function(){f.dereg=null,f.handler=null,f.eventId=null,f.scope=null})}},e.prototype.registerEventsFromObject=function(a){var b=this,c=[];angular.forEach(a,function(a,b){var d={name:b,events:[]};angular.forEach(a,function(a,b){d.events.push(b)}),c.push(d)}),c.forEach(function(a){a.events.forEach(function(c){b.registerEvent(a.name,c)})})},e.prototype.registerMethod=function(a,b,d,e){this[a]||(this[a]={});var f=this[a];f[b]=c.createBoundedWrapper(e||this.gantt,d)},e.prototype.registerMethodsFromObject=function(a,b){var c=this,d=[];angular.forEach(a,function(a,b){var c={name:b,methods:[]};angular.forEach(a,function(a,b){c.methods.push({name:b,fn:a})}),d.push(c)}),d.forEach(function(a){a.methods.forEach(function(d){c.registerMethod(a.name,d.name,d.fn,b)})})},e}])}(),function(){"use strict";angular.module("gantt").factory("ganttOptions",["moment",function(a){return{initialize:function(b){return b.api=b.api||angular.noop(),b.data=b.data||[],b.timespans=b.timespans||[],b.sortMode=b.sortMode||void 0,b.filterTask=b.filterTask||void 0,b.filterTaskComparator=b.filterTaskComparator||void 0,b.filterRow=b.filterRow||void 0,b.filterRowComparator=b.filterRowComparator||void 0,b.viewScale=b.viewScale||"day",b.columnMagnet=b.columnMagnet||"15 minutes",b.columnWidth=b.columnWidth||void 0,b.fromDate=b.fromDate||void 0,b.toDate=b.toDate||void 0,b.allowSideResizing=void 0!==b.allowSideResizing?!!b.allowSideResizing:!0,b.currentDate=b.currentDate||"line",b.currentDateValue=b.currentDateValue||a(),b.autoExpand=b.autoExpand||"none",b.taskOutOfRange=b.taskOutOfRange||"truncate",b.maxHeight=b.maxHeight||0,b.headers=b.headers||void 0,b.headersFormats=b.headersFormats||void 0,b.timeFrames=b.timeFrames||[],b.dateFrames=b.dateFrames||[],b.timeFramesWorkingMode=b.timeFramesWorkingMode||"hidden",b.timeFramesNonWorkingMode=b.timeFramesNonWorkingMode||"visible",b}}}])}(),function(){"use strict";angular.module("gantt").factory("GanttCalendar",["$filter","moment",function(a,b){var c=function(a){void 0===a&&(a={}),this.start=a.start,this.end=a.end,this.working=a.working,this.default=a.default,this.color=a.color,this.classes=a.classes};c.prototype.updateView=function(){if(this.$element){void 0!==this.left?this.$element.css("left",this.left+"px"):this.$element.css("left",""),void 0!==this.width?this.$element.css("width",this.width+"px"):this.$element.css("width",""),void 0!==this.color?this.$element.css("background-color",this.color):this.$element.css("background-color","");var a=["gantt-timeframe"+(this.working?"":"-non")+"-working"];this.classes&&(a=a.concat(this.classes));for(var b=0,c=a.length;c>b;b++)this.$element.toggleClass(a[b],!0)}},c.prototype.getDuration=function(){return this.end.diff(this.start,"milliseconds")},c.prototype.clone=function(){return new c(this)};var d=function(a){this.func=a};d.prototype.getTimeFrames=function(a){var b=this.func(a);return b instanceof Array||(b=[b]),b},d.prototype.clone=function(){return new d(this.func)};var e=function(a){this.evaluator=a.evaluator,a.date?(this.start=b(a.date).startOf("day"),this.end=b(a.date).endOf("day")):(this.start=a.start,this.end=a.end),this.targets=a.targets instanceof Array?a.targets:[a.targets],this.default=a.default};e.prototype.dateMatch=function(a){return this.evaluator?this.evaluator(a):this.start&&this.end?a>=this.start&&a<=this.end:!1},e.prototype.clone=function(){return new e(this)};var f=function(){this.timeFrames={},this.timeFrameMappings={},this.dateFrames={}};f.prototype.clear=function(){this.timeFrames={},this.timeFrameMappings={},this.dateFrames={}},f.prototype.registerTimeFrames=function(a){angular.forEach(a,function(a,b){this.timeFrames[b]=new c(a)},this)},f.prototype.removeTimeFrames=function(a){angular.forEach(a,function(a){delete this.timeFrames[a]},this)},f.prototype.clearTimeFrames=function(){this.timeFrames={}},f.prototype.registerTimeFrameMappings=function(a){angular.forEach(a,function(a,b){this.timeFrameMappings[b]=new d(a)},this)},f.prototype.removeTimeFrameMappings=function(a){angular.forEach(a,function(a){delete this.timeFrameMappings[a]},this)},f.prototype.clearTimeFrameMappings=function(){this.timeFrameMappings={}},f.prototype.registerDateFrames=function(a){angular.forEach(a,function(a,b){this.dateFrames[b]=new e(a)},this)},f.prototype.removeDateFrames=function(a){angular.forEach(a,function(a){delete this.dateFrames[a]},this)},f.prototype.clearDateFrames=function(){this.dateFrames={}};var g=function(a,b){var c=[];return angular.forEach(a,function(a){a.dateMatch(b)&&c.push(a)}),0===c.length&&angular.forEach(a,function(a){a.default&&c.push(a)}),c};return f.prototype.getTimeFrames=function(a){var c=[],d=g(this.dateFrames,a);angular.forEach(d,function(a){void 0!==a&&angular.forEach(a.targets,function(a){var b=this.timeFrameMappings[a];if(void 0!==b)c.push(b.getTimeFrames());else{var d=this.timeFrames[a];void 0!==d&&c.push(d)}},this)},this);var e=a.year(),f=a.month(),h=a.date(),i=[];return 0===c.length&&angular.forEach(this.timeFrames,function(a){a.default&&c.push(a)}),angular.forEach(c,function(a){a=a.clone(),void 0!==a.start&&(a.start.year(e),a.start.month(f),a.start.date(h)),void 0!==a.end&&(a.end.year(e),a.end.month(f),a.end.date(h),b(a.end).startOf("day")===a.end&&a.end.add(1,"day")),i.push(a)}),i},f.prototype.solve=function(d,e,f){var g,h,i,j,k=0===d.length;angular.forEach(d,function(a){(void 0===i||i>a.start)&&(i=a.start),(void 0===j||je)});var m=a("orderBy")(d,function(a){return-a.getDuration()});return angular.forEach(m,function(a){var c=l.slice(),d=0,e=!1,f=!1;angular.forEach(l,function(g){if(!f){if(a.end>g.start&&a.startg.start&&(g.start=b(a.end),e=!1,f=!0);d++}}),l=c}),l=a("filter")(l,function(a){return(void 0===a.start||a.starte)})},f}])}(),function(){"use strict";angular.module("gantt").factory("GanttCurrentDateManager",["moment",function(a){var b=function(b){var c=this;this.gantt=b,this.date=void 0,this.position=void 0,this.currentDateColumn=void 0,this.gantt.$scope.simplifyMoment=function(b){return a.isMoment(b)?b.unix():b},this.gantt.$scope.$watchGroup(["currentDate","simplifyMoment(currentDateValue)"],function(){c.setCurrentDate(c.gantt.$scope.currentDateValue)})};return b.prototype.setCurrentDate=function(a){if(this.date=a,void 0!==this.currentDateColumn&&(void 0!==this.currentDateColumn.$element&&this.currentDateColumn.$element.removeClass("gantt-foreground-col-current-date"),delete this.currentDateColumn),void 0!==this.date){var b=this.gantt.columnsManager.getColumnByDate(this.date);void 0!==b&&(this.currentDateColumn=b,"column"===this.gantt.$scope.currentDate&&void 0!==this.currentDateColumn.$element&&this.currentDateColumn.$element.addClass("gantt-foreground-col-current-date"))}this.position=this.gantt.getPositionByDate(this.date)},b}])}(),function(){"use strict";angular.module("gantt").factory("GanttColumn",["moment",function(a){var b=function(a,b,c,d,e,f,g){this.date=a,this.endDate=b,this.left=c,this.width=d,this.calendar=e,this.duration=this.endDate.diff(this.date,"milliseconds"),this.timeFramesWorkingMode=f,this.timeFramesNonWorkingMode=g,this.timeFrames=[],this.visibleTimeFrames=[],this.daysTimeFrames={},this.cropped=!1,this.originalSize={left:this.left,width:this.width},this.updateTimeFrames()},c=function(a){return a.year()+"-"+a.month()+"-"+a.date()};return b.prototype.updateView=function(){if(this.$element){this.$element.css("left",this.left+"px"),this.$element.css("width",this.width+"px");for(var a=0,b=this.timeFrames.length;b>a;a++)this.timeFrames[a].updateView()}},b.prototype.updateTimeFrames=function(){var b=this;if(void 0!==b.calendar&&("hidden"!==b.timeFramesNonWorkingMode||"hidden"!==b.timeFramesWorkingMode)){for(var d=function(c,d,e){return function(f){var g=f.start;void 0===g&&(g=d);var h=f.end;void 0===h&&(h=e),gb.endDate&&(h=b.endDate),f=f.clone(),f.start=a(g),f.end=a(h),c.push(f)}},e=b.date,f=a(e).startOf("day"),g=f.add(1,"day");ethis.date&&a<=this.endDate},b.prototype.equals=function(a){return this.date===a.date},b.prototype.getMagnetDate=function(b,c,d){if(c>0&&void 0!==d){var e=b;b=a(b);var f,g,h;1>c?(b.startOf(d),f=e.diff(b,"milliseconds"),h=a.duration(c,d).asMilliseconds(),g=Math.round(f/h)*h,b.set("milliseconds",g)):(f=b.get(d),g=Math.round(f/c)*c,b.startOf(d),b.set(d,g));for(var i=0,j=this.timeFrames.length;j>i;i++){var k,l=this.timeFrames[i];if(l.cropped&&b>=l.start&&b<=l.end&&(k=!0),!l.cropped&&(k||b>=l.start&&b<=l.end)){k&&(k=!1,bl.end&&(e=l.end));var m=Math.abs(e.diff(b,"milliseconds"));e.diff(l.start,"milliseconds")c;c++){var e=this.timeFrames[c];if(!e.cropped&&b>=e.left&&b<=e.left+e.width){var f=e.getDuration()/e.width*(b-e.left),g=a(e.start).add(f,"milliseconds");return g}}},b.prototype.getDateByPosition=function(b,c,d){var e,f;return 0>b&&(b=0),b>this.width&&(b=this.width),("cropped"===this.timeFramesNonWorkingMode||"cropped"===this.timeFramesWorkingMode)&&(f=this.getDateByPositionUsingTimeFrames(b)),void 0===f&&(e=this.duration/this.width*b,f=a(this.date).add(e,"milliseconds")),f=this.getMagnetDate(f,c,d)},b.prototype.getDayTimeFrame=function(a){var b=this.daysTimeFrames[c(a)];return void 0===b?[]:b},b.prototype.getPositionByDate=function(a){var b,c;if("cropped"===this.timeFramesNonWorkingMode||"cropped"===this.timeFramesWorkingMode)for(var d=a,e=this.getDayTimeFrame(d),f=0;f=g.start&&d<=g.end){if(!g.cropped)return b=d.diff(g.start,"milliseconds"),c=b/g.getDuration()*g.width,this.left+g.left+c;d=e.length>f+1?e[f+1].start:g.end}}return b=a.diff(this.date,"milliseconds"),c=b/this.duration*this.width,0>c&&(c=0),c>this.width&&(c=this.width),this.left+c},b}])}(),function(){"use strict";angular.module("gantt").factory("GanttColumnGenerator",["GanttColumn","moment",function(a,b){var c=function(c){var d=this,e=c.gantt.$scope.columnWidth;void 0===e&&(e=20);var f=c.gantt.$scope.viewScale,g=c.gantt.calendar,h=c.gantt.$scope.timeFramesWorkingMode,i=c.gantt.$scope.timeFramesNonWorkingMode;d.generate=function(c,d,k,l,m){if(!d&&!k)throw"to or maximumWidth must be defined";var n=!1;c=b(c).startOf(f),d&&(n=j(d),d=b(d).startOf(f));for(var o=b(c).startOf(f),p=[],q=0;;){if(k&&Math.abs(q)>k+e)break;var r=b(o),s=b(r).add(1,f),t=new a(r,s,l?q+l:q,e,g,h,i);if(!t.cropped&&(p.push(t),m?q-=e:q+=e,d))if(m){if(n&&d>o||!n&&d>=o)break}else if(n&&o>d||!n&&o>=d)break;o.add(m?-1:1,f)}return m&&(j(c)&&p.shift(),p.reverse()),p};var j=function(a){return b(a).add(1,f).startOf(f)===a}};return c}])}(),function(){"use strict";angular.module("gantt").factory("GanttColumnHeader",["moment","GanttColumn",function(a,b){var c=function(c,d,e,f,g){var h=a(c),i=a(h).add(1,d),j=new b(h,i,e,f);return j.unit=d,j.label=angular.isFunction(g)?g(j):h.format(g),j};return c}])}(),function(){"use strict";angular.module("gantt").factory("GanttColumnsManager",["GanttColumnGenerator","GanttHeaderGenerator","$filter","$timeout","ganttLayout","ganttBinarySearch","moment",function(a,b,c,d,e,f,g){var h=function(a){var b=this;this.gantt=a,this.from=void 0,this.to=void 0,this.columns=[],this.visibleColumns=[],this.previousColumns=[],this.nextColumns=[],this.headers=[],this.visibleHeaders=[],this.scrollAnchor=void 0,this.gantt.$scope.$watchGroup(["viewScale","columnWidth","timeFramesWorkingMode","timeFramesNonWorkingMode","fromDate","toDate","autoExpand","taskOutOfRange"],function(a,c){a!==c&&b.gantt.rendered&&b.generateColumns()}),this.gantt.$scope.$watchCollection("headers",function(a,c){a!==c&&b.gantt.rendered&&b.generateColumns()}),this.gantt.$scope.$watchCollection("headersFormats",function(a,c){a!==c&&b.gantt.rendered&&b.generateColumns()}),this.gantt.$scope.$watchGroup(["bodyRowsWidth","bodyRowsLeft","ganttElementWidth","sideWidth","maxHeight"],function(a,c){a!==c&&b.gantt.rendered&&b.updateColumnsMeta()}),this.gantt.api.data.on.load(this.gantt.$scope,function(){(void 0===b.from||void 0===b.to||b.from>b.gantt.rowsManager.getDefaultFrom()||b.to0){var a=this.gantt.scroll.$element[0],b=a.scrollLeft+a.offsetWidth/2;this.scrollAnchor=this.gantt.getDateByPosition(b)}},h.prototype.scrollToScrollAnchor=function(){var a=this;this.columns.length>0&&void 0!==this.scrollAnchor&&this.gantt.$scope.$$postDigest(function(){a.gantt.api.scroll.toDate(a.scrollAnchor)})},h.prototype.clearColumns=function(){this.setScrollAnchor(),this.from=void 0,this.to=void 0,this.columns=[],this.visibleColumns=[],this.previousColumns=[],this.nextColumns=[],this.headers=[],this.visibleHeaders=[],this.gantt.api.columns.raise.clear()},h.prototype.generateColumns=function(c,d){if(c||(c=this.gantt.$scope.fromDate),d||(d=this.gantt.$scope.toDate),!c&&(c=this.gantt.rowsManager.getDefaultFrom(),!c))return!1;if(!d&&(d=this.gantt.rowsManager.getDefaultTo(),!d))return!1;void 0===c||g.isMoment(c)||(c=g(c)),void 0===d||g.isMoment(d)||(d=g(d)),"expand"===this.gantt.$scope.taskOutOfRange&&(c=this.gantt.rowsManager.getExpandedFrom(c),d=this.gantt.rowsManager.getExpandedTo(d)),this.setScrollAnchor(),this.from=c,this.to=d;var e=new a(this),f=new b(this);this.columns=e.generate(c,d),this.headers=f.generate(this.columns),this.previousColumns=[],this.nextColumns=[],this.updateColumnsMeta(),this.scrollToScrollAnchor(),this.gantt.api.columns.raise.generate(this.columns,this.headers)},h.prototype.updateColumnsMeta=function(){var a=this.getLastColumn();this.gantt.originalWidth=void 0!==a?a.originalSize.left+a.originalSize.width:0;var b=this.updateColumnsWidths([this.previousColumns,this.columns,this.nextColumns,this.headers]);this.gantt.width=void 0!==a?a.left+a.width:0,this.gantt.rowsManager.updateTasksPosAndSize(),this.gantt.timespansManager.updateTimespansPosAndSize(),this.updateVisibleColumns(b),this.gantt.rowsManager.updateVisibleObjects(),this.gantt.currentDateManager.setCurrentDate(this.gantt.$scope.currentDateValue)},h.prototype.getLastColumn=function(a){var b=this.columns;return a&&(b=this.nextColumns),b&&b.length>0?b[b.length-1]:void 0},h.prototype.getFirstColumn=function(a){var b=this.columns;return a&&(b=this.previousColumns),b&&b.length>0?b[0]:void 0},h.prototype.getColumnByDate=function(a){this.expandExtendedColumnsForDate(a);var b=this.previousColumns.concat(this.columns,this.nextColumns),c=f.get(b,a,function(a){return a.date},!0);return void 0!==c[0]?c[0]:c[1]},h.prototype.getColumnByPosition=function(a){this.expandExtendedColumnsForPosition(a);var b=this.previousColumns.concat(this.columns,this.nextColumns),c=f.get(b,a,function(a){return a.left},!0);return void 0===c[0]?c[1]:c[0]};var i=function(a,b,c){return angular.isArray(c)&&c.length>0&&angular.isArray(c[0])?void angular.forEach(c,function(c){i(a,b,c)}):void e.setColumnsWidth(a,b,c)};h.prototype.updateColumnsWidths=function(a){var b=void 0===this.gantt.$scope.columnWidth,c=this.gantt.getWidth()-this.gantt.side.getWidth();if(b){var d=c-this.gantt.scroll.getBordersWidth();i(d,this.gantt.originalWidth,a)}return b},h.prototype.expandExtendedColumnsForPosition=function(b){if(0>b){var c=this.getFirstColumn(),d=c.date,e=this.getFirstColumn(!0);return(!e||e.left>b)&&(this.previousColumns=new a(this).generate(d,void 0,-b,0,!0),this.updateColumnsWidths(this.previousColumns)),!0}if(b>this.gantt.width){var f=this.getLastColumn(),g=f.getDateByPosition(f.width),h=this.getLastColumn(!0);return(!h||h.left+h.widthb){var g=this.getFirstColumn(!0);return(!g||g.date>b)&&(this.previousColumns=new a(this).generate(c,b,void 0,0,!0),this.updateColumnsWidths(this.previousColumns)),!0}if(e&&b>e){var h=this.getLastColumn(!0);return(!h||h>e)&&(this.nextColumns=new a(this).generate(e,b,void 0,this.gantt.width,!1),this.updateColumnsWidths(this.nextColumns)),!0}return!1},h.prototype.getActiveHeadersCount=function(){return this.headers.length},h.prototype.updateVisibleColumns=function(a){this.visibleColumns=c("ganttColumnLimit")(this.columns,this.gantt),this.visibleHeaders=[],angular.forEach(this.headers,function(a){this.visibleHeaders.push(c("ganttColumnLimit")(a,this.gantt))},this),a&&(angular.forEach(this.visibleColumns,function(a){a.updateView()}),angular.forEach(this.visibleHeaders,function(a){angular.forEach(a,function(a){a.updateView()})}))};var j={year:"YYYY",quarter:"[Q]Q YYYY",month:"MMMM YYYY",week:"w",day:"D",hour:"H",minute:"HH:mm"},k={day:"LL",hour:"H",minute:"HH:mm"},l={year:"YYYY",quarter:"[Q]Q",month:"MMMM"};return h.prototype.getHeaderFormat=function(a){var b;return void 0!==this.gantt.$scope.headersFormats&&(b=this.gantt.$scope.headersFormats[a]),void 0===b&&(["millisecond","second","minute","hour"].indexOf(this.gantt.$scope.viewScale)>-1?b=k[a]:["month","quarter","year"].indexOf(this.gantt.$scope.viewScale)>-1&&(b=l[a]),void 0===b&&(b=j[a])),b},h}])}(),function(){"use strict";angular.module("gantt").factory("GanttHeaderGenerator",["GanttColumnHeader",function(a){var b=function(b,c,d){for(var e,f,g=[],h=0,i=c.length;i>h;h++){var j=c[h],k=j.date.get(d);if(0===h||f!==k){f=k;var l=b.getHeaderFormat(d);e=new a(j.date,d,j.originalSize.left,j.originalSize.width,l),e.left=j.left,e.width=j.width,g.push(e)}else e.originalSize.width+=j.originalSize.width,e.width+=j.width}return g};return function(a){this.generate=function(c){var d=[];void 0===a.gantt.$scope.headers?(d=[],["year","quarter","month"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("year"),["quarter"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("quarter"),["day","week","month"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("month"),["day","week"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("week"),["hour","day"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("day"),["hour","minute","second"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("hour"),["minute","second"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("minute"),["second"].indexOf(a.gantt.$scope.viewScale)>-1&&d.push("second"),0===d.length&&d.push(a.gantt.$scope.viewScale)):d=a.gantt.$scope.headers;var e=[];return angular.forEach(d,function(d){e.push(b(a,c,d))}),e}}}])}(),function(){"use strict";angular.module("gantt").factory("Gantt",["GanttApi","GanttCalendar","GanttScroll","GanttBody","GanttRowHeader","GanttHeader","GanttSide","GanttObjectModel","GanttRowsManager","GanttColumnsManager","GanttTimespansManager","GanttCurrentDateManager","ganttArrays","moment","$document",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var p=function(e,n){var p=this;this.$scope=e,this.$element=n,this.api=new a(this),this.api.registerEvent("core","ready"),this.api.registerEvent("core","rendered"),this.api.registerEvent("directives","preLink"),this.api.registerEvent("directives","postLink"),this.api.registerEvent("directives","new"),this.api.registerEvent("directives","destroy"),this.api.registerEvent("data","load"),this.api.registerEvent("data","remove"),this.api.registerEvent("data","clear"),this.api.registerMethod("core","getDateByPosition",this.getDateByPosition,this),this.api.registerMethod("core","getPositionByDate",this.getPositionByDate,this),this.api.registerMethod("data","load",this.loadData,this),this.api.registerMethod("data","remove",this.removeData,this),this.api.registerMethod("data","clear",this.clearData,this),this.api.registerMethod("data","get",this.getData,this),this.calendar=new b(this),this.calendar.registerTimeFrames(this.$scope.timeFrames),this.calendar.registerDateFrames(this.$scope.dateFrames),this.api.registerMethod("timeframes","registerTimeFrames",this.calendar.registerTimeFrames,this.calendar),this.api.registerMethod("timeframes","clearTimeframes",this.calendar.clearTimeFrames,this.calendar),this.api.registerMethod("timeframes","registerDateFrames",this.calendar.registerDateFrames,this.calendar),this.api.registerMethod("timeframes","clearDateFrames",this.calendar.clearDateFrames,this.calendar),this.api.registerMethod("timeframes","registerTimeFrameMappings",this.calendar.registerTimeFrameMappings,this.calendar),this.api.registerMethod("timeframes","clearTimeFrameMappings",this.calendar.clearTimeFrameMappings,this.calendar),e.$watchGroup(["timeFrames","dateFrames"],function(a,b){if(a!==b){var c=a[0],d=a[1],e=b[0],f=b[1];angular.equals(c,e)||(p.calendar.clearTimeFrames(),p.calendar.registerTimeFrames(c)),angular.equals(d,f)||(p.calendar.clearDateFrames(),p.calendar.registerDateFrames(d)),p.columnsManager.generateColumns()}}),e.$watch("columnMagnet",function(){var a;e.columnMagnet&&(a=e.columnMagnet.trim().split(" ")),a&&a.length>1?(p.columnMagnetValue=parseFloat(a[0]),p.columnMagnetUnit=a[a.length-1]):(p.columnMagnetValue=void 0,p.columnMagnetUnit=void 0)}),e.$watchGroup(["shiftColumnMagnet","viewScale"],function(){var a;e.shiftColumnMagnet&&(a=e.shiftColumnMagnet.trim().split(" ")),void 0!==a&&a.length>1?(p.shiftColumnMagnetValue=parseFloat(a[0]),p.shiftColumnMagnetUnit=a[a.length-1]):(p.shiftColumnMagnetValue=void 0,p.shiftColumnMagnetUnit=void 0)}),o.on("keyup keydown",function(a){return p.shiftKey=a.shiftKey,!0}),this.scroll=new c(this),this.body=new d(this),this.header=new f(this),this.side=new g(this),this.objectModel=new h(this.api),this.rowsManager=new i(this),this.columnsManager=new j(this),this.timespansManager=new k(this),this.currentDateManager=new l(this),this.originalWidth=0,this.width=0,angular.isFunction(this.$scope.api)&&this.$scope.api(this.api),this.$scope.$watchCollection("data",function(a,b){for(var c=m.getRemovedIds(a,b),d=0,e=c.length;e>d;d++){var f=c[d];p.rowsManager.removeRow(f)}void 0!==a&&p.loadData(a)})};return p.prototype.getDateByPosition=function(a,b){var c=this.columnsManager.getColumnByPosition(a);if(void 0!==c){var d,e;return b&&(this.shiftKey?void 0!==this.shiftColumnMagnetValue&&void 0!==this.shiftColumnMagnetUnit?(d=this.shiftColumnMagnetValue,e=this.shiftColumnMagnetUnit):(d=.25,e=this.$scope.viewScale):(d=this.columnMagnetValue,e=this.columnMagnetUnit)),c.getDateByPosition(a-c.left,d,e)}return void 0},p.prototype.getPositionByDate=function(a){if(void 0===a)return void 0;n.isMoment(n)||(a=n(a));var b=this.columnsManager.getColumnByDate(a);return void 0!==b?b.getPositionByDate(a):void 0},p.prototype.loadData=function(a){angular.isArray(a)||(a=void 0!==a?[a]:[]),(void 0===this.$scope.data||this.$scope.data!==a)&&(this.$scope.data=[]);for(var b=0,c=a.length;c>b;b++){var d=a[b];this.rowsManager.addRow(d)}this.api.data.raise.load(this.$scope,a)},p.prototype.getData=function(){return this.$scope.data},p.prototype.removeData=function(a){angular.isArray(a)||(a=void 0!==a?[a]:[]),this.rowsManager.removeData(a),this.api.data.raise.remove(this.$scope,a)},p.prototype.clearData=function(){this.rowsManager.removeAll(),this.api.data.raise.clear(this.$scope)},p.prototype.getWidth=function(){return this.$element[0].offsetWidth},p}])}(),function(){"use strict";angular.module("gantt").factory("GanttObjectModel",["ganttUtils","moment",function(a,b){var c=function(a){this.api=a,this.api.registerEvent("tasks","clean"),this.api.registerEvent("rows","clean"),this.api.registerEvent("timespans","clean")};return c.prototype.cleanTask=function(c){void 0===c.id&&(c.id=a.randomUuid()),void 0===c.from||b.isMoment(c.from)||(c.from=b(c.from)),void 0===c.to||b.isMoment(c.to)||(c.to=b(c.to)),this.api.tasks.raise.clean(c)},c.prototype.cleanRow=function(c){void 0===c.id&&(c.id=a.randomUuid()),void 0===c.from||b.isMoment(c.from)||(c.from=b(c.from)),void 0===c.to||b.isMoment(c.to)||(c.to=b(c.to)),this.api.rows.raise.clean(c)},c.prototype.cleanTimespan=function(c){void 0===c.id&&(c.id=a.randomUuid()),void 0===c.from||b.isMoment(c.from)||(c.from=b(c.from)),void 0===c.to||b.isMoment(c.to)||(c.to=b(c.to)),this.api.timespans.raise.clean(c)},c}])}(),function(){"use strict";angular.module("gantt").factory("GanttRow",["GanttTask","moment","$filter",function(a,b,c){var d=function(a,b){this.rowsManager=a,this.model=b,this.from=void 0,this.to=void 0,this.tasksMap={},this.tasks=[],this.filteredTasks=[],this.visibleTasks=[]};return d.prototype.addTaskImpl=function(a,b){this.tasksMap[a.model.id]=a,this.tasks.push(a),this.filteredTasks.push(a),this.visibleTasks.push(a),b||(void 0===this.model.tasks&&(this.model.tasks=[]),-1===this.model.tasks.indexOf(a.model)&&this.model.tasks.push(a.model))},d.prototype.addTask=function(b,c){var d,e=!1;if(this.rowsManager.gantt.objectModel.cleanTask(b),b.id in this.tasksMap){if(d=this.tasksMap[b.id],d.model===b)return d;d.model=b,e=!0}else d=new a(this,b),this.addTaskImpl(d,c);return this.sortTasks(),this.setFromToByTask(d),c||(e?this.rowsManager.gantt.api.tasks.raise.change(d):this.rowsManager.gantt.api.tasks.raise.add(d)),d},d.prototype.moveTaskToRow=function(a,b){var c=a.row;c.removeTask(a.model.id,b,!0),a.row=this,this.addTaskImpl(a,b),this.sortTasks(),this.setFromToByTask(a),a.updatePosAndSize(),b||this.rowsManager.gantt.api.tasks.raise.rowChange(a,c)},d.prototype.updateVisibleTasks=function(){if(this.rowsManager.gantt.$scope.filterTask){var a=this.rowsManager.gantt.$scope.filterTask;"object"==typeof a&&(a={model:a});var b=this.rowsManager.gantt.$scope.filterTaskComparator;"function"==typeof b&&(b=function(a,b){return this.rowsManager.gantt.$scope.filterRowComparator(a.model,b.model)}),this.filteredTasks=c("filter")(this.tasks,a,b)}else this.filteredTasks=this.tasks.slice(0);this.visibleTasks=c("ganttTaskLimit")(this.filteredTasks,this.rowsManager.gantt)},d.prototype.updateTasksPosAndSize=function(){for(var a=0,b=this.tasks.length;b>a;a++)this.tasks[a].updatePosAndSize()},d.prototype.removeTask=function(a,b,c){if(a in this.tasksMap){var d,e,f=this.tasksMap[a];for(e=this.tasks.length-1;e>=0;e--)if(d=this.tasks[e],d.model.id===a){this.tasks.splice(e,1),(this.from-d.model.from===0||this.to-d.model.to===0)&&this.setFromTo();break}for(e=this.filteredTasks.length-1;e>=0;e--)if(d=this.filteredTasks[e],d.model.id===a){this.filteredTasks.splice(e,1);break}for(e=this.visibleTasks.length-1;e>=0;e--)if(d=this.visibleTasks[e],d.model.id===a){this.visibleTasks.splice(e,1);break}if(!b){if(delete this.tasksMap[a],void 0!==this.model.tasks){var g=this.model.tasks.indexOf(f.model);g>-1&&this.model.tasks.splice(g,1)}c||this.rowsManager.gantt.api.tasks.raise.remove(f)}return f}},d.prototype.removeAllTasks=function(){this.from=void 0,this.to=void 0,this.tasksMap={},this.tasks=[],this.filteredTasks=[],this.visibleTasks=[]},d.prototype.setFromTo=function(){this.from=void 0,this.to=void 0;for(var a=0,b=this.tasks.length;b>a;a++)this.setFromToByTask(this.tasks[a])},d.prototype.setFromToByTask=function(a){void 0===this.from?this.from=b(a.model.from):a.model.fromthis.to&&(this.to=b(a.model.to))},d.prototype.sortTasks=function(){this.tasks.sort(function(a,b){return a.left-b.left})},d.prototype.clone=function(){for(var a=new d(this.rowsManager,angular.copy(this)),b=0,c=this.tasks.length;c>b;b++)a.addTask(this.tasks[b].model); +return a},d}])}(),function(){"use strict";angular.module("gantt").factory("GanttRowHeader",[function(){var a=function(a){this.gantt=a};return a}])}(),function(){"use strict";angular.module("gantt").factory("GanttRowsManager",["GanttRow","ganttArrays","$filter","moment",function(a,b,c,d){var e=function(a){var b=this;this.gantt=a,this.rowsMap={},this.rows=[],this.sortedRows=[],this.filteredRows=[],this.visibleRows=[],this.rowsTaskWatchers=[],this.gantt.$scope.$watchGroup(["filterTask","filterTaskComparator"],function(a,c){a!==c&&b.updateVisibleTasks()}),this.gantt.$scope.$watchGroup(["filterRow","filterRowComparator"],function(a,c){a!==c&&b.updateVisibleRows()}),this.gantt.$scope.$watch("sortMode",function(a,c){a!==c&&b.sortRows()}),this.gantt.api.registerMethod("rows","sort",e.prototype.sortRows,this),this.gantt.api.registerMethod("rows","applySort",e.prototype.applySort,this),this.gantt.api.registerMethod("rows","refresh",e.prototype.updateVisibleObjects,this),this.gantt.api.registerEvent("tasks","add"),this.gantt.api.registerEvent("tasks","change"),this.gantt.api.registerEvent("tasks","rowChange"),this.gantt.api.registerEvent("tasks","remove"),this.gantt.api.registerEvent("tasks","filter"),this.gantt.api.registerEvent("rows","add"),this.gantt.api.registerEvent("rows","change"),this.gantt.api.registerEvent("rows","remove"),this.gantt.api.registerEvent("rows","move"),this.gantt.api.registerEvent("rows","filter"),this.updateVisibleObjects()};return e.prototype.addRow=function(c){var d,e,f,g=!1;if(this.gantt.objectModel.cleanRow(c),c.id in this.rowsMap){if(d=this.rowsMap[c.id],d.model===c)return;var h=b.getRemovedIds(c.tasks,d.model.tasks);for(e=0,f=h.length;f>e;e++){var i=h[e];d.removeTask(i)}d.model=c,g=!0}else d=new a(this,c),this.rowsMap[c.id]=d,this.rows.push(d),this.sortedRows.push(d),this.filteredRows.push(d),this.visibleRows.push(d),-1===this.gantt.$scope.data.indexOf(c)&&this.gantt.$scope.data.push(c);if(void 0!==c.tasks&&c.tasks.length>0)for(e=0,f=c.tasks.length;f>e;e++){var j=c.tasks[e];d.addTask(j)}if(g?this.gantt.api.rows.raise.change(d):this.gantt.api.rows.raise.add(d),!g){var k=this.gantt.$scope.$watchCollection(function(){return c.tasks},function(a,c){if(a!==c){var e,f,g=b.getRemovedIds(a,c);for(e=0,f=g.length;f>e;e++){var h=g[e];d.removeTask(h)}if(void 0!==a)for(e=0,f=a.length;f>e;e++){var i=a[e];d.addTask(i)}}});this.rowsTaskWatchers.push(k)}return g},e.prototype.removeRow=function(a){if(a in this.rowsMap){delete this.rowsMap[a];var c,d,e=b.indexOfId(this.rows,a,["model","id"]);if(e>-1){c=this.rows.splice(e,1)[0];var f=this.rowsTaskWatchers.splice(e,1)[0];f()}return b.removeId(this.sortedRows,a,["model","id"]),b.removeId(this.filteredRows,a,["model","id"]),b.removeId(this.visibleRows,a,["model","id"]),b.remove(this.gantt.$scope.data,c.model),this.gantt.api.rows.raise.remove(c),d}return void 0},e.prototype.removeData=function(a){for(var b=0,c=a.length;c>b;b++){var d,e=a[b];if(void 0!==e.tasks&&e.tasks.length>0){if(e.id in this.rowsMap){d=this.rowsMap[e.id];for(var f=0,g=e.tasks.length;g>f;f++)d.removeTask(e.tasks[f].id);this.gantt.api.rows.raise.change(d)}}else d=this.removeRow(e.id)}this.updateVisibleObjects()},e.prototype.removeAll=function(){this.rowsMap={},this.rows=[],this.sortedRows=[],this.filteredRows=[],this.visibleRows=[];for(var a=this.gantt.$scope.data;a>0;)a.pop();for(var b=0,c=this.rowsTaskWatchers.length;c>b;b++){var d=this.rowsTaskWatchers[b];d()}this.rowsTaskWatchers=[]},e.prototype.sortRows=function(){var a=this.gantt.$scope.sortMode;if(void 0!==a){var b=!1;"-"===a.charAt(0)&&(b=!0,a=a.substr(1));var d=c("orderBy");this.sortedRows=d(this.rows,a,b)}else this.sortedRows=this.rows.slice();this.updateVisibleRows()},e.prototype.applySort=function(){for(var a=this.gantt.$scope.data;a>0;)a.pop();for(var b=[],c=0,d=this.sortedRows.length;d>c;c++)a.push(this.sortedRows[c].model),b.push(this.sortedRows[c]);this.rows=b},e.prototype.moveRow=function(a,c){void 0!==this.gantt.$scope.sortMode&&(this.applySort(),this.gantt.$scope.sortMode=void 0);var d=this.rows.indexOf(c),e=this.rows.indexOf(a);d>-1&&e>-1&&d!==e&&(b.moveToIndex(this.rows,e,d),b.moveToIndex(this.rowsTaskWatchers,e,d),b.moveToIndex(this.gantt.$scope.data,e,d),this.gantt.api.rows.raise.change(a),this.gantt.api.rows.raise.move(a,e,d),this.updateVisibleObjects(),this.sortRows())},e.prototype.updateVisibleObjects=function(){this.updateVisibleRows(),this.updateVisibleTasks()},e.prototype.updateVisibleRows=function(){var a=this.filteredRows;if(this.gantt.$scope.filterRow){var b=this.gantt.$scope.filterRow;"object"==typeof b&&(b={model:b});var d=this.gantt.$scope.filterRowComparator;"function"==typeof d&&(d=function(a,b){return this.gantt.$scope.filterRowComparator(a.model,b.model)}),this.filteredRows=c("filter")(this.sortedRows,b,d)}else this.filteredRows=this.sortedRows.slice(0);var e=!angular.equals(a,this.filteredRows);this.visibleRows=this.filteredRows,e&&this.gantt.api.rows.raise.filter(this.sortedRows,this.filteredRows)},e.prototype.updateVisibleTasks=function(){var a=[],b=[],c=[];angular.forEach(this.rows,function(d){a=a.concat(d.filteredTasks),d.updateVisibleTasks(),b=b.concat(d.filteredTasks),c=c.concat(d.tasks)});var d=!angular.equals(a,b);d&&this.gantt.api.tasks.raise.filter(c,b)},e.prototype.updateTasksPosAndSize=function(){for(var a=0,b=this.rows.length;b>a;a++)this.rows[a].updateTasksPosAndSize()},e.prototype.getExpandedFrom=function(a){a=a?d(a):a;var b=a;return angular.forEach(this.rows,function(a){(void 0===b||b>a.from)&&(b=a.from)}),b&&(!a||a>b)?b:a},e.prototype.getExpandedTo=function(a){a=a?d(a):a;var b=a;return angular.forEach(this.rows,function(a){(void 0===b||bthis.gantt.$scope.toDate)?b:a},e.prototype.getDefaultFrom=function(){var a;return angular.forEach(this.rows,function(b){(void 0===a||b.froma)&&(a=b.to)}),a},e}])}(),function(){"use strict";angular.module("gantt").factory("GanttTask",[function(){var a=function(a,b){this.rowsManager=a.rowsManager,this.row=a,this.model=b,this.truncatedLeft=!1,this.truncatedRight=!1};return a.prototype.isMilestone=function(){return!this.model.to||this.model.from-this.model.to===0},a.prototype.updatePosAndSize=function(){this.modelLeft=this.rowsManager.gantt.getPositionByDate(this.model.from),this.modelWidth=this.rowsManager.gantt.getPositionByDate(this.model.to)-this.modelLeft;var a=this.rowsManager.gantt.columnsManager.getLastColumn(),b=a?a.left+a.width:0;this.modelLeft+this.modelWidth<0||this.modelLeft>b?(this.left=void 0,this.width=void 0):(this.left=Math.min(Math.max(this.modelLeft,0),this.rowsManager.gantt.width),this.modelLeft<0?(this.truncatedLeft=!0,this.modelWidth+this.modelLeft>this.rowsManager.gantt.width?(this.truncatedRight=!0,this.width=this.rowsManager.gantt.width):(this.truncatedRight=!1,this.width=this.modelWidth+this.modelLeft)):this.modelWidth+this.modelLeft>this.rowsManager.gantt.width?(this.truncatedRight=!0,this.truncatedLeft=!1,this.width=this.rowsManager.gantt.width-this.modelLeft):(this.truncatedLeft=!1,this.truncatedRight=!1,this.width=this.modelWidth),this.width<0&&(this.left=this.left+this.width,this.width=-this.width)),this.updateView()},a.prototype.updateView=function(){this.$element&&(void 0===this.left||void 0===this.width?this.$element.css("display","none"):(this.$element.css("display",""),this.$element.css("left",this.left+"px"),this.$element.css("width",this.width+"px"),this.$element.css("background-color",this.model.color),this.model.priority>0&&this.$element.css("z-index",this.model.priority),this.$element.toggleClass("gantt-task-milestone",this.isMilestone()),this.$element.toggleClass("gantt-task",!this.isMilestone())))},a.prototype.setFrom=function(a,b){this.model.from=this.rowsManager.gantt.getDateByPosition(a,b),this.row.setFromToByTask(this),this.updatePosAndSize()},a.prototype.setTo=function(a,b){this.model.to=this.rowsManager.gantt.getDateByPosition(a,b),this.row.setFromToByTask(this),this.updatePosAndSize()},a.prototype.moveTo=function(a,b){if(a>this.left){this.model.to=this.rowsManager.gantt.getDateByPosition(a+this.modelWidth,b);var c=this.rowsManager.gantt.getPositionByDate(this.model.to);this.model.from=this.rowsManager.gantt.getDateByPosition(c-this.modelWidth,!1)}else{this.model.from=this.rowsManager.gantt.getDateByPosition(a,b);var d=this.rowsManager.gantt.getPositionByDate(this.model.from);this.model.to=this.rowsManager.gantt.getDateByPosition(d+this.modelWidth,!1)}this.row.setFromToByTask(this),this.updatePosAndSize()},a.prototype.clone=function(){return new a(this.row,angular.copy(this.model))},a}])}(),function(){"use strict";angular.module("gantt").factory("GanttBody",["GanttBodyColumns","GanttBodyRows","GanttBodyBackground","GanttBodyForeground",function(a,b,c,d){var e=function(e){this.gantt=e,this.background=new c(this),this.foreground=new d(this),this.columns=new a(this),this.rows=new b(this)};return e.prototype.getWidth=function(){return void 0===this.$element?void 0:this.$element[0].offsetWidth},e}])}(),function(){"use strict";angular.module("gantt").factory("GanttBodyBackground",[function(){var a=function(a){this.body=a};return a}])}(),function(){"use strict";angular.module("gantt").factory("GanttBodyColumns",[function(){var a=function(a){this.body=a};return a}])}(),function(){"use strict";angular.module("gantt").factory("GanttBodyForeground",[function(){var a=function(a){this.body=a};return a}])}(),function(){"use strict";angular.module("gantt").factory("GanttBodyRows",[function(){var a=function(a){this.body=a};return a}])}(),function(){"use strict";angular.module("gantt").factory("GanttHeader",["GanttHeaderColumns",function(a){var b=function(b){this.gantt=b,this.columns=new a(this),this.getHeight=function(){return this.$element[0].offsetHeight}};return b}])}(),function(){"use strict";angular.module("gantt").factory("GanttHeaderColumns",[function(){var a=function(a){this.$element=a};return a}])}(),function(){"use strict";angular.module("gantt").factory("GanttScroll",[function(){var a=function(b){this.gantt=b,this.gantt.api.registerEvent("scroll","scroll"),this.gantt.api.registerMethod("scroll","to",a.prototype.scrollTo,this),this.gantt.api.registerMethod("scroll","toDate",a.prototype.scrollToDate,this),this.gantt.api.registerMethod("scroll","left",a.prototype.scrollToLeft,this),this.gantt.api.registerMethod("scroll","right",a.prototype.scrollToRight,this),this.gantt.api.registerMethod("scroll","setWidth",a.prototype.setWidth,this)};return a.prototype.getScrollLeft=function(){return void 0===this.$element?void 0:this.$element[0].scrollLeft},a.prototype.getScrollWidth=function(){return void 0===this.$element?void 0:this.$element[0].scrollWidth},a.prototype.getWidth=function(){return void 0===this.$element?void 0:this.$element[0].offsetWidth},a.prototype.setWidth=function(a){this.$element[0]&&(this.$element[0].offsetWidth=a)},a.prototype.getBordersWidth=function(){return void 0===this.$element?void 0:this.$element[0].offsetWidth-this.$element[0].clientWidth},a.prototype.scrollTo=function(a){this.$element[0].scrollLeft=a,this.$element.triggerHandler("scroll")},a.prototype.scrollToLeft=function(a){this.$element[0].scrollLeft-=a,this.$element.triggerHandler("scroll")},a.prototype.scrollToRight=function(a){this.$element[0].scrollLeft+=a,this.$element.triggerHandler("scroll")},a.prototype.scrollToDate=function(a){var b=this.gantt.getPositionByDate(a);void 0!==b&&(this.$element[0].scrollLeft=b-this.$element[0].offsetWidth/2)},a}])}(),function(){"use strict";angular.module("gantt").factory("GanttSide",[function(){var a=function(b){this.gantt=b,this.gantt.api.registerMethod("side","setWidth",a.prototype.setWidth,this)};return a.prototype.getWidth=function(){return void 0===this.$element?void 0:0===this.$element[0].offsetHeight?0:this.$element[0].offsetWidth},a.prototype.setWidth=function(a){void 0!==this.$element&&(this.$element[0].offsetWidth=a)},a}])}(),function(){"use strict";angular.module("gantt").factory("GanttTimespan",[function(){var a=function(a,b){this.gantt=a,this.model=b};return a.prototype.updatePosAndSize=function(){this.modelLeft=this.gantt.getPositionByDate(this.model.from),this.modelWidth=this.gantt.getPositionByDate(this.model.to)-this.modelLeft;var a=this.gantt.columnsManager.getLastColumn(),b=a?a.left+a.width:0;this.modelLeft+this.modelWidth<0||this.modelLeft>b?(this.left=void 0,this.width=void 0):(this.left=Math.min(Math.max(this.modelLeft,0),this.gantt.width),this.modelLeft<0?(this.truncatedLeft=!0,this.modelWidth+this.modelLeft>this.gantt.width?(this.truncatedRight=!0,this.width=this.gantt.width):(this.truncatedRight=!1,this.width=this.modelWidth+this.modelLeft)):this.modelWidth+this.modelLeft>this.gantt.width?(this.truncatedRight=!0,this.truncatedLeft=!1,this.width=this.gantt.width-this.modelLeft):(this.truncatedLeft=!1,this.truncatedRight=!1,this.width=this.modelWidth),this.width<0&&(this.left=this.left+this.width,this.width=-this.width)),this.updateView()},a.prototype.updateView=function(){this.$element&&(void 0===this.left||void 0===this.width?this.$element.css("display","none"):(this.$element.css("display",""),this.$element.css("left",this.left+"px"),this.$element.css("width",this.width+"px")))},a.prototype.setFrom=function(a){this.from=this.gantt.getDateByPosition(a),this.updatePosAndSize()},a.prototype.setTo=function(a){this.to=this.gantt.getDateByPosition(a),this.updatePosAndSize()},a.prototype.moveTo=function(a){this.from=this.gantt.getDateByPosition(a),this.to=this.gantt.getDateByPosition(a+this.width),this.updatePosAndSize()},a.prototype.clone=function(){return new a(this.gantt,angular.copy(this.model))},a}])}(),function(){"use strict";angular.module("gantt").factory("GanttTimespansManager",["GanttTimespan",function(a){var b=function(a){var b=this;this.gantt=a,this.timespansMap={},this.timespans=[],this.gantt.$scope.$watchCollection("timespans",function(a){b.clearTimespans(),b.loadTimespans(a)}),this.gantt.api.registerMethod("timespans","load",this.loadTimespans,this),this.gantt.api.registerMethod("timespans","remove",this.removeTimespans,this),this.gantt.api.registerMethod("timespans","clear",this.clearTimespans,this),this.gantt.api.registerEvent("timespans","add"),this.gantt.api.registerEvent("timespans","remove"),this.gantt.api.registerEvent("timespans","change")};return b.prototype.loadTimespans=function(a){angular.isArray(a)||(a=void 0!==a?[a]:[]),this.gantt.$scope.timespans=a;for(var b=0,c=a.length;c>b;b++){var d=a[b];this.gantt.objectModel.cleanTimespan(d),this.loadTimespan(d)}},b.prototype.loadTimespan=function(b){var c,d=!1;return b.id in this.timespansMap?(c=this.timespansMap[b.id],c.model=b,d=!0,this.gantt.api.timespans.raise.change(c)):(c=new a(this.gantt,b),this.timespansMap[b.id]=c,this.timespans.push(c),this.gantt.api.timespans.raise.add(c)),c.updatePosAndSize(),d},b.prototype.removeTimespans=function(a){angular.isArray(a)||(a=[a]);for(var b=0,c=a.length;c>b;b++){var d=a[b];this.removeTimespan(d.id)}this.updateVisibleObjects()},b.prototype.removeTimespan=function(a){if(a in this.timespansMap){delete this.timespansMap[a];for(var b,c,d=this.timespans.length-1;d>=0;d--)if(c=this.timespans[d],c.model.id===a){b=c,this.timespans.splice(d,1);break}return this.gantt.api.timespans.raise.remove(b),b}return void 0},b.prototype.clearTimespans=function(){this.timespansMap={},this.timespans=[]},b.prototype.updateTimespansPosAndSize=function(){for(var a=0,b=this.timespans.length;b>a;a++)this.timespans[a].updatePosAndSize()},b}])}(),function(){"use strict";angular.module("gantt").service("ganttArrays",[function(){return{moveToIndex:function(a,b,c){if(c>=a.length)for(var d=c-a.length;d--+1;)a.push(void 0);return a.splice(c,0,a.splice(b,1)[0]),a},getRemovedIds:function(a,b,c){void 0===c&&(c="id");var d,e,f=[];if(void 0!==b)for(d=0,e=b.length;e>d;d++)f.push(b[d][c]);if(void 0!==a)for(d=0,e=a.length;e>d;d++){var g=a[d];if(void 0!==g[c]){var h=f.indexOf(g[c]);h>-1&&f.splice(h,1)}}return f},indexOfId:function(a,b,c){var d;if(void 0===c)c="id";else if(c instanceof Array){for(d=a.length-1;d>=0;d--){for(var e=a[d],f=0,g=c.length;g>f;f++)e=e[c[f]];if(e===b)return d}return-1}for(d=a.length-1;d>=0;d--)if(a[d][c]===b)return d;return-1},removeId:function(a,b,c){var d=this.indexOfId(a,b,c);return d>-1?a.splice(d,1)[0]:void 0},remove:function(a,b){var c=a.indexOf(b);return c>-1?(a.splice(c,1),!0):!1}}}])}(),function(){"use strict";angular.module("gantt").service("ganttBinarySearch",[function(){return{getIndicesOnly:function(a,b,c,d){for(var e=-1,f=a.length;f-e>1;){var g=Math.floor((e+f)/2);(d?c(a[g])d;d++){var f=a[d];if(void 0!==f&&b in f&&void 0!==f[b])return f[b]}return c},elementFromPoint:function(b,c){return a[0].elementFromPoint(b,c)},elementsFromPoint:function(a,b,c){for(var d,e,f,g,h=[],i=[],j=0;(d=this.elementFromPoint(a,b))&&-1===h.indexOf(d)&&null!==d&&(void 0===c||c>j);)h.push(d),i.push({value:d.style.getPropertyValue("pointer-events"),priority:d.style.getPropertyPriority("pointer-events")}),d.style.setProperty("pointer-events","none","important"),j++;for(e=0,f=i.length;f>e;e++)g=i[e],h[e].style.setProperty("pointer-events",g.value?g.value:"",g.priority);return h},findElementFromPoint:function(a,b,c){for(var d,e,f,g,h,i=[],j=[],k=0;(d=this.elementFromPoint(a,b))&&-1===i.indexOf(d)&&null!==d;)if(i.push(d),j.push({value:d.style.getPropertyValue("pointer-events"),priority:d.style.getPropertyPriority("pointer-events")}),d.style.setProperty("pointer-events","none","important"),k++,c(d)){e=d;break}for(f=0,g=j.length;g>f;f++)h=j[f],i[f].style.setProperty("pointer-events",h.value?h.value:"",h.priority);return e},random4:function(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)},randomUuid:function(){return this.random4()+this.random4()+"-"+this.random4()+"-"+this.random4()+"-"+this.random4()+"-"+this.random4()+this.random4()+this.random4()},newId:function(){var a=(new Date).getTime();return function(){return a+=1}}()}}])}(),function(){"use strict";angular.module("gantt").filter("ganttColumnLimit",["ganttBinarySearch",function(a){var b=function(a){return a.left};return function(c,d){var e=d.scroll.getScrollLeft(),f=d.scroll.getWidth();if(f>0){var g=a.getIndicesOnly(c,e,b)[0],h=a.getIndicesOnly(c,e+f,b)[1];return c.slice(g,h)}return c.slice()}}])}(),function(){"use strict";angular.module("gantt").filter("ganttTaskLimit",[function(){return function(a,b){var c=b.columnsManager.getFirstColumn(),d=b.columnsManager.getLastColumn();if(void 0!==c&&void 0!==d){for(var e=[],f=b.scroll.getScrollLeft(),g=b.scroll.getWidth(),h=0,i=a.length;i>h;h++){var j=a[h];j.active?e.push(j):j.model.to>c.date&&j.model.from=f&&j.left<=f+g||j.left+j.width>=f&&j.left+j.width<=f+g||j.leftf+g)&&e.push(j)}return e}return a.splice()}}])}(),function(){"use strict";angular.module("gantt").directive("ganttResizer",["$document","ganttMouseOffset",function(a,b){return{restrict:"A",require:"^gantt",scope:{targetElement:"=ganttResizer",enabled:"=?ganttResizerEnabled"},link:function(c,d,e,f){function g(b){b.preventDefault(),void 0!==m&&l[m].raise.resizeBegin(k()),a.on("mousemove",h),a.on("mouseup",i)}function h(a){var d=b.getOffsetForElement(c.targetElement[0],a),e=d.x;void 0!==e&&j(e)}function i(){void 0!==m&&l[m].raise.resizeEnd(k()),a.unbind("mousemove",h),a.unbind("mouseup",i)}function j(a){var b=k();b!==a&&(c.targetElement[0].style.width=a+"px",e.resizerWidth&&(c.$eval(e.resizerWidth+" = $$xValue",{$$xValue:a}),f.gantt.$scope.$digest()),void 0!==m&&l[m].raise.resize(a))}function k(){return c.targetElement[0].offsetWidth}var l=f.gantt.api,m=e.ganttResizerEventTopic;void 0===c.enabled&&(c.enabled=!0),c.$watch("enabled",function(a){void 0===a&&(a=!0),d.toggleClass("gantt-resizer-enabled",a),a?d.on("mousedown",g):d.off("mousedown",g)}),m&&(l.registerEvent(m,"resize"),l.registerEvent(m,"resizeBegin"),l.registerEvent(m,"resizeEnd"),l.registerMethod(m,"setWidth",j,this),l.registerMethod(m,"getWidth",k,this))}}}])}(),function(){"use strict";angular.module("gantt").directive("ganttHorizontalScrollReceiver",function(){return{restrict:"A",require:"^ganttScrollManager",link:function(a,b,c,d){d.registerHorizontalReceiver(b)}}})}(),function(){"use strict";angular.module("gantt").directive("ganttScrollManager",function(){return{restrict:"A",scope:{},controller:["$scope",function(a){a.horizontal=[],a.vertical=[],this.registerVerticalReceiver=function(b){b.css("position","relative"),a.vertical.push(b[0])},this.registerHorizontalReceiver=function(b){b.css("position","relative"),a.horizontal.push(b[0])},this.getHorizontalRecievers=function(){return a.horizontal},this.getVerticalRecievers=function(){return a.vertical}}]}})}(),function(){"use strict";angular.module("gantt").directive("ganttScrollSender",[function(){return{restrict:"A",require:["^gantt","^ganttScrollManager"],link:function(a,b,c,d){var e=b[0],f=function(){var a,b,c=d[1].getVerticalRecievers();for(a=0,b=c.length;b>a;a++){var f=c[a];f.parentNode.scrollTop!==e.scrollTop&&(f.parentNode.scrollTop=e.scrollTop)}var g=d[1].getHorizontalRecievers();for(a=0,b=g.length;b>a;a++){var h=g[a];h.parentNode.scrollLeft!==e.scrollLeft&&(h.parentNode.scrollLeft=e.scrollLeft)}};b.bind("scroll",f),a.oldBodyWidth=void 0,a.$watch(function(){var b=d[0].gantt.body.getWidth();if(a.oldBodyWidth!==b){a.oldBodyWidth=b;for(var c=d[1].getHorizontalRecievers(),e=0,f=c.length;f>e;e++){var g=c[e];g.style.width=b+"px"}}})}}}])}(),function(){"use strict";angular.module("gantt").directive("ganttScrollable",["GanttDirectiveBuilder","ganttDebounce","moment",function(a,b,c){var d=new a("ganttScrollable");return d.controller=function(a,d){a.gantt.scroll.$element=d;var e,f,g=500,h=function(b,d,e){if(!("both"!==a.autoExpand&&a.autoExpand!==!0&&a.autoExpand!==e||Date.now()-fe&&f.offsetWidth+f.scrollLeft>=f.scrollWidth-1&&(b="right",c=a.gantt.columnsManager.to),e=f.scrollLeft,a.gantt.columnsManager.updateVisibleColumns(),a.gantt.rowsManager.updateVisibleTasks(),void 0!==c?(h(f,c,b),a.gantt.api.scroll.raise.scroll(f.scrollLeft,c,b)):a.gantt.api.scroll.raise.scroll(f.scrollLeft)},5)),a.getScrollableCss=function(){var b={};return a.maxHeight>0&&(b["max-height"]=a.maxHeight-a.gantt.header.getHeight()+"px",b["overflow-y"]="auto",b["border-right"]="none"),b}},d.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttVerticalScrollReceiver",function(){return{restrict:"A",require:"^ganttScrollManager",link:function(a,b,c,d){d.registerVerticalReceiver(b)}}})}(),function(){"use strict";angular.module("gantt").directive("ganttElementLeftListener",[function(){return{restrict:"A",controller:["$scope","$element","$attrs",function(a,b,c){var d=c.ganttElementLeftListener;""===d&&(d="ganttElementLeft");for(var e=a;0===d.indexOf("$parent.");)d=d.substring("$parent.".length),e=e.$parent;e.$watch(function(){e[d]=b[0].left})}]}}])}(),function(){"use strict";angular.module("gantt").directive("ganttElementWidthListener",[function(){return{restrict:"A",controller:["$scope","$element","$attrs",function(a,b,c){var d=c.ganttElementWidthListener;""===d&&(d="ganttElementWidth");for(var e=a;0===d.indexOf("$parent.");)d=d.substring("$parent.".length),e=e.$parent;e.$watch(function(){b[0].offsetWidth>0&&(e[d]=b[0].offsetWidth)})}]}}])}(),function(){"use strict";angular.module("gantt").directive("ganttBody",["GanttDirectiveBuilder",function(a){var b=new a("ganttBody");return b.controller=function(a,b){a.gantt.body.$element=b,a.gantt.body.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttBodyBackground",["GanttDirectiveBuilder",function(a){var b=new a("ganttBodyBackground");return b.controller=function(a,b){a.gantt.body.background.$element=b,a.gantt.body.background.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttBodyColumns",["GanttDirectiveBuilder",function(a){var b=new a("ganttBodyColumns");return b.controller=function(a,b){a.gantt.body.columns.$element=b,a.gantt.body.background.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttBodyForeground",["GanttDirectiveBuilder",function(a){var b=new a("ganttBodyForeground");return b.controller=function(a,b){a.gantt.body.foreground.$element=b,a.gantt.body.foreground.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttBodyRows",["GanttDirectiveBuilder",function(a){var b=new a("ganttBodyRows");return b.controller=function(a,b){a.gantt.body.rows.$element=b,a.gantt.body.rows.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttColumn",["GanttDirectiveBuilder",function(a){var b=new a("ganttColumn");return b.controller=function(a,b){a.column.$element=b,a.column.$scope=a,a.column.updateView()},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttColumnHeader",["GanttDirectiveBuilder",function(a){var b=new a("ganttColumnHeader");return b.controller=function(a,b){a.column.$element=b,a.column.$scope=a,a.column.updateView()},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttHeader",["GanttDirectiveBuilder",function(a){var b=new a("ganttHeader");return b.controller=function(a,b){a.gantt.header.$element=b,a.gantt.header.$scope=a,a.getHeaderCss=function(){var b={};return a.gantt.width-a.gantt.side.getWidth()>a.gantt.width&&(b.width=a.gantt.width+"px"),b}},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttHeaderColumns",["GanttDirectiveBuilder",function(a){var b=new a("ganttHeaderColumns");return b.controller=function(a,b){a.gantt.header.columns.$element=b,a.gantt.header.columns.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttRow",["GanttDirectiveBuilder",function(a){var b=new a("ganttRow");return b.controller=function(a,b){a.row.$element=b,a.row.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttRowBackground",["GanttDirectiveBuilder",function(a){var b=new a("ganttRowBackground");return b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttScrollableHeader",["GanttDirectiveBuilder","ganttLayout",function(a,b){var c=new a("ganttScrollableHeader");return c.controller=function(a){var c=b.getScrollBarWidth();a.getScrollableHeaderCss=function(){var b={};return a.maxHeight>0&&(b.width=a.gantt.getWidth()-a.gantt.side.getWidth()-c+"px"),b}},c.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttSide",["GanttDirectiveBuilder",function(a){var b=new a("ganttSide");return b.controller=function(a,b){a.gantt.side.$element=b,a.gantt.side.$scope=a},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttSideContent",["GanttDirectiveBuilder",function(a){var b=new a("ganttSideContent");return b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttTask",["GanttDirectiveBuilder","moment",function(a,b){var c=new a("ganttTask");return c.controller=function(a,c){a.task.$element=c,a.task.$scope=a,a.simplifyMoment=function(a){return b.isMoment(a)?a.unix():a},a.$watchGroup(["simplifyMoment(task.model.from)","simplifyMoment(task.model.to)"],function(){a.task.updatePosAndSize()})},c.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttTaskContent",["GanttDirectiveBuilder",function(a){var b=new a("ganttTaskContent");return b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttTimeFrame",["GanttDirectiveBuilder",function(a){var b=new a("ganttTimeFrame");return b.controller=function(a,b){a.timeFrame.$element=b,a.timeFrame.$scope=a,a.timeFrame.updateView()},b.build()}])}(),function(){"use strict";angular.module("gantt").directive("ganttTimespan",["GanttDirectiveBuilder",function(a){var b=new a("ganttTimespan");return b.controller=function(a,b){a.timespan.$element=b,a.timespan.$scope=a,a.timespan.updateView()},b.build()}])}(),function(){"use strict";angular.module("gantt").factory("ganttDebounce",["$timeout",function(a){function b(b,c,d){var e=0;return function(){var f=this,g=arguments;e++;var h=function(a){return function(){return a===e?b.apply(f,g):void 0}}(e);return a(h,c,void 0===d?!0:d)}}return b}])}(),function(){"use strict";angular.module("gantt").service("GanttDirectiveBuilder",[function(){var a=function(a,b,c,d){var e=this;this.directiveName=a,this.templateUrl=void 0===b?"template/"+a+".tmpl.html":b,this.require=void 0===c?"^gantt":c,this.restrict=void 0===d?"E":d,this.scope=!1,this.transclude=!0,this.replace=!0,this.build=function(){var a=e.directiveName,b=e.templateUrl,c=e.controller;return{restrict:e.restrict,require:e.require,transclude:e.transclude,replace:e.replace,scope:e.scope,templateUrl:function(a,c){return void 0===c.templateUrl?b:c.templateUrl},compile:function(){return{pre:function(b,c,d,e){b.gantt.api.directives.raise.preLink(a,b,c,d,e)},post:function(b,c,d,e){b.gantt.api.directives.raise.postLink(a,b,c,d,e)}}},controller:["$scope","$element","$attrs",function(b,d,e){var f=this;void 0!==c&&c(b,d,e,f),b.gantt.api.directives.raise.new(a,b,d,e,f),b.$on("$destroy",function(){b.gantt.api.directives.raise.destroy(a,b,d,e,f)})}]}}};return a}])}(),function(){"use strict";angular.module("gantt").service("ganttEnableNgAnimate",["$injector",function(a){var b;try{b=a.get("$animate")}catch(c){}return void 0!==b?function(a,c){b.enabled(!1,c)}:function(){}}])}(),function(){"use strict";angular.module("gantt").service("ganttLayout",["$document",function(a){return{getScrollBarWidth:function(){var b=a[0].createElement("p");b.style.width="100%",b.style.height="200px";var c=a[0].createElement("div");c.style.position="absolute",c.style.top="0px",c.style.left="0px",c.style.visibility="hidden",c.style.width="200px",c.style.height="150px",c.style.overflow="hidden",c.appendChild(b),a[0].body.appendChild(c);var d=b.offsetWidth;c.style.overflow="scroll";var e=b.offsetWidth;return d===e&&(e=c.clientWidth),a[0].body.removeChild(c),d-e},setColumnsWidth:function(a,b,c){if(a&&b&&c){var d=Math.abs(a/b);angular.forEach(c,function(a){a.left=d*a.originalSize.left,a.width=d*a.originalSize.width,angular.forEach(a.timeFrames,function(a){a.left=d*a.originalSize.left,a.width=d*a.originalSize.width})})}}}}])}(),function(){"use strict";angular.module("gantt").service("ganttMouseButton",[function(){return{getButton:function(a){return a=a||window.event,a.which?a.which:void 0===a.button?1:a.button<2?1:4===a.button?2:3}}}])}(),function(){"use strict";angular.module("gantt").service("ganttMouseOffset",[function(){return{getTouch:function(a){return void 0!==a.touches?a.touches[0]:a},getOffset:function(a){return a.offsetX&&a.offsetY?{x:a.offsetX,y:a.offsetY}:a.layerX&&a.layerY?{x:a.layerX,y:a.layerY}:this.getOffsetForElement(a.target,a)},getOffsetForElement:function(a,b){var c=a.getBoundingClientRect();return{x:b.clientX-c.left,y:b.clientY-c.top}}}}])}(),function(){"use strict";angular.module("gantt").factory("ganttSmartEvent",[function(){function a(a,b,c,d){return a.$on("$destroy",function(){b.unbind(c,d)}),{bindOnce:function(){b.one(c,d)},bind:function(){b.bind(c,d)},unbind:function(){b.unbind(c,d) +}}}return a}])}(),angular.module("gantt.templates",[]).run(["$templateCache",function(a){a.put("template/gantt.tmpl.html",'
\n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n \n
\n
\n \n \n \n \n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n\n \n \n\n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n\n \n\n \n \n\n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n
\n')}]); //# sourceMappingURL=angular-gantt.min.js.map \ No newline at end of file diff --git a/dist/angular-gantt.min.js.map b/dist/angular-gantt.min.js.map index ab20dd575..c5df59e5c 100644 --- a/dist/angular-gantt.min.js.map +++ b/dist/angular-gantt.min.js.map @@ -1 +1 @@ -{"version":3,"file":"angular-gantt.min.js","sources":["../src/core/gantt.directive.js","../src/core/logic/api/api.factory.js","../src/core/logic/api/options.factory.js","../src/core/logic/calendar/calendar.factory.js","../src/core/logic/calendar/currentDateManager.factory.js","../src/core/logic/column/column.factory.js","../src/core/logic/column/columnGenerator.factory.js","../src/core/logic/column/columnHeader.factory.js","../src/core/logic/column/columnsManager.factory.js","../src/core/logic/column/headerGenerator.factory.js","../src/core/logic/gantt.factory.js","../src/core/logic/model/objectModel.factory.js","../src/core/logic/row/row.factory.js","../src/core/logic/row/rowHeader.factory.js","../src/core/logic/row/rowsManager.factory.js","../src/core/logic/task/task.factory.js","../src/core/logic/template/body.factory.js","../src/core/logic/template/bodyBackground.factory.js","../src/core/logic/template/bodyColumns.factory.js","../src/core/logic/template/bodyForeground.factory.js","../src/core/logic/template/bodyRows.factory.js","../src/core/logic/template/header.factory.js","../src/core/logic/template/headerColumns.factory.js","../src/core/logic/template/scroll.factory.js","../src/core/logic/template/side.factory.js","../src/core/logic/timespan/timespan.factory.js","../src/core/logic/timespan/timespansManager.factory.js","../src/core/logic/util/arrays.service.js","../src/core/logic/util/binarySearch.service.js","../src/core/logic/util/utils.service.js","../src/core/ui/limit/columnLimit.filter.js","../src/core/ui/limit/taskLimit.filter.js","../src/core/ui/resizer/resizer.directive.js","../src/core/ui/scroll/horizontalScrollReceiver.directive.js","../src/core/ui/scroll/scrollManager.directive.js","../src/core/ui/scroll/scrollSender.directive.js","../src/core/ui/scroll/scrollable.directive.js","../src/core/ui/scroll/verticalScrollReceiver.directive.js","../src/core/ui/size/elementLeftListener.directive.js","../src/core/ui/size/elementWidthListener.directive.js","../src/core/ui/template/body.directive.js","../src/core/ui/template/bodyBackground.directive.js","../src/core/ui/template/bodyColumns.directive.js","../src/core/ui/template/bodyForeground.directive.js","../src/core/ui/template/bodyRows.directive.js","../src/core/ui/template/column.directive.js","../src/core/ui/template/columnHeader.directive.js","../src/core/ui/template/header.directive.js","../src/core/ui/template/headerColumns.directive.js","../src/core/ui/template/row.directive.js","../src/core/ui/template/rowBackground.directive.js","../src/core/ui/template/scrollableHeader.directive.js","../src/core/ui/template/side.directive.js","../src/core/ui/template/sideContent.directive.js","../src/core/ui/template/task.directive.js","../src/core/ui/template/taskContent.directive.js","../src/core/ui/template/timeFrame.directive.js","../src/core/ui/template/timespan.directive.js","../src/core/ui/util/debounce.factory.js","../src/core/ui/util/directiveBuilder.service.js","../src/core/ui/util/enableNgAnimate.service.js","../src/core/ui/util/layout.service.js","../src/core/ui/util/mouseButton.service.js","../src/core/ui/util/mouseOffset.service.js","../src/core/ui/util/smartEvent.factory.js","../.tmp/generated/core/html2js.js"],"names":["angular","module","directive","Gantt","Options","Calendar","moment","mouseOffset","debounce","enableNgAnimate","$timeout","$templateCache","restrict","transclude","templateUrl","tElement","tAttrs","undefined","template","put","scope","sortMode","filterTask","filterTaskComparator","filterRow","filterRowComparator","viewScale","columnWidth","allowSideResizing","fromDate","toDate","currentDateValue","currentDate","autoExpand","taskOutOfRange","maxHeight","headers","headersFormats","timeFrames","dateFrames","timeFramesWorkingMode","timeFramesNonWorkingMode","timespans","columnMagnet","shiftColumnMagnet","data","api","options","controller","$scope","$element","option","initialize","gantt","this","link","element","directives","raise","new","$on","destroy","core","ready","rendered","columnsManager","generateColumns","factory","$q","$rootScope","utils","registerEventWithAngular","eventId","handler","args","Array","prototype","slice","call","arguments","splice","apply","GanttApi","listeners","apiId","newId","suppressEvents","listenerFuncs","callBackFn","self","isArray","foundListeners","forEach","l","filter","lstnr","dereg","registerEvent","featureName","eventName","feature","on","$broadcast","concat","listener","push","registerEventsFromObject","eventObjectMap","features","featProp","featPropName","name","events","prop","propName","event","registerMethod","methodName","thisArg","createBoundedWrapper","registerMethodsFromObject","methodMap","methods","fn","method","noop","$filter","TimeFrame","start","end","working","default","color","classes","updateView","left","css","width","i","length","toggleClass","getDuration","diff","clone","TimeFrameMapping","func","getTimeFrames","date","ret","DateFrame","evaluator","startOf","endOf","targets","dateMatch","timeFrameMappings","clear","registerTimeFrames","timeFrame","removeTimeFrames","clearTimeFrames","registerTimeFrameMappings","mappings","timeFrameMapping","removeTimeFrameMappings","clearTimeFrameMappings","registerDateFrames","dateFrame","removeDateFrames","clearDateFrames","filterDateFrames","inputDateFrames","timeFrameMappingName","dateYear","year","dateMonth","month","dateDate","validatedTimeFrames","add","solve","startDate","endDate","minDate","maxDate","defaultWorking","solvedTimeFrames","orderedTimeFrames","tmpSolvedTimeFrames","dispatched","treated","solvedTimeFrame","newSolvedTimeFrame","GanttCurrentDateManager","position","currentDateColumn","simplifyMoment","d","isMoment","unix","$watchGroup","setCurrentDate","removeClass","column","getColumnByDate","addClass","getPositionByDate","Column","calendar","duration","visibleTimeFrames","daysTimeFrames","cropped","originalSize","updateTimeFrames","getDateKey","buildPushTimeFrames","cDate","cDateStartOfDay","cDateNextDay","nextCDate","min","cTimeFrames","cDateKey","positionDuration","timeFrameDuration","timeFramePosition","hidden","timeFramesWidth","croppedRatio","croppedWidth","originalCroppedWidth","allCropped","containsDate","equals","other","getMagnetDate","magnetValue","magnetUnit","initialDate","value","roundedMagnet","asMilliseconds","Math","round","set","get","previousCropped","magnetDiff","abs","getDateByPositionUsingTimeFrames","getDateByPosition","getDayTimeFrame","dtf","croppedDate","ColumnGenerator","unit","generate","from","to","maximumWidth","leftOffset","reverse","excludeTo","isToDateToExclude","generatedCols","shift","ColumnHeader","labelFormat","label","isFunction","format","HeaderGenerator","layout","bs","ColumnsManager","columns","visibleColumns","previousColumns","nextColumns","visibleHeaders","scrollAnchor","oldValues","newValues","$watchCollection","updateColumnsMeta","load","rowsManager","getDefaultFrom","getDefaultTo","sortRows","remove","clearColumns","setScrollAnchor","scroll","el","center","scrollLeft","offsetWidth","scrollToScrollAnchor","$$postDigest","getExpandedFrom","getExpandedTo","columnGenerator","headerGenerator","lastColumn","getLastColumn","originalWidth","autoFitWidthEnabled","scrollWidth","getElementWidth","side","getWidth","newWidth","getBordersWidth","setColumnsWidth","header","updateTasksPosAndSize","timespansManager","updateTimespansPosAndSize","updateVisibleColumns","updateVisibleObjects","currentDateManager","extended","getFirstColumn","expandExtendedColumnsForDate","extendedColumns","c","getColumnByPosition","x","expandExtendedColumnsForPosition","firstColumn","firstExtendedColumn","lastExtendedColumn","getActiveHeadersCount","includeViews","headerRow","defaultHeadersFormats","quarter","week","day","hour","minute","defaultDayHeadersFormats","defaultYearHeadersFormats","getHeaderFormat","indexOf","generateHeader","prevColDateVal","generatedHeaders","col","colDateVal","units","Scroll","Body","RowHeader","Header","Side","ObjectModel","RowsManager","TimespansManager","CurrentDateManager","arrays","$document","loadData","removeData","clearData","getData","oldTimeFrames","oldDateFrames","$watch","splittedColumnMagnet","trim","split","columnMagnetValue","parseFloat","columnMagnetUnit","shiftColumnMagnetValue","shiftColumnMagnetUnit","e","shiftKey","body","objectModel","newData","oldData","toRemoveIds","getRemovedIds","toRemoveId","removeRow","magnet","rowData","addRow","removeAll","cleanTask","model","id","randomUuid","tasks","clean","cleanRow","rows","cleanTimespan","Task","Row","tasksMap","filteredTasks","visibleTasks","addTaskImpl","task","viewOnly","addTask","taskModel","isUpdate","sortTasks","setFromToByTask","change","moveTaskToRow","oldRow","row","removeTask","updatePosAndSize","rowChange","updateVisibleTasks","actual","expected","j","k","taskId","silent","removedTask","setFromTo","taskIndex","removeAllTasks","sort","t1","t2","copy","rowsMap","sortedRows","filteredRows","visibleRows","rowsTaskWatchers","updateVisibleRows","applySort","rowModel","watcher","newTasks","oldTasks","toRemove","toAdd","rowId","removedRow","indexOfId","deregisterFunction","removeId","pop","expression","charAt","substr","angularOrderBy","moveRow","targetRow","targetRowIndex","rowIndex","moveToIndex","move","oldFilteredRows","raiseEvent","oldFilteredTasks","filterEvent","minRowFrom","maxRowTo","defaultFrom","defaultTo","truncatedLeft","truncatedRight","isMilestone","modelLeft","modelWidth","max","priority","setFrom","magnetEnabled","setTo","moveTo","newTaskRight","newTaskLeft","BodyColumns","BodyRows","BodyBackground","BodyForeground","background","foreground","GanttBodyBackground","GanttBodyForeground","HeaderColumns","getHeight","offsetHeight","scrollTo","scrollToDate","scrollToLeft","scrollToRight","setWidth","getScrollLeft","getScrollWidth","clientWidth","triggerHandler","offset","Timespan","GanttTimespansManager","timespansMap","newValue","clearTimespans","loadTimespans","removeTimespans","timespanModel","loadTimespan","timespan","timespanData","removeTimespan","timespanId","removedTimespan","service","array","oldIndex","newIndex","newArray","oldArray","idProperty","removedIds","newObject","newObjectIndex","idProperties","arrayValue","index","getIndicesOnly","input","comparer","strict","lo","hi","mid","floor","res","object","firstProperty","objects","propertyName","defaultValue","elementFromPoint","y","elementsFromPoint","depth","current","elements","previousPointerEvents","cDepth","style","getPropertyValue","getPropertyPriority","setProperty","findElementFromPoint","checkFunction","found","random4","random","toString","substring","seedId","Date","getTime","leftComparator","scrollContainerWidth","active","require","targetElement","enabled","$attrs","ganttCtrl","mousedown","preventDefault","eventTopic","resizeBegin","mousemove","mouseup","getOffsetForElement","resizeEnd","unbind","oldWidth","resizerWidth","$eval","$$xValue","$digest","resize","ganttResizerEventTopic","off","attrs","ganttScrollManagerCtrl","registerHorizontalReceiver","horizontal","vertical","registerVerticalReceiver","getHorizontalRecievers","getVerticalRecievers","controllers","updateListeners","vElement","parentNode","scrollTop","hElement","bind","oldBodyWidth","Builder","builder","lastScrollLeft","lastAutoExpand","autoExpandCoolDownPeriod","autoExpandColumns","direction","now","expandHour","expandDay","getScrollableCss","build","scopeVariable","ganttElementLeftListener","effectiveScope","$parent","ganttElementWidthListener","getHeaderCss","timeout","invokeApply","nthCall","argz","later","version","DirectiveBuilder","directiveName","replace","controllerFunction","compile","pre","iElement","iAttrs","preLink","post","postLink","$injector","ngAnimate","widthFactor","getButton","window","which","button","getTouch","evt","touches","getOffset","offsetX","offsetY","layerX","layerY","target","bb","getBoundingClientRect","clientX","clientY","top","smartEvent","bindOnce","one","run"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"angular-gantt.min.js","sources":["../src/core/gantt.directive.js","../src/core/logic/api/api.factory.js","../src/core/logic/api/options.factory.js","../src/core/logic/calendar/calendar.factory.js","../src/core/logic/calendar/currentDateManager.factory.js","../src/core/logic/column/column.factory.js","../src/core/logic/column/columnGenerator.factory.js","../src/core/logic/column/columnHeader.factory.js","../src/core/logic/column/columnsManager.factory.js","../src/core/logic/column/headerGenerator.factory.js","../src/core/logic/gantt.factory.js","../src/core/logic/model/objectModel.factory.js","../src/core/logic/row/row.factory.js","../src/core/logic/row/rowHeader.factory.js","../src/core/logic/row/rowsManager.factory.js","../src/core/logic/task/task.factory.js","../src/core/logic/template/body.factory.js","../src/core/logic/template/bodyBackground.factory.js","../src/core/logic/template/bodyColumns.factory.js","../src/core/logic/template/bodyForeground.factory.js","../src/core/logic/template/bodyRows.factory.js","../src/core/logic/template/header.factory.js","../src/core/logic/template/headerColumns.factory.js","../src/core/logic/template/scroll.factory.js","../src/core/logic/template/side.factory.js","../src/core/logic/timespan/timespan.factory.js","../src/core/logic/timespan/timespansManager.factory.js","../src/core/logic/util/arrays.service.js","../src/core/logic/util/binarySearch.service.js","../src/core/logic/util/utils.service.js","../src/core/ui/limit/columnLimit.filter.js","../src/core/ui/limit/taskLimit.filter.js","../src/core/ui/resizer/resizer.directive.js","../src/core/ui/scroll/horizontalScrollReceiver.directive.js","../src/core/ui/scroll/scrollManager.directive.js","../src/core/ui/scroll/scrollSender.directive.js","../src/core/ui/scroll/scrollable.directive.js","../src/core/ui/scroll/verticalScrollReceiver.directive.js","../src/core/ui/size/elementLeftListener.directive.js","../src/core/ui/size/elementWidthListener.directive.js","../src/core/ui/template/body.directive.js","../src/core/ui/template/bodyBackground.directive.js","../src/core/ui/template/bodyColumns.directive.js","../src/core/ui/template/bodyForeground.directive.js","../src/core/ui/template/bodyRows.directive.js","../src/core/ui/template/column.directive.js","../src/core/ui/template/columnHeader.directive.js","../src/core/ui/template/header.directive.js","../src/core/ui/template/headerColumns.directive.js","../src/core/ui/template/row.directive.js","../src/core/ui/template/rowBackground.directive.js","../src/core/ui/template/scrollableHeader.directive.js","../src/core/ui/template/side.directive.js","../src/core/ui/template/sideContent.directive.js","../src/core/ui/template/task.directive.js","../src/core/ui/template/taskContent.directive.js","../src/core/ui/template/timeFrame.directive.js","../src/core/ui/template/timespan.directive.js","../src/core/ui/util/debounce.factory.js","../src/core/ui/util/directiveBuilder.service.js","../src/core/ui/util/enableNgAnimate.service.js","../src/core/ui/util/layout.service.js","../src/core/ui/util/mouseButton.service.js","../src/core/ui/util/mouseOffset.service.js","../src/core/ui/util/smartEvent.factory.js","../.tmp/generated/core/html2js.js"],"names":["angular","module","directive","Gantt","Options","Calendar","moment","mouseOffset","debounce","enableNgAnimate","$timeout","$templateCache","restrict","transclude","templateUrl","tElement","tAttrs","undefined","template","put","scope","sortMode","filterTask","filterTaskComparator","filterRow","filterRowComparator","viewScale","columnWidth","allowSideResizing","fromDate","toDate","currentDateValue","currentDate","autoExpand","taskOutOfRange","maxHeight","headers","headersFormats","timeFrames","dateFrames","timeFramesWorkingMode","timeFramesNonWorkingMode","timespans","columnMagnet","shiftColumnMagnet","data","api","options","controller","$scope","$element","option","initialize","gantt","this","link","element","directives","raise","new","$on","destroy","core","ready","rendered","columnsManager","generateColumns","factory","$q","$rootScope","utils","registerEventWithAngular","eventId","handler","args","Array","prototype","slice","call","arguments","splice","apply","GanttApi","listeners","apiId","newId","suppressEvents","listenerFuncs","callBackFn","self","isArray","foundListeners","forEach","l","filter","lstnr","dereg","registerEvent","featureName","eventName","feature","on","$broadcast","concat","listener","push","registerEventsFromObject","eventObjectMap","features","featProp","featPropName","name","events","prop","propName","event","registerMethod","methodName","thisArg","createBoundedWrapper","registerMethodsFromObject","methodMap","methods","fn","method","noop","$filter","TimeFrame","start","end","working","default","color","classes","updateView","left","css","width","i","length","toggleClass","getDuration","diff","clone","TimeFrameMapping","func","getTimeFrames","date","ret","DateFrame","evaluator","startOf","endOf","targets","dateMatch","timeFrameMappings","clear","registerTimeFrames","timeFrame","removeTimeFrames","clearTimeFrames","registerTimeFrameMappings","mappings","timeFrameMapping","removeTimeFrameMappings","clearTimeFrameMappings","registerDateFrames","dateFrame","removeDateFrames","clearDateFrames","filterDateFrames","inputDateFrames","timeFrameMappingName","dateYear","year","dateMonth","month","dateDate","validatedTimeFrames","add","solve","startDate","endDate","minDate","maxDate","defaultWorking","solvedTimeFrames","orderedTimeFrames","tmpSolvedTimeFrames","dispatched","treated","solvedTimeFrame","newSolvedTimeFrame","GanttCurrentDateManager","position","currentDateColumn","simplifyMoment","d","isMoment","unix","$watchGroup","setCurrentDate","removeClass","column","getColumnByDate","addClass","getPositionByDate","Column","calendar","duration","visibleTimeFrames","daysTimeFrames","cropped","originalSize","updateTimeFrames","getDateKey","buildPushTimeFrames","cDate","cDateStartOfDay","cDateNextDay","nextCDate","min","cTimeFrames","cDateKey","positionDuration","timeFrameDuration","timeFramePosition","hidden","timeFramesWidth","croppedRatio","croppedWidth","originalCroppedWidth","allCropped","containsDate","equals","other","getMagnetDate","magnetValue","magnetUnit","initialDate","value","roundedMagnet","asMilliseconds","Math","round","set","get","previousCropped","magnetDiff","abs","getDateByPositionUsingTimeFrames","getDateByPosition","getDayTimeFrame","dtf","croppedDate","ColumnGenerator","unit","generate","from","to","maximumWidth","leftOffset","reverse","excludeTo","isToDateToExclude","generatedCols","shift","ColumnHeader","labelFormat","label","isFunction","format","HeaderGenerator","layout","bs","ColumnsManager","columns","visibleColumns","previousColumns","nextColumns","visibleHeaders","scrollAnchor","oldValues","newValues","$watchCollection","updateColumnsMeta","load","rowsManager","getDefaultFrom","getDefaultTo","sortRows","remove","clearColumns","setScrollAnchor","scroll","el","center","scrollLeft","offsetWidth","scrollToScrollAnchor","$$postDigest","getExpandedFrom","getExpandedTo","columnGenerator","headerGenerator","lastColumn","getLastColumn","originalWidth","columnsWidthChanged","updateColumnsWidths","updateTasksPosAndSize","timespansManager","updateTimespansPosAndSize","updateVisibleColumns","updateVisibleObjects","currentDateManager","extended","getFirstColumn","expandExtendedColumnsForDate","extendedColumns","c","getColumnByPosition","x","expandExtendedColumnsForPosition","updateColumnsWidthImpl","newWidth","columnsArray","setColumnsWidth","autoFitWidthEnabled","scrollWidth","getWidth","side","getBordersWidth","firstColumn","firstExtendedColumn","lastExtendedColumn","getActiveHeadersCount","includeViews","header","headerRow","defaultHeadersFormats","quarter","week","day","hour","minute","defaultDayHeadersFormats","defaultYearHeadersFormats","getHeaderFormat","indexOf","generateHeader","prevColDateVal","generatedHeaders","col","colDateVal","units","Scroll","Body","RowHeader","Header","Side","ObjectModel","RowsManager","TimespansManager","CurrentDateManager","arrays","$document","loadData","removeData","clearData","getData","oldTimeFrames","oldDateFrames","$watch","splittedColumnMagnet","trim","split","columnMagnetValue","parseFloat","columnMagnetUnit","shiftColumnMagnetValue","shiftColumnMagnetUnit","e","shiftKey","body","objectModel","newData","oldData","toRemoveIds","getRemovedIds","toRemoveId","removeRow","magnet","rowData","addRow","removeAll","cleanTask","model","id","randomUuid","tasks","clean","cleanRow","rows","cleanTimespan","Task","Row","tasksMap","filteredTasks","visibleTasks","addTaskImpl","task","viewOnly","addTask","taskModel","isUpdate","sortTasks","setFromToByTask","change","moveTaskToRow","oldRow","row","removeTask","updatePosAndSize","rowChange","updateVisibleTasks","actual","expected","j","k","taskId","silent","removedTask","setFromTo","taskIndex","removeAllTasks","sort","t1","t2","copy","rowsMap","sortedRows","filteredRows","visibleRows","rowsTaskWatchers","updateVisibleRows","applySort","rowModel","watcher","newTasks","oldTasks","toRemove","toAdd","rowId","removedRow","indexOfId","deregisterFunction","removeId","pop","expression","charAt","substr","angularOrderBy","moveRow","targetRow","targetRowIndex","rowIndex","moveToIndex","move","oldFilteredRows","raiseEvent","oldFilteredTasks","filterEvent","minRowFrom","maxRowTo","defaultFrom","defaultTo","truncatedLeft","truncatedRight","isMilestone","modelLeft","modelWidth","maxModelLeft","max","priority","setFrom","magnetEnabled","setTo","moveTo","newTaskRight","newTaskLeft","BodyColumns","BodyRows","BodyBackground","BodyForeground","background","foreground","GanttBodyBackground","GanttBodyForeground","HeaderColumns","getHeight","offsetHeight","scrollTo","scrollToDate","scrollToLeft","scrollToRight","setWidth","getScrollLeft","getScrollWidth","clientWidth","triggerHandler","offset","Timespan","GanttTimespansManager","timespansMap","newValue","clearTimespans","loadTimespans","removeTimespans","timespanModel","loadTimespan","timespan","timespanData","removeTimespan","timespanId","removedTimespan","service","array","oldIndex","newIndex","newArray","oldArray","idProperty","removedIds","newObject","newObjectIndex","idProperties","arrayValue","index","getIndicesOnly","input","comparer","strict","lo","hi","mid","floor","res","object","firstProperty","objects","propertyName","defaultValue","elementFromPoint","y","elementsFromPoint","depth","current","elements","previousPointerEvents","cDepth","style","getPropertyValue","getPropertyPriority","setProperty","findElementFromPoint","checkFunction","found","random4","random","toString","substring","seedId","Date","getTime","leftComparator","scrollContainerWidth","active","require","targetElement","enabled","$attrs","ganttCtrl","mousedown","preventDefault","eventTopic","resizeBegin","mousemove","mouseup","getOffsetForElement","resizeEnd","unbind","oldWidth","resizerWidth","$eval","$$xValue","$digest","resize","ganttResizerEventTopic","off","attrs","ganttScrollManagerCtrl","registerHorizontalReceiver","horizontal","vertical","registerVerticalReceiver","getHorizontalRecievers","getVerticalRecievers","controllers","updateListeners","vElement","parentNode","scrollTop","hElement","bind","oldBodyWidth","Builder","builder","lastScrollLeft","lastAutoExpand","autoExpandCoolDownPeriod","autoExpandColumns","direction","now","expandHour","expandDay","getScrollableCss","build","scopeVariable","ganttElementLeftListener","effectiveScope","$parent","ganttElementWidthListener","getHeaderCss","scrollBarWidth","getScrollBarWidth","getScrollableHeaderCss","timeout","invokeApply","nthCall","argz","later","version","DirectiveBuilder","directiveName","replace","controllerFunction","compile","pre","iElement","iAttrs","preLink","post","postLink","$injector","ngAnimate","inner","createElement","height","outer","top","visibility","overflow","appendChild","w1","w2","removeChild","widthFactor","getButton","window","which","button","getTouch","evt","touches","getOffset","offsetX","offsetY","layerX","layerY","target","bb","getBoundingClientRect","clientX","clientY","smartEvent","bindOnce","one","run"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 7b851f5db..c4155d863 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-gantt", - "version": "1.0.0-rc6", + "version": "1.0.0-rc7", "description": "Gantt chart component for AngularJS", "author": "Marco Schweighauser", "contributors": [