{"version":3,"sources":["kendo.gantt.js"],"names":["f","define","$","objectKey","object","key","parts","push","sort","join","hashKey","str","i","hash","length","charCodeAt","zeroSize","width","height","baseline","measureText","text","style","measureBox","TextMetrics","current","measure","LRUCache","DEFAULT_OPTIONS","defaultMeasureBox","window","kendo","util","Class","extend","init","size","this","_size","_length","_map","put","value","map","entry","_head","_tail","newer","older","get","baselineMarkerSize","document","createElement","cssText","options","_cache","box","styleKey","cacheKey","cachedResult","baselineMarker","_baselineMarker","cloneNode","textContent","appendChild","body","String","offsetWidth","offsetHeight","offsetTop","parentNode","removeChild","marker","deepExtend","jQuery","amd","a1","a2","a3","undefined","selector","uid","attr","trimOptions","name","prefix","remove","edit","add","navigate","dateCompareValidator","input","field","picker","dates","container","editable","model","filter","widgetInstance","ui","parent","data","start","end","parseDate","focusTable","table","direct","wrapper","parents","scrollPositions","scrollableParents","TABINDEX","each","index","scrollTop","setActive","e","focus","element","parentsUntil","computedStyle","getComputedStyles","overflow","defaultCommands","GanttTask","GanttDataSource","editors","Editor","PopupEditor","ResourceEditor","Gantt","supportsMedia","browser","support","mobileOS","Observable","Widget","DataSource","ObservableObject","ObservableArray","Query","isArray","inArray","isFunction","proxy","isPlainObject","outerWidth","_outerWidth","outerHeight","_outerHeight","keys","defaultIndicatorWidth","NS","PERCENTAGE_FORMAT","CLICK","WIDTH","STRING","DIRECTIONS","down","origin","position","up","ARIA_DESCENDANT","ARIA_LABEL","ACTIVE_CELL","ACTIVE_OPTION","DOT","TASK_DELETE_CONFIRM","DEPENDENCY_DELETE_CONFIRM","TOGGLE_BUTTON_TEMPLATE","template","BUTTON_TEMPLATE","COMMAND_BUTTON_TEMPLATE","VIEWBUTTONTEMPLATE","HEADER_VIEWS_TEMPLATE","TASK_DROPDOWN_TEMPLATE","DATERANGEEDITOR","title","validationRules","fields","validation","message","appendTo","hide","RESOURCESEDITOR","styles","button","messages","assignButton","click","ganttStyles","rowHeight","listWrapper","list","timelineWrapper","timeline","splitBarWrapper","splitBar","splitBarHover","popupWrapper","popupList","resizeHandle","icon","item","line","buttonDelete","buttonCancel","buttonSave","buttonToggle","primary","hovered","selected","focused","gridHeader","gridHeaderWrap","gridContent","popup","form","editForm","formContainer","resourcesFormContainer","buttonsContainer","editField","editLabel","resourcesField","toolbar","headerWrapper","footerWrapper","expanded","views","viewsWrapper","actions","iconPlus","iconPdf","iconToggle","viewButtonDefault","viewButton","currentView","link","pdfButton","appendButton","TaskDropDown","fn","call","_popup","direction","navigatable","_current","method","find","sibling","removeClass","removeAttr","addClass","that","itemSelector","appendButtonSelector","addChild","insertBefore","insertAfter","append","Popup","anchor","open","_adjustListWidth","animation","on","target","action","preventDefault","trigger","type","aria-activedescendant","hover","close","bind","keyCode","UP","DOWN","ENTER","ESC","computedWidth","listOuterWidth","getComputedStyle","parseFloat","mozilla","msie","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","css","fontFamily","destroy","clearTimeout","_focusTimeout","off","unbind","createDataSource","dataSource","Error","GanttDependency","Model","id","predecessorId","successorId","GanttDependencyDataSource","schema","modelBase","successors","_dependencies","predecessors","dependencies","apply","view","operator","toArray","create","duration","isMilestone","_offset","newValue","Date","getTime","set","parentId","defaultValue","required","orderId","dateCompare","percentComplete","min","max","step","summary","task","children","taskAllChildren","_removeItems","_childRemoved","_toGanttTask","insert","taskSiblings","_reorderSiblings","_resolveSummaryFields","taskParent","taskChildren","taskId","order","_sort","dir","callback","tasks","taskLevel","level","taskTree","l","update","taskInfo","oldValue","offsetChildren","parentTask","offset","modelChangeHandler","sender","_resolveSummaryStart","_resolveSummaryEnd","_resolveSummaryPercentComplete","_updateSummary","getSummaryStart","currentMin","_updateSummaryRecursive","getSummaryEnd","currentMax","getSummaryPercentComplete","aggregate","average","oldOrderId","startIndex","endIndex","newIndex","siblings","Math","childCount","_createNewModel","accept","desktop","dateRange","resources","createButton","editor","format","_buildEditTemplate","editableFields","tmpl","settings","Template","templateSettings","paramName","popupStyles","html","unescape","expr","editTask","_createPopupEditor","is","showDialog","buttons","eq","buttonIndex","currentTarget","kendoWindow","modal","resizable","draggable","visible","deactivate","getKendoWindow","center","editableWidget","save","className","cancel","editorTitle","userTriggered","kendoEditable","clearContainer","validateOnBlur","cycleForm","stopPropagation","updateInfo","_initContainer","_attachHandlers","events","_dettachHandlers","grid","closeHandler","_cancelProxy","_cancel","_saveProxy","_save","row","closest","getByUid","_updateModel","dom","resourcesEditorTitle","resize","_resourceGrid","_createButtons","Grid","columns","resourcesHeader","unitsHeader","dataItem","valueFormat","toString","sortable","filterable","from","values","prop","iconClass","pdf","_events","_wrapper","_resources","_timeline","_toolbar","_footer","_adjustDimensions","_preventRefresh","_selectedViewName","_dataSource","_assignments","_dropDowns","_list","_resizable","_scrollable","_dataBind","_attachEvents","_createEditor","notify","autoBind","selectable","columnResizeHandleWidth","assignments","taskTemplate","deleteTaskConfirmation","deleteDependencyConfirmation","deleteTaskWindowTitle","deleteDependencyWindowTitle","day","week","month","year","showWorkHours","showWorkDays","workDayStart","workDayEnd","workWeekStart","workWeekEnd","hourSpan","snap","listWidth","select","clearSelection","_refreshHandler","_progressHandler","_errorHandler","_dependencyRefreshHandler","_dependencyErrorHandler","footerDropDown","headerDropDown","_editor","_resizeDraggable","_mediaQuery","removeListener","_mediaQueryHandler","_resizeHandler","footer","setOptions","selectedView","newOptions","isSettings","empty","_setEvents","splitBarHandleClassName","toggleButton","viewsSelector","pdfSelector","toggleSelector","contentSelector","treelist","hoveredClassName","actionsWrap","handler","matches","display","max-width","refresh","_resize","_actions","ns","prepend","matchMedia","addListener","toggleClass","saveAsPDF","_createButton","command","commandName","replace","split","listSelector","timelineSelector","splitBarSelector","toolbarHeight","footerHeight","totalHeight","totalWidth","splitBarWidth","treeListWidth","_scrollTo","scrollTarget","scrollIntoView","content","actionsSelector","actionMessages","firstSlot","_timeSlots","_createTask","effects","column","toggleButtons","restoreFocus","_cachedCurrent","_createResourceEditor","GanttList","_navigatable","cell","_updateTask","selection","oldWidth","newWidth","currentViewSelector","GanttTimeline","viewName","toLowerCase","resizeStart","dependency","predecessor","successor","_createDependency","removeTask","removeDependency","_requestStart","_error","refreshDependencies","dataTextField","dataColorField","dataFormatField","_assignmentsRefreshHandler","dataTaskIdField","dataResourceIdField","dataValueField","_createPopupButton","cancelTask","saveTask","_onDialogClose","_resourceEditor","_wrapResourceData","_updateAssignments","range","_render","_renderDependencies","date","_scrollToDate","_modelFromElement","setDataSource","_setDataSource","fetch","setDependenciesDataSource","items","assignment","resource","j","newLength","resourceId","hasMatch","_updateAssignment","splice","_removeAssignment","shift","_createAssignment","sync","taskCopy","toJSON","_editTask","_syncDataSource","resourceValueField","_taskConfirm","_removeTask","_scrollToUid","_preventDependencyRefresh","resourceValue","_dependencyConfirm","_removeDependency","_removeTaskDependencies","_removeTaskAssignments","_confirm","confirmation","scrollToUid","cachedUid","cachedIndex","_progress","_assignResources","groupAssigments","group","assigments","applyTaskResource","setter","wrapTask","resourcedId","formatedValue","color","result","taskAssignments","valuePerResource","toggle","progress","timelineWidth","timelineScroll","treeListWrapper","kendoResizable","orientation","handle","scrollLeft","delta","x","initialDelta","isRtl","_renderCurrentTime","headerSelector","timelineHeader","timelineContent","treeListHeader","treeListContent","wheelDeltaY","one","cellIndex","headerTable","header","contentTable","tables","expandState","collapse","expand","scroll","reverse","moveVertical","subling","moveHorizontal","toggleExpandedState","deleteAction","selectedTask","isInput","ctrlKey","setTimeout","DELETE","isCell","RIGHT","altKey","LEFT","SPACEBAR","_startEditHandler","_viewByIndex","activeElement","_activeElement","promises","when","done","_adjustHeight","PDFMixin","_drawPDF","listClass","clone","_drawPDFShadow","avoidLinks","plugin"],"mappings":"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","file":"kendo.gantt.min.js","sourcesContent":["/*!\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 (f, define) {\n define('util/text-metrics', ['kendo.core'], f);\n}(function () {\n (function ($) {\n window.kendo.util = window.kendo.util || {};\n var LRUCache = kendo.Class.extend({\n init: function (size) {\n this._size = size;\n this._length = 0;\n this._map = {};\n },\n put: function (key, value) {\n var map = this._map;\n var entry = {\n key: key,\n value: value\n };\n map[key] = entry;\n if (!this._head) {\n this._head = this._tail = entry;\n } else {\n this._tail.newer = entry;\n entry.older = this._tail;\n this._tail = entry;\n }\n if (this._length >= this._size) {\n map[this._head.key] = null;\n this._head = this._head.newer;\n this._head.older = null;\n } else {\n this._length++;\n }\n },\n get: function (key) {\n var entry = this._map[key];\n if (entry) {\n if (entry === this._head && entry !== this._tail) {\n this._head = entry.newer;\n this._head.older = null;\n }\n if (entry !== this._tail) {\n if (entry.older) {\n entry.older.newer = entry.newer;\n entry.newer.older = entry.older;\n }\n entry.older = this._tail;\n entry.newer = null;\n this._tail.newer = entry;\n this._tail = entry;\n }\n return entry.value;\n }\n }\n });\n function objectKey(object) {\n var parts = [];\n for (var key in object) {\n parts.push(key + object[key]);\n }\n return parts.sort().join('');\n }\n function hashKey(str) {\n var hash = 2166136261;\n for (var i = 0; i < str.length; ++i) {\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n hash ^= str.charCodeAt(i);\n }\n return hash >>> 0;\n }\n function zeroSize() {\n return {\n width: 0,\n height: 0,\n baseline: 0\n };\n }\n var DEFAULT_OPTIONS = { baselineMarkerSize: 1 };\n var defaultMeasureBox;\n if (typeof document !== 'undefined') {\n defaultMeasureBox = document.createElement('div');\n defaultMeasureBox.style.cssText = 'position: absolute !important; top: -4000px !important; width: auto !important; height: auto !important;' + 'padding: 0 !important; margin: 0 !important; border: 0 !important;' + 'line-height: normal !important; visibility: hidden !important; white-space: nowrap!important;';\n }\n var TextMetrics = kendo.Class.extend({\n init: function (options) {\n this._cache = new LRUCache(1000);\n this.options = $.extend({}, DEFAULT_OPTIONS, options);\n },\n measure: function (text, style, box) {\n if (!text) {\n return zeroSize();\n }\n var styleKey = objectKey(style);\n var cacheKey = hashKey(text + styleKey);\n var cachedResult = this._cache.get(cacheKey);\n if (cachedResult) {\n return cachedResult;\n }\n var size = zeroSize();\n var measureBox = box || defaultMeasureBox;\n var baselineMarker = this._baselineMarker().cloneNode(false);\n for (var key in style) {\n var value = style[key];\n if (typeof value !== 'undefined') {\n measureBox.style[key] = value;\n }\n }\n measureBox.textContent = text;\n measureBox.appendChild(baselineMarker);\n document.body.appendChild(measureBox);\n if (String(text).length) {\n size.width = measureBox.offsetWidth - this.options.baselineMarkerSize;\n size.height = measureBox.offsetHeight;\n size.baseline = baselineMarker.offsetTop + this.options.baselineMarkerSize;\n }\n if (size.width > 0 && size.height > 0) {\n this._cache.put(cacheKey, size);\n }\n measureBox.parentNode.removeChild(measureBox);\n return size;\n },\n _baselineMarker: function () {\n var marker = document.createElement('div');\n marker.style.cssText = 'display: inline-block; vertical-align: baseline;width: ' + this.options.baselineMarkerSize + 'px; height: ' + this.options.baselineMarkerSize + 'px;overflow: hidden;';\n return marker;\n }\n });\n TextMetrics.current = new TextMetrics();\n function measureText(text, style, measureBox) {\n return TextMetrics.current.measure(text, style, measureBox);\n }\n kendo.deepExtend(kendo.util, {\n LRUCache: LRUCache,\n TextMetrics: TextMetrics,\n measureText: measureText,\n objectKey: objectKey,\n hashKey: hashKey\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.gantt', [\n 'kendo.data',\n 'kendo.popup',\n 'kendo.window',\n 'kendo.resizable',\n 'kendo.gantt.list',\n 'kendo.gantt.timeline',\n 'kendo.grid',\n 'kendo.pdf'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'gantt',\n name: 'Gantt',\n category: 'web',\n description: 'The Gantt component.',\n depends: [\n 'data',\n 'popup',\n 'resizable',\n 'window',\n 'gantt.list',\n 'gantt.timeline',\n 'grid'\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo;\n var supportsMedia = 'matchMedia' in window;\n var browser = kendo.support.browser;\n var mobileOS = kendo.support.mobileOS;\n var Observable = kendo.Observable;\n var Widget = kendo.ui.Widget;\n var DataSource = kendo.data.DataSource;\n var ObservableObject = kendo.data.ObservableObject;\n var ObservableArray = kendo.data.ObservableArray;\n var Query = kendo.data.Query;\n var isArray = $.isArray;\n var inArray = $.inArray;\n var isFunction = kendo.isFunction;\n var proxy = $.proxy;\n var extend = $.extend;\n var isPlainObject = $.isPlainObject;\n var map = $.map;\n var outerWidth = kendo._outerWidth;\n var outerHeight = kendo._outerHeight;\n var keys = kendo.keys;\n var defaultIndicatorWidth = 3;\n var NS = '.kendoGantt';\n var PERCENTAGE_FORMAT = 'p0';\n var TABINDEX = 'tabIndex';\n var CLICK = 'click';\n var WIDTH = 'width';\n var STRING = 'string';\n var DIRECTIONS = {\n 'down': {\n origin: 'bottom left',\n position: 'top left'\n },\n 'up': {\n origin: 'top left',\n position: 'bottom left'\n }\n };\n var ARIA_DESCENDANT = 'aria-activedescendant';\n var ARIA_LABEL = 'aria-label';\n var ACTIVE_CELL = 'gantt_active_cell';\n var ACTIVE_OPTION = 'action-option-focused';\n var DOT = '.';\n var TASK_DELETE_CONFIRM = 'Are you sure you want to delete this task?';\n var DEPENDENCY_DELETE_CONFIRM = 'Are you sure you want to delete this dependency?';\n var TOGGLE_BUTTON_TEMPLATE = kendo.template('');\n var BUTTON_TEMPLATE = '';\n var COMMAND_BUTTON_TEMPLATE = '#=text#';\n var VIEWBUTTONTEMPLATE = kendo.template('
  • &nbps;
  • ');\n var HEADER_VIEWS_TEMPLATE = kendo.template('');\n var TASK_DROPDOWN_TEMPLATE = kendo.template('
    ' + '' + '
    ');\n var DATERANGEEDITOR = function (container, options) {\n var attr = {\n name: options.field,\n title: options.title\n };\n var validationRules = options.model.fields[options.field].validation;\n if (validationRules && isPlainObject(validationRules) && validationRules.message) {\n attr[kendo.attr('dateCompare-msg')] = validationRules.message;\n }\n $('').attr(attr).appendTo(container);\n $('').hide().appendTo(container);\n };\n var RESOURCESEDITOR = function (container, options) {\n $('' + options.messages.assignButton + '').click(options.click).appendTo(container);\n };\n var ganttStyles = {\n wrapper: 'k-widget k-gantt',\n rowHeight: 'k-gantt-rowheight',\n listWrapper: 'k-gantt-layout k-gantt-treelist',\n list: 'k-gantt-treelist',\n timelineWrapper: 'k-gantt-layout k-gantt-timeline',\n timeline: 'k-gantt-timeline',\n splitBarWrapper: 'k-splitbar k-state-default k-splitbar-horizontal k-splitbar-draggable-horizontal k-gantt-layout',\n splitBar: 'k-splitbar',\n splitBarHover: 'k-splitbar-horizontal-hover',\n popupWrapper: 'k-list-container',\n popupList: 'k-list k-reset',\n resizeHandle: 'k-resize-handle',\n icon: 'k-icon',\n item: 'k-item',\n line: 'k-line',\n buttonDelete: 'k-gantt-delete',\n buttonCancel: 'k-gantt-cancel',\n buttonSave: 'k-gantt-update',\n buttonToggle: 'k-gantt-toggle',\n primary: 'k-primary',\n hovered: 'k-state-hover',\n selected: 'k-state-selected',\n focused: 'k-state-focused',\n gridHeader: 'k-grid-header',\n gridHeaderWrap: 'k-grid-header-wrap',\n gridContent: 'k-grid-content',\n popup: {\n form: 'k-popup-edit-form',\n editForm: 'k-gantt-edit-form',\n formContainer: 'k-edit-form-container',\n resourcesFormContainer: 'k-resources-form-container',\n message: 'k-popup-message',\n buttonsContainer: 'k-edit-buttons k-state-default',\n button: 'k-button',\n editField: 'k-edit-field',\n editLabel: 'k-edit-label',\n resourcesField: 'k-gantt-resources'\n },\n toolbar: {\n headerWrapper: 'k-floatwrap k-header k-gantt-toolbar',\n footerWrapper: 'k-floatwrap k-header k-gantt-toolbar',\n toolbar: 'k-gantt-toolbar',\n expanded: 'k-state-expanded',\n views: 'k-gantt-views',\n viewsWrapper: 'k-reset k-header k-gantt-views',\n actions: 'k-gantt-actions',\n button: 'k-button k-button-icontext',\n buttonToggle: 'k-button k-button-icon k-gantt-toggle',\n iconPlus: 'k-icon k-i-plus',\n iconPdf: 'k-icon k-i-file-pdf',\n iconToggle: 'k-icon k-i-layout-1-by-4',\n viewButtonDefault: 'k-state-default',\n viewButton: 'k-view',\n currentView: 'k-current-view',\n link: 'k-link',\n pdfButton: 'k-gantt-pdf',\n appendButton: 'k-gantt-create'\n }\n };\n function selector(uid) {\n return '[' + kendo.attr('uid') + (uid ? '=\\'' + uid + '\\']' : ']');\n }\n function trimOptions(options) {\n delete options.name;\n delete options.prefix;\n delete options.remove;\n delete options.edit;\n delete options.add;\n delete options.navigate;\n return options;\n }\n function dateCompareValidator(input) {\n if (input.filter('[name=end], [name=start]').length) {\n var field = input.attr('name');\n var picker = kendo.widgetInstance(input, kendo.ui);\n var dates = {};\n var container = input;\n var editable;\n var model;\n while (container !== window && !editable) {\n container = container.parent();\n editable = container.data('kendoEditable');\n }\n model = editable ? editable.options.model : null;\n if (!model) {\n return true;\n }\n dates.start = model.start;\n dates.end = model.end;\n dates[field] = picker ? picker.value() : kendo.parseDate(input.value());\n return dates.start <= dates.end;\n }\n return true;\n }\n function focusTable(table, direct) {\n var wrapper = table.parents('[' + kendo.attr('role') + '=\"gantt\"]');\n var scrollPositions = [];\n var parents = scrollableParents(wrapper);\n table.attr(TABINDEX, 0);\n if (direct) {\n parents.each(function (index, parent) {\n scrollPositions[index] = $(parent).scrollTop();\n });\n }\n try {\n table[0].setActive();\n } catch (e) {\n table[0].focus();\n }\n if (direct) {\n parents.each(function (index, parent) {\n $(parent).scrollTop(scrollPositions[index]);\n });\n }\n }\n function scrollableParents(element) {\n return $(element).parentsUntil('body').filter(function (index, element) {\n var computedStyle = kendo.getComputedStyles(element, ['overflow']);\n return computedStyle.overflow != 'visible';\n }).add(window);\n }\n var defaultCommands;\n var TaskDropDown = Observable.extend({\n init: function (element, options) {\n Observable.fn.init.call(this);\n this.element = element;\n this.options = extend(true, {}, this.options, options);\n this._popup();\n },\n options: {\n direction: 'down',\n navigatable: false\n },\n _current: function (method) {\n var ganttStyles = Gantt.styles;\n var current = this.list.find(DOT + ganttStyles.focused);\n var sibling = current[method]();\n if (sibling.length) {\n current.removeClass(ganttStyles.focused).removeAttr('id');\n sibling.addClass(ganttStyles.focused).attr('id', ACTIVE_OPTION);\n this.list.find('ul').removeAttr(ARIA_DESCENDANT).attr(ARIA_DESCENDANT, ACTIVE_OPTION);\n }\n },\n _popup: function () {\n var that = this;\n var ganttStyles = Gantt.styles;\n var itemSelector = 'li' + DOT + ganttStyles.item;\n var appendButtonSelector = DOT + ganttStyles.toolbar.appendButton;\n var actions = this.options.messages.actions;\n var navigatable = this.options.navigatable;\n this.list = $(TASK_DROPDOWN_TEMPLATE({\n styles: ganttStyles,\n actions: [\n {\n data: 'add',\n text: actions.addChild\n },\n {\n data: 'insert-before',\n text: actions.insertBefore\n },\n {\n data: 'insert-after',\n text: actions.insertAfter\n }\n ]\n }));\n this.element.append(this.list);\n this.popup = new kendo.ui.Popup(this.list, extend({\n anchor: this.element.find(appendButtonSelector),\n open: function () {\n that._adjustListWidth();\n },\n animation: this.options.animation\n }, DIRECTIONS[this.options.direction]));\n this.element.on(CLICK + NS, appendButtonSelector, function (e) {\n var target = $(this);\n var action = target.attr(kendo.attr('action'));\n e.preventDefault();\n if (action) {\n that.trigger('command', { type: action });\n } else {\n that.popup.open();\n if (navigatable) {\n that.list.find('li:first').addClass(ganttStyles.focused).attr('id', ACTIVE_OPTION).end().find('ul').attr({\n TABINDEX: 0,\n 'aria-activedescendant': ACTIVE_OPTION\n }).focus();\n }\n }\n });\n this.list.find(itemSelector).hover(function () {\n $(this).addClass(ganttStyles.hovered);\n }, function () {\n $(this).removeClass(ganttStyles.hovered);\n }).end().on(CLICK + NS, itemSelector, function () {\n that.trigger('command', { type: $(this).attr(kendo.attr('action')) });\n that.popup.close();\n });\n if (navigatable) {\n this.popup.bind('close', function () {\n that.list.find(itemSelector).removeClass(ganttStyles.focused).end().find('ul').attr(TABINDEX, 0);\n that.element.parents('[' + kendo.attr('role') + '=\"gantt\"]').find(DOT + ganttStyles.gridContent + ' > table:first').focus();\n });\n this.list.find('ul').on('keydown' + NS, function (e) {\n var key = e.keyCode;\n switch (key) {\n case keys.UP:\n e.preventDefault();\n that._current('prev');\n break;\n case keys.DOWN:\n e.preventDefault();\n that._current('next');\n break;\n case keys.ENTER:\n that.list.find(DOT + ganttStyles.focused).click();\n break;\n case keys.ESC:\n e.preventDefault();\n that.popup.close();\n break;\n }\n });\n }\n },\n _adjustListWidth: function () {\n var list = this.list;\n var ganttStyles = Gantt.styles;\n var width = list[0].style.width;\n var wrapper = this.element.find(DOT + ganttStyles.toolbar.appendButton);\n var listOuterWidth = outerWidth(list);\n var computedStyle;\n var computedWidth;\n if (!list.data(WIDTH) && width) {\n return;\n }\n computedStyle = window.getComputedStyle ? window.getComputedStyle(wrapper[0], null) : 0;\n computedWidth = computedStyle ? parseFloat(computedStyle.width) : outerWidth(wrapper);\n if (computedStyle && (browser.mozilla || browser.msie)) {\n computedWidth += parseFloat(computedStyle.paddingLeft) + parseFloat(computedStyle.paddingRight) + parseFloat(computedStyle.borderLeftWidth) + parseFloat(computedStyle.borderRightWidth);\n }\n if (list.css('box-sizing') !== 'border-box') {\n width = computedWidth - (outerWidth(list) - list.width());\n } else {\n width = computedWidth;\n }\n if (listOuterWidth > width) {\n width = listOuterWidth;\n }\n list.css({\n fontFamily: wrapper.css('font-family'),\n width: width\n }).data(WIDTH, width);\n },\n destroy: function () {\n clearTimeout(this._focusTimeout);\n this.popup.destroy();\n this.element.off(NS);\n this.list.off(NS);\n this.unbind();\n }\n });\n var createDataSource = function (type, name) {\n return function (options) {\n options = isArray(options) ? { data: options } : options;\n var dataSource = options || {};\n var data = dataSource.data;\n dataSource.data = data;\n if (!(dataSource instanceof type) && dataSource instanceof DataSource) {\n throw new Error('Incorrect DataSource type. Only ' + name + ' instances are supported');\n }\n return dataSource instanceof type ? dataSource : new type(dataSource);\n };\n };\n var GanttDependency = kendo.data.Model.define({\n id: 'id',\n fields: {\n id: { type: 'number' },\n predecessorId: { type: 'number' },\n successorId: { type: 'number' },\n type: { type: 'number' }\n }\n });\n var GanttDependencyDataSource = DataSource.extend({\n init: function (options) {\n DataSource.fn.init.call(this, extend(true, {}, {\n schema: {\n modelBase: GanttDependency,\n model: GanttDependency\n }\n }, options));\n },\n successors: function (id) {\n return this._dependencies('predecessorId', id);\n },\n predecessors: function (id) {\n return this._dependencies('successorId', id);\n },\n dependencies: function (id) {\n var predecessors = this.predecessors(id);\n var successors = this.successors(id);\n predecessors.push.apply(predecessors, successors);\n return predecessors;\n },\n _dependencies: function (field, id) {\n var data = this.view();\n var filter = {\n field: field,\n operator: 'eq',\n value: id\n };\n data = new Query(data).filter(filter).toArray();\n return data;\n }\n });\n GanttDependencyDataSource.create = createDataSource(GanttDependencyDataSource, 'GanttDependencyDataSource');\n var GanttTask = kendo.data.Model.define({\n duration: function () {\n var end = this.end;\n var start = this.start;\n return end - start;\n },\n isMilestone: function () {\n return this.duration() === 0;\n },\n _offset: function (value) {\n var field = [\n 'start',\n 'end'\n ];\n var newValue;\n for (var i = 0; i < field.length; i++) {\n newValue = new Date(this.get(field[i]).getTime() + value);\n this.set(field[i], newValue);\n }\n },\n id: 'id',\n fields: {\n id: { type: 'number' },\n parentId: {\n type: 'number',\n defaultValue: null,\n validation: { required: true }\n },\n orderId: {\n type: 'number',\n validation: { required: true }\n },\n title: {\n type: 'string',\n defaultValue: 'New task'\n },\n start: {\n type: 'date',\n validation: { required: true }\n },\n end: {\n type: 'date',\n validation: {\n required: true,\n dateCompare: dateCompareValidator,\n message: 'End date should be after or equal to the start date'\n }\n },\n percentComplete: {\n type: 'number',\n validation: {\n required: true,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n summary: { type: 'boolean' },\n expanded: {\n type: 'boolean',\n defaultValue: true\n }\n }\n });\n var GanttDataSource = DataSource.extend({\n init: function (options) {\n DataSource.fn.init.call(this, extend(true, {}, {\n schema: {\n modelBase: GanttTask,\n model: GanttTask\n }\n }, options));\n },\n remove: function (task) {\n var parentId = task.get('parentId');\n var children = this.taskAllChildren(task);\n this._removeItems(children);\n task = DataSource.fn.remove.call(this, task);\n this._childRemoved(parentId, task.get('orderId'));\n return task;\n },\n add: function (task) {\n if (!task) {\n return;\n }\n task = this._toGanttTask(task);\n return this.insert(this.taskSiblings(task).length, task);\n },\n insert: function (index, task) {\n if (!task) {\n return;\n }\n task = this._toGanttTask(task);\n task.set('orderId', index);\n task = DataSource.fn.insert.call(this, index, task);\n this._reorderSiblings(task, this.taskSiblings(task).length - 1);\n this._resolveSummaryFields(this.taskParent(task));\n return task;\n },\n taskChildren: function (task) {\n var data = this.view();\n var filter = {\n field: 'parentId',\n operator: 'eq',\n value: null\n };\n var order = this._sort && this._sort.length ? this._sort : {\n field: 'orderId',\n dir: 'asc'\n };\n var taskId;\n if (!!task) {\n taskId = task.get('id');\n if (taskId === undefined || taskId === null || taskId === '') {\n return [];\n }\n filter.value = taskId;\n }\n data = new Query(data).filter(filter).sort(order).toArray();\n return data;\n },\n taskAllChildren: function (task) {\n var data = [];\n var that = this;\n var callback = function (task) {\n var tasks = that.taskChildren(task);\n data.push.apply(data, tasks);\n map(tasks, callback);\n };\n if (!!task) {\n callback(task);\n } else {\n data = this.view();\n }\n return data;\n },\n taskSiblings: function (task) {\n if (!task) {\n return null;\n }\n var parent = this.taskParent(task);\n return this.taskChildren(parent);\n },\n taskParent: function (task) {\n if (!task || task.get('parentId') === null) {\n return null;\n }\n return this.get(task.parentId);\n },\n taskLevel: function (task) {\n var level = 0;\n var parent = this.taskParent(task);\n while (parent !== null) {\n level += 1;\n parent = this.taskParent(parent);\n }\n return level;\n },\n taskTree: function (task) {\n var data = [];\n var current;\n var tasks = this.taskChildren(task);\n for (var i = 0, l = tasks.length; i < l; i++) {\n current = tasks[i];\n data.push(current);\n if (current.get('expanded')) {\n var children = this.taskTree(current);\n data.push.apply(data, children);\n }\n }\n return data;\n },\n update: function (task, taskInfo) {\n var that = this;\n var oldValue;\n var offsetChildren = function (parentTask, offset) {\n var children = that.taskAllChildren(parentTask);\n for (var i = 0, l = children.length; i < l; i++) {\n children[i]._offset(offset);\n }\n };\n var modelChangeHandler = function (e) {\n var field = e.field;\n var model = e.sender;\n switch (field) {\n case 'start':\n that._resolveSummaryStart(that.taskParent(model));\n offsetChildren(model, model.get(field).getTime() - oldValue.getTime());\n break;\n case 'end':\n that._resolveSummaryEnd(that.taskParent(model));\n break;\n case 'percentComplete':\n that._resolveSummaryPercentComplete(that.taskParent(model));\n break;\n case 'orderId':\n that._reorderSiblings(model, oldValue);\n break;\n }\n };\n if (taskInfo.parentId !== undefined) {\n oldValue = task.get('parentId');\n if (oldValue !== taskInfo.parentId) {\n task.set('parentId', taskInfo.parentId);\n that._childRemoved(oldValue, task.get('orderId'));\n task.set('orderId', that.taskSiblings(task).length - 1);\n that._resolveSummaryFields(that.taskParent(task));\n }\n delete taskInfo.parentId;\n }\n task.bind('change', modelChangeHandler);\n for (var field in taskInfo) {\n oldValue = task.get(field);\n task.set(field, taskInfo[field]);\n }\n task.unbind('change', modelChangeHandler);\n },\n _resolveSummaryFields: function (summary) {\n if (!summary) {\n return;\n }\n this._updateSummary(summary);\n if (!this.taskChildren(summary).length) {\n return;\n }\n this._resolveSummaryStart(summary);\n this._resolveSummaryEnd(summary);\n this._resolveSummaryPercentComplete(summary);\n },\n _resolveSummaryStart: function (summary) {\n var that = this;\n var getSummaryStart = function (parentTask) {\n var children = that.taskChildren(parentTask);\n var min = children[0].start.getTime();\n var currentMin;\n for (var i = 1, l = children.length; i < l; i++) {\n currentMin = children[i].start.getTime();\n if (currentMin < min) {\n min = currentMin;\n }\n }\n return new Date(min);\n };\n this._updateSummaryRecursive(summary, 'start', getSummaryStart);\n },\n _resolveSummaryEnd: function (summary) {\n var that = this;\n var getSummaryEnd = function (parentTask) {\n var children = that.taskChildren(parentTask);\n var max = children[0].end.getTime();\n var currentMax;\n for (var i = 1, l = children.length; i < l; i++) {\n currentMax = children[i].end.getTime();\n if (currentMax > max) {\n max = currentMax;\n }\n }\n return new Date(max);\n };\n this._updateSummaryRecursive(summary, 'end', getSummaryEnd);\n },\n _resolveSummaryPercentComplete: function (summary) {\n var that = this;\n var getSummaryPercentComplete = function (parentTask) {\n var children = that.taskChildren(parentTask);\n var percentComplete = new Query(children).aggregate([{\n field: 'percentComplete',\n aggregate: 'average'\n }]);\n return percentComplete.percentComplete.average;\n };\n this._updateSummaryRecursive(summary, 'percentComplete', getSummaryPercentComplete);\n },\n _updateSummaryRecursive: function (summary, field, callback) {\n if (!summary) {\n return;\n }\n var value = callback(summary);\n summary.set(field, value);\n var parent = this.taskParent(summary);\n if (parent) {\n this._updateSummaryRecursive(parent, field, callback);\n }\n },\n _childRemoved: function (parentId, index) {\n var parent = parentId === null ? null : this.get(parentId);\n var children = this.taskChildren(parent);\n for (var i = index, l = children.length; i < l; i++) {\n children[i].set('orderId', i);\n }\n this._resolveSummaryFields(parent);\n },\n _reorderSiblings: function (task, oldOrderId) {\n var orderId = task.get('orderId');\n var direction = orderId > oldOrderId;\n var startIndex = direction ? oldOrderId : orderId;\n var endIndex = direction ? orderId : oldOrderId;\n var newIndex = direction ? startIndex : startIndex + 1;\n var siblings = this.taskSiblings(task);\n endIndex = Math.min(endIndex, siblings.length - 1);\n for (var i = startIndex; i <= endIndex; i++) {\n if (siblings[i] === task) {\n continue;\n }\n siblings[i].set('orderId', newIndex);\n newIndex += 1;\n }\n },\n _updateSummary: function (task) {\n if (task !== null) {\n var childCount = this.taskChildren(task).length;\n task.set('summary', childCount > 0);\n }\n },\n _toGanttTask: function (task) {\n if (!(task instanceof GanttTask)) {\n var taskInfo = task;\n task = this._createNewModel();\n task.accept(taskInfo);\n }\n return task;\n }\n });\n GanttDataSource.create = createDataSource(GanttDataSource, 'GanttDataSource');\n extend(true, kendo.data, {\n GanttDataSource: GanttDataSource,\n GanttTask: GanttTask,\n GanttDependencyDataSource: GanttDependencyDataSource,\n GanttDependency: GanttDependency\n });\n var editors = {\n desktop: {\n dateRange: DATERANGEEDITOR,\n resources: RESOURCESEDITOR\n }\n };\n var Editor = kendo.Observable.extend({\n init: function (element, options) {\n kendo.Observable.fn.init.call(this);\n this.element = element;\n this.options = extend(true, {}, this.options, options);\n this.createButton = this.options.createButton;\n },\n fields: function (editors, model) {\n var that = this;\n var options = this.options;\n var messages = options.messages.editor;\n var resources = options.resources;\n var fields;\n var click = function (e) {\n e.preventDefault();\n resources.editor(that.container.find(DOT + Gantt.styles.popup.resourcesField), model);\n };\n if (options.editable.template) {\n fields = $.map(model.fields, function (value, key) {\n return { field: key };\n });\n } else {\n fields = [\n {\n field: 'title',\n title: messages.title\n },\n {\n field: 'start',\n title: messages.start,\n editor: editors.dateRange\n },\n {\n field: 'end',\n title: messages.end,\n editor: editors.dateRange\n },\n {\n field: 'percentComplete',\n title: messages.percentComplete,\n format: PERCENTAGE_FORMAT\n }\n ];\n if (model.get(resources.field)) {\n fields.push({\n field: resources.field,\n title: messages.resources,\n messages: messages,\n editor: editors.resources,\n click: click,\n styles: Gantt.styles.popup\n });\n }\n }\n return fields;\n },\n _buildEditTemplate: function (model, fields, editableFields) {\n var resources = this.options.resources;\n var template = this.options.editable.template;\n var settings = extend({}, kendo.Template, this.options.templateSettings);\n var paramName = settings.paramName;\n var popupStyles = Gantt.styles.popup;\n var html = '';\n if (template) {\n if (typeof template === STRING) {\n template = window.unescape(template);\n }\n html += kendo.template(template, settings)(model);\n } else {\n for (var i = 0, length = fields.length; i < length; i++) {\n var field = fields[i];\n html += '
    ';\n if (field.field === resources.field) {\n html += '
    ';\n }\n if (!model.editable || model.editable(field.field)) {\n editableFields.push(field);\n html += '
    ';\n } else {\n var tmpl = '#:';\n if (field.field) {\n field = kendo.expr(field.field, paramName);\n tmpl += field + '==null?\\'\\':' + field;\n } else {\n tmpl += '\\'\\'';\n }\n tmpl += '#';\n tmpl = kendo.template(tmpl, settings);\n html += '
    ' + tmpl(model) + '
    ';\n }\n }\n }\n return html;\n }\n });\n var PopupEditor = Editor.extend({\n destroy: function () {\n this.close();\n this.unbind();\n },\n editTask: function (task) {\n this.editable = this._createPopupEditor(task);\n },\n close: function () {\n var that = this;\n var destroy = function () {\n if (that.editable) {\n that.editable.destroy();\n that.editable = null;\n that.container = null;\n }\n if (that.popup) {\n that.popup.destroy();\n that.popup = null;\n }\n };\n if (this.editable && this.container.is(':visible')) {\n that.trigger('close', { window: that.container });\n this.container.data('kendoWindow').bind('deactivate', destroy).close();\n } else {\n destroy();\n }\n },\n showDialog: function (options) {\n var buttons = options.buttons;\n var popupStyles = Gantt.styles.popup;\n var html = kendo.format('

    {3}

    ', popupStyles.form, popupStyles.formContainer, popupStyles.message, options.text, popupStyles.buttonsContainer);\n for (var i = 0, length = buttons.length; i < length; i++) {\n html += this.createButton(buttons[i]);\n }\n html += '
    ';\n var wrapper = this.element;\n if (this.popup) {\n this.popup.destroy();\n }\n var popup = this.popup = $(html).appendTo(wrapper).eq(0).on('click', DOT + popupStyles.button, function (e) {\n e.preventDefault();\n popup.close();\n var buttonIndex = $(e.currentTarget).index();\n buttons[buttonIndex].click();\n }).kendoWindow({\n modal: true,\n resizable: false,\n draggable: false,\n title: options.title,\n visible: false,\n deactivate: function () {\n this.destroy();\n wrapper.focus();\n }\n }).getKendoWindow();\n popup.center().open();\n },\n _createPopupEditor: function (task) {\n var that = this;\n var options = {};\n var messages = this.options.messages;\n var ganttStyles = Gantt.styles;\n var popupStyles = ganttStyles.popup;\n var html = kendo.format('
    ', kendo.attr('uid'), task.uid, popupStyles.form, popupStyles.editForm, popupStyles.formContainer);\n var fields = this.fields(editors.desktop, task);\n var editableFields = [];\n html += this._buildEditTemplate(task, fields, editableFields);\n html += '
    ';\n html += this.createButton({\n name: 'update',\n text: messages.save,\n className: Gantt.styles.primary\n });\n html += this.createButton({\n name: 'cancel',\n text: messages.cancel\n });\n if (that.options.editable.destroy !== false) {\n html += this.createButton({\n name: 'delete',\n text: messages.destroy\n });\n }\n html += '
    ';\n var container = this.container = $(html).appendTo(this.element).eq(0).kendoWindow(extend({\n modal: true,\n resizable: false,\n draggable: true,\n title: messages.editor.editorTitle,\n visible: false,\n close: function (e) {\n if (e.userTriggered) {\n if (that.trigger('cancel', {\n container: container,\n model: task\n })) {\n e.preventDefault();\n }\n }\n }\n }, options));\n var editableWidget = container.kendoEditable({\n fields: editableFields,\n model: task,\n clearContainer: false,\n validateOnBlur: true,\n target: that.options.target\n }).data('kendoEditable');\n kendo.cycleForm(container);\n if (!this.trigger('edit', {\n container: container,\n model: task\n })) {\n container.data('kendoWindow').center().open();\n container.on(CLICK + NS, DOT + ganttStyles.buttonCancel, function (e) {\n e.preventDefault();\n e.stopPropagation();\n that.trigger('cancel', {\n container: container,\n model: task\n });\n });\n container.on(CLICK + NS, DOT + ganttStyles.buttonSave, function (e) {\n e.preventDefault();\n e.stopPropagation();\n var fields = that.fields(editors.desktop, task);\n var updateInfo = {};\n var field;\n for (var i = 0, length = fields.length; i < length; i++) {\n field = fields[i].field;\n updateInfo[field] = task.get(field);\n }\n that.trigger('save', {\n container: container,\n model: task,\n updateInfo: updateInfo\n });\n });\n container.on(CLICK + NS, DOT + ganttStyles.buttonDelete, function (e) {\n e.preventDefault();\n e.stopPropagation();\n that.trigger('remove', {\n container: container,\n model: task\n });\n });\n } else {\n that.trigger('cancel', {\n container: container,\n model: task\n });\n }\n return editableWidget;\n }\n });\n var ResourceEditor = Widget.extend({\n init: function (element, options) {\n Widget.fn.init.call(this, element, options);\n this.wrapper = this.element;\n this.model = this.options.model;\n this.resourcesField = this.options.resourcesField;\n this.createButton = this.options.createButton;\n this._initContainer();\n this._attachHandlers();\n },\n events: ['save'],\n open: function () {\n this.window.center().open();\n },\n close: function () {\n this.window.bind('deactivate', proxy(this.destroy, this)).close();\n },\n destroy: function () {\n this._dettachHandlers();\n this.grid.destroy();\n this.grid = null;\n this.window.destroy();\n this.window = null;\n Widget.fn.destroy.call(this);\n kendo.destroy(this.wrapper);\n this.element = this.wrapper = null;\n },\n _attachHandlers: function () {\n var ganttStyles = Gantt.styles;\n var grid = this.grid;\n var closeHandler = this._cancelProxy = proxy(this._cancel, this);\n this.container.on(CLICK + NS, DOT + ganttStyles.buttonCancel, this._cancelProxy);\n this._saveProxy = proxy(this._save, this);\n this.container.on(CLICK + NS, DOT + ganttStyles.buttonSave, this._saveProxy);\n this.window.bind('close', function (e) {\n if (e.userTriggered) {\n closeHandler(e);\n }\n });\n grid.wrapper.on(CLICK + NS, 'input[type=\\'checkbox\\']', function () {\n var element = $(this);\n var row = $(element).closest('tr');\n var model = grid.dataSource.getByUid(row.attr(kendo.attr('uid')));\n var value = $(element).is(':checked') ? 1 : '';\n model.set('value', value);\n });\n },\n _dettachHandlers: function () {\n this._cancelProxy = null;\n this._saveProxy = null;\n this.container.off(NS);\n this.grid.wrapper.off();\n },\n _cancel: function (e) {\n e.preventDefault();\n this.close();\n },\n _save: function (e) {\n e.preventDefault();\n this._updateModel();\n if (!this.wrapper.is(DOT + Gantt.styles.popup.resourcesField)) {\n this.trigger('save', {\n container: this.wrapper,\n model: this.model\n });\n }\n this.close();\n },\n _initContainer: function () {\n var that = this;\n var popupStyles = Gantt.styles.popup;\n var dom = kendo.format('
    \"', popupStyles.form, popupStyles.editForm, popupStyles.formContainer, popupStyles.resourcesFormContainer);\n dom = $(dom);\n this.container = dom.find(DOT + popupStyles.resourcesFormContainer);\n this.window = dom.kendoWindow({\n modal: true,\n resizable: false,\n draggable: true,\n visible: false,\n title: this.options.messages.resourcesEditorTitle,\n open: function () {\n that.grid.resize(true);\n }\n }).data('kendoWindow');\n this._resourceGrid();\n this._createButtons();\n },\n _resourceGrid: function () {\n var that = this;\n var messages = this.options.messages;\n var element = $('
    ').appendTo(this.container);\n this.grid = new kendo.ui.Grid(element, {\n columns: [\n {\n field: 'name',\n title: messages.resourcesHeader,\n template: '