{"version":3,"sources":["webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.data_source_adapter.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.data_controller.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.validating.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.state_storing.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.adaptivity.js","webpack:///./node_modules/devextreme/ui/gantt/ui.gantt.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.focus.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.keyboard_navigation.js","webpack:///./node_modules/devextreme/ui/gantt/ui.gantt.data.option.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.pager.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.column_fixing.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.grid_view.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.header_panel.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.rows.js","webpack:///./node_modules/devextreme/ui/gantt/ui.gantt.task.area.container.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.master_detail.js","webpack:///./node_modules/devextreme/ui/gantt/gantt_importer.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.virtual_columns.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.filter_builder.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.selection.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.column_chooser.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.core.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.base.js","webpack:///./src/views/cronograma.vue?f92b","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.filter_sync.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.sorting.js","webpack:///./node_modules/devexpress-gantt/dist/dx-gantt.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.editing.js","webpack:///./node_modules/devextreme/ui/gantt/ui.gantt.bars.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.header_filter.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.columns_resizing_reordering.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.column_headers.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.filter_row.js","webpack:///./node_modules/devextreme/ui/splitter.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.virtual_scrolling.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.columns_controller.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.context_menu.js","webpack:///./node_modules/devextreme-vue/gantt.js","webpack:///./node_modules/devextreme/ui/gantt/ui.gantt.view.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.editor_factory.js","webpack:///./node_modules/devextreme/ui/tree_list.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.error_handling.js","webpack:///./node_modules/devextreme/ui/gantt.js","webpack:///./node_modules/devextreme/ui/gantt/ui.gantt.dialogs.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.filter_panel.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.search.js","webpack:///./src/views/cronograma.vue?2d9c","webpack:///src/views/cronograma.vue","webpack:///./src/views/cronograma.vue?3760","webpack:///./src/views/cronograma.vue?91a9","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.row_dragging.js"],"names":["_uiTree_list","_uiTree_list2","_interopRequireDefault","_ui","_ui2","_common","_type","_type2","_iterator","_data","_data2","_extend","_uiGrid_core","_uiGrid_core2","_array_store","_array_store2","_query","_query2","_uiGrid_core3","_uiGrid_core4","_deferred","_store_helper","obj","__esModule","DEFAULT_KEY_EXPRESSION","isFullBranchFilterMode","that","option","DataSourceAdapterTreeList","default","inherit","getChildKeys","keys","childKeys","forEach","key","node","getNodeByKey","children","child","push","_createKeyGetter","keyExpr","this","getKeyExpr","compileGetter","_createKeySetter","isFunction","compileSetter","_createParentIdGetter","createParentIdSetter","parentIdExpr","_createItemsGetter","_createHasItemsGetter","hasItemsExpr","_createHasItemsSetter","_updateIndexByKeyObject","items","_indexByKey","each","index","item","_calculateHasItems","options","hasItems","parentIds","storeLoadOptions","isFullBranch","_hasItemsGetter","filter","data","_isChildrenLoaded","remoteOperations","filtering","loadOptions","length","hasChildren","_createVisibleItemsByNodes","nodes","result","i","visible","isRowExpanded","concat","_convertItemToNode","rootValue","nodeByKey","_keyGetter","parentId","_parentIdGetter","parentNode","parent","_createNodesByItems","visibleItems","visibleByKey","_nodeByKey","rootNode","level","_convertDataToPlainStructure","_itemsGetter","isConverted","createObjectWithChanges","_keySetter","_parentIdSetter","childItems","itemsExpr","_createIdFilter","field","parentIdFilters","combineFilters","_customizeRemoteOperations","operationTypes","callBase","apply","arguments","paging","expandVisibleNodes","sorting","_lastLoadOptions","isCustomLoading","_isReload","reload","cachedStoreData","collapseVisibleNodes","_getParentIdsToLoad","parentIdsToLoad","_handleDataLoading","expandedRowKeys","cachedPagingData","mergeStoreLoadData","_generateInfoToLoad","needChildren","keyMap","resultKeyMap","resultKeys","needToLoad","_loadParentsOrChildren","needLocalFiltering","_this","_that$_generateInfoTo","d","Deferred","isRemoteFiltering","maxFilterLengthInRequest","concatLoadedData","loadedData","_cachedStoreData","resolve","cachedNodes","map","id","reduce","filterLength","encodeURI","JSON","stringify","itemData","extend","store","fullData","_dataSource","loadFromStore","done","toArray","fail","reject","_loadParents","_loadChildrenIfNeed","when","_updateHasItemsMap","_getKeyInfo","keyOf","_applyBatch","changes","_this2","baseChanges","change","type","_applyInsert","_applyRemove","_setHasItems","value","hasItemsSetter","_hasItemsSetter","parentKeyOf","indexOf","Math","min","splice","getChildNodeKeys","_handleDataLoaded","queryByOptions","sort","_fillNodes","needToExpand","foreachNodes","_processTreeStructure","_rootNode","Error","_isNodesInitializing","executeAction","root","_totalItemsCount","_handleDataLoadedCore","filterMode","needLoadParents","call","_handlePush","reshapeOnPush","_reshapeOnPush","isNeedReshape","init","dataSource","dataStructure","createAction","isDefined","equalByValue","getRootNode","totalItemsCount","cache","isExpandedByKey","indexExpandedNodeKey","getIndexByKey","_changeRowExpandCore","slice","changeRowExpand","load","getNodeLeafKeys","childNode","parentKey","childrenKeys","loadDescendants","childrenOnly","Array","isArray","_createStoreLoadOptions","promise","forEachNode","callback","module","exports","extender","create","component","_uiTree_list3","_uiTree_list4","DataController","controllers","_getDataSourceAdapter","_getNodeLevel","_generateDataItem","rowType","isExpanded","_loadOnOptionChange","_isItemEquals","item1","item2","publicMethods","args","cancel","expandRow","collapseRow","optionChanged","name","_columnsController","reset","_items","_refreshDataSource","handled","previousValue","registerModule","defaultOptions","expandNodesOnFiltering","autoExpandAll","onNodesInitialized","enabled","EditingControllerExtender","extenders","editing","processItems","processDataItem","editorFactory","views","origApplyState","stateStoring","applyState","state","Object","prototype","hasOwnProperty","getUserState","_renderer","_renderer2","_component_registrator","_component_registrator2","_uiGantt","_uiGantt2","_tree_list","_tree_list2","_position","_window","_uiGanttData","_uiGanttData2","_splitter","_splitter2","_uiGantt3","_load_panel","_load_panel2","_typeof","Symbol","iterator","constructor","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","_get","property","receiver","Reflect","get","base","_superPropBase","desc","getOwnPropertyDescriptor","object","_getPrototypeOf","_inherits","subClass","superClass","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","NewTarget","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","sham","Proxy","Date","toString","e","getPrototypeOf","GANTT_CLASS","GANTT_VIEW_CLASS","GANTT_COLLAPSABLE_ROW","GANTT_TREE_LIST_WRAPPER","GANTT_TOOLBAR_WRAPPER","GANTT_MAIN_WRAPPER","GANTT_TASKS","GANTT_DEPENDENCIES","GANTT_RESOURCES","GANTT_RESOURCE_ASSIGNMENTS","GANTT_DEFAULT_ROW_HEIGHT","Gantt","_Widget","_super","$element","addClass","_$toolbarWrapper","appendTo","_$toolbar","_$mainWrapper","_$treeListWrapper","_$treeList","_$splitter","_$ganttView","_$dialog","_$loadPanel","_$contextMenu","_renderBars","_renderTreeList","_renderSplitter","_this$option","_treeList","_createComponent","_tasksRaw","columns","columnResizingMode","height","width","selection","mode","_getSelectionMode","selectedRowKeys","_getArrayFromOneElement","scrolling","showScrollbar","allowColumnResizing","showRowLines","onContentReady","_onTreeListContentReady","onSelectionChanged","_onTreeListSelectionChanged","onRowCollapsed","_ganttView","changeTaskExpanded","onRowExpanded","onRowPrepared","_onTreeListRowPrepared","onContextMenuPreparing","_onTreeListContextMenuPreparing","onRowDblClick","_onTreeListRowDblClick","container","leftElement","rightElement","onApplyPanelSize","_onApplyPanelSize","bind","_bars","_toolbar","GanttToolbar","_updateToolbarContent","_contextMenuBar","GanttContextMenuBar","GanttView","_$element","offsetHeight","rowHeight","_getTreeListRowHeight","headerHeight","_getTreeListHeaderHeight","tasks","_tasks","dependencies","_dependencies","resources","_resources","resourceAssignments","_resourceAssignments","allowSelection","selectedRowKey","showResources","taskTitlePosition","firstDayOfWeek","scaleType","validation","stripLines","bars","mainElement","_onGanttViewSelectionChanged","onScroll","_onGanttViewScroll","onDialogShowing","_showDialog","onPopupMenuShowing","_showPopupMenu","onExpandAll","_expandAll","onCollapseAll","_collapseAll","modelChangesListener","_createModelChangesListener","_fireContentReadyAction","_setInnerElementsWidth","getDataSource","_initGanttView","_initScrollSync","rowElement","row","_setTreeListOption","position","x","event","pageX","y","pageY","_ganttViewCore","commandManager","showTaskEditDialog","execute","currentSelectedRowKeys","_setGanttViewOption","_raiseSelectionChangedAction","treeListScrollable","getScrollable","diff","scrollTop","scrollBy","left","top","treeListScrollView","ganttViewTaskAreaContainer","getTaskAreaContainer","_this3","treeList","_this4","off","on","_onTreeListScroll","$row","find","getBoundingRect","last","widths","hasWindow","_getPanelsWidthByOption","leftPanelWidth","rightPanelWidth","isPercentage","isString","optionName","_this5","dataOption","_disposeDataSource","_getLoadPanel","_dataSourceChanged","_getSpecificDataSourceOption","getters","optionValue","exprMatches","match","setters","modelObject","_compileSettersByOption","previous","resultKey","dataSourceName","_compileGettersByOption","mappedData","_prepareMapHandler","t","_this6","NotifyTaskCreated","task","errorCallback","_onRecordInserted","NotifyTaskRemoved","taskId","_onRecordRemoved","NotifyTaskTitleChanged","newValue","_onRecordUpdated","NotifyTaskDescriptionChanged","NotifyTaskStartChanged","NotifyTaskEndChanged","NotifyTaskProgressChanged","NotifyDependencyInserted","dependency","NotifyDependencyRemoved","dependencyId","NotifyResourceCreated","resource","NotifyResourceRemoved","NotifyResourceAssigned","assignment","NotifyResourceUnassigned","assignmentId","NotifyParentDataRecalculated","_onParentTasksRecalculated","record","_this7","_getStoreObject","insert","response","keyGetter","insertedId","_updateTreeListDataSource","_this8","remove","fieldName","_this9","setter","update","treeDataSource","_appendCustomFields","_prepareSetterMapHandler","modelData","_tasksOption","_getItems","modelItem","updatedItem","_skipUpdateTreeListDataSource","storeArray","_getStore","_array","_loadPanel","of","_selectionChangedAction","_createActionByOption","_createSelectionChangedAction","element","_getToolbarItems","show","hide","createItems","_updateBarItemsState","updateBarItemsState","_dialogInstance","GanttDialog","parameters","afterClosing","getBarManager","updateContextMenu","executeCoreCommand","startExpr","endExpr","progressExpr","titleExpr","colorExpr","predecessorIdExpr","successorIdExpr","typeExpr","textExpr","taskIdExpr","resourceIdExpr","taskListWidth","allowTaskAdding","allowTaskDeleting","allowTaskUpdating","allowDependencyAdding","allowDependencyDeleting","allowResourceAdding","allowResourceDeleting","allowResourceUpdating","validateDependencies","autoUpdateParentTasks","toolbar","findIndex","_isFocusedRowInside","focusedRowKey","rowIndex","getRowIndexByKey","focusedRow","getVisibleRows","getParentKey","parentData","expandAscendants","getPageIndexByKey","getCombinedFilter","getController","getSortDataSourceParameters","offset","pageIndex","floor","pageSize","keyboardNavigation","_leftRightKeysHandler","eventArgs","isEditing","getVisibleRowIndex","dataController","_dataController","ctrl","directionCode","_getDirectionCodeByKey","keyName","getKeyByRowIndex","_component","_component2","_data_helper","_data_helper2","DataOption","_Component","loadPanel","dataSourceChangedCallback","_optionName","_dataSourceChangedCallback","_showLoadPanel","_hideLoadPanel","error","newItems","paginate","isLoading","isLoaded","include","GridView","gridView","_getWidgetAriaLabel","_getTableRoleName","resizing","_toggleBestFitMode","isBestFit","$rowsTable","_rowsView","_getTableElement","toggleClass","addWidgetPrefix","TREELIST_TEXT_CONTENT","TREELIST_EXPAND_ICON_CONTAINER_CLASS","TREELIST_CELL_EXPANDABLE_CLASS","TREELIST_EMPTY_SPACE","TREELIST_EXPANDED_CLASS","TREELIST_COLLAPSED_CLASS","RowsView","rowsView","createCellContent","$container","createIcon","hasIcon","$iconElement","append","_renderIconContainer","$iconContainer","watch","empty","_renderIcons","_renderCellCommandContent","model","_processTemplate","template","resultTemplate","renderingTemplate","firstDataColumnIndex","getFirstDataColumnIndex","column","render","_updateCell","$cell","hasClass","_rowClick","$targetElement","isExpandIcon","_createRow","$rowElement","setAria","closest","TaskAreaContainer","_scroll_view","_scroll_view2","ganttViewWidget","_element","_scrollView","scrollByContent","scrollByThumb","direction","updateView","offsetWidth","set","scrollLeft","scrollWidth","scrollHeight","_processItems","_processDataItem","Errors","getGanttViewCore","TREELIST_SELECT_ALL_CLASS","CELL_FOCUS_DISABLED_CLASS","SELECT_CHECKBOX_CLASS","originalRowClick","originalHandleDataChanged","_handleDataChanged","nodeExists","array","currentKey","showCheckBoxesMode","recursive","selectionController","isRecursiveSelection","changeType","updateSelectionState","selectedItemKeys","_selectionStateByKey","_getSelectionConfig","_arguments","config","plainItems","all","getCachedStoreData","isItemSelected","isRowSelected","isSelectableItem","getItemData","renderSelectCheckBoxContainer","getView","$checkbox","_renderSelectCheckBox","isSelected","_attachCheckBoxClickEvent","_updateSelectColumn","noop","_getSelectAllNodeKeys","isSelectAll","visibleKeys","selectedVisibleKeys","hasIndeterminateState","some","selectAll","selectRows","deselectAll","deselectRows","preserve","isDeselect","normalizedArgs","_normalizeSelectionArgs","_isSelectionNormalizing","always","selectedRowsData","_fireSelectionChanged","changeItemSelection","itemIndex","keyboardKeys","shift","_updateParentSelectionState","hasSelectedState","hasNonSelectedState","_updateChildrenSelectionState","_updateSelectionStateCore","_getSelectedParentKeys","useCash","selectedParentNode","unshift","_getSelectedChildKeys","keysToIgnore","ignoreKeyIndex","_normalizeParentKeys","parentNodeKeys","_normalizeChildrenKeys","_normalizeSelectedRowKeysCore","isSelect","currentDeselectedRowKeys","_updateSelectedItems","_isModeLeavesOnly","_getAllSelectedRowKeys","parentKeys","insertIndex","_getParentSelectedRowKeys","_getLeafSelectedRowKeys","selectionMode","isRecursive","removedItemKeys","getSelectedRowKeys","log","getSelectedRowsData","selectedKeys","refresh","columnHeadersView","renderSelectAll","_renderSelectAllCheckBox","_isSortableElement","$target","modules","callBack","_common2","_themes","_themes2","callModuleItemsMethod","DATAGRID_ROW_SELECTOR","TREELIST_CLASS","registerModulesOrder","TreeList","_activeStateUnit","_getDefaultOptions","_defaultOptionsRules","device","isMaterial","showColumnLines","headerFilter","useIcons","_init","processModules","_clean","_optionChanged","_dimensionChanged","updateDimensions","_visibilityChanged","_initMarkup","_renderContentImpl","_renderContent","deferRender","_dispose","isReady","beginUpdate","endUpdate","_controllers","_views","focus","factory","window","installedModules","__webpack_require__","moduleId","l","m","c","getter","r","toStringTag","ns","n","s","__webpack_exports__","__extends","__assign","__rest","__decorate","__param","__metadata","__awaiter","__generator","__createBinding","__exportStar","__values","__read","__spread","__spreadArrays","__await","__asyncGenerator","__asyncDelegator","__asyncValues","__makeTemplateObject","__importStar","__importDefault","__classPrivateFieldGet","__classPrivateFieldSet","extendStatics","b","__","assign","getOwnPropertySymbols","propertyIsEnumerable","decorators","decorate","paramIndex","decorator","metadataKey","metadataValue","metadata","thisArg","P","generator","adopt","Promise","fulfilled","step","next","rejected","then","body","f","g","_","label","sent","trys","ops","verb","v","op","pop","k","k2","undefined","ar","il","a","j","jl","asyncIterator","q","resume","settle","fulfill","cooked","raw","mod","privateMap","has","Browser_1","TouchUIHelper_1","DomUtils","clientEventRequiresDocScrollCorrection","isSafariVerLess3","Browser","Safari","Version","isMacOSMobileVerLess51","MacOSMobilePlatform","AndroidDefaultBrowser","AndroidChromeBrowser","getEventX","evt","isTouchEvent","TouchUIHelper","clientX","getDocumentScrollLeft","getEventY","clientY","getDocumentScrollTop","getEventSource","srcElement","GetKeyCode","NetscapeFamily","Opera","which","keyCode","GetIsParent","parentElement","tagName","getCurrentStyle","document","defaultView","getComputedStyle","getTopPaddings","currentStyle","pxToInt","paddingTop","getLeftPadding","paddingLeft","getVerticalBordersWidth","style","res","borderTopStyle","pxToFloat","borderTopWidth","borderBottomStyle","borderBottomWidth","getHorizontalBordersWidth","borderLeftStyle","borderLeftWidth","borderRightStyle","borderRightWidth","px","pxToNumber","parseInt","parseFloat","parseFunction","indexOfPx","substr","isScrollBodyIE","IE","overflow","WebKitFamily","Edge","pageYOffset","documentElement","getAbsolutePositionY","getAbsolutePositionY_IE","Firefox","getAbsolutePositionY_FF3","getAbsolutePositionY_Opera","getAbsolutePositionY_NS","getAbsolutePositionY_Other","curEl","isFirstCycle","cells","pos","getAbsoluteScrollOffset_OperaFF","offsetTop","offsetParent","getBoundingClientRect","round","isX","getAbsolutePositionX","getAbsolutePositionX_IE","getAbsolutePositionX_FF3","getAbsolutePositionX_Opera","getAbsolutePositionX_NS","getAbsolutePositionX_Other","offsetLeft","GetEvent","isExists","WebKitTouchUI","changedTouches","IsLeftButtonPressed","MSTouchUI","button","buttons","touchMouseMoveEventName","setAttribute","attrName","isSourceResetRequired","toLowerCase","setProperty","getAttribute","getPropertyValue","getTabIndexAttributeName","changeStyleAttribute","changeAttributeExtended","savedObj","savedAttrName","saveAttribute","isExistsAttribute","oldValue","EmptyObject","restoreAttributeExtended","removeAttribute","removeProperty","MajorVersion","PointerEvent","getMouseWheelEventName","getWheelDelta","ret","detail","wheelDelta","deltaY","IsRightButtonPressed","addClassNameToElement","className","trim","elementHasCssClass","oldClassName","getClassName","setClassName","removeClassNameFromElement","elementClassName","updClassName","newClassName","replace","elementClasses","classList","getClassNameList","split","classNames","baseVal","str","restoreStyleAttribute","JsonUtils","isValidJson","json","test","evalJson","eval","Time_1","TimeRange_1","Utils_1","DateRange_1","DayOfWeekMonthlyOccurrence_1","DateTimeUtils","compareDates","date1","date2","getTime","areDatesEqual","getMaxDate","getMinDate","getDaysBetween","start","end","abs","ceil","msInDay","getWeeksBetween","daysBetween","numWeeks","getDay","getMonthsDifference","dateDiff","from","to","yearsDiff","getFullYear","monthDiff","getMonth","getYearsDifference","getDayNumber","date","getDateByDayNumber","num","setHours","setMinutes","setSeconds","addDays","days","checkDayOfMonth","day","getDate","checkDayOfWeek","checkMonth","month","checkYear","year","checkDayOfWeekOccurrenceInMonth","dayOfWeek","occurrence","dayOfWeekInMonthDates","getSpecificDayOfWeekInMonthDates","DayOfWeekMonthlyOccurrence","Last","getFirstDayOfWeekInMonth","firstDayOfWeekInMonth","diffDays","specificDayOfWeekDate","getSpecificDayOfWeekInMonthDate","dates","checkValidDayInMonth","getNextMonth","inc","convertToDate","src","ms","parse","isNaN","convertTimeRangeToDateRange","timeRange","dayNumber","startT","hour","sec","msec","endT","DateRange","convertToTimeRanges","convertToTimeRange","parseTimeRanges","TimeRange","convertToTime","parseTimeRange","Time","getTimeGromJsDate","parseTime","parts","h","getHours","getMinutes","getSeconds","getMilliseconds","caclTimeDifference","time1","time2","getTimeInMilleconds","areTimesEqual","getMaxTime","getMinTime","getLastTimeOfDay","Point","CommandBase","control","modelManipulator","history","validationController","_state","getState","_i","executed","executeInternal","barManager","updateItemsState","isEnabled","settings","SimpleCommandState","DomUtils_1","Point_1","GridLayoutCalculator_1","MouseEventSource","TaskAreaManager","ganttView","time","touchTime","eventManager","initMouseEvents","isTouchEnabled","initTouchEvents","taskArea","addEventListener","onTaskAreaClick","onContextMenu","onMouseWheel","onMouseDown","onDocumentMouseMove","onDocumentMouseUp","onDocumentKeyDown","WindowsPlatform","onTouchStart","onTouchEnd","onTouchMove","add","MS_POINTER_ACTIVE_CLASS","attachEventsOnTask","taskElement","setTimeout","onTaskElementHover","preventSelect","isFocus","allowSelectTask","isConnectorLine","changeTaskSelection","getClickedTaskIndex","onMouseUp","onKeyDown","onMouseMove","now","touches","DBLCLICK_INTERVAL","preventDefault","clickedTask","viewModel","stopPropagation","returnValue","ganttOwner","showPopupMenu","hoveredTaskIndex","taskEditController","showTaskInfo","taskAreaY","relativeY","tickSize","changeGanttTaskSelection","clickedTaskIndex","source","GridLayoutCalculator","CLASSNAMES","CONNECTOR_HORIZONTAL","CONNECTOR_VERTICAL","IdentUserAgent","userAgent","ignoreDocumentMode","browserTypesOrderedList","defaultBrowserType","defaultPlatform","defaultVersions","Chrome","Mozilla","Netscape","indentPlatformMajorVersion","browserType","platformIdentStrings","optSlashOrSpace","versionString","optVersion","patterns","Opera10","version","browserTypeCandidate","regExp","RegExp","compile","matches","exec","tridentPattern","GetBrowserVersion","getIECompatibleVersionString","platform","browserVersionDetected","minOccurenceIndex","Number","MAX_VALUE","identStr","importantIdent","occurenceIndex","samsungPattern","toUpperCase","isSamsungAndroidDevice","getVersionFromTrident","documentMode","max","fillUserAgentInfo","ieCompatibleVersionString","getVersionFromMatches","versionFromTrident","compatible","navigator","MacOSPlatform","AndroidMobilePlatform","WindowsPhonePlatform","HardwareAcceleration","isIETouchUI","UserAgent","maxTouchPoints","TouchUI","MobileUI","SamsungAndroidDevice","isARMArchitecture","VirtualKeyboardSupported","fillDocumentElementBrowserTypeClassNames","regex","PlaformMajorVersion","versionStr","tridentDiffFromVersion","documentElementClassName","browserTypeslist","Info","_foo","DataObject","internalId","generateGuid","assignFromObject","sourceObj","String","random","tslib_1","HistoryItem","CompositionHistoryItem","historyItems","redo","undo","historyItem","undoItemsQuery","CollectionBase","_isGanttCollection","getItemById","addRange","range","clear","getItem","val","getItemByPublicId","sourceCollection","importFromObject","importFromArray","createItemFromObjectAndAdd","createItem","values","importFromJSON","DependencyType","DataObject_1","Dependency","predecessorId","successorId","parseType","FS","text","SS","FF","SF","ViewType","Position","TaskTitlePosition","isTouchEventName","eventName","touchMouseDownEventName","touchMouseUpEventName","msTouchDraggableClassName","DayOfWeek_1","Month_1","DateTimeUtils_1","RecurrenceFactory_1","RecurrenceBase","interval","occurrenceCount","_start","_end","_interval","_occurrenceCount","_dayOfWeek","_day","_dayOfWeekOccurrence","_month","_calculateByDayOfWeek","dayOfWeekInternal","RecurrenceFactory","getEnumValue","DayOfWeek","dayInternal","dayOfWeekOccurrence","dayOfWeekOccurrenceInternal","monthInternal","Month","calculateByDayOfWeek","calculatePoints","calculatePointsByOccurrenceCount","calculatePointsByDateRange","points","point","getFirstPoint","isRecurrencePoint","getNextPoint","isDateInRange","checkDate","useIntervalInCalc","checkInterval","calculatePointByInterval","calculateNearestPoint","getSpecDayInMonth","Sunday","Saturday","First","January","December","Size_1","Enums_1","GridElementInfo_1","Dependency_1","Settings_1","tileToDependencyMap","tileToNoWorkingIntervalsMap","minLineLength","resourceMaxWidth","minTaskWidth","setSettings","visibleTaskAreaSize","elementSizeValues","viewType","scrollBarHeight","verticalTickCount","itemCount","taskHeight","parentTaskHeight","milestoneWidth","scaleHeight","scaleItemHeight","arrowSize","Size","connectorArrowWidth","lineThickness","connectorLineThickness","minConnectorSpaceFromTask","tickTimeSpan","DateUtils","getTickTimeSpan","horizontalTickCount","getTotalTickCount","createTileToConnectorLinesMap","createTileToNonWorkingIntervalsMap","getTaskAreaBorderInfo","isVertical","sizeValue","getVerticalGridLineHeight","getGridBorderInfo","getScaleBorderInfo","getScaleItemColSpan","size","GridElementInfo","setPosition","getGridBorderPosition","setSize","getGridBorderSize","posValue","getScaleElementInfo","getScaleItemPosition","getScaleItemSize","getScaleItemClassName","getRenderedNoWorkingIntervals","scaleItemInfo","noWorkingIntervals","valueOf","isScaleItemInsideNoWorkingInterval","scaleItemLeft","scaleItemRight","noWorkingIntervalLeft","noWorkingIntervalRight","TenMinutes","Hours","SixHours","Days","Weeks","Months","Quarter","Years","getTaskWrapperElementInfo","getTaskWrapperClassName","getTaskWrapperPoint","getTask","isMilestone","selected","getTaskHeight","getPosByDate","height_1","getTaskElementInfo","textOutsideTask","autoCalculatedParent","parentAutoCalc","taskHasChildrenByIndex","getTaskWidth","getTaskClassName","color","backgroundColor","borderLeftColor","borderRightColor","borderTopColor","taskWidth","smallTaskWidth","getAutoCalcParentTaskClassName","progress","getTaskPoint","taskWrapperTopPadding","getTaskSize","getWidthByDateRange","isTaskToCalculateByChildren","getTaskProgressElementInfo","getTaskProgressSize","getTaskProgressWidth","getTaskTextElementInfo","isInsideText","getTaskTextElementClassName","taskX","outsideTaskTextDefaultWidth","margins","marginLeft","getTaskResourcesWrapperElementInfo","getTaskResourceElementInfo","getSelectionElementInfo","getRowElementInfo","getSelectionPosition","getSelectionSize","getHighlightRowInfo","getNoWorkingIntervalInfo","noWorkingDateRange","getNoWorkingIntervalPosition","getNoWorkingIntervalSize","intervalStart","noWorkingInterval","getConnectorInfo","predessorIndex","successorIndex","connectorType","connectorPoints","getConnectorPoints","getConnectorLineInfo","getArrowInfo","startPoint","endPoint","isEdgeLine","getConnectorClassName","getConnectorPosition","getConnectorSize","sizeCorrection","connectorLines","lineInfo","findArrowLineInfo","arrowPosition","getArrowPosition","getArrowClassName","getArrowPoint","arrowLineIndex","prevLastPoint","lastPoint","Top","Bottom","Left","Right","getArrowX","getArrowY","getRangeTickCount","getRangeTickCountInMonthsViewType","getRangeTickCountInQuarterViewType","startMonthStartDate","endMonthStartDate","monthOffset","getOffsetInMonths","endFromMonthStartDateOffset","startFromMonthStartDateOffset","msPerMonth","startQuarterStartDate","endQuarterStartDate","quarterOffset","getOffsetInQuarters","endFromQuarterStartDateOffset","startFromQuarterStartDateOffset","getDateByPos","preResult","monthFromStart","setMonth","setTime","getFinishToStartConnectorPoints","getStartToFinishConnectorPoints","getStartToStartConnectorPoints","getFinishToFinishConnectorPoints","getConnectorPoints_FromTopTaskRightSide_ToBottomTaskTopSide","getConnectorPoints_FromTopTaskRightSide_ToBottomTaskLeftSide","getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskRightSide","getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskRightSide","getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide","getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide","getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskTopSide","getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskLeftSide","topTaskIndex","bottomTaskIndex","shiftEndPointToRight","topTaskPoint","bottomTaskPoint","topTaskRightCenter","getTaskRightCenter","isBottomMilestone","bottomTaskTopCenter","getTaskTopCenter","endPointIndent","bottomTaskRightCenter","shiftToTop","topTaskBottomCenter","getTaskBottomCenter","bottomTaskLeftCenter","getTaskLeftCenter","shiftStartPointToRight","isTopMilestone","startPointIndent","topTaskLeftCenter","taskPoint","getTaskEdgeCorrection","sqrt","getRenderedRowColumnIndices","scrollPos","visibleAreaSizeValue","tickSizeValue","tickCount","firstVisibleIndex","getFirstVisibleGridCellIndex","lastVisibleIndex","getLastVisibleGridCellIndex","getRenderedScaleItemIndices","renderedColIndices","scaleItemColSpan","createConnecotInfo","visibleIndex","updateTileToConnectorLinesMap","info","attr","dependencyInfo","predecessor","connectorInfo","connectorLine","addElementInfoToTileMap","getAdjustedNoWorkingInterval","noWorkingIntervalInfo","modelInterval","getNearestScaleTickDate","isVerticalTile","infoPointValue","infoSizeValue","tileSizeValue","firstTileIndex","lastTileIndex","getRenderedConnectorLines","getElementsInRenderedTiles","getRenderedStripLines","clone","showCurrentTime","StripLine","currentTimeTitle","currentTimeCssClass","stripLine","renderedStart","isCurrent","cssClass","title","firstVisibleTileIndex","lastVisibleTileIndex","HistoryItemState_1","BaseManipulator","dispatcher","getErrorCallback","getDataUpdateErrorCallback","TaskPropertiesManipulator","TaskTitleManipulator","description","TaskDescriptionManipulator","TaskProgressManipulator","TaskStartDateManipulator","TaskEndDateManipulator","move","TaskMoveManipulator","TaskColorManipulator","TaskPropertyManipulator","setValue","oldState","HistoryItemState","setPropertyValue","viewItem","findItem","owner","recreateTaskElement","restoreValue","notifyTaskTitleChanged","notifyTaskDescriptionChanged","notifyTaskProgressChanged","notifyTaskStartChanged","notifyTaskEndChanged","notifyTaskColorChanged","HandlerStateBase","handler","finish","getRelativePos","absolutePos","taskAreaX","HistoryItem_1","InsertDependencyHistoryItem","insertDependency","removeDependency","RemoveDependencyHistoryItem","DialogBase_1","ConfirmationType","ConfirmationDialog","applyParameters","_newParameters","oldParameters","beginTransaction","endTransaction","createParameters","getDialogName","DialogBase","ConfirmationDialogParameters","message","DialogParametersBase","CommandBase_1","params","initParams","showDialog","_oldParameters","CollectionBase_1","Resource_1","ResourceCollection","Resource","HandlerStateBase_1","MouseHandlerStateBase","onMouseDoubleClick","_evt","MouseHandlerStateBase_1","MouseHandlerDragBaseState","currentPosition","selectDependency","onMouseUpInternal","switchToDefaultState","onMouseMoveInternal","TouchHandlerStateBase_1","TouchHandlerDragBaseState","onTouchEndInternal","onTouchMoveInternal","TouchHandlerStateBase","CreateResourceHistoryItem","RemoveResourceHistoryItem","resourceId","properties","AssignResourceHistoryItem","deassig","DeassignResourceHistoryItem","TaskPropertiesHistoryItemBase","getPropertiesManipulator","TaskTitleHistoryItem","TaskDesriptionHistoryItem","TaskProgressHistoryItem","TaskStartHistoryItem","TaskEndHistoryItem","TaskMoveHistoryItem","TaskColorHistoryItem","_hour","_min","_sec","_msec","_fullmsec","updateFullMilleconds","minutes","isTimeInRange","hasIntersect","concatWith","Daily_1","Weekly_1","Monthly_1","Yearly_1","createRecurrenceByType","correctedType","Daily","Weekly","Monthly","Yearly","createRecurrenceFromObject","recurrence","RecurrenceBase_1","daysToAdd","getDaysInMonth","rangeStartTime","rangeEndTime","needCorrectDate","nearestLeftTickTime","getNearestLeftTickTime","nearestRightTickTime","getNextTickTime","tickCountAtLeft","currentTickTime","nextTickDate","adjustStartDateByViewType","adjustEndDateByViewType","roundStartDate","msPerHour","msPerDay","msPerWeek","ViewTypeToScaleMap","createViewTypeToScaleMap","ElementTextHelper","cultureInfo","longestAbbrMonthName","longestMonthName","longestAbbrDayName","canvas","createElement","textMeasureContext","getContext","setFont","fontHolder","computedStyle","font","fontStyle","fontVariant","fontWeight","fontSize","lineHeight","fontFamily","startTime","modelItems","getScaleItemStartDate","setFullYear","FiveYears","getScaleItemText","scaleItemStartDate","isViewTypeScale","getTenMinutesScaleItemText","getHoursScaleItemText","getDaysScaleItemText","getWeeksScaleItemText","getMonthsScaleItemText","getQuarterScaleItemText","getYearsScaleItemText","getFiveYearsScaleItemText","scaleItemDate","getThirtyMinutesScaleItemText","hours","hourDisplayText","getHourDisplayText","amPmText","getAmText","getPmText","getHoursScaleItemTextCore","getDayTotalText","weekLastDayDate","getWeeksScaleItemTextCore","monthNames","getMonthNames","yearDisplayText","getMonthsScaleItemTextCore","quarterNames","getQuarterNames","hasAmPm","displayDayName","useAbbrDayNames","useAbbrMonthNames","displayYear","getAbbrMonthNames","dayNames","getAbbrDayNames","getDayNames","dayNameDisplayText","monthName","getDayTotalTextCore","getTaskText","getTaskVisibility","getVisible","getScaleItemTextTemplate","getDayTextTemplate","getWeekTextTemplate","getLongestMonthName","getLongestAbbrDayName","getLongestAbbrMonthName","dayTextTemplate","dayName","dayValueString","yearValueString","firstDayOfWeekString","lastDayOfWeekString","getLongestText","texts","longestTextWidth","textWidth","getTextWidth","measureText","amText","pmText","abbrMonthNames","abbrDayNames","ElementTextHelperCultureInfo","Margins_1","Margins","assignToElement","assignPosition","assignSize","assignMargins","marginTop","marginRight","marginBottom","Settings","Inside","areHorizontalBordersEnabled","areVerticalBordersEnabled","areAlternateRowsEnabled","EditingSettings","ValidationSettings","StripLineSettings","equal","allowDependencyDelete","allowDependencyInsert","allowTaskDelete","allowTaskInsert","allowTaskUpdate","allowResourceDelete","allowResourceInsert","allowResourceUpdate","currentTimeUpdateInterval","TaskEditController","gantt","taskIndex","createElements","updateWrapInfo","wrapInfo","baseElement","appendChild","TASK_EDIT_BOX","canUpdateTask","progressEdit","taskDateRange","removeChild","tooltip","posX","showInfo","showDependencySuccessor","dependencySuccessorBaseElement","dependencySuccessorFrame","hideDependencySuccessor","processProgress","progressOffset","clientWidth","showProgress","confirmProgress","changeTaskProgressCommand","processEnd","positionX","startDate","gridLayoutCalculator","getNewDate","showTime","confirmEnd","changeTaskEndCommand","processStart","endDate","confirmStart","changeTaskStartCommand","processMove","delta","confirmMove","taskMoveCommand","referenceDate","newDate","setDate","startDependency","dependencyLine","TASK_EDIT_DEPENDENCY_LINE","startPosition","processDependency","drawline","endDependency","createDependencyCommand","isDependencySelected","deleteSelectedDependency","removeDependencyCommand","calculator","baseFrame","TASK_EDIT_FRAME","TASK_EDIT_PROGRESS","dependencyFinish","TASK_EDIT_DEPENDENCY_RIGTH","TASK_EDIT_TOUCH","dependencyStart","TASK_EDIT_DEPENDENCY_LEFT","startEdit","TASK_EDIT_START","endEdit","TASK_EDIT_END","TASK_EDIT_BOX_SUCCESSOR","TASK_EDIT_FRAME_SUCCESSOR","dependencySuccessorStart","TASK_EDIT_SUCCESSOR_DEPENDENCY_RIGTH","dependencySuccessorFinish","TASK_EDIT_SUCCESSOR_DEPENDENCY_LEFT","TaskEditTooltip","elementTextHelper","attachEvents","temp","angle","atan","PI","transform","TASK_EDIT_PROGRESS_STATUS","delay","showInfoFunc","innerHTML","titleWrapper","TASK_EDIT_TASK_TITLE","getTimeContent","progressElement","TASK_EDIT_PROGRESS_STATUS_TIME","progressTitle","progressValue","timerId","autoHide","arrow","display","clientHeight","clearTimeout","timeElement","startEl","startTitle","startValue","endEl","endTitle","endValue","formatDate","_a","TaskAreaManager_1","TaskEditController_1","HandlerBase","switchState","initSource","nodeType","Node","ELEMENT_NODE","classToSource","TaskArea","TaskEdit_Progress","TaskEdit_Start","TaskEdit_End","TaskEdit_Frame","TaskEdit_DependencyStart","TaskEdit_DependencyFinish","Successor_DependencyStart","Successor_DependencyFinish","dependencyMap","MouseHandlerDependencyState","sourceElement","relativePosStart","relativePosEnd","relativeTouchPos","isTouchNearby","relativePos","hoverTaskIndex","touchPos","elementPos","onDoubleTap","ConstraintViolationOption","TaskDependencyHistoryItem_1","ConstraintViolationDialogCommand","newParameters","DoNothing","RemoveDependency","addAndRedo","validationError","KeepDependency","successorTask","predecessorTask","successorTaskTitle","predecessorTaskTitle","ConstraintViolationDialogParameters","GanttView_1","VisualModel_1","EtalonSizeValues_1","ModelManipulator_1","History_1","EventManager_1","TaskAreaContainer_1","ModelChangesDispatcher_1","CommandManager_1","BarManager_1","ValidationController_1","FullScreenModeHelper_1","timeScaleAreas","horTaskAreaBorders","vertTaskAreaBorders","scaleBorders","scaleElements","taskElements","resourcesElements","selectionElements","hlRowElements","renderedRowIndices","renderedScaleItemIndices","renderedConnectorLines","connectorLinesToElementsMap","noWorkingIntervalsToElementsMap","renderedNoWorkingIntervals","renderedStripLines","stripLinesMap","etalonSizeValues","EtalonSizeValues","scaleCount","currentZoom","maxZoom","stripLinesUpdaterId","currentSelectedTaskID","ValidationController","createMainElement","createHeader","calculateEtalonSizeValues","createTaskAreaContainer","loadOptionsFromGanttOwner","setupHelpers","setSizeForTaskArea","createTimeScaleContainer","createTimeScaleAreas","CommandManager","BarManager","EventManager","History","taskAreaManager","fullScreenModeHelper","FullScreenModeHelper","onBrowserWindowResize","scrollLeftByViewType","initializeStripLinesUpdater","timeScaleContainer","taskAreaContainer","getWidth","getHeight","getElement","getDateRange","modelStartDate","modelEndDate","getVisibleAreaTime","visibleTickCount","etalonElementsContainer","createEtalonElementsContainer","etalonElements","createEtalonElements","calculateEtalonSizeValuesCore","firstChild","innerText","scaleItemWidths","getHeaderHeight","visibility","wrapper","taskTitle","milestoneWrapper","etalonElementClassNames","etalonElementInfo","parentWrapper","parentTask","parentTaskTitle","zoomIn","leftPos","targetDate","updateTickSizeWidth","resetAndUpdate","setViewType","scrollToDate","zoomOut","adjustedStartDate","dataRange","onVisualModelChanged","setInterval","recreateStripLines","clearStripLinesUpdater","clearInterval","getGanttViewStartDate","getGanttViewEndDate","getTaskAreaWidth","getTaskAreaHeight","getVisibleTaskCount","header","createTimeScaleArea","timeScaleArea","createMonthsScale","createTaskArea","getExternalTaskAreaContainer","prepareTaskAreaContainer","currentDate","dayInMonthCount","dayCount","nextDate","scaleItemElement","scaleBorderInfo","processScroll","onGanttScroll","recreateTaskAreaBordersAndTaskElements","recreateConnectorLineElements","recreateNoWorkingIntervalElements","recreateScalesElements","newRenderedIndices","renderedIndices","recreateElements","removeTaskAreaBorderAndTaskElement","createTaskAreaBorderAndTaskElement","newRenderedNoWorkingIntervals","removeNoWorkingIntervalElement","createNoWorkingIntervalElement","newRenderedStripLines","removeElement","newRenderedConnectorLines","removeConnectorLineElement","createConnectorLineElement","recreateScaleElements","scaleIndex","removeScaleElementAndBorder","createScaleElementAndBorder","oldRenderedElementsInfo","newRenderedelementsInfo","removeAction","isVisible","recreateConnectorLineElement","removeTaskElement","createTaskElement","forceRender","infos","isRendered","allowTaskAreaBorders","isVerticalScroll","createTaskAreaBorder","removeTaskAreaBorder","getTaskAreaBordersDictionary","createScaleElement","createScaleBorder","scaleElement","createScaleElementCore","dictionary","createTaskWrapperElement","Outside","createTaskTextElement","taskVisualElement","createTaskVisualElement","createTaskProgressElement","createResourcesWrapperElement","createResources","createTaskSelectionElement","isHighlightRowElementAllowed","createHighlightRowElement","resourcesWrapperElementInfo","createResourceElement","taskWrapperInfo","taskElementInfo","taskProgressInfo","taskTextInfo","taskTextElement","resourceElementInfo","resElement","selectionInfo","isExternal","hlRowInfo","calculateAutoViewType","diffInHours","publicId","expanded","getTaskByPublicId","expandTask","collapseTask","showTask","changeTaskVisibility","hideTask","unselectCurrentSelectedTask","unselectTask","getTaskSelected","autoPositioning","UpdateGanttViewType","setTaskTitlePosition","setShowResources","setFirstDayOfWeek","getRowHeight","tasksData","getGanttTasksData","ModelChangesDispatcher","getModelChangesListener","onModelChanged","ViewVisualModel","getGanttDependenciesData","getGanttResourcesData","getGanttResourceAssignmentsData","getGanttWorkTimeRules","ModelManipulator","updateRange","selectTask","changeTaskSelected","selectTaskById","setWidth","setAllowSelection","setEditingSettings","setValidationSettings","setRowLinesVisible","setStripLines","setTaskTitle","changeTaskTitleCommand","setTaskProgress","newProgress","setTaskStart","setTaskEnd","removeTask","removeTaskCommand","createTask","createTaskCommand","getPrevTask","updateCreatedTaskIdAfterServerUpdate","getTaskIdByInternalId","isTaskHasChildren","requireFirstLoadParentAutoCalc","getRequireFirstLoadParentAutoCalc","getOwnerControlMainElement","getMainElement","adjustOwnerControl","adjustControl","isInFullScreenMode","adjustControlInFullScreenMode","applySettings","preventViewUpdate","ganttSettings","preventUpdate","currentHistoryItemInfo","getCurrentProcessingItemInfo","lock","rollBackAndRemove","unlock","ResourceCollection_1","TaskCollection_1","DependencyCollection_1","ResourceAssignmentCollection_1","ViewVisualModelItem_1","ViewVisualModelDependencyInfo_1","WorkingTimeCalculator_1","assignments","dateRange","workTimeRules","_fLockCount","TaskCollection","DependencyCollection","ResourceAssignmentCollection","_itemList","_viewItemList","_workTimeCalculator","WorkingTimeCalculator","updateModel","ViewVisualModelItem","getAssignedResources","createHierarchy","populateItemsForView","list","recalculateParentRequired","_loop_1","parentItem","this_1","addChild","recalculateParents","notifyParentDataRecalculated","getCurrentTaskData","getTaskObjectForDataSource","duration","taskType","customFields","populateVisibleItems","updateVisibleItemDependencies","isRoot","getExpanded","visibleDependencies","getTasVisibleDependencies","setDependencies","ViewVisualModelDependencyInfo","changed","taskHasChildren","hasTasks","Task_1","Task","TaskType","assignCustomFields","getDuration","ResourceAssignment_1","ResourceAssignment","changeVisibility","changeSelection","GanttWorkingDayRuleCollection_1","DayWorkingTimeInfo_1","rules","_workingRules","WorkingDayRuleCollection","_workDayList","_calculationRange","calculateWorkDayList","clearList","processRule","sortList","rule","dayNum","dayInfo","isWorkDay","addWorkingIntervals","workTimeRanges","DayWorkingTimeInfo","d1","d2","calculateNoWorkTimeIntervals","getNoWorkTimeRangesFromDay","concatJointedRanges","needExpandPrevInterval","_noWorkingIntervals","invalidate","WorkingTimeRule_1","WorkingTimeRule","recurrenceType","ranges","weeksFromStart","intervalCount","remainder","isPointOnNewWeek","weeksToAdd","calcNextPointWithWeekCount","weekCount","MonthInfo_1","monthToAdd","MonthInfo","addMonths","months","nextMonth","yearInc","yearFromStart","newYear","intervals","_workingIntervals","rearrangeWorkingIntervals","concatWithIntersectedRanges","sortIntervals","intersectedRanges","getIntersectedIntervals","removeInterval","r1","r2","clearIntervals","starts","ends","_isWorkDay","DependencyManipulator_1","ResourcesManipulator_1","TaskManipulator_1","TaskManipulator","TaskDependencyManipulator","ResourcesManipulator","TaskPropertiesManipulator_1","notifyDependencyInserted","getObjectForDataSource","notifyDependencyRemoved","ResourcePropertiesManipulator_1","ResourcePropertiesManipulator","notifyResourceCreated","getResourceObjectForDataSource","notifyResourceRemoved","resourceID","notifyResourceAssigned","getResourceAssignmentObjectForDataSource","notifyResourceUnassigned","resourceAssignment","ResourceColorManipulator","ResourcePropertyManipulator","stateValue","notifyResourceColorChanged","notifyTaskCreated","notifyTaskRemoved","HistoryItemInfo_1","currentIndex","currentProcessingItemInfo","transaction","transactionLevel","canUndo","activateItem","canRedo","transactionLength","addInternal","deleteOldItems","exceedItemsCount","MAX_HISTORY_ITEM_COUNT","isUndo","HistoryItemInfo","checkAndRemoveItem","MouseHandler_1","KeyCode_1","TouchHandler_1","mouseHandler","MouseHandler","touchHandler","TouchHandler","onMouseDblClick","code","getShortcutCode","ModifierKey","Ctrl","KeyCode","Key_z","Key_y","Delete","modifiers","altKey","Alt","ctrlKey","shiftKey","Shift","metaKey","Meta","HandlerBase_1","MouseHandlerDefaultState_1","MouseHandlerMoveTaskState_1","MouseHandlerProgressTaskState_1","MouseHandlerTimestampTaskState_1","MouseHandlerDependencyState_1","MouseHandlerMoveTaskState","MouseHandlerProgressTaskState","MouseHandlerTimestampTaskState","MouseHandlerDefaultState","isInScrolling","ganttMovingHelper","GanttMovingHelper","startMoving","movingInfo","increase","calcMovingInfo","updateGanttAreaCursor","cancelMoving","updateScrollPosition","newEventX","newEventY","deltaX","eventX","eventY","dirX","dirY","maxDeltaX","maxRightDelta","maxLeftDelta","maxDeltaY","maxBottomDelta","maxTopDelta","newScrollLeft","newScrollTop","drag","cursor","MouseHandlerDragTaskBaseState_1","relativePosition","TouchHandlerMoveTaskState_1","TouchHandlerDefaultState_1","TouchHandlerProgressTaskState_1","TouchHandlerTimestampTaskState_1","TouchHandlerDependencyState_1","TouchHandlerZoomState_1","TouchHandlerMoveTaskState","TouchHandlerProgressTaskState","TouchHandlerTimestampTaskState","TouchHandlerDependencyState","TouchHandlerZoomState","TouchHandlerDefaultState","TouchHandlerDragBaseState_1","popupTimer","getTaskIndex","PINCH_CHANGE_DISTANCE","prevDistance","distance","getTouchDistance","offsetX","getMiddleAbsPoint","pt0","pt1","getDistance","pow","getMiddlePointByEvent","touch","getPoint","EventDispatcher_1","EventDispatcher","isLocked","raise","taskID","dependencyID","assignmentID","listeners","listener","hasEventListener","currentListener","funcName","TaskCommands_1","TaskPropertiesCommands_1","DependencyCommands_1","ResourceCommands_1","TaskEditDialog_1","ConstraintViolationDialog_1","ResourcesDialog_1","ClientCommand_1","HistoryCommands_1","ZoomCommands_1","FullScreenCommand_1","CollapseExpandCommands_1","ConfirmationDialog_1","ResourcePropertiesCommands_1","commands","createCommand","GanttClientCommand","CreateTask","CreateSubTask","createSubTaskCommand","RemoveTask","TaskInformation","TaskAddContextItem","TaskAddContextItemCommand","Undo","UndoCommand","Redo","RedoCommand","ZoomIn","ZoomInCommand","ZoomOut","ZoomOutCommand","FullScreen","ToggleFullScreenCommand","CollapseAll","CollapseAllCommand","ExpandAll","ExpandAllCommand","CreateTaskCommand","CreateSubTaskCommand","RemoveTaskCommand","TaskTitleCommand","TaskDescriptionCommand","TaskProgressCommand","TaskColorCommand","TaskStartCommand","TaskMoveCommand","TaskEndCommand","CreateDependencyCommand","RemoveDependencyCommand","CreateResourceCommand","RemoveResourceCommand","AssignResourceCommand","DeassignResourceCommand","ResourceColorCommand","TaskEditDialogCommand","ResourcesDialogCommand","getCommand","commandId","command","TaskHistoryItem_1","ResourceHistoryItem_1","TaskCommandBase","selectedTask","referenceItem","referenceTask","CreateTaskHistoryItem","selectedItem","confirmRequired","showConfirmationDialog","TaskDelete","removeTaskHistoryItem","RemoveTaskHistoryItem","addTask","childTasks","updateParent","updateParentsIfRequired","taskIds","task_1","item_1","TaskPropertiesHistoryItem_1","TaskPropertyCommandBase","oldTitle","oldDescription","oldProgress","oldColor","TaskPropertyCommandValidation","validationErrors","validate","criticalErrors","critical","executeCore","showConstraintViolationDialog","oldStart","moveStartDependTasks","minStartTask","prev","curr","checkStartDependencies","oldEnd","moveEndDependTasks","maxEndTask","checkEndDependencies","oldDateRange","correctOnMoving","startErrors","endErrors","DependencyCommandBase","DependencyDelete","ResourceCommandBase","removeResourceHistoryItem_1","assigned","updateParents","param","TaskEditParameters","showResourcesDialogCommand","showResourcesDialog","enableEdit","isTaskEditEnabled","enableRangeEdit","isTaskRangeEditEnabled","resourcesForDelete","createResourceCommand","ResourcesDialogParameters","confirmationDialog","confirmationDialogParameters","ResourcesDelete","removeResourceCommand","join","fullScreenTempVars","toggle","collapseAll","expandAll","ResourcePropertiesHistoryItem_1","ResourcePropertyCommandBase","ResourceColorHistoryItem","ResourcePropertiesHistoryItemBase","bar","isContextMenu","updateItemsList","commandKeys","getCommandKeys","updateBarItem","queryCommands","anyQuerySended","commandKeys_1","_loop_2","completeUpdate","commandKey","commandState","setItemVisible","setItemEnabled","setItemValue","ValidationError","dep","previousEndDate","rangeBeforeMove","validRange","correctMoving","_parentAutoCalc","updateParentsRangeByChild","previousStartDate","deltaDate","calcStepCallback","totalDuration","childTask","manipulator","updateChildRangeByParent","changedTasks","newStart","newEnd","childId","_isInFullScreenMode","setFullScreenMode","setNormalMode","prepareFullScreenMode","bodyMargin","margin","requestFullScreen","cancelFullScreen","setHeight","documentWidth","documentHeight","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","getFullScreenElement","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","exitFullscreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","isNumber","isFinite","_message","_message2","DATA_EDIT_DATA_INSERT_TYPE","EditingController","_generateNewItem","_needInsertItem","editData","_isEditColumnVisible","editingOptions","allowAdding","_isDefaultButtonVisible","_getVisibleEditRowIndex","removed","isNewRow","_getEditingButtons","_getButtonConfig","_beforeSaveEditData","addRowByRowIndex","addRow","deferred","_initNewRow","dataSourceAdapter","parentIdSetter","_allowEditAction","_needToCloseEditableCell","getButtonLocalizationNames","names","originalRowDblClick","_rowDblClick","validateClick","originalClickHandler","needToCallOriginalClickHandler","RowsViewExtender","editingController","_editingController","isEditRow","addRowToNode","format","headerPanel","_toolbar2","_context_menu","_context_menu2","TOOLBAR_SEPARATOR_CLASS","COMMANDS","createSubTask","taskInformation","taskAddContextItem","fullScreen","Bar","_owner","_createControl","_cache","_fillCache","itemsCache","_getItemsCache","itemKey","disabled","_key","_value","_menu","_Bar","onItemClick","_executeCoreCommand","_createItemByText","_getDefaultItemOptions","_createSeparator","_createDefaultItem","_getIcon","hint","icon","widget","location","stylingMode","_index","_Bar2","_super2","_createItems","showEvent","_dom_adapter","_dom_adapter2","_events_engine","_events_engine2","_pointer","_pointer2","_utils","SPLITTER_CLASS","SPLITTER_WRAPPER_CLASS","SPLITTER_INACTIVE_CLASS","SPLITTER_BORDER_CLASS","SPLITTER_INITIAL_STATE_CLASS","STATE_DISABLED_CLASS","SPLITTER_MODULE_NAMESPACE","SPLITTER_POINTER_DOWN_EVENT_NAME","addNamespace","down","SPLITTER_POINTER_MOVE_EVENT_NAME","SPLITTER_POINTER_UP_EVENT_NAME","up","SplitterControl","_$container","_$leftElement","_$rightElement","_$splitterBorder","_detachEventHandlers","_attachEventHandlers","getDocument","_onMouseDownHandler","_onMouseMoveHandler","_onMouseUpHandler","_leftPanelPercentageWidth","leftElementWidth","getSplitterOffset","_convertLeftPanelWidthToPercentage","setSplitterPositionLeft","_offsetX","_getSplitterBorderWidth","_isSplitterActive","_containerWidth","removeClass","_getNewSplitterPositionLeft","newSplitterPositionLeft","_getSplitterWidth","isActive","classAction","splitterPositionLeft","needUpdatePanels","css","repaint","oldDefaultOptions","originalDataControllerExtender","originalDataSourceAdapterExtender","virtualScrollController","_virtualScrollController","viewportItemIndex","getViewportItemIndex","setViewportItemIndex","ColumnsController","_getFirstItems","visibleColumns","getVisibleColumns","visibleColumnsLength","VueType","Vue","gantt_1","component_1","configuration_component_1","DxGantt","extends","DxComponent","accessKey","activeStateEnabled","Boolean","elementAttr","validator","focusStateEnabled","Function","hoverStateEnabled","onDisposing","onInitialized","onOptionChanged","tabIndex","computed","$_instance","beforeCreate","$_WidgetClass","$_expectedChildren","isCollectionItem","DxAsyncRule","DxConfiguration","ignoreEmptyValue","reevaluate","validationCallback","$_optionName","$_isCollectionItem","$_predefinedProps","DxButton","onClick","DxColumn","alignment","allowEditing","allowFiltering","allowFixing","allowHeaderFiltering","allowHiding","allowReordering","allowResizing","allowSearch","allowSorting","calculateCellValue","calculateDisplayValue","calculateFilterExpression","calculateSortValue","caption","cellTemplate","customizeText","dataField","dataType","editCellTemplate","editorOptions","encodeHtml","falseText","filterOperations","filterType","filterValue","filterValues","fixed","fixedPosition","formItem","headerCellTemplate","hidingPriority","isBand","lookup","minWidth","ownerBand","renderAsync","selectedFilterOperation","setCellValue","showEditorAlways","showInColumnChooser","sortIndex","sortingMethod","sortOrder","trueText","validationRules","AsyncRule","CompareRule","CustomRule","EmailRule","NumericRule","PatternRule","RangeRule","RequiredRule","StringLengthRule","validationRule","DxCompareRule","comparisonTarget","comparisonType","DxCustomRule","DxDependencies","DxEditing","DxEmailRule","DxFormat","currency","formatter","parser","precision","DxFormItem","colSpan","editorType","helpText","isRequired","itemType","DxHeaderFilter","groupInterval","searchMode","DxItem","html","locateInMenu","menuItemTemplate","showText","DxLabel","showColon","DxLookup","allowClearing","displayExpr","valueExpr","DxNumericRule","DxPatternRule","pattern","DxRangeRule","DxRequiredRule","DxResourceAssignments","DxResources","DxStringLengthRule","DxStripLine","DxTasks","DxToolbar","DxValidation","DxValidationRule","_gantt_importer","_uiGanttTaskArea","_date","_date2","_onSelectionChanged","_onScroll","_onDialogShowing","_onPopupMenuShowing","_getGanttViewCore","_getTaskTitlePosition","_getFirstDayOfWeek","_parseEditingSettings","_getViewTypeByScaleType","_getCultureInfo","_selectTask","firstDayOfWeekIndex","getPeriodNames","_update","_taskAreaContainer","_popup","_popup2","_form","_form2","_popupInstance","infoMap","TaskEdit","TaskEditDialogInfo","Resources","ResourcesEditDialogInfo","Confirmation","ConfirmDialogInfo","ConstraintViolation","ConstraintViolationDialogInfo","_dialogInfo","getResult","_callback","_afterClosing","_apply","showTitle","getTitle","toolbarItems","getToolbarItems","maxWidth","getMaxWidth","contentTemplate","getContentTemplate","DialogInfoBase","applyAction","hideAction","_parameters","_applyAction","_hideAction","_editingOptions","_getToolbarItem","localizationText","action","_getOkToolbarItem","_getCancelToolbarItem","content","formData","_getFormData","_getFormItems","_getFormCssClass","_updateParameters","_DialogInfoBase","readOnly","readOnlyRange","showSpinButtons","_DialogInfoBase2","allowItemDeleting","itemDeleteMode","noDataText","onItemDeleted","textBox","onInput","addButton","getButton","resourceName","newItem","scrollToItem","_DialogInfoBase3","_super3","_getConfirmMessage","_getYesToolbarItem","_getNoToolbarItem","_DialogInfoBase4","_super4","_vm","_h","$createElement","_c","_self","attrs","aboutButtonOptions","popupVisible","auto","_v","staticRenderFns","components","DxPopup"],"mappings":"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","file":"js/display-data92.2e5c36e3.js","sourcesContent":["/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.data_source_adapter.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _ui = require(\"../widget/ui.errors\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _type2 = _interopRequireDefault(_type);\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _data2 = _interopRequireDefault(_data);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.utils\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\nvar _array_store = require(\"../../data/array_store\");\r\nvar _array_store2 = _interopRequireDefault(_array_store);\r\nvar _query = require(\"../../data/query\");\r\nvar _query2 = _interopRequireDefault(_query);\r\nvar _uiGrid_core3 = require(\"../grid_core/ui.grid_core.data_source_adapter\");\r\nvar _uiGrid_core4 = _interopRequireDefault(_uiGrid_core3);\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _store_helper = require(\"../../data/store_helper\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DEFAULT_KEY_EXPRESSION = \"id\";\r\nvar isFullBranchFilterMode = function(that) {\r\n return \"fullBranch\" === that.option(\"filterMode\")\r\n};\r\nvar DataSourceAdapterTreeList = _uiGrid_core4.default.inherit(function() {\r\n var getChildKeys = function(that, keys) {\r\n var childKeys = [];\r\n keys.forEach(function(key) {\r\n var node = that.getNodeByKey(key);\r\n node && node.children.forEach(function(child) {\r\n childKeys.push(child.key)\r\n })\r\n });\r\n return childKeys\r\n };\r\n return {\r\n _createKeyGetter: function() {\r\n var keyExpr = this.getKeyExpr();\r\n return _data2.default.compileGetter(keyExpr)\r\n },\r\n _createKeySetter: function() {\r\n var keyExpr = this.getKeyExpr();\r\n if (_type2.default.isFunction(keyExpr)) {\r\n return keyExpr\r\n }\r\n return _data2.default.compileSetter(keyExpr)\r\n },\r\n _createParentIdGetter: function() {\r\n return _data2.default.compileGetter(this.option(\"parentIdExpr\"))\r\n },\r\n createParentIdSetter: function() {\r\n var parentIdExpr = this.option(\"parentIdExpr\");\r\n if (_type2.default.isFunction(parentIdExpr)) {\r\n return parentIdExpr\r\n }\r\n return _data2.default.compileSetter(parentIdExpr)\r\n },\r\n _createItemsGetter: function() {\r\n return _data2.default.compileGetter(this.option(\"itemsExpr\"))\r\n },\r\n _createHasItemsGetter: function() {\r\n var hasItemsExpr = this.option(\"hasItemsExpr\");\r\n return hasItemsExpr && _data2.default.compileGetter(hasItemsExpr)\r\n },\r\n _createHasItemsSetter: function() {\r\n var hasItemsExpr = this.option(\"hasItemsExpr\");\r\n if (_type2.default.isFunction(hasItemsExpr)) {\r\n return hasItemsExpr\r\n }\r\n return hasItemsExpr && _data2.default.compileSetter(hasItemsExpr)\r\n },\r\n _updateIndexByKeyObject: function(items) {\r\n var that = this;\r\n that._indexByKey = {};\r\n (0, _iterator.each)(items, function(index, item) {\r\n that._indexByKey[item.key] = index\r\n })\r\n },\r\n _calculateHasItems: function(node, options) {\r\n var that = this;\r\n var parentIds = options.storeLoadOptions.parentIds;\r\n var hasItems;\r\n var isFullBranch = isFullBranchFilterMode(that);\r\n if (that._hasItemsGetter && (parentIds || !options.storeLoadOptions.filter || isFullBranch)) {\r\n hasItems = that._hasItemsGetter(node.data)\r\n }\r\n if (void 0 === hasItems) {\r\n if (!that._isChildrenLoaded[node.key] && options.remoteOperations.filtering && (parentIds || isFullBranch)) {\r\n hasItems = true\r\n } else {\r\n if (options.loadOptions.filter && !options.remoteOperations.filtering && isFullBranch) {\r\n hasItems = node.children.length\r\n } else {\r\n hasItems = node.hasChildren\r\n }\r\n }\r\n }\r\n return !!hasItems\r\n },\r\n _createVisibleItemsByNodes: function(nodes, options) {\r\n var that = this;\r\n var result = [];\r\n for (var i = 0; i < nodes.length; i++) {\r\n if (nodes[i].visible) {\r\n result.push(nodes[i])\r\n }\r\n if ((that.isRowExpanded(nodes[i].key, options) || !nodes[i].visible) && nodes[i].hasChildren && nodes[i].children.length) {\r\n result = result.concat(that._createVisibleItemsByNodes(nodes[i].children, options))\r\n }\r\n }\r\n return result\r\n },\r\n _convertItemToNode: function(item, rootValue, nodeByKey) {\r\n var key = this._keyGetter(item);\r\n var parentId = this._parentIdGetter(item);\r\n parentId = void 0 !== parentId ? parentId : rootValue;\r\n var parentNode = nodeByKey[parentId] = nodeByKey[parentId] || {\r\n key: parentId,\r\n children: []\r\n };\r\n var node = nodeByKey[key] = nodeByKey[key] || {\r\n key: key,\r\n children: []\r\n };\r\n node.data = item;\r\n node.parent = parentNode;\r\n return node\r\n },\r\n _createNodesByItems: function(items, visibleItems) {\r\n var that = this;\r\n var rootValue = that.option(\"rootValue\");\r\n var visibleByKey = {};\r\n var nodeByKey = that._nodeByKey = {};\r\n var i;\r\n if (visibleItems) {\r\n for (i = 0; i < visibleItems.length; i++) {\r\n visibleByKey[this._keyGetter(visibleItems[i])] = true\r\n }\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n var node = that._convertItemToNode(items[i], rootValue, nodeByKey);\r\n if (void 0 === node.key) {\r\n return\r\n }\r\n node.visible = !visibleItems || !!visibleByKey[node.key];\r\n if (node.parent) {\r\n node.parent.children.push(node)\r\n }\r\n }\r\n var rootNode = nodeByKey[rootValue] || {\r\n key: rootValue,\r\n children: []\r\n };\r\n rootNode.level = -1;\r\n return rootNode\r\n },\r\n _convertDataToPlainStructure: function(data, parentId, result) {\r\n var key;\r\n if (this._itemsGetter && !data.isConverted) {\r\n result = result || [];\r\n for (var i = 0; i < data.length; i++) {\r\n var item = _uiGrid_core2.default.createObjectWithChanges(data[i]);\r\n key = this._keyGetter(item);\r\n if (void 0 === key) {\r\n key = result.length + 1;\r\n this._keySetter(item, key)\r\n }\r\n this._parentIdSetter(item, void 0 === parentId ? this.option(\"rootValue\") : parentId);\r\n result.push(item);\r\n var childItems = this._itemsGetter(item);\r\n if (childItems && childItems.length) {\r\n this._convertDataToPlainStructure(childItems, key, result);\r\n var itemsExpr = this.option(\"itemsExpr\");\r\n if (!_type2.default.isFunction(itemsExpr)) {\r\n delete item[itemsExpr]\r\n }\r\n }\r\n }\r\n result.isConverted = true;\r\n return result\r\n }\r\n return data\r\n },\r\n _createIdFilter: function(field, keys) {\r\n var parentIdFilters = [];\r\n for (var i = 0; i < keys.length; i++) {\r\n parentIdFilters.push([field, \"=\", keys[i]])\r\n }\r\n return _uiGrid_core2.default.combineFilters(parentIdFilters, \"or\")\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n this.callBase.apply(this, arguments);\r\n options.remoteOperations.paging = false;\r\n var expandVisibleNodes = false;\r\n if (this.option(\"autoExpandAll\")) {\r\n options.remoteOperations.sorting = false;\r\n options.remoteOperations.filtering = false;\r\n if ((!this._lastLoadOptions || operationTypes.filtering && !options.storeLoadOptions.filter) && !options.isCustomLoading) {\r\n expandVisibleNodes = true\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n this._isReload = this._isReload || operationTypes.reload;\r\n if (!options.cachedStoreData) {\r\n this._isChildrenLoaded = {};\r\n if (this._isReload) {\r\n this._nodeByKey = {}\r\n }\r\n }\r\n if (this.option(\"expandNodesOnFiltering\") && (operationTypes.filtering || this._isReload && options.storeLoadOptions.filter)) {\r\n if (options.storeLoadOptions.filter) {\r\n expandVisibleNodes = true\r\n } else {\r\n options.collapseVisibleNodes = true\r\n }\r\n }\r\n }\r\n options.expandVisibleNodes = expandVisibleNodes\r\n },\r\n _getParentIdsToLoad: function(parentIds) {\r\n var parentIdsToLoad = [];\r\n for (var i = 0; i < parentIds.length; i++) {\r\n var node = this.getNodeByKey(parentIds[i]);\r\n if (!node || node.hasChildren && !node.children.length) {\r\n parentIdsToLoad.push(parentIds[i])\r\n }\r\n }\r\n return parentIdsToLoad\r\n },\r\n _handleDataLoading: function(options) {\r\n var rootValue = this.option(\"rootValue\");\r\n var parentIdExpr = this.option(\"parentIdExpr\");\r\n var parentIds = options.storeLoadOptions.parentIds;\r\n if (parentIds) {\r\n options.isCustomLoading = false\r\n }\r\n this.callBase.apply(this, arguments);\r\n if (options.remoteOperations.filtering && !options.isCustomLoading) {\r\n if (isFullBranchFilterMode(this) && options.cachedStoreData || !options.storeLoadOptions.filter) {\r\n var expandedRowKeys = options.collapseVisibleNodes ? [] : this.option(\"expandedRowKeys\");\r\n parentIds = [rootValue].concat(expandedRowKeys).concat(parentIds || []);\r\n var parentIdsToLoad = options.data ? this._getParentIdsToLoad(parentIds) : parentIds;\r\n if (parentIdsToLoad.length) {\r\n options.cachedPagingData = void 0;\r\n options.data = void 0;\r\n options.mergeStoreLoadData = true\r\n }\r\n options.storeLoadOptions.parentIds = parentIdsToLoad;\r\n options.storeLoadOptions.filter = this._createIdFilter(parentIdExpr, parentIdsToLoad)\r\n }\r\n }\r\n },\r\n _generateInfoToLoad: function(data, needChildren) {\r\n var that = this;\r\n var key;\r\n var keyMap = {};\r\n var resultKeyMap = {};\r\n var resultKeys = [];\r\n var rootValue = that.option(\"rootValue\");\r\n var i;\r\n for (i = 0; i < data.length; i++) {\r\n key = needChildren ? that._parentIdGetter(data[i]) : that._keyGetter(data[i]);\r\n keyMap[key] = true\r\n }\r\n for (i = 0; i < data.length; i++) {\r\n key = needChildren ? that._keyGetter(data[i]) : that._parentIdGetter(data[i]);\r\n var needToLoad = needChildren ? that.isRowExpanded(key) : key !== rootValue;\r\n if (!keyMap[key] && !resultKeyMap[key] && needToLoad) {\r\n resultKeyMap[key] = true;\r\n resultKeys.push(key)\r\n }\r\n }\r\n return {\r\n keyMap: resultKeyMap,\r\n keys: resultKeys\r\n }\r\n },\r\n _loadParentsOrChildren: function(data, options, needChildren) {\r\n var _this = this;\r\n var that = this;\r\n var filter;\r\n var needLocalFiltering;\r\n var _that$_generateInfoTo = that._generateInfoToLoad(data, needChildren),\r\n keys = _that$_generateInfoTo.keys,\r\n keyMap = _that$_generateInfoTo.keyMap;\r\n var d = new _deferred.Deferred;\r\n var isRemoteFiltering = options.remoteOperations.filtering;\r\n var maxFilterLengthInRequest = that.option(\"maxFilterLengthInRequest\");\r\n var loadOptions = isRemoteFiltering ? options.storeLoadOptions : options.loadOptions;\r\n\r\n function concatLoadedData(loadedData) {\r\n if (isRemoteFiltering) {\r\n that._cachedStoreData = that._cachedStoreData.concat(loadedData)\r\n }\r\n return data.concat(loadedData)\r\n }\r\n if (!keys.length) {\r\n return d.resolve(data)\r\n }\r\n var cachedNodes = keys.map(function(id) {\r\n return _this.getNodeByKey(id)\r\n }).filter(function(node) {\r\n return node && node.data\r\n });\r\n if (cachedNodes.length === keys.length) {\r\n if (needChildren) {\r\n cachedNodes = cachedNodes.reduce(function(result, node) {\r\n return result.concat(node.children)\r\n }, [])\r\n }\r\n if (cachedNodes.length) {\r\n return that._loadParentsOrChildren(concatLoadedData(cachedNodes.map(function(node) {\r\n return node.data\r\n })), options, needChildren)\r\n }\r\n }\r\n var keyExpr = needChildren ? that.option(\"parentIdExpr\") : that.getKeyExpr();\r\n filter = that._createIdFilter(keyExpr, keys);\r\n var filterLength = encodeURI(JSON.stringify(filter)).length;\r\n if (filterLength > maxFilterLengthInRequest) {\r\n filter = function(itemData) {\r\n return keyMap[that._keyGetter(itemData)]\r\n };\r\n needLocalFiltering = isRemoteFiltering\r\n }\r\n loadOptions = (0, _extend.extend)({}, loadOptions, {\r\n filter: !needLocalFiltering ? filter : null\r\n });\r\n var store = options.fullData ? new _array_store2.default(options.fullData) : that._dataSource.store();\r\n that.loadFromStore(loadOptions, store).done(function(loadedData) {\r\n if (loadedData.length) {\r\n if (needLocalFiltering) {\r\n loadedData = (0, _query2.default)(loadedData).filter(filter).toArray()\r\n }\r\n that._loadParentsOrChildren(concatLoadedData(loadedData), options, needChildren).done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve(data)\r\n }\r\n }).fail(d.reject);\r\n return d\r\n },\r\n _loadParents: function(data, options) {\r\n return this._loadParentsOrChildren(data, options)\r\n },\r\n _loadChildrenIfNeed: function(data, options) {\r\n if (isFullBranchFilterMode(this)) {\r\n return this._loadParentsOrChildren(data, options, true)\r\n }\r\n return (0, _deferred.when)(data)\r\n },\r\n _updateHasItemsMap: function(options) {\r\n var parentIds = options.storeLoadOptions.parentIds;\r\n if (parentIds) {\r\n for (var i = 0; i < parentIds.length; i++) {\r\n this._isChildrenLoaded[parentIds[i]] = true\r\n }\r\n }\r\n },\r\n _getKeyInfo: function() {\r\n return {\r\n key: function() {\r\n return \"key\"\r\n },\r\n keyOf: function(data) {\r\n return data.key\r\n }\r\n }\r\n },\r\n _applyBatch: function(changes) {\r\n var _this2 = this;\r\n var baseChanges = [];\r\n changes.forEach(function(change) {\r\n if (\"insert\" === change.type) {\r\n baseChanges = baseChanges.concat(_this2._applyInsert(change))\r\n } else {\r\n if (\"remove\" === change.type) {\r\n baseChanges = baseChanges.concat(_this2._applyRemove(change))\r\n } else {\r\n if (\"update\" === change.type) {\r\n baseChanges.push({\r\n type: change.type,\r\n key: change.key,\r\n data: {\r\n data: change.data\r\n }\r\n })\r\n }\r\n }\r\n }\r\n });\r\n this.callBase(baseChanges)\r\n },\r\n _setHasItems: function(node, value) {\r\n var hasItemsSetter = this._hasItemsSetter;\r\n node.hasChildren = value;\r\n if (hasItemsSetter && node.data) {\r\n hasItemsSetter(node.data, value)\r\n }\r\n },\r\n _applyInsert: function(change) {\r\n var that = this;\r\n var baseChanges = [];\r\n var parentId = that.parentKeyOf(change.data);\r\n var parentNode = that.getNodeByKey(parentId);\r\n if (parentNode) {\r\n var rootValue = that.option(\"rootValue\");\r\n var node = that._convertItemToNode(change.data, rootValue, that._nodeByKey);\r\n node.hasChildren = false;\r\n node.level = parentNode.level + 1;\r\n node.visible = true;\r\n parentNode.children.push(node);\r\n that._isChildrenLoaded[node.key] = true;\r\n that._setHasItems(parentNode, true);\r\n if ((!parentNode.parent || that.isRowExpanded(parentNode.key)) && void 0 !== change.index) {\r\n var index = that.items().indexOf(parentNode) + 1;\r\n index += change.index >= 0 ? Math.min(change.index, parentNode.children.length) : parentNode.children.length;\r\n baseChanges.push({\r\n type: change.type,\r\n data: node,\r\n index: index\r\n })\r\n }\r\n }\r\n return baseChanges\r\n },\r\n _applyRemove: function(change) {\r\n var baseChanges = [];\r\n var node = this.getNodeByKey(change.key);\r\n var parentNode = node && node.parent;\r\n if (parentNode) {\r\n var index = parentNode.children.indexOf(node);\r\n if (index >= 0) {\r\n parentNode.children.splice(index, 1);\r\n if (!parentNode.children.length) {\r\n this._setHasItems(parentNode, false)\r\n }\r\n baseChanges.push(change);\r\n baseChanges = baseChanges.concat(this.getChildNodeKeys(change.key).map(function(key) {\r\n return {\r\n type: change.type,\r\n key: key\r\n }\r\n }))\r\n }\r\n }\r\n return baseChanges\r\n },\r\n _handleDataLoaded: function(options) {\r\n var data = options.data = this._convertDataToPlainStructure(options.data);\r\n if (!options.remoteOperations.filtering && options.loadOptions.filter) {\r\n options.fullData = (0, _store_helper.queryByOptions)((0, _query2.default)(options.data), {\r\n sort: options.loadOptions && options.loadOptions.sort\r\n }).toArray()\r\n }\r\n this._updateHasItemsMap(options);\r\n this.callBase(options);\r\n if (data.isConverted && this._cachedStoreData) {\r\n this._cachedStoreData.isConverted = true\r\n }\r\n },\r\n _fillNodes: function(nodes, options, expandedRowKeys, level) {\r\n var isFullBranch = isFullBranchFilterMode(this);\r\n level = level || 0;\r\n for (var i = 0; i < nodes.length; i++) {\r\n var node = nodes[i];\r\n var needToExpand = false;\r\n this._fillNodes(nodes[i].children, options, expandedRowKeys, level + 1);\r\n node.level = level;\r\n node.hasChildren = this._calculateHasItems(node, options);\r\n if (node.visible && node.hasChildren) {\r\n if (isFullBranch) {\r\n if (node.children.filter(function(node) {\r\n return node.visible\r\n }).length) {\r\n needToExpand = true\r\n } else {\r\n if (node.children.length) {\r\n _uiTree_list2.default.foreachNodes(node.children, function(node) {\r\n node.visible = true\r\n })\r\n }\r\n }\r\n } else {\r\n needToExpand = true\r\n }\r\n if (options.expandVisibleNodes && needToExpand) {\r\n expandedRowKeys.push(node.key)\r\n }\r\n }\r\n if (node.visible || node.hasChildren) {\r\n node.parent.hasChildren = true\r\n }\r\n }\r\n },\r\n _processTreeStructure: function(options, visibleItems) {\r\n var data = options.data;\r\n var parentIds = options.storeLoadOptions.parentIds;\r\n var expandedRowKeys = [];\r\n if (parentIds && parentIds.length || this._isReload) {\r\n if (options.fullData && options.fullData.length > options.data.length) {\r\n data = options.fullData;\r\n visibleItems = visibleItems || options.data\r\n }\r\n this._rootNode = this._createNodesByItems(data, visibleItems);\r\n if (!this._rootNode) {\r\n options.data = (new _deferred.Deferred).reject(_ui2.default.Error(\"E1046\", this.getKeyExpr()));\r\n return\r\n }\r\n this._fillNodes(this._rootNode.children, options, expandedRowKeys);\r\n this._isNodesInitializing = true;\r\n if (options.collapseVisibleNodes || expandedRowKeys.length) {\r\n this.option(\"expandedRowKeys\", expandedRowKeys)\r\n }\r\n this._isReload = false;\r\n this.executeAction(\"onNodesInitialized\", {\r\n root: this._rootNode\r\n });\r\n this._isNodesInitializing = false\r\n }\r\n data = this._createVisibleItemsByNodes(this._rootNode.children, options);\r\n options.data = data;\r\n this._totalItemsCount = data.length\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n var that = this;\r\n var data = options.data;\r\n var callBase = that.callBase;\r\n var filter = options.storeLoadOptions.filter || options.loadOptions.filter;\r\n var filterMode = that.option(\"filterMode\");\r\n var visibleItems;\r\n var parentIds = options.storeLoadOptions.parentIds;\r\n var needLoadParents = filter && (!parentIds || !parentIds.length) && \"standard\" !== filterMode;\r\n if (!options.isCustomLoading) {\r\n if (needLoadParents) {\r\n var d = options.data = new _deferred.Deferred;\r\n if (\"matchOnly\" === filterMode) {\r\n visibleItems = data\r\n }\r\n return that._loadParents(data, options).done(function(data) {\r\n that._loadChildrenIfNeed(data, options).done(function(data) {\r\n options.data = data;\r\n that._processTreeStructure(options, visibleItems);\r\n callBase.call(that, options);\r\n d.resolve(options.data)\r\n })\r\n }).fail(d.reject)\r\n } else {\r\n that._processTreeStructure(options)\r\n }\r\n }\r\n that.callBase(options)\r\n },\r\n _handlePush: function(changes) {\r\n var reshapeOnPush = this._dataSource._reshapeOnPush;\r\n var isNeedReshape = reshapeOnPush && !!changes.length;\r\n if (isNeedReshape) {\r\n this._isReload = true\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n init: function(dataSource, remoteOperations) {\r\n this.callBase.apply(this, arguments);\r\n var dataStructure = this.option(\"dataStructure\");\r\n this._keyGetter = this._createKeyGetter();\r\n this._parentIdGetter = this._createParentIdGetter();\r\n this._hasItemsGetter = this._createHasItemsGetter();\r\n this._hasItemsSetter = this._createHasItemsSetter();\r\n if (\"tree\" === dataStructure) {\r\n this._itemsGetter = this._createItemsGetter();\r\n this._keySetter = this._createKeySetter();\r\n this._parentIdSetter = this.createParentIdSetter()\r\n }\r\n this._nodeByKey = {};\r\n this._isChildrenLoaded = {};\r\n this._totalItemsCount = 0;\r\n this.createAction(\"onNodesInitialized\")\r\n },\r\n getKeyExpr: function() {\r\n var store = this.store();\r\n var key = store && store.key();\r\n var keyExpr = this.option(\"keyExpr\");\r\n if (_type2.default.isDefined(key) && _type2.default.isDefined(keyExpr)) {\r\n if (!(0, _common.equalByValue)(key, keyExpr)) {\r\n throw _ui2.default.Error(\"E1044\")\r\n }\r\n }\r\n return key || keyExpr || DEFAULT_KEY_EXPRESSION\r\n },\r\n keyOf: function(data) {\r\n return this._keyGetter && this._keyGetter(data)\r\n },\r\n parentKeyOf: function(data) {\r\n return this._parentIdGetter && this._parentIdGetter(data)\r\n },\r\n getRootNode: function() {\r\n return this._rootNode\r\n },\r\n totalItemsCount: function() {\r\n return this._totalItemsCount\r\n },\r\n isRowExpanded: function(key, cache) {\r\n if (cache) {\r\n var isExpandedByKey = cache.isExpandedByKey;\r\n if (!isExpandedByKey) {\r\n isExpandedByKey = cache.isExpandedByKey = {};\r\n this.option(\"expandedRowKeys\").forEach(function(key) {\r\n isExpandedByKey[key] = true\r\n })\r\n }\r\n return !!isExpandedByKey[key]\r\n }\r\n var indexExpandedNodeKey = _uiGrid_core2.default.getIndexByKey(key, this.option(\"expandedRowKeys\"), null);\r\n return indexExpandedNodeKey >= 0\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var expandedRowKeys = this.option(\"expandedRowKeys\").slice();\r\n var indexExpandedNodeKey = _uiGrid_core2.default.getIndexByKey(key, expandedRowKeys, null);\r\n if (indexExpandedNodeKey < 0) {\r\n expandedRowKeys.push(key)\r\n } else {\r\n expandedRowKeys.splice(indexExpandedNodeKey, 1)\r\n }\r\n this.option(\"expandedRowKeys\", expandedRowKeys)\r\n },\r\n changeRowExpand: function(key) {\r\n this._changeRowExpandCore(key);\r\n return this._isNodesInitializing ? (new _deferred.Deferred).resolve() : this.load()\r\n },\r\n getNodeByKey: function(key) {\r\n if (this._nodeByKey) {\r\n return this._nodeByKey[key]\r\n }\r\n },\r\n getNodeLeafKeys: function() {\r\n var that = this;\r\n var result = [];\r\n var keys = that._rootNode ? [that._rootNode.key] : [];\r\n keys.forEach(function(key) {\r\n var node = that.getNodeByKey(key);\r\n node && _uiTree_list2.default.foreachNodes([node], function(childNode) {\r\n !childNode.children.length && result.push(childNode.key)\r\n })\r\n });\r\n return result\r\n },\r\n getChildNodeKeys: function(parentKey) {\r\n var node = this.getNodeByKey(parentKey);\r\n var childrenKeys = [];\r\n node && _uiTree_list2.default.foreachNodes(node.children, function(childNode) {\r\n childrenKeys.push(childNode.key)\r\n });\r\n return childrenKeys\r\n },\r\n loadDescendants: function(keys, childrenOnly) {\r\n var that = this;\r\n var d = new _deferred.Deferred;\r\n var remoteOperations = that.remoteOperations();\r\n if (_type2.default.isDefined(keys)) {\r\n keys = Array.isArray(keys) ? keys : [keys]\r\n } else {\r\n keys = that.getNodeLeafKeys()\r\n }\r\n if (!remoteOperations.filtering || !keys.length) {\r\n return d.resolve()\r\n }\r\n var loadOptions = that._dataSource._createStoreLoadOptions();\r\n loadOptions.parentIds = keys;\r\n that.load(loadOptions).done(function() {\r\n if (!childrenOnly) {\r\n var childKeys = getChildKeys(that, keys);\r\n if (childKeys.length) {\r\n that.loadDescendants(childKeys, childrenOnly).done(d.resolve).fail(d.reject);\r\n return\r\n }\r\n }\r\n d.resolve()\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n forEachNode: function() {\r\n var nodes = [];\r\n var callback;\r\n if (1 === arguments.length) {\r\n callback = arguments[0];\r\n var rootNode = this.getRootNode();\r\n nodes = rootNode && rootNode.children || []\r\n } else {\r\n if (2 === arguments.length) {\r\n callback = arguments[1];\r\n nodes = arguments[0];\r\n nodes = Array.isArray(nodes) ? nodes : [nodes]\r\n }\r\n }\r\n _uiTree_list2.default.foreachNodes(nodes, callback)\r\n }\r\n }\r\n}());\r\nmodule.exports = {\r\n extend: function(extender) {\r\n DataSourceAdapterTreeList = DataSourceAdapterTreeList.inherit(extender)\r\n },\r\n create: function(component) {\r\n return new DataSourceAdapterTreeList(component)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.data_controller.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _uiTree_list3 = require(\"./ui.tree_list.data_source_adapter\");\r\nvar _uiTree_list4 = _interopRequireDefault(_uiTree_list3);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.data_controller\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nexports.DataController = _uiGrid_core2.default.controllers.data.inherit(function() {\r\n return {\r\n _getDataSourceAdapter: function() {\r\n return _uiTree_list4.default\r\n },\r\n _getNodeLevel: function(node) {\r\n var level = -1;\r\n while (node.parent) {\r\n if (node.visible) {\r\n level++\r\n }\r\n node = node.parent\r\n }\r\n return level\r\n },\r\n _generateDataItem: function(node, options) {\r\n return {\r\n rowType: \"data\",\r\n node: node,\r\n key: node.key,\r\n data: node.data,\r\n isExpanded: this.isRowExpanded(node.key, options),\r\n level: this._getNodeLevel(node)\r\n }\r\n },\r\n _loadOnOptionChange: function() {\r\n this._dataSource.load()\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (!this.callBase.apply(this, arguments)) {\r\n return false\r\n }\r\n if (item1.node && item2.node && item1.node.hasChildren !== item2.node.hasChildren) {\r\n return false\r\n }\r\n if (item1.level !== item2.level) {\r\n return false\r\n }\r\n return true\r\n },\r\n init: function() {\r\n this.createAction(\"onRowExpanding\");\r\n this.createAction(\"onRowExpanded\");\r\n this.createAction(\"onRowCollapsing\");\r\n this.createAction(\"onRowCollapsed\");\r\n this.callBase.apply(this, arguments)\r\n },\r\n keyOf: function(data) {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n return dataSource.keyOf(data)\r\n }\r\n },\r\n key: function() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n return dataSource.getKeyExpr()\r\n }\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"expandRow\", \"collapseRow\", \"isRowExpanded\", \"getRootNode\", \"getNodeByKey\", \"loadDescendants\", \"forEachNode\"])\r\n },\r\n changeRowExpand: function(key) {\r\n if (this._dataSource) {\r\n var that = this;\r\n var args = {\r\n key: key\r\n };\r\n var isExpanded = this.isRowExpanded(key);\r\n that.executeAction(isExpanded ? \"onRowCollapsing\" : \"onRowExpanding\", args);\r\n if (!args.cancel) {\r\n return that._dataSource.changeRowExpand(key).done(function() {\r\n that.executeAction(isExpanded ? \"onRowCollapsed\" : \"onRowExpanded\", args)\r\n })\r\n }\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n isRowExpanded: function(key, cache) {\r\n return this._dataSource && this._dataSource.isRowExpanded(key, cache)\r\n },\r\n expandRow: function(key) {\r\n if (!this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n collapseRow: function(key) {\r\n if (this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n getRootNode: function() {\r\n return this._dataSource && this._dataSource.getRootNode()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"rootValue\":\r\n case \"parentIdExpr\":\r\n case \"itemsExpr\":\r\n case \"filterMode\":\r\n case \"expandNodesOnFiltering\":\r\n case \"autoExpandAll\":\r\n case \"hasItemsExpr\":\r\n case \"dataStructure\":\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource();\r\n args.handled = true;\r\n break;\r\n case \"expandedRowKeys\":\r\n case \"onNodesInitialized\":\r\n if (this._dataSource && !this._dataSource._isNodesInitializing && !(0, _common.equalByValue)(args.value, args.previousValue)) {\r\n this._loadOnOptionChange()\r\n }\r\n args.handled = true;\r\n break;\r\n case \"maxFilterLengthInRequest\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getNodeByKey: function(key) {\r\n if (!this._dataSource) {\r\n return\r\n }\r\n return this._dataSource.getNodeByKey(key)\r\n },\r\n getChildNodeKeys: function(parentKey) {\r\n if (!this._dataSource) {\r\n return\r\n }\r\n return this._dataSource.getChildNodeKeys(parentKey)\r\n },\r\n loadDescendants: function(keys, childrenOnly) {\r\n if (!this._dataSource) {\r\n return\r\n }\r\n return this._dataSource.loadDescendants(keys, childrenOnly)\r\n },\r\n forEachNode: function() {\r\n this._dataSource.forEachNode.apply(this, arguments)\r\n }\r\n }\r\n}());\r\n_uiTree_list2.default.registerModule(\"data\", {\r\n defaultOptions: function() {\r\n return (0, _extend.extend)({}, _uiGrid_core2.default.defaultOptions(), {\r\n itemsExpr: \"items\",\r\n parentIdExpr: \"parentId\",\r\n rootValue: 0,\r\n dataStructure: \"plain\",\r\n expandedRowKeys: [],\r\n filterMode: \"withAncestors\",\r\n expandNodesOnFiltering: true,\r\n autoExpandAll: false,\r\n onNodesInitialized: null,\r\n maxFilterLengthInRequest: 1500,\r\n paging: {\r\n enabled: false\r\n }\r\n })\r\n },\r\n controllers: {\r\n data: exports.DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.validating.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.validating\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar EditingControllerExtender = (0, _extend.extend)({}, _uiGrid_core2.default.extenders.controllers.editing);\r\ndelete EditingControllerExtender.processItems;\r\ndelete EditingControllerExtender.processDataItem;\r\n_uiTree_list2.default.registerModule(\"validating\", {\r\n defaultOptions: _uiGrid_core2.default.defaultOptions,\r\n controllers: _uiGrid_core2.default.controllers,\r\n extenders: {\r\n controllers: {\r\n editing: EditingControllerExtender,\r\n editorFactory: _uiGrid_core2.default.extenders.controllers.editorFactory\r\n },\r\n views: _uiGrid_core2.default.extenders.views\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.state_storing.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.state_storing\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar origApplyState = _uiGrid_core2.default.extenders.controllers.stateStoring.applyState;\r\n_uiTree_list2.default.registerModule(\"stateStoring\", (0, _extend.extend)(true, {}, _uiGrid_core2.default, {\r\n extenders: {\r\n controllers: {\r\n stateStoring: {\r\n applyState: function(state) {\r\n origApplyState.apply(this, arguments);\r\n if (Object.prototype.hasOwnProperty.call(state, \"expandedRowKeys\")) {\r\n this.option(\"expandedRowKeys\", state.expandedRowKeys && state.expandedRowKeys.slice())\r\n }\r\n }\r\n },\r\n data: {\r\n getUserState: function() {\r\n var state = this.callBase.apply(this, arguments);\r\n if (!this.option(\"autoExpandAll\")) {\r\n state.expandedRowKeys = this.option(\"expandedRowKeys\")\r\n }\r\n return state\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.adaptivity.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.adaptivity\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"adaptivity\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/gantt/ui.gantt.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _type2 = _interopRequireDefault(_type);\r\nvar _ui = require(\"../widget/ui.widget\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _component_registrator = require(\"../../core/component_registrator\");\r\nvar _component_registrator2 = _interopRequireDefault(_component_registrator);\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _data2 = _interopRequireDefault(_data);\r\nvar _uiGantt = require(\"./ui.gantt.view\");\r\nvar _uiGantt2 = require(\"./ui.gantt.bars\");\r\nvar _tree_list = require(\"../tree_list\");\r\nvar _tree_list2 = _interopRequireDefault(_tree_list);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _uiGanttData = require(\"./ui.gantt.data.option\");\r\nvar _uiGanttData2 = _interopRequireDefault(_uiGanttData);\r\nvar _splitter = require(\"../splitter\");\r\nvar _splitter2 = _interopRequireDefault(_splitter);\r\nvar _uiGantt3 = require(\"./ui.gantt.dialogs\");\r\nvar _load_panel = require(\"../load_panel\");\r\nvar _load_panel2 = _interopRequireDefault(_load_panel);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\r\n }\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\n\r\nfunction _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar GANTT_CLASS = \"dx-gantt\";\r\nvar GANTT_VIEW_CLASS = \"dx-gantt-view\";\r\nvar GANTT_COLLAPSABLE_ROW = \"dx-gantt-collapsable-row\";\r\nvar GANTT_TREE_LIST_WRAPPER = \"dx-gantt-treelist-wrapper\";\r\nvar GANTT_TOOLBAR_WRAPPER = \"dx-gantt-toolbar-wrapper\";\r\nvar GANTT_MAIN_WRAPPER = \"dx-gantt-main-wrapper\";\r\nvar GANTT_TASKS = \"tasks\";\r\nvar GANTT_DEPENDENCIES = \"dependencies\";\r\nvar GANTT_RESOURCES = \"resources\";\r\nvar GANTT_RESOURCE_ASSIGNMENTS = \"resourceAssignments\";\r\nvar GANTT_DEFAULT_ROW_HEIGHT = 34;\r\nvar Gantt = function(_Widget) {\r\n _inherits(Gantt, _Widget);\r\n var _super = _createSuper(Gantt);\r\n\r\n function Gantt() {\r\n _classCallCheck(this, Gantt);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(Gantt, [{\r\n key: \"_initMarkup\",\r\n value: function() {\r\n _get(_getPrototypeOf(Gantt.prototype), \"_initMarkup\", this).call(this);\r\n this.$element().addClass(GANTT_CLASS);\r\n this._$toolbarWrapper = (0, _renderer2.default)(\"
\").addClass(GANTT_TOOLBAR_WRAPPER).appendTo(this.$element());\r\n this._$toolbar = (0, _renderer2.default)(\"
\").appendTo(this._$toolbarWrapper);\r\n this._$mainWrapper = (0, _renderer2.default)(\"
\").addClass(GANTT_MAIN_WRAPPER).appendTo(this.$element());\r\n this._$treeListWrapper = (0, _renderer2.default)(\"
\").addClass(GANTT_TREE_LIST_WRAPPER).appendTo(this._$mainWrapper);\r\n this._$treeList = (0, _renderer2.default)(\"
\").appendTo(this._$treeListWrapper);\r\n this._$splitter = (0, _renderer2.default)(\"
\").appendTo(this._$mainWrapper);\r\n this._$ganttView = (0, _renderer2.default)(\"
\").addClass(GANTT_VIEW_CLASS).appendTo(this._$mainWrapper);\r\n this._$dialog = (0, _renderer2.default)(\"
\").appendTo(this.$element());\r\n this._$loadPanel = (0, _renderer2.default)(\"
\").appendTo(this.$element());\r\n this._$contextMenu = (0, _renderer2.default)(\"
\").appendTo(this.$element());\r\n this._refreshDataSource(GANTT_TASKS);\r\n this._refreshDataSource(GANTT_DEPENDENCIES);\r\n this._refreshDataSource(GANTT_RESOURCES);\r\n this._refreshDataSource(GANTT_RESOURCE_ASSIGNMENTS)\r\n }\r\n }, {\r\n key: \"_renderContent\",\r\n value: function() {\r\n this._renderBars();\r\n this._renderTreeList();\r\n this._renderSplitter()\r\n }\r\n }, {\r\n key: \"_renderTreeList\",\r\n value: function() {\r\n var _this = this;\r\n var _this$option = this.option(GANTT_TASKS),\r\n keyExpr = _this$option.keyExpr,\r\n parentIdExpr = _this$option.parentIdExpr;\r\n this._treeList = this._createComponent(this._$treeList, _tree_list2.default, {\r\n dataSource: this._tasksRaw,\r\n keyExpr: keyExpr,\r\n parentIdExpr: parentIdExpr,\r\n columns: this.option(\"columns\"),\r\n columnResizingMode: \"nextColumn\",\r\n height: this._$treeList.height() ? this._$treeList.height() : \"100%\",\r\n width: this.option(\"taskListWidth\"),\r\n selection: {\r\n mode: this._getSelectionMode(this.option(\"allowSelection\"))\r\n },\r\n selectedRowKeys: this._getArrayFromOneElement(this.option(\"selectedRowKey\")),\r\n sorting: {\r\n mode: \"none\"\r\n },\r\n scrolling: {\r\n showScrollbar: \"onHover\",\r\n mode: \"virtual\"\r\n },\r\n allowColumnResizing: true,\r\n autoExpandAll: true,\r\n showRowLines: this.option(\"showRowLines\"),\r\n onContentReady: function(e) {\r\n _this._onTreeListContentReady(e)\r\n },\r\n onSelectionChanged: function(e) {\r\n _this._onTreeListSelectionChanged(e)\r\n },\r\n onRowCollapsed: function(e) {\r\n return _this._ganttView.changeTaskExpanded(e.key, false)\r\n },\r\n onRowExpanded: function(e) {\r\n return _this._ganttView.changeTaskExpanded(e.key, true)\r\n },\r\n onRowPrepared: function(e) {\r\n _this._onTreeListRowPrepared(e)\r\n },\r\n onContextMenuPreparing: function(e) {\r\n _this._onTreeListContextMenuPreparing(e)\r\n },\r\n onRowDblClick: function() {\r\n _this._onTreeListRowDblClick()\r\n }\r\n })\r\n }\r\n }, {\r\n key: \"_renderSplitter\",\r\n value: function() {\r\n this._splitter = this._createComponent(this._$splitter, _splitter2.default, {\r\n container: this.$element(),\r\n leftElement: this._$treeListWrapper,\r\n rightElement: this._$ganttView,\r\n onApplyPanelSize: this._onApplyPanelSize.bind(this)\r\n });\r\n this._splitter.option(\"initialLeftPanelWidth\", this.option(\"taskListWidth\"))\r\n }\r\n }, {\r\n key: \"_renderBars\",\r\n value: function() {\r\n this._bars = [];\r\n this._toolbar = new _uiGantt2.GanttToolbar(this._$toolbar, this);\r\n this._updateToolbarContent();\r\n this._bars.push(this._toolbar);\r\n this._contextMenuBar = new _uiGantt2.GanttContextMenuBar(this._$contextMenu, this);\r\n this._bars.push(this._contextMenuBar)\r\n }\r\n }, {\r\n key: \"_initGanttView\",\r\n value: function() {\r\n if (this._ganttView) {\r\n return\r\n }\r\n this._ganttView = this._createComponent(this._$ganttView, _uiGantt.GanttView, {\r\n width: \"100%\",\r\n height: this._treeList._$element.get(0).offsetHeight,\r\n rowHeight: this._getTreeListRowHeight(),\r\n headerHeight: this._getTreeListHeaderHeight(),\r\n tasks: this._tasks,\r\n dependencies: this._dependencies,\r\n resources: this._resources,\r\n resourceAssignments: this._resourceAssignments,\r\n allowSelection: this.option(\"allowSelection\"),\r\n selectedRowKey: this.option(\"selectedRowKey\"),\r\n showResources: this.option(\"showResources\"),\r\n taskTitlePosition: this.option(\"taskTitlePosition\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n showRowLines: this.option(\"showRowLines\"),\r\n scaleType: this.option(\"scaleType\"),\r\n editing: this.option(\"editing\"),\r\n validation: this.option(\"validation\"),\r\n stripLines: this.option(\"stripLines\"),\r\n bars: this._bars,\r\n mainElement: this.$element(),\r\n onSelectionChanged: this._onGanttViewSelectionChanged.bind(this),\r\n onScroll: this._onGanttViewScroll.bind(this),\r\n onDialogShowing: this._showDialog.bind(this),\r\n onPopupMenuShowing: this._showPopupMenu.bind(this),\r\n onExpandAll: this._expandAll.bind(this),\r\n onCollapseAll: this._collapseAll.bind(this),\r\n modelChangesListener: this._createModelChangesListener()\r\n });\r\n this._fireContentReadyAction()\r\n }\r\n }, {\r\n key: \"_onApplyPanelSize\",\r\n value: function(e) {\r\n this._setInnerElementsWidth(e)\r\n }\r\n }, {\r\n key: \"_onTreeListContentReady\",\r\n value: function(e) {\r\n if (e.component.getDataSource()) {\r\n this._initGanttView();\r\n this._initScrollSync(e.component)\r\n }\r\n }\r\n }, {\r\n key: \"_onTreeListRowPrepared\",\r\n value: function(e) {\r\n if (\"data\" === e.rowType && e.node.children.length > 0) {\r\n (0, _renderer2.default)(e.rowElement).addClass(GANTT_COLLAPSABLE_ROW)\r\n }\r\n }\r\n }, {\r\n key: \"_onTreeListContextMenuPreparing\",\r\n value: function(e) {\r\n if (e.row && \"data\" === e.row.rowType) {\r\n this._setTreeListOption(\"selectedRowKeys\", [e.row.data[this.option(\"tasks.keyExpr\")]]);\r\n e.items = [];\r\n this._showPopupMenu({\r\n position: {\r\n x: e.event.pageX,\r\n y: e.event.pageY\r\n }\r\n })\r\n }\r\n }\r\n }, {\r\n key: \"_onTreeListRowDblClick\",\r\n value: function() {\r\n this._ganttView._ganttViewCore.commandManager.showTaskEditDialog.execute()\r\n }\r\n }, {\r\n key: \"_onTreeListSelectionChanged\",\r\n value: function(e) {\r\n var selectedRowKey = e.currentSelectedRowKeys[0];\r\n this._setGanttViewOption(\"selectedRowKey\", selectedRowKey);\r\n this.option(\"selectedRowKey\", selectedRowKey);\r\n this._raiseSelectionChangedAction(selectedRowKey)\r\n }\r\n }, {\r\n key: \"_onGanttViewSelectionChanged\",\r\n value: function(e) {\r\n this._setTreeListOption(\"selectedRowKeys\", this._getArrayFromOneElement(e.id))\r\n }\r\n }, {\r\n key: \"_onGanttViewScroll\",\r\n value: function(e) {\r\n var treeListScrollable = this._treeList.getScrollable();\r\n if (treeListScrollable) {\r\n var diff = e.scrollTop - treeListScrollable.scrollTop();\r\n if (0 !== diff) {\r\n treeListScrollable.scrollBy({\r\n left: 0,\r\n top: diff\r\n })\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"_onTreeListScroll\",\r\n value: function(treeListScrollView) {\r\n var ganttViewTaskAreaContainer = this._ganttView.getTaskAreaContainer();\r\n if (ganttViewTaskAreaContainer.scrollTop !== treeListScrollView.component.scrollTop()) {\r\n ganttViewTaskAreaContainer.scrollTop = treeListScrollView.component.scrollTop()\r\n }\r\n }\r\n }, {\r\n key: \"_expandAll\",\r\n value: function() {\r\n var _this2 = this;\r\n this._treeList.forEachNode(function(node) {\r\n if (node.children && node.children.length) {\r\n _this2._treeList.expandRow(node.key);\r\n _this2._ganttView.changeTaskExpanded(node.key, true)\r\n }\r\n })\r\n }\r\n }, {\r\n key: \"_collapseAll\",\r\n value: function() {\r\n var _this3 = this;\r\n this._treeList.forEachNode(function(node) {\r\n if (node.children && node.children.length) {\r\n _this3._treeList.collapseRow(node.key);\r\n _this3._ganttView.changeTaskExpanded(node.key, false)\r\n }\r\n })\r\n }\r\n }, {\r\n key: \"_initScrollSync\",\r\n value: function(treeList) {\r\n var _this4 = this;\r\n var treeListScrollable = treeList.getScrollable();\r\n if (treeListScrollable) {\r\n treeListScrollable.off(\"scroll\");\r\n treeListScrollable.on(\"scroll\", function(e) {\r\n _this4._onTreeListScroll(e)\r\n })\r\n }\r\n }\r\n }, {\r\n key: \"_getTreeListRowHeight\",\r\n value: function() {\r\n var $row = this._treeList._$element.find(\".dx-data-row\");\r\n var height = $row.length ? (0, _position.getBoundingRect)($row.last().get(0)).height : GANTT_DEFAULT_ROW_HEIGHT;\r\n return height ? height : GANTT_DEFAULT_ROW_HEIGHT\r\n }\r\n }, {\r\n key: \"_getTreeListHeaderHeight\",\r\n value: function() {\r\n return (0, _position.getBoundingRect)(this._treeList._$element.find(\".dx-treelist-headers\").get(0)).height\r\n }\r\n }, {\r\n key: \"_setInnerElementsWidth\",\r\n value: function(widths) {\r\n if (!(0, _window.hasWindow)()) {\r\n return\r\n }\r\n if (!widths) {\r\n widths = this._getPanelsWidthByOption()\r\n }\r\n var leftPanelWidth = widths.leftPanelWidth;\r\n var rightPanelWidth = widths.rightPanelWidth;\r\n this._$treeListWrapper.width(leftPanelWidth);\r\n var isPercentage = _type2.default.isString(leftPanelWidth) && \"%\" === leftPanelWidth.slice(-1);\r\n this._$treeList.width(isPercentage ? \"100%\" : leftPanelWidth);\r\n this._$ganttView.width(rightPanelWidth);\r\n this._setGanttViewOption(\"width\", this._$ganttView.width())\r\n }\r\n }, {\r\n key: \"_getPanelsWidthByOption\",\r\n value: function() {\r\n return {\r\n leftPanelWidth: this.option(\"taskListWidth\"),\r\n rightPanelWidth: this._$element.width() - this.option(\"taskListWidth\")\r\n }\r\n }\r\n }, {\r\n key: \"_setGanttViewOption\",\r\n value: function(optionName, value) {\r\n this._ganttView && this._ganttView.option(optionName, value)\r\n }\r\n }, {\r\n key: \"_setTreeListOption\",\r\n value: function(optionName, value) {\r\n this._treeList && this._treeList.option(optionName, value)\r\n }\r\n }, {\r\n key: \"_refreshDataSource\",\r\n value: function(name) {\r\n var _this5 = this;\r\n var dataOption = this[\"_\".concat(name, \"Option\")];\r\n if (dataOption) {\r\n dataOption._disposeDataSource();\r\n delete this[\"_\".concat(name, \"Option\")];\r\n delete this[\"_\".concat(name)]\r\n }\r\n if (this.option(\"\".concat(name, \".dataSource\"))) {\r\n dataOption = new _uiGanttData2.default(name, this._getLoadPanel(), function(name, data) {\r\n _this5._dataSourceChanged(name, data)\r\n });\r\n dataOption.option(\"dataSource\", this._getSpecificDataSourceOption(name));\r\n dataOption._refreshDataSource();\r\n this[\"_\".concat(name, \"Option\")] = dataOption\r\n }\r\n }\r\n }, {\r\n key: \"_getSpecificDataSourceOption\",\r\n value: function(name) {\r\n var dataSource = this.option(\"\".concat(name, \".dataSource\"));\r\n if (Array.isArray(dataSource)) {\r\n return {\r\n store: {\r\n type: \"array\",\r\n data: dataSource,\r\n key: this.option(\"\".concat(name, \".keyExpr\"))\r\n }\r\n }\r\n }\r\n return dataSource\r\n }\r\n }, {\r\n key: \"_compileGettersByOption\",\r\n value: function(optionName) {\r\n var getters = {};\r\n var optionValue = this.option(optionName);\r\n for (var field in optionValue) {\r\n var exprMatches = field.match(/(\\w*)Expr/);\r\n if (exprMatches) {\r\n getters[exprMatches[1]] = _data2.default.compileGetter(optionValue[exprMatches[0]])\r\n }\r\n }\r\n return getters\r\n }\r\n }, {\r\n key: \"_compileSettersByOption\",\r\n value: function(optionName) {\r\n var setters = {};\r\n var optionValue = this.option(optionName);\r\n for (var field in optionValue) {\r\n var exprMatches = field.match(/(\\w*)Expr/);\r\n if (exprMatches) {\r\n setters[exprMatches[1]] = _data2.default.compileSetter(optionValue[exprMatches[0]])\r\n }\r\n }\r\n return setters\r\n }\r\n }, {\r\n key: \"_getStoreObject\",\r\n value: function(optionName, modelObject) {\r\n var setters = this._compileSettersByOption(optionName);\r\n return Object.keys(setters).reduce(function(previous, key) {\r\n if (\"key\" !== key) {\r\n setters[key](previous, modelObject[key])\r\n }\r\n return previous\r\n }, {})\r\n }\r\n }, {\r\n key: \"_prepareSetterMapHandler\",\r\n value: function(setters) {\r\n return function(data) {\r\n return Object.keys(setters).reduce(function(previous, key) {\r\n var resultKey = \"key\" === key ? \"id\" : key;\r\n setters[key](previous, data[resultKey]);\r\n return previous\r\n }, {})\r\n }\r\n }\r\n }, {\r\n key: \"_prepareMapHandler\",\r\n value: function(getters) {\r\n return function(data) {\r\n return Object.keys(getters).reduce(function(previous, key) {\r\n var resultKey = \"key\" === key ? \"id\" : key;\r\n previous[resultKey] = getters[key](data);\r\n return previous\r\n }, {})\r\n }\r\n }\r\n }, {\r\n key: \"_dataSourceChanged\",\r\n value: function(dataSourceName, data) {\r\n var getters = this._compileGettersByOption(dataSourceName);\r\n var mappedData = data.map(this._prepareMapHandler(getters));\r\n this[\"_\".concat(dataSourceName)] = mappedData;\r\n this._setGanttViewOption(dataSourceName, mappedData);\r\n if (dataSourceName === GANTT_TASKS) {\r\n this._tasksRaw = data;\r\n var expandedRowKeys = data.map(function(t) {\r\n return t.parentId\r\n }).filter(function(value, index, self) {\r\n return value && self.indexOf(value) === index\r\n });\r\n this._setTreeListOption(\"expandedRowKeys\", expandedRowKeys);\r\n this._setTreeListOption(\"dataSource\", data)\r\n }\r\n }\r\n }, {\r\n key: \"_createModelChangesListener\",\r\n value: function() {\r\n var _this6 = this;\r\n return {\r\n NotifyTaskCreated: function(task, callback, errorCallback) {\r\n _this6._onRecordInserted(GANTT_TASKS, task, callback)\r\n },\r\n NotifyTaskRemoved: function(taskId, errorCallback) {\r\n _this6._onRecordRemoved(GANTT_TASKS, taskId)\r\n },\r\n NotifyTaskTitleChanged: function(taskId, newValue, errorCallback) {\r\n _this6._onRecordUpdated(GANTT_TASKS, taskId, \"title\", newValue)\r\n },\r\n NotifyTaskDescriptionChanged: function(taskId, newValue, errorCallback) {\r\n _this6._onRecordUpdated(GANTT_TASKS, taskId, \"description\", newValue)\r\n },\r\n NotifyTaskStartChanged: function(taskId, newValue, errorCallback) {\r\n _this6._onRecordUpdated(GANTT_TASKS, taskId, \"start\", newValue)\r\n },\r\n NotifyTaskEndChanged: function(taskId, newValue, errorCallback) {\r\n _this6._onRecordUpdated(GANTT_TASKS, taskId, \"end\", newValue)\r\n },\r\n NotifyTaskProgressChanged: function(taskId, newValue, errorCallback) {\r\n _this6._onRecordUpdated(GANTT_TASKS, taskId, \"progress\", newValue)\r\n },\r\n NotifyDependencyInserted: function(dependency, callback, errorCallback) {\r\n _this6._onRecordInserted(GANTT_DEPENDENCIES, dependency, callback)\r\n },\r\n NotifyDependencyRemoved: function(dependencyId, errorCallback) {\r\n _this6._onRecordRemoved(GANTT_DEPENDENCIES, dependencyId)\r\n },\r\n NotifyResourceCreated: function(resource, callback, errorCallback) {\r\n _this6._onRecordInserted(GANTT_RESOURCES, resource, callback)\r\n },\r\n NotifyResourceRemoved: function(resource, errorCallback) {\r\n _this6._onRecordRemoved(GANTT_RESOURCES, resource)\r\n },\r\n NotifyResourceAssigned: function(assignment, callback, errorCallback) {\r\n _this6._onRecordInserted(GANTT_RESOURCE_ASSIGNMENTS, assignment, callback)\r\n },\r\n NotifyResourceUnassigned: function(assignmentId, errorCallback) {\r\n _this6._onRecordRemoved(GANTT_RESOURCE_ASSIGNMENTS, assignmentId)\r\n },\r\n NotifyParentDataRecalculated: function(data) {\r\n _this6._onParentTasksRecalculated(data)\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"_onRecordInserted\",\r\n value: function(optionName, record, callback) {\r\n var _this7 = this;\r\n var dataOption = this[\"_\".concat(optionName, \"Option\")];\r\n if (dataOption) {\r\n var data = this._getStoreObject(optionName, record);\r\n dataOption.insert(data, function(response) {\r\n var keyGetter = _data2.default.compileGetter(_this7.option(\"\".concat(optionName, \".keyExpr\")));\r\n var insertedId = keyGetter(response);\r\n callback(insertedId);\r\n if (optionName === GANTT_TASKS) {\r\n _this7._updateTreeListDataSource();\r\n var parentId = record.parentId;\r\n if (void 0 !== parentId) {\r\n var expandedRowKeys = _this7._treeList.option(\"expandedRowKeys\");\r\n if (expandedRowKeys.indexOf(parentId) === -1) {\r\n expandedRowKeys.push(parentId);\r\n _this7._treeList.option(\"expandedRowKeys\", expandedRowKeys)\r\n }\r\n }\r\n _this7._setTreeListOption(\"selectedRowKeys\", _this7._getArrayFromOneElement(insertedId));\r\n _this7._setTreeListOption(\"focusedRowKey\", insertedId)\r\n }\r\n })\r\n }\r\n }\r\n }, {\r\n key: \"_onRecordRemoved\",\r\n value: function(optionName, key) {\r\n var _this8 = this;\r\n var dataOption = this[\"_\".concat(optionName, \"Option\")];\r\n if (dataOption) {\r\n dataOption.remove(key, function() {\r\n if (optionName === GANTT_TASKS) {\r\n _this8._updateTreeListDataSource()\r\n }\r\n })\r\n }\r\n }\r\n }, {\r\n key: \"_onRecordUpdated\",\r\n value: function(optionName, key, fieldName, value) {\r\n var _this9 = this;\r\n var dataOption = this[\"_\".concat(optionName, \"Option\")];\r\n if (dataOption) {\r\n var setter = _data2.default.compileSetter(this.option(\"\".concat(optionName, \".\").concat(fieldName, \"Expr\")));\r\n var data = {};\r\n setter(data, value);\r\n dataOption.update(key, data, function() {\r\n if (optionName === GANTT_TASKS) {\r\n _this9._updateTreeListDataSource()\r\n }\r\n })\r\n }\r\n }\r\n }, {\r\n key: \"_onParentTasksRecalculated\",\r\n value: function(data) {\r\n var setters = this._compileSettersByOption(GANTT_TASKS);\r\n var treeDataSource = this._appendCustomFields(data.map(this._prepareSetterMapHandler(setters)));\r\n this._setTreeListOption(\"dataSource\", treeDataSource)\r\n }\r\n }, {\r\n key: \"_appendCustomFields\",\r\n value: function(data) {\r\n var modelData = this._tasksOption && this._tasksOption._getItems();\r\n var keyGetter = _data2.default.compileGetter(this.option(\"\".concat(GANTT_TASKS, \".keyExpr\")));\r\n return data.reduce(function(previous, item) {\r\n var modelItem = modelData && modelData.filter(function(obj) {\r\n return keyGetter(obj) === keyGetter(item)\r\n })[0];\r\n if (!modelItem) {\r\n previous.push(item)\r\n } else {\r\n var updatedItem = {};\r\n for (var field in modelItem) {\r\n updatedItem[field] = Object.prototype.hasOwnProperty.call(item, field) ? item[field] : modelItem[field]\r\n }\r\n previous.push(updatedItem)\r\n }\r\n return previous\r\n }, [])\r\n }\r\n }, {\r\n key: \"_updateTreeListDataSource\",\r\n value: function() {\r\n if (!this._skipUpdateTreeListDataSource()) {\r\n var dataSource = this.option(\"tasks.dataSource\");\r\n var storeArray = this._tasksOption._getStore()._array || dataSource.items && dataSource.items();\r\n this._setTreeListOption(\"dataSource\", storeArray ? storeArray : dataSource)\r\n }\r\n }\r\n }, {\r\n key: \"_skipUpdateTreeListDataSource\",\r\n value: function() {\r\n return this.option(\"validation.autoUpdateParentTasks\")\r\n }\r\n }, {\r\n key: \"_getLoadPanel\",\r\n value: function() {\r\n if (!this._loadPanel) {\r\n this._loadPanel = this._createComponent(this._$loadPanel, _load_panel2.default, {\r\n position: {\r\n of: this.$element()\r\n }\r\n })\r\n }\r\n return this._loadPanel\r\n }\r\n }, {\r\n key: \"_createSelectionChangedAction\",\r\n value: function() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\")\r\n }\r\n }, {\r\n key: \"_raiseSelectionChangedAction\",\r\n value: function(selectedRowKey) {\r\n if (!this._selectionChangedAction) {\r\n this._createSelectionChangedAction()\r\n }\r\n this._selectionChangedAction({\r\n selectedRowKey: selectedRowKey\r\n })\r\n }\r\n }, {\r\n key: \"_getSelectionMode\",\r\n value: function(allowSelection) {\r\n return allowSelection ? \"single\" : \"none\"\r\n }\r\n }, {\r\n key: \"_getArrayFromOneElement\",\r\n value: function(element) {\r\n return void 0 === element || null === element ? [] : [element]\r\n }\r\n }, {\r\n key: \"_getToolbarItems\",\r\n value: function() {\r\n var items = this.option(\"toolbar.items\");\r\n return items ? items : []\r\n }\r\n }, {\r\n key: \"_updateToolbarContent\",\r\n value: function() {\r\n var items = this._getToolbarItems();\r\n if (items.length) {\r\n this._$toolbarWrapper.show()\r\n } else {\r\n this._$toolbarWrapper.hide()\r\n }\r\n this._toolbar && this._toolbar.createItems(items);\r\n this._updateBarItemsState()\r\n }\r\n }, {\r\n key: \"_updateBarItemsState\",\r\n value: function() {\r\n this._ganttView && this._ganttView.updateBarItemsState()\r\n }\r\n }, {\r\n key: \"_showDialog\",\r\n value: function(e) {\r\n if (!this._dialogInstance) {\r\n this._dialogInstance = new _uiGantt3.GanttDialog(this, this._$dialog)\r\n }\r\n this._dialogInstance.show(e.name, e.parameters, e.callback, e.afterClosing, this.option(\"editing\"))\r\n }\r\n }, {\r\n key: \"_showPopupMenu\",\r\n value: function(e) {\r\n this._ganttView.getBarManager().updateContextMenu();\r\n this._contextMenuBar.show(e.position)\r\n }\r\n }, {\r\n key: \"_executeCoreCommand\",\r\n value: function(id) {\r\n this._ganttView.executeCoreCommand(id)\r\n }\r\n }, {\r\n key: \"_clean\",\r\n value: function() {\r\n delete this._ganttView;\r\n delete this._dialogInstance;\r\n _get(_getPrototypeOf(Gantt.prototype), \"_clean\", this).call(this)\r\n }\r\n }, {\r\n key: \"_getDefaultOptions\",\r\n value: function() {\r\n return (0, _extend.extend)(_get(_getPrototypeOf(Gantt.prototype), \"_getDefaultOptions\", this).call(this), {\r\n tasks: {\r\n dataSource: null,\r\n keyExpr: \"id\",\r\n parentIdExpr: \"parentId\",\r\n startExpr: \"start\",\r\n endExpr: \"end\",\r\n progressExpr: \"progress\",\r\n titleExpr: \"title\",\r\n colorExpr: \"color\"\r\n },\r\n dependencies: {\r\n dataSource: null,\r\n keyExpr: \"id\",\r\n predecessorIdExpr: \"predecessorId\",\r\n successorIdExpr: \"successorId\",\r\n typeExpr: \"type\"\r\n },\r\n resources: {\r\n dataSource: null,\r\n keyExpr: \"id\",\r\n textExpr: \"text\",\r\n colorExpr: \"color\"\r\n },\r\n resourceAssignments: {\r\n dataSource: null,\r\n keyExpr: \"id\",\r\n taskIdExpr: \"taskId\",\r\n resourceIdExpr: \"resourceId\"\r\n },\r\n columns: void 0,\r\n taskListWidth: 300,\r\n showResources: true,\r\n taskTitlePosition: \"inside\",\r\n firstDayOfWeek: void 0,\r\n selectedRowKey: void 0,\r\n onSelectionChanged: null,\r\n allowSelection: true,\r\n showRowLines: true,\r\n stripLines: void 0,\r\n scaleType: \"auto\",\r\n editing: {\r\n enabled: false,\r\n allowTaskAdding: true,\r\n allowTaskDeleting: true,\r\n allowTaskUpdating: true,\r\n allowDependencyAdding: true,\r\n allowDependencyDeleting: true,\r\n allowResourceAdding: true,\r\n allowResourceDeleting: true,\r\n allowResourceUpdating: true\r\n },\r\n validation: {\r\n validateDependencies: false,\r\n autoUpdateParentTasks: false\r\n },\r\n toolbar: null\r\n })\r\n }\r\n }, {\r\n key: \"_optionChanged\",\r\n value: function(args) {\r\n switch (args.name) {\r\n case \"tasks\":\r\n this._refreshDataSource(GANTT_TASKS);\r\n break;\r\n case \"dependencies\":\r\n this._refreshDataSource(GANTT_DEPENDENCIES);\r\n break;\r\n case \"resources\":\r\n this._refreshDataSource(GANTT_RESOURCES);\r\n break;\r\n case \"resourceAssignments\":\r\n this._refreshDataSource(GANTT_RESOURCE_ASSIGNMENTS);\r\n break;\r\n case \"columns\":\r\n this._setTreeListOption(\"columns\", this.option(args.name));\r\n break;\r\n case \"taskListWidth\":\r\n this._setInnerElementsWidth();\r\n break;\r\n case \"showResources\":\r\n this._setGanttViewOption(\"showResources\", args.value);\r\n break;\r\n case \"taskTitlePosition\":\r\n this._setGanttViewOption(\"taskTitlePosition\", args.value);\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._setGanttViewOption(\"firstDayOfWeek\", args.value);\r\n break;\r\n case \"selectedRowKey\":\r\n this._setTreeListOption(\"selectedRowKeys\", this._getArrayFromOneElement(args.value));\r\n break;\r\n case \"onSelectionChanged\":\r\n this._createSelectionChangedAction();\r\n break;\r\n case \"allowSelection\":\r\n this._setTreeListOption(\"selection.mode\", this._getSelectionMode(args.value));\r\n this._setGanttViewOption(\"allowSelection\", args.value);\r\n break;\r\n case \"showRowLines\":\r\n this._setTreeListOption(\"showRowLines\", args.value);\r\n this._setGanttViewOption(\"showRowLines\", args.value);\r\n break;\r\n case \"stripLines\":\r\n this._setGanttViewOption(\"stripLines\", args.value);\r\n break;\r\n case \"scaleType\":\r\n this._setGanttViewOption(\"scaleType\", args.value);\r\n break;\r\n case \"editing\":\r\n this._setGanttViewOption(\"editing\", this.option(args.name));\r\n break;\r\n case \"validation\":\r\n this._setGanttViewOption(\"validation\", this.option(args.name));\r\n break;\r\n case \"toolbar\":\r\n this._updateToolbarContent();\r\n break;\r\n default:\r\n _get(_getPrototypeOf(Gantt.prototype), \"_optionChanged\", this).call(this, args)\r\n }\r\n }\r\n }]);\r\n return Gantt\r\n}(_ui2.default);\r\n(0, _component_registrator2.default)(\"dxGantt\", Gantt);\r\nmodule.exports = Gantt;\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.focus.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.focus\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction findIndex(items, callback) {\r\n var result = -1;\r\n items.forEach(function(node, index) {\r\n if (callback(node)) {\r\n result = index\r\n }\r\n });\r\n return result\r\n}\r\n_uiTree_list2.default.registerModule(\"focus\", (0, _extend.extend)(true, {}, _uiGrid_core2.default, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n changeRowExpand: function(key) {\r\n if (this.option(\"focusedRowEnabled\") && this.isRowExpanded(key)) {\r\n if (this._isFocusedRowInside(key)) {\r\n this.option(\"focusedRowKey\", key)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isFocusedRowInside: function(parentKey) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this.getRowIndexByKey(focusedRowKey);\r\n var focusedRow = rowIndex >= 0 && this.getVisibleRows()[rowIndex];\r\n var parent = focusedRow && focusedRow.node.parent;\r\n while (parent) {\r\n if (parent.key === parentKey) {\r\n return true\r\n }\r\n parent = parent.parent\r\n }\r\n return false\r\n },\r\n getParentKey: function(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var node = that.getNodeByKey(key);\r\n var d = new _deferred.Deferred;\r\n if (node) {\r\n d.resolve(node.parent ? node.parent.key : void 0)\r\n } else {\r\n dataSource.load({\r\n filter: [dataSource.getKeyExpr(), \"=\", key]\r\n }).done(function(items) {\r\n var parentData = items[0];\r\n if (parentData) {\r\n d.resolve(dataSource.parentKeyOf(parentData))\r\n } else {\r\n d.reject()\r\n }\r\n }).fail(d.reject)\r\n }\r\n return d.promise()\r\n },\r\n expandAscendants: function(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new _deferred.Deferred;\r\n that.getParentKey(key).done(function(parentKey) {\r\n if (dataSource && void 0 !== parentKey && parentKey !== that.option(\"rootValue\")) {\r\n dataSource._isNodesInitializing = true;\r\n that.expandRow(parentKey);\r\n dataSource._isNodesInitializing = false;\r\n that.expandAscendants(parentKey).done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve()\r\n }\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n getPageIndexByKey: function(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new _deferred.Deferred;\r\n that.expandAscendants(key).done(function() {\r\n dataSource.load({\r\n filter: that.getCombinedFilter(),\r\n sort: that.getController(\"columns\").getSortDataSourceParameters(!dataSource.remoteOperations().sorting),\r\n parentIds: []\r\n }).done(function(nodes) {\r\n var offset = findIndex(nodes, function(node) {\r\n return that.keyOf(node.data) === key\r\n });\r\n var pageIndex = that.pageIndex();\r\n if (offset >= 0) {\r\n pageIndex = Math.floor(offset / that.pageSize())\r\n }\r\n d.resolve(pageIndex)\r\n }).fail(d.reject)\r\n }).fail(d.reject);\r\n return d.promise()\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.keyboard_navigation.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.keyboard_navigation\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"keyboardNavigation\", (0, _extend.extend)(true, {}, _uiGrid_core2.default, {\r\n extenders: {\r\n controllers: {\r\n keyboardNavigation: {\r\n _leftRightKeysHandler: function(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var dataController = this._dataController;\r\n if (eventArgs.ctrl) {\r\n var directionCode = this._getDirectionCodeByKey(eventArgs.keyName);\r\n var key = dataController.getKeyByRowIndex(rowIndex);\r\n if (\"nextInRow\" === directionCode) {\r\n dataController.expandRow(key)\r\n } else {\r\n dataController.collapseRow(key)\r\n }\r\n } else {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/gantt/ui.gantt.data.option.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _component = require(\"../../core/component\");\r\nvar _component2 = _interopRequireDefault(_component);\r\nvar _data_helper = require(\"../../data_helper\");\r\nvar _data_helper2 = _interopRequireDefault(_data_helper);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\r\n }\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\n\r\nfunction _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar DataOption = function(_Component) {\r\n _inherits(DataOption, _Component);\r\n var _super = _createSuper(DataOption);\r\n\r\n function DataOption(optionName, loadPanel, dataSourceChangedCallback) {\r\n var _this;\r\n _classCallCheck(this, DataOption);\r\n _this = _super.call(this);\r\n _this._optionName = optionName;\r\n _this._loadPanel = loadPanel;\r\n _this._dataSourceChangedCallback = dataSourceChangedCallback;\r\n return _this\r\n }\r\n _createClass(DataOption, [{\r\n key: \"insert\",\r\n value: function(data, callback, errorCallback) {\r\n var _this2 = this;\r\n this._showLoadPanel();\r\n this._getStore().insert(data).done(function(response) {\r\n if (callback) {\r\n callback(response)\r\n }\r\n _this2._hideLoadPanel()\r\n }).fail(function(error) {\r\n if (errorCallback) {\r\n errorCallback(error)\r\n }\r\n _this2._hideLoadPanel()\r\n })\r\n }\r\n }, {\r\n key: \"update\",\r\n value: function(key, data, callback, errorCallback) {\r\n var _this3 = this;\r\n this._showLoadPanel();\r\n this._getStore().update(key, data).done(function(data, key) {\r\n if (callback) {\r\n callback(data, key)\r\n }\r\n _this3._hideLoadPanel()\r\n }).fail(function(error) {\r\n if (errorCallback) {\r\n errorCallback(error)\r\n }\r\n _this3._hideLoadPanel()\r\n })\r\n }\r\n }, {\r\n key: \"remove\",\r\n value: function(key, callback, errorCallback) {\r\n var _this4 = this;\r\n this._showLoadPanel();\r\n this._getStore().remove(key).done(function(key) {\r\n if (callback) {\r\n callback(key)\r\n }\r\n _this4._hideLoadPanel()\r\n }).fail(function(error) {\r\n if (errorCallback) {\r\n errorCallback(error)\r\n }\r\n _this4._hideLoadPanel()\r\n })\r\n }\r\n }, {\r\n key: \"_dataSourceChangedHandler\",\r\n value: function(newItems, e) {\r\n this._dataSourceChangedCallback(this._optionName, newItems)\r\n }\r\n }, {\r\n key: \"_dataSourceOptions\",\r\n value: function() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n }, {\r\n key: \"_dataSourceLoadingChangedHandler\",\r\n value: function(isLoading) {\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this._showLoadPanel()\r\n } else {\r\n this._hideLoadPanel()\r\n }\r\n }\r\n }, {\r\n key: \"_showLoadPanel\",\r\n value: function() {\r\n this._loadPanel.show()\r\n }\r\n }, {\r\n key: \"_hideLoadPanel\",\r\n value: function() {\r\n this._loadPanel.hide()\r\n }\r\n }, {\r\n key: \"_getStore\",\r\n value: function() {\r\n return this._dataSource.store()\r\n }\r\n }, {\r\n key: \"_getItems\",\r\n value: function() {\r\n return this._getStore()._array || this._dataSource.items()\r\n }\r\n }]);\r\n return DataOption\r\n}(_component2.default);\r\nDataOption.include(_data_helper2.default);\r\nmodule.exports = DataOption;\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.pager.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.pager\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"pager\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.column_fixing.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.column_fixing\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"columnFixing\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.grid_view.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.grid_view\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar GridView = _uiGrid_core2.default.views.gridView.inherit(function() {\r\n return {\r\n _getWidgetAriaLabel: function() {\r\n return \"dxTreeList-ariaTreeList\"\r\n },\r\n _getTableRoleName: function() {\r\n return \"treegrid\"\r\n }\r\n }\r\n}());\r\n_uiTree_list2.default.registerModule(\"gridView\", {\r\n defaultOptions: _uiGrid_core2.default.defaultOptions,\r\n controllers: _uiGrid_core2.default.controllers,\r\n views: {\r\n gridView: GridView\r\n },\r\n extenders: {\r\n controllers: {\r\n resizing: {\r\n _toggleBestFitMode: function(isBestFit) {\r\n this.callBase(isBestFit);\r\n if (!this.option(\"legacyRendering\")) {\r\n var $rowsTable = this._rowsView._getTableElement();\r\n $rowsTable.find(\".dx-treelist-cell-expandable\").toggleClass(this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.header_panel.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.header_panel\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"headerPanel\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.rows.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.rows\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TREELIST_TEXT_CONTENT = \"dx-treelist-text-content\";\r\nvar TREELIST_EXPAND_ICON_CONTAINER_CLASS = \"dx-treelist-icon-container\";\r\nvar TREELIST_CELL_EXPANDABLE_CLASS = \"dx-treelist-cell-expandable\";\r\nvar TREELIST_EMPTY_SPACE = \"dx-treelist-empty-space\";\r\nvar TREELIST_EXPANDED_CLASS = \"dx-treelist-expanded\";\r\nvar TREELIST_COLLAPSED_CLASS = \"dx-treelist-collapsed\";\r\nexports.RowsView = _uiGrid_core2.default.views.rowsView.inherit(function() {\r\n var createCellContent = function($container) {\r\n return (0, _renderer2.default)(\"
\").addClass(TREELIST_TEXT_CONTENT).appendTo($container)\r\n };\r\n var createIcon = function(hasIcon, isExpanded) {\r\n var $iconElement = (0, _renderer2.default)(\"
\").addClass(TREELIST_EMPTY_SPACE);\r\n if (hasIcon) {\r\n $iconElement.toggleClass(TREELIST_EXPANDED_CLASS, isExpanded).toggleClass(TREELIST_COLLAPSED_CLASS, !isExpanded).append((0, _renderer2.default)(\"\"))\r\n }\r\n return $iconElement\r\n };\r\n return {\r\n _renderIconContainer: function($container, options) {\r\n var _this = this;\r\n var $iconContainer = (0, _renderer2.default)(\"
\").addClass(TREELIST_EXPAND_ICON_CONTAINER_CLASS).appendTo($container);\r\n options.watch && options.watch(function() {\r\n return [options.row.level, options.row.isExpanded, options.row.node.hasChildren]\r\n }, function() {\r\n $iconContainer.empty();\r\n _this._renderIcons($iconContainer, options)\r\n });\r\n $container.addClass(TREELIST_CELL_EXPANDABLE_CLASS);\r\n return this._renderIcons($iconContainer, options)\r\n },\r\n _renderIcons: function($iconContainer, options) {\r\n var row = options.row;\r\n var level = row.level;\r\n for (var i = 0; i <= level; i++) {\r\n $iconContainer.append(createIcon(i === level && row.node.hasChildren, row.isExpanded))\r\n }\r\n return $iconContainer\r\n },\r\n _renderCellCommandContent: function(container, model) {\r\n this._renderIconContainer(container, model);\r\n return true\r\n },\r\n _processTemplate: function(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var renderingTemplate = this.callBase(template);\r\n var firstDataColumnIndex = that._columnsController.getFirstDataColumnIndex();\r\n if (renderingTemplate && options.column.index === firstDataColumnIndex) {\r\n resultTemplate = {\r\n render: function(options) {\r\n var $container = options.container;\r\n if (that._renderCellCommandContent($container, options.model)) {\r\n options.container = createCellContent($container)\r\n }\r\n renderingTemplate.render(options)\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n _updateCell: function($cell, options) {\r\n $cell = $cell.hasClass(TREELIST_TEXT_CONTENT) ? $cell.parent() : $cell;\r\n this.callBase($cell, options)\r\n },\r\n _rowClick: function(e) {\r\n var dataController = this._dataController;\r\n var $targetElement = (0, _renderer2.default)(e.event.target);\r\n var isExpandIcon = this.isExpandIcon($targetElement);\r\n var item = dataController && dataController.items()[e.rowIndex];\r\n if (isExpandIcon && item) {\r\n dataController.changeRowExpand(item.key)\r\n }\r\n this.callBase(e)\r\n },\r\n _createRow: function(row) {\r\n var node = row && row.node;\r\n var $rowElement = this.callBase.apply(this, arguments);\r\n if (node) {\r\n this.setAria(\"level\", row.level, $rowElement);\r\n if (node.hasChildren) {\r\n this.setAria(\"expanded\", row.isExpanded, $rowElement)\r\n }\r\n }\r\n return $rowElement\r\n },\r\n isExpandIcon: function($targetElement) {\r\n return !!$targetElement.closest(\".\" + TREELIST_EXPANDED_CLASS + \", .\" + TREELIST_COLLAPSED_CLASS).length\r\n }\r\n }\r\n}());\r\n_uiTree_list2.default.registerModule(\"rows\", {\r\n defaultOptions: _uiGrid_core2.default.defaultOptions,\r\n views: {\r\n rowsView: exports.RowsView\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/gantt/ui.gantt.task.area.container.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.TaskAreaContainer = void 0;\r\nvar _scroll_view = require(\"../scroll_view\");\r\nvar _scroll_view2 = _interopRequireDefault(_scroll_view);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\r\n }\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\nvar TaskAreaContainer = exports.TaskAreaContainer = function() {\r\n function TaskAreaContainer(element, ganttViewWidget) {\r\n _classCallCheck(this, TaskAreaContainer);\r\n this._element = element;\r\n this._scrollView = ganttViewWidget._createComponent(this._element, _scroll_view2.default, {\r\n scrollByContent: false,\r\n scrollByThumb: true,\r\n showScrollbar: \"onHover\",\r\n direction: \"both\",\r\n onScroll: function() {\r\n ganttViewWidget.updateView()\r\n }\r\n })\r\n }\r\n _createClass(TaskAreaContainer, [{\r\n key: \"getWidth\",\r\n value: function() {\r\n return this._element.offsetWidth\r\n }\r\n }, {\r\n key: \"getHeight\",\r\n value: function() {\r\n return this._element.offsetHeight\r\n }\r\n }, {\r\n key: \"getElement\",\r\n value: function() {\r\n return this._element\r\n }\r\n }, {\r\n key: \"scrollTop\",\r\n get: function() {\r\n return this._scrollView.scrollTop()\r\n },\r\n set: function(value) {\r\n var diff = value - this._scrollView.scrollTop();\r\n if (0 !== diff) {\r\n this._scrollView.scrollBy({\r\n left: 0,\r\n top: diff\r\n })\r\n }\r\n }\r\n }, {\r\n key: \"scrollLeft\",\r\n get: function() {\r\n return this._scrollView.scrollLeft()\r\n },\r\n set: function(value) {\r\n var diff = value - this._scrollView.scrollLeft();\r\n if (0 !== diff) {\r\n this._scrollView.scrollBy({\r\n left: diff,\r\n top: 0\r\n })\r\n }\r\n }\r\n }, {\r\n key: \"scrollWidth\",\r\n get: function() {\r\n return this._scrollView.scrollWidth()\r\n }\r\n }, {\r\n key: \"scrollHeight\",\r\n get: function() {\r\n return this._scrollView.scrollHeight()\r\n }\r\n }, {\r\n key: \"isExternal\",\r\n get: function() {\r\n return true\r\n }\r\n }]);\r\n return TaskAreaContainer\r\n}();\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.master_detail.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.master_detail\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"masterDetail\", (0, _extend.extend)(true, {}, _uiGrid_core2.default, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n isRowExpanded: function() {\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _processItems: function() {\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _processDataItem: function() {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/gantt/gantt_importer.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar Errors = require(\"../widget/ui.errors\");\r\nvar Gantt = require(\"devexpress-gantt\");\r\n\r\nfunction getGanttViewCore() {\r\n if (!Gantt) {\r\n throw Errors.Error(\"E1041\", \"devexpress-gantt\")\r\n }\r\n return Gantt\r\n}\r\nmodule.exports.getGanttViewCore = getGanttViewCore;\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.virtual_columns.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.virtual_columns\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"virtualColumns\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.filter_builder.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.filter_builder\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"filterBuilder\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.selection.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.selection\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\nvar _ui = require(\"../widget/ui.errors\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TREELIST_SELECT_ALL_CLASS = \"dx-treelist-select-all\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar originalRowClick = _uiGrid_core2.default.extenders.views.rowsView._rowClick;\r\nvar originalHandleDataChanged = _uiGrid_core2.default.extenders.controllers.data._handleDataChanged;\r\nvar nodeExists = function(array, currentKey) {\r\n return !!array.filter(function(key) {\r\n return key === currentKey\r\n }).length\r\n};\r\n_uiTree_list2.default.registerModule(\"selection\", (0, _extend.extend)(true, {}, _uiGrid_core2.default, {\r\n defaultOptions: function() {\r\n return (0, _extend.extend)(true, _uiGrid_core2.default.defaultOptions(), {\r\n selection: {\r\n showCheckBoxesMode: \"always\",\r\n recursive: false\r\n }\r\n })\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n _handleDataChanged: function(e) {\r\n var selectionController = this.getController(\"selection\");\r\n var isRecursiveSelection = selectionController.isRecursiveSelection();\r\n if (isRecursiveSelection && (!e || \"updateSelectionState\" !== e.changeType)) {\r\n selectionController.updateSelectionState({\r\n selectedItemKeys: this.option(\"selectedRowKeys\")\r\n })\r\n }\r\n originalHandleDataChanged.apply(this, arguments)\r\n },\r\n loadDescendants: function() {\r\n var that = this;\r\n var d = that.callBase.apply(that, arguments);\r\n var selectionController = that.getController(\"selection\");\r\n var isRecursiveSelection = selectionController.isRecursiveSelection();\r\n if (isRecursiveSelection) {\r\n d.done(function() {\r\n selectionController.updateSelectionState({\r\n selectedItemKeys: that.option(\"selectedRowKeys\")\r\n })\r\n })\r\n }\r\n return d\r\n }\r\n },\r\n selection: {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._selectionStateByKey = {}\r\n },\r\n _getSelectionConfig: function() {\r\n var _arguments = arguments,\r\n _this = this;\r\n var config = this.callBase.apply(this, arguments);\r\n var plainItems = config.plainItems;\r\n config.plainItems = function(all) {\r\n if (all) {\r\n return _this._dataController.getCachedStoreData() || []\r\n }\r\n return plainItems.apply(_this, _arguments).map(function(item) {\r\n return item.data\r\n })\r\n };\r\n config.isItemSelected = function(item) {\r\n var key = _this._dataController.keyOf(item);\r\n return _this.isRowSelected(key)\r\n };\r\n config.isSelectableItem = function() {\r\n return true\r\n };\r\n config.getItemData = function(item) {\r\n return item\r\n };\r\n return config\r\n },\r\n renderSelectCheckBoxContainer: function($container, model) {\r\n var that = this;\r\n var rowsView = that.component.getView(\"rowsView\");\r\n $container.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n var $checkbox = rowsView._renderSelectCheckBox($container, {\r\n value: model.row.isSelected,\r\n row: model.row,\r\n column: model.column\r\n });\r\n rowsView._attachCheckBoxClickEvent($checkbox)\r\n },\r\n _updateSelectColumn: _common.noop,\r\n _getSelectAllNodeKeys: function() {\r\n var component = this.component;\r\n var root = component.getRootNode();\r\n var cache = {};\r\n var keys = [];\r\n var isRecursiveSelection = this.isRecursiveSelection();\r\n root && _uiTree_list2.default.foreachNodes(root.children, function(node) {\r\n if (void 0 !== node.key && (node.visible || isRecursiveSelection)) {\r\n keys.push(node.key)\r\n }\r\n if (!node.visible) {\r\n return true\r\n }\r\n return isRecursiveSelection ? false : component.isRowExpanded(node.key, cache)\r\n });\r\n return keys\r\n },\r\n isSelectAll: function() {\r\n var component = this.component;\r\n var visibleKeys = this._getSelectAllNodeKeys();\r\n var selectedVisibleKeys = visibleKeys.filter(function(key) {\r\n return component.isRowSelected(key)\r\n });\r\n if (!selectedVisibleKeys.length) {\r\n var hasIndeterminateState = visibleKeys.some(function(key) {\r\n return void 0 === component.isRowSelected(key)\r\n });\r\n return hasIndeterminateState ? void 0 : false\r\n } else {\r\n if (selectedVisibleKeys.length === visibleKeys.length) {\r\n return true\r\n }\r\n }\r\n },\r\n selectAll: function() {\r\n var that = this;\r\n var visibleKeys = that._getSelectAllNodeKeys().filter(function(key) {\r\n return !that.isRowSelected(key)\r\n });\r\n return that.selectRows(visibleKeys, true)\r\n },\r\n deselectAll: function() {\r\n var visibleKeys = this._getSelectAllNodeKeys();\r\n return this.deselectRows(visibleKeys)\r\n },\r\n selectedItemKeys: function(value, preserve, isDeselect, isSelectAll) {\r\n var that = this;\r\n var selectedRowKeys = that.option(\"selectedRowKeys\");\r\n var isRecursiveSelection = this.isRecursiveSelection();\r\n var normalizedArgs = isRecursiveSelection && that._normalizeSelectionArgs({\r\n keys: value || []\r\n }, !isDeselect);\r\n if (normalizedArgs && !(0, _common.equalByValue)(normalizedArgs.selectedRowKeys, selectedRowKeys)) {\r\n that._isSelectionNormalizing = true;\r\n return this.callBase(normalizedArgs.selectedRowKeys, false, false, false).always(function() {\r\n that._isSelectionNormalizing = false\r\n }).done(function(items) {\r\n normalizedArgs.selectedRowsData = items;\r\n that._fireSelectionChanged(normalizedArgs)\r\n })\r\n }\r\n return this.callBase(value, preserve, isDeselect, isSelectAll)\r\n },\r\n changeItemSelection: function(itemIndex, keyboardKeys) {\r\n var isRecursiveSelection = this.isRecursiveSelection();\r\n if (isRecursiveSelection && !keyboardKeys.shift) {\r\n var key = this._dataController.getKeyByRowIndex(itemIndex);\r\n return this.selectedItemKeys(key, true, this.isRowSelected(key))\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateParentSelectionState: function(node, isSelected) {\r\n var that = this;\r\n var state = isSelected;\r\n var parentNode = node.parent;\r\n if (parentNode) {\r\n if (parentNode.children.length > 1) {\r\n if (false === isSelected) {\r\n var hasSelectedState = parentNode.children.some(function(childNode, index, children) {\r\n return that._selectionStateByKey[childNode.key]\r\n });\r\n state = hasSelectedState ? void 0 : false\r\n } else {\r\n if (true === isSelected) {\r\n var hasNonSelectedState = parentNode.children.some(function(childNode) {\r\n return !that._selectionStateByKey[childNode.key]\r\n });\r\n state = hasNonSelectedState ? void 0 : true\r\n }\r\n }\r\n }\r\n this._selectionStateByKey[parentNode.key] = state;\r\n if (parentNode.parent && parentNode.parent.level >= 0) {\r\n this._updateParentSelectionState(parentNode, state)\r\n }\r\n }\r\n },\r\n _updateChildrenSelectionState: function(node, isSelected) {\r\n var that = this;\r\n var children = node.children;\r\n children && children.forEach(function(childNode) {\r\n that._selectionStateByKey[childNode.key] = isSelected;\r\n if (childNode.children.length > 0) {\r\n that._updateChildrenSelectionState(childNode, isSelected)\r\n }\r\n })\r\n },\r\n _updateSelectionStateCore: function(keys, isSelected) {\r\n var dataController = this._dataController;\r\n for (var i = 0; i < keys.length; i++) {\r\n this._selectionStateByKey[keys[i]] = isSelected;\r\n var node = dataController.getNodeByKey(keys[i]);\r\n if (node) {\r\n this._updateParentSelectionState(node, isSelected);\r\n this._updateChildrenSelectionState(node, isSelected)\r\n }\r\n }\r\n },\r\n _getSelectedParentKeys: function(key, selectedItemKeys, useCash) {\r\n var selectedParentNode;\r\n var node = this._dataController.getNodeByKey(key);\r\n var parentNode = node && node.parent;\r\n var result = [];\r\n while (parentNode && parentNode.level >= 0) {\r\n result.unshift(parentNode.key);\r\n var isSelected = useCash ? !nodeExists(selectedItemKeys, parentNode.key) && this.isRowSelected(parentNode.key) : selectedItemKeys.indexOf(parentNode.key) >= 0;\r\n if (isSelected) {\r\n selectedParentNode = parentNode;\r\n result = this._getSelectedParentKeys(selectedParentNode.key, selectedItemKeys, useCash).concat(result);\r\n break\r\n } else {\r\n if (useCash) {\r\n break\r\n }\r\n }\r\n parentNode = parentNode.parent\r\n }\r\n return selectedParentNode && result || []\r\n },\r\n _getSelectedChildKeys: function(node, keysToIgnore) {\r\n var that = this;\r\n var childKeys = [];\r\n node && _uiTree_list2.default.foreachNodes(node.children, function(childNode) {\r\n var ignoreKeyIndex = keysToIgnore.indexOf(childNode.key);\r\n if (ignoreKeyIndex < 0) {\r\n childKeys.push(childNode.key)\r\n }\r\n return ignoreKeyIndex > 0 || ignoreKeyIndex < 0 && void 0 === that._selectionStateByKey[childNode.key]\r\n });\r\n return childKeys\r\n },\r\n _normalizeParentKeys: function(key, args) {\r\n var that = this;\r\n var keysToIgnore = [key];\r\n var parentNodeKeys = that._getSelectedParentKeys(key, args.selectedRowKeys);\r\n if (parentNodeKeys.length) {\r\n keysToIgnore = keysToIgnore.concat(parentNodeKeys);\r\n keysToIgnore.forEach(function(key) {\r\n var index = args.selectedRowKeys.indexOf(key);\r\n if (index >= 0) {\r\n args.selectedRowKeys.splice(index, 1)\r\n }\r\n });\r\n var parentNode = that._dataController.getNodeByKey(parentNodeKeys[0]);\r\n var childKeys = that._getSelectedChildKeys(parentNode, keysToIgnore);\r\n args.selectedRowKeys = args.selectedRowKeys.concat(childKeys)\r\n }\r\n },\r\n _normalizeChildrenKeys: function(key, args) {\r\n var that = this;\r\n var node = that._dataController.getNodeByKey(key);\r\n node && node.children.forEach(function(childNode) {\r\n var index = args.selectedRowKeys.indexOf(childNode.key);\r\n if (index >= 0) {\r\n args.selectedRowKeys.splice(index, 1)\r\n }\r\n that._normalizeChildrenKeys(childNode.key, args)\r\n })\r\n },\r\n _normalizeSelectedRowKeysCore: function(keys, args, isSelect) {\r\n var that = this;\r\n keys.forEach(function(key) {\r\n if (that.isRowSelected(key) === isSelect) {\r\n return\r\n }\r\n that._normalizeChildrenKeys(key, args);\r\n var index = args.selectedRowKeys.indexOf(key);\r\n if (isSelect) {\r\n if (index < 0) {\r\n args.selectedRowKeys.push(key)\r\n }\r\n args.currentSelectedRowKeys.push(key)\r\n } else {\r\n if (index >= 0) {\r\n args.selectedRowKeys.splice(index, 1)\r\n }\r\n args.currentDeselectedRowKeys.push(key);\r\n that._normalizeParentKeys(key, args)\r\n }\r\n })\r\n },\r\n _normalizeSelectionArgs: function(args, isSelect) {\r\n var result;\r\n var keys = Array.isArray(args.keys) ? args.keys : [args.keys];\r\n var selectedRowKeys = this.option(\"selectedRowKeys\") || [];\r\n if (keys.length) {\r\n result = {\r\n currentSelectedRowKeys: [],\r\n currentDeselectedRowKeys: [],\r\n selectedRowKeys: selectedRowKeys.slice(0)\r\n };\r\n this._normalizeSelectedRowKeysCore(keys, result, isSelect)\r\n }\r\n return result\r\n },\r\n _updateSelectedItems: function(args) {\r\n this.updateSelectionState(args);\r\n this.callBase(args)\r\n },\r\n _fireSelectionChanged: function() {\r\n if (!this._isSelectionNormalizing) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _isModeLeavesOnly: function(mode) {\r\n return \"leavesOnly\" === mode || true === mode\r\n },\r\n _getAllSelectedRowKeys: function(parentKeys) {\r\n var that = this;\r\n var result = [];\r\n parentKeys.forEach(function(key) {\r\n var insertIndex = result.length;\r\n var parentKeys = that._getSelectedParentKeys(key, result, true);\r\n var childKeys = that._dataController.getChildNodeKeys(key);\r\n result.splice.apply(result, [insertIndex, 0].concat(parentKeys));\r\n result.push(key);\r\n result = result.concat(childKeys)\r\n });\r\n return result\r\n },\r\n _getParentSelectedRowKeys: function(keys) {\r\n var that = this;\r\n var result = [];\r\n keys.forEach(function(key) {\r\n var parentKeys = that._getSelectedParentKeys(key, keys);\r\n !parentKeys.length && result.push(key)\r\n });\r\n return result\r\n },\r\n _getLeafSelectedRowKeys: function(keys) {\r\n var that = this;\r\n var result = [];\r\n var dataController = that._dataController;\r\n keys.forEach(function(key) {\r\n var node = dataController.getNodeByKey(key);\r\n node && !node.hasChildren && result.push(key)\r\n });\r\n return result\r\n },\r\n isRecursiveSelection: function() {\r\n var selectionMode = this.option(\"selection.mode\");\r\n var isRecursive = this.option(\"selection.recursive\");\r\n return \"multiple\" === selectionMode && isRecursive\r\n },\r\n updateSelectionState: function(options) {\r\n var removedItemKeys = options.removedItemKeys || [];\r\n var selectedItemKeys = options.selectedItemKeys || [];\r\n this._updateSelectionStateCore(removedItemKeys, false);\r\n this._updateSelectionStateCore(selectedItemKeys, true)\r\n },\r\n isRowSelected: function(key) {\r\n var result = this.callBase.apply(this, arguments);\r\n var isRecursiveSelection = this.isRecursiveSelection();\r\n if (!result && isRecursiveSelection) {\r\n if (key in this._selectionStateByKey) {\r\n return this._selectionStateByKey[key]\r\n }\r\n return false\r\n }\r\n return result\r\n },\r\n getSelectedRowKeys: function(mode) {\r\n var that = this;\r\n if (!that._dataController) {\r\n return []\r\n }\r\n if (true === mode) {\r\n _ui2.default.log(\"W0002\", \"dxTreeList\", \"getSelectedRowKeys(leavesOnly)\", \"18.1\", \"Use the 'getSelectedRowKeys(mode)' method with a string parameter instead\")\r\n }\r\n var selectedRowKeys = that.callBase.apply(that, arguments);\r\n if (mode) {\r\n if (this.isRecursiveSelection()) {\r\n selectedRowKeys = this._getAllSelectedRowKeys(selectedRowKeys)\r\n }\r\n if (\"all\" !== mode) {\r\n if (\"excludeRecursive\" === mode) {\r\n selectedRowKeys = that._getParentSelectedRowKeys(selectedRowKeys)\r\n } else {\r\n if (that._isModeLeavesOnly(mode)) {\r\n selectedRowKeys = that._getLeafSelectedRowKeys(selectedRowKeys)\r\n }\r\n }\r\n }\r\n }\r\n return selectedRowKeys\r\n },\r\n getSelectedRowsData: function(mode) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var selectedKeys = this.getSelectedRowKeys(mode) || [];\r\n var selectedRowsData = [];\r\n selectedKeys.forEach(function(key) {\r\n var node = dataController.getNodeByKey(key);\r\n node && selectedRowsData.push(node.data)\r\n });\r\n return selectedRowsData\r\n },\r\n refresh: function() {\r\n this._selectionStateByKey = {};\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: {\r\n _processTemplate: function(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var renderingTemplate = this.callBase(template, options);\r\n var firstDataColumnIndex = that._columnsController.getFirstDataColumnIndex();\r\n if (renderingTemplate && \"header\" === options.rowType && options.column.index === firstDataColumnIndex) {\r\n resultTemplate = {\r\n render: function(options) {\r\n if (\"multiple\" === that.option(\"selection.mode\")) {\r\n that.renderSelectAll(options.container, options.model)\r\n }\r\n renderingTemplate.render(options)\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n renderSelectAll: function($cell, options) {\r\n $cell.addClass(TREELIST_SELECT_ALL_CLASS);\r\n this._renderSelectAllCheckBox($cell)\r\n },\r\n _isSortableElement: function($target) {\r\n return this.callBase($target) && !$target.closest(\".\" + SELECT_CHECKBOX_CLASS).length\r\n }\r\n },\r\n rowsView: {\r\n _renderIcons: function($iconContainer, options) {\r\n this.callBase.apply(this, arguments);\r\n if (\"multiple\" === this.option(\"selection.mode\")) {\r\n this.getController(\"selection\").renderSelectCheckBoxContainer($iconContainer, options)\r\n }\r\n return $iconContainer\r\n },\r\n _rowClick: function(e) {\r\n var $targetElement = (0, _renderer2.default)(e.event.target);\r\n if (this.isExpandIcon($targetElement)) {\r\n this.callBase.apply(this, arguments)\r\n } else {\r\n originalRowClick.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.column_chooser.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.column_chooser\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"columnChooser\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.core.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.modules\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}(0, _extend.extend)(exports, _uiGrid_core2.default, {\r\n modules: [],\r\n foreachNodes: function(nodes, callBack) {\r\n for (var i = 0; i < nodes.length; i++) {\r\n if (false !== callBack(nodes[i]) && nodes[i].hasChildren && nodes[i].children.length) {\r\n this.foreachNodes(nodes[i].children, callBack)\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.base.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _component_registrator = require(\"../../core/component_registrator\");\r\nvar _component_registrator2 = _interopRequireDefault(_component_registrator);\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _common2 = _interopRequireDefault(_common);\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _type2 = _interopRequireDefault(_type);\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui = require(\"../widget/ui.widget\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _themes = require(\"../themes\");\r\nvar _themes2 = _interopRequireDefault(_themes);\r\nrequire(\"./ui.tree_list.column_headers\");\r\nrequire(\"./ui.tree_list.columns_controller\");\r\nrequire(\"./ui.tree_list.data_controller\");\r\nrequire(\"./ui.tree_list.sorting\");\r\nrequire(\"./ui.tree_list.rows\");\r\nrequire(\"./ui.tree_list.context_menu\");\r\nrequire(\"./ui.tree_list.error_handling\");\r\nrequire(\"./ui.tree_list.grid_view\");\r\nrequire(\"./ui.tree_list.header_panel\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar callModuleItemsMethod = _uiTree_list2.default.callModuleItemsMethod;\r\nvar DATAGRID_ROW_SELECTOR = \".dx-row\";\r\nvar TREELIST_CLASS = \"dx-treelist\";\r\n_uiTree_list2.default.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"editing\", \"grouping\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar TreeList = _ui2.default.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions: function() {\r\n var that = this;\r\n var result = that.callBase();\r\n (0, _iterator.each)(_uiTree_list2.default.modules, function() {\r\n if (_type2.default.isFunction(this.defaultOptions)) {\r\n (0, _extend.extend)(true, result, this.defaultOptions())\r\n }\r\n });\r\n return result\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return _themes2.default.isMaterial()\r\n },\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n }\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n var that = this;\r\n that.callBase();\r\n _uiTree_list2.default.processModules(that, _uiTree_list2.default);\r\n callModuleItemsMethod(that, \"init\")\r\n },\r\n _clean: _common2.default.noop,\r\n _optionChanged: function(args) {\r\n var that = this;\r\n callModuleItemsMethod(that, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n that.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.callBase.apply(this, arguments);\r\n this.$element().addClass(TREELIST_CLASS);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl: function() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n _common2.default.deferRender(function() {\r\n that._renderContentImpl()\r\n })\r\n },\r\n _dispose: function() {\r\n var that = this;\r\n that.callBase();\r\n callModuleItemsMethod(that, \"dispose\")\r\n },\r\n isReady: function() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate: function() {\r\n var that = this;\r\n that.callBase();\r\n callModuleItemsMethod(that, \"beginUpdate\")\r\n },\r\n endUpdate: function() {\r\n var that = this;\r\n callModuleItemsMethod(that, \"endUpdate\");\r\n that.callBase()\r\n },\r\n getController: function(name) {\r\n return this._controllers[name]\r\n },\r\n getView: function(name) {\r\n return this._views[name]\r\n },\r\n focus: function(element) {\r\n this.callBase();\r\n if (_type2.default.isDefined(element)) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n }\r\n});\r\nTreeList.registerModule = _uiTree_list2.default.registerModule.bind(_uiTree_list2.default);\r\n(0, _component_registrator2.default)(\"dxTreeList\", TreeList);\r\nmodule.exports = TreeList;\r\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cronograma.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cronograma.vue?vue&type=style&index=0&lang=css&\"","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.base\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nrequire(\"./ui.tree_list.state_storing\");\r\nrequire(\"./ui.tree_list.column_chooser\");\r\nrequire(\"./ui.tree_list.master_detail\");\r\nrequire(\"./ui.tree_list.editing\");\r\nrequire(\"./ui.tree_list.validating\");\r\nrequire(\"./ui.tree_list.virtual_scrolling\");\r\nrequire(\"./ui.tree_list.filter_row\");\r\nrequire(\"./ui.tree_list.header_filter\");\r\nrequire(\"./ui.tree_list.filter_sync\");\r\nrequire(\"./ui.tree_list.filter_builder\");\r\nrequire(\"./ui.tree_list.filter_panel\");\r\nrequire(\"./ui.tree_list.pager\");\r\nrequire(\"./ui.tree_list.columns_resizing_reordering\");\r\nrequire(\"./ui.tree_list.column_fixing\");\r\nrequire(\"./ui.tree_list.adaptivity\");\r\nrequire(\"./ui.tree_list.selection\");\r\nrequire(\"./ui.tree_list.search\");\r\nrequire(\"./ui.tree_list.keyboard_navigation\");\r\nrequire(\"./ui.tree_list.virtual_columns\");\r\nrequire(\"./ui.tree_list.focus\");\r\nrequire(\"./ui.tree_list.row_dragging\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nmodule.exports = _uiTree_list2.default;\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.filter_sync.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.filter_sync\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"filterSync\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.sorting.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.sorting\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"sorting\", _uiGrid_core2.default);\r\n","/*!\n * DevExpress Gantt (dx-gantt)\n * Version: 1.0.7\n * Build date: Fri Jun 26 2020\n * \n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\n * Read about DevExpress licensing here: https://www.devexpress.com/Support/EULAs\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Gantt\"] = factory();\n\telse\n\t\troot[\"DevExpress\"] = root[\"DevExpress\"] || {}, root[\"DevExpress\"][\"Gantt\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 43);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__rest\", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__param\", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__metadata\", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__awaiter\", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__generator\", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__createBinding\", function() { return __createBinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__exportStar\", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__values\", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__read\", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spread\", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__await\", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importStar\", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importDefault\", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function() { return __classPrivateFieldSet; });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Browser_1 = __webpack_require__(8);\r\nvar TouchUIHelper_1 = __webpack_require__(14);\r\nvar DomUtils = (function () {\r\n function DomUtils() {\r\n }\r\n DomUtils.clientEventRequiresDocScrollCorrection = function () {\r\n var isSafariVerLess3 = Browser_1.Browser.Safari && Browser_1.Browser.Version < 3, isMacOSMobileVerLess51 = Browser_1.Browser.MacOSMobilePlatform && Browser_1.Browser.Version < 5.1;\r\n return Browser_1.Browser.AndroidDefaultBrowser || Browser_1.Browser.AndroidChromeBrowser || !(isSafariVerLess3 || isMacOSMobileVerLess51);\r\n };\r\n DomUtils.getEventX = function (evt) {\r\n if (DomUtils.isTouchEvent(evt))\r\n return TouchUIHelper_1.TouchUIHelper.getEventX(evt);\r\n return evt.clientX + (this.clientEventRequiresDocScrollCorrection() ? this.getDocumentScrollLeft() : 0);\r\n };\r\n DomUtils.getEventY = function (evt) {\r\n if (DomUtils.isTouchEvent(evt))\r\n return TouchUIHelper_1.TouchUIHelper.getEventY(evt);\r\n return evt.clientY + (this.clientEventRequiresDocScrollCorrection() ? this.getDocumentScrollTop() : 0);\r\n };\r\n DomUtils.getEventSource = function (evt) {\r\n return evt.srcElement ? evt.srcElement : evt.target;\r\n };\r\n DomUtils.GetKeyCode = function (evt) {\r\n return Browser_1.Browser.NetscapeFamily || Browser_1.Browser.Opera ? evt.which : evt.keyCode;\r\n };\r\n DomUtils.GetIsParent = function (parentElement, element) {\r\n if (!parentElement || !element)\r\n return false;\r\n while (element) {\r\n if (element === parentElement)\r\n return true;\r\n if (element.tagName === \"BODY\")\r\n return false;\r\n element = element.parentNode;\r\n }\r\n return false;\r\n };\r\n DomUtils.getCurrentStyle = function (element) {\r\n if (document.defaultView && document.defaultView.getComputedStyle)\r\n return document.defaultView.getComputedStyle(element, null);\r\n return window.getComputedStyle(element, null);\r\n };\r\n DomUtils.getTopPaddings = function (element) {\r\n var currentStyle = this.getCurrentStyle(element);\r\n return this.pxToInt(currentStyle.paddingTop);\r\n };\r\n DomUtils.getLeftPadding = function (element) {\r\n var currentStyle = this.getCurrentStyle(element);\r\n return this.pxToInt(currentStyle.paddingLeft);\r\n };\r\n DomUtils.getVerticalBordersWidth = function (element) {\r\n var style = window.getComputedStyle ? window.getComputedStyle(element) : this.getCurrentStyle(element);\r\n var res = 0;\r\n if (style.borderTopStyle != \"none\")\r\n res += this.pxToFloat(style.borderTopWidth);\r\n if (style.borderBottomStyle != \"none\")\r\n res += this.pxToFloat(style.borderBottomWidth);\r\n return res;\r\n };\r\n DomUtils.getHorizontalBordersWidth = function (element) {\r\n var style = window.getComputedStyle ? window.getComputedStyle(element) : this.getCurrentStyle(element);\r\n var res = 0;\r\n if (style.borderLeftStyle != \"none\")\r\n res += this.pxToFloat(style.borderLeftWidth);\r\n if (style.borderRightStyle != \"none\")\r\n res += this.pxToFloat(style.borderRightWidth);\r\n return res;\r\n };\r\n DomUtils.pxToInt = function (px) {\r\n return this.pxToNumber(px, parseInt);\r\n };\r\n DomUtils.pxToFloat = function (px) {\r\n return this.pxToNumber(px, parseFloat);\r\n };\r\n ;\r\n DomUtils.pxToNumber = function (px, parseFunction) {\r\n var result = 0;\r\n if (px != null && px != \"\") {\r\n try {\r\n var indexOfPx = px.indexOf(\"px\");\r\n if (indexOfPx > -1)\r\n result = parseFunction(px.substr(0, indexOfPx));\r\n }\r\n catch (e) { }\r\n }\r\n return result;\r\n };\r\n DomUtils.getDocumentScrollTop = function () {\r\n var isScrollBodyIE = Browser_1.Browser.IE && this.getCurrentStyle(document.body).overflow == \"hidden\" && document.body.scrollTop > 0;\r\n if (Browser_1.Browser.WebKitFamily || Browser_1.Browser.Edge || isScrollBodyIE) {\r\n if (Browser_1.Browser.MacOSMobilePlatform)\r\n return window.pageYOffset;\r\n if (Browser_1.Browser.WebKitFamily)\r\n return document.documentElement.scrollTop || document.body.scrollTop;\r\n return document.body.scrollTop;\r\n }\r\n else\r\n return document.documentElement.scrollTop;\r\n };\r\n DomUtils.getDocumentScrollLeft = function () {\r\n var isScrollBodyIE = Browser_1.Browser.IE && this.getCurrentStyle(document.body).overflow == \"hidden\" && document.body.scrollLeft > 0;\r\n if (Browser_1.Browser.Edge || isScrollBodyIE)\r\n return document.body ? document.body.scrollLeft : document.documentElement.scrollLeft;\r\n if (Browser_1.Browser.WebKitFamily)\r\n return document.documentElement.scrollLeft || document.body.scrollLeft;\r\n return document.documentElement.scrollLeft;\r\n };\r\n DomUtils.getAbsolutePositionY = function (element) {\r\n if (Browser_1.Browser.IE)\r\n return this.getAbsolutePositionY_IE(element);\r\n else if (Browser_1.Browser.Firefox && Browser_1.Browser.Version >= 3)\r\n return this.getAbsolutePositionY_FF3(element);\r\n else if (Browser_1.Browser.Opera)\r\n return this.getAbsolutePositionY_Opera(element);\r\n else if (Browser_1.Browser.NetscapeFamily && (!Browser_1.Browser.Firefox || Browser_1.Browser.Version < 3))\r\n return this.getAbsolutePositionY_NS(element);\r\n else if (Browser_1.Browser.WebKitFamily || Browser_1.Browser.Edge)\r\n return this.getAbsolutePositionY_FF3(element);\r\n else\r\n return this.getAbsolutePositionY_Other(element);\r\n };\r\n DomUtils.getAbsolutePositionY_Opera = function (curEl) {\r\n var isFirstCycle = true;\r\n if (curEl && curEl.tagName == \"TR\" && curEl.cells.length > 0)\r\n curEl = curEl.cells[0];\r\n var pos = this.getAbsoluteScrollOffset_OperaFF(curEl, false);\r\n while (curEl != null) {\r\n pos += curEl.offsetTop;\r\n if (!isFirstCycle)\r\n pos -= curEl.scrollTop;\r\n curEl = curEl.offsetParent;\r\n isFirstCycle = false;\r\n }\r\n pos += document.body.scrollTop;\r\n return pos;\r\n };\r\n DomUtils.getAbsolutePositionY_IE = function (element) {\r\n if (element == null || Browser_1.Browser.IE && element.parentNode == null)\r\n return 0;\r\n return element.getBoundingClientRect().top + this.getDocumentScrollTop();\r\n };\r\n DomUtils.getAbsolutePositionY_FF3 = function (element) {\r\n if (element == null)\r\n return 0;\r\n var y = element.getBoundingClientRect().top + this.getDocumentScrollTop();\r\n return Math.round(y);\r\n };\r\n DomUtils.getAbsolutePositionY_NS = function (curEl) {\r\n var pos = this.getAbsoluteScrollOffset_OperaFF(curEl, false);\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n pos += curEl.offsetTop;\r\n if (!isFirstCycle && curEl.offsetParent != null)\r\n pos -= curEl.scrollTop;\r\n if (!isFirstCycle && Browser_1.Browser.Firefox) {\r\n var style = this.getCurrentStyle(curEl);\r\n if (curEl.tagName == \"DIV\" && style.overflow != \"visible\")\r\n pos += this.pxToInt(style.borderTopWidth);\r\n }\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n };\r\n DomUtils.getAbsolutePositionY_Other = function (curEl) {\r\n var pos = 0;\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n pos += curEl.offsetTop;\r\n if (!isFirstCycle && curEl.offsetParent != null)\r\n pos -= curEl.scrollTop;\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n };\r\n DomUtils.getAbsoluteScrollOffset_OperaFF = function (curEl, isX) {\r\n var pos = 0;\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n if (curEl.tagName == \"BODY\")\r\n break;\r\n var style = this.getCurrentStyle(curEl);\r\n if (style.position == \"absolute\")\r\n break;\r\n if (!isFirstCycle && curEl.tagName == \"DIV\" && (style.position == \"\" || style.position == \"static\"))\r\n pos -= isX ? curEl.scrollLeft : curEl.scrollTop;\r\n curEl = curEl.parentNode;\r\n isFirstCycle = false;\r\n }\r\n return pos;\r\n };\r\n DomUtils.getAbsolutePositionX = function (element) {\r\n if (Browser_1.Browser.IE)\r\n return this.getAbsolutePositionX_IE(element);\r\n else if (Browser_1.Browser.Firefox && Browser_1.Browser.Version >= 3)\r\n return this.getAbsolutePositionX_FF3(element);\r\n else if (Browser_1.Browser.Opera)\r\n return this.getAbsolutePositionX_Opera(element);\r\n else if (Browser_1.Browser.NetscapeFamily && (!Browser_1.Browser.Firefox || Browser_1.Browser.Version < 3))\r\n return this.getAbsolutePositionX_NS(element);\r\n else if (Browser_1.Browser.WebKitFamily || Browser_1.Browser.Edge)\r\n return this.getAbsolutePositionX_FF3(element);\r\n else\r\n return this.getAbsolutePositionX_Other(element);\r\n };\r\n DomUtils.getAbsolutePositionX_Opera = function (curEl) {\r\n var isFirstCycle = true;\r\n var pos = this.getAbsoluteScrollOffset_OperaFF(curEl, true);\r\n while (curEl != null) {\r\n pos += curEl.offsetLeft;\r\n if (!isFirstCycle)\r\n pos -= curEl.scrollLeft;\r\n curEl = curEl.offsetParent;\r\n isFirstCycle = false;\r\n }\r\n pos += document.body.scrollLeft;\r\n return pos;\r\n };\r\n DomUtils.getAbsolutePositionX_IE = function (element) {\r\n if (element == null || Browser_1.Browser.IE && element.parentNode == null)\r\n return 0;\r\n return element.getBoundingClientRect().left + this.getDocumentScrollLeft();\r\n };\r\n DomUtils.getAbsolutePositionX_FF3 = function (element) {\r\n if (element == null)\r\n return 0;\r\n var x = element.getBoundingClientRect().left + this.getDocumentScrollLeft();\r\n return Math.round(x);\r\n };\r\n DomUtils.getAbsolutePositionX_NS = function (curEl) {\r\n var pos = this.getAbsoluteScrollOffset_OperaFF(curEl, true);\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n pos += curEl.offsetLeft;\r\n if (!isFirstCycle && curEl.offsetParent != null)\r\n pos -= curEl.scrollLeft;\r\n if (!isFirstCycle && Browser_1.Browser.Firefox) {\r\n var style = this.getCurrentStyle(curEl);\r\n if (curEl.tagName == \"DIV\" && style.overflow != \"visible\")\r\n pos += this.pxToInt(style.borderLeftWidth);\r\n }\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n };\r\n DomUtils.getAbsolutePositionX_Other = function (curEl) {\r\n var pos = 0;\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n pos += curEl.offsetLeft;\r\n if (!isFirstCycle && curEl.offsetParent != null)\r\n pos -= curEl.scrollLeft;\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n };\r\n DomUtils.GetEvent = function (evt) {\r\n return (typeof (event) != \"undefined\" && event != null && Browser_1.Browser.IE) ? event : evt;\r\n };\r\n DomUtils.isExists = function (obj) {\r\n return (typeof (obj) != \"undefined\") && (obj != null);\r\n };\r\n DomUtils.isTouchEvent = function (evt) {\r\n if (!evt)\r\n return false;\r\n return Browser_1.Browser.WebKitTouchUI && DomUtils.isExists(evt.changedTouches);\r\n };\r\n DomUtils.IsLeftButtonPressed = function (evt) {\r\n if (DomUtils.isTouchEvent(evt))\r\n return true;\r\n evt = DomUtils.GetEvent(evt);\r\n if (!evt)\r\n return false;\r\n if (Browser_1.Browser.IE && Browser_1.Browser.Version < 11) {\r\n if (Browser_1.Browser.MSTouchUI)\r\n return true;\r\n return evt.button % 2 == 1;\r\n }\r\n else if (Browser_1.Browser.WebKitFamily) {\r\n if (evt.type === \"pointermove\")\r\n return evt.buttons === 1;\r\n return evt.which == 1;\r\n }\r\n else if (Browser_1.Browser.NetscapeFamily || Browser_1.Browser.Edge || (Browser_1.Browser.IE && Browser_1.Browser.Version >= 11)) {\r\n if (evt.type === DomUtils.touchMouseMoveEventName)\r\n return evt.buttons === 1;\r\n return evt.which == 1;\r\n }\r\n else if (Browser_1.Browser.Opera)\r\n return evt.button == 0;\r\n return true;\r\n };\r\n DomUtils.setAttribute = function (obj, attrName, value) {\r\n if (obj.setAttribute) {\r\n if (DomUtils.isSourceResetRequired() && attrName.toLowerCase() === \"src\")\r\n obj.setAttribute(attrName, \"\");\r\n obj.setAttribute(attrName, value);\r\n }\r\n else if (obj.setProperty)\r\n obj.setProperty(attrName, value, \"\");\r\n };\r\n DomUtils.getAttribute = function (obj, attrName) {\r\n if (obj.getAttribute)\r\n return obj.getAttribute(attrName);\r\n else if (obj.getPropertyValue) {\r\n if (Browser_1.Browser.Firefox) {\r\n try {\r\n return obj.getPropertyValue(attrName);\r\n }\r\n catch (e) {\r\n return obj[attrName];\r\n }\r\n }\r\n return obj.getPropertyValue(attrName);\r\n }\r\n return null;\r\n };\r\n DomUtils.getTabIndexAttributeName = function () {\r\n return Browser_1.Browser.IE ? \"tabIndex\" : \"tabindex\";\r\n };\r\n DomUtils.changeStyleAttribute = function (obj, attrName, newValue) {\r\n DomUtils.changeAttributeExtended(obj.style, attrName, obj, \"saved\" + attrName, newValue);\r\n };\r\n DomUtils.changeAttributeExtended = function (obj, attrName, savedObj, savedAttrName, newValue) {\r\n DomUtils.saveAttribute(obj, attrName, savedObj, savedAttrName);\r\n DomUtils.setAttribute(obj, attrName, newValue);\r\n };\r\n DomUtils.saveAttribute = function (obj, attrName, savedObj, savedAttrName) {\r\n if (!DomUtils.isExistsAttribute(savedObj, savedAttrName)) {\r\n var oldValue = DomUtils.isExistsAttribute(obj, attrName) ? DomUtils.getAttribute(obj, attrName) : DomUtils.EmptyObject;\r\n DomUtils.setAttribute(savedObj, savedAttrName, oldValue);\r\n }\r\n };\r\n DomUtils.restoreAttributeExtended = function (obj, attrName, savedObj, savedAttrName) {\r\n if (DomUtils.isExistsAttribute(savedObj, savedAttrName)) {\r\n var oldValue = DomUtils.getAttribute(savedObj, savedAttrName);\r\n if (oldValue != DomUtils.EmptyObject)\r\n DomUtils.setAttribute(obj, attrName, oldValue);\r\n else\r\n DomUtils.removeAttribute(obj, attrName);\r\n DomUtils.removeAttribute(savedObj, savedAttrName);\r\n return true;\r\n }\r\n return false;\r\n };\r\n DomUtils.removeAttribute = function (obj, attrName) {\r\n if (obj.removeAttribute)\r\n obj.removeAttribute(attrName);\r\n else if (obj.removeProperty)\r\n obj.removeProperty(attrName);\r\n };\r\n DomUtils.isExistsAttribute = function (obj, attrName) {\r\n var value = DomUtils.getAttribute(obj, attrName);\r\n return (value != null) && (value !== \"\");\r\n };\r\n DomUtils.isSourceResetRequired = function () {\r\n return Browser_1.Browser.IE && Browser_1.Browser.MajorVersion >= 11;\r\n };\r\n DomUtils.EmptyObject = {};\r\n DomUtils.touchMouseMoveEventName = Browser_1.Browser.WebKitTouchUI ? \"touchmove\" : (Browser_1.Browser.Edge && Browser_1.Browser.MSTouchUI && window.PointerEvent ? \"pointermove\" : \"mousemove\");\r\n DomUtils.getMouseWheelEventName = function () {\r\n if (Browser_1.Browser.Safari)\r\n return \"mousewheel\";\r\n if (Browser_1.Browser.NetscapeFamily && Browser_1.Browser.MajorVersion < 17)\r\n return \"DOMMouseScroll\";\r\n return \"wheel\";\r\n };\r\n DomUtils.getWheelDelta = function (evt) {\r\n var ret;\r\n if (Browser_1.Browser.NetscapeFamily && Browser_1.Browser.MajorVersion < 17)\r\n ret = -evt.detail;\r\n else if (Browser_1.Browser.Safari)\r\n ret = evt.wheelDelta;\r\n else\r\n ret = -evt.deltaY;\r\n if (Browser_1.Browser.Opera && Browser_1.Browser.Version < 9)\r\n ret = -ret;\r\n return ret;\r\n };\r\n DomUtils.IsRightButtonPressed = function (evt) {\r\n evt = DomUtils.GetEvent(evt);\r\n if (!DomUtils.isExists(evt))\r\n return false;\r\n if (Browser_1.Browser.IE || Browser_1.Browser.Edge) {\r\n if (evt.type === \"pointermove\")\r\n return evt.buttons === 2;\r\n return evt.button == 2;\r\n }\r\n else if (Browser_1.Browser.NetscapeFamily || Browser_1.Browser.WebKitFamily)\r\n return evt.which == 3;\r\n else if (Browser_1.Browser.Opera)\r\n return evt.button == 1;\r\n return true;\r\n };\r\n DomUtils.addClassNameToElement = function (element, className) {\r\n if (!element || typeof (className) !== \"string\")\r\n return;\r\n className = DomUtils.trim(className);\r\n if (!DomUtils.elementHasCssClass(element, className) && className !== \"\") {\r\n var oldClassName = DomUtils.getClassName(element);\r\n DomUtils.setClassName(element, (oldClassName === \"\") ? className : oldClassName + \" \" + className);\r\n }\r\n };\r\n DomUtils.removeClassNameFromElement = function (element, className) {\r\n if (!element)\r\n return;\r\n var elementClassName = DomUtils.getClassName(element);\r\n var updClassName = \" \" + elementClassName + \" \";\r\n var newClassName = updClassName.replace(\" \" + className + \" \", \" \");\r\n if (updClassName.length != newClassName.length)\r\n DomUtils.setClassName(element, DomUtils.trim(newClassName));\r\n };\r\n DomUtils.elementHasCssClass = function (element, className) {\r\n try {\r\n var elementClasses;\r\n var classList = DomUtils.getClassNameList(element);\r\n if (!classList) {\r\n var elementClassName = DomUtils.getClassName(element);\r\n if (!elementClassName) {\r\n return false;\r\n }\r\n elementClasses = elementClassName.split(\" \");\r\n }\r\n var classNames = className.split(\" \");\r\n for (var i = classNames.length - 1; i >= 0; i--) {\r\n if (classList) {\r\n if (classList.indexOf(classNames[i]) === -1)\r\n return false;\r\n continue;\r\n }\r\n if (elementClasses.indexOf(classNames[i]) < 0)\r\n return false;\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n };\r\n DomUtils.getClassName = function (element) {\r\n var result = \"\";\r\n if (element) {\r\n if (element.tagName === \"svg\")\r\n result = element.className.baseVal;\r\n else\r\n result = element.className ? element.className : \"\";\r\n }\r\n return result;\r\n };\r\n DomUtils.getClassNameList = function (element) {\r\n var result = [];\r\n if (element) {\r\n if (element.tagName === \"svg\")\r\n result = DomUtils.getClassName(element).replace(/^\\s+|\\s+$/g, '').split(/\\s+/);\r\n else\r\n result = element.classList ? [].slice.call(element.classList) : DomUtils.getClassName(element).replace(/^\\s+|\\s+$/g, '').split(/\\s+/);\r\n }\r\n return result;\r\n };\r\n DomUtils.setClassName = function (element, className) {\r\n if (element.tagName === \"svg\") {\r\n element.className.baseVal = DomUtils.trim(className);\r\n }\r\n else {\r\n element.className = DomUtils.trim(className);\r\n }\r\n };\r\n DomUtils.trim = function (str) {\r\n var result = str;\r\n result = result.replace(/^\\s+/, \"\");\r\n result = result.replace(/\\s+$/, \"\");\r\n return result;\r\n };\r\n DomUtils.restoreStyleAttribute = function (obj, attrName) {\r\n return DomUtils.restoreAttributeExtended(obj.style, attrName, obj, \"saved\" + attrName);\r\n };\r\n return DomUtils;\r\n}());\r\nexports.DomUtils = DomUtils;\r\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar JsonUtils = (function () {\r\n function JsonUtils() {\r\n }\r\n JsonUtils.isExists = function (obj) {\r\n return (typeof (obj) != \"undefined\") && (obj != null);\r\n };\r\n JsonUtils.isValidJson = function (json) {\r\n return !(/[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]/.test(json.replace(/\"(\\\\.|[^\"\\\\])*\"/g, '')));\r\n };\r\n JsonUtils.evalJson = function (json) {\r\n return JsonUtils.isValidJson(json) ? eval(\"(\" + json + \")\") : null;\r\n };\r\n return JsonUtils;\r\n}());\r\nexports.JsonUtils = JsonUtils;\r\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Time_1 = __webpack_require__(29);\r\nvar TimeRange_1 = __webpack_require__(30);\r\nvar Utils_1 = __webpack_require__(2);\r\nvar DateRange_1 = __webpack_require__(7);\r\nvar DayOfWeekMonthlyOccurrence_1 = __webpack_require__(31);\r\nvar DateTimeUtils = (function () {\r\n function DateTimeUtils() {\r\n }\r\n DateTimeUtils.compareDates = function (date1, date2) {\r\n if (!date1 || !date2)\r\n return -1;\r\n return date2.getTime() - date1.getTime();\r\n };\r\n DateTimeUtils.areDatesEqual = function (date1, date2) {\r\n return this.compareDates(date1, date2) == 0;\r\n };\r\n DateTimeUtils.getMaxDate = function (date1, date2) {\r\n if (!date1 && !date2)\r\n return null;\r\n if (!date1)\r\n return date2;\r\n if (!date2)\r\n return date1;\r\n var diff = this.compareDates(date1, date2);\r\n return diff > 0 ? date2 : date1;\r\n };\r\n DateTimeUtils.getMinDate = function (date1, date2) {\r\n if (!date1 && !date2)\r\n return null;\r\n if (!date1)\r\n return date2;\r\n if (!date2)\r\n return date1;\r\n var diff = this.compareDates(date1, date2);\r\n return diff > 0 ? date1 : date2;\r\n };\r\n DateTimeUtils.getDaysBetween = function (start, end) {\r\n var diff = Math.abs(end.getTime() - start.getTime());\r\n return Math.ceil(diff / this.msInDay);\r\n };\r\n DateTimeUtils.getWeeksBetween = function (start, end) {\r\n var daysBetween = this.getDaysBetween(start, end);\r\n var numWeeks = Math.floor(daysBetween / 7);\r\n if (start.getDay() > end.getDay())\r\n numWeeks++;\r\n return numWeeks;\r\n };\r\n DateTimeUtils.getMonthsDifference = function (start, end) {\r\n var dateDiff = this.compareDates(start, end);\r\n var from = dateDiff >= 0 ? start : end;\r\n var to = dateDiff >= 0 ? end : start;\r\n var yearsDiff = to.getFullYear() - from.getFullYear();\r\n var monthDiff = yearsDiff * 12 + (to.getMonth() - from.getMonth());\r\n return monthDiff;\r\n };\r\n DateTimeUtils.getYearsDifference = function (start, end) {\r\n return Math.abs(end.getFullYear() - start.getFullYear());\r\n };\r\n DateTimeUtils.getDayNumber = function (date) {\r\n return Math.ceil(date.getTime() / this.msInDay);\r\n };\r\n DateTimeUtils.getDateByDayNumber = function (num) {\r\n var date = new Date(num * this.msInDay);\r\n date.setHours(0);\r\n date.setMinutes(0);\r\n date.setSeconds(0);\r\n return date;\r\n };\r\n DateTimeUtils.addDays = function (date, days) {\r\n return new Date(date.getTime() + days * this.msInDay);\r\n };\r\n DateTimeUtils.checkDayOfMonth = function (day, date) {\r\n return day == date.getDate();\r\n };\r\n DateTimeUtils.checkDayOfWeek = function (day, date) {\r\n return day == date.getDay();\r\n };\r\n DateTimeUtils.checkMonth = function (month, date) {\r\n return month == date.getMonth();\r\n };\r\n DateTimeUtils.checkYear = function (year, date) {\r\n return year == date.getFullYear();\r\n };\r\n DateTimeUtils.checkDayOfWeekOccurrenceInMonth = function (date, dayOfWeek, occurrence) {\r\n var dayOfWeekInMonthDates = this.getSpecificDayOfWeekInMonthDates(dayOfWeek, date.getFullYear(), date.getMonth());\r\n if (occurrence == DayOfWeekMonthlyOccurrence_1.DayOfWeekMonthlyOccurrence.Last)\r\n return this.areDatesEqual(date, dayOfWeekInMonthDates[dayOfWeekInMonthDates.length - 1]);\r\n return this.areDatesEqual(date, dayOfWeekInMonthDates[occurrence]);\r\n };\r\n DateTimeUtils.getFirstDayOfWeekInMonth = function (year, month) {\r\n var date = new Date(year, month, 1);\r\n return date.getDay();\r\n };\r\n DateTimeUtils.getSpecificDayOfWeekInMonthDates = function (dayOfWeek, year, month) {\r\n var firstDayOfWeekInMonth = this.getFirstDayOfWeekInMonth(year, month);\r\n var diffDays = dayOfWeek >= firstDayOfWeekInMonth ? dayOfWeek - firstDayOfWeekInMonth : dayOfWeek + 7 - firstDayOfWeekInMonth;\r\n var res = new Array();\r\n var specificDayOfWeekDate = new Date(year, month, diffDays + 1);\r\n while (specificDayOfWeekDate.getMonth() == month) {\r\n res.push(specificDayOfWeekDate);\r\n specificDayOfWeekDate = this.addDays(specificDayOfWeekDate, 7);\r\n }\r\n return res;\r\n };\r\n DateTimeUtils.getSpecificDayOfWeekInMonthDate = function (dayOfWeek, year, month, occurrence) {\r\n var dates = this.getSpecificDayOfWeekInMonthDates(dayOfWeek, year, month);\r\n if (occurrence == DayOfWeekMonthlyOccurrence_1.DayOfWeekMonthlyOccurrence.Last)\r\n return dates[dates.length - 1];\r\n return dates[occurrence];\r\n };\r\n DateTimeUtils.checkValidDayInMonth = function (year, month, day) {\r\n if (day < 1 || day > 31 || (new Date(year, month, day)).getMonth() != month)\r\n return false;\r\n return true;\r\n };\r\n DateTimeUtils.getNextMonth = function (month, inc) {\r\n if (inc === void 0) { inc = 1; }\r\n return (month + inc) % 12;\r\n };\r\n DateTimeUtils.convertToDate = function (src) {\r\n if (src instanceof Date)\r\n return new Date(src);\r\n var ms = Date.parse(src);\r\n if (!isNaN(ms))\r\n return new Date(ms);\r\n return null;\r\n };\r\n DateTimeUtils.convertTimeRangeToDateRange = function (timeRange, dayNumber) {\r\n var date = this.getDateByDayNumber(dayNumber);\r\n var year = date.getFullYear();\r\n var month = date.getMonth();\r\n var day = date.getDate();\r\n var startT = timeRange.start;\r\n var start = new Date(year, month, day, startT.hour, startT.min, startT.sec, startT.msec);\r\n var endT = timeRange.end;\r\n var end = new Date(year, month, day, endT.hour, endT.min, endT.sec, endT.msec);\r\n return new DateRange_1.DateRange(start, end);\r\n };\r\n DateTimeUtils.convertToTimeRanges = function (src) {\r\n var _this = this;\r\n if (src instanceof Array)\r\n return src.map(function (x) { return _this.convertToTimeRange(x); });\r\n return this.parseTimeRanges(src);\r\n };\r\n DateTimeUtils.convertToTimeRange = function (src) {\r\n if (!src)\r\n return null;\r\n if (src instanceof TimeRange_1.TimeRange)\r\n return src;\r\n if (Utils_1.JsonUtils.isExists(src.start) && Utils_1.JsonUtils.isExists(src.end))\r\n return new TimeRange_1.TimeRange(this.convertToTime(src.start), this.convertToTime(src.end));\r\n return this.parseTimeRange(src);\r\n };\r\n DateTimeUtils.convertToTime = function (src) {\r\n if (!src)\r\n return null;\r\n if (src instanceof Time_1.Time)\r\n return src;\r\n if (src instanceof Date)\r\n return this.getTimeGromJsDate(src);\r\n return this.parseTime(src);\r\n };\r\n DateTimeUtils.parseTimeRanges = function (src) {\r\n var _this = this;\r\n if (!src)\r\n return null;\r\n var parts = src.split(/;|,/);\r\n return parts.map(function (p) { return _this.parseTimeRange(p); }).filter(function (r) { return !!r; });\r\n };\r\n DateTimeUtils.parseTimeRange = function (src) {\r\n if (!src)\r\n return null;\r\n var parts = src.split(\"-\");\r\n var start = parts[0];\r\n var end = parts[1];\r\n if (Utils_1.JsonUtils.isExists(start) && Utils_1.JsonUtils.isExists(end))\r\n return new TimeRange_1.TimeRange(this.parseTime(start), this.parseTime(end));\r\n return null;\r\n };\r\n DateTimeUtils.parseTime = function (src) {\r\n if (!src)\r\n return null;\r\n var parts = src.split(\":\");\r\n var h = parseInt(parts[0]) || 0;\r\n var m = parseInt(parts[1]) || 0;\r\n var s = parseInt(parts[2]) || 0;\r\n var ms = parseInt(parts[3]) || 0;\r\n return new Time_1.Time(h, m, s, ms);\r\n };\r\n DateTimeUtils.getTimeGromJsDate = function (date) {\r\n if (!date)\r\n return null;\r\n var h = date.getHours();\r\n var m = date.getMinutes();\r\n var s = date.getSeconds();\r\n var ms = date.getMilliseconds();\r\n return new Time_1.Time(h, m, s, ms);\r\n };\r\n DateTimeUtils.caclTimeDifference = function (time1, time2) {\r\n return time2.getTimeInMilleconds() - time1.getTimeInMilleconds();\r\n };\r\n DateTimeUtils.areTimesEqual = function (time1, time2) {\r\n return this.caclTimeDifference(time1, time2) == 0;\r\n };\r\n DateTimeUtils.getMaxTime = function (time1, time2) {\r\n if (!time1 && !time2)\r\n return null;\r\n if (!time1)\r\n return time2;\r\n if (!time2)\r\n return time1;\r\n var diff = this.caclTimeDifference(time1, time2);\r\n return diff > 0 ? time2 : time1;\r\n };\r\n DateTimeUtils.getMinTime = function (time1, time2) {\r\n if (!time1 && !time2)\r\n return null;\r\n if (!time1)\r\n return time2;\r\n if (!time2)\r\n return time1;\r\n var diff = this.caclTimeDifference(time1, time2);\r\n return diff > 0 ? time1 : time2;\r\n };\r\n DateTimeUtils.getLastTimeOfDay = function () {\r\n return new Time_1.Time(23, 59, 59, 999);\r\n };\r\n DateTimeUtils.msInDay = 24 * 3600 * 1000;\r\n return DateTimeUtils;\r\n}());\r\nexports.DateTimeUtils = DateTimeUtils;\r\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Point = (function () {\r\n function Point(x, y) {\r\n this.x = null;\r\n this.y = null;\r\n if (x !== undefined)\r\n this.x = x;\r\n if (y !== undefined)\r\n this.y = y;\r\n }\r\n return Point;\r\n}());\r\nexports.Point = Point;\r\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar CommandBase = (function () {\r\n function CommandBase(control) {\r\n this.control = control;\r\n }\r\n Object.defineProperty(CommandBase.prototype, \"modelManipulator\", {\r\n get: function () { return this.control.modelManipulator; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandBase.prototype, \"history\", {\r\n get: function () { return this.control.history; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandBase.prototype, \"validationController\", {\r\n get: function () { return this.control.validationController; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandBase.prototype, \"state\", {\r\n get: function () {\r\n if (!this._state)\r\n this._state = this.getState();\r\n return this._state;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n CommandBase.prototype.execute = function () {\r\n var parameters = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n parameters[_i] = arguments[_i];\r\n }\r\n if (!this.state.enabled)\r\n return false;\r\n var executed = this.executeInternal.apply(this, parameters);\r\n if (executed)\r\n this.control.barManager.updateItemsState([]);\r\n return executed;\r\n };\r\n CommandBase.prototype.isEnabled = function () {\r\n return this.control.settings.editing.enabled;\r\n };\r\n CommandBase.prototype.executeInternal = function () {\r\n var parameters = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n parameters[_i] = arguments[_i];\r\n }\r\n throw new Error(\"Not implemented\");\r\n };\r\n ;\r\n return CommandBase;\r\n}());\r\nexports.CommandBase = CommandBase;\r\nvar SimpleCommandState = (function () {\r\n function SimpleCommandState(enabled, value) {\r\n this.visible = true;\r\n this.enabled = enabled;\r\n this.value = value;\r\n }\r\n return SimpleCommandState;\r\n}());\r\nexports.SimpleCommandState = SimpleCommandState;\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar Point_1 = __webpack_require__(4);\r\nvar Browser_1 = __webpack_require__(8);\r\nvar GridLayoutCalculator_1 = __webpack_require__(16);\r\nvar TouchUIHelper_1 = __webpack_require__(14);\r\nvar MouseEventSource;\r\n(function (MouseEventSource) {\r\n MouseEventSource[MouseEventSource[\"TaskArea\"] = 0] = \"TaskArea\";\r\n MouseEventSource[MouseEventSource[\"TaskEdit_Frame\"] = 1] = \"TaskEdit_Frame\";\r\n MouseEventSource[MouseEventSource[\"TaskEdit_Progress\"] = 2] = \"TaskEdit_Progress\";\r\n MouseEventSource[MouseEventSource[\"TaskEdit_Start\"] = 3] = \"TaskEdit_Start\";\r\n MouseEventSource[MouseEventSource[\"TaskEdit_End\"] = 4] = \"TaskEdit_End\";\r\n MouseEventSource[MouseEventSource[\"TaskEdit_DependencyStart\"] = 5] = \"TaskEdit_DependencyStart\";\r\n MouseEventSource[MouseEventSource[\"TaskEdit_DependencyFinish\"] = 6] = \"TaskEdit_DependencyFinish\";\r\n MouseEventSource[MouseEventSource[\"Successor_Wrapper\"] = 7] = \"Successor_Wrapper\";\r\n MouseEventSource[MouseEventSource[\"Successor_DependencyStart\"] = 8] = \"Successor_DependencyStart\";\r\n MouseEventSource[MouseEventSource[\"Successor_DependencyFinish\"] = 9] = \"Successor_DependencyFinish\";\r\n})(MouseEventSource = exports.MouseEventSource || (exports.MouseEventSource = {}));\r\nvar TaskAreaManager = (function () {\r\n function TaskAreaManager(ganttView) {\r\n this.time = new Date();\r\n this.touchTime = new Date();\r\n this.ganttView = ganttView;\r\n this.eventManager = ganttView.eventManager;\r\n this.position = new Point_1.Point(-1, -1);\r\n if (!Browser_1.Browser.WebKitTouchUI)\r\n this.initMouseEvents();\r\n if (Browser_1.Browser.isTouchEnabled())\r\n this.initTouchEvents();\r\n }\r\n TaskAreaManager.prototype.initMouseEvents = function () {\r\n var _this = this;\r\n this.ganttView.taskArea.addEventListener(\"click\", function (evt) { _this.onTaskAreaClick(evt); });\r\n this.ganttView.taskArea.addEventListener(\"scroll\", this.ganttView.updateView.bind(this.ganttView));\r\n this.ganttView.taskArea.addEventListener(\"contextmenu\", function (evt) { _this.onContextMenu(evt); });\r\n this.ganttView.taskArea.addEventListener(DomUtils_1.DomUtils.getMouseWheelEventName(), function (evt) { _this.onMouseWheel(evt); });\r\n this.ganttView.taskArea.addEventListener(\"mousedown\", function (evt) { _this.onMouseDown(evt); });\r\n document.addEventListener(\"mousemove\", function (evt) { _this.onDocumentMouseMove(evt); });\r\n document.addEventListener(\"mouseup\", function (evt) { _this.onDocumentMouseUp(evt); });\r\n document.addEventListener(\"keydown\", function (evt) { _this.onDocumentKeyDown(evt); });\r\n };\r\n TaskAreaManager.prototype.initTouchEvents = function () {\r\n var _this = this;\r\n if (Browser_1.Browser.WebKitTouchUI || Browser_1.Browser.WindowsPlatform && !Browser_1.Browser.Edge && !Browser_1.Browser.IE) {\r\n this.ganttView.taskArea.addEventListener(\"touchstart\", function (evt) { _this.onTouchStart(evt); });\r\n this.ganttView.taskArea.addEventListener(\"touchend\", function (evt) { _this.onTouchEnd(evt); });\r\n this.ganttView.taskArea.addEventListener(\"touchmove\", function (evt) { _this.onTouchMove(evt); });\r\n }\r\n else if (Browser_1.Browser.MSTouchUI) {\r\n this.ganttView.taskArea.classList.add(TaskAreaManager.MS_POINTER_ACTIVE_CLASS);\r\n this.ganttView.taskArea.addEventListener(\"pointerdown\", function (evt) { _this.onMouseDown(evt); });\r\n this.ganttView.taskArea.addEventListener(\"pointerup\", function (evt) { _this.onDocumentMouseUp(evt); });\r\n this.ganttView.taskArea.addEventListener(\"pointermove\", function (evt) { _this.onDocumentMouseMove(evt); });\r\n }\r\n };\r\n TaskAreaManager.prototype.attachEventsOnTask = function (taskElement) {\r\n var _this = this;\r\n taskElement.addEventListener(\"mouseenter\", function (evt) {\r\n if (Browser_1.Browser.MSTouchUI)\r\n setTimeout(function () { return _this.onTaskElementHover(evt); }, 0);\r\n else\r\n _this.onTaskElementHover(evt);\r\n });\r\n };\r\n TaskAreaManager.prototype.onMouseDown = function (evt) {\r\n this.eventManager.onMouseDown(evt);\r\n this.preventSelect = false;\r\n this.position = new Point_1.Point(evt.clientX, evt.clientY);\r\n };\r\n TaskAreaManager.prototype.onDocumentMouseUp = function (evt) {\r\n var _this = this;\r\n this.ganttView.isFocus = DomUtils_1.DomUtils.GetIsParent(this.ganttView.taskArea, DomUtils_1.DomUtils.getEventSource(evt)) ? true : false;\r\n if (this.ganttView.isFocus && !this.preventSelect && this.ganttView.settings.allowSelectTask && !this.isConnectorLine(evt))\r\n setTimeout(function () { _this.changeTaskSelection(_this.getClickedTaskIndex(evt)); }, 0);\r\n this.eventManager.onMouseUp(evt);\r\n };\r\n TaskAreaManager.prototype.onMouseWheel = function (evt) {\r\n this.eventManager.onMouseWheel(evt);\r\n };\r\n TaskAreaManager.prototype.onDocumentKeyDown = function (evt) {\r\n this.eventManager.onKeyDown(evt);\r\n };\r\n TaskAreaManager.prototype.onDocumentMouseMove = function (evt) {\r\n if (this.position.x != evt.clientX || this.position.y != evt.clientY) {\r\n this.eventManager.onMouseMove(evt);\r\n this.preventSelect = true;\r\n }\r\n };\r\n TaskAreaManager.prototype.onTouchStart = function (evt) {\r\n this.position = new Point_1.Point(TouchUIHelper_1.TouchUIHelper.getEventX(evt), TouchUIHelper_1.TouchUIHelper.getEventY(evt));\r\n var now = new Date();\r\n if (evt.touches.length === 1 && now.getTime() - this.touchTime.getTime() < TaskAreaManager.DBLCLICK_INTERVAL) {\r\n evt.preventDefault();\r\n var clickedTask = this.ganttView.viewModel.items[this.getClickedTaskIndex(evt)];\r\n if (clickedTask)\r\n this.ganttView.commandManager.showTaskEditDialog.execute(clickedTask.task);\r\n }\r\n else\r\n this.eventManager.onTouchStart(evt);\r\n this.touchTime = now;\r\n this.preventSelect = false;\r\n };\r\n TaskAreaManager.prototype.onTouchEnd = function (evt) {\r\n this.eventManager.onTouchEnd(evt);\r\n };\r\n TaskAreaManager.prototype.onTouchMove = function (evt) {\r\n if (this.position.x != TouchUIHelper_1.TouchUIHelper.getEventX(evt) || this.position.y != TouchUIHelper_1.TouchUIHelper.getEventY(evt)) {\r\n this.eventManager.onTouchMove(evt);\r\n this.preventSelect = true;\r\n }\r\n };\r\n TaskAreaManager.prototype.onContextMenu = function (evt) {\r\n if (evt.stopPropagation)\r\n evt.stopPropagation();\r\n if (evt.preventDefault)\r\n evt.preventDefault();\r\n if (Browser_1.Browser.WebKitFamily)\r\n evt.returnValue = false;\r\n this.ganttView.ganttOwner.showPopupMenu(new Point_1.Point(DomUtils_1.DomUtils.getEventX(evt), DomUtils_1.DomUtils.getEventY(evt)));\r\n };\r\n TaskAreaManager.prototype.onTaskElementHover = function (evt) {\r\n evt.preventDefault();\r\n var hoveredTaskIndex = this.getClickedTaskIndex(evt);\r\n this.ganttView.taskEditController.show(hoveredTaskIndex);\r\n this.ganttView.taskEditController.showTaskInfo(DomUtils_1.DomUtils.getEventX(evt));\r\n };\r\n TaskAreaManager.prototype.getClickedTaskIndex = function (evt) {\r\n var y = DomUtils_1.DomUtils.getEventY(evt);\r\n var taskAreaY = DomUtils_1.DomUtils.getAbsolutePositionY(this.ganttView.taskArea);\r\n var relativeY = y - taskAreaY;\r\n return Math.floor(relativeY / this.ganttView.tickSize.height);\r\n };\r\n TaskAreaManager.prototype.changeTaskSelection = function (index) {\r\n var clickedTask = this.ganttView.viewModel.items[index];\r\n if (clickedTask)\r\n this.ganttView.ganttOwner.changeGanttTaskSelection(clickedTask.task.id, true);\r\n };\r\n TaskAreaManager.prototype.onTaskAreaClick = function (evt) {\r\n var now = new Date(Date.now());\r\n var clickedTaskIndex = this.getClickedTaskIndex(evt);\r\n if (this.time && now.getTime() - this.time.getTime() < TaskAreaManager.DBLCLICK_INTERVAL) {\r\n evt.preventDefault();\r\n var clickedTask = this.ganttView.viewModel.items[clickedTaskIndex];\r\n if (clickedTask)\r\n this.ganttView.commandManager.showTaskEditDialog.execute(clickedTask.task);\r\n }\r\n this.time = now;\r\n };\r\n TaskAreaManager.prototype.isConnectorLine = function (evt) {\r\n var source = DomUtils_1.DomUtils.getEventSource(evt);\r\n return DomUtils_1.DomUtils.elementHasCssClass(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL) ||\r\n DomUtils_1.DomUtils.elementHasCssClass(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_VERTICAL);\r\n };\r\n TaskAreaManager.DBLCLICK_INTERVAL = 300;\r\n TaskAreaManager.MS_POINTER_ACTIVE_CLASS = \"ms-pointer-active\";\r\n return TaskAreaManager;\r\n}());\r\nexports.TaskAreaManager = TaskAreaManager;\r\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DateRange = (function () {\r\n function DateRange(start, end) {\r\n this.start = start;\r\n this.end = end;\r\n }\r\n return DateRange;\r\n}());\r\nexports.DateRange = DateRange;\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Browser = (function () {\r\n function Browser() {\r\n }\r\n Browser.IdentUserAgent = function (userAgent, ignoreDocumentMode) {\r\n if (ignoreDocumentMode === void 0) { ignoreDocumentMode = false; }\r\n var browserTypesOrderedList = [\"Mozilla\", \"IE\", \"Firefox\", \"Netscape\", \"Safari\", \"Chrome\", \"Opera\", \"Opera10\", \"Edge\"];\r\n var defaultBrowserType = \"IE\";\r\n var defaultPlatform = \"Win\";\r\n var defaultVersions = { Safari: 2, Chrome: 0.1, Mozilla: 1.9, Netscape: 8, Firefox: 2, Opera: 9, IE: 6, Edge: 12 };\r\n if (!userAgent || userAgent.length == 0) {\r\n Browser.fillUserAgentInfo(browserTypesOrderedList, defaultBrowserType, defaultVersions[defaultBrowserType], defaultPlatform);\r\n return;\r\n }\r\n userAgent = userAgent.toLowerCase();\r\n Browser.indentPlatformMajorVersion(userAgent);\r\n try {\r\n var platformIdentStrings = {\r\n \"Windows\": \"Win\",\r\n \"Macintosh\": \"Mac\",\r\n \"Mac OS\": \"Mac\",\r\n \"Mac_PowerPC\": \"Mac\",\r\n \"cpu os\": \"MacMobile\",\r\n \"cpu iphone os\": \"MacMobile\",\r\n \"Android\": \"Android\",\r\n \"!Windows Phone\": \"WinPhone\",\r\n \"!WPDesktop\": \"WinPhone\",\r\n \"!ZuneWP\": \"WinPhone\"\r\n };\r\n var optSlashOrSpace = \"(?:/|\\\\s*)?\";\r\n var versionString = \"(\\\\d+)(?:\\\\.((?:\\\\d+?[1-9])|\\\\d)0*?)?\";\r\n var optVersion = \"(?:\" + versionString + \")?\";\r\n var patterns = {\r\n Safari: \"applewebkit(?:.*?(?:version/\" + versionString + \"[\\\\.\\\\w\\\\d]*?(?:\\\\s+mobile\\/\\\\S*)?\\\\s+safari))?\",\r\n Chrome: \"(?:chrome|crios)(?!frame)\" + optSlashOrSpace + optVersion,\r\n Mozilla: \"mozilla(?:.*rv:\" + optVersion + \".*Gecko)?\",\r\n Netscape: \"(?:netscape|navigator)\\\\d*/?\\\\s*\" + optVersion,\r\n Firefox: \"firefox\" + optSlashOrSpace + optVersion,\r\n Opera: \"(?:opera|\\sopr)\" + optSlashOrSpace + optVersion,\r\n Opera10: \"opera.*\\\\s*version\" + optSlashOrSpace + optVersion,\r\n IE: \"msie\\\\s*\" + optVersion,\r\n Edge: \"edge\" + optSlashOrSpace + optVersion\r\n };\r\n var browserType;\r\n var version = -1;\r\n for (var i = 0; i < browserTypesOrderedList.length; i++) {\r\n var browserTypeCandidate = browserTypesOrderedList[i];\r\n var regExp = new RegExp(patterns[browserTypeCandidate], \"i\");\r\n if (regExp.compile)\r\n regExp.compile(patterns[browserTypeCandidate], \"i\");\r\n var matches = regExp.exec(userAgent);\r\n if (matches && matches.index >= 0) {\r\n if (browserType == \"IE\" && version >= 11 && browserTypeCandidate == \"Safari\")\r\n continue;\r\n browserType = browserTypeCandidate;\r\n if (browserType == \"Opera10\")\r\n browserType = \"Opera\";\r\n var tridentPattern = \"trident\" + optSlashOrSpace + optVersion;\r\n version = Browser.GetBrowserVersion(userAgent, matches, tridentPattern, Browser.getIECompatibleVersionString());\r\n if (browserType == \"Mozilla\" && version >= 11)\r\n browserType = \"IE\";\r\n }\r\n }\r\n if (!browserType)\r\n browserType = defaultBrowserType;\r\n var browserVersionDetected = version != -1;\r\n if (!browserVersionDetected)\r\n version = defaultVersions[browserType];\r\n var platform;\r\n var minOccurenceIndex = Number.MAX_VALUE;\r\n for (var identStr in platformIdentStrings) {\r\n if (!platformIdentStrings.hasOwnProperty(identStr))\r\n continue;\r\n var importantIdent = identStr.substr(0, 1) == \"!\";\r\n var occurenceIndex = userAgent.indexOf((importantIdent ? identStr.substr(1) : identStr).toLowerCase());\r\n if (occurenceIndex >= 0 && (occurenceIndex < minOccurenceIndex || importantIdent)) {\r\n minOccurenceIndex = importantIdent ? 0 : occurenceIndex;\r\n platform = platformIdentStrings[identStr];\r\n }\r\n }\r\n var samsungPattern = \"SM-[A-Z]\";\r\n var m = userAgent.toUpperCase().match(samsungPattern);\r\n var isSamsungAndroidDevice = m && m.length > 0;\r\n if (platform == \"WinPhone\" && version < 9)\r\n version = Math.floor(Browser.getVersionFromTrident(userAgent, \"trident\" + optSlashOrSpace + optVersion));\r\n if (!ignoreDocumentMode && browserType == \"IE\" && version > 7 && document.documentMode < version)\r\n version = document.documentMode;\r\n if (platform == \"WinPhone\")\r\n version = Math.max(9, version);\r\n if (!platform)\r\n platform = defaultPlatform;\r\n if (platform == platformIdentStrings[\"cpu os\"] && !browserVersionDetected)\r\n version = 4;\r\n Browser.fillUserAgentInfo(browserTypesOrderedList, browserType, version, platform, isSamsungAndroidDevice);\r\n }\r\n catch (e) {\r\n Browser.fillUserAgentInfo(browserTypesOrderedList, defaultBrowserType, defaultVersions[defaultBrowserType], defaultPlatform);\r\n }\r\n };\r\n Browser.GetBrowserVersion = function (userAgent, matches, tridentPattern, ieCompatibleVersionString) {\r\n var version = Browser.getVersionFromMatches(matches);\r\n if (ieCompatibleVersionString) {\r\n var versionFromTrident = Browser.getVersionFromTrident(userAgent, tridentPattern);\r\n if (ieCompatibleVersionString === \"edge\" || parseInt(ieCompatibleVersionString) === versionFromTrident)\r\n return versionFromTrident;\r\n }\r\n return version;\r\n };\r\n Browser.getIECompatibleVersionString = function () {\r\n if (document.compatible) {\r\n for (var i = 0; i < document.compatible.length; i++)\r\n if (document.compatible[i].userAgent === \"IE\" && document.compatible[i].version)\r\n return document.compatible[i].version.toLowerCase();\r\n }\r\n return \"\";\r\n };\r\n Browser.isTouchEnabled = function () {\r\n return (\"ontouchstart\" in window) ||\r\n (navigator[\"maxTouchPoints\"] > 0) ||\r\n (navigator[\"msMaxTouchPoints\"] > 0);\r\n };\r\n Browser.fillUserAgentInfo = function (browserTypesOrderedList, browserType, version, platform, isSamsungAndroidDevice) {\r\n if (isSamsungAndroidDevice === void 0) { isSamsungAndroidDevice = false; }\r\n for (var i = 0; i < browserTypesOrderedList.length; i++) {\r\n var type = browserTypesOrderedList[i];\r\n Browser[type] = type == browserType;\r\n }\r\n Browser.Version = Math.floor(10.0 * version) / 10.0;\r\n Browser.MajorVersion = Math.floor(Browser.Version);\r\n Browser.WindowsPlatform = platform == \"Win\" || platform == \"WinPhone\";\r\n Browser.MacOSMobilePlatform = platform == \"MacMobile\" || (platform == \"Mac\" && Browser.isTouchEnabled());\r\n Browser.MacOSPlatform = platform == \"Mac\" && !Browser.MacOSMobilePlatform;\r\n Browser.AndroidMobilePlatform = platform == \"Android\";\r\n Browser.WindowsPhonePlatform = platform == \"WinPhone\";\r\n Browser.WebKitFamily = Browser.Safari || Browser.Chrome || Browser.Opera && Browser.MajorVersion >= 15;\r\n Browser.NetscapeFamily = Browser.Netscape || Browser.Mozilla || Browser.Firefox;\r\n Browser.HardwareAcceleration = (Browser.IE && Browser.MajorVersion >= 9) || (Browser.Firefox && Browser.MajorVersion >= 4) ||\r\n (Browser.AndroidMobilePlatform && Browser.Chrome) || (Browser.Chrome && Browser.MajorVersion >= 37) ||\r\n (Browser.Safari && !Browser.WindowsPlatform) || Browser.Edge || (Browser.Opera && Browser.MajorVersion >= 46);\r\n Browser.WebKitTouchUI = Browser.MacOSMobilePlatform || Browser.AndroidMobilePlatform;\r\n var isIETouchUI = Browser.IE && Browser.MajorVersion > 9 && Browser.WindowsPlatform && Browser.UserAgent.toLowerCase().indexOf(\"touch\") >= 0;\r\n Browser.MSTouchUI = isIETouchUI || (Browser.Edge && !!window.navigator.maxTouchPoints);\r\n Browser.TouchUI = Browser.WebKitTouchUI || Browser.MSTouchUI;\r\n Browser.MobileUI = Browser.WebKitTouchUI || Browser.WindowsPhonePlatform;\r\n Browser.AndroidDefaultBrowser = Browser.AndroidMobilePlatform && !Browser.Chrome;\r\n Browser.AndroidChromeBrowser = Browser.AndroidMobilePlatform && Browser.Chrome;\r\n if (isSamsungAndroidDevice)\r\n Browser.SamsungAndroidDevice = isSamsungAndroidDevice;\r\n if (Browser.MSTouchUI) {\r\n var isARMArchitecture = Browser.UserAgent.toLowerCase().indexOf(\"arm;\") > -1;\r\n Browser.VirtualKeyboardSupported = isARMArchitecture || Browser.WindowsPhonePlatform;\r\n }\r\n else {\r\n Browser.VirtualKeyboardSupported = Browser.WebKitTouchUI;\r\n }\r\n Browser.fillDocumentElementBrowserTypeClassNames(browserTypesOrderedList);\r\n };\r\n Browser.indentPlatformMajorVersion = function (userAgent) {\r\n var regex = /(?:(?:windows nt|macintosh|mac os|cpu os|cpu iphone os|android|windows phone|linux) )(\\d+)(?:[-0-9_.])*/;\r\n var matches = regex.exec(userAgent);\r\n if (matches)\r\n Browser.PlaformMajorVersion = matches[1];\r\n };\r\n Browser.prototype.GetBrowserVersion = function (userAgent, matches, tridentPattern, ieCompatibleVersionString) {\r\n var version = Browser.getVersionFromMatches(matches);\r\n if (ieCompatibleVersionString) {\r\n var versionFromTrident = Browser.getVersionFromTrident(userAgent, tridentPattern);\r\n if (ieCompatibleVersionString === \"edge\" || parseInt(ieCompatibleVersionString) === versionFromTrident)\r\n return versionFromTrident;\r\n }\r\n return version;\r\n };\r\n Browser.getVersionFromMatches = function (matches) {\r\n var result = -1;\r\n var versionStr = \"\";\r\n if (matches[1]) {\r\n versionStr += matches[1];\r\n if (matches[2])\r\n versionStr += \".\" + matches[2];\r\n }\r\n if (versionStr != \"\") {\r\n result = parseFloat(versionStr);\r\n if (isNaN(result))\r\n result = -1;\r\n }\r\n return result;\r\n };\r\n Browser.getVersionFromTrident = function (userAgent, tridentPattern) {\r\n var tridentDiffFromVersion = 4;\r\n var matches = new RegExp(tridentPattern, \"i\").exec(userAgent);\r\n return Browser.getVersionFromMatches(matches) + tridentDiffFromVersion;\r\n };\r\n Browser.fillDocumentElementBrowserTypeClassNames = function (browserTypesOrderedList) {\r\n var documentElementClassName = \"\";\r\n var browserTypeslist = browserTypesOrderedList.concat([\"WindowsPlatform\", \"MacOSPlatform\", \"MacOSMobilePlatform\", \"AndroidMobilePlatform\",\r\n \"WindowsPhonePlatform\", \"WebKitFamily\", \"WebKitTouchUI\", \"MSTouchUI\", \"TouchUI\", \"AndroidDefaultBrowser\"]);\r\n for (var i = 0; i < browserTypeslist.length; i++) {\r\n var type = browserTypeslist[i];\r\n if (Browser[type])\r\n documentElementClassName += \"dx\" + type + \" \";\r\n }\r\n documentElementClassName += \"dxBrowserVersion-\" + Browser.MajorVersion;\r\n if (document && document.documentElement) {\r\n if (document.documentElement.className != \"\")\r\n documentElementClassName = \" \" + documentElementClassName;\r\n document.documentElement.className += documentElementClassName;\r\n Browser.Info = documentElementClassName;\r\n }\r\n };\r\n Browser.UserAgent = window.navigator.userAgent.toLowerCase();\r\n Browser._foo = Browser.IdentUserAgent(Browser.UserAgent);\r\n return Browser;\r\n}());\r\nexports.Browser = Browser;\r\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Utils_1 = __webpack_require__(2);\r\nvar DataObject = (function () {\r\n function DataObject() {\r\n this.internalId = this.generateGuid();\r\n }\r\n DataObject.prototype.assignFromObject = function (sourceObj) {\r\n if (!Utils_1.JsonUtils.isExists(sourceObj))\r\n return;\r\n if (Utils_1.JsonUtils.isExists(sourceObj.id)) {\r\n this.id = sourceObj.id;\r\n this.internalId = String(sourceObj.id);\r\n }\r\n };\r\n DataObject.prototype.generateGuid = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n };\r\n return DataObject;\r\n}());\r\nexports.DataObject = DataObject;\r\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem = (function () {\r\n function HistoryItem(modelManipulator) {\r\n this.modelManipulator = modelManipulator;\r\n }\r\n return HistoryItem;\r\n}());\r\nexports.HistoryItem = HistoryItem;\r\nvar CompositionHistoryItem = (function (_super) {\r\n tslib_1.__extends(CompositionHistoryItem, _super);\r\n function CompositionHistoryItem() {\r\n var _this = _super.call(this, null) || this;\r\n _this.historyItems = [];\r\n return _this;\r\n }\r\n CompositionHistoryItem.prototype.redo = function () {\r\n var item;\r\n for (var i = 0; item = this.historyItems[i]; i++)\r\n item.redo();\r\n };\r\n CompositionHistoryItem.prototype.undo = function () {\r\n var item;\r\n for (var i = this.historyItems.length - 1; item = this.historyItems[i]; i--)\r\n item.undo();\r\n };\r\n CompositionHistoryItem.prototype.add = function (historyItem) {\r\n if (historyItem == null)\r\n throw new Error(\"Can't add null HistoryItem\");\r\n this.historyItems.push(historyItem);\r\n };\r\n CompositionHistoryItem.prototype.undoItemsQuery = function () {\r\n this.undo();\r\n };\r\n return CompositionHistoryItem;\r\n}(HistoryItem));\r\nexports.CompositionHistoryItem = CompositionHistoryItem;\r\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Utils_1 = __webpack_require__(2);\r\nvar CollectionBase = (function () {\r\n function CollectionBase() {\r\n this._items = new Array();\r\n this._isGanttCollection = true;\r\n }\r\n CollectionBase.prototype.add = function (element) {\r\n if (!Utils_1.JsonUtils.isExists(element))\r\n return;\r\n if (!!this.getItemById(element.internalId))\r\n throw \"The collection item with id ='\" + element.internalId + \"' already exists.\";\r\n this._items.push(element);\r\n };\r\n CollectionBase.prototype.addRange = function (range) {\r\n for (var i = 0; i < range.length; i++)\r\n this.add(range[i]);\r\n };\r\n CollectionBase.prototype.remove = function (element) {\r\n var index = this._items.indexOf(element);\r\n if (index > -1 && index < this._items.length)\r\n this._items.splice(index, 1);\r\n };\r\n CollectionBase.prototype.clear = function () {\r\n this._items.splice(0, this._items.length);\r\n };\r\n Object.defineProperty(CollectionBase.prototype, \"items\", {\r\n get: function () {\r\n return this._items.slice();\r\n },\r\n set: function (value) {\r\n if (value)\r\n this._items = value.slice();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CollectionBase.prototype, \"length\", {\r\n get: function () {\r\n return this._items.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n CollectionBase.prototype.getItem = function (index) {\r\n if (index > -1 && index < this._items.length)\r\n return this._items[index];\r\n return null;\r\n };\r\n CollectionBase.prototype.getItemById = function (id) {\r\n return this._items.filter(function (val) { return val.internalId === id; })[0];\r\n };\r\n CollectionBase.prototype.getItemByPublicId = function (id) {\r\n return this._items.filter(function (val) { return val.id === id || val.id.toString() === id; })[0];\r\n };\r\n CollectionBase.prototype.assign = function (sourceCollection) {\r\n if (!Utils_1.JsonUtils.isExists(sourceCollection))\r\n return;\r\n this.items = sourceCollection.items;\r\n };\r\n CollectionBase.prototype.importFromObject = function (source) {\r\n if (!Utils_1.JsonUtils.isExists(source))\r\n return;\r\n this.clear();\r\n if (source._isGanttCollection)\r\n this.assign(source);\r\n else if (source instanceof Array) {\r\n this.importFromArray(source);\r\n }\r\n else {\r\n this.createItemFromObjectAndAdd(source);\r\n }\r\n };\r\n CollectionBase.prototype.createItemFromObjectAndAdd = function (source) {\r\n if (Utils_1.JsonUtils.isExists(source)) {\r\n var item = this.createItem();\r\n item.assignFromObject(source);\r\n this.add(item);\r\n }\r\n };\r\n CollectionBase.prototype.importFromArray = function (values) {\r\n for (var i = 0; i < values.length; i++)\r\n this.createItemFromObjectAndAdd(values[i]);\r\n };\r\n CollectionBase.prototype.importFromJSON = function (json) {\r\n this.importFromObject(Utils_1.JsonUtils.evalJson(json));\r\n };\r\n return CollectionBase;\r\n}());\r\nexports.CollectionBase = CollectionBase;\r\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DataObject_1 = __webpack_require__(9);\r\nvar Utils_1 = __webpack_require__(2);\r\nvar DependencyType;\r\n(function (DependencyType) {\r\n DependencyType[DependencyType[\"FS\"] = 0] = \"FS\";\r\n DependencyType[DependencyType[\"SS\"] = 1] = \"SS\";\r\n DependencyType[DependencyType[\"FF\"] = 2] = \"FF\";\r\n DependencyType[DependencyType[\"SF\"] = 3] = \"SF\";\r\n})(DependencyType = exports.DependencyType || (exports.DependencyType = {}));\r\nvar Dependency = (function (_super) {\r\n tslib_1.__extends(Dependency, _super);\r\n function Dependency() {\r\n var _this = _super.call(this) || this;\r\n _this.predecessorId = \"\";\r\n _this.successorId = \"\";\r\n _this.type = null;\r\n return _this;\r\n }\r\n Dependency.prototype.assignFromObject = function (sourceObj) {\r\n if (Utils_1.JsonUtils.isExists(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.internalId = String(sourceObj.id);\r\n this.predecessorId = String(sourceObj.predecessorId);\r\n this.successorId = String(sourceObj.successorId);\r\n this.type = this.parseType(sourceObj.type);\r\n }\r\n };\r\n Dependency.prototype.parseType = function (type) {\r\n if (Utils_1.JsonUtils.isExists(type)) {\r\n var text = type.toString().toUpperCase();\r\n switch (text) {\r\n case \"SS\":\r\n case \"1\":\r\n return DependencyType.SS;\r\n case \"FF\":\r\n case \"2\":\r\n return DependencyType.FF;\r\n case \"SF\":\r\n case \"3\":\r\n return DependencyType.SF;\r\n default: return DependencyType.FS;\r\n }\r\n }\r\n else\r\n return DependencyType.FS;\r\n };\r\n return Dependency;\r\n}(DataObject_1.DataObject));\r\nexports.Dependency = Dependency;\r\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewType;\r\n(function (ViewType) {\r\n ViewType[ViewType[\"TenMinutes\"] = 0] = \"TenMinutes\";\r\n ViewType[ViewType[\"Hours\"] = 1] = \"Hours\";\r\n ViewType[ViewType[\"SixHours\"] = 2] = \"SixHours\";\r\n ViewType[ViewType[\"Days\"] = 3] = \"Days\";\r\n ViewType[ViewType[\"Weeks\"] = 4] = \"Weeks\";\r\n ViewType[ViewType[\"Months\"] = 5] = \"Months\";\r\n ViewType[ViewType[\"Quarter\"] = 6] = \"Quarter\";\r\n ViewType[ViewType[\"Years\"] = 7] = \"Years\";\r\n ViewType[ViewType[\"FiveYears\"] = 8] = \"FiveYears\";\r\n})(ViewType = exports.ViewType || (exports.ViewType = {}));\r\nvar Position;\r\n(function (Position) {\r\n Position[Position[\"Left\"] = 0] = \"Left\";\r\n Position[Position[\"Top\"] = 1] = \"Top\";\r\n Position[Position[\"Right\"] = 2] = \"Right\";\r\n Position[Position[\"Bottom\"] = 3] = \"Bottom\";\r\n})(Position = exports.Position || (exports.Position = {}));\r\nvar TaskTitlePosition;\r\n(function (TaskTitlePosition) {\r\n TaskTitlePosition[TaskTitlePosition[\"Inside\"] = 0] = \"Inside\";\r\n TaskTitlePosition[TaskTitlePosition[\"Outside\"] = 1] = \"Outside\";\r\n TaskTitlePosition[TaskTitlePosition[\"None\"] = 2] = \"None\";\r\n})(TaskTitlePosition = exports.TaskTitlePosition || (exports.TaskTitlePosition = {}));\r\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Browser_1 = __webpack_require__(8);\r\nvar TouchUIHelper = (function () {\r\n function TouchUIHelper() {\r\n }\r\n TouchUIHelper.isTouchEventName = function (eventName) {\r\n return Browser_1.Browser.WebKitTouchUI && (eventName.indexOf(\"touch\") > -1 || eventName.indexOf(\"gesture\") > -1);\r\n };\r\n TouchUIHelper.getEventX = function (evt) {\r\n return Browser_1.Browser.IE ? evt.pageX : evt.changedTouches[0].pageX;\r\n };\r\n TouchUIHelper.getEventY = function (evt) {\r\n return Browser_1.Browser.IE ? evt.pageY : evt.changedTouches[0].pageY;\r\n };\r\n TouchUIHelper.touchMouseDownEventName = Browser_1.Browser.WebKitTouchUI ? \"touchstart\" : (Browser_1.Browser.Edge && Browser_1.Browser.MSTouchUI && window.PointerEvent ? \"pointerdown\" : \"mousedown\");\r\n TouchUIHelper.touchMouseUpEventName = Browser_1.Browser.WebKitTouchUI ? \"touchend\" : (Browser_1.Browser.Edge && Browser_1.Browser.MSTouchUI && window.PointerEvent ? \"pointerup\" : \"mouseup\");\r\n TouchUIHelper.touchMouseMoveEventName = Browser_1.Browser.WebKitTouchUI ? \"touchmove\" : (Browser_1.Browser.Edge && Browser_1.Browser.MSTouchUI && window.PointerEvent ? \"pointermove\" : \"mousemove\");\r\n TouchUIHelper.msTouchDraggableClassName = \"dxMSTouchDraggable\";\r\n return TouchUIHelper;\r\n}());\r\nexports.TouchUIHelper = TouchUIHelper;\r\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DataObject_1 = __webpack_require__(9);\r\nvar DayOfWeek_1 = __webpack_require__(58);\r\nvar DayOfWeekMonthlyOccurrence_1 = __webpack_require__(31);\r\nvar Month_1 = __webpack_require__(59);\r\nvar Utils_1 = __webpack_require__(2);\r\nvar DateTimeUtils_1 = __webpack_require__(3);\r\nvar RecurrenceFactory_1 = __webpack_require__(32);\r\nvar RecurrenceBase = (function (_super) {\r\n tslib_1.__extends(RecurrenceBase, _super);\r\n function RecurrenceBase(start, end, interval, occurrenceCount) {\r\n if (start === void 0) { start = null; }\r\n if (end === void 0) { end = null; }\r\n if (interval === void 0) { interval = 1; }\r\n if (occurrenceCount === void 0) { occurrenceCount = 0; }\r\n var _this = _super.call(this) || this;\r\n _this._start = null;\r\n _this._end = null;\r\n _this._interval = 1;\r\n _this._occurrenceCount = 0;\r\n _this._dayOfWeek = 0;\r\n _this._day = 1;\r\n _this._dayOfWeekOccurrence = 0;\r\n _this._month = 0;\r\n _this._calculateByDayOfWeek = false;\r\n _this.start = start;\r\n _this.end = end;\r\n _this.interval = interval;\r\n _this.occurrenceCount = occurrenceCount;\r\n return _this;\r\n }\r\n RecurrenceBase.prototype.assignFromObject = function (sourceObj) {\r\n if (Utils_1.JsonUtils.isExists(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.start = DateTimeUtils_1.DateTimeUtils.convertToDate(sourceObj.start);\r\n this.end = DateTimeUtils_1.DateTimeUtils.convertToDate(sourceObj.end);\r\n if (Utils_1.JsonUtils.isExists(sourceObj.interval))\r\n this.interval = sourceObj.interval;\r\n if (Utils_1.JsonUtils.isExists(sourceObj.occurrenceCount))\r\n this.occurrenceCount = sourceObj.occurrenceCount;\r\n if (Utils_1.JsonUtils.isExists(sourceObj.dayOfWeek))\r\n this.dayOfWeekInternal = RecurrenceFactory_1.RecurrenceFactory.getEnumValue(DayOfWeek_1.DayOfWeek, sourceObj.dayOfWeek);\r\n if (Utils_1.JsonUtils.isExists(sourceObj.day))\r\n this.dayInternal = sourceObj.day;\r\n if (Utils_1.JsonUtils.isExists(sourceObj.dayOfWeekOccurrence))\r\n this.dayOfWeekOccurrenceInternal = RecurrenceFactory_1.RecurrenceFactory.getEnumValue(DayOfWeekMonthlyOccurrence_1.DayOfWeekMonthlyOccurrence, sourceObj.dayOfWeekOccurrence);\r\n if (Utils_1.JsonUtils.isExists(sourceObj.month))\r\n this.monthInternal = RecurrenceFactory_1.RecurrenceFactory.getEnumValue(Month_1.Month, sourceObj.month);\r\n if (Utils_1.JsonUtils.isExists(sourceObj.calculateByDayOfWeek))\r\n this._calculateByDayOfWeek = !!sourceObj.calculateByDayOfWeek;\r\n }\r\n };\r\n RecurrenceBase.prototype.calculatePoints = function (start, end) {\r\n if (!start || !end)\r\n return new Array();\r\n var from = DateTimeUtils_1.DateTimeUtils.getMaxDate(start, this._start);\r\n var to = DateTimeUtils_1.DateTimeUtils.getMinDate(end, this._end);\r\n if (this._occurrenceCount > 0)\r\n return this.calculatePointsByOccurrenceCount(from, to);\r\n return this.calculatePointsByDateRange(from, to);\r\n };\r\n RecurrenceBase.prototype.calculatePointsByOccurrenceCount = function (start, end) {\r\n var points = new Array();\r\n var point = this.getFirstPoint(start);\r\n while (!!point && points.length < this._occurrenceCount && DateTimeUtils_1.DateTimeUtils.compareDates(point, end) >= 0) {\r\n if (this.isRecurrencePoint(point))\r\n points.push(point);\r\n point = this.getNextPoint(point);\r\n }\r\n return points;\r\n };\r\n RecurrenceBase.prototype.calculatePointsByDateRange = function (start, end) {\r\n var points = new Array();\r\n var point = this.getFirstPoint(start);\r\n while (!!point && DateTimeUtils_1.DateTimeUtils.compareDates(point, end) >= 0) {\r\n if (this.isRecurrencePoint(point))\r\n points.push(point);\r\n point = this.getNextPoint(point);\r\n }\r\n return points;\r\n };\r\n RecurrenceBase.prototype.getFirstPoint = function (start) {\r\n if (this.isRecurrencePoint(start))\r\n return start;\r\n return this.getNextPoint(start);\r\n };\r\n ;\r\n RecurrenceBase.prototype.isRecurrencePoint = function (date) {\r\n return this.isDateInRange(date) && this.checkDate(date) && (!this.useIntervalInCalc() || this.checkInterval(date));\r\n };\r\n RecurrenceBase.prototype.isDateInRange = function (date) {\r\n if (!date)\r\n return false;\r\n if (this._start && DateTimeUtils_1.DateTimeUtils.compareDates(this.start, date) < 0)\r\n return false;\r\n if (this._occurrenceCount == 0 && this.end && DateTimeUtils_1.DateTimeUtils.compareDates(date, this.end) < 0)\r\n return false;\r\n return true;\r\n };\r\n RecurrenceBase.prototype.useIntervalInCalc = function () {\r\n return this.interval > 1 && !!this._start;\r\n };\r\n RecurrenceBase.prototype.getNextPoint = function (date) {\r\n if (!this.isDateInRange(date))\r\n return null;\r\n if (this.useIntervalInCalc())\r\n return this.calculatePointByInterval(date);\r\n return this.calculateNearestPoint(date);\r\n };\r\n ;\r\n RecurrenceBase.prototype.getSpecDayInMonth = function (year, month) {\r\n var date;\r\n if (this._calculateByDayOfWeek)\r\n date = DateTimeUtils_1.DateTimeUtils.getSpecificDayOfWeekInMonthDate(this.dayOfWeekInternal, year, month, this.dayOfWeekOccurrenceInternal);\r\n else\r\n date = new Date(year, month, this.dayInternal);\r\n return date;\r\n };\r\n Object.defineProperty(RecurrenceBase.prototype, \"dayInternal\", {\r\n get: function () { return this._day; },\r\n set: function (value) {\r\n if (value > 0 && value <= 31)\r\n this._day = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(RecurrenceBase.prototype, \"dayOfWeekInternal\", {\r\n get: function () { return this._dayOfWeek; },\r\n set: function (dayOfWeek) {\r\n if (dayOfWeek >= DayOfWeek_1.DayOfWeek.Sunday && dayOfWeek <= DayOfWeek_1.DayOfWeek.Saturday)\r\n this._dayOfWeek = dayOfWeek;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(RecurrenceBase.prototype, \"dayOfWeekOccurrenceInternal\", {\r\n get: function () {\r\n return this._dayOfWeekOccurrence;\r\n },\r\n set: function (value) {\r\n if (value >= DayOfWeekMonthlyOccurrence_1.DayOfWeekMonthlyOccurrence.First && value <= DayOfWeekMonthlyOccurrence_1.DayOfWeekMonthlyOccurrence.Last)\r\n this._dayOfWeekOccurrence = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(RecurrenceBase.prototype, \"monthInternal\", {\r\n get: function () { return this._month; },\r\n set: function (value) {\r\n if (value >= Month_1.Month.January && value <= Month_1.Month.December)\r\n this._month = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(RecurrenceBase.prototype, \"start\", {\r\n get: function () { return this._start; },\r\n set: function (date) {\r\n if (!date)\r\n return;\r\n this._start = date;\r\n if (!!this._end && date > this._end)\r\n this._end = date;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(RecurrenceBase.prototype, \"end\", {\r\n get: function () { return this._end; },\r\n set: function (date) {\r\n if (!date)\r\n return;\r\n this._end = date;\r\n if (!!this._start && date < this._start)\r\n this._start = date;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(RecurrenceBase.prototype, \"occurrenceCount\", {\r\n get: function () { return this._occurrenceCount; },\r\n set: function (value) {\r\n if (value < 0)\r\n value = 0;\r\n this._occurrenceCount = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(RecurrenceBase.prototype, \"interval\", {\r\n get: function () { return this._interval; },\r\n set: function (value) {\r\n if (value > 0)\r\n this._interval = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n return RecurrenceBase;\r\n}(DataObject_1.DataObject));\r\nexports.RecurrenceBase = RecurrenceBase;\r\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Size_1 = __webpack_require__(23);\r\nvar DateRange_1 = __webpack_require__(7);\r\nvar Enums_1 = __webpack_require__(13);\r\nvar GridElementInfo_1 = __webpack_require__(35);\r\nvar Utils_1 = __webpack_require__(34);\r\nvar Point_1 = __webpack_require__(4);\r\nvar Dependency_1 = __webpack_require__(12);\r\nvar Settings_1 = __webpack_require__(36);\r\nvar GridLayoutCalculator = (function () {\r\n function GridLayoutCalculator() {\r\n this.tileToDependencyMap = [];\r\n this.tileToNoWorkingIntervalsMap = [];\r\n this.minLineLength = 10;\r\n this.resourceMaxWidth = 500;\r\n this.minTaskWidth = 2;\r\n }\r\n GridLayoutCalculator.prototype.setSettings = function (visibleTaskAreaSize, tickSize, elementSizeValues, range, viewModel, viewType, scrollBarHeight) {\r\n if (scrollBarHeight === void 0) { scrollBarHeight = 0; }\r\n this.visibleTaskAreaSize = visibleTaskAreaSize;\r\n this.tickSize = tickSize;\r\n this.viewType = viewType;\r\n this.range = range;\r\n this.verticalTickCount = viewModel.itemCount;\r\n this.viewModel = viewModel;\r\n this.elementSizeValues = elementSizeValues;\r\n this.taskHeight = elementSizeValues.taskHeight;\r\n this.parentTaskHeight = elementSizeValues.parentTaskHeight;\r\n this.milestoneWidth = elementSizeValues.milestoneWidth;\r\n this.scaleHeight = elementSizeValues.scaleItemHeight;\r\n this.arrowSize = new Size_1.Size(elementSizeValues.connectorArrowWidth, elementSizeValues.connectorArrowWidth);\r\n this.lineThickness = elementSizeValues.connectorLineThickness;\r\n this.minConnectorSpaceFromTask = (this.tickSize.height - this.taskHeight) / 2;\r\n this.tickTimeSpan = Utils_1.DateUtils.getTickTimeSpan(viewType);\r\n this.horizontalTickCount = this.getTotalTickCount();\r\n this.scrollBarHeight = scrollBarHeight;\r\n this.createTileToConnectorLinesMap();\r\n this.createTileToNonWorkingIntervalsMap();\r\n };\r\n GridLayoutCalculator.prototype.getTaskAreaBorderInfo = function (index, isVertical) {\r\n var sizeValue = isVertical ?\r\n this.getVerticalGridLineHeight() :\r\n this.tickSize.width * this.horizontalTickCount;\r\n return this.getGridBorderInfo(index, isVertical, sizeValue);\r\n };\r\n GridLayoutCalculator.prototype.getScaleBorderInfo = function (index, scaleType) {\r\n var result = this.getGridBorderInfo(index, true, this.scaleHeight);\r\n result.position.x *= this.getScaleItemColSpan(scaleType);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getGridBorderInfo = function (index, isVertical, size) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.setPosition(this.getGridBorderPosition(index, isVertical));\r\n if (size)\r\n result.setSize(this.getGridBorderSize(isVertical, size));\r\n result.className = isVertical ? \"dx-gantt-vb\" : \"dx-gantt-hb\";\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getGridBorderPosition = function (index, isVertical) {\r\n var result = new Point_1.Point();\r\n var posValue = (index + 1) * (isVertical ? this.tickSize.width : this.tickSize.height);\r\n if (isVertical)\r\n result.x = posValue;\r\n else\r\n result.y = posValue;\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getGridBorderSize = function (isVertical, sizeValue) {\r\n var result = new Size_1.Size();\r\n if (isVertical)\r\n result.height = sizeValue;\r\n else\r\n result.width = sizeValue;\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getScaleElementInfo = function (index, scaleType) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.setPosition(this.getScaleItemPosition(index, scaleType));\r\n result.setSize(this.getScaleItemSize(scaleType));\r\n result.className = this.getScaleItemClassName(scaleType, result, this.getRenderedNoWorkingIntervals(result.position.x));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getScaleItemClassName = function (scaleType, scaleItemInfo, noWorkingIntervals) {\r\n var result = \"dx-gantt-si\";\r\n if (scaleType.valueOf() == this.viewType.valueOf() && this.isScaleItemInsideNoWorkingInterval(scaleItemInfo, noWorkingIntervals))\r\n result += \" dx-gantt-holiday-scaleItem\";\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.isScaleItemInsideNoWorkingInterval = function (scaleItemInfo, noWorkingIntervals) {\r\n var scaleItemLeft = scaleItemInfo.position.x;\r\n var scaleItemRight = scaleItemInfo.position.x + scaleItemInfo.size.width;\r\n for (var i = 0; i < noWorkingIntervals.length; i++) {\r\n var noWorkingIntervalLeft = noWorkingIntervals[i].position.x;\r\n var noWorkingIntervalRight = noWorkingIntervals[i].position.x + noWorkingIntervals[i].size.width;\r\n if (scaleItemLeft >= noWorkingIntervalLeft && scaleItemRight <= noWorkingIntervalRight)\r\n return true;\r\n }\r\n return false;\r\n };\r\n GridLayoutCalculator.prototype.getScaleItemPosition = function (index, scaleType) {\r\n return new Point_1.Point(index * this.tickSize.width * this.getScaleItemColSpan(scaleType));\r\n };\r\n GridLayoutCalculator.prototype.getScaleItemSize = function (scaleType) {\r\n return new Size_1.Size(this.tickSize.width * this.getScaleItemColSpan(scaleType));\r\n };\r\n GridLayoutCalculator.prototype.getScaleItemColSpan = function (scaleType) {\r\n if (scaleType.valueOf() == this.viewType.valueOf())\r\n return 1;\r\n if (this.viewType == Enums_1.ViewType.TenMinutes)\r\n return 6;\r\n if (this.viewType == Enums_1.ViewType.Hours)\r\n return 24;\r\n if (this.viewType == Enums_1.ViewType.SixHours)\r\n return 4;\r\n if (this.viewType == Enums_1.ViewType.Days)\r\n return 7;\r\n if (this.viewType == Enums_1.ViewType.Weeks)\r\n return 4.29;\r\n if (this.viewType == Enums_1.ViewType.Months)\r\n return 12;\r\n if (this.viewType == Enums_1.ViewType.Quarter)\r\n return 4;\r\n if (this.viewType == Enums_1.ViewType.Years)\r\n return 5;\r\n return 1;\r\n };\r\n GridLayoutCalculator.prototype.getTaskWrapperElementInfo = function (index) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.className = this.getTaskWrapperClassName(index);\r\n result.setPosition(this.getTaskWrapperPoint(index));\r\n result.setAttribute(\"task-index\", index);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskWrapperClassName = function (index) {\r\n var result = \"dx-gantt-taskWrapper\";\r\n if (this.getTask(index).isMilestone())\r\n result = \"dx-gantt-milestoneWrapper\";\r\n if (this.viewModel.items[index].selected)\r\n result += \" dx-gantt-selectedTask\";\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskWrapperPoint = function (index) {\r\n var height = this.getTaskHeight(index);\r\n var y = index * this.tickSize.height + (this.tickSize.height - height) / 2;\r\n var result = new Point_1.Point(this.getPosByDate(this.getTask(index).start), y);\r\n if (this.getTask(index).isMilestone()) {\r\n var height_1 = this.getTaskHeight(index);\r\n result.x -= height_1 / 2;\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskElementInfo = function (index, textOutsideTask) {\r\n if (textOutsideTask === void 0) { textOutsideTask = false; }\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n var task = this.getTask(index);\r\n var autoCalculatedParent = this.viewModel.parentAutoCalc && this.viewModel.taskHasChildrenByIndex(index);\r\n if (!task.isMilestone()) {\r\n result.size.width = this.getTaskWidth(index);\r\n if (textOutsideTask)\r\n result.size.height = this.getTaskHeight(index);\r\n }\r\n result.className = this.getTaskClassName(index, result.size.width);\r\n if (task.color) {\r\n result.style.backgroundColor = task.color;\r\n if (autoCalculatedParent) {\r\n result.style.borderLeftColor = task.color;\r\n result.style.borderRightColor = task.color;\r\n result.style.borderTopColor = task.color;\r\n }\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskClassName = function (index, taskWidth) {\r\n var result = \"dx-gantt-task\";\r\n var task = this.getTask(index);\r\n var autoCalculatedParent = this.viewModel.parentAutoCalc && this.viewModel.taskHasChildrenByIndex(index);\r\n if (task.isMilestone())\r\n result += \" dx-gantt-milestone\";\r\n else if (taskWidth <= this.elementSizeValues.smallTaskWidth)\r\n result += \" dx-gantt-smallTask\";\r\n if (autoCalculatedParent)\r\n result += this.getAutoCalcParentTaskClassName(task);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getAutoCalcParentTaskClassName = function (task) {\r\n var result = \" dx-gantt-parent\";\r\n if (task.progress == 0)\r\n result += \" dx-gantt-noPrg\";\r\n if (task.progress >= 100)\r\n result += \" dx-gantt-cmpl\";\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskPoint = function (index) {\r\n var result = this.getTaskWrapperPoint(index);\r\n if (!this.getTask(index).isMilestone())\r\n result.y += this.elementSizeValues.taskWrapperTopPadding;\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskSize = function (index) {\r\n return new Size_1.Size(this.getTaskWidth(index), this.getTaskHeight(index));\r\n };\r\n GridLayoutCalculator.prototype.getTaskWidth = function (index) {\r\n var task = this.getTask(index);\r\n return task.isMilestone() ? this.getTaskHeight(index) : Math.max(this.getWidthByDateRange(task.start, task.end), this.minTaskWidth);\r\n };\r\n GridLayoutCalculator.prototype.getTaskHeight = function (index) {\r\n var task = this.getTask(index);\r\n if (task.isMilestone())\r\n return this.milestoneWidth;\r\n if (this.viewModel.isTaskToCalculateByChildren(task.id))\r\n return this.parentTaskHeight;\r\n return this.taskHeight;\r\n };\r\n GridLayoutCalculator.prototype.getTask = function (index) {\r\n return this.viewModel.items[index].task;\r\n };\r\n GridLayoutCalculator.prototype.getTaskProgressElementInfo = function (index) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.className = \"dx-gantt-tPrg\";\r\n result.setSize(this.getTaskProgressSize(index));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskProgressSize = function (index) {\r\n return new Size_1.Size(this.getTaskProgressWidth(index), null);\r\n };\r\n GridLayoutCalculator.prototype.getTaskProgressWidth = function (index) {\r\n return this.getTaskWidth(index) * this.getTask(index).progress / 100;\r\n };\r\n GridLayoutCalculator.prototype.getTaskTextElementInfo = function (index, isInsideText) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.className = this.getTaskTextElementClassName(isInsideText);\r\n if (!isInsideText) {\r\n var taskX = this.getTaskPoint(index).x;\r\n if (taskX < this.elementSizeValues.outsideTaskTextDefaultWidth) {\r\n result.size.width = taskX;\r\n result.margins.marginLeft = -taskX;\r\n }\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskTextElementClassName = function (isInsideText) {\r\n var result = \"dx-gantt-taskTitle\";\r\n result += (isInsideText ? \" dx-gantt-titleIn\" : \" dx-gantt-titleOut\");\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskResourcesWrapperElementInfo = function (index) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n var width = this.getTaskSize(index).width;\r\n result.className = \"dx-gantt-taskResWrapper\";\r\n result.setPosition(this.getTaskWrapperPoint(index));\r\n result.position.x = result.position.x + width;\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskResourceElementInfo = function () {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.className = \"dx-gantt-taskRes\";\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getSelectionElementInfo = function (index) {\r\n return this.getRowElementInfo(index, \"dx-gantt-sel\");\r\n };\r\n GridLayoutCalculator.prototype.getSelectionPosition = function (index) {\r\n var result = new Point_1.Point();\r\n result.y = index * this.tickSize.height;\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getSelectionSize = function () {\r\n return new Size_1.Size(this.tickSize.width * this.horizontalTickCount, this.tickSize.height);\r\n };\r\n GridLayoutCalculator.prototype.getHighlightRowInfo = function (index) {\r\n return this.getRowElementInfo(index, \"dx-gantt-altRow\");\r\n };\r\n GridLayoutCalculator.prototype.getRowElementInfo = function (index, className) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.className = className;\r\n result.setPosition(this.getSelectionPosition(index));\r\n result.setSize(this.getSelectionSize());\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getNoWorkingIntervalInfo = function (noWorkingDateRange) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n result.className = \"dx-gantt-nwi\";\r\n result.setPosition(this.getNoWorkingIntervalPosition(noWorkingDateRange.start));\r\n result.setSize(this.getNoWorkingIntervalSize(noWorkingDateRange));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getNoWorkingIntervalPosition = function (intervalStart) {\r\n var result = new Point_1.Point();\r\n result.x = this.getPosByDate(intervalStart);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getNoWorkingIntervalSize = function (noWorkingInterval) {\r\n return new Size_1.Size(this.getWidthByDateRange(noWorkingInterval.start, noWorkingInterval.end), this.getVerticalGridLineHeight());\r\n };\r\n GridLayoutCalculator.prototype.getVerticalGridLineHeight = function () {\r\n return Math.max(this.visibleTaskAreaSize.height - this.scrollBarHeight, this.tickSize.height * this.verticalTickCount);\r\n };\r\n GridLayoutCalculator.prototype.getConnectorInfo = function (id, predessorIndex, successorIndex, connectorType) {\r\n var result = new Array();\r\n var connectorPoints = this.getConnectorPoints(predessorIndex, successorIndex, connectorType);\r\n for (var i = 0; i < connectorPoints.length - 1; i++)\r\n result.push(this.getConnectorLineInfo(id, connectorPoints[i], connectorPoints[i + 1], i == 0 || i == connectorPoints.length - 2));\r\n result.push(this.getArrowInfo(id, connectorPoints, result, predessorIndex, successorIndex));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorLineInfo = function (id, startPoint, endPoint, isEdgeLine) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n var isVertical = startPoint.x == endPoint.x;\r\n result.className = this.getConnectorClassName(isVertical);\r\n result.setPosition(this.getConnectorPosition(startPoint, endPoint));\r\n result.setSize(this.getConnectorSize(startPoint, endPoint, isVertical, isEdgeLine));\r\n result.setAttribute(\"dependency-id\", id);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorClassName = function (isVertical) {\r\n return isVertical ? GridLayoutCalculator.CLASSNAMES.CONNECTOR_VERTICAL : GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPosition = function (startPoint, endPoint) {\r\n return new Point_1.Point(Math.min(startPoint.x, endPoint.x), Math.min(startPoint.y, endPoint.y));\r\n };\r\n GridLayoutCalculator.prototype.getConnectorSize = function (startPoint, endPoint, isVertical, isEdgeLine) {\r\n var result = new Size_1.Size();\r\n var sizeCorrection = isEdgeLine ? 0 : 1;\r\n if (isVertical)\r\n result.height = Math.abs(endPoint.y - startPoint.y) + sizeCorrection;\r\n else\r\n result.width = Math.abs(endPoint.x - startPoint.x) + sizeCorrection;\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getArrowInfo = function (id, connectorPoints, connectorLines, predessorIndex, successorIndex) {\r\n var result = new GridElementInfo_1.GridElementInfo();\r\n var lineInfo = this.findArrowLineInfo(connectorLines, predessorIndex, successorIndex);\r\n var arrowPosition = this.getArrowPosition(connectorPoints, predessorIndex, successorIndex);\r\n result.className = this.getArrowClassName(arrowPosition);\r\n result.setPosition(this.getArrowPoint(lineInfo, arrowPosition));\r\n result.setAttribute(\"dependency-id\", id);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.findArrowLineInfo = function (connectorLines, predessorIndex, successorIndex) {\r\n var arrowLineIndex = predessorIndex < successorIndex ? connectorLines.length - 1 : 0;\r\n return connectorLines[arrowLineIndex];\r\n };\r\n GridLayoutCalculator.prototype.getArrowPosition = function (connectorPoints, predessorIndex, successorIndex) {\r\n var prevLastPoint = connectorPoints[predessorIndex < successorIndex ? connectorPoints.length - 2 : 1];\r\n var lastPoint = connectorPoints[predessorIndex < successorIndex ? connectorPoints.length - 1 : 0];\r\n if (prevLastPoint.x == lastPoint.x)\r\n return prevLastPoint.y > lastPoint.y ? Enums_1.Position.Top : Enums_1.Position.Bottom;\r\n return prevLastPoint.x > lastPoint.x ? Enums_1.Position.Left : Enums_1.Position.Right;\r\n };\r\n GridLayoutCalculator.prototype.getArrowClassName = function (arrowPosition) {\r\n var result = \"dx-gantt-arrow\";\r\n switch (arrowPosition) {\r\n case Enums_1.Position.Left:\r\n result += \" dx-gantt-LA\";\r\n break;\r\n case Enums_1.Position.Top:\r\n result += \" dx-gantt-TA\";\r\n break;\r\n case Enums_1.Position.Right:\r\n result += \" dx-gantt-RA\";\r\n break;\r\n case Enums_1.Position.Bottom:\r\n result += \" dx-gantt-BA\";\r\n break;\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getArrowPoint = function (lineInfo, arrowPosition) {\r\n return new Point_1.Point(this.getArrowX(lineInfo, arrowPosition), this.getArrowY(lineInfo, arrowPosition));\r\n };\r\n GridLayoutCalculator.prototype.getArrowX = function (lineInfo, arrowPosition) {\r\n switch (arrowPosition) {\r\n case Enums_1.Position.Left:\r\n return lineInfo.position.x - this.arrowSize.width / 2;\r\n case Enums_1.Position.Right:\r\n return lineInfo.position.x + lineInfo.size.width - this.arrowSize.width / 2;\r\n case Enums_1.Position.Top:\r\n case Enums_1.Position.Bottom:\r\n return lineInfo.position.x - (this.arrowSize.width - this.lineThickness) / 2;\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getArrowY = function (lineInfo, arrowPosition) {\r\n switch (arrowPosition) {\r\n case Enums_1.Position.Top:\r\n return lineInfo.position.y - this.arrowSize.height / 2;\r\n case Enums_1.Position.Bottom:\r\n return lineInfo.position.y + lineInfo.size.height - this.arrowSize.height / 2;\r\n case Enums_1.Position.Left:\r\n case Enums_1.Position.Right:\r\n return lineInfo.position.y - (this.arrowSize.height - this.lineThickness) / 2;\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getPosByDate = function (date) {\r\n return this.getWidthByDateRange(this.range.start, date);\r\n };\r\n GridLayoutCalculator.prototype.getWidthByDateRange = function (start, end) {\r\n return this.getRangeTickCount(start, end) * this.tickSize.width;\r\n };\r\n GridLayoutCalculator.prototype.getRangeTickCount = function (start, end) {\r\n if (this.viewType == Enums_1.ViewType.Months)\r\n return this.getRangeTickCountInMonthsViewType(start, end);\r\n if (this.viewType == Enums_1.ViewType.Quarter)\r\n return this.getRangeTickCountInQuarterViewType(start, end);\r\n return (end.getTime() - start.getTime()) / this.tickTimeSpan;\r\n };\r\n GridLayoutCalculator.prototype.getRangeTickCountInMonthsViewType = function (start, end) {\r\n var startMonthStartDate = new Date(start.getFullYear(), start.getMonth(), 1);\r\n var endMonthStartDate = new Date(end.getFullYear(), end.getMonth(), 1);\r\n var monthOffset = Utils_1.DateUtils.getOffsetInMonths(startMonthStartDate, endMonthStartDate);\r\n var endFromMonthStartDateOffset = end.getTime() - endMonthStartDate.getTime();\r\n var startFromMonthStartDateOffset = start.getTime() - startMonthStartDate.getTime();\r\n return monthOffset + (endFromMonthStartDateOffset - startFromMonthStartDateOffset) / Utils_1.DateUtils.msPerMonth;\r\n };\r\n GridLayoutCalculator.prototype.getRangeTickCountInQuarterViewType = function (start, end) {\r\n var startQuarterStartDate = new Date(start.getFullYear(), Math.floor(start.getMonth() / 3) * 3, 1);\r\n var endQuarterStartDate = new Date(end.getFullYear(), Math.floor(end.getMonth() / 3) * 3, 1);\r\n var quarterOffset = Utils_1.DateUtils.getOffsetInQuarters(startQuarterStartDate, endQuarterStartDate);\r\n var endFromQuarterStartDateOffset = end.getTime() - endQuarterStartDate.getTime();\r\n var startFromQuarterStartDateOffset = start.getTime() - startQuarterStartDate.getTime();\r\n return quarterOffset + (endFromQuarterStartDateOffset - startFromQuarterStartDateOffset) / (Utils_1.DateUtils.msPerMonth * 3);\r\n };\r\n GridLayoutCalculator.prototype.getDateByPos = function (position) {\r\n var preResult = position / this.tickSize.width;\r\n var start = new Date(this.range.start);\r\n if (this.viewType == Enums_1.ViewType.Months || this.viewType == Enums_1.ViewType.Quarter) {\r\n var monthFromStart = Math.floor(preResult);\r\n start = new Date(start.setMonth(start.getMonth() + (this.viewType == Enums_1.ViewType.Months ? monthFromStart : monthFromStart * 3)));\r\n preResult = (position - this.getPosByDate(start)) / this.tickSize.width;\r\n }\r\n var time = preResult * this.tickTimeSpan + start.getTime();\r\n var result = new Date();\r\n result.setTime(time);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTotalTickCount = function () {\r\n return this.getRangeTickCount(this.range.start, this.range.end);\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints = function (predessorIndex, successorIndex, connectorType) {\r\n switch (connectorType) {\r\n case (Dependency_1.DependencyType.FS):\r\n return this.getFinishToStartConnectorPoints(predessorIndex, successorIndex);\r\n case (Dependency_1.DependencyType.SF):\r\n return this.getStartToFinishConnectorPoints(predessorIndex, successorIndex);\r\n case (Dependency_1.DependencyType.SS):\r\n return this.getStartToStartConnectorPoints(predessorIndex, successorIndex);\r\n case (Dependency_1.DependencyType.FF):\r\n return this.getFinishToFinishConnectorPoints(predessorIndex, successorIndex);\r\n default:\r\n return new Array();\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getFinishToStartConnectorPoints = function (predessorIndex, successorIndex) {\r\n if (predessorIndex < successorIndex) {\r\n if (this.getTask(predessorIndex).end <= this.getTask(successorIndex).start)\r\n return this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskTopSide(predessorIndex, successorIndex, false);\r\n return this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskLeftSide(predessorIndex, successorIndex, false);\r\n }\r\n else {\r\n if (this.getTask(predessorIndex).end <= this.getTask(successorIndex).start)\r\n return this.getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskRightSide(successorIndex, predessorIndex, false);\r\n return this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskRightSide(successorIndex, predessorIndex, true);\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getFinishToFinishConnectorPoints = function (predessorIndex, successorIndex) {\r\n if (predessorIndex < successorIndex) {\r\n return this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide(predessorIndex, successorIndex);\r\n }\r\n else {\r\n return this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide(successorIndex, predessorIndex);\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getStartToStartConnectorPoints = function (predessorIndex, successorIndex) {\r\n if (predessorIndex < successorIndex) {\r\n return this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide(predessorIndex, successorIndex);\r\n }\r\n else {\r\n return this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide(successorIndex, predessorIndex);\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getStartToFinishConnectorPoints = function (predessorIndex, successorIndex) {\r\n if (predessorIndex < successorIndex) {\r\n if (this.getTask(predessorIndex).start >= this.getTask(successorIndex).end)\r\n return this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskTopSide(predessorIndex, successorIndex, true);\r\n return this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskRightSide(predessorIndex, successorIndex, false);\r\n }\r\n else {\r\n if (this.getTask(predessorIndex).start >= this.getTask(successorIndex).end)\r\n return this.getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskLeftSide(successorIndex, predessorIndex, true);\r\n return this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskLeftSide(successorIndex, predessorIndex, true);\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskTopSide = function (topTaskIndex, bottomTaskIndex, shiftEndPointToRight) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskRightCenter = this.getTaskRightCenter(topTaskPoint, topTaskIndex);\r\n var isBottomMilestone = this.getTask(bottomTaskIndex).isMilestone();\r\n var bottomTaskTopCenter = this.getTaskTopCenter(bottomTaskPoint, bottomTaskIndex);\r\n var endPointIndent = shiftEndPointToRight ? this.getTaskWidth(bottomTaskIndex) - this.minLineLength : this.minLineLength;\r\n result.push(new Point_1.Point(Math.floor(topTaskRightCenter.x), Math.floor(topTaskRightCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(isBottomMilestone ? bottomTaskTopCenter.x : bottomTaskPoint.x + endPointIndent), Math.floor(result[0].y)));\r\n result.push(new Point_1.Point(Math.floor(result[1].x), Math.floor(bottomTaskTopCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide = function (topTaskIndex, bottomTaskIndex) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskRightCenter = this.getTaskRightCenter(topTaskPoint, topTaskIndex);\r\n var bottomTaskRightCenter = this.getTaskRightCenter(bottomTaskPoint, bottomTaskIndex);\r\n result.push(new Point_1.Point(Math.floor(topTaskRightCenter.x), Math.floor(topTaskRightCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(Math.max(topTaskRightCenter.x, bottomTaskRightCenter.x) + this.minLineLength), Math.floor(result[0].y)));\r\n result.push(new Point_1.Point(Math.floor(result[1].x), Math.floor(bottomTaskRightCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(bottomTaskRightCenter.x), Math.floor(bottomTaskRightCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskLeftSide = function (topTaskIndex, bottomTaskIndex, shiftToTop) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskRightCenter = this.getTaskRightCenter(topTaskPoint, topTaskIndex);\r\n var topTaskBottomCenter = this.getTaskBottomCenter(topTaskPoint, topTaskIndex);\r\n var bottomTaskLeftCenter = this.getTaskLeftCenter(bottomTaskPoint, bottomTaskIndex);\r\n var bottomTaskTopCenter = this.getTaskTopCenter(bottomTaskPoint, bottomTaskIndex);\r\n result.push(new Point_1.Point(Math.floor(topTaskRightCenter.x), Math.floor(topTaskRightCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(result[0].x + this.minLineLength), Math.floor(result[0].y)));\r\n result.push(new Point_1.Point(Math.floor(result[1].x), Math.floor(shiftToTop ?\r\n topTaskBottomCenter.y + this.minConnectorSpaceFromTask\r\n : bottomTaskTopCenter.y - this.minConnectorSpaceFromTask)));\r\n result.push(new Point_1.Point(Math.floor(bottomTaskLeftCenter.x - this.minLineLength), Math.floor(result[2].y)));\r\n result.push(new Point_1.Point(Math.floor(result[3].x), Math.floor(bottomTaskLeftCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(bottomTaskLeftCenter.x), Math.floor(bottomTaskLeftCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskRightSide = function (topTaskIndex, bottomTaskIndex, shiftStartPointToRight) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskBottomCenter = this.getTaskBottomCenter(topTaskPoint, topTaskIndex);\r\n var isTopMilestone = this.getTask(topTaskIndex).isMilestone();\r\n var bottomTaskRightCenter = this.getTaskRightCenter(bottomTaskPoint, bottomTaskIndex);\r\n var startPointIndent = shiftStartPointToRight ? this.getTaskWidth(topTaskIndex) - this.minLineLength : this.minLineLength;\r\n result.push(new Point_1.Point(Math.floor(isTopMilestone ? topTaskBottomCenter.x : topTaskPoint.x + startPointIndent), Math.floor(topTaskBottomCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(result[0].x), Math.floor(bottomTaskRightCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(bottomTaskRightCenter.x), Math.floor(bottomTaskRightCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskBottomSide_ToBottomTaskLeftSide = function (topTaskIndex, bottomTaskIndex, shiftStartPointToRight) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskBottomCenter = this.getTaskBottomCenter(topTaskPoint, topTaskIndex);\r\n var isTopMilestone = this.getTask(topTaskIndex).isMilestone();\r\n var bottomTaskLeftCenter = this.getTaskLeftCenter(bottomTaskPoint, bottomTaskIndex);\r\n var startPointIndent = shiftStartPointToRight ? this.getTaskWidth(topTaskIndex) - this.minLineLength : this.minLineLength;\r\n result.push(new Point_1.Point(Math.floor(isTopMilestone ? topTaskBottomCenter.x : topTaskPoint.x + startPointIndent), Math.floor(topTaskBottomCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(result[0].x), Math.floor(bottomTaskLeftCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(bottomTaskLeftCenter.x), Math.floor(bottomTaskLeftCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskTopSide = function (topTaskIndex, bottomTaskIndex, shiftEndPointToRight) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskLeftCenter = this.getTaskLeftCenter(topTaskPoint, topTaskIndex);\r\n var bottomTaskTopCenter = this.getTaskTopCenter(bottomTaskPoint, bottomTaskIndex);\r\n var isBottomMilestone = this.getTask(bottomTaskIndex).isMilestone();\r\n var endPointIndent = shiftEndPointToRight ? this.getTaskWidth(bottomTaskIndex) - this.minLineLength : this.minLineLength;\r\n result.push(new Point_1.Point(Math.floor(topTaskLeftCenter.x), Math.floor(topTaskLeftCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(isBottomMilestone ? bottomTaskTopCenter.x : bottomTaskPoint.x + endPointIndent), Math.floor(result[0].y)));\r\n result.push(new Point_1.Point(Math.floor(result[1].x), Math.floor(bottomTaskTopCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskRightSide = function (topTaskIndex, bottomTaskIndex, shiftToTop) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskLeftCenter = this.getTaskLeftCenter(topTaskPoint, topTaskIndex);\r\n var topTaskBottomCenter = this.getTaskBottomCenter(topTaskPoint, topTaskIndex);\r\n var bottomTaskRightCenter = this.getTaskRightCenter(bottomTaskPoint, bottomTaskIndex);\r\n var bottomTaskTopCenter = this.getTaskTopCenter(bottomTaskPoint, bottomTaskIndex);\r\n result.push(new Point_1.Point(Math.floor(topTaskLeftCenter.x), topTaskLeftCenter.y));\r\n result.push(new Point_1.Point(Math.floor(result[0].x - this.minLineLength), result[0].y));\r\n result.push(new Point_1.Point(Math.floor(result[1].x), Math.floor(shiftToTop ?\r\n topTaskBottomCenter.y + this.minConnectorSpaceFromTask\r\n : bottomTaskTopCenter.y - this.minConnectorSpaceFromTask)));\r\n result.push(new Point_1.Point(Math.floor(bottomTaskRightCenter.x + this.minLineLength), Math.floor(result[2].y)));\r\n result.push(new Point_1.Point(Math.floor(result[3].x), Math.floor(bottomTaskRightCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(bottomTaskRightCenter.x), Math.floor(bottomTaskRightCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide = function (topTaskIndex, bottomTaskIndex) {\r\n var result = new Array();\r\n var topTaskPoint = this.getTaskPoint(topTaskIndex);\r\n var bottomTaskPoint = this.getTaskPoint(bottomTaskIndex);\r\n var topTaskLeftCenter = this.getTaskLeftCenter(topTaskPoint, topTaskIndex);\r\n var bottomTaskLeftCenter = this.getTaskLeftCenter(bottomTaskPoint, bottomTaskIndex);\r\n result.push(new Point_1.Point(Math.floor(topTaskLeftCenter.x), Math.floor(topTaskLeftCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(Math.min(topTaskLeftCenter.x, bottomTaskLeftCenter.x) - this.minLineLength), Math.floor(result[0].y)));\r\n result.push(new Point_1.Point(Math.floor(result[1].x), Math.floor(bottomTaskLeftCenter.y)));\r\n result.push(new Point_1.Point(Math.floor(bottomTaskLeftCenter.x), Math.floor(bottomTaskLeftCenter.y)));\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getTaskLeftCenter = function (taskPoint, index) {\r\n return new Point_1.Point(taskPoint.x - this.getTaskEdgeCorrection(index), taskPoint.y + this.getTaskHeight(index) / 2);\r\n };\r\n GridLayoutCalculator.prototype.getTaskRightCenter = function (taskPoint, index) {\r\n return new Point_1.Point(taskPoint.x + this.getTaskWidth(index) + this.getTaskEdgeCorrection(index), taskPoint.y + this.getTaskHeight(index) / 2);\r\n };\r\n GridLayoutCalculator.prototype.getTaskTopCenter = function (taskPoint, index) {\r\n return new Point_1.Point(taskPoint.x + this.getTaskWidth(index) / 2, taskPoint.y - this.getTaskEdgeCorrection(index));\r\n };\r\n GridLayoutCalculator.prototype.getTaskBottomCenter = function (taskPoint, index) {\r\n return new Point_1.Point(taskPoint.x + this.getTaskWidth(index) / 2, taskPoint.y + this.getTaskHeight(index) + this.getTaskEdgeCorrection(index));\r\n };\r\n GridLayoutCalculator.prototype.getTaskEdgeCorrection = function (index) {\r\n var isMilestone = this.viewModel.items[index].task.isMilestone();\r\n return isMilestone ? this.getTaskHeight(index) * (Math.sqrt(2) - 1) / 2 : 0;\r\n };\r\n GridLayoutCalculator.prototype.getRenderedRowColumnIndices = function (scrollPos, isVertical) {\r\n var visibleAreaSizeValue = isVertical ? this.visibleTaskAreaSize.height : this.visibleTaskAreaSize.width;\r\n var tickSizeValue = isVertical ? this.tickSize.height : this.tickSize.width;\r\n var tickCount = isVertical ? this.verticalTickCount : this.horizontalTickCount;\r\n var firstVisibleIndex = this.getFirstVisibleGridCellIndex(scrollPos, tickSizeValue);\r\n var lastVisibleIndex = this.getLastVisibleGridCellIndex(scrollPos, tickSizeValue, visibleAreaSizeValue, tickCount);\r\n var result = new Array();\r\n for (var i = firstVisibleIndex; i <= lastVisibleIndex; i++)\r\n result.push(i);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getRenderedScaleItemIndices = function (scaleType, renderedColIndices) {\r\n var scaleItemColSpan = this.getScaleItemColSpan(scaleType);\r\n var firstVisibleIndex = Math.floor(renderedColIndices[0] / scaleItemColSpan);\r\n var lastVisibleIndex = Math.floor(renderedColIndices[renderedColIndices.length - 1] / scaleItemColSpan);\r\n var result = new Array();\r\n for (var i = firstVisibleIndex; i <= lastVisibleIndex; i++)\r\n result.push(i);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getFirstVisibleGridCellIndex = function (scrollPos, tickSizeValue) {\r\n var result = Math.floor(scrollPos / tickSizeValue);\r\n result = Math.max(result - 10, 0);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getLastVisibleGridCellIndex = function (scrollPos, tickSizeValue, visibleAreaSizeValue, tickCount) {\r\n var result = Math.floor((scrollPos + visibleAreaSizeValue) / tickSizeValue);\r\n result = Math.min(result + 10, tickCount - 1);\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.createTileToConnectorLinesMap = function () {\r\n this.tileToDependencyMap = [];\r\n for (var i = 0; i < this.viewModel.items.length; i++) {\r\n for (var j = 0; j < this.viewModel.items[i].dependencies.length; j++)\r\n this.createConnecotInfo(this.viewModel.items[i].dependencies[j], this.viewModel.items[i].visibleIndex);\r\n }\r\n };\r\n GridLayoutCalculator.prototype.updateTileToConnectorLinesMap = function (dependencyId) {\r\n this.tileToDependencyMap.forEach(function (map, index, tileToDependencyMap) {\r\n tileToDependencyMap[index] = map.filter(function (info) { return info.attr[\"dependency-id\"] != dependencyId; });\r\n });\r\n var result = [];\r\n var item = this.viewModel.items.filter(function (item) { return item.dependencies.filter(function (d) { return d.id == dependencyId; }).length > 0; })[0];\r\n if (item) {\r\n var dependency = item.dependencies.filter(function (d) { return d.id === dependencyId; })[0];\r\n result = this.createConnecotInfo(dependency, item.visibleIndex);\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.createConnecotInfo = function (dependencyInfo, successorIndex) {\r\n var _this = this;\r\n var predessorIndex = dependencyInfo.predecessor.visibleIndex;\r\n var type = dependencyInfo.type;\r\n var id = dependencyInfo.id;\r\n var connectorInfo = this.getConnectorInfo(id, predessorIndex, successorIndex, type);\r\n connectorInfo.forEach(function (connectorLine) {\r\n _this.addElementInfoToTileMap(connectorLine, _this.tileToDependencyMap, true);\r\n });\r\n return connectorInfo;\r\n };\r\n GridLayoutCalculator.prototype.createTileToNonWorkingIntervalsMap = function () {\r\n this.tileToNoWorkingIntervalsMap = [];\r\n for (var i = 0; i < this.viewModel.noWorkingIntervals.length; i++) {\r\n var noWorkingDateRange = this.getAdjustedNoWorkingInterval(this.viewModel.noWorkingIntervals[i]);\r\n if (!noWorkingDateRange)\r\n continue;\r\n var noWorkingIntervalInfo = this.getNoWorkingIntervalInfo(noWorkingDateRange);\r\n this.addElementInfoToTileMap(noWorkingIntervalInfo, this.tileToNoWorkingIntervalsMap, false);\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getAdjustedNoWorkingInterval = function (modelInterval) {\r\n if (modelInterval.end.getTime() - modelInterval.start.getTime() < this.tickTimeSpan - 1)\r\n return null;\r\n return new DateRange_1.DateRange(Utils_1.DateUtils.getNearestScaleTickDate(modelInterval.start, this.range, this.tickTimeSpan, this.viewType), Utils_1.DateUtils.getNearestScaleTickDate(modelInterval.end, this.range, this.tickTimeSpan, this.viewType));\r\n };\r\n GridLayoutCalculator.prototype.addElementInfoToTileMap = function (info, map, isVerticalTile) {\r\n var infoPointValue = isVerticalTile ? info.position.y : info.position.x;\r\n var infoSizeValue = isVerticalTile ? info.size.height : info.size.width;\r\n var tileSizeValue = (isVerticalTile ? this.visibleTaskAreaSize.height : this.visibleTaskAreaSize.width) * 2;\r\n var firstTileIndex = Math.floor(infoPointValue / tileSizeValue);\r\n var lastTileIndex = Math.floor((infoPointValue + infoSizeValue) / tileSizeValue);\r\n for (var i = firstTileIndex; i <= lastTileIndex; i++) {\r\n if (!map[i])\r\n map[i] = new Array();\r\n map[i].push(info);\r\n }\r\n };\r\n GridLayoutCalculator.prototype.getRenderedConnectorLines = function (scrollPos) {\r\n return this.getElementsInRenderedTiles(this.tileToDependencyMap, true, scrollPos);\r\n };\r\n GridLayoutCalculator.prototype.getRenderedNoWorkingIntervals = function (scrollPos) {\r\n return this.getElementsInRenderedTiles(this.tileToNoWorkingIntervalsMap, false, scrollPos);\r\n };\r\n GridLayoutCalculator.prototype.getRenderedStripLines = function (settings) {\r\n var result = new Array();\r\n var stripLines = settings.stripLines.map(function (t) { return t.clone(); });\r\n if (settings.showCurrentTime)\r\n stripLines.push(new Settings_1.StripLine(new Date(), null, settings.currentTimeTitle, settings.currentTimeCssClass, true));\r\n for (var i = 0, stripLine = void 0; stripLine = stripLines[i]; i++) {\r\n var start = Utils_1.DateUtils.parse(stripLine.start);\r\n var end = stripLine.end ? Utils_1.DateUtils.parse(stripLine.end) : null;\r\n if (start >= this.range.start && start <= this.range.end || (end && end >= this.range.start && end <= this.range.end)) {\r\n var renderedStart = start > this.range.start ? start : this.range.start;\r\n var info = new GridElementInfo_1.GridElementInfo();\r\n info.size.height = this.getVerticalGridLineHeight();\r\n info.position.x = this.getPosByDate(renderedStart);\r\n info.size.width = end ? this.getWidthByDateRange(renderedStart, end < this.range.end ? end : this.range.end) : 0;\r\n info.className = stripLine.isCurrent ? \"dx-gantt-tc\" : end ? \"dx-gantt-ti\" : \"dx-gantt-tm\";\r\n info.className += stripLine.cssClass ? \" \" + stripLine.cssClass : \"\";\r\n info.attr.title = stripLine.title;\r\n result.push(info);\r\n }\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.prototype.getElementsInRenderedTiles = function (map, isVerticalTile, scrollPos) {\r\n var result = new Array();\r\n var visibleAreaSizeValue = isVerticalTile ? this.visibleTaskAreaSize.height : this.visibleTaskAreaSize.width;\r\n if (visibleAreaSizeValue > 0) {\r\n var firstVisibleTileIndex = Math.floor(scrollPos / (visibleAreaSizeValue * 2));\r\n var lastVisibleTileIndex = Math.floor((scrollPos + visibleAreaSizeValue) / (visibleAreaSizeValue * 2));\r\n for (var i = firstVisibleTileIndex; i <= lastVisibleTileIndex; i++) {\r\n if (!map[i])\r\n continue;\r\n map[i].forEach(function (info) {\r\n if (result.indexOf(info) == -1)\r\n result.push(info);\r\n });\r\n }\r\n }\r\n return result;\r\n };\r\n GridLayoutCalculator.CLASSNAMES = {\r\n CONNECTOR_VERTICAL: \"dx-gantt-conn-v\",\r\n CONNECTOR_HORIZONTAL: \"dx-gantt-conn-h\"\r\n };\r\n return GridLayoutCalculator;\r\n}());\r\nexports.GridLayoutCalculator = GridLayoutCalculator;\r\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItemState_1 = __webpack_require__(38);\r\nvar DateRange_1 = __webpack_require__(7);\r\nvar BaseManipulator = (function () {\r\n function BaseManipulator(viewModel, dispatcher) {\r\n this.viewModel = viewModel;\r\n this.dispatcher = dispatcher;\r\n }\r\n BaseManipulator.prototype.getErrorCallback = function () {\r\n return this.viewModel.getDataUpdateErrorCallback();\r\n };\r\n return BaseManipulator;\r\n}());\r\nexports.BaseManipulator = BaseManipulator;\r\nvar TaskPropertiesManipulator = (function (_super) {\r\n tslib_1.__extends(TaskPropertiesManipulator, _super);\r\n function TaskPropertiesManipulator(viewModel, dispatcher) {\r\n var _this = _super.call(this, viewModel, dispatcher) || this;\r\n _this.title = new TaskTitleManipulator(viewModel, dispatcher);\r\n _this.description = new TaskDescriptionManipulator(viewModel, dispatcher);\r\n _this.progress = new TaskProgressManipulator(viewModel, dispatcher);\r\n _this.start = new TaskStartDateManipulator(viewModel, dispatcher);\r\n _this.end = new TaskEndDateManipulator(viewModel, dispatcher);\r\n _this.move = new TaskMoveManipulator(viewModel, dispatcher);\r\n _this.color = new TaskColorManipulator(viewModel, dispatcher);\r\n return _this;\r\n }\r\n return TaskPropertiesManipulator;\r\n}(BaseManipulator));\r\nexports.TaskPropertiesManipulator = TaskPropertiesManipulator;\r\nvar TaskPropertyManipulator = (function (_super) {\r\n tslib_1.__extends(TaskPropertyManipulator, _super);\r\n function TaskPropertyManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskPropertyManipulator.prototype.setValue = function (id, newValue) {\r\n var task = this.viewModel.tasks.getItemById(id);\r\n var oldState = new HistoryItemState_1.HistoryItemState(id, this.getPropertyValue(task));\r\n this.setPropertyValue(task, newValue);\r\n var viewItem = this.viewModel.findItem(id);\r\n if (viewItem)\r\n this.viewModel.owner.recreateTaskElement(viewItem.visibleIndex);\r\n return oldState;\r\n };\r\n TaskPropertyManipulator.prototype.restoreValue = function (state) {\r\n if (!state)\r\n return;\r\n var task = this.viewModel.tasks.getItemById(state.id);\r\n this.setPropertyValue(task, state.value);\r\n var viewItem = this.viewModel.findItem(state.id);\r\n if (viewItem)\r\n this.viewModel.owner.recreateTaskElement(viewItem.visibleIndex);\r\n };\r\n return TaskPropertyManipulator;\r\n}(BaseManipulator));\r\nexports.TaskPropertyManipulator = TaskPropertyManipulator;\r\nvar TaskTitleManipulator = (function (_super) {\r\n tslib_1.__extends(TaskTitleManipulator, _super);\r\n function TaskTitleManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskTitleManipulator.prototype.getPropertyValue = function (task) {\r\n return task.title;\r\n };\r\n TaskTitleManipulator.prototype.setPropertyValue = function (task, value) {\r\n task.title = value;\r\n this.dispatcher.notifyTaskTitleChanged(task.id, value, this.getErrorCallback());\r\n };\r\n return TaskTitleManipulator;\r\n}(TaskPropertyManipulator));\r\nvar TaskDescriptionManipulator = (function (_super) {\r\n tslib_1.__extends(TaskDescriptionManipulator, _super);\r\n function TaskDescriptionManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskDescriptionManipulator.prototype.getPropertyValue = function (task) {\r\n return task.description;\r\n };\r\n TaskDescriptionManipulator.prototype.setPropertyValue = function (task, value) {\r\n task.description = value;\r\n this.dispatcher.notifyTaskDescriptionChanged(task.id, value, this.getErrorCallback());\r\n };\r\n return TaskDescriptionManipulator;\r\n}(TaskPropertyManipulator));\r\nvar TaskProgressManipulator = (function (_super) {\r\n tslib_1.__extends(TaskProgressManipulator, _super);\r\n function TaskProgressManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskProgressManipulator.prototype.getPropertyValue = function (task) {\r\n return task.progress;\r\n };\r\n TaskProgressManipulator.prototype.setPropertyValue = function (task, value) {\r\n value = value < 0 ? 0 : value > 100 ? 100 : value;\r\n task.progress = value;\r\n this.dispatcher.notifyTaskProgressChanged(task.id, value, this.getErrorCallback());\r\n };\r\n return TaskProgressManipulator;\r\n}(TaskPropertyManipulator));\r\nvar TaskStartDateManipulator = (function (_super) {\r\n tslib_1.__extends(TaskStartDateManipulator, _super);\r\n function TaskStartDateManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskStartDateManipulator.prototype.getPropertyValue = function (task) {\r\n return task.start;\r\n };\r\n TaskStartDateManipulator.prototype.setPropertyValue = function (task, value) {\r\n task.start = value;\r\n this.dispatcher.notifyTaskStartChanged(task.id, value, this.getErrorCallback());\r\n };\r\n return TaskStartDateManipulator;\r\n}(TaskPropertyManipulator));\r\nvar TaskEndDateManipulator = (function (_super) {\r\n tslib_1.__extends(TaskEndDateManipulator, _super);\r\n function TaskEndDateManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskEndDateManipulator.prototype.getPropertyValue = function (task) {\r\n return task.end;\r\n };\r\n TaskEndDateManipulator.prototype.setPropertyValue = function (task, value) {\r\n task.end = value;\r\n this.dispatcher.notifyTaskEndChanged(task.id, value, this.getErrorCallback());\r\n };\r\n return TaskEndDateManipulator;\r\n}(TaskPropertyManipulator));\r\nvar TaskMoveManipulator = (function (_super) {\r\n tslib_1.__extends(TaskMoveManipulator, _super);\r\n function TaskMoveManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskMoveManipulator.prototype.getPropertyValue = function (task) {\r\n return new DateRange_1.DateRange(task.start, task.end);\r\n };\r\n TaskMoveManipulator.prototype.setPropertyValue = function (task, value) {\r\n task.start = value.start;\r\n task.end = value.end;\r\n this.dispatcher.notifyTaskStartChanged(task.id, value.start, this.getErrorCallback());\r\n this.dispatcher.notifyTaskEndChanged(task.id, value.end, this.getErrorCallback());\r\n };\r\n return TaskMoveManipulator;\r\n}(TaskPropertyManipulator));\r\nvar TaskColorManipulator = (function (_super) {\r\n tslib_1.__extends(TaskColorManipulator, _super);\r\n function TaskColorManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskColorManipulator.prototype.getPropertyValue = function (task) {\r\n return task.color;\r\n };\r\n TaskColorManipulator.prototype.setPropertyValue = function (task, value) {\r\n task.color = value;\r\n this.dispatcher.notifyTaskColorChanged(task.id, value, this.getErrorCallback());\r\n };\r\n return TaskColorManipulator;\r\n}(TaskPropertyManipulator));\r\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Point_1 = __webpack_require__(4);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar HandlerStateBase = (function () {\r\n function HandlerStateBase(handler) {\r\n this.handler = handler;\r\n }\r\n HandlerStateBase.prototype.start = function () { };\r\n HandlerStateBase.prototype.finish = function () { };\r\n HandlerStateBase.prototype.getRelativePos = function (absolutePos) {\r\n var taskAreaX = DomUtils_1.DomUtils.getAbsolutePositionX(this.handler.control.taskArea);\r\n var taskAreaY = DomUtils_1.DomUtils.getAbsolutePositionY(this.handler.control.taskArea);\r\n return new Point_1.Point(absolutePos.x - taskAreaX, absolutePos.y - taskAreaY);\r\n };\r\n return HandlerStateBase;\r\n}());\r\nexports.HandlerStateBase = HandlerStateBase;\r\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(10);\r\nvar InsertDependencyHistoryItem = (function (_super) {\r\n tslib_1.__extends(InsertDependencyHistoryItem, _super);\r\n function InsertDependencyHistoryItem(modelManipulator, predecessorId, successorId, type) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.predecessorId = predecessorId;\r\n _this.successorId = successorId;\r\n _this.type = type;\r\n return _this;\r\n }\r\n InsertDependencyHistoryItem.prototype.redo = function () {\r\n this.dependency = this.modelManipulator.dependency.insertDependency(this.predecessorId, this.successorId, this.type, this.dependency ? this.dependency.internalId : null);\r\n };\r\n InsertDependencyHistoryItem.prototype.undo = function () {\r\n this.modelManipulator.dependency.removeDependency(this.dependency.internalId);\r\n };\r\n return InsertDependencyHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.InsertDependencyHistoryItem = InsertDependencyHistoryItem;\r\nvar RemoveDependencyHistoryItem = (function (_super) {\r\n tslib_1.__extends(RemoveDependencyHistoryItem, _super);\r\n function RemoveDependencyHistoryItem(modelManipulator, dependencyId) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.dependencyId = dependencyId;\r\n return _this;\r\n }\r\n RemoveDependencyHistoryItem.prototype.redo = function () {\r\n this.dependency = this.modelManipulator.dependency.removeDependency(this.dependencyId);\r\n };\r\n RemoveDependencyHistoryItem.prototype.undo = function () {\r\n this.modelManipulator.dependency.insertDependency(this.dependency.predecessorId, this.dependency.successorId, this.dependency.type, this.dependencyId);\r\n };\r\n return RemoveDependencyHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.RemoveDependencyHistoryItem = RemoveDependencyHistoryItem;\r\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DialogBase_1 = __webpack_require__(21);\r\nvar ConfirmationType;\r\n(function (ConfirmationType) {\r\n ConfirmationType[ConfirmationType[\"TaskDelete\"] = 0] = \"TaskDelete\";\r\n ConfirmationType[ConfirmationType[\"DependencyDelete\"] = 1] = \"DependencyDelete\";\r\n ConfirmationType[ConfirmationType[\"ResourcesDelete\"] = 2] = \"ResourcesDelete\";\r\n})(ConfirmationType = exports.ConfirmationType || (exports.ConfirmationType = {}));\r\nvar ConfirmationDialog = (function (_super) {\r\n tslib_1.__extends(ConfirmationDialog, _super);\r\n function ConfirmationDialog() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ConfirmationDialog.prototype.applyParameters = function (_newParameters, oldParameters) {\r\n this.history.beginTransaction();\r\n oldParameters.callback();\r\n this.history.endTransaction();\r\n this.control.barManager.updateItemsState([]);\r\n return true;\r\n };\r\n ConfirmationDialog.prototype.createParameters = function (options) {\r\n return options;\r\n };\r\n ConfirmationDialog.prototype.getDialogName = function () {\r\n return \"Confirmation\";\r\n };\r\n return ConfirmationDialog;\r\n}(DialogBase_1.DialogBase));\r\nexports.ConfirmationDialog = ConfirmationDialog;\r\nvar ConfirmationDialogParameters = (function (_super) {\r\n tslib_1.__extends(ConfirmationDialogParameters, _super);\r\n function ConfirmationDialogParameters(type, callback) {\r\n var _this = _super.call(this) || this;\r\n _this.type = type;\r\n _this.callback = callback;\r\n return _this;\r\n }\r\n ConfirmationDialogParameters.prototype.clone = function () {\r\n var result = new ConfirmationDialogParameters(this.type, this.callback);\r\n result.message = this.message;\r\n return result;\r\n };\r\n return ConfirmationDialogParameters;\r\n}(DialogBase_1.DialogParametersBase));\r\nexports.ConfirmationDialogParameters = ConfirmationDialogParameters;\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(5);\r\nvar DialogBase = (function (_super) {\r\n tslib_1.__extends(DialogBase, _super);\r\n function DialogBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DialogBase.prototype.executeInternal = function (options) {\r\n var _this = this;\r\n var params = this.createParameters(options);\r\n var initParams = params.clone();\r\n this.control.ganttOwner.showDialog(this.getDialogName(), params, function (result) {\r\n if (result)\r\n _this.applyParameters(result, initParams);\r\n }, function () {\r\n _this.afterClosing();\r\n });\r\n return true;\r\n };\r\n DialogBase.prototype.applyParameters = function (_newParameters, _oldParameters) {\r\n return false;\r\n };\r\n DialogBase.prototype.afterClosing = function () { };\r\n DialogBase.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n return DialogBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.DialogBase = DialogBase;\r\nvar DialogParametersBase = (function () {\r\n function DialogParametersBase() {\r\n }\r\n return DialogParametersBase;\r\n}());\r\nexports.DialogParametersBase = DialogParametersBase;\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CollectionBase_1 = __webpack_require__(11);\r\nvar Resource_1 = __webpack_require__(47);\r\nvar ResourceCollection = (function (_super) {\r\n tslib_1.__extends(ResourceCollection, _super);\r\n function ResourceCollection() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourceCollection.prototype.createItem = function () { return new Resource_1.Resource(); };\r\n return ResourceCollection;\r\n}(CollectionBase_1.CollectionBase));\r\nexports.ResourceCollection = ResourceCollection;\r\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Size = (function () {\r\n function Size(width, height) {\r\n this.width = null;\r\n this.height = null;\r\n if (width !== undefined)\r\n this.width = width;\r\n if (height !== undefined)\r\n this.height = height;\r\n }\r\n return Size;\r\n}());\r\nexports.Size = Size;\r\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerStateBase_1 = __webpack_require__(18);\r\nvar MouseHandlerStateBase = (function (_super) {\r\n tslib_1.__extends(MouseHandlerStateBase, _super);\r\n function MouseHandlerStateBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerStateBase.prototype.onMouseDoubleClick = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onMouseDown = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onMouseUp = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onMouseMove = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onMouseWheel = function (_evt) { };\r\n return MouseHandlerStateBase;\r\n}(HandlerStateBase_1.HandlerStateBase));\r\nexports.MouseHandlerStateBase = MouseHandlerStateBase;\r\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar Point_1 = __webpack_require__(4);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar MouseHandlerStateBase_1 = __webpack_require__(24);\r\nvar MouseHandlerDragBaseState = (function (_super) {\r\n tslib_1.__extends(MouseHandlerDragBaseState, _super);\r\n function MouseHandlerDragBaseState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerDragBaseState.prototype.onMouseDown = function (evt) {\r\n this.currentPosition = new Point_1.Point(DomUtils_1.DomUtils.getEventX(evt), DomUtils_1.DomUtils.getEventY(evt));\r\n if (this.handler.control.taskEditController.dependencyId != null)\r\n this.handler.control.selectDependency(null);\r\n };\r\n MouseHandlerDragBaseState.prototype.onMouseUp = function (evt) {\r\n this.onMouseUpInternal(evt);\r\n this.handler.switchToDefaultState();\r\n };\r\n MouseHandlerDragBaseState.prototype.onMouseMove = function (evt) {\r\n evt.preventDefault();\r\n var position = new Point_1.Point(DomUtils_1.DomUtils.getEventX(evt), DomUtils_1.DomUtils.getEventY(evt));\r\n this.onMouseMoveInternal(position);\r\n this.currentPosition = position;\r\n };\r\n MouseHandlerDragBaseState.prototype.onMouseUpInternal = function (_evt) { };\r\n MouseHandlerDragBaseState.prototype.onMouseMoveInternal = function (_position) { };\r\n return MouseHandlerDragBaseState;\r\n}(MouseHandlerStateBase_1.MouseHandlerStateBase));\r\nexports.MouseHandlerDragBaseState = MouseHandlerDragBaseState;\r\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerStateBase_1 = __webpack_require__(41);\r\nvar Point_1 = __webpack_require__(4);\r\nvar TouchUIHelper_1 = __webpack_require__(14);\r\nvar TouchHandlerDragBaseState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerDragBaseState, _super);\r\n function TouchHandlerDragBaseState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerDragBaseState.prototype.onTouchStart = function (evt) {\r\n this.currentPosition = new Point_1.Point(TouchUIHelper_1.TouchUIHelper.getEventX(evt), TouchUIHelper_1.TouchUIHelper.getEventY(evt));\r\n if (this.handler.control.taskEditController.dependencyId != null)\r\n this.handler.control.selectDependency(null);\r\n };\r\n TouchHandlerDragBaseState.prototype.onTouchEnd = function (evt) {\r\n this.onTouchEndInternal(evt);\r\n this.handler.switchToDefaultState();\r\n };\r\n TouchHandlerDragBaseState.prototype.onTouchMove = function (evt) {\r\n evt.preventDefault();\r\n var position = new Point_1.Point(TouchUIHelper_1.TouchUIHelper.getEventX(evt), TouchUIHelper_1.TouchUIHelper.getEventY(evt));\r\n this.onTouchMoveInternal(position);\r\n this.currentPosition = position;\r\n };\r\n TouchHandlerDragBaseState.prototype.onTouchEndInternal = function (_evt) { };\r\n TouchHandlerDragBaseState.prototype.onTouchMoveInternal = function (_position) { };\r\n return TouchHandlerDragBaseState;\r\n}(TouchHandlerStateBase_1.TouchHandlerStateBase));\r\nexports.TouchHandlerDragBaseState = TouchHandlerDragBaseState;\r\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(10);\r\nvar CreateResourceHistoryItem = (function (_super) {\r\n tslib_1.__extends(CreateResourceHistoryItem, _super);\r\n function CreateResourceHistoryItem(modelManipulator, text) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.text = text;\r\n return _this;\r\n }\r\n CreateResourceHistoryItem.prototype.redo = function () {\r\n this.resource = this.modelManipulator.resource.create(this.text, this.resource ? this.resource.internalId : null);\r\n };\r\n CreateResourceHistoryItem.prototype.undo = function () {\r\n this.modelManipulator.resource.remove(this.resource.internalId);\r\n };\r\n return CreateResourceHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.CreateResourceHistoryItem = CreateResourceHistoryItem;\r\nvar RemoveResourceHistoryItem = (function (_super) {\r\n tslib_1.__extends(RemoveResourceHistoryItem, _super);\r\n function RemoveResourceHistoryItem(modelManipulator, resourceId) {\r\n var _this = _super.call(this) || this;\r\n _this.modelManipulator = modelManipulator;\r\n _this.resourceId = resourceId;\r\n return _this;\r\n }\r\n RemoveResourceHistoryItem.prototype.redo = function () {\r\n _super.prototype.redo.call(this);\r\n this.resource = this.modelManipulator.resource.remove(this.resourceId);\r\n };\r\n RemoveResourceHistoryItem.prototype.undo = function () {\r\n var _this = this;\r\n this.modelManipulator.resource.create(this.resource.text, this.resourceId, function () {\r\n if (_this.resource.color)\r\n _this.modelManipulator.resource.properties.color.setValue(_this.resource.internalId, _this.resource.color);\r\n _super.prototype.undo.call(_this);\r\n });\r\n };\r\n RemoveResourceHistoryItem.prototype.undoItemsQuery = function () {\r\n this.modelManipulator.resource.create(this.resource.text, this.resourceId, function () { });\r\n if (this.resource.color)\r\n this.modelManipulator.resource.properties.color.setValue(this.resource.internalId, this.resource.color);\r\n _super.prototype.undo.call(this);\r\n };\r\n return RemoveResourceHistoryItem;\r\n}(HistoryItem_1.CompositionHistoryItem));\r\nexports.RemoveResourceHistoryItem = RemoveResourceHistoryItem;\r\nvar AssignResourceHistoryItem = (function (_super) {\r\n tslib_1.__extends(AssignResourceHistoryItem, _super);\r\n function AssignResourceHistoryItem(modelManipulator, resourceId, taskId) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.resourceId = resourceId;\r\n _this.taskId = taskId;\r\n return _this;\r\n }\r\n AssignResourceHistoryItem.prototype.redo = function () {\r\n this.assignment = this.modelManipulator.resource.assign(this.resourceId, this.taskId, this.assignment ? this.assignment.internalId : null);\r\n };\r\n AssignResourceHistoryItem.prototype.undo = function () {\r\n this.modelManipulator.resource.deassig(this.assignment.internalId);\r\n };\r\n return AssignResourceHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.AssignResourceHistoryItem = AssignResourceHistoryItem;\r\nvar DeassignResourceHistoryItem = (function (_super) {\r\n tslib_1.__extends(DeassignResourceHistoryItem, _super);\r\n function DeassignResourceHistoryItem(modelManipulator, assignmentId) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.assignmentId = assignmentId;\r\n return _this;\r\n }\r\n DeassignResourceHistoryItem.prototype.redo = function () {\r\n this.assignment = this.modelManipulator.resource.deassig(this.assignmentId);\r\n };\r\n DeassignResourceHistoryItem.prototype.undo = function () {\r\n this.modelManipulator.resource.assign(this.assignment.resourceId, this.assignment.taskId, this.assignmentId);\r\n };\r\n return DeassignResourceHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.DeassignResourceHistoryItem = DeassignResourceHistoryItem;\r\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(10);\r\nvar TaskPropertiesHistoryItemBase = (function (_super) {\r\n tslib_1.__extends(TaskPropertiesHistoryItemBase, _super);\r\n function TaskPropertiesHistoryItemBase(modelManipulator, taskId, newValue) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.taskId = taskId;\r\n _this.newValue = newValue;\r\n return _this;\r\n }\r\n TaskPropertiesHistoryItemBase.prototype.redo = function () {\r\n this.oldState = this.getPropertiesManipulator().setValue(this.taskId, this.newValue);\r\n };\r\n TaskPropertiesHistoryItemBase.prototype.undo = function () {\r\n this.getPropertiesManipulator().restoreValue(this.oldState);\r\n };\r\n TaskPropertiesHistoryItemBase.prototype.getPropertiesManipulator = function () {\r\n throw new Error(\"Not Implemented\");\r\n };\r\n return TaskPropertiesHistoryItemBase;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.TaskPropertiesHistoryItemBase = TaskPropertiesHistoryItemBase;\r\nvar TaskTitleHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskTitleHistoryItem, _super);\r\n function TaskTitleHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskTitleHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.title;\r\n };\r\n return TaskTitleHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskTitleHistoryItem = TaskTitleHistoryItem;\r\nvar TaskDesriptionHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskDesriptionHistoryItem, _super);\r\n function TaskDesriptionHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskDesriptionHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.description;\r\n };\r\n return TaskDesriptionHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskDesriptionHistoryItem = TaskDesriptionHistoryItem;\r\nvar TaskProgressHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskProgressHistoryItem, _super);\r\n function TaskProgressHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskProgressHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.progress;\r\n };\r\n return TaskProgressHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskProgressHistoryItem = TaskProgressHistoryItem;\r\nvar TaskStartHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskStartHistoryItem, _super);\r\n function TaskStartHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskStartHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.start;\r\n };\r\n return TaskStartHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskStartHistoryItem = TaskStartHistoryItem;\r\nvar TaskEndHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskEndHistoryItem, _super);\r\n function TaskEndHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskEndHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.end;\r\n };\r\n return TaskEndHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskEndHistoryItem = TaskEndHistoryItem;\r\nvar TaskMoveHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskMoveHistoryItem, _super);\r\n function TaskMoveHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskMoveHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.move;\r\n };\r\n return TaskMoveHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskMoveHistoryItem = TaskMoveHistoryItem;\r\nvar TaskColorHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskColorHistoryItem, _super);\r\n function TaskColorHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskColorHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.color;\r\n };\r\n return TaskColorHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskColorHistoryItem = TaskColorHistoryItem;\r\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Time = (function () {\r\n function Time(h, min, sec, msec) {\r\n if (h === void 0) { h = 0; }\r\n if (min === void 0) { min = 0; }\r\n if (sec === void 0) { sec = 0; }\r\n if (msec === void 0) { msec = 0; }\r\n this._hour = 0;\r\n this._min = 0;\r\n this._sec = 0;\r\n this._msec = 0;\r\n this._fullmsec = 0;\r\n this.hour = h;\r\n this.min = min;\r\n this.sec = sec;\r\n this.msec = msec;\r\n }\r\n Object.defineProperty(Time.prototype, \"hour\", {\r\n get: function () { return this._hour; },\r\n set: function (h) {\r\n if (h >= 0 && h < 24) {\r\n this._hour = h;\r\n this.updateFullMilleconds();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Time.prototype, \"min\", {\r\n get: function () { return this._min; },\r\n set: function (m) {\r\n if (m >= 0 && m < 60) {\r\n this._min = m;\r\n this.updateFullMilleconds();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Time.prototype, \"sec\", {\r\n get: function () { return this._sec; },\r\n set: function (s) {\r\n if (s >= 0 && s < 60) {\r\n this._sec = s;\r\n this.updateFullMilleconds();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Time.prototype, \"msec\", {\r\n get: function () { return this._msec; },\r\n set: function (ms) {\r\n if (ms >= 0 && ms < 1000) {\r\n this._msec = ms;\r\n this.updateFullMilleconds();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Time.prototype.updateFullMilleconds = function () {\r\n var minutes = this._hour * 60 + this._min;\r\n var sec = minutes * 60 + this._sec;\r\n this._fullmsec = sec * 1000 + this._msec;\r\n };\r\n Time.prototype.getTimeInMilleconds = function () {\r\n return this._fullmsec;\r\n };\r\n return Time;\r\n}());\r\nexports.Time = Time;\r\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DateTimeUtils_1 = __webpack_require__(3);\r\nvar TimeRange = (function () {\r\n function TimeRange(start, end) {\r\n var diff = DateTimeUtils_1.DateTimeUtils.caclTimeDifference(start, end);\r\n if (diff >= 0) {\r\n this._start = start;\r\n this._end = end;\r\n }\r\n else {\r\n this._start = end;\r\n this._end = start;\r\n }\r\n }\r\n ;\r\n Object.defineProperty(TimeRange.prototype, \"start\", {\r\n get: function () { return this._start; },\r\n set: function (time) {\r\n if (time && DateTimeUtils_1.DateTimeUtils.caclTimeDifference(time, this._end) >= 0)\r\n this._start = time;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TimeRange.prototype, \"end\", {\r\n get: function () { return this._end; },\r\n set: function (time) {\r\n if (time && DateTimeUtils_1.DateTimeUtils.caclTimeDifference(this._start, time) >= 0)\r\n this._end = time;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TimeRange.prototype.isTimeInRange = function (time) {\r\n return DateTimeUtils_1.DateTimeUtils.caclTimeDifference(this._start, time) >= 0 && DateTimeUtils_1.DateTimeUtils.caclTimeDifference(time, this._end) >= 0;\r\n };\r\n TimeRange.prototype.hasIntersect = function (range) {\r\n return this.isTimeInRange(range.start) || this.isTimeInRange(range.end) || range.isTimeInRange(this.start) || range.isTimeInRange(this.end);\r\n };\r\n TimeRange.prototype.concatWith = function (range) {\r\n if (!this.hasIntersect(range))\r\n return false;\r\n ;\r\n this.start = DateTimeUtils_1.DateTimeUtils.getMinTime(this.start, range.start);\r\n this.end = DateTimeUtils_1.DateTimeUtils.getMaxTime(this.end, range.end);\r\n return true;\r\n };\r\n return TimeRange;\r\n}());\r\nexports.TimeRange = TimeRange;\r\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DayOfWeekMonthlyOccurrence;\r\n(function (DayOfWeekMonthlyOccurrence) {\r\n DayOfWeekMonthlyOccurrence[DayOfWeekMonthlyOccurrence[\"First\"] = 0] = \"First\";\r\n DayOfWeekMonthlyOccurrence[DayOfWeekMonthlyOccurrence[\"Second\"] = 1] = \"Second\";\r\n DayOfWeekMonthlyOccurrence[DayOfWeekMonthlyOccurrence[\"Third\"] = 2] = \"Third\";\r\n DayOfWeekMonthlyOccurrence[DayOfWeekMonthlyOccurrence[\"Forth\"] = 3] = \"Forth\";\r\n DayOfWeekMonthlyOccurrence[DayOfWeekMonthlyOccurrence[\"Last\"] = 4] = \"Last\";\r\n})(DayOfWeekMonthlyOccurrence = exports.DayOfWeekMonthlyOccurrence || (exports.DayOfWeekMonthlyOccurrence = {}));\r\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Utils_1 = __webpack_require__(2);\r\nvar Daily_1 = __webpack_require__(33);\r\nvar Weekly_1 = __webpack_require__(60);\r\nvar Monthly_1 = __webpack_require__(61);\r\nvar Yearly_1 = __webpack_require__(63);\r\nvar RecurrenceFactory = (function () {\r\n function RecurrenceFactory() {\r\n }\r\n RecurrenceFactory.createRecurrenceByType = function (type) {\r\n if (!type)\r\n return null;\r\n var correctedType = type.toLowerCase();\r\n switch (correctedType) {\r\n case \"daily\":\r\n return new Daily_1.Daily();\r\n case \"weekly\":\r\n return new Weekly_1.Weekly();\r\n case \"monthly\":\r\n return new Monthly_1.Monthly();\r\n case \"yearly\":\r\n return new Yearly_1.Yearly();\r\n }\r\n return null;\r\n };\r\n RecurrenceFactory.createRecurrenceFromObject = function (sourceObj) {\r\n if (!sourceObj)\r\n return null;\r\n var recurrence = this.createRecurrenceByType(sourceObj.type);\r\n if (recurrence)\r\n recurrence.assignFromObject(sourceObj);\r\n return recurrence;\r\n };\r\n RecurrenceFactory.getEnumValue = function (type, value) {\r\n if (!Utils_1.JsonUtils.isExists(type[value]))\r\n return null;\r\n var num = parseInt(value);\r\n if (!isNaN(num))\r\n return num;\r\n return type[value];\r\n };\r\n return RecurrenceFactory;\r\n}());\r\nexports.RecurrenceFactory = RecurrenceFactory;\r\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar RecurrenceBase_1 = __webpack_require__(15);\r\nvar DateTimeUtils_1 = __webpack_require__(3);\r\nvar Daily = (function (_super) {\r\n tslib_1.__extends(Daily, _super);\r\n function Daily() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Daily.prototype.checkDate = function (date) { return true; };\r\n Daily.prototype.checkInterval = function (date) {\r\n return DateTimeUtils_1.DateTimeUtils.getDaysBetween(this.start, date) % this.interval == 0;\r\n };\r\n Daily.prototype.calculatePointByInterval = function (date) {\r\n var daysToAdd = this.interval;\r\n if (!this.isRecurrencePoint(date))\r\n daysToAdd -= DateTimeUtils_1.DateTimeUtils.getDaysBetween(this.start, date) % this.interval;\r\n return DateTimeUtils_1.DateTimeUtils.addDays(date, daysToAdd);\r\n };\r\n Daily.prototype.calculateNearestPoint = function (date) {\r\n return DateTimeUtils_1.DateTimeUtils.addDays(date, 1);\r\n };\r\n return Daily;\r\n}(RecurrenceBase_1.RecurrenceBase));\r\nexports.Daily = Daily;\r\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Enums_1 = __webpack_require__(13);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar DateUtils = (function () {\r\n function DateUtils() {\r\n }\r\n DateUtils.getDaysInMonth = function (month, year) {\r\n var d = new Date(year, month + 1, 0);\r\n return d.getDate();\r\n };\r\n DateUtils.getOffsetInMonths = function (start, end) {\r\n return (end.getFullYear() - start.getFullYear()) * 12 + end.getMonth() - start.getMonth();\r\n };\r\n DateUtils.getOffsetInQuarters = function (start, end) {\r\n return (end.getFullYear() - start.getFullYear()) * 4 + Math.floor(end.getMonth() / 3) - Math.floor(start.getMonth() / 3);\r\n };\r\n DateUtils.getNearestScaleTickDate = function (date, range, tickTimeSpan, viewType) {\r\n var result = new Date();\r\n var rangeStartTime = range.start.getTime();\r\n var rangeEndTime = range.end.getTime();\r\n result.setTime(date.getTime());\r\n if (date.getTime() < rangeStartTime)\r\n result.setTime(rangeStartTime);\r\n else if (date.getTime() > rangeEndTime)\r\n result.setTime(rangeEndTime);\r\n else if (this.needCorrectDate(date, rangeStartTime, tickTimeSpan, viewType)) {\r\n var nearestLeftTickTime = this.getNearestLeftTickTime(date, rangeStartTime, tickTimeSpan, viewType);\r\n var nearestRightTickTime = this.getNextTickTime(nearestLeftTickTime, tickTimeSpan, viewType);\r\n if (Math.abs(date.getTime() - nearestLeftTickTime) > Math.abs(date.getTime() - nearestRightTickTime))\r\n result.setTime(nearestRightTickTime);\r\n else\r\n result.setTime(nearestLeftTickTime);\r\n }\r\n return result;\r\n };\r\n DateUtils.needCorrectDate = function (date, rangeStartTime, tickTimeSpan, viewType) {\r\n if (viewType == Enums_1.ViewType.Months)\r\n return date.getTime() !== new Date(date.getFullYear(), date.getMonth(), 1).getTime();\r\n return (date.getTime() - rangeStartTime) % tickTimeSpan !== 0;\r\n };\r\n DateUtils.getNearestLeftTickTime = function (date, rangeStartTime, tickTimeSpan, viewType) {\r\n if (viewType == Enums_1.ViewType.Months)\r\n return new Date(date.getFullYear(), date.getMonth(), 1).getTime();\r\n var tickCountAtLeft = Math.floor((date.getTime() - rangeStartTime) / tickTimeSpan);\r\n return rangeStartTime + tickCountAtLeft * tickTimeSpan;\r\n };\r\n DateUtils.getNextTickTime = function (currentTickTime, tickTimeSpan, viewType) {\r\n if (viewType == Enums_1.ViewType.Months) {\r\n var nextTickDate = new Date();\r\n nextTickDate.setTime(currentTickTime);\r\n nextTickDate.setMonth(nextTickDate.getMonth() + 1);\r\n return nextTickDate.getTime();\r\n }\r\n return currentTickTime + tickTimeSpan;\r\n };\r\n DateUtils.adjustStartDateByViewType = function (date, viewType, firstDayOfWeek) {\r\n if (firstDayOfWeek === void 0) { firstDayOfWeek = 0; }\r\n switch (viewType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours());\r\n case Enums_1.ViewType.SixHours:\r\n case Enums_1.ViewType.Hours:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n case Enums_1.ViewType.Days:\r\n case Enums_1.ViewType.Weeks:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + firstDayOfWeek);\r\n case Enums_1.ViewType.Months:\r\n case Enums_1.ViewType.Quarter:\r\n case Enums_1.ViewType.Years:\r\n return new Date(date.getFullYear(), 0, 1);\r\n default:\r\n return new Date();\r\n }\r\n };\r\n DateUtils.adjustEndDateByViewType = function (date, viewType, firstDayOfWeek) {\r\n if (firstDayOfWeek === void 0) { firstDayOfWeek = 0; }\r\n switch (viewType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours() + 1);\r\n case Enums_1.ViewType.SixHours:\r\n case Enums_1.ViewType.Hours:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);\r\n case Enums_1.ViewType.Days:\r\n case Enums_1.ViewType.Weeks:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() + 7 - date.getDay() + firstDayOfWeek);\r\n case Enums_1.ViewType.Months:\r\n case Enums_1.ViewType.Quarter:\r\n case Enums_1.ViewType.Years:\r\n return new Date(date.getFullYear() + 1, 0, 1);\r\n default:\r\n return new Date();\r\n }\r\n };\r\n DateUtils.roundStartDate = function (date, viewType) {\r\n switch (viewType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n case Enums_1.ViewType.Hours:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours() - 1);\r\n case Enums_1.ViewType.SixHours:\r\n case Enums_1.ViewType.Days:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1);\r\n case Enums_1.ViewType.Weeks:\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay());\r\n case Enums_1.ViewType.Months:\r\n return new Date(date.getFullYear(), date.getMonth() - 1);\r\n case Enums_1.ViewType.Quarter:\r\n case Enums_1.ViewType.Years:\r\n return new Date(date.getFullYear() - 1, 0, 1);\r\n default:\r\n return new Date();\r\n }\r\n };\r\n DateUtils.getTickTimeSpan = function (viewType) {\r\n switch (viewType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n return DateUtils.msPerHour / 6;\r\n case Enums_1.ViewType.Hours:\r\n return DateUtils.msPerHour;\r\n case Enums_1.ViewType.SixHours:\r\n return DateUtils.msPerHour * 6;\r\n case Enums_1.ViewType.Days:\r\n return DateUtils.msPerDay;\r\n case Enums_1.ViewType.Weeks:\r\n return DateUtils.msPerWeek;\r\n case Enums_1.ViewType.Months:\r\n return DateUtils.msPerMonth;\r\n case Enums_1.ViewType.Quarter:\r\n return DateUtils.msPerMonth * 3;\r\n case Enums_1.ViewType.Years:\r\n return DateUtils.msPerMonth * 12;\r\n }\r\n };\r\n DateUtils.parse = function (data) {\r\n return typeof data === \"function\" ? new Date(data()) : new Date(data);\r\n };\r\n DateUtils.msPerHour = 3600000;\r\n DateUtils.msPerDay = 24 * DateUtils.msPerHour;\r\n DateUtils.msPerWeek = 7 * DateUtils.msPerDay;\r\n DateUtils.msPerMonth = 30 * DateUtils.msPerDay;\r\n DateUtils.ViewTypeToScaleMap = createViewTypeToScaleMap();\r\n return DateUtils;\r\n}());\r\nexports.DateUtils = DateUtils;\r\nvar ElementTextHelper = (function () {\r\n function ElementTextHelper(cultureInfo) {\r\n this.longestAbbrMonthName = null;\r\n this.longestMonthName = null;\r\n this.longestAbbrDayName = null;\r\n var canvas = document.createElement(\"canvas\");\r\n this.textMeasureContext = canvas.getContext(\"2d\");\r\n this.cultureInfo = cultureInfo;\r\n }\r\n ElementTextHelper.prototype.setFont = function (fontHolder) {\r\n var computedStyle = DomUtils_1.DomUtils.getCurrentStyle(fontHolder);\r\n var font = computedStyle.font ? computedStyle.font :\r\n computedStyle.fontStyle + \" \" + computedStyle.fontVariant + \" \" + computedStyle.fontWeight + \" \"\r\n + computedStyle.fontSize + \" / \" + computedStyle.lineHeight + \" \" + computedStyle.fontFamily;\r\n this.textMeasureContext.font = font;\r\n };\r\n ElementTextHelper.prototype.setSettings = function (startTime, viewType, modelItems) {\r\n this.startTime = startTime;\r\n this.viewType = viewType;\r\n this.modelItems = modelItems;\r\n };\r\n ElementTextHelper.prototype.getScaleItemStartDate = function (index, scaleType) {\r\n var result = new Date(this.startTime);\r\n switch (scaleType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n result.setTime(this.startTime + index * DateUtils.msPerHour / 6);\r\n break;\r\n case Enums_1.ViewType.Hours:\r\n result.setTime(this.startTime + index * DateUtils.msPerHour);\r\n break;\r\n case Enums_1.ViewType.SixHours:\r\n result.setTime(this.startTime + index * DateUtils.msPerHour * 6);\r\n break;\r\n case Enums_1.ViewType.Days:\r\n result.setTime(this.startTime + index * DateUtils.msPerDay);\r\n break;\r\n case Enums_1.ViewType.Weeks:\r\n result.setTime(this.startTime + index * DateUtils.msPerWeek);\r\n break;\r\n case Enums_1.ViewType.Months:\r\n result.setMonth(result.getMonth() + index);\r\n break;\r\n case Enums_1.ViewType.Quarter:\r\n result.setMonth(result.getMonth() + index * 3);\r\n break;\r\n case Enums_1.ViewType.Years:\r\n result.setFullYear(result.getFullYear() + index);\r\n break;\r\n case Enums_1.ViewType.FiveYears:\r\n result.setFullYear(result.getFullYear() + index * 5);\r\n break;\r\n }\r\n return result;\r\n };\r\n ElementTextHelper.prototype.getScaleItemText = function (index, scaleType) {\r\n var scaleItemStartDate = this.getScaleItemStartDate(index, scaleType);\r\n var isViewTypeScale = this.viewType.valueOf() == scaleType.valueOf();\r\n switch (scaleType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n return this.getTenMinutesScaleItemText(scaleItemStartDate);\r\n case Enums_1.ViewType.Hours:\r\n case Enums_1.ViewType.SixHours:\r\n return this.getHoursScaleItemText(scaleItemStartDate);\r\n case Enums_1.ViewType.Days:\r\n return this.getDaysScaleItemText(scaleItemStartDate, isViewTypeScale);\r\n case Enums_1.ViewType.Weeks:\r\n return this.getWeeksScaleItemText(scaleItemStartDate, isViewTypeScale);\r\n case Enums_1.ViewType.Months:\r\n return this.getMonthsScaleItemText(scaleItemStartDate, isViewTypeScale);\r\n case Enums_1.ViewType.Quarter:\r\n return this.getQuarterScaleItemText(scaleItemStartDate, isViewTypeScale);\r\n case Enums_1.ViewType.Years:\r\n return this.getYearsScaleItemText(scaleItemStartDate);\r\n case Enums_1.ViewType.FiveYears:\r\n return this.getFiveYearsScaleItemText(scaleItemStartDate);\r\n }\r\n };\r\n ElementTextHelper.prototype.getTenMinutesScaleItemText = function (scaleItemDate) {\r\n var minutes = scaleItemDate.getMinutes() + 1;\r\n return (Math.ceil(minutes / 10) * 10).toString();\r\n };\r\n ElementTextHelper.prototype.getThirtyMinutesScaleItemText = function (scaleItemDate) {\r\n var minutes = scaleItemDate.getMinutes();\r\n return minutes < 30 ? \"30\" : \"60\";\r\n };\r\n ElementTextHelper.prototype.getHoursScaleItemText = function (scaleItemDate) {\r\n var hours = scaleItemDate.getHours();\r\n var hourDisplayText = this.getHourDisplayText(hours);\r\n var amPmText = hours < 12 ? this.getAmText() : this.getPmText();\r\n return this.getHoursScaleItemTextCore(hourDisplayText, amPmText);\r\n };\r\n ElementTextHelper.prototype.getDaysScaleItemText = function (scaleItemDate, isViewTypeScale) {\r\n return this.getDayTotalText(scaleItemDate, true, isViewTypeScale, isViewTypeScale, !isViewTypeScale);\r\n };\r\n ElementTextHelper.prototype.getWeeksScaleItemText = function (scaleItemDate, isViewTypeScale) {\r\n var weekLastDayDate = new Date(scaleItemDate.getTime() + DateUtils.msPerWeek - DateUtils.msPerDay);\r\n return this.getWeeksScaleItemTextCore(this.getDayTotalText(scaleItemDate, isViewTypeScale, true, isViewTypeScale, !isViewTypeScale), this.getDayTotalText(weekLastDayDate, isViewTypeScale, true, isViewTypeScale, !isViewTypeScale));\r\n };\r\n ElementTextHelper.prototype.getMonthsScaleItemText = function (scaleItemDate, isViewTypeScale) {\r\n var monthNames = this.getMonthNames();\r\n var yearDisplayText = !isViewTypeScale ? scaleItemDate.getFullYear().toString() : \"\";\r\n return this.getMonthsScaleItemTextCore(monthNames[scaleItemDate.getMonth()], yearDisplayText);\r\n };\r\n ElementTextHelper.prototype.getQuarterScaleItemText = function (scaleItemDate, isViewTypeScale) {\r\n var quarterNames = this.getQuarterNames();\r\n var yearDisplayText = !isViewTypeScale ? scaleItemDate.getFullYear().toString() : \"\";\r\n return this.getMonthsScaleItemTextCore(quarterNames[Math.floor(scaleItemDate.getMonth() / 3)], yearDisplayText);\r\n };\r\n ElementTextHelper.prototype.getYearsScaleItemText = function (scaleItemDate) {\r\n return scaleItemDate.getFullYear().toString();\r\n };\r\n ElementTextHelper.prototype.getFiveYearsScaleItemText = function (scaleItemDate) {\r\n return scaleItemDate.getFullYear().toString() + \" - \" + (scaleItemDate.getFullYear() + 4).toString();\r\n };\r\n ElementTextHelper.prototype.getHourDisplayText = function (hours) {\r\n if (this.hasAmPm())\r\n return (hours == 0 ? 12 : (hours <= 12 ? hours : hours - 12)).toString();\r\n return hours < 10 ? \"0\" + hours : hours.toString();\r\n };\r\n ElementTextHelper.prototype.getDayTotalText = function (scaleItemDate, displayDayName, useAbbrDayNames, useAbbrMonthNames, displayYear) {\r\n var monthNames = useAbbrMonthNames ? this.getAbbrMonthNames() : this.getMonthNames();\r\n var dayNames = useAbbrDayNames ? this.getAbbrDayNames() : this.getDayNames();\r\n var dayNameDisplayText = displayDayName ? dayNames[scaleItemDate.getDay()] : \"\";\r\n var day = scaleItemDate.getDate();\r\n var monthName = monthNames[scaleItemDate.getMonth()];\r\n var yearDisplayText = displayYear ? scaleItemDate.getFullYear().toString() : \"\";\r\n return this.getDayTotalTextCore(dayNameDisplayText, day.toString(), monthName, yearDisplayText);\r\n };\r\n ElementTextHelper.prototype.getTaskText = function (index) {\r\n var item = this.modelItems[index];\r\n return item ? item.task.title : \"\";\r\n };\r\n ElementTextHelper.prototype.getTaskVisibility = function (index) {\r\n var item = this.modelItems[index];\r\n return !!item && item.getVisible();\r\n };\r\n ElementTextHelper.prototype.hasAmPm = function () {\r\n return this.getAmText().length > 0 || this.getPmText().length > 0;\r\n };\r\n ElementTextHelper.prototype.getScaleItemTextTemplate = function (viewType) {\r\n switch (viewType) {\r\n case Enums_1.ViewType.TenMinutes:\r\n return \"00\";\r\n case Enums_1.ViewType.Hours:\r\n case Enums_1.ViewType.SixHours:\r\n return this.getHoursScaleItemTextCore(\"00\", this.getAmText());\r\n case Enums_1.ViewType.Days:\r\n return this.getDayTextTemplate();\r\n case Enums_1.ViewType.Weeks:\r\n return this.getWeekTextTemplate();\r\n case Enums_1.ViewType.Months:\r\n return this.getMonthsScaleItemTextCore(this.getLongestMonthName(), \"\");\r\n case Enums_1.ViewType.Quarter:\r\n return \"Q4\";\r\n case Enums_1.ViewType.Years:\r\n return \"0000\";\r\n }\r\n };\r\n ElementTextHelper.prototype.getDayTextTemplate = function () {\r\n return this.getDayTotalTextCore(this.getLongestAbbrDayName(), \"00\", this.getLongestAbbrMonthName(), \"\");\r\n };\r\n ElementTextHelper.prototype.getWeekTextTemplate = function () {\r\n var dayTextTemplate = this.getDayTextTemplate();\r\n return this.getWeeksScaleItemTextCore(dayTextTemplate, dayTextTemplate);\r\n };\r\n ElementTextHelper.prototype.getHoursScaleItemTextCore = function (hourDisplayText, amPmText) {\r\n return hourDisplayText + \":00\" + (this.hasAmPm() ? \" \" + amPmText : \"\");\r\n };\r\n ElementTextHelper.prototype.getDayTotalTextCore = function (dayName, dayValueString, monthName, yearValueString) {\r\n var result = dayName.length > 0 ? dayName + \", \" : \"\";\r\n result += dayValueString + \" \" + monthName;\r\n result += (yearValueString.length > 0 ? \" \" + yearValueString : \"\");\r\n return result;\r\n };\r\n ElementTextHelper.prototype.getWeeksScaleItemTextCore = function (firstDayOfWeekString, lastDayOfWeekString) {\r\n return firstDayOfWeekString + \" - \" + lastDayOfWeekString;\r\n };\r\n ElementTextHelper.prototype.getMonthsScaleItemTextCore = function (monthName, yearValueString) {\r\n var result = monthName;\r\n if (yearValueString.length > 0)\r\n result += \" \" + yearValueString;\r\n return result;\r\n };\r\n ElementTextHelper.prototype.getLongestAbbrMonthName = function () {\r\n if (this.longestAbbrMonthName == null)\r\n this.longestAbbrMonthName = this.getLongestText(this.getAbbrMonthNames());\r\n return this.longestAbbrMonthName;\r\n };\r\n ElementTextHelper.prototype.getLongestMonthName = function () {\r\n if (this.longestMonthName == null)\r\n this.longestMonthName = this.getLongestText(this.getMonthNames());\r\n return this.longestMonthName;\r\n };\r\n ElementTextHelper.prototype.getLongestAbbrDayName = function () {\r\n if (this.longestAbbrDayName == null)\r\n this.longestAbbrDayName = this.getLongestText(this.getAbbrDayNames());\r\n return this.longestAbbrDayName;\r\n };\r\n ElementTextHelper.prototype.getLongestText = function (texts) {\r\n var _this = this;\r\n var result = \"\";\r\n var longestTextWidth = 0;\r\n texts.forEach(function (text) {\r\n var textWidth = _this.getTextWidth(text);\r\n if (textWidth > longestTextWidth) {\r\n longestTextWidth = textWidth;\r\n result = text;\r\n }\r\n });\r\n return result;\r\n };\r\n ElementTextHelper.prototype.getTextWidth = function (text) {\r\n return Math.round(this.textMeasureContext.measureText(text).width);\r\n };\r\n ElementTextHelper.prototype.getAmText = function () {\r\n return this.cultureInfo.amText;\r\n };\r\n ElementTextHelper.prototype.getPmText = function () {\r\n return this.cultureInfo.pmText;\r\n };\r\n ElementTextHelper.prototype.getQuarterNames = function () {\r\n return this.cultureInfo.quarterNames;\r\n };\r\n ElementTextHelper.prototype.getMonthNames = function () {\r\n return this.cultureInfo.monthNames;\r\n };\r\n ElementTextHelper.prototype.getDayNames = function () {\r\n return this.cultureInfo.dayNames;\r\n };\r\n ElementTextHelper.prototype.getAbbrMonthNames = function () {\r\n return this.cultureInfo.abbrMonthNames;\r\n };\r\n ElementTextHelper.prototype.getAbbrDayNames = function () {\r\n return this.cultureInfo.abbrDayNames;\r\n };\r\n return ElementTextHelper;\r\n}());\r\nexports.ElementTextHelper = ElementTextHelper;\r\nvar ElementTextHelperCultureInfo = (function () {\r\n function ElementTextHelperCultureInfo() {\r\n }\r\n return ElementTextHelperCultureInfo;\r\n}());\r\nexports.ElementTextHelperCultureInfo = ElementTextHelperCultureInfo;\r\nfunction createViewTypeToScaleMap() {\r\n var result = {};\r\n result[Enums_1.ViewType.TenMinutes] = Enums_1.ViewType.Hours;\r\n result[Enums_1.ViewType.Hours] = Enums_1.ViewType.Days;\r\n result[Enums_1.ViewType.SixHours] = Enums_1.ViewType.Days;\r\n result[Enums_1.ViewType.Days] = Enums_1.ViewType.Weeks;\r\n result[Enums_1.ViewType.Weeks] = Enums_1.ViewType.Months;\r\n result[Enums_1.ViewType.Months] = Enums_1.ViewType.Years;\r\n result[Enums_1.ViewType.Quarter] = Enums_1.ViewType.Years;\r\n result[Enums_1.ViewType.Years] = Enums_1.ViewType.FiveYears;\r\n return result;\r\n}\r\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Point_1 = __webpack_require__(4);\r\nvar Size_1 = __webpack_require__(23);\r\nvar Margins_1 = __webpack_require__(65);\r\nvar GridElementInfo = (function () {\r\n function GridElementInfo(className, position, size) {\r\n this.id = GridElementInfo.id++;\r\n this.position = new Point_1.Point();\r\n this.size = new Size_1.Size();\r\n this.margins = new Margins_1.Margins();\r\n this.attr = {};\r\n this.style = {};\r\n if (className)\r\n this.className = className;\r\n if (position)\r\n this.setPosition(position);\r\n if (size)\r\n this.setSize(size);\r\n }\r\n GridElementInfo.prototype.setSize = function (size) {\r\n this.size.width = size.width;\r\n this.size.height = size.height;\r\n };\r\n GridElementInfo.prototype.setPosition = function (position) {\r\n this.position.x = position.x;\r\n this.position.y = position.y;\r\n };\r\n GridElementInfo.prototype.assignToElement = function (element) {\r\n this.assignPosition(element);\r\n this.assignSize(element);\r\n this.assignMargins(element);\r\n if (this.className)\r\n element.className = this.className;\r\n };\r\n GridElementInfo.prototype.assignPosition = function (element) {\r\n if (this.position.x != null)\r\n element.style.left = this.position.x + \"px\";\r\n if (this.position.y != null)\r\n element.style.top = this.position.y + \"px\";\r\n };\r\n GridElementInfo.prototype.assignSize = function (element) {\r\n if (this.size.width)\r\n element.style.width = this.size.width + \"px\";\r\n if (this.size.height)\r\n element.style.height = this.size.height + \"px\";\r\n };\r\n GridElementInfo.prototype.assignMargins = function (element) {\r\n if (this.margins.marginLeft)\r\n element.style.marginLeft = this.margins.marginLeft + \"px\";\r\n if (this.margins.marginTop)\r\n element.style.marginTop = this.margins.marginTop + \"px\";\r\n if (this.margins.marginRight)\r\n element.style.marginRight = this.margins.marginRight + \"px\";\r\n if (this.margins.marginBottom)\r\n element.style.marginBottom = this.margins.marginBottom + \"px\";\r\n };\r\n GridElementInfo.prototype.setAttribute = function (name, value) {\r\n this.attr[name] = value;\r\n };\r\n GridElementInfo.id = 0;\r\n return GridElementInfo;\r\n}());\r\nexports.GridElementInfo = GridElementInfo;\r\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Enums_1 = __webpack_require__(13);\r\nvar Utils_1 = __webpack_require__(2);\r\nvar Settings = (function () {\r\n function Settings() {\r\n this.viewType = undefined;\r\n this.taskTitlePosition = Enums_1.TaskTitlePosition.Inside;\r\n this.showResources = true;\r\n this.areHorizontalBordersEnabled = true;\r\n this.areVerticalBordersEnabled = true;\r\n this.areAlternateRowsEnabled = true;\r\n this.allowSelectTask = true;\r\n this.firstDayOfWeek = 0;\r\n this.editing = new EditingSettings();\r\n this.validation = new ValidationSettings();\r\n this.stripLines = new StripLineSettings();\r\n }\r\n Settings.parse = function (settings) {\r\n var result = new Settings();\r\n if (settings) {\r\n if (Utils_1.JsonUtils.isExists(settings.viewType))\r\n result.viewType = settings.viewType;\r\n if (Utils_1.JsonUtils.isExists(settings.taskTitlePosition))\r\n result.taskTitlePosition = settings.taskTitlePosition;\r\n if (Utils_1.JsonUtils.isExists(settings.showResources))\r\n result.showResources = settings.showResources;\r\n if (Utils_1.JsonUtils.isExists(settings.areHorizontalBordersEnabled))\r\n result.areHorizontalBordersEnabled = settings.areHorizontalBordersEnabled;\r\n if (Utils_1.JsonUtils.isExists(settings.areVerticalBordersEnabled))\r\n result.areHorizontalBordersEnabled = settings.areHorizontalBordersEnabled;\r\n if (Utils_1.JsonUtils.isExists(settings.areAlternateRowsEnabled))\r\n result.areAlternateRowsEnabled = settings.areAlternateRowsEnabled;\r\n if (Utils_1.JsonUtils.isExists(settings.allowSelectTask))\r\n result.allowSelectTask = settings.allowSelectTask;\r\n if (Utils_1.JsonUtils.isExists(settings.firstDayOfWeek))\r\n result.firstDayOfWeek = settings.firstDayOfWeek;\r\n if (Utils_1.JsonUtils.isExists(settings.editing))\r\n result.editing = EditingSettings.parse(settings.editing);\r\n if (Utils_1.JsonUtils.isExists(settings.validation))\r\n result.validation = ValidationSettings.parse(settings.validation);\r\n if (Utils_1.JsonUtils.isExists(settings.stripLines))\r\n result.stripLines = StripLineSettings.parse(settings.stripLines);\r\n }\r\n return result;\r\n };\r\n Settings.prototype.equal = function (settings) {\r\n var result = true;\r\n result = result && this.viewType === settings.viewType;\r\n result = result && this.taskTitlePosition === settings.taskTitlePosition;\r\n result = result && this.showResources === settings.showResources;\r\n result = result && this.areHorizontalBordersEnabled === settings.areHorizontalBordersEnabled;\r\n result = result && this.areAlternateRowsEnabled === settings.areAlternateRowsEnabled;\r\n result = result && this.allowSelectTask === settings.allowSelectTask;\r\n result = result && this.editing.equal(settings.editing);\r\n result = result && this.validation.equal(settings.validation);\r\n result = result && this.stripLines.equal(settings.stripLines);\r\n return result;\r\n };\r\n return Settings;\r\n}());\r\nexports.Settings = Settings;\r\nvar EditingSettings = (function () {\r\n function EditingSettings() {\r\n this.enabled = false;\r\n this.allowDependencyDelete = true;\r\n this.allowDependencyInsert = true;\r\n this.allowTaskDelete = true;\r\n this.allowTaskInsert = true;\r\n this.allowTaskUpdate = true;\r\n this.allowResourceDelete = true;\r\n this.allowResourceInsert = true;\r\n this.allowResourceUpdate = true;\r\n }\r\n EditingSettings.parse = function (settings) {\r\n var result = new EditingSettings();\r\n if (settings) {\r\n if (Utils_1.JsonUtils.isExists(settings.enabled))\r\n result.enabled = settings.enabled;\r\n if (Utils_1.JsonUtils.isExists(settings.allowDependencyDelete))\r\n result.allowDependencyDelete = settings.allowDependencyDelete;\r\n if (Utils_1.JsonUtils.isExists(settings.allowDependencyInsert))\r\n result.allowDependencyInsert = settings.allowDependencyInsert;\r\n if (Utils_1.JsonUtils.isExists(settings.allowTaskDelete))\r\n result.allowTaskDelete = settings.allowTaskDelete;\r\n if (Utils_1.JsonUtils.isExists(settings.allowTaskInsert))\r\n result.allowTaskInsert = settings.allowTaskInsert;\r\n if (Utils_1.JsonUtils.isExists(settings.allowTaskUpdate))\r\n result.allowTaskUpdate = settings.allowTaskUpdate;\r\n if (Utils_1.JsonUtils.isExists(settings.allowResourceDelete))\r\n result.allowResourceDelete = settings.allowResourceDelete;\r\n if (Utils_1.JsonUtils.isExists(settings.allowResourceInsert))\r\n result.allowResourceInsert = settings.allowResourceInsert;\r\n if (Utils_1.JsonUtils.isExists(settings.allowResourceUpdate))\r\n result.allowResourceUpdate = settings.allowResourceUpdate;\r\n }\r\n return result;\r\n };\r\n EditingSettings.prototype.equal = function (settings) {\r\n var result = true;\r\n result = result && this.enabled === settings.enabled;\r\n result = result && this.allowDependencyDelete === settings.allowDependencyDelete;\r\n result = result && this.allowDependencyInsert === settings.allowDependencyInsert;\r\n result = result && this.allowTaskDelete === settings.allowTaskDelete;\r\n result = result && this.allowTaskInsert === settings.allowTaskInsert;\r\n result = result && this.allowTaskUpdate === settings.allowTaskUpdate;\r\n result = result && this.allowResourceDelete === settings.allowResourceDelete;\r\n result = result && this.allowResourceInsert === settings.allowResourceInsert;\r\n result = result && this.allowResourceUpdate === settings.allowResourceUpdate;\r\n return result;\r\n };\r\n return EditingSettings;\r\n}());\r\nexports.EditingSettings = EditingSettings;\r\nvar StripLineSettings = (function () {\r\n function StripLineSettings() {\r\n this.showCurrentTime = false;\r\n this.currentTimeUpdateInterval = 60000;\r\n this.stripLines = [];\r\n }\r\n StripLineSettings.parse = function (settings) {\r\n var result = new StripLineSettings();\r\n if (settings) {\r\n if (Utils_1.JsonUtils.isExists(settings.showCurrentTime))\r\n result.showCurrentTime = settings.showCurrentTime;\r\n if (Utils_1.JsonUtils.isExists(settings.currentTimeUpdateInterval))\r\n result.currentTimeUpdateInterval = settings.currentTimeUpdateInterval;\r\n if (Utils_1.JsonUtils.isExists(settings.currentTimeTitle))\r\n result.currentTimeTitle = settings.currentTimeTitle;\r\n if (Utils_1.JsonUtils.isExists(settings.currentTimeCssClass))\r\n result.currentTimeCssClass = settings.currentTimeCssClass;\r\n if (Utils_1.JsonUtils.isExists(settings.stripLines))\r\n for (var i = 0; i < settings.stripLines.length; i++)\r\n result.stripLines.push(StripLine.parse(settings.stripLines[i]));\r\n }\r\n return result;\r\n };\r\n StripLineSettings.prototype.equal = function (settings) {\r\n var result = true;\r\n result = result && this.showCurrentTime == settings.showCurrentTime;\r\n result = result && this.currentTimeUpdateInterval == settings.currentTimeUpdateInterval;\r\n result = result && this.currentTimeTitle == settings.currentTimeTitle;\r\n result = result && this.currentTimeCssClass == settings.currentTimeCssClass;\r\n result = result && this.stripLines.length === settings.stripLines.length;\r\n if (result) {\r\n for (var i = 0; i < settings.stripLines.length; i++)\r\n result = result && this.stripLines[i].equal(settings.stripLines[i]);\r\n }\r\n return result;\r\n };\r\n return StripLineSettings;\r\n}());\r\nexports.StripLineSettings = StripLineSettings;\r\nvar StripLine = (function () {\r\n function StripLine(start, end, title, cssClass, isCurrent) {\r\n this.isCurrent = false;\r\n this.start = start;\r\n this.end = end;\r\n this.title = title;\r\n this.cssClass = cssClass;\r\n this.isCurrent = isCurrent;\r\n }\r\n StripLine.parse = function (settings) {\r\n var result = new StripLine();\r\n if (settings) {\r\n if (Utils_1.JsonUtils.isExists(settings.start))\r\n result.start = settings.start;\r\n if (Utils_1.JsonUtils.isExists(settings.end))\r\n result.end = settings.end;\r\n if (Utils_1.JsonUtils.isExists(settings.title))\r\n result.title = settings.title;\r\n if (Utils_1.JsonUtils.isExists(settings.cssClass))\r\n result.cssClass = settings.cssClass;\r\n }\r\n return result;\r\n };\r\n StripLine.prototype.clone = function () {\r\n return new StripLine(this.start, this.end, this.title, this.cssClass, this.isCurrent);\r\n };\r\n StripLine.prototype.equal = function (stripLine) {\r\n var result = true;\r\n result = result && this.start == stripLine.start;\r\n result = result && this.end == stripLine.end;\r\n ;\r\n result = result && this.title == stripLine.title;\r\n result = result && this.cssClass == stripLine.cssClass;\r\n return result;\r\n };\r\n return StripLine;\r\n}());\r\nexports.StripLine = StripLine;\r\nvar ValidationSettings = (function () {\r\n function ValidationSettings() {\r\n this.validateDependencies = false;\r\n this.autoUpdateParentTasks = false;\r\n }\r\n ValidationSettings.parse = function (settings) {\r\n var result = new ValidationSettings();\r\n if (settings) {\r\n if (Utils_1.JsonUtils.isExists(settings.validateDependencies))\r\n result.validateDependencies = settings.validateDependencies;\r\n if (Utils_1.JsonUtils.isExists(settings.autoUpdateParentTasks))\r\n result.autoUpdateParentTasks = settings.autoUpdateParentTasks;\r\n }\r\n return result;\r\n };\r\n ValidationSettings.prototype.equal = function (settings) {\r\n var result = true;\r\n result = result && this.validateDependencies == settings.validateDependencies;\r\n result = result && this.autoUpdateParentTasks == settings.autoUpdateParentTasks;\r\n return result;\r\n };\r\n return ValidationSettings;\r\n}());\r\nexports.ValidationSettings = ValidationSettings;\r\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Enums_1 = __webpack_require__(13);\r\nvar DateRange_1 = __webpack_require__(7);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar Browser_1 = __webpack_require__(8);\r\nvar TaskEditController = (function () {\r\n function TaskEditController(gantt) {\r\n this.taskIndex = -1;\r\n this.successorIndex = -1;\r\n this.editing = false;\r\n this.gantt = gantt;\r\n this.createElements();\r\n }\r\n Object.defineProperty(TaskEditController.prototype, \"taskId\", {\r\n get: function () {\r\n return this.gantt.viewModel.items[this.taskIndex].task.internalId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskEditController.prototype, \"successorId\", {\r\n get: function () {\r\n return this.gantt.viewModel.items[this.successorIndex].task.internalId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskEditController.prototype, \"task\", {\r\n get: function () {\r\n return this.gantt.viewModel.items[this.taskIndex].task;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TaskEditController.prototype.show = function (taskIndex) {\r\n if (!this.editing) {\r\n this.taskIndex = taskIndex;\r\n this.updateWrapInfo();\r\n this.wrapInfo.assignPosition(this.baseElement);\r\n this.wrapInfo.assignSize(this.baseElement);\r\n this.gantt.taskArea.appendChild(this.baseElement);\r\n this.baseElement.className = TaskEditController.CLASSNAMES.TASK_EDIT_BOX;\r\n if (!this.gantt.settings.editing.enabled || !this.gantt.settings.editing.allowDependencyInsert)\r\n this.baseElement.className = this.baseElement.className + \" hide-dependency\";\r\n if (this.task.isMilestone())\r\n this.baseElement.className = this.baseElement.className + \" milestone\";\r\n else {\r\n if (!this.gantt.settings.editing.enabled || !this.gantt.settings.editing.allowTaskUpdate || !this.canUpdateTask())\r\n this.baseElement.className = this.baseElement.className + \" hide-updating\";\r\n this.progressEdit.style.left = ((this.task.progress / 100) *\r\n this.wrapInfo.size.width - (this.progressEdit.offsetWidth / 2)) + \"px\";\r\n }\r\n this.taskDateRange = new DateRange_1.DateRange(this.task.start, this.task.end);\r\n }\r\n };\r\n TaskEditController.prototype.hide = function () {\r\n var parentNode = this.baseElement.parentNode;\r\n if (parentNode)\r\n parentNode.removeChild(this.baseElement);\r\n this.tooltip.hide();\r\n };\r\n TaskEditController.prototype.showTaskInfo = function (posX) {\r\n this.tooltip.showInfo(this.task, posX, 500);\r\n };\r\n TaskEditController.prototype.updateWrapInfo = function () {\r\n this.wrapInfo = this.getTaskWrapperElementInfo(this.taskIndex);\r\n this.wrapInfo.position.x--;\r\n };\r\n TaskEditController.prototype.showDependencySuccessor = function (taskIndex) {\r\n if (this.successorIndex != taskIndex && this.taskIndex != taskIndex) {\r\n this.successorIndex = taskIndex;\r\n var wrapInfo = this.getTaskWrapperElementInfo(taskIndex);\r\n wrapInfo.assignPosition(this.dependencySuccessorBaseElement);\r\n wrapInfo.assignSize(this.dependencySuccessorBaseElement);\r\n wrapInfo.assignSize(this.dependencySuccessorFrame);\r\n this.gantt.taskArea.appendChild(this.dependencySuccessorBaseElement);\r\n }\r\n };\r\n TaskEditController.prototype.hideDependencySuccessor = function () {\r\n var parentNode = this.dependencySuccessorBaseElement.parentNode;\r\n if (parentNode)\r\n parentNode.removeChild(this.dependencySuccessorBaseElement);\r\n this.successorIndex = -1;\r\n };\r\n TaskEditController.prototype.processProgress = function (position) {\r\n this.editing = true;\r\n var progressOffset = position.x - this.wrapInfo.position.x;\r\n var progress = 0;\r\n if (position.x > this.wrapInfo.position.x)\r\n if (position.x < this.wrapInfo.position.x + this.wrapInfo.size.width)\r\n progress = Math.round((progressOffset) / this.baseElement.clientWidth * 100);\r\n else\r\n progress = 100;\r\n this.progressEdit.style.left = ((progress / 100) *\r\n this.wrapInfo.size.width - (this.progressEdit.offsetWidth / 2)) + \"px\";\r\n this.tooltip.showProgress(progress, DomUtils_1.DomUtils.getAbsolutePositionX(this.progressEdit) + this.progressEdit.offsetWidth / 2);\r\n };\r\n TaskEditController.prototype.confirmProgress = function () {\r\n this.editing = false;\r\n var progress = Math.round((this.progressEdit.offsetLeft + (this.progressEdit.offsetWidth / 2)) / this.wrapInfo.size.width * 100);\r\n this.gantt.commandManager.changeTaskProgressCommand.execute(this.taskId, progress);\r\n };\r\n TaskEditController.prototype.processEnd = function (position) {\r\n this.baseElement.className = this.baseElement.className + \" move\";\r\n this.editing = true;\r\n var positionX = position.x > this.wrapInfo.position.x ? position.x : this.wrapInfo.position.x;\r\n var width = positionX - this.wrapInfo.position.x;\r\n this.baseElement.style.width = (width < 1 ? 0 : width) + \"px\";\r\n var startDate = this.task.start;\r\n var date = this.gantt.gridLayoutCalculator.getDateByPos(positionX);\r\n date.setSeconds(0);\r\n if (date < startDate || width < 1)\r\n this.taskDateRange.end.setTime(startDate.getTime());\r\n else\r\n this.taskDateRange.end = this.getNewDate(this.task.end, date);\r\n this.tooltip.showTime(startDate, this.taskDateRange.end, DomUtils_1.DomUtils.getAbsolutePositionX(this.baseElement) + this.baseElement.clientWidth);\r\n };\r\n TaskEditController.prototype.confirmEnd = function () {\r\n this.baseElement.className = TaskEditController.CLASSNAMES.TASK_EDIT_BOX;\r\n this.editing = false;\r\n this.gantt.commandManager.changeTaskEndCommand.execute(this.taskId, this.taskDateRange.end);\r\n this.hide();\r\n this.updateWrapInfo();\r\n };\r\n TaskEditController.prototype.processStart = function (position) {\r\n this.baseElement.className = this.baseElement.className + \" move\";\r\n this.editing = true;\r\n var positionX = position.x < this.wrapInfo.position.x + this.wrapInfo.size.width ? position.x : this.wrapInfo.position.x + this.wrapInfo.size.width;\r\n var width = this.wrapInfo.size.width - (positionX - this.wrapInfo.position.x);\r\n this.baseElement.style.left = positionX + \"px\";\r\n this.baseElement.style.width = (width < 1 ? 0 : width) + \"px\";\r\n var endDate = this.task.end;\r\n var date = this.gantt.gridLayoutCalculator.getDateByPos(positionX);\r\n date.setSeconds(0);\r\n if (date > endDate || width < 1)\r\n this.taskDateRange.start.setTime(endDate.getTime());\r\n else\r\n this.taskDateRange.start = this.getNewDate(this.task.start, date);\r\n this.tooltip.showTime(this.taskDateRange.start, endDate, DomUtils_1.DomUtils.getAbsolutePositionX(this.baseElement));\r\n };\r\n TaskEditController.prototype.confirmStart = function () {\r\n this.baseElement.className = TaskEditController.CLASSNAMES.TASK_EDIT_BOX;\r\n this.editing = false;\r\n this.gantt.commandManager.changeTaskStartCommand.execute(this.taskId, this.taskDateRange.start);\r\n this.hide();\r\n this.updateWrapInfo();\r\n };\r\n TaskEditController.prototype.processMove = function (delta) {\r\n if (this.gantt.settings.editing.enabled && this.gantt.settings.editing.allowTaskUpdate) {\r\n this.baseElement.className = this.baseElement.className + \" move\";\r\n this.editing = true;\r\n var left = this.baseElement.offsetLeft + delta;\r\n this.baseElement.style.left = left + \"px\";\r\n var date = this.gantt.gridLayoutCalculator.getDateByPos(left);\r\n this.taskDateRange.start = this.getNewDate(this.task.start, date);\r\n var dateDiff = this.task.start.getTime() - this.taskDateRange.start.getTime();\r\n var endDate = new Date(this.task.end.getTime() - dateDiff);\r\n this.taskDateRange.end = this.getNewDate(this.task.end, endDate);\r\n this.tooltip.showTime(this.taskDateRange.start, this.taskDateRange.end, DomUtils_1.DomUtils.getAbsolutePositionX(this.baseElement));\r\n }\r\n };\r\n TaskEditController.prototype.confirmMove = function () {\r\n if (this.gantt.settings.editing.enabled && this.gantt.settings.editing.allowTaskUpdate) {\r\n if (!this.gantt.settings.editing.allowDependencyInsert)\r\n this.baseElement.className = this.baseElement.className + \" hide-dependency\";\r\n if (this.editing) {\r\n this.baseElement.className = TaskEditController.CLASSNAMES.TASK_EDIT_BOX;\r\n this.gantt.commandManager.taskMoveCommand.execute(this.taskId, this.taskDateRange.start, this.taskDateRange.end);\r\n this.updateWrapInfo();\r\n this.hide();\r\n this.editing = false;\r\n }\r\n }\r\n };\r\n TaskEditController.prototype.getNewDate = function (referenceDate, newDate) {\r\n if (this.gantt.settings.viewType > Enums_1.ViewType.SixHours) {\r\n var date = new Date(referenceDate.getTime());\r\n date.setDate(newDate.getDate());\r\n date.setMonth(newDate.getMonth());\r\n date.setFullYear(newDate.getFullYear());\r\n if (this.gantt.settings.viewType == Enums_1.ViewType.Days)\r\n date.setHours(newDate.getHours());\r\n return date;\r\n }\r\n else\r\n return newDate;\r\n };\r\n TaskEditController.prototype.startDependency = function (pos) {\r\n this.dependencyLine = document.createElement(\"DIV\");\r\n this.dependencyLine.className = TaskEditController.CLASSNAMES.TASK_EDIT_DEPENDENCY_LINE;\r\n this.gantt.taskArea.appendChild(this.dependencyLine);\r\n this.startPosition = pos;\r\n };\r\n TaskEditController.prototype.processDependency = function (pos) {\r\n this.editing = true;\r\n this.drawline(this.startPosition, pos);\r\n };\r\n TaskEditController.prototype.endDependency = function (type) {\r\n this.editing = false;\r\n if (type != null)\r\n this.gantt.commandManager.createDependencyCommand.execute(this.task.internalId, this.successorId, type);\r\n var parentNode = this.dependencyLine.parentNode;\r\n if (parentNode)\r\n parentNode.removeChild(this.dependencyLine);\r\n this.dependencyLine = null;\r\n this.hideDependencySuccessor();\r\n this.hide();\r\n };\r\n TaskEditController.prototype.selectDependency = function (id) {\r\n if (this.gantt.settings.editing.allowDependencyDelete)\r\n this.dependencyId = id;\r\n };\r\n TaskEditController.prototype.isDependencySelected = function (id) {\r\n return this.dependencyId && this.dependencyId == id;\r\n };\r\n TaskEditController.prototype.deleteSelectedDependency = function () {\r\n if (this.dependencyId)\r\n this.gantt.commandManager.removeDependencyCommand.execute(this.dependencyId);\r\n };\r\n TaskEditController.prototype.getTaskWrapperElementInfo = function (taskIndex) {\r\n var calculator = this.gantt.gridLayoutCalculator;\r\n var info = calculator.getTaskWrapperElementInfo(taskIndex);\r\n info.size.width = calculator.getTaskWidth(taskIndex);\r\n info.size.height = calculator.getTaskHeight(taskIndex);\r\n return info;\r\n };\r\n TaskEditController.prototype.createElements = function () {\r\n this.baseElement = document.createElement(\"DIV\");\r\n this.baseFrame = document.createElement(\"DIV\");\r\n this.baseFrame.className = TaskEditController.CLASSNAMES.TASK_EDIT_FRAME;\r\n this.baseElement.appendChild(this.baseFrame);\r\n this.progressEdit = document.createElement(\"DIV\");\r\n this.progressEdit.className = TaskEditController.CLASSNAMES.TASK_EDIT_PROGRESS;\r\n this.baseFrame.appendChild(this.progressEdit);\r\n this.progressEdit.appendChild(document.createElement(\"DIV\"));\r\n this.dependencyFinish = document.createElement(\"DIV\");\r\n this.dependencyFinish.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_DEPENDENCY_RIGTH);\r\n if (Browser_1.Browser.TouchUI)\r\n this.dependencyFinish.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_TOUCH);\r\n this.baseFrame.appendChild(this.dependencyFinish);\r\n this.dependencyStart = document.createElement(\"DIV\");\r\n this.dependencyStart.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_DEPENDENCY_LEFT);\r\n if (Browser_1.Browser.TouchUI)\r\n this.dependencyStart.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_TOUCH);\r\n this.baseFrame.appendChild(this.dependencyStart);\r\n this.startEdit = document.createElement(\"DIV\");\r\n this.startEdit.className = TaskEditController.CLASSNAMES.TASK_EDIT_START;\r\n this.baseFrame.appendChild(this.startEdit);\r\n this.endEdit = document.createElement(\"DIV\");\r\n this.endEdit.className = TaskEditController.CLASSNAMES.TASK_EDIT_END;\r\n this.baseFrame.appendChild(this.endEdit);\r\n this.dependencySuccessorBaseElement = document.createElement(\"DIV\");\r\n this.dependencySuccessorBaseElement.className = TaskEditController.CLASSNAMES.TASK_EDIT_BOX_SUCCESSOR;\r\n this.dependencySuccessorFrame = document.createElement(\"DIV\");\r\n this.dependencySuccessorFrame.className = TaskEditController.CLASSNAMES.TASK_EDIT_FRAME_SUCCESSOR;\r\n this.dependencySuccessorBaseElement.appendChild(this.dependencySuccessorFrame);\r\n this.dependencySuccessorStart = document.createElement(\"DIV\");\r\n this.dependencySuccessorStart.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_SUCCESSOR_DEPENDENCY_RIGTH);\r\n if (Browser_1.Browser.TouchUI)\r\n this.dependencySuccessorStart.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_TOUCH);\r\n this.dependencySuccessorFrame.appendChild(this.dependencySuccessorStart);\r\n this.dependencySuccessorFinish = document.createElement(\"DIV\");\r\n this.dependencySuccessorFinish.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_SUCCESSOR_DEPENDENCY_LEFT);\r\n if (Browser_1.Browser.TouchUI)\r\n this.dependencySuccessorFinish.classList.add(TaskEditController.CLASSNAMES.TASK_EDIT_TOUCH);\r\n this.dependencySuccessorFrame.appendChild(this.dependencySuccessorFinish);\r\n this.tooltip = new TaskEditTooltip(this.baseElement, this.gantt.elementTextHelper.cultureInfo);\r\n this.attachEvents();\r\n };\r\n TaskEditController.prototype.attachEvents = function () {\r\n this.baseElement.addEventListener(\"mouseleave\", function (evt) {\r\n if (!this.editing)\r\n this.hide();\r\n }.bind(this));\r\n };\r\n TaskEditController.prototype.drawline = function (start, end) {\r\n if (start.x > end.x) {\r\n var temp = end;\r\n end = start;\r\n start = temp;\r\n }\r\n var angle = Math.atan((start.y - end.y) / (end.x - start.x));\r\n angle = (angle * 180 / Math.PI);\r\n angle = -angle;\r\n var length = Math.sqrt((start.x - end.x) * (start.x - end.x) + (start.y - end.y) * (start.y - end.y));\r\n this.dependencyLine.style.left = start.x + \"px\";\r\n this.dependencyLine.style.top = start.y + \"px\";\r\n this.dependencyLine.style.width = length + \"px\";\r\n this.dependencyLine.style.transform = \"rotate(\" + angle + \"deg)\";\r\n };\r\n TaskEditController.prototype.canUpdateTask = function () {\r\n return !this.gantt.viewModel.isTaskToCalculateByChildren(this.task.internalId);\r\n };\r\n TaskEditController.CLASSNAMES = {\r\n TASK_EDIT_BOX: \"dx-gantt-task-edit-wrapper\",\r\n TASK_EDIT_FRAME: \"dx-gantt-task-edit-frame\",\r\n TASK_EDIT_PROGRESS: \"dx-gantt-task-edit-progress\",\r\n TASK_EDIT_DEPENDENCY_RIGTH: \"dx-gantt-task-edit-dependency-r\",\r\n TASK_EDIT_DEPENDENCY_LEFT: \"dx-gantt-task-edit-dependency-l\",\r\n TASK_EDIT_START: \"dx-gantt-task-edit-start\",\r\n TASK_EDIT_END: \"dx-gantt-task-edit-end\",\r\n TASK_EDIT_DEPENDENCY_LINE: \"dx-gantt-task-edit-dependency-line\",\r\n TASK_EDIT_BOX_SUCCESSOR: \"dx-gantt-task-edit-wrapper-successor\",\r\n TASK_EDIT_FRAME_SUCCESSOR: \"dx-gantt-task-edit-frame-successor\",\r\n TASK_EDIT_SUCCESSOR_DEPENDENCY_RIGTH: \"dx-gantt-task-edit-successor-dependency-r\",\r\n TASK_EDIT_SUCCESSOR_DEPENDENCY_LEFT: \"dx-gantt-task-edit-successor-dependency-l\",\r\n TASK_EDIT_TOUCH: \"dx-gantt-edit-touch\"\r\n };\r\n return TaskEditController;\r\n}());\r\nexports.TaskEditController = TaskEditController;\r\nvar TaskEditTooltip = (function () {\r\n function TaskEditTooltip(parentElement, cultureInfo) {\r\n this.parentElement = parentElement;\r\n this.baseElement = document.createElement(\"DIV\");\r\n this.baseElement.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_PROGRESS_STATUS;\r\n parentElement.appendChild(this.baseElement);\r\n this.cultureInfo = cultureInfo;\r\n }\r\n TaskEditTooltip.prototype.showInfo = function (task, posX, delay) {\r\n if (delay === void 0) { delay = 0; }\r\n var showInfoFunc = function () {\r\n this.baseElement.innerHTML = \"\";\r\n var titleWrapper = document.createElement(\"DIV\");\r\n titleWrapper.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_TASK_TITLE;\r\n var title = document.createElement(\"SPAN\");\r\n titleWrapper.appendChild(title);\r\n this.baseElement.appendChild(titleWrapper);\r\n title.innerHTML = task.title;\r\n this.baseElement.appendChild(this.getTimeContent(task.start, task.end));\r\n if (!isNaN(task.progress)) {\r\n var progressElement = document.createElement(\"DIV\");\r\n progressElement.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_PROGRESS_STATUS_TIME;\r\n var progressTitle = document.createElement(\"SPAN\");\r\n var progressValue = document.createElement(\"SPAN\");\r\n progressElement.appendChild(progressTitle);\r\n progressElement.appendChild(progressValue);\r\n this.baseElement.appendChild(progressElement);\r\n progressTitle.innerHTML = (this.cultureInfo.progress ? this.cultureInfo.progress : \"Progress\") + \": \";\r\n progressValue.innerHTML = task.progress + \"%\";\r\n }\r\n this.show(posX, false);\r\n };\r\n if (delay)\r\n this.timerId = setTimeout(showInfoFunc.bind(this), delay);\r\n else\r\n showInfoFunc();\r\n };\r\n TaskEditTooltip.prototype.showProgress = function (progress, posX) {\r\n this.baseElement.innerHTML = progress + \"%\";\r\n this.show(posX);\r\n };\r\n TaskEditTooltip.prototype.showTime = function (start, end, posX) {\r\n this.baseElement.innerHTML = \"\";\r\n this.baseElement.appendChild(this.getTimeContent(start, end));\r\n this.show(posX);\r\n };\r\n TaskEditTooltip.prototype.show = function (posX, autoHide) {\r\n var _this = this;\r\n if (autoHide === void 0) { autoHide = true; }\r\n var arrow = parseInt(getComputedStyle(this.baseElement, \"::before\").borderLeftWidth);\r\n this.baseElement.style.display = \"block\";\r\n this.baseElement.style.left = (posX - parseInt(getComputedStyle(this.baseElement).paddingLeft) - arrow) + \"px\";\r\n this.baseElement.style.top = (DomUtils_1.DomUtils.getAbsolutePositionY(this.parentElement) - this.baseElement.clientHeight - 5) -\r\n DomUtils_1.DomUtils.getDocumentScrollTop() + \"px\";\r\n if (autoHide) {\r\n if (this.timerId)\r\n clearTimeout(this.timerId);\r\n this.timerId = setTimeout(function () {\r\n _this.baseElement.style.display = \"none\";\r\n }, 1500);\r\n }\r\n };\r\n TaskEditTooltip.prototype.hide = function () {\r\n this.baseElement.style.display = \"none\";\r\n clearTimeout(this.timerId);\r\n };\r\n TaskEditTooltip.prototype.getTimeContent = function (start, end) {\r\n var timeElement = document.createElement(\"TABLE\");\r\n timeElement.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_PROGRESS_STATUS_TIME;\r\n var body = document.createElement(\"TBODY\");\r\n timeElement.appendChild(body);\r\n var startEl = document.createElement(\"TR\");\r\n var startTitle = document.createElement(\"TD\");\r\n var startValue = document.createElement(\"TD\");\r\n var endEl = document.createElement(\"TR\");\r\n var endTitle = document.createElement(\"TD\");\r\n var endValue = document.createElement(\"TD\");\r\n startEl.appendChild(startTitle);\r\n startEl.appendChild(startValue);\r\n endEl.appendChild(endTitle);\r\n endEl.appendChild(endValue);\r\n body.appendChild(startEl);\r\n body.appendChild(endEl);\r\n startTitle.innerHTML = (this.cultureInfo.start ? this.cultureInfo.start : \"Start\") + \": \";\r\n startValue.innerHTML = this.formatDate(start);\r\n endTitle.innerHTML = (this.cultureInfo.end ? this.cultureInfo.end : \"End\") + \": \";\r\n endValue.innerHTML = this.formatDate(end);\r\n return timeElement;\r\n };\r\n TaskEditTooltip.prototype.formatDate = function (date) {\r\n return ('0' + date.getDate()).slice(-2) + '/' + ('0' + (date.getMonth() + 1)).slice(-2) + \"/\" +\r\n date.getFullYear() + \" \" + ('0' + date.getHours()).slice(-2) + \":\" + ('0' + date.getMinutes()).slice(-2);\r\n };\r\n TaskEditTooltip.CLASSNAMES = {\r\n TASK_EDIT_PROGRESS_STATUS: \"dx-gantt-task-edit-tooltip\",\r\n TASK_EDIT_TASK_TITLE: \"dx-gantt-task-title\",\r\n TASK_EDIT_PROGRESS_STATUS_TIME: \"dx-gantt-status-time\"\r\n };\r\n return TaskEditTooltip;\r\n}());\r\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar HistoryItemState = (function () {\r\n function HistoryItemState(id, value) {\r\n this.id = id;\r\n this.value = value;\r\n }\r\n return HistoryItemState;\r\n}());\r\nexports.HistoryItemState = HistoryItemState;\r\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar _a;\r\nvar TaskAreaManager_1 = __webpack_require__(6);\r\nvar TaskEditController_1 = __webpack_require__(37);\r\nvar HandlerBase = (function () {\r\n function HandlerBase(control) {\r\n this.control = control;\r\n this.switchToDefaultState();\r\n }\r\n HandlerBase.prototype.switchState = function (state) {\r\n if (this.state)\r\n this.state.finish();\r\n this.state = state;\r\n this.state.start();\r\n };\r\n HandlerBase.prototype.switchToDefaultState = function () {\r\n throw new Error(\"Not implemented\");\r\n };\r\n HandlerBase.prototype.getEventSource = function (initSource) {\r\n var source = initSource.nodeType === Node.ELEMENT_NODE ? initSource : initSource.parentNode;\r\n var className = source.classList[0];\r\n return HandlerBase.classToSource[className] || TaskAreaManager_1.MouseEventSource.TaskArea;\r\n };\r\n HandlerBase.classToSource = (_a = {},\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_PROGRESS] = TaskAreaManager_1.MouseEventSource.TaskEdit_Progress,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_START] = TaskAreaManager_1.MouseEventSource.TaskEdit_Start,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_END] = TaskAreaManager_1.MouseEventSource.TaskEdit_End,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_FRAME] = TaskAreaManager_1.MouseEventSource.TaskEdit_Frame,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_DEPENDENCY_RIGTH] = TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyStart,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_DEPENDENCY_LEFT] = TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyFinish,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_SUCCESSOR_DEPENDENCY_RIGTH] = TaskAreaManager_1.MouseEventSource.Successor_DependencyStart,\r\n _a[TaskEditController_1.TaskEditController.CLASSNAMES.TASK_EDIT_SUCCESSOR_DEPENDENCY_LEFT] = TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish,\r\n _a);\r\n return HandlerBase;\r\n}());\r\nexports.HandlerBase = HandlerBase;\r\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar Point_1 = __webpack_require__(4);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar MouseHandlerStateBase_1 = __webpack_require__(24);\r\nvar TaskAreaManager_1 = __webpack_require__(6);\r\nvar Dependency_1 = __webpack_require__(12);\r\nexports.dependencyMap = [];\r\nexports.dependencyMap[TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyStart] = [];\r\nexports.dependencyMap[TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyFinish] = [];\r\nexports.dependencyMap[TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyStart][TaskAreaManager_1.MouseEventSource.Successor_DependencyStart] = Dependency_1.DependencyType.SS;\r\nexports.dependencyMap[TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyStart][TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish] = Dependency_1.DependencyType.SF;\r\nexports.dependencyMap[TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyFinish][TaskAreaManager_1.MouseEventSource.Successor_DependencyStart] = Dependency_1.DependencyType.FS;\r\nexports.dependencyMap[TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyFinish][TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish] = Dependency_1.DependencyType.FF;\r\nvar MouseHandlerDependencyState = (function (_super) {\r\n tslib_1.__extends(MouseHandlerDependencyState, _super);\r\n function MouseHandlerDependencyState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerDependencyState.prototype.onMouseDown = function (evt) {\r\n var sourceElement = DomUtils_1.DomUtils.getEventSource(evt);\r\n this.source = this.handler.getEventSource(sourceElement);\r\n var pos = this.getRelativePos(new Point_1.Point(DomUtils_1.DomUtils.getAbsolutePositionX(sourceElement) + sourceElement.clientWidth / 2, DomUtils_1.DomUtils.getAbsolutePositionY(sourceElement) + sourceElement.clientHeight / 2));\r\n this.handler.control.taskEditController.startDependency(pos);\r\n };\r\n MouseHandlerDependencyState.prototype.onMouseUp = function (evt) {\r\n if (evt instanceof PointerEvent) {\r\n var relativePosStart = this.getRelativePos(new Point_1.Point(DomUtils_1.DomUtils.getAbsolutePositionX(this.handler.control.taskEditController.dependencySuccessorStart) + this.handler.control.taskEditController.dependencySuccessorStart.clientWidth / 2, DomUtils_1.DomUtils.getAbsolutePositionY(this.handler.control.taskEditController.dependencySuccessorStart) + this.handler.control.taskEditController.dependencySuccessorStart.clientHeight / 2));\r\n var relativePosEnd = this.getRelativePos(new Point_1.Point(DomUtils_1.DomUtils.getAbsolutePositionX(this.handler.control.taskEditController.dependencySuccessorFinish) + this.handler.control.taskEditController.dependencySuccessorFinish.clientWidth / 2, DomUtils_1.DomUtils.getAbsolutePositionY(this.handler.control.taskEditController.dependencySuccessorFinish) + this.handler.control.taskEditController.dependencySuccessorFinish.clientHeight / 2));\r\n var relativeTouchPos = this.getRelativePos(new Point_1.Point(DomUtils_1.DomUtils.getEventX(evt), DomUtils_1.DomUtils.getEventY(evt)));\r\n var target = this.isTouchNearby(relativeTouchPos, relativePosStart) ? TaskAreaManager_1.MouseEventSource.Successor_DependencyStart :\r\n this.isTouchNearby(relativeTouchPos, relativePosEnd) ? TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish : null;\r\n var type = target === TaskAreaManager_1.MouseEventSource.Successor_DependencyStart || target == TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish ?\r\n exports.dependencyMap[this.source][target] : null;\r\n this.handler.control.taskEditController.endDependency(type);\r\n }\r\n else {\r\n var target = this.handler.getEventSource(DomUtils_1.DomUtils.getEventSource(evt));\r\n var type = target === TaskAreaManager_1.MouseEventSource.Successor_DependencyStart || target == TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish ?\r\n exports.dependencyMap[this.source][target] : null;\r\n this.handler.control.taskEditController.endDependency(type);\r\n }\r\n this.handler.switchToDefaultState();\r\n };\r\n MouseHandlerDependencyState.prototype.onMouseMove = function (evt) {\r\n evt.preventDefault();\r\n var relativePos = this.getRelativePos(new Point_1.Point(DomUtils_1.DomUtils.getEventX(evt), DomUtils_1.DomUtils.getEventY(evt)));\r\n var hoverTaskIndex = Math.floor(relativePos.y / this.handler.control.tickSize.height);\r\n this.handler.control.taskEditController.processDependency(relativePos);\r\n if (this.handler.control.viewModel.tasks.items[hoverTaskIndex])\r\n this.handler.control.taskEditController.showDependencySuccessor(hoverTaskIndex);\r\n };\r\n MouseHandlerDependencyState.prototype.isTouchNearby = function (touchPos, elementPos) {\r\n if (Math.abs(elementPos.x - touchPos.x) <= 10 && Math.abs(elementPos.y - touchPos.y) <= 10)\r\n return true;\r\n return false;\r\n };\r\n return MouseHandlerDependencyState;\r\n}(MouseHandlerStateBase_1.MouseHandlerStateBase));\r\nexports.MouseHandlerDependencyState = MouseHandlerDependencyState;\r\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerStateBase_1 = __webpack_require__(18);\r\nvar TouchHandlerStateBase = (function (_super) {\r\n tslib_1.__extends(TouchHandlerStateBase, _super);\r\n function TouchHandlerStateBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerStateBase.prototype.onTouchStart = function (_evt) { };\r\n TouchHandlerStateBase.prototype.onDoubleTap = function (_evt) { };\r\n TouchHandlerStateBase.prototype.onTouchEnd = function (_evt) { };\r\n TouchHandlerStateBase.prototype.onTouchMove = function (_evt) { };\r\n return TouchHandlerStateBase;\r\n}(HandlerStateBase_1.HandlerStateBase));\r\nexports.TouchHandlerStateBase = TouchHandlerStateBase;\r\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DialogBase_1 = __webpack_require__(21);\r\nvar TaskDependencyHistoryItem_1 = __webpack_require__(19);\r\nvar ConstraintViolationOption;\r\n(function (ConstraintViolationOption) {\r\n ConstraintViolationOption[ConstraintViolationOption[\"DoNothing\"] = 0] = \"DoNothing\";\r\n ConstraintViolationOption[ConstraintViolationOption[\"RemoveDependency\"] = 1] = \"RemoveDependency\";\r\n ConstraintViolationOption[ConstraintViolationOption[\"KeepDependency\"] = 2] = \"KeepDependency\";\r\n})(ConstraintViolationOption = exports.ConstraintViolationOption || (exports.ConstraintViolationOption = {}));\r\nvar ConstraintViolationDialogCommand = (function (_super) {\r\n tslib_1.__extends(ConstraintViolationDialogCommand, _super);\r\n function ConstraintViolationDialogCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ConstraintViolationDialogCommand.prototype.applyParameters = function (newParameters, oldParameters) {\r\n if (newParameters.option === ConstraintViolationOption.DoNothing)\r\n return false;\r\n if (newParameters.option === ConstraintViolationOption.RemoveDependency) {\r\n this.history.beginTransaction();\r\n this.history.addAndRedo(new TaskDependencyHistoryItem_1.RemoveDependencyHistoryItem(this.modelManipulator, oldParameters.validationError.dependencyId));\r\n oldParameters.callback();\r\n this.history.endTransaction();\r\n this.control.barManager.updateItemsState([]);\r\n }\r\n if (newParameters.option === ConstraintViolationOption.KeepDependency) {\r\n oldParameters.callback();\r\n this.control.barManager.updateItemsState([]);\r\n }\r\n return true;\r\n };\r\n ConstraintViolationDialogCommand.prototype.createParameters = function (options) {\r\n var dependency = this.control.viewModel.dependencies.getItemById(options.validationError.dependencyId);\r\n var successorTask = this.control.viewModel.tasks.getItemById(dependency.successorId);\r\n var predecessorTask = this.control.viewModel.tasks.getItemById(dependency.predecessorId);\r\n options.successorTaskTitle = successorTask.title;\r\n options.predecessorTaskTitle = predecessorTask.title;\r\n return options;\r\n };\r\n ConstraintViolationDialogCommand.prototype.getDialogName = function () {\r\n return \"ConstraintViolation\";\r\n };\r\n return ConstraintViolationDialogCommand;\r\n}(DialogBase_1.DialogBase));\r\nexports.ConstraintViolationDialogCommand = ConstraintViolationDialogCommand;\r\nvar ConstraintViolationDialogParameters = (function (_super) {\r\n tslib_1.__extends(ConstraintViolationDialogParameters, _super);\r\n function ConstraintViolationDialogParameters(validationError, callback) {\r\n var _this = _super.call(this) || this;\r\n _this.validationError = validationError;\r\n _this.callback = callback;\r\n return _this;\r\n }\r\n ConstraintViolationDialogParameters.prototype.clone = function () {\r\n var result = new ConstraintViolationDialogParameters(this.validationError, this.callback);\r\n result.option = this.option;\r\n return result;\r\n };\r\n return ConstraintViolationDialogParameters;\r\n}(DialogBase_1.DialogParametersBase));\r\nexports.ConstraintViolationDialogParameters = ConstraintViolationDialogParameters;\r\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__webpack_require__(44);\r\nvar GanttView_1 = __webpack_require__(45);\r\nexports.default = GanttView_1.GanttView;\r\nexports.GanttView = GanttView_1.GanttView;\r\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar VisualModel_1 = __webpack_require__(46);\r\nvar Enums_1 = __webpack_require__(13);\r\nvar Utils_1 = __webpack_require__(34);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar DateRange_1 = __webpack_require__(7);\r\nvar Size_1 = __webpack_require__(23);\r\nvar Point_1 = __webpack_require__(4);\r\nvar GridElementInfo_1 = __webpack_require__(35);\r\nvar GridLayoutCalculator_1 = __webpack_require__(16);\r\nvar EtalonSizeValues_1 = __webpack_require__(66);\r\nvar TaskEditController_1 = __webpack_require__(37);\r\nvar TaskAreaManager_1 = __webpack_require__(6);\r\nvar ModelManipulator_1 = __webpack_require__(67);\r\nvar History_1 = __webpack_require__(72);\r\nvar EventManager_1 = __webpack_require__(74);\r\nvar TaskAreaContainer_1 = __webpack_require__(88);\r\nvar Settings_1 = __webpack_require__(36);\r\nvar ModelChangesDispatcher_1 = __webpack_require__(89);\r\nvar CommandManager_1 = __webpack_require__(91);\r\nvar BarManager_1 = __webpack_require__(106);\r\nvar Browser_1 = __webpack_require__(8);\r\nvar ValidationController_1 = __webpack_require__(107);\r\nvar DateTimeUtils_1 = __webpack_require__(3);\r\nvar FullScreenModeHelper_1 = __webpack_require__(108);\r\nvar GanttView = (function () {\r\n function GanttView(element, ganttOwner, settings) {\r\n var _this = this;\r\n this.timeScaleAreas = new Array();\r\n this.horTaskAreaBorders = [];\r\n this.vertTaskAreaBorders = [];\r\n this.scaleBorders = [];\r\n this.scaleElements = [];\r\n this.taskElements = [];\r\n this.resourcesElements = [];\r\n this.selectionElements = [];\r\n this.hlRowElements = [];\r\n this.renderedRowIndices = [];\r\n this.renderedColIndices = [];\r\n this.renderedScaleItemIndices = [];\r\n this.dependencyMap = [];\r\n this.renderedConnectorLines = [];\r\n this.connectorLinesToElementsMap = {};\r\n this.noWorkingIntervalsToElementsMap = {};\r\n this.renderedNoWorkingIntervals = [];\r\n this.renderedStripLines = [];\r\n this.stripLinesMap = [];\r\n this.gridLayoutCalculator = new GridLayoutCalculator_1.GridLayoutCalculator();\r\n this.etalonSizeValues = new EtalonSizeValues_1.EtalonSizeValues();\r\n this.tickSize = new Size_1.Size();\r\n this.scaleCount = 2;\r\n this.isFocus = false;\r\n this.currentZoom = 1;\r\n this.maxZoom = 3;\r\n this.stripLinesUpdaterId = null;\r\n this.currentSelectedTaskID = \"\";\r\n this.ganttOwner = ganttOwner;\r\n this.settings = Settings_1.Settings.parse(settings);\r\n this.elementTextHelper = new Utils_1.ElementTextHelper(settings.cultureInfo);\r\n this.validationController = new ValidationController_1.ValidationController(this);\r\n this.createMainElement(element);\r\n this.createHeader();\r\n this.calculateEtalonSizeValues();\r\n this.createTaskAreaContainer();\r\n this.loadOptionsFromGanttOwner();\r\n this.elementTextHelper.setFont(this.mainElement);\r\n this.setupHelpers();\r\n this.setSizeForTaskArea();\r\n this.createTimeScaleContainer();\r\n this.createTimeScaleAreas();\r\n this.commandManager = new CommandManager_1.CommandManager(this);\r\n this.barManager = new BarManager_1.BarManager(this, ganttOwner.bars);\r\n this.eventManager = new EventManager_1.EventManager(this);\r\n this.taskEditController = new TaskEditController_1.TaskEditController(this);\r\n this.history = new History_1.History();\r\n this.taskAreaManager = new TaskAreaManager_1.TaskAreaManager(this);\r\n this.fullScreenModeHelper = new FullScreenModeHelper_1.FullScreenModeHelper(this);\r\n window.addEventListener(\"resize\", function () { _this.onBrowserWindowResize(); });\r\n this.updateView();\r\n setTimeout(function () {\r\n _this.scrollLeftByViewType();\r\n }, 0);\r\n this.initializeStripLinesUpdater();\r\n }\r\n GanttView.prototype.reset = function () {\r\n this.timeScaleContainer.innerHTML = \"\";\r\n this.taskArea.innerHTML = \"\";\r\n this.horTaskAreaBorders = [];\r\n this.vertTaskAreaBorders = [];\r\n this.scaleBorders = [];\r\n this.scaleElements = [];\r\n this.taskElements = [];\r\n this.selectionElements = [];\r\n this.hlRowElements = [];\r\n this.renderedRowIndices = [];\r\n this.renderedColIndices = [];\r\n this.renderedConnectorLines = [];\r\n this.timeScaleAreas = [];\r\n this.renderedScaleItemIndices = [];\r\n this.connectorLinesToElementsMap = {};\r\n this.renderedNoWorkingIntervals = [];\r\n this.renderedStripLines = [];\r\n this.noWorkingIntervalsToElementsMap = {};\r\n };\r\n GanttView.prototype.setupHelpers = function () {\r\n var size = new Size_1.Size(this.taskAreaContainer.getWidth(), this.taskAreaContainer.getHeight());\r\n var scrollBarHeight = this.taskAreaContainer.getHeight() - this.taskAreaContainer.getElement().clientHeight;\r\n this.gridLayoutCalculator.setSettings(size, this.tickSize, this.etalonSizeValues, this.range, this.viewModel, this.settings.viewType, scrollBarHeight);\r\n this.elementTextHelper.setSettings(this.range.start.getTime(), this.settings.viewType, this.viewModel.items);\r\n };\r\n GanttView.prototype.getDateRange = function (modelStartDate, modelEndDate) {\r\n var start = new Date(modelStartDate.getTime() - this.getVisibleAreaTime());\r\n start = Utils_1.DateUtils.adjustStartDateByViewType(start, this.settings.viewType, this.settings.firstDayOfWeek);\r\n var end = new Date(modelEndDate.getTime() + this.getVisibleAreaTime());\r\n end = Utils_1.DateUtils.adjustEndDateByViewType(end, this.settings.viewType, this.settings.firstDayOfWeek);\r\n return new DateRange_1.DateRange(start, end);\r\n };\r\n GanttView.prototype.getVisibleAreaTime = function () {\r\n var visibleTickCount = Math.ceil(this.taskAreaContainer.getWidth() / this.tickSize.width);\r\n return visibleTickCount * Utils_1.DateUtils.getTickTimeSpan(this.settings.viewType);\r\n };\r\n GanttView.prototype.calculateEtalonSizeValues = function () {\r\n var etalonElementsContainer = this.createEtalonElementsContainer();\r\n var etalonElements = this.createEtalonElements(etalonElementsContainer);\r\n this.calculateEtalonSizeValuesCore(etalonElements);\r\n this.mainElement.removeChild(etalonElementsContainer);\r\n };\r\n GanttView.prototype.calculateEtalonSizeValuesCore = function (etalonElements) {\r\n this.etalonSizeValues.taskHeight = etalonElements[0].firstChild.offsetHeight;\r\n this.etalonSizeValues.milestoneWidth = etalonElements[1].firstChild.offsetWidth;\r\n this.etalonSizeValues.taskWrapperTopPadding = DomUtils_1.DomUtils.getTopPaddings(etalonElements[0]);\r\n this.etalonSizeValues.connectorLineThickness = DomUtils_1.DomUtils.getVerticalBordersWidth(etalonElements[2]);\r\n this.etalonSizeValues.connectorArrowWidth = DomUtils_1.DomUtils.getHorizontalBordersWidth(etalonElements[3]);\r\n for (var i = 0; i <= Enums_1.ViewType.Years; i++) {\r\n etalonElements[4].innerText = this.elementTextHelper.getScaleItemTextTemplate(i);\r\n this.etalonSizeValues.scaleItemWidths[i] = etalonElements[4].offsetWidth;\r\n }\r\n this.etalonSizeValues.smallTaskWidth = DomUtils_1.DomUtils.getLeftPadding(etalonElements[0].firstChild.firstChild) * 2;\r\n this.etalonSizeValues.outsideTaskTextDefaultWidth = DomUtils_1.DomUtils.pxToFloat(DomUtils_1.DomUtils.getCurrentStyle(etalonElements[5]).width);\r\n this.etalonSizeValues.scaleItemHeight = this.ganttOwner.getHeaderHeight() / this.scaleCount;\r\n this.etalonSizeValues.parentTaskHeight = etalonElements[etalonElements.length - 1].firstChild.offsetHeight;\r\n };\r\n GanttView.prototype.createEtalonElementsContainer = function () {\r\n var result = document.createElement(\"DIV\");\r\n result.style.visibility = \"hidden\";\r\n result.style.position = \"absolute\";\r\n result.style.left = \"-1000px\";\r\n this.mainElement.appendChild(result);\r\n return result;\r\n };\r\n GanttView.prototype.createEtalonElements = function (parent) {\r\n var etalonElements = [];\r\n var wrapper = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-taskWrapper\"), null, parent);\r\n var task = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-task\"), null, wrapper);\r\n var taskTitle = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-taskTitle dx-gantt-titleIn\"), null, task);\r\n taskTitle.innerText = \"WWW\";\r\n etalonElements.push(wrapper);\r\n var milestoneWrapper = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-taskWrapper\"), null, parent);\r\n this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-task dx-gantt-milestone\"), null, milestoneWrapper);\r\n etalonElements.push(milestoneWrapper);\r\n var etalonElementClassNames = [\"dx-gantt-conn-h\", \"dx-gantt-arrow\", \"dx-gantt-si\", \"dx-gantt-taskTitle dx-gantt-titleOut\"];\r\n for (var i = 0; i < etalonElementClassNames.length; i++) {\r\n var etalonElementInfo = new GridElementInfo_1.GridElementInfo(etalonElementClassNames[i]);\r\n etalonElements.push(this.createElement(etalonElementInfo, null, parent));\r\n }\r\n var parentWrapper = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-taskWrapper\"), null, parent);\r\n var parentTask = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-task dx-gantt-parent\"), null, parentWrapper);\r\n var parentTaskTitle = this.createElement(new GridElementInfo_1.GridElementInfo(\"dx-gantt-taskTitle dx-gantt-titleIn\"), null, parentTask);\r\n parentTaskTitle.innerText = \"WWW\";\r\n etalonElements.push(parentWrapper);\r\n return etalonElements;\r\n };\r\n GanttView.prototype.zoomIn = function (leftPos) {\r\n if (leftPos === void 0) { leftPos = this.taskAreaContainer.getWidth() / 2; }\r\n var targetDate = this.gridLayoutCalculator.getDateByPos(this.taskAreaContainer.scrollLeft + leftPos);\r\n if (this.currentZoom < this.maxZoom) {\r\n this.currentZoom++;\r\n this.updateTickSizeWidth();\r\n this.resetAndUpdate();\r\n }\r\n else if (this.settings.viewType > Enums_1.ViewType.TenMinutes) {\r\n this.currentZoom = 1;\r\n this.setViewType(this.settings.viewType - 1, false);\r\n }\r\n this.scrollToDate(targetDate, leftPos);\r\n };\r\n GanttView.prototype.zoomOut = function (leftPos) {\r\n if (leftPos === void 0) { leftPos = this.taskAreaContainer.getWidth() / 2; }\r\n var targetDate = this.gridLayoutCalculator.getDateByPos(this.taskAreaContainer.scrollLeft + leftPos);\r\n if (this.currentZoom > 1) {\r\n this.currentZoom--;\r\n this.updateTickSizeWidth();\r\n this.resetAndUpdate();\r\n }\r\n else if (this.settings.viewType < Enums_1.ViewType.Years) {\r\n this.currentZoom = this.maxZoom;\r\n this.setViewType(this.settings.viewType + 1, false);\r\n }\r\n this.scrollToDate(targetDate, leftPos);\r\n };\r\n GanttView.prototype.scrollToDate = function (date, leftPos) {\r\n this.taskAreaContainer.scrollLeft = Math.round(this.gridLayoutCalculator.getPosByDate(date)) - leftPos;\r\n };\r\n GanttView.prototype.scrollLeftByViewType = function () {\r\n var adjustedStartDate = Utils_1.DateUtils.roundStartDate(this.dataRange.start, this.settings.viewType);\r\n this.taskAreaContainer.scrollLeft = Math.round(this.gridLayoutCalculator.getPosByDate(adjustedStartDate)) + 1;\r\n };\r\n GanttView.prototype.onVisualModelChanged = function () {\r\n this.resetAndUpdate();\r\n };\r\n GanttView.prototype.initializeStripLinesUpdater = function () {\r\n var _this = this;\r\n if (this.settings.stripLines.showCurrentTime) {\r\n this.stripLinesUpdaterId = setInterval(function () {\r\n if (_this.recreateStripLines)\r\n _this.recreateStripLines();\r\n }, Math.max(this.settings.stripLines.currentTimeUpdateInterval, 100));\r\n }\r\n };\r\n GanttView.prototype.clearStripLinesUpdater = function () {\r\n if (this.stripLinesUpdaterId)\r\n clearInterval(this.stripLinesUpdaterId);\r\n this.stripLinesUpdaterId = null;\r\n };\r\n GanttView.prototype.getGanttViewStartDate = function (tasks) {\r\n if (!tasks)\r\n return new Date();\r\n var dates = tasks.map(function (t) { return typeof t.start == \"string\" ? new Date(t.start) : t.start; }).filter(function (d) { return DomUtils_1.DomUtils.isExists(d); });\r\n return dates.length > 0 ? dates.reduce(function (min, d) { return d < min ? d : min; }, dates[0]) : new Date();\r\n };\r\n GanttView.prototype.getGanttViewEndDate = function (tasks) {\r\n if (!tasks)\r\n return new Date();\r\n var dates = tasks.map(function (t) { return typeof t.end == \"string\" ? new Date(t.end) : t.end; }).filter(function (d) { return DomUtils_1.DomUtils.isExists(d); });\r\n ;\r\n return dates.length > 0 ? dates.reduce(function (max, d) { return d > max ? d : max; }, dates[0]) : new Date();\r\n };\r\n GanttView.prototype.getTaskAreaWidth = function () {\r\n return this.gridLayoutCalculator.horizontalTickCount * this.tickSize.width;\r\n };\r\n GanttView.prototype.getTaskAreaHeight = function () {\r\n return this.gridLayoutCalculator.getVerticalGridLineHeight();\r\n };\r\n GanttView.prototype.getVisibleTaskCount = function () { return this.viewModel.itemCount; };\r\n GanttView.prototype.getTask = function (index) {\r\n var item = this.viewModel.items[index];\r\n return item.task;\r\n };\r\n GanttView.prototype.createMainElement = function (parent) {\r\n this.mainElement = document.createElement(\"DIV\");\r\n this.mainElement.style.width = parent.offsetWidth + \"px\";\r\n this.mainElement.style.height = parent.offsetHeight + \"px\";\r\n parent.appendChild(this.mainElement);\r\n };\r\n GanttView.prototype.createHeader = function () {\r\n this.header = document.createElement(\"DIV\");\r\n this.header.className = \"dx-gantt-header\";\r\n this.mainElement.appendChild(this.header);\r\n };\r\n GanttView.prototype.createTimeScaleContainer = function () {\r\n this.timeScaleContainer = document.createElement(\"DIV\");\r\n this.timeScaleContainer.className = \"dx-gantt-tsac\";\r\n this.timeScaleContainer.style.height = this.etalonSizeValues.scaleItemHeight * this.scaleCount + \"px\";\r\n this.header.appendChild(this.timeScaleContainer);\r\n };\r\n GanttView.prototype.createTimeScaleArea = function () {\r\n var timeScaleArea = document.createElement(\"DIV\");\r\n timeScaleArea.className = \"dx-gantt-tsa\";\r\n timeScaleArea.style.width = this.getTaskAreaWidth() + \"px\";\r\n timeScaleArea.style.height = this.etalonSizeValues.scaleItemHeight + \"px\";\r\n this.timeScaleContainer.appendChild(timeScaleArea);\r\n this.timeScaleAreas.unshift(timeScaleArea);\r\n return timeScaleArea;\r\n };\r\n GanttView.prototype.createTimeScaleAreas = function () {\r\n for (var i = 0; i < this.scaleCount; i++) {\r\n var timeScaleArea = this.createTimeScaleArea();\r\n if (i == 0 && this.settings.viewType == Enums_1.ViewType.Weeks)\r\n this.createMonthsScale(timeScaleArea);\r\n }\r\n };\r\n GanttView.prototype.createTaskAreaContainer = function () {\r\n var element = document.createElement(\"DIV\");\r\n element.className = \"dx-gantt-tac\";\r\n this.mainElement.appendChild(element);\r\n this.createTaskArea(element);\r\n this.taskAreaContainer = this.ganttOwner.getExternalTaskAreaContainer(element);\r\n if (this.taskAreaContainer == null)\r\n this.taskAreaContainer = new TaskAreaContainer_1.TaskAreaContainer(element, this);\r\n this.prepareTaskAreaContainer();\r\n };\r\n GanttView.prototype.prepareTaskAreaContainer = function () {\r\n var className = \"dx-gantt-tac-hb\";\r\n var element = this.taskAreaContainer.getElement();\r\n this.settings.areHorizontalBordersEnabled ?\r\n DomUtils_1.DomUtils.addClassNameToElement(element, className) : DomUtils_1.DomUtils.removeClassNameFromElement(element, className);\r\n var marginTop = parseInt(getComputedStyle(element).getPropertyValue(\"margin-top\")) || 0;\r\n element.style.height = \"calc(100% - \" + (this.etalonSizeValues.scaleItemHeight * this.scaleCount + marginTop) + \"px)\";\r\n };\r\n GanttView.prototype.createTaskArea = function (parent) {\r\n this.taskArea = document.createElement(\"DIV\");\r\n this.taskArea.id = \"dx-gantt-ta\";\r\n parent.appendChild(this.taskArea);\r\n };\r\n GanttView.prototype.setSizeForTaskArea = function () {\r\n this.taskArea.style.width = this.getTaskAreaWidth() + \"px\";\r\n this.taskArea.style.height = this.getTaskAreaHeight() + \"px\";\r\n };\r\n GanttView.prototype.updateTickSizeWidth = function () {\r\n this.tickSize.width = this.etalonSizeValues.scaleItemWidths[this.settings.viewType] * this.currentZoom;\r\n };\r\n GanttView.prototype.createMonthsScale = function (parent) {\r\n var currentDate = new Date();\r\n currentDate.setTime(this.range.start.getTime());\r\n var x = 0;\r\n var index = 0;\r\n while (currentDate.getTime() < this.range.end.getTime()) {\r\n var dayInMonthCount = Utils_1.DateUtils.getDaysInMonth(currentDate.getMonth(), currentDate.getFullYear());\r\n var dayCount = dayInMonthCount - currentDate.getDate() + 1;\r\n var nextDate = new Date();\r\n nextDate.setTime(currentDate.getTime() + Math.min(dayCount * Utils_1.DateUtils.msPerDay, this.range.end.getTime() - currentDate.getTime()));\r\n var width = this.gridLayoutCalculator.getWidthByDateRange(currentDate, nextDate);\r\n var scaleItemInfo = new GridElementInfo_1.GridElementInfo(\"dx-gantt-si\", new Point_1.Point(x), new Size_1.Size(width, this.etalonSizeValues.scaleItemHeight));\r\n var scaleItemElement = this.createElement(scaleItemInfo, null, parent);\r\n scaleItemElement.innerText = this.elementTextHelper.getScaleItemText(index, Enums_1.ViewType.Months);\r\n scaleItemElement.style.lineHeight = this.etalonSizeValues.scaleItemHeight + \"px\";\r\n var scaleBorderInfo = new GridElementInfo_1.GridElementInfo(\"dx-gantt-vb\", new Point_1.Point(x + width), new Size_1.Size(0, this.etalonSizeValues.scaleItemHeight));\r\n this.createElement(scaleBorderInfo, null, parent);\r\n x += width;\r\n index++;\r\n currentDate = nextDate;\r\n }\r\n };\r\n GanttView.prototype.updateView = function () {\r\n this.timeScaleContainer.scrollLeft = this.taskAreaContainer.scrollLeft;\r\n this.processScroll(false);\r\n this.processScroll(true);\r\n this.ganttOwner.onGanttScroll(this.taskAreaContainer.scrollTop);\r\n };\r\n GanttView.prototype.processScroll = function (isVertical) {\r\n this.taskEditController.tooltip.hide();\r\n this.recreateTaskAreaBordersAndTaskElements(isVertical);\r\n if (isVertical)\r\n this.recreateConnectorLineElements();\r\n else {\r\n this.recreateNoWorkingIntervalElements();\r\n this.recreateStripLines();\r\n this.recreateScalesElements();\r\n }\r\n };\r\n GanttView.prototype.recreateTaskAreaBordersAndTaskElements = function (isVertical) {\r\n var _this = this;\r\n var scrollPos = isVertical ? this.taskAreaContainer.scrollTop : this.taskAreaContainer.scrollLeft;\r\n var newRenderedIndices = this.gridLayoutCalculator.getRenderedRowColumnIndices(scrollPos, isVertical);\r\n var renderedIndices = isVertical ? this.renderedRowIndices : this.renderedColIndices;\r\n this.recreateElements(renderedIndices, newRenderedIndices, function (index) { _this.removeTaskAreaBorderAndTaskElement(index, isVertical); }, function (index) { _this.createTaskAreaBorderAndTaskElement(index, isVertical); });\r\n if (isVertical)\r\n this.renderedRowIndices = newRenderedIndices;\r\n else\r\n this.renderedColIndices = newRenderedIndices;\r\n };\r\n GanttView.prototype.recreateNoWorkingIntervalElements = function () {\r\n var _this = this;\r\n var newRenderedNoWorkingIntervals = this.gridLayoutCalculator.getRenderedNoWorkingIntervals(this.taskAreaContainer.scrollLeft);\r\n this.recreateElements(this.renderedNoWorkingIntervals, newRenderedNoWorkingIntervals, function (info) { _this.removeNoWorkingIntervalElement(info); }, function (info) { _this.createNoWorkingIntervalElement(info); });\r\n this.renderedNoWorkingIntervals = newRenderedNoWorkingIntervals;\r\n };\r\n GanttView.prototype.recreateStripLines = function () {\r\n var _this = this;\r\n var newRenderedStripLines = this.gridLayoutCalculator.getRenderedStripLines(this.settings.stripLines);\r\n this.recreateElements(this.renderedStripLines, newRenderedStripLines, function (info) { _this.removeElement(info, null, _this.taskArea, _this.stripLinesMap); }, function (info) { return _this.createElement(info, null, _this.taskArea, _this.stripLinesMap); });\r\n this.renderedStripLines = newRenderedStripLines;\r\n };\r\n GanttView.prototype.recreateConnectorLineElements = function () {\r\n var _this = this;\r\n var newRenderedConnectorLines = this.gridLayoutCalculator.getRenderedConnectorLines(this.taskAreaContainer.scrollTop);\r\n this.recreateElements(this.renderedConnectorLines, newRenderedConnectorLines, function (info) { _this.removeConnectorLineElement(info); }, function (info) { _this.createConnectorLineElement(info); });\r\n this.renderedConnectorLines = newRenderedConnectorLines;\r\n };\r\n GanttView.prototype.recreateScalesElements = function () {\r\n this.recreateScaleElements(this.settings.viewType, 0);\r\n if (this.settings.viewType != Enums_1.ViewType.Weeks)\r\n this.recreateScaleElements(Utils_1.DateUtils.ViewTypeToScaleMap[this.settings.viewType], 1);\r\n };\r\n GanttView.prototype.recreateScaleElements = function (scaleType, scaleIndex) {\r\n var _this = this;\r\n var newRenderedIndices = this.gridLayoutCalculator.getRenderedScaleItemIndices(scaleType, this.renderedColIndices);\r\n var renderedIndices = this.renderedScaleItemIndices[scaleType - this.settings.viewType] || [];\r\n this.recreateElements(renderedIndices, newRenderedIndices, function (index) { _this.removeScaleElementAndBorder(index, scaleIndex); }, function (index) { _this.createScaleElementAndBorder(index, scaleIndex, scaleType); });\r\n this.renderedScaleItemIndices[scaleType - this.settings.viewType] = newRenderedIndices;\r\n };\r\n GanttView.prototype.recreateElements = function (oldRenderedElementsInfo, newRenderedelementsInfo, removeAction, createAction) {\r\n oldRenderedElementsInfo\r\n .filter(function (info) { return newRenderedelementsInfo.indexOf(info) === -1; })\r\n .forEach(function (info) { removeAction(info); });\r\n newRenderedelementsInfo\r\n .filter(function (info) { return oldRenderedElementsInfo.indexOf(info) === -1; })\r\n .forEach(function (info) { createAction(info); });\r\n };\r\n GanttView.prototype.recreateTaskElement = function (index) {\r\n var _this = this;\r\n var isVisible = this.renderedRowIndices.filter(function (r) { return r === index; }).length > 0;\r\n var viewItem = this.viewModel.items[index];\r\n var task = viewItem && viewItem.task;\r\n if (!task)\r\n return;\r\n var dependencies = this.viewModel.dependencies.items.filter(function (d) { return d.predecessorId == task.id || d.successorId == task.id; });\r\n if (dependencies.length) {\r\n dependencies.forEach(function (d) { return _this.recreateConnectorLineElement(d.internalId); });\r\n }\r\n if (isVisible) {\r\n this.removeTaskElement(index);\r\n this.createTaskElement(index);\r\n }\r\n };\r\n GanttView.prototype.recreateConnectorLineElement = function (dependencyId, forceRender) {\r\n var _this = this;\r\n if (forceRender === void 0) { forceRender = false; }\r\n var infos = [];\r\n this.renderedConnectorLines = this.renderedConnectorLines.filter(function (info) {\r\n if (info.attr[\"dependency-id\"] != dependencyId)\r\n return true;\r\n infos.push(info);\r\n return false;\r\n });\r\n var isRendered = infos.length > 0;\r\n infos.forEach(function (info) { _this.removeConnectorLineElement(info); });\r\n infos = this.gridLayoutCalculator.updateTileToConnectorLinesMap(dependencyId);\r\n if (isRendered || forceRender)\r\n infos.forEach(function (info) { _this.createConnectorLineElement(info); _this.renderedConnectorLines.push(info); });\r\n };\r\n GanttView.prototype.allowTaskAreaBorders = function (isVerticalScroll) {\r\n return isVerticalScroll ? this.settings.areHorizontalBordersEnabled : this.settings.areVerticalBordersEnabled;\r\n };\r\n GanttView.prototype.createTaskAreaBorderAndTaskElement = function (index, isVerticalScroll) {\r\n if (this.allowTaskAreaBorders(isVerticalScroll))\r\n this.createTaskAreaBorder(index, !isVerticalScroll);\r\n if (isVerticalScroll)\r\n this.createTaskElement(index);\r\n };\r\n GanttView.prototype.removeTaskAreaBorderAndTaskElement = function (index, isVerticalScroll) {\r\n if (this.allowTaskAreaBorders(isVerticalScroll))\r\n this.removeTaskAreaBorder(index, !isVerticalScroll);\r\n if (isVerticalScroll)\r\n this.removeTaskElement(index);\r\n };\r\n GanttView.prototype.getTaskAreaBordersDictionary = function (isVertical) {\r\n return isVertical ? this.vertTaskAreaBorders : this.horTaskAreaBorders;\r\n };\r\n GanttView.prototype.createTaskAreaBorder = function (index, isVertical) {\r\n var info = this.gridLayoutCalculator.getTaskAreaBorderInfo(index, isVertical);\r\n this.createElement(info, index, this.taskArea, this.getTaskAreaBordersDictionary(isVertical));\r\n };\r\n GanttView.prototype.removeTaskAreaBorder = function (index, isVertical) {\r\n this.removeElement(null, index, this.taskArea, this.getTaskAreaBordersDictionary(isVertical));\r\n };\r\n GanttView.prototype.createScaleElementAndBorder = function (index, scaleIndex, scaleType) {\r\n this.createScaleElement(index, scaleIndex, scaleType);\r\n this.createScaleBorder(index, scaleIndex, scaleType);\r\n };\r\n GanttView.prototype.createScaleElement = function (index, scaleIndex, scaleType) {\r\n var info = this.gridLayoutCalculator.getScaleElementInfo(index, scaleType);\r\n var scaleElement = this.createScaleElementCore(index, info, scaleIndex, this.scaleElements);\r\n scaleElement.innerText = this.elementTextHelper.getScaleItemText(index, scaleType);\r\n scaleElement.style.lineHeight = this.etalonSizeValues.scaleItemHeight + \"px\";\r\n };\r\n GanttView.prototype.createScaleBorder = function (index, scaleIndex, scaleType) {\r\n var info = this.gridLayoutCalculator.getScaleBorderInfo(index, scaleType);\r\n this.createScaleElementCore(index, info, scaleIndex, this.scaleBorders);\r\n };\r\n GanttView.prototype.createScaleElementCore = function (index, info, scaleIndex, dictionary) {\r\n if (!dictionary[scaleIndex])\r\n dictionary[scaleIndex] = [];\r\n return this.createElement(info, index, this.timeScaleAreas[scaleIndex], dictionary[scaleIndex]);\r\n };\r\n GanttView.prototype.removeScaleElementAndBorder = function (index, scaleIndex) {\r\n this.removeElement(null, index, this.timeScaleAreas[scaleIndex], this.scaleElements[scaleIndex]);\r\n this.removeElement(null, index, this.timeScaleAreas[scaleIndex], this.scaleBorders[scaleIndex]);\r\n };\r\n GanttView.prototype.createTaskElement = function (index) {\r\n this.createTaskWrapperElement(index);\r\n if (this.settings.taskTitlePosition == Enums_1.TaskTitlePosition.Outside)\r\n this.createTaskTextElement(index, this.taskElements[index]);\r\n var taskVisualElement = this.createTaskVisualElement(index);\r\n if (!this.viewModel.items[index].task.isMilestone()) {\r\n if (this.settings.taskTitlePosition == Enums_1.TaskTitlePosition.Inside)\r\n this.createTaskTextElement(index, taskVisualElement);\r\n this.createTaskProgressElement(index, taskVisualElement);\r\n }\r\n if (this.settings.showResources) {\r\n this.createResourcesWrapperElement(index);\r\n this.createResources(index);\r\n }\r\n if (this.viewModel.items[index].selected)\r\n this.createTaskSelectionElement(index);\r\n if (this.isHighlightRowElementAllowed(index))\r\n this.createHighlightRowElement(index);\r\n };\r\n GanttView.prototype.isHighlightRowElementAllowed = function (index) {\r\n return index % 2 !== 0 && this.settings.areAlternateRowsEnabled || this.viewModel.items[index].children.length > 0;\r\n };\r\n GanttView.prototype.createResourcesWrapperElement = function (index) {\r\n var resourcesWrapperElementInfo = this.gridLayoutCalculator.getTaskResourcesWrapperElementInfo(index);\r\n this.createElement(resourcesWrapperElementInfo, index, this.taskArea, this.resourcesElements);\r\n this.resourcesElements[index].style.display = this.elementTextHelper.getTaskVisibility(index) ? \"\" : \"none\";\r\n };\r\n GanttView.prototype.createResources = function (index) {\r\n var resources = this.viewModel.items[index].resources.items;\r\n for (var i = 0; i < resources.length; i++)\r\n this.createResourceElement(index, resources[i]);\r\n };\r\n GanttView.prototype.createTaskWrapperElement = function (index) {\r\n var taskWrapperInfo = this.gridLayoutCalculator.getTaskWrapperElementInfo(index);\r\n this.createElement(taskWrapperInfo, index, this.taskArea, this.taskElements);\r\n this.taskElements[index].style.display = this.elementTextHelper.getTaskVisibility(index) ? \"\" : \"none\";\r\n };\r\n GanttView.prototype.createTaskVisualElement = function (index) {\r\n var taskElementInfo = this.gridLayoutCalculator.getTaskElementInfo(index, this.settings.taskTitlePosition !== Enums_1.TaskTitlePosition.Inside);\r\n var taskElement = this.createElement(taskElementInfo, index, this.taskElements[index]);\r\n this.taskAreaManager.attachEventsOnTask(taskElement);\r\n return taskElement;\r\n };\r\n GanttView.prototype.createTaskProgressElement = function (index, parent) {\r\n var taskProgressInfo = this.gridLayoutCalculator.getTaskProgressElementInfo(index);\r\n this.createElement(taskProgressInfo, index, parent);\r\n };\r\n GanttView.prototype.createTaskTextElement = function (index, parent) {\r\n var taskTextInfo = this.gridLayoutCalculator.getTaskTextElementInfo(index, this.settings.taskTitlePosition == Enums_1.TaskTitlePosition.Inside);\r\n var taskTextElement = this.createElement(taskTextInfo, index, parent);\r\n taskTextElement.innerText = this.elementTextHelper.getTaskText(index);\r\n };\r\n GanttView.prototype.createResourceElement = function (index, resource) {\r\n var resourceElementInfo = this.gridLayoutCalculator.getTaskResourceElementInfo();\r\n if (resource.color)\r\n resourceElementInfo.style.backgroundColor = resource.color;\r\n var resElement = this.createElement(resourceElementInfo, index, this.resourcesElements[index]);\r\n resElement.innerText = resource.text;\r\n };\r\n GanttView.prototype.createTaskSelectionElement = function (index) {\r\n var selectionInfo = this.gridLayoutCalculator.getSelectionElementInfo(index);\r\n if (this.taskAreaContainer.isExternal && !this.settings.areHorizontalBordersEnabled)\r\n selectionInfo.size.height++;\r\n this.createElement(selectionInfo, index, this.taskArea, this.selectionElements);\r\n };\r\n GanttView.prototype.createHighlightRowElement = function (index) {\r\n var hlRowInfo = this.gridLayoutCalculator.getHighlightRowInfo(index);\r\n this.createElement(hlRowInfo, index, this.taskArea, this.hlRowElements);\r\n };\r\n GanttView.prototype.removeTaskElement = function (index) {\r\n this.removeElement(null, index, this.taskArea, this.taskElements);\r\n this.removeElement(null, index, this.taskArea, this.resourcesElements);\r\n this.removeElement(null, index, this.taskArea, this.selectionElements);\r\n if (this.isHighlightRowElementAllowed(index))\r\n this.removeElement(null, index, this.taskArea, this.hlRowElements);\r\n };\r\n GanttView.prototype.createConnectorLineElement = function (info) {\r\n var dependencyId = info.attr[\"dependency-id\"];\r\n if (this.taskEditController.isDependencySelected(dependencyId))\r\n info.className = info.className + \" active\";\r\n return this.createElement(info, null, this.taskArea, this.connectorLinesToElementsMap);\r\n };\r\n GanttView.prototype.removeConnectorLineElement = function (info) {\r\n this.removeElement(info, null, this.taskArea, this.connectorLinesToElementsMap);\r\n };\r\n GanttView.prototype.createNoWorkingIntervalElement = function (info) {\r\n return this.createElement(info, null, this.taskArea, this.noWorkingIntervalsToElementsMap);\r\n };\r\n GanttView.prototype.removeNoWorkingIntervalElement = function (info) {\r\n this.removeElement(info, null, this.taskArea, this.noWorkingIntervalsToElementsMap);\r\n };\r\n GanttView.prototype.createElement = function (info, index, parent, dictionary) {\r\n var element = document.createElement(\"DIV\");\r\n info.assignToElement(element);\r\n parent.appendChild(element);\r\n if (dictionary) {\r\n if (dictionary instanceof Array && index !== null)\r\n dictionary[index] = element;\r\n else\r\n dictionary[info.id] = element;\r\n }\r\n for (var key in info.attr) {\r\n if (info.attr.hasOwnProperty(key)) {\r\n element.setAttribute(key, info.attr[key]);\r\n }\r\n }\r\n for (var key in info.style) {\r\n if (info.style.hasOwnProperty(key)) {\r\n element.style[key] = info.style[key];\r\n }\r\n }\r\n return element;\r\n };\r\n GanttView.prototype.removeElement = function (info, index, parent, dictionary) {\r\n var element;\r\n if (dictionary instanceof Array && index !== null) {\r\n element = dictionary[index];\r\n delete dictionary[index];\r\n }\r\n else {\r\n element = dictionary[info.id];\r\n delete dictionary[info.id];\r\n }\r\n if (element && element.parentNode == parent)\r\n parent.removeChild(element);\r\n };\r\n GanttView.prototype.calculateAutoViewType = function (startDate, endDate) {\r\n var diffInHours = (endDate.getTime() - startDate.getTime()) / (1000 * 3600);\r\n if (diffInHours > 24 * 365)\r\n return Enums_1.ViewType.Years;\r\n if (diffInHours > 24 * 30)\r\n return Enums_1.ViewType.Months;\r\n if (diffInHours > 24 * 7)\r\n return Enums_1.ViewType.Weeks;\r\n if (diffInHours > 24)\r\n return Enums_1.ViewType.Days;\r\n if (diffInHours > 6)\r\n return Enums_1.ViewType.SixHours;\r\n if (diffInHours > 1)\r\n return Enums_1.ViewType.Hours;\r\n return Enums_1.ViewType.TenMinutes;\r\n };\r\n GanttView.prototype.changeTaskExpanded = function (publicId, expanded) {\r\n var task = this.getTaskByPublicId(publicId);\r\n if (task)\r\n this.viewModel.changeTaskExpanded(task.internalId, expanded);\r\n };\r\n GanttView.prototype.expandTask = function (id) { this.viewModel.changeTaskExpanded(id, true); };\r\n GanttView.prototype.collapseTask = function (id) { this.viewModel.changeTaskExpanded(id, false); };\r\n GanttView.prototype.showTask = function (id) { this.viewModel.changeTaskVisibility(id, true); };\r\n GanttView.prototype.hideTask = function (id) { this.viewModel.changeTaskVisibility(id, false); };\r\n GanttView.prototype.getTaskVisibility = function (id) { return this.viewModel.getTaskVisibility(id); };\r\n GanttView.prototype.unselectCurrentSelectedTask = function () { this.unselectTask(this.currentSelectedTaskID); };\r\n GanttView.prototype.getTaskSelected = function (id) { return this.viewModel.getTaskSelected(id); };\r\n GanttView.prototype.setViewType = function (viewType, autoPositioning) {\r\n if (autoPositioning === void 0) { autoPositioning = true; }\r\n if (viewType == undefined) {\r\n viewType = this.calculateAutoViewType(this.dataRange.start, this.dataRange.end);\r\n }\r\n if (this.settings.viewType !== viewType) {\r\n this.settings.viewType = viewType;\r\n this.updateTickSizeWidth();\r\n this.resetAndUpdate();\r\n if (autoPositioning)\r\n this.scrollLeftByViewType();\r\n if (this.ganttOwner.UpdateGanttViewType)\r\n this.ganttOwner.UpdateGanttViewType(viewType);\r\n }\r\n };\r\n GanttView.prototype.setTaskTitlePosition = function (taskTitlePosition) {\r\n if (this.settings.taskTitlePosition !== taskTitlePosition) {\r\n this.settings.taskTitlePosition = taskTitlePosition;\r\n this.resetAndUpdate();\r\n }\r\n };\r\n GanttView.prototype.setShowResources = function (showResources) {\r\n if (this.settings.showResources !== showResources) {\r\n this.settings.showResources = showResources;\r\n this.resetAndUpdate();\r\n }\r\n };\r\n GanttView.prototype.setFirstDayOfWeek = function (firstDayOfWeek) {\r\n if (this.settings.firstDayOfWeek !== firstDayOfWeek) {\r\n this.settings.firstDayOfWeek = firstDayOfWeek;\r\n this.resetAndUpdate();\r\n }\r\n };\r\n GanttView.prototype.loadOptionsFromGanttOwner = function () {\r\n this.tickSize.height = this.ganttOwner.getRowHeight();\r\n var tasksData = this.ganttOwner.getGanttTasksData();\r\n this.dataRange = new DateRange_1.DateRange(this.getGanttViewStartDate(tasksData), this.getGanttViewEndDate(tasksData));\r\n if (this.settings.viewType == undefined)\r\n this.settings.viewType = this.calculateAutoViewType(this.dataRange.start, this.dataRange.end);\r\n this.updateTickSizeWidth();\r\n this.range = this.getDateRange(this.dataRange.start, this.dataRange.end);\r\n this.dispatcher = new ModelChangesDispatcher_1.ModelChangesDispatcher();\r\n var modelChangesListener = this.ganttOwner.getModelChangesListener();\r\n if (modelChangesListener)\r\n this.dispatcher.onModelChanged.add(modelChangesListener);\r\n this.viewModel = new VisualModel_1.ViewVisualModel(this, tasksData, this.ganttOwner.getGanttDependenciesData(), this.ganttOwner.getGanttResourcesData(), this.ganttOwner.getGanttResourceAssignmentsData(), this.range, this.ganttOwner.getGanttWorkTimeRules());\r\n this.modelManipulator = new ModelManipulator_1.ModelManipulator(this.viewModel, this.dispatcher);\r\n };\r\n GanttView.prototype.resetAndUpdate = function () {\r\n this.reset();\r\n this.range = this.getDateRange(this.dataRange.start, this.dataRange.end);\r\n this.viewModel.updateRange(this.range);\r\n this.setupHelpers();\r\n this.createTimeScaleAreas();\r\n this.setSizeForTaskArea();\r\n if (Browser_1.Browser.IE)\r\n this.taskEditController.createElements();\r\n this.updateView();\r\n };\r\n GanttView.prototype.selectTask = function (id) {\r\n this.selectDependency(null);\r\n this.viewModel.changeTaskSelected(id, true);\r\n this.currentSelectedTaskID = id;\r\n };\r\n GanttView.prototype.unselectTask = function (id) {\r\n this.viewModel.changeTaskSelected(id, false);\r\n };\r\n GanttView.prototype.selectTaskById = function (publicId) {\r\n this.unselectCurrentSelectedTask();\r\n var task = this.getTaskByPublicId(publicId);\r\n if (task)\r\n this.selectTask(task.internalId);\r\n };\r\n GanttView.prototype.selectDependency = function (id) {\r\n this.taskEditController.selectDependency(id);\r\n this.gridLayoutCalculator.createTileToConnectorLinesMap();\r\n this.recreateConnectorLineElements();\r\n };\r\n GanttView.prototype.getTaskAreaContainer = function () {\r\n return this.taskAreaContainer;\r\n };\r\n GanttView.prototype.setWidth = function (value) {\r\n this.mainElement.style.width = value + \"px\";\r\n };\r\n GanttView.prototype.setAllowSelection = function (value) {\r\n this.settings.allowSelectTask = value;\r\n };\r\n GanttView.prototype.setEditingSettings = function (value) {\r\n this.settings.editing = value;\r\n };\r\n GanttView.prototype.setValidationSettings = function (value) {\r\n this.settings.validation = value;\r\n };\r\n GanttView.prototype.setRowLinesVisible = function (value) {\r\n this.settings.areHorizontalBordersEnabled = value;\r\n this.prepareTaskAreaContainer();\r\n this.resetAndUpdate();\r\n };\r\n GanttView.prototype.setStripLines = function (stripLines) {\r\n this.settings.stripLines = Settings_1.StripLineSettings.parse(stripLines);\r\n this.clearStripLinesUpdater();\r\n this.initializeStripLinesUpdater();\r\n this.recreateStripLines();\r\n };\r\n GanttView.prototype.setTaskTitle = function (taskId, newValue) {\r\n var task = this.getTaskByPublicId(taskId);\r\n if (task)\r\n this.commandManager.changeTaskTitleCommand.execute(task.internalId, newValue);\r\n };\r\n GanttView.prototype.setTaskProgress = function (taskId, newValue) {\r\n var task = this.getTaskByPublicId(taskId);\r\n if (task) {\r\n var newProgress = Math.max(newValue, 0);\r\n newProgress = Math.min(newValue, 100);\r\n this.commandManager.changeTaskProgressCommand.execute(task.internalId, newProgress);\r\n }\r\n };\r\n GanttView.prototype.setTaskStart = function (taskId, newValue) {\r\n var task = this.getTaskByPublicId(taskId);\r\n if (task)\r\n this.commandManager.changeTaskStartCommand.execute(task.internalId, DateTimeUtils_1.DateTimeUtils.getMinDate(newValue, task.end));\r\n };\r\n GanttView.prototype.setTaskEnd = function (taskId, newValue) {\r\n var task = this.getTaskByPublicId(taskId);\r\n if (task)\r\n this.commandManager.changeTaskEndCommand.execute(task.internalId, DateTimeUtils_1.DateTimeUtils.getMaxDate(newValue, task.start));\r\n };\r\n GanttView.prototype.removeTask = function (taskId) {\r\n var task = this.getTaskByPublicId(taskId);\r\n if (task)\r\n this.commandManager.removeTaskCommand.execute(task.internalId);\r\n };\r\n GanttView.prototype.createTask = function (parentId) {\r\n var parent = this.getTaskByPublicId(parentId);\r\n var id = parent ? parent.internalId : null;\r\n this.commandManager.createTaskCommand.execute(null, null, \"\", id);\r\n };\r\n GanttView.prototype.getTaskByPublicId = function (id) {\r\n return this.viewModel.tasks.getItemByPublicId(id);\r\n };\r\n GanttView.prototype.getPrevTask = function (taskId) {\r\n var item = this.viewModel.findItem(taskId);\r\n var parent = item.parent || this.viewModel.root;\r\n var index = parent.children.indexOf(item) - 1;\r\n return index > -1 ? item.parent.children[index].task : item.parent.task;\r\n };\r\n GanttView.prototype.updateCreatedTaskIdAfterServerUpdate = function (internalId, id) {\r\n var item = this.viewModel.findItem(internalId);\r\n var task = item && item.task;\r\n if (task)\r\n task.id = id;\r\n };\r\n GanttView.prototype.getTaskIdByInternalId = function (internalId) {\r\n var item = this.viewModel.findItem(internalId);\r\n var task = item && item.task;\r\n return task ? task.id : null;\r\n };\r\n GanttView.prototype.isTaskHasChildren = function (taskId) {\r\n var item = this.viewModel.findItem(taskId);\r\n return item && item.children.length > 0;\r\n };\r\n GanttView.prototype.requireFirstLoadParentAutoCalc = function () {\r\n var owner = this.ganttOwner;\r\n return owner.getRequireFirstLoadParentAutoCalc && owner.getRequireFirstLoadParentAutoCalc();\r\n };\r\n GanttView.prototype.getOwnerControlMainElement = function () {\r\n var owner = this.ganttOwner;\r\n return owner.getMainElement && owner.getMainElement();\r\n };\r\n GanttView.prototype.adjustOwnerControl = function () {\r\n var owner = this.ganttOwner;\r\n if (owner.adjustControl)\r\n owner.adjustControl();\r\n };\r\n GanttView.prototype.onBrowserWindowResize = function () {\r\n if (this.fullScreenModeHelper.isInFullScreenMode)\r\n this.fullScreenModeHelper.adjustControlInFullScreenMode();\r\n else\r\n this.adjustOwnerControl();\r\n };\r\n GanttView.prototype.applySettings = function (settings, preventViewUpdate) {\r\n if (preventViewUpdate === void 0) { preventViewUpdate = false; }\r\n var ganttSettings = Settings_1.Settings.parse(settings);\r\n var preventUpdate = preventViewUpdate || this.settings.equal(ganttSettings);\r\n this.settings = ganttSettings;\r\n if (!preventUpdate)\r\n this.resetAndUpdate();\r\n };\r\n GanttView.prototype.getDataUpdateErrorCallback = function () {\r\n var _this = this;\r\n var history = this.history;\r\n var currentHistoryItemInfo = history.getCurrentProcessingItemInfo();\r\n return function () {\r\n _this.dispatcher.lock();\r\n history.rollBackAndRemove(currentHistoryItemInfo);\r\n _this.dispatcher.unlock();\r\n _this.barManager.updateItemsState([]);\r\n };\r\n };\r\n return GanttView;\r\n}());\r\nexports.GanttView = GanttView;\r\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ResourceCollection_1 = __webpack_require__(22);\r\nvar TaskCollection_1 = __webpack_require__(48);\r\nvar DependencyCollection_1 = __webpack_require__(50);\r\nvar ResourceAssignmentCollection_1 = __webpack_require__(51);\r\nvar ViewVisualModelItem_1 = __webpack_require__(53);\r\nvar ViewVisualModelDependencyInfo_1 = __webpack_require__(54);\r\nvar WorkingTimeCalculator_1 = __webpack_require__(55);\r\nvar Utils_1 = __webpack_require__(2);\r\nvar ViewVisualModel = (function () {\r\n function ViewVisualModel(owner, tasks, dependencies, resources, assignments, dateRange, workTimeRules) {\r\n this._fLockCount = 0;\r\n this.owner = owner;\r\n this.tasks = new TaskCollection_1.TaskCollection();\r\n this.tasks.importFromObject(tasks);\r\n this.dependencies = new DependencyCollection_1.DependencyCollection();\r\n this.dependencies.importFromObject(dependencies);\r\n this.resources = new ResourceCollection_1.ResourceCollection();\r\n this.resources.importFromObject(resources);\r\n this.assignments = new ResourceAssignmentCollection_1.ResourceAssignmentCollection();\r\n this.assignments.importFromObject(assignments);\r\n this._itemList = new Array();\r\n this._viewItemList = new Array();\r\n this._workTimeCalculator = new WorkingTimeCalculator_1.WorkingTimeCalculator(dateRange, workTimeRules);\r\n this.updateModel();\r\n }\r\n ViewVisualModel.prototype.updateModel = function () {\r\n this._itemList.splice(0, this._itemList.length);\r\n var tasks = this.tasks.items;\r\n for (var i = 0; i < tasks.length; i++) {\r\n var task = tasks[i];\r\n if (task)\r\n this._itemList.push(new ViewVisualModelItem_1.ViewVisualModelItem(task, this.getAssignedResources(task)));\r\n }\r\n this.createHierarchy();\r\n this.populateItemsForView();\r\n if (this.owner && this.owner.currentSelectedTaskID)\r\n this.changeTaskSelected(this.owner.currentSelectedTaskID, true);\r\n };\r\n ViewVisualModel.prototype.createHierarchy = function () {\r\n var _this = this;\r\n this.root = new ViewVisualModelItem_1.ViewVisualModelItem(null, null);\r\n var list = this._itemList;\r\n var recalculateParentRequired = this.requireFirstLoadParentAutoCalc;\r\n var _loop_1 = function () {\r\n var item = list[i];\r\n var parentId = item.task.parentId;\r\n var parentItem = list.filter(function (value) { return value.task && value.task.internalId === parentId || value.task.internalId.toString() === parentId; })[0] || this_1.root;\r\n item.parent = parentItem;\r\n parentItem.addChild(item);\r\n if (recalculateParentRequired) {\r\n this_1.owner.validationController.recalculateParents(item, function (data) {\r\n if (!Utils_1.JsonUtils.isExists(data.id))\r\n return;\r\n var task = _this.tasks.getItemById(data.id);\r\n if (Utils_1.JsonUtils.isExists(data.start))\r\n task.start = data.start;\r\n if (Utils_1.JsonUtils.isExists(data.end))\r\n task.end = data.end;\r\n if (Utils_1.JsonUtils.isExists(data.progress))\r\n task.progress = data.progress;\r\n });\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < list.length; i++) {\r\n _loop_1();\r\n }\r\n if (recalculateParentRequired)\r\n this.owner.dispatcher.notifyParentDataRecalculated(this.getCurrentTaskData());\r\n };\r\n ViewVisualModel.prototype.getCurrentTaskData = function () {\r\n var _this = this;\r\n return this.tasks.items.map(function (t) { return _this.getTaskObjectForDataSource(t); });\r\n };\r\n ;\r\n ViewVisualModel.prototype.getTaskObjectForDataSource = function (task) {\r\n var parentTask = task.parentId && this.tasks.getItemById(task.parentId);\r\n return {\r\n id: task.id,\r\n start: task.start,\r\n end: task.end,\r\n duration: task.duration,\r\n description: task.description,\r\n parentId: parentTask && parentTask.id,\r\n progress: task.progress,\r\n taskType: task.taskType,\r\n title: task.title,\r\n customFields: task.customFields,\r\n expanded: task.expanded\r\n };\r\n };\r\n ViewVisualModel.prototype.populateItemsForView = function () {\r\n this._viewItemList.splice(0, this._viewItemList.length);\r\n this.populateVisibleItems(this.root);\r\n this.updateVisibleItemDependencies();\r\n };\r\n ViewVisualModel.prototype.populateVisibleItems = function (item) {\r\n var _this = this;\r\n var isRoot = item === this.root;\r\n if (!item || (!item.task && !isRoot))\r\n return;\r\n if (!isRoot) {\r\n this._viewItemList.push(item);\r\n item.visibleIndex = this._viewItemList.length - 1;\r\n }\r\n if (item.getExpanded() || item === this.root)\r\n item.children.forEach(function (n) { return _this.populateVisibleItems(n); });\r\n };\r\n ViewVisualModel.prototype.updateVisibleItemDependencies = function () {\r\n var list = this._viewItemList;\r\n for (var i = 0; i < list.length; i++) {\r\n var item = list[i];\r\n var visibleDependencies = this.getTasVisibleDependencies(item.task);\r\n item.setDependencies(visibleDependencies);\r\n }\r\n };\r\n ViewVisualModel.prototype.getAssignedResources = function (task) {\r\n var _this = this;\r\n var res = new ResourceCollection_1.ResourceCollection();\r\n var assignments = this.assignments.items.filter(function (value) { return value.taskId == task.internalId; });\r\n assignments.forEach(function (assignment) { res.add(_this.resources.getItemById(assignment.resourceId)); });\r\n return res;\r\n };\r\n ViewVisualModel.prototype.getTasVisibleDependencies = function (task) {\r\n var res = new Array();\r\n var id = task.internalId;\r\n var dependencies = this.dependencies.items.filter(function (value) { return value.successorId == id; });\r\n for (var i = 0; i < dependencies.length; i++) {\r\n var dependency = dependencies[i];\r\n var item = this.findItem(dependency.predecessorId);\r\n if (item && item.getVisible())\r\n res.push(new ViewVisualModelDependencyInfo_1.ViewVisualModelDependencyInfo(dependency.internalId, item, dependency.type));\r\n }\r\n return res;\r\n };\r\n ViewVisualModel.prototype.changeTaskExpanded = function (id, expanded) {\r\n var task = this.tasks.getItemById(String(id));\r\n if (task) {\r\n task.expanded = expanded;\r\n this.changed();\r\n }\r\n };\r\n ViewVisualModel.prototype.changeTaskVisibility = function (id, visible) {\r\n var item = this.findItem(id);\r\n if (item) {\r\n item.visible = visible;\r\n this.changed();\r\n }\r\n };\r\n ViewVisualModel.prototype.changeTaskSelected = function (id, selected) {\r\n var item = this._itemList.filter(function (value) { return value.task && value.task.internalId === id; })[0];\r\n if (item) {\r\n item.selected = selected;\r\n var viewItem = this.findItem(id);\r\n var taskIndex = viewItem && viewItem.visibleIndex;\r\n if (taskIndex > -1)\r\n this.owner.recreateTaskElement(taskIndex);\r\n }\r\n };\r\n ViewVisualModel.prototype.beginUpdate = function () {\r\n this._fLockCount++;\r\n };\r\n ViewVisualModel.prototype.endUpdate = function () {\r\n this._fLockCount--;\r\n if (this._fLockCount == 0)\r\n this.changed();\r\n };\r\n ViewVisualModel.prototype.changed = function () {\r\n if (this._fLockCount !== 0)\r\n return;\r\n this.populateItemsForView();\r\n if (this.owner && this.owner.onVisualModelChanged)\r\n this.owner.onVisualModelChanged();\r\n };\r\n ViewVisualModel.prototype.findItem = function (taskId) {\r\n return this._viewItemList.filter(function (value) { return value.task && value.task.internalId === taskId; })[0];\r\n };\r\n Object.defineProperty(ViewVisualModel.prototype, \"items\", {\r\n get: function () { return this._viewItemList.slice(); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ViewVisualModel.prototype, \"itemCount\", {\r\n get: function () { return this.items.length; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ViewVisualModel.prototype.getTaskVisibility = function (id) {\r\n var item = this.findItem(id);\r\n return !!item && item.getVisible();\r\n };\r\n ViewVisualModel.prototype.getTaskSelected = function (id) {\r\n var item = this.findItem(id);\r\n return !!item && item.selected;\r\n };\r\n Object.defineProperty(ViewVisualModel.prototype, \"noWorkingIntervals\", {\r\n get: function () { return this._workTimeCalculator.noWorkingIntervals; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ViewVisualModel.prototype.updateRange = function (range) { this._workTimeCalculator.updateRange(range); };\r\n ;\r\n ViewVisualModel.prototype.taskHasChildrenByIndex = function (index) { return this._viewItemList[index].children.length > 0; };\r\n ViewVisualModel.prototype.taskHasChildren = function (id) {\r\n var item = this.findItem(id);\r\n return item && item.children.length > 0;\r\n };\r\n Object.defineProperty(ViewVisualModel.prototype, \"parentAutoCalc\", {\r\n get: function () {\r\n var settings = this.owner && this.owner.settings;\r\n return settings && settings.validation && settings.validation.autoUpdateParentTasks;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ViewVisualModel.prototype, \"requireFirstLoadParentAutoCalc\", {\r\n get: function () { return this.parentAutoCalc && this.owner.requireFirstLoadParentAutoCalc(); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ViewVisualModel.prototype.isTaskToCalculateByChildren = function (id) { return this.parentAutoCalc && this.taskHasChildren(id); };\r\n ViewVisualModel.prototype.hasTasks = function () { return this.tasks.length > 0; };\r\n ViewVisualModel.prototype.getDataUpdateErrorCallback = function () {\r\n return this.owner.getDataUpdateErrorCallback && this.owner.getDataUpdateErrorCallback();\r\n };\r\n return ViewVisualModel;\r\n}());\r\nexports.ViewVisualModel = ViewVisualModel;\r\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar Utils_1 = __webpack_require__(2);\r\nvar DataObject_1 = __webpack_require__(9);\r\nvar Resource = (function (_super) {\r\n tslib_1.__extends(Resource, _super);\r\n function Resource() {\r\n var _this = _super.call(this) || this;\r\n _this.text = \"\";\r\n _this.color = \"\";\r\n return _this;\r\n }\r\n Resource.prototype.assignFromObject = function (sourceObj) {\r\n if (Utils_1.JsonUtils.isExists(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.text = sourceObj.text;\r\n if (Utils_1.JsonUtils.isExists(sourceObj.color))\r\n this.color = sourceObj.color;\r\n }\r\n };\r\n return Resource;\r\n}(DataObject_1.DataObject));\r\nexports.Resource = Resource;\r\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar Task_1 = __webpack_require__(49);\r\nvar CollectionBase_1 = __webpack_require__(11);\r\nvar TaskCollection = (function (_super) {\r\n tslib_1.__extends(TaskCollection, _super);\r\n function TaskCollection() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskCollection.prototype.createItem = function () { return new Task_1.Task(); };\r\n return TaskCollection;\r\n}(CollectionBase_1.CollectionBase));\r\nexports.TaskCollection = TaskCollection;\r\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar Utils_1 = __webpack_require__(2);\r\nvar DataObject_1 = __webpack_require__(9);\r\nvar TaskType;\r\n(function (TaskType) {\r\n TaskType[TaskType[\"Regular\"] = 0] = \"Regular\";\r\n TaskType[TaskType[\"Summary\"] = 1] = \"Summary\";\r\n TaskType[TaskType[\"Milestone\"] = 2] = \"Milestone\";\r\n})(TaskType || (TaskType = {}));\r\nvar Task = (function (_super) {\r\n tslib_1.__extends(Task, _super);\r\n function Task() {\r\n var _this = _super.call(this) || this;\r\n _this.start = null;\r\n _this.end = null;\r\n _this.duration = null;\r\n _this.description = \"\";\r\n _this.parentId = \"\";\r\n _this.title = \"\";\r\n _this.owner = null;\r\n _this.progress = 0;\r\n _this.taskType = null;\r\n _this.customFields = {};\r\n _this.expanded = true;\r\n _this.color = \"\";\r\n return _this;\r\n }\r\n Task.prototype.assignFromObject = function (sourceObj) {\r\n if (Utils_1.JsonUtils.isExists(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.owner = sourceObj.owner;\r\n this.parentId = sourceObj.parentId != null ? String(sourceObj.parentId) : null;\r\n this.description = sourceObj.description;\r\n this.title = sourceObj.title;\r\n this.start = sourceObj.start;\r\n this.end = sourceObj.end;\r\n this.start = typeof sourceObj.start == \"string\" ? new Date(sourceObj.start) : sourceObj.start || new Date(0);\r\n this.end = typeof sourceObj.end == \"string\" ? new Date(sourceObj.end) : sourceObj.end || new Date(0);\r\n this.duration = sourceObj.duration;\r\n this.progress = sourceObj.progress;\r\n this.taskType = sourceObj.taskType;\r\n if (Utils_1.JsonUtils.isExists(sourceObj.expanded))\r\n this.expanded = !!sourceObj.expanded;\r\n if (Utils_1.JsonUtils.isExists(sourceObj.color))\r\n this.color = sourceObj.color;\r\n this.assignCustomFields(sourceObj.customFields);\r\n }\r\n };\r\n Task.prototype.assignCustomFields = function (sourceObj) {\r\n if (!sourceObj)\r\n return;\r\n for (var property in sourceObj) {\r\n if (!sourceObj.hasOwnProperty(property))\r\n continue;\r\n this.customFields[property] = sourceObj[property];\r\n }\r\n };\r\n Task.prototype.isMilestone = function () {\r\n return this.start.getTime() == this.end.getTime();\r\n };\r\n Task.prototype.getDuration = function () {\r\n return this.end.getTime() - this.start.getTime();\r\n };\r\n return Task;\r\n}(DataObject_1.DataObject));\r\nexports.Task = Task;\r\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CollectionBase_1 = __webpack_require__(11);\r\nvar Dependency_1 = __webpack_require__(12);\r\nvar DependencyCollection = (function (_super) {\r\n tslib_1.__extends(DependencyCollection, _super);\r\n function DependencyCollection() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DependencyCollection.prototype.createItem = function () { return new Dependency_1.Dependency(); };\r\n return DependencyCollection;\r\n}(CollectionBase_1.CollectionBase));\r\nexports.DependencyCollection = DependencyCollection;\r\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CollectionBase_1 = __webpack_require__(11);\r\nvar ResourceAssignment_1 = __webpack_require__(52);\r\nvar ResourceAssignmentCollection = (function (_super) {\r\n tslib_1.__extends(ResourceAssignmentCollection, _super);\r\n function ResourceAssignmentCollection() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourceAssignmentCollection.prototype.createItem = function () { return new ResourceAssignment_1.ResourceAssignment(); };\r\n return ResourceAssignmentCollection;\r\n}(CollectionBase_1.CollectionBase));\r\nexports.ResourceAssignmentCollection = ResourceAssignmentCollection;\r\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DataObject_1 = __webpack_require__(9);\r\nvar Utils_1 = __webpack_require__(2);\r\nvar ResourceAssignment = (function (_super) {\r\n tslib_1.__extends(ResourceAssignment, _super);\r\n function ResourceAssignment() {\r\n var _this = _super.call(this) || this;\r\n _this.taskId = \"\";\r\n _this.resourceId = \"\";\r\n return _this;\r\n }\r\n ResourceAssignment.prototype.assignFromObject = function (sourceObj) {\r\n if (Utils_1.JsonUtils.isExists(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.taskId = String(sourceObj.taskId);\r\n this.resourceId = String(sourceObj.resourceId);\r\n }\r\n };\r\n return ResourceAssignment;\r\n}(DataObject_1.DataObject));\r\nexports.ResourceAssignment = ResourceAssignment;\r\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Utils_1 = __webpack_require__(2);\r\nvar ViewVisualModelItem = (function () {\r\n function ViewVisualModelItem(task, resources) {\r\n this.dependencies = new Array();\r\n this.parent = null;\r\n this.visible = true;\r\n this.selected = false;\r\n this.visibleIndex = -1;\r\n this.task = task;\r\n this.resources = resources;\r\n this.children = new Array();\r\n }\r\n Object.defineProperty(ViewVisualModelItem.prototype, \"resourceText\", {\r\n get: function () {\r\n var text = \"\";\r\n this.resources.items.forEach(function (r) { return text += r.text + \" \"; });\r\n return text;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ViewVisualModelItem.prototype.addChild = function (child) {\r\n if (Utils_1.JsonUtils.isExists(child) && this.children.indexOf(child) < 0)\r\n this.children.push(child);\r\n };\r\n ViewVisualModelItem.prototype.removeChild = function (child) {\r\n var index = this.children.indexOf(child);\r\n if (index > -1)\r\n this.children.splice(index, 1);\r\n };\r\n ViewVisualModelItem.prototype.getExpanded = function () {\r\n return !!this.task && this.task.expanded;\r\n };\r\n ViewVisualModelItem.prototype.getVisible = function () {\r\n if (!this.visible)\r\n return false;\r\n var parentItem = this.parent;\r\n while (parentItem) {\r\n if (!parentItem.visible)\r\n return false;\r\n parentItem = parentItem.parent;\r\n }\r\n return true;\r\n };\r\n ViewVisualModelItem.prototype.changeVisibility = function (visible) {\r\n this.visible = visible;\r\n };\r\n ViewVisualModelItem.prototype.changeSelection = function (selected) {\r\n this.selected = selected;\r\n };\r\n ViewVisualModelItem.prototype.setDependencies = function (dependencies) {\r\n if (dependencies)\r\n this.dependencies = dependencies.slice();\r\n };\r\n return ViewVisualModelItem;\r\n}());\r\nexports.ViewVisualModelItem = ViewVisualModelItem;\r\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewVisualModelDependencyInfo = (function () {\r\n function ViewVisualModelDependencyInfo(id, predecessor, type) {\r\n this.id = id;\r\n this.predecessor = predecessor;\r\n this.type = type;\r\n }\r\n return ViewVisualModelDependencyInfo;\r\n}());\r\nexports.ViewVisualModelDependencyInfo = ViewVisualModelDependencyInfo;\r\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar GanttWorkingDayRuleCollection_1 = __webpack_require__(56);\r\nvar DayWorkingTimeInfo_1 = __webpack_require__(64);\r\nvar DateTimeUtils_1 = __webpack_require__(3);\r\nvar WorkingTimeCalculator = (function () {\r\n function WorkingTimeCalculator(range, rules) {\r\n this._workingRules = new GanttWorkingDayRuleCollection_1.WorkingDayRuleCollection();\r\n this._workDayList = new Array();\r\n this._calculationRange = range;\r\n this._workingRules.importFromObject(rules);\r\n }\r\n WorkingTimeCalculator.prototype.calculateWorkDayList = function () {\r\n if (!this._calculationRange)\r\n return;\r\n this.clearList();\r\n var rules = this._workingRules.items;\r\n for (var i = 0; i < rules.length; i++)\r\n this.processRule(rules[i]);\r\n this.sortList();\r\n };\r\n WorkingTimeCalculator.prototype.processRule = function (rule) {\r\n var points = rule.recurrence.calculatePoints(this._calculationRange.start, this._calculationRange.end);\r\n var _loop_1 = function (i) {\r\n var point = points[i];\r\n var dayNum = DateTimeUtils_1.DateTimeUtils.getDayNumber(point);\r\n var dayInfo = this_1._workDayList.filter(function (i) { return i.dayNumber == dayNum; })[0];\r\n if (dayInfo) {\r\n dayInfo.isWorkDay = dayInfo.isWorkDay && rule.isWorkDay;\r\n dayInfo.addWorkingIntervals(rule.workTimeRanges);\r\n }\r\n else\r\n this_1._workDayList.push(new DayWorkingTimeInfo_1.DayWorkingTimeInfo(dayNum, rule.isWorkDay, rule.workTimeRanges));\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < points.length; i++) {\r\n _loop_1(i);\r\n }\r\n };\r\n WorkingTimeCalculator.prototype.sortList = function () {\r\n this._workDayList.sort(function (d1, d2) { return d1.dayNumber - d2.dayNumber; });\r\n };\r\n WorkingTimeCalculator.prototype.clearList = function () {\r\n this._workDayList.splice(0, this._workDayList.length);\r\n };\r\n WorkingTimeCalculator.prototype.calculateNoWorkTimeIntervals = function () {\r\n var _this = this;\r\n var res = new Array();\r\n if (this._workDayList.length == 0)\r\n this.calculateWorkDayList();\r\n this._workDayList.forEach(function (d) { return res = res.concat(_this.getNoWorkTimeRangesFromDay(d)); });\r\n return this.concatJointedRanges(res);\r\n };\r\n WorkingTimeCalculator.prototype.concatJointedRanges = function (list) {\r\n var res = new Array();\r\n for (var i = 0; i < list.length; i++) {\r\n var interval = list[i];\r\n var needExpandPrevInterval = res.length > 0 && DateTimeUtils_1.DateTimeUtils.compareDates(res[res.length - 1].end, interval.start) < 2;\r\n if (needExpandPrevInterval)\r\n res[res.length - 1].end = interval.end;\r\n else\r\n res.push(interval);\r\n }\r\n return res;\r\n };\r\n WorkingTimeCalculator.prototype.getNoWorkTimeRangesFromDay = function (day) {\r\n return day.noWorkingIntervals.map(function (i) { return DateTimeUtils_1.DateTimeUtils.convertTimeRangeToDateRange(i, day.dayNumber); });\r\n };\r\n Object.defineProperty(WorkingTimeCalculator.prototype, \"noWorkingIntervals\", {\r\n get: function () {\r\n if (!this._noWorkingIntervals)\r\n this._noWorkingIntervals = this.calculateNoWorkTimeIntervals();\r\n return this._noWorkingIntervals.slice();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n WorkingTimeCalculator.prototype.updateRange = function (range) {\r\n this._calculationRange = range;\r\n this.invalidate();\r\n };\r\n WorkingTimeCalculator.prototype.invalidate = function () {\r\n this._noWorkingIntervals = null;\r\n this.clearList();\r\n };\r\n return WorkingTimeCalculator;\r\n}());\r\nexports.WorkingTimeCalculator = WorkingTimeCalculator;\r\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CollectionBase_1 = __webpack_require__(11);\r\nvar WorkingTimeRule_1 = __webpack_require__(57);\r\nvar WorkingDayRuleCollection = (function (_super) {\r\n tslib_1.__extends(WorkingDayRuleCollection, _super);\r\n function WorkingDayRuleCollection() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n WorkingDayRuleCollection.prototype.createItem = function () { return new WorkingTimeRule_1.WorkingTimeRule(); };\r\n return WorkingDayRuleCollection;\r\n}(CollectionBase_1.CollectionBase));\r\nexports.WorkingDayRuleCollection = WorkingDayRuleCollection;\r\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DataObject_1 = __webpack_require__(9);\r\nvar Utils_1 = __webpack_require__(2);\r\nvar DateTimeUtils_1 = __webpack_require__(3);\r\nvar RecurrenceFactory_1 = __webpack_require__(32);\r\nvar Daily_1 = __webpack_require__(33);\r\nvar WorkingTimeRule = (function (_super) {\r\n tslib_1.__extends(WorkingTimeRule, _super);\r\n function WorkingTimeRule(recurrence, isWorkDay, workTimeRanges) {\r\n if (recurrence === void 0) { recurrence = null; }\r\n if (isWorkDay === void 0) { isWorkDay = true; }\r\n if (workTimeRanges === void 0) { workTimeRanges = null; }\r\n var _this = _super.call(this) || this;\r\n _this.isWorkDay = true;\r\n _this.workTimeRanges = new Array();\r\n _this.recurrence = recurrence;\r\n _this.isWorkDay = isWorkDay;\r\n if (workTimeRanges)\r\n _this.workTimeRanges.concat(workTimeRanges);\r\n return _this;\r\n }\r\n WorkingTimeRule.prototype.assignFromObject = function (sourceObj) {\r\n if (Utils_1.JsonUtils.isExists(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.recurrence = RecurrenceFactory_1.RecurrenceFactory.createRecurrenceByType(sourceObj.recurrenceType) || new Daily_1.Daily();\r\n if (Utils_1.JsonUtils.isExists(sourceObj.recurrence))\r\n this.recurrence.assignFromObject(sourceObj.recurrence);\r\n if (Utils_1.JsonUtils.isExists(sourceObj.isWorkDay))\r\n this.isWorkDay = !!sourceObj.isWorkDay;\r\n var ranges = DateTimeUtils_1.DateTimeUtils.convertToTimeRanges(sourceObj.workTimeRanges);\r\n if (ranges)\r\n this.workTimeRanges = ranges;\r\n }\r\n };\r\n return WorkingTimeRule;\r\n}(DataObject_1.DataObject));\r\nexports.WorkingTimeRule = WorkingTimeRule;\r\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DayOfWeek;\r\n(function (DayOfWeek) {\r\n DayOfWeek[DayOfWeek[\"Sunday\"] = 0] = \"Sunday\";\r\n DayOfWeek[DayOfWeek[\"Monday\"] = 1] = \"Monday\";\r\n DayOfWeek[DayOfWeek[\"Tuesday\"] = 2] = \"Tuesday\";\r\n DayOfWeek[DayOfWeek[\"Wednesday\"] = 3] = \"Wednesday\";\r\n DayOfWeek[DayOfWeek[\"Thursday\"] = 4] = \"Thursday\";\r\n DayOfWeek[DayOfWeek[\"Friday\"] = 5] = \"Friday\";\r\n DayOfWeek[DayOfWeek[\"Saturday\"] = 6] = \"Saturday\";\r\n})(DayOfWeek = exports.DayOfWeek || (exports.DayOfWeek = {}));\r\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Month;\r\n(function (Month) {\r\n Month[Month[\"January\"] = 0] = \"January\";\r\n Month[Month[\"February\"] = 1] = \"February\";\r\n Month[Month[\"March\"] = 2] = \"March\";\r\n Month[Month[\"April\"] = 3] = \"April\";\r\n Month[Month[\"May\"] = 4] = \"May\";\r\n Month[Month[\"June\"] = 5] = \"June\";\r\n Month[Month[\"July\"] = 6] = \"July\";\r\n Month[Month[\"August\"] = 7] = \"August\";\r\n Month[Month[\"September\"] = 8] = \"September\";\r\n Month[Month[\"October\"] = 9] = \"October\";\r\n Month[Month[\"November\"] = 10] = \"November\";\r\n Month[Month[\"December\"] = 11] = \"December\";\r\n})(Month = exports.Month || (exports.Month = {}));\r\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar RecurrenceBase_1 = __webpack_require__(15);\r\nvar DateTimeUtils_1 = __webpack_require__(3);\r\nvar Weekly = (function (_super) {\r\n tslib_1.__extends(Weekly, _super);\r\n function Weekly() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Weekly.prototype.checkDate = function (date) {\r\n return DateTimeUtils_1.DateTimeUtils.checkDayOfWeek(this.dayOfWeekInternal, date);\r\n };\r\n Weekly.prototype.checkInterval = function (date) {\r\n return DateTimeUtils_1.DateTimeUtils.getWeeksBetween(this.start, date) % this.interval == 0;\r\n };\r\n Weekly.prototype.calculatePointByInterval = function (date) {\r\n var weeksFromStart = DateTimeUtils_1.DateTimeUtils.getWeeksBetween(this.start, date);\r\n var intervalCount = Math.floor(weeksFromStart / this.interval);\r\n var remainder = weeksFromStart % this.interval;\r\n var isPointOnNewWeek = remainder > 0 || date.getDay() >= this.dayOfWeekInternal;\r\n if (isPointOnNewWeek)\r\n intervalCount++;\r\n var weeksToAdd = intervalCount * this.interval;\r\n return this.calcNextPointWithWeekCount(this.start, weeksToAdd);\r\n };\r\n Weekly.prototype.calculateNearestPoint = function (date) {\r\n var diff = this.dayOfWeekInternal - date.getDay();\r\n if (diff > 0)\r\n return DateTimeUtils_1.DateTimeUtils.addDays(new Date(date), diff);\r\n return this.calcNextPointWithWeekCount(date, 1);\r\n };\r\n Weekly.prototype.calcNextPointWithWeekCount = function (date, weekCount) {\r\n if (weekCount === void 0) { weekCount = 1; }\r\n var daysToAdd = weekCount * 7 + this.dayOfWeekInternal - date.getDay();\r\n return DateTimeUtils_1.DateTimeUtils.addDays(new Date(date), daysToAdd);\r\n };\r\n Object.defineProperty(Weekly.prototype, \"dayOfWeek\", {\r\n get: function () { return this.dayOfWeekInternal; },\r\n set: function (value) { this.dayOfWeekInternal = value; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n return Weekly;\r\n}(RecurrenceBase_1.RecurrenceBase));\r\nexports.Weekly = Weekly;\r\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar RecurrenceBase_1 = __webpack_require__(15);\r\nvar DateTimeUtils_1 = __webpack_require__(3);\r\nvar MonthInfo_1 = __webpack_require__(62);\r\nvar Monthly = (function (_super) {\r\n tslib_1.__extends(Monthly, _super);\r\n function Monthly() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Monthly.prototype.checkDate = function (date) {\r\n if (this._calculateByDayOfWeek)\r\n return DateTimeUtils_1.DateTimeUtils.checkDayOfWeekOccurrenceInMonth(date, this.dayOfWeekInternal, this.dayOfWeekOccurrenceInternal);\r\n return DateTimeUtils_1.DateTimeUtils.checkDayOfMonth(this.dayInternal, date);\r\n };\r\n Monthly.prototype.checkInterval = function (date) {\r\n return DateTimeUtils_1.DateTimeUtils.getMonthsDifference(this.start, date) % this.interval == 0;\r\n };\r\n Monthly.prototype.calculatePointByInterval = function (date) {\r\n var start = this.start;\r\n var monthFromStart = DateTimeUtils_1.DateTimeUtils.getMonthsDifference(start, date);\r\n var monthToAdd = Math.floor(monthFromStart / this.interval) * this.interval;\r\n var info = new MonthInfo_1.MonthInfo(start.getMonth(), start.getFullYear());\r\n info.addMonths(monthToAdd);\r\n var point = this.getSpecDayInMonth(info.year, info.month);\r\n if (DateTimeUtils_1.DateTimeUtils.compareDates(point, date) >= 0) {\r\n info.addMonths(this.interval);\r\n point = this.getSpecDayInMonth(info.year, info.month);\r\n }\r\n return point;\r\n };\r\n Monthly.prototype.calculateNearestPoint = function (date) {\r\n var month = date.getMonth();\r\n var year = date.getFullYear();\r\n var point = this.getSpecDayInMonth(year, month);\r\n if (DateTimeUtils_1.DateTimeUtils.compareDates(point, date) >= 0) {\r\n var info = new MonthInfo_1.MonthInfo(month, year);\r\n info.addMonths(1);\r\n point = this.getSpecDayInMonth(info.year, info.month);\r\n }\r\n return point;\r\n };\r\n Object.defineProperty(Monthly.prototype, \"day\", {\r\n get: function () { return this.dayInternal; },\r\n set: function (value) { this.dayInternal = value; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(Monthly.prototype, \"dayOfWeek\", {\r\n get: function () { return this.dayOfWeekInternal; },\r\n set: function (value) { this.dayOfWeekInternal = value; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(Monthly.prototype, \"dayOfWeekOccurrence\", {\r\n get: function () { return this.dayOfWeekOccurrenceInternal; },\r\n set: function (value) { this.dayOfWeekOccurrenceInternal = value; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(Monthly.prototype, \"calculateByDayOfWeek\", {\r\n get: function () { return this._calculateByDayOfWeek; },\r\n set: function (value) { this._calculateByDayOfWeek = value; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n return Monthly;\r\n}(RecurrenceBase_1.RecurrenceBase));\r\nexports.Monthly = Monthly;\r\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DateTimeUtils_1 = __webpack_require__(3);\r\nvar MonthInfo = (function () {\r\n function MonthInfo(month, year) {\r\n this.month = month;\r\n this.year = year;\r\n }\r\n MonthInfo.prototype.addMonths = function (months) {\r\n var nextMonth = DateTimeUtils_1.DateTimeUtils.getNextMonth(this.month, months);\r\n var yearInc = Math.floor(months / 12);\r\n if (nextMonth < this.month)\r\n ++yearInc;\r\n this.month = nextMonth;\r\n this.year += yearInc;\r\n };\r\n return MonthInfo;\r\n}());\r\nexports.MonthInfo = MonthInfo;\r\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar RecurrenceBase_1 = __webpack_require__(15);\r\nvar DateTimeUtils_1 = __webpack_require__(3);\r\nvar Yearly = (function (_super) {\r\n tslib_1.__extends(Yearly, _super);\r\n function Yearly() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Yearly.prototype.checkDate = function (date) {\r\n if (!DateTimeUtils_1.DateTimeUtils.checkMonth(this.month, date))\r\n return false;\r\n if (this._calculateByDayOfWeek)\r\n return DateTimeUtils_1.DateTimeUtils.checkDayOfWeekOccurrenceInMonth(date, this.dayOfWeekInternal, this.dayOfWeekOccurrenceInternal);\r\n return DateTimeUtils_1.DateTimeUtils.checkDayOfMonth(this.dayInternal, date);\r\n };\r\n Yearly.prototype.checkInterval = function (date) {\r\n return DateTimeUtils_1.DateTimeUtils.getYearsDifference(this.start, date) % this.interval == 0;\r\n };\r\n Yearly.prototype.calculatePointByInterval = function (date) {\r\n var yearFromStart = DateTimeUtils_1.DateTimeUtils.getYearsDifference(this.start, date);\r\n var yearInc = Math.floor(yearFromStart / this.interval) * this.interval;\r\n var newYear = this.start.getFullYear() + yearInc;\r\n var point = this.getSpecDayInMonth(newYear, this.monthInternal);\r\n if (DateTimeUtils_1.DateTimeUtils.compareDates(point, date) >= 0) {\r\n newYear += this.interval;\r\n point = this.getSpecDayInMonth(newYear, this.monthInternal);\r\n }\r\n return point;\r\n };\r\n Yearly.prototype.calculateNearestPoint = function (date) {\r\n var year = date.getFullYear();\r\n var point = this.getSpecDayInMonth(year, this.monthInternal);\r\n if (DateTimeUtils_1.DateTimeUtils.compareDates(point, date) >= 0)\r\n point = this.getSpecDayInMonth(++year, this.monthInternal);\r\n return point;\r\n };\r\n Object.defineProperty(Yearly.prototype, \"month\", {\r\n get: function () { return this.monthInternal; },\r\n set: function (value) { this.monthInternal = value; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(Yearly.prototype, \"day\", {\r\n get: function () { return this.dayInternal; },\r\n set: function (value) { this.dayInternal = value; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(Yearly.prototype, \"dayOfWeek\", {\r\n get: function () { return this.dayOfWeekInternal; },\r\n set: function (value) { this.dayOfWeekInternal = value; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(Yearly.prototype, \"dayOfWeekOccurrence\", {\r\n get: function () { return this.dayOfWeekOccurrenceInternal; },\r\n set: function (value) { this.dayOfWeekOccurrenceInternal = value; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n Object.defineProperty(Yearly.prototype, \"calculateByDayOfWeek\", {\r\n get: function () { return this._calculateByDayOfWeek; },\r\n set: function (value) { this._calculateByDayOfWeek = value; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n ;\r\n return Yearly;\r\n}(RecurrenceBase_1.RecurrenceBase));\r\nexports.Yearly = Yearly;\r\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TimeRange_1 = __webpack_require__(30);\r\nvar DateTimeUtils_1 = __webpack_require__(3);\r\nvar Time_1 = __webpack_require__(29);\r\nvar DayWorkingTimeInfo = (function () {\r\n function DayWorkingTimeInfo(dayNumber, isWorkDay, intervals) {\r\n if (dayNumber === void 0) { dayNumber = 0; }\r\n if (isWorkDay === void 0) { isWorkDay = true; }\r\n if (intervals === void 0) { intervals = null; }\r\n this._workingIntervals = new Array();\r\n this.dayNumber = dayNumber;\r\n this.isWorkDay = isWorkDay;\r\n this.addWorkingIntervals(intervals);\r\n }\r\n DayWorkingTimeInfo.prototype.addWorkingIntervals = function (intervals) {\r\n if (!intervals)\r\n return;\r\n this._workingIntervals = this._workingIntervals.concat(intervals.filter(function (r) { return !!r; }));\r\n this.rearrangeWorkingIntervals();\r\n };\r\n DayWorkingTimeInfo.prototype.rearrangeWorkingIntervals = function () {\r\n for (var i = 0; i < this._workingIntervals.length; i++) {\r\n this.concatWithIntersectedRanges(this._workingIntervals[i]);\r\n }\r\n this.sortIntervals();\r\n };\r\n ;\r\n DayWorkingTimeInfo.prototype.concatWithIntersectedRanges = function (range) {\r\n var _this = this;\r\n var intersectedRanges = this.getIntersectedIntervals(range);\r\n intersectedRanges.forEach(function (r) {\r\n range.concatWith(r);\r\n _this.removeInterval(r);\r\n });\r\n };\r\n ;\r\n DayWorkingTimeInfo.prototype.getIntersectedIntervals = function (range) {\r\n return this._workingIntervals.filter(function (r) { return r.hasIntersect(range) && r !== range; });\r\n };\r\n ;\r\n DayWorkingTimeInfo.prototype.sortIntervals = function () {\r\n this._workingIntervals.sort(function (r1, r2) { return DateTimeUtils_1.DateTimeUtils.caclTimeDifference(r2.start, r1.start); });\r\n };\r\n ;\r\n DayWorkingTimeInfo.prototype.removeInterval = function (element) {\r\n var index = this._workingIntervals.indexOf(element);\r\n if (index > -1 && index < this._workingIntervals.length)\r\n this._workingIntervals.splice(index, 1);\r\n };\r\n ;\r\n DayWorkingTimeInfo.prototype.clearIntervals = function () {\r\n this._workingIntervals.splice(0, this._workingIntervals.length);\r\n };\r\n Object.defineProperty(DayWorkingTimeInfo.prototype, \"workingIntervals\", {\r\n get: function () { return this._workingIntervals.slice(); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n Object.defineProperty(DayWorkingTimeInfo.prototype, \"noWorkingIntervals\", {\r\n get: function () {\r\n var res = new Array();\r\n if (this.isWorkDay && this._workingIntervals.length == 0)\r\n return res;\r\n var starts = this._workingIntervals.map(function (r) { return r.end; });\r\n starts.splice(0, 0, new Time_1.Time());\r\n var ends = this._workingIntervals.map(function (r) { return r.start; });\r\n ends.push(DateTimeUtils_1.DateTimeUtils.getLastTimeOfDay());\r\n for (var i = 0; i < starts.length; i++) {\r\n var start = starts[i];\r\n var end = ends[i];\r\n if (!DateTimeUtils_1.DateTimeUtils.areTimesEqual(start, end))\r\n res.push(new TimeRange_1.TimeRange(start, end));\r\n }\r\n return res;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n Object.defineProperty(DayWorkingTimeInfo.prototype, \"isWorkDay\", {\r\n get: function () { return this._isWorkDay; },\r\n set: function (value) {\r\n this._isWorkDay = value;\r\n if (!value)\r\n this.clearIntervals();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n return DayWorkingTimeInfo;\r\n}());\r\nexports.DayWorkingTimeInfo = DayWorkingTimeInfo;\r\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Margins = (function () {\r\n function Margins() {\r\n this.marginLeft = null;\r\n this.marginTop = null;\r\n this.marginRight = null;\r\n this.marginBottom = null;\r\n }\r\n return Margins;\r\n}());\r\nexports.Margins = Margins;\r\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EtalonSizeValues = (function () {\r\n function EtalonSizeValues() {\r\n this.scaleItemWidths = {};\r\n }\r\n return EtalonSizeValues;\r\n}());\r\nexports.EtalonSizeValues = EtalonSizeValues;\r\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DependencyManipulator_1 = __webpack_require__(68);\r\nvar ResourcesManipulator_1 = __webpack_require__(69);\r\nvar TaskManipulator_1 = __webpack_require__(71);\r\nvar ModelManipulator = (function () {\r\n function ModelManipulator(viewModel, dispatcher) {\r\n this.task = new TaskManipulator_1.TaskManipulator(viewModel, dispatcher);\r\n this.dependency = new DependencyManipulator_1.TaskDependencyManipulator(viewModel, dispatcher);\r\n this.resource = new ResourcesManipulator_1.ResourcesManipulator(viewModel, dispatcher);\r\n }\r\n return ModelManipulator;\r\n}());\r\nexports.ModelManipulator = ModelManipulator;\r\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskPropertiesManipulator_1 = __webpack_require__(17);\r\nvar TaskDependencyManipulator = (function (_super) {\r\n tslib_1.__extends(TaskDependencyManipulator, _super);\r\n function TaskDependencyManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskDependencyManipulator.prototype.insertDependency = function (predecessorId, successorId, type, id) {\r\n var dependency = this.viewModel.dependencies.createItem();\r\n dependency.predecessorId = predecessorId;\r\n dependency.successorId = successorId;\r\n dependency.type = type;\r\n if (id)\r\n dependency.internalId = id;\r\n dependency.id = dependency.internalId;\r\n this.viewModel.dependencies.add(dependency);\r\n this.dispatcher.notifyDependencyInserted(this.getObjectForDataSource(dependency), function (id) { return dependency.id = id; }, this.getErrorCallback());\r\n this.viewModel.updateVisibleItemDependencies();\r\n this.viewModel.owner.recreateConnectorLineElement(dependency.internalId, true);\r\n return dependency;\r\n };\r\n TaskDependencyManipulator.prototype.removeDependency = function (dependencyId) {\r\n var dependency = this.viewModel.dependencies.getItemById(dependencyId);\r\n this.viewModel.dependencies.remove(dependency);\r\n this.dispatcher.notifyDependencyRemoved(dependency.id, this.getErrorCallback());\r\n this.viewModel.updateVisibleItemDependencies();\r\n this.viewModel.owner.recreateConnectorLineElement(dependency.internalId);\r\n return dependency;\r\n };\r\n TaskDependencyManipulator.prototype.getObjectForDataSource = function (dependency) {\r\n return {\r\n id: dependency.id,\r\n predecessorId: this.viewModel.tasks.getItemById(dependency.predecessorId).id,\r\n successorId: this.viewModel.tasks.getItemById(dependency.successorId).id,\r\n type: dependency.type\r\n };\r\n };\r\n return TaskDependencyManipulator;\r\n}(TaskPropertiesManipulator_1.BaseManipulator));\r\nexports.TaskDependencyManipulator = TaskDependencyManipulator;\r\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskPropertiesManipulator_1 = __webpack_require__(17);\r\nvar ResourcePropertiesManipulator_1 = __webpack_require__(70);\r\nvar ResourcesManipulator = (function (_super) {\r\n tslib_1.__extends(ResourcesManipulator, _super);\r\n function ResourcesManipulator(viewModel, dispatcher) {\r\n var _this = _super.call(this, viewModel, dispatcher) || this;\r\n _this.properties = new ResourcePropertiesManipulator_1.ResourcePropertiesManipulator(viewModel, dispatcher);\r\n return _this;\r\n }\r\n ResourcesManipulator.prototype.create = function (text, id, callback) {\r\n var resource = this.viewModel.resources.createItem();\r\n resource.text = text;\r\n if (id)\r\n resource.internalId = id;\r\n resource.id = resource.internalId;\r\n this.viewModel.resources.add(resource);\r\n this.dispatcher.notifyResourceCreated(this.getResourceObjectForDataSource(resource), function (id) {\r\n resource.id = id;\r\n if (callback)\r\n callback();\r\n }, this.getErrorCallback());\r\n return resource;\r\n };\r\n ResourcesManipulator.prototype.remove = function (resourceId) {\r\n var resource = this.viewModel.resources.getItemById(resourceId);\r\n if (!resource)\r\n throw new Error(\"Invalid resource id\");\r\n var assignments = this.viewModel.assignments.items.filter(function (a) { return a.resourceId == resourceId; });\r\n if (assignments.length)\r\n throw new Error(\"Can't delete assigned resource\");\r\n this.viewModel.resources.remove(resource);\r\n this.dispatcher.notifyResourceRemoved(resource.id, this.getErrorCallback());\r\n return resource;\r\n };\r\n ResourcesManipulator.prototype.assign = function (resourceID, taskId, id) {\r\n var assignment = this.viewModel.assignments.createItem();\r\n assignment.resourceId = resourceID;\r\n assignment.taskId = taskId;\r\n if (id)\r\n assignment.internalId = id;\r\n assignment.id = assignment.internalId;\r\n this.viewModel.assignments.add(assignment);\r\n this.dispatcher.notifyResourceAssigned(this.getResourceAssignmentObjectForDataSource(assignment), function (id) { return assignment.id = id; }, this.getErrorCallback());\r\n this.viewModel.updateModel();\r\n this.viewModel.owner.resetAndUpdate();\r\n return assignment;\r\n };\r\n ResourcesManipulator.prototype.deassig = function (assignmentId) {\r\n var assignment = this.viewModel.assignments.getItemById(assignmentId);\r\n this.viewModel.assignments.remove(assignment);\r\n this.dispatcher.notifyResourceUnassigned(assignmentId, this.getErrorCallback());\r\n this.viewModel.updateModel();\r\n this.viewModel.owner.resetAndUpdate();\r\n return assignment;\r\n };\r\n ResourcesManipulator.prototype.getResourceObjectForDataSource = function (resource) {\r\n return {\r\n id: resource.id,\r\n text: resource.text\r\n };\r\n };\r\n ResourcesManipulator.prototype.getResourceAssignmentObjectForDataSource = function (resourceAssignment) {\r\n return {\r\n id: resourceAssignment.id,\r\n taskId: this.viewModel.tasks.getItemById(resourceAssignment.taskId).id,\r\n resourceId: this.viewModel.resources.getItemById(resourceAssignment.resourceId).id\r\n };\r\n };\r\n return ResourcesManipulator;\r\n}(TaskPropertiesManipulator_1.BaseManipulator));\r\nexports.ResourcesManipulator = ResourcesManipulator;\r\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskPropertiesManipulator_1 = __webpack_require__(17);\r\nvar HistoryItemState_1 = __webpack_require__(38);\r\nvar ResourcePropertiesManipulator = (function (_super) {\r\n tslib_1.__extends(ResourcePropertiesManipulator, _super);\r\n function ResourcePropertiesManipulator(viewModel, dispatcher) {\r\n var _this = _super.call(this, viewModel, dispatcher) || this;\r\n _this.color = new ResourceColorManipulator(viewModel, dispatcher);\r\n return _this;\r\n }\r\n return ResourcePropertiesManipulator;\r\n}(TaskPropertiesManipulator_1.BaseManipulator));\r\nexports.ResourcePropertiesManipulator = ResourcePropertiesManipulator;\r\nvar ResourcePropertyManipulator = (function (_super) {\r\n tslib_1.__extends(ResourcePropertyManipulator, _super);\r\n function ResourcePropertyManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourcePropertyManipulator.prototype.setValue = function (id, newValue) {\r\n var _this = this;\r\n var resource = this.viewModel.resources.getItemById(id);\r\n var oldState = new HistoryItemState_1.HistoryItemState(id, this.getPropertyValue(resource));\r\n this.setPropertyValue(resource, newValue);\r\n var assignments = this.viewModel.assignments.items.filter(function (a) { return a.resourceId == resource.internalId; });\r\n assignments.forEach(function (a) {\r\n var viewItem = _this.viewModel.findItem(a.taskId);\r\n var index = viewItem.visibleIndex;\r\n _this.viewModel.owner.recreateTaskElement(index);\r\n });\r\n return oldState;\r\n };\r\n ResourcePropertyManipulator.prototype.restoreValue = function (state) {\r\n var _this = this;\r\n if (!state)\r\n return;\r\n var stateValue = state.value;\r\n var resource = this.viewModel.resources.getItemById(state.id);\r\n this.setPropertyValue(resource, stateValue);\r\n var assignments = this.viewModel.assignments.items.filter(function (a) { return a.resourceId == resource.internalId; });\r\n assignments.forEach(function (a) {\r\n var viewItem = _this.viewModel.findItem(a.taskId);\r\n var index = viewItem.visibleIndex;\r\n _this.viewModel.owner.recreateTaskElement(index);\r\n });\r\n };\r\n return ResourcePropertyManipulator;\r\n}(TaskPropertiesManipulator_1.BaseManipulator));\r\nexports.ResourcePropertyManipulator = ResourcePropertyManipulator;\r\nvar ResourceColorManipulator = (function (_super) {\r\n tslib_1.__extends(ResourceColorManipulator, _super);\r\n function ResourceColorManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourceColorManipulator.prototype.getPropertyValue = function (resource) {\r\n return resource.color;\r\n };\r\n ResourceColorManipulator.prototype.setPropertyValue = function (resource, value) {\r\n resource.color = value;\r\n this.dispatcher.notifyResourceColorChanged(resource.id, value, this.getErrorCallback());\r\n };\r\n return ResourceColorManipulator;\r\n}(ResourcePropertyManipulator));\r\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskPropertiesManipulator_1 = __webpack_require__(17);\r\nvar TaskManipulator = (function (_super) {\r\n tslib_1.__extends(TaskManipulator, _super);\r\n function TaskManipulator(viewModel, dispatcher) {\r\n var _this = _super.call(this, viewModel, dispatcher) || this;\r\n _this.properties = new TaskPropertiesManipulator_1.TaskPropertiesManipulator(viewModel, dispatcher);\r\n return _this;\r\n }\r\n TaskManipulator.prototype.create = function (start, end, title, parentId, id, callback) {\r\n var _this = this;\r\n var task = this.viewModel.tasks.createItem();\r\n task.start = start;\r\n task.end = end;\r\n task.title = title;\r\n var parentItem = this.viewModel.tasks.getItemById(parentId);\r\n if (parentItem) {\r\n parentItem.expanded = true;\r\n task.parentId = parentId;\r\n }\r\n if (id) {\r\n task.internalId = id;\r\n }\r\n task.id = task.internalId;\r\n this.viewModel.tasks.add(task);\r\n this.viewModel.updateModel();\r\n this.dispatcher.notifyTaskCreated(this.getObjectForDataSource(task), function (id) {\r\n task.id = id;\r\n if (callback)\r\n callback();\r\n if (_this.viewModel.requireFirstLoadParentAutoCalc) {\r\n var data = _this.viewModel.getCurrentTaskData().map(function (t) {\r\n if (t.parentId === \"\")\r\n t.parentId = null;\r\n return t;\r\n });\r\n _this.dispatcher.notifyParentDataRecalculated(data);\r\n }\r\n }, this.getErrorCallback());\r\n this.viewModel.owner.resetAndUpdate();\r\n return task;\r\n };\r\n TaskManipulator.prototype.remove = function (taskId) {\r\n var task = this.viewModel.tasks.getItemById(taskId);\r\n if (!task)\r\n throw new Error(\"Invalid task id\");\r\n var dependencies = this.viewModel.dependencies.items.filter(function (d) { return d.predecessorId == taskId || d.successorId == taskId; });\r\n if (dependencies.length)\r\n throw new Error(\"Can't delete task with dependency\");\r\n var assignments = this.viewModel.assignments.items.filter(function (a) { return a.taskId == taskId; });\r\n if (assignments.length)\r\n throw new Error(\"Can't delete task with assigned resource\");\r\n this.viewModel.tasks.remove(task);\r\n this.dispatcher.notifyTaskRemoved(task.id, this.getErrorCallback());\r\n this.viewModel.updateModel();\r\n this.viewModel.owner.resetAndUpdate();\r\n return task;\r\n };\r\n TaskManipulator.prototype.getObjectForDataSource = function (task) {\r\n return this.viewModel.getTaskObjectForDataSource(task);\r\n };\r\n return TaskManipulator;\r\n}(TaskPropertiesManipulator_1.BaseManipulator));\r\nexports.TaskManipulator = TaskManipulator;\r\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar HistoryItem_1 = __webpack_require__(10);\r\nvar HistoryItemInfo_1 = __webpack_require__(73);\r\nvar History = (function () {\r\n function History() {\r\n this.historyItems = [];\r\n this.currentIndex = -1;\r\n this.currentProcessingItemInfo = null;\r\n this.transaction = null;\r\n this.transactionLevel = -1;\r\n }\r\n History.prototype.undo = function () {\r\n if (this.canUndo()) {\r\n this.activateItem(this.historyItems[this.currentIndex], true);\r\n this.currentIndex--;\r\n }\r\n };\r\n History.prototype.redo = function () {\r\n if (this.canRedo()) {\r\n this.currentIndex++;\r\n this.activateItem(this.historyItems[this.currentIndex]);\r\n }\r\n };\r\n History.prototype.beginTransaction = function () {\r\n this.transactionLevel++;\r\n if (this.transactionLevel == 0)\r\n this.transaction = new HistoryItem_1.CompositionHistoryItem();\r\n };\r\n History.prototype.endTransaction = function () {\r\n if (--this.transactionLevel >= 0)\r\n return;\r\n var transactionLength = this.transaction.historyItems.length;\r\n if (transactionLength > 1)\r\n this.addInternal(this.transaction);\r\n else if (transactionLength == 1)\r\n this.addInternal(this.transaction.historyItems.pop());\r\n this.transaction = null;\r\n };\r\n History.prototype.addAndRedo = function (historyItem) {\r\n this.add(historyItem);\r\n this.activateItem(historyItem);\r\n };\r\n History.prototype.add = function (historyItem) {\r\n if (this.transactionLevel >= 0)\r\n this.transaction.add(historyItem);\r\n else\r\n this.addInternal(historyItem);\r\n };\r\n History.prototype.canUndo = function () {\r\n return this.currentIndex >= 0;\r\n };\r\n History.prototype.canRedo = function () {\r\n return this.currentIndex < this.historyItems.length - 1;\r\n };\r\n History.prototype.addInternal = function (historyItem) {\r\n if (this.currentIndex < this.historyItems.length - 1)\r\n this.historyItems.splice(this.currentIndex + 1);\r\n this.historyItems.push(historyItem);\r\n this.currentIndex++;\r\n this.deleteOldItems();\r\n };\r\n History.prototype.deleteOldItems = function () {\r\n var exceedItemsCount = this.historyItems.length - History.MAX_HISTORY_ITEM_COUNT;\r\n if (exceedItemsCount > 0 && this.currentIndex > exceedItemsCount) {\r\n this.historyItems.splice(0, exceedItemsCount);\r\n this.currentIndex -= exceedItemsCount;\r\n }\r\n };\r\n History.prototype.clear = function () {\r\n this.currentIndex = -1;\r\n this.historyItems = [];\r\n };\r\n History.prototype.activateItem = function (historyItem, isUndo) {\r\n if (isUndo === void 0) { isUndo = false; }\r\n this.currentProcessingItemInfo = new HistoryItemInfo_1.HistoryItemInfo(historyItem, isUndo);\r\n if (isUndo)\r\n historyItem.undo();\r\n else\r\n historyItem.redo();\r\n this.currentProcessingItemInfo = null;\r\n };\r\n History.prototype.getCurrentProcessingItemInfo = function () {\r\n return this.currentProcessingItemInfo;\r\n };\r\n History.prototype.rollBackAndRemove = function (info) {\r\n var item = info.item;\r\n if (!this.checkAndRemoveItem(item))\r\n return;\r\n if (info.isUndo)\r\n item.redo();\r\n else {\r\n if (item instanceof HistoryItem_1.CompositionHistoryItem)\r\n item.undoItemsQuery();\r\n else\r\n item.undo();\r\n }\r\n };\r\n History.prototype.checkAndRemoveItem = function (item) {\r\n var index = this.historyItems.indexOf(item);\r\n if (index > -1) {\r\n this.historyItems.splice(index, 1);\r\n this.currentIndex--;\r\n }\r\n else if (this.transaction) {\r\n index = this.transaction.historyItems.indexOf(item);\r\n if (index > -1)\r\n this.transaction.historyItems.splice(index, 1);\r\n }\r\n return index > -1;\r\n };\r\n History.MAX_HISTORY_ITEM_COUNT = 100;\r\n return History;\r\n}());\r\nexports.History = History;\r\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar HistoryItemInfo = (function () {\r\n function HistoryItemInfo(item, isUndo) {\r\n if (isUndo === void 0) { isUndo = false; }\r\n this.item = item;\r\n this.isUndo = isUndo;\r\n }\r\n return HistoryItemInfo;\r\n}());\r\nexports.HistoryItemInfo = HistoryItemInfo;\r\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar MouseHandler_1 = __webpack_require__(75);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar KeyCode_1 = __webpack_require__(80);\r\nvar Browser_1 = __webpack_require__(8);\r\nvar TouchHandler_1 = __webpack_require__(81);\r\nvar EventManager = (function () {\r\n function EventManager(control) {\r\n this.control = control;\r\n this.mouseHandler = new MouseHandler_1.MouseHandler(control);\r\n this.touchHandler = new TouchHandler_1.TouchHandler(control);\r\n }\r\n EventManager.prototype.onMouseDown = function (evt) {\r\n this.mouseHandler.onMouseDown(evt);\r\n };\r\n EventManager.prototype.onMouseMove = function (evt) {\r\n this.mouseHandler.onMouseMove(evt);\r\n };\r\n EventManager.prototype.onMouseUp = function (evt) {\r\n this.mouseHandler.onMouseUp(evt);\r\n };\r\n EventManager.prototype.onMouseDblClick = function (evt) {\r\n this.mouseHandler.onMouseDoubleClick(evt);\r\n };\r\n EventManager.prototype.onMouseWheel = function (evt) {\r\n this.mouseHandler.onMouseWheel(evt);\r\n };\r\n EventManager.prototype.onTouchStart = function (evt) {\r\n this.touchHandler.onTouchStart(evt);\r\n };\r\n EventManager.prototype.onTouchEnd = function (evt) {\r\n this.touchHandler.onTouchEnd(evt);\r\n };\r\n EventManager.prototype.onTouchMove = function (evt) {\r\n this.touchHandler.onTouchMove(evt);\r\n };\r\n EventManager.prototype.onDoubleTap = function (evt) {\r\n this.touchHandler.onDoubleTap(evt);\r\n };\r\n EventManager.prototype.onKeyDown = function (evt) {\r\n if (this.control.isFocus) {\r\n var code = this.getShortcutCode(evt);\r\n if (code == (KeyCode_1.ModifierKey.Ctrl | KeyCode_1.KeyCode.Key_z))\r\n this.control.history.undo();\r\n if (code == (KeyCode_1.ModifierKey.Ctrl | KeyCode_1.KeyCode.Key_y))\r\n this.control.history.redo();\r\n if (code == KeyCode_1.KeyCode.Delete)\r\n this.control.taskEditController.deleteSelectedDependency();\r\n }\r\n };\r\n EventManager.prototype.getShortcutCode = function (evt) {\r\n var keyCode = DomUtils_1.DomUtils.GetKeyCode(evt);\r\n var modifiers = 0;\r\n if (evt.altKey)\r\n modifiers |= KeyCode_1.ModifierKey.Alt;\r\n if (evt.ctrlKey)\r\n modifiers |= KeyCode_1.ModifierKey.Ctrl;\r\n if (evt.shiftKey)\r\n modifiers |= KeyCode_1.ModifierKey.Shift;\r\n if (evt.metaKey && Browser_1.Browser.MacOSPlatform)\r\n modifiers |= KeyCode_1.ModifierKey.Meta;\r\n return modifiers | keyCode;\r\n };\r\n return EventManager;\r\n}());\r\nexports.EventManager = EventManager;\r\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerBase_1 = __webpack_require__(39);\r\nvar TaskAreaManager_1 = __webpack_require__(6);\r\nvar MouseHandlerDefaultState_1 = __webpack_require__(76);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar MouseHandlerMoveTaskState_1 = __webpack_require__(77);\r\nvar MouseHandlerProgressTaskState_1 = __webpack_require__(78);\r\nvar MouseHandlerTimestampTaskState_1 = __webpack_require__(79);\r\nvar MouseHandlerDependencyState_1 = __webpack_require__(40);\r\nvar MouseHandler = (function (_super) {\r\n tslib_1.__extends(MouseHandler, _super);\r\n function MouseHandler() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandler.prototype.onMouseDoubleClick = function (evt) {\r\n this.state.onMouseDoubleClick(evt);\r\n };\r\n MouseHandler.prototype.onMouseDown = function (evt) {\r\n var source = this.getEventSource(DomUtils_1.DomUtils.getEventSource(evt));\r\n switch (source) {\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_Frame:\r\n this.switchState(new MouseHandlerMoveTaskState_1.MouseHandlerMoveTaskState(this));\r\n break;\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_Progress:\r\n this.switchState(new MouseHandlerProgressTaskState_1.MouseHandlerProgressTaskState(this));\r\n break;\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_Start:\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_End:\r\n this.switchState(new MouseHandlerTimestampTaskState_1.MouseHandlerTimestampTaskState(this));\r\n break;\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyStart:\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyFinish:\r\n this.switchState(new MouseHandlerDependencyState_1.MouseHandlerDependencyState(this));\r\n break;\r\n }\r\n this.state.onMouseDown(evt);\r\n };\r\n MouseHandler.prototype.onMouseUp = function (evt) {\r\n this.state.onMouseUp(evt);\r\n };\r\n MouseHandler.prototype.onMouseMove = function (evt) {\r\n this.state.onMouseMove(evt);\r\n };\r\n MouseHandler.prototype.onMouseWheel = function (evt) {\r\n this.state.onMouseWheel(evt);\r\n };\r\n MouseHandler.prototype.switchToDefaultState = function () {\r\n this.state = new MouseHandlerDefaultState_1.MouseHandlerDefaultState(this);\r\n };\r\n return MouseHandler;\r\n}(HandlerBase_1.HandlerBase));\r\nexports.MouseHandler = MouseHandler;\r\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar MouseHandlerStateBase_1 = __webpack_require__(24);\r\nvar GridLayoutCalculator_1 = __webpack_require__(16);\r\nvar Point_1 = __webpack_require__(4);\r\nvar MouseHandlerDefaultState = (function (_super) {\r\n tslib_1.__extends(MouseHandlerDefaultState, _super);\r\n function MouseHandlerDefaultState(handler) {\r\n var _this = _super.call(this, handler) || this;\r\n _this.isInScrolling = false;\r\n _this.ganttMovingHelper = new GanttMovingHelper(_this.handler.control);\r\n return _this;\r\n }\r\n MouseHandlerDefaultState.prototype.onMouseDown = function (evt) {\r\n evt.preventDefault();\r\n var source = DomUtils_1.DomUtils.getEventSource(evt);\r\n if (DomUtils_1.DomUtils.elementHasCssClass(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL) ||\r\n DomUtils_1.DomUtils.elementHasCssClass(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_VERTICAL)) {\r\n var id = source.getAttribute(\"dependency-id\");\r\n if (this.handler.control.taskEditController.dependencyId != id) {\r\n this.handler.control.selectDependency(id);\r\n if (evt instanceof PointerEvent)\r\n this.handler.control.ganttOwner.showPopupMenu(new Point_1.Point(DomUtils_1.DomUtils.getEventX(evt), DomUtils_1.DomUtils.getEventY(evt)));\r\n }\r\n }\r\n else {\r\n if (DomUtils_1.DomUtils.IsLeftButtonPressed(evt))\r\n this.ganttMovingHelper.startMoving(evt);\r\n if (this.handler.control.taskEditController.dependencyId != null) {\r\n this.handler.control.selectDependency(null);\r\n }\r\n }\r\n };\r\n MouseHandlerDefaultState.prototype.onMouseUp = function (evt) {\r\n this.ganttMovingHelper.onMouseUp(evt);\r\n };\r\n MouseHandlerDefaultState.prototype.onMouseMove = function (evt) {\r\n if (this.ganttMovingHelper.movingInfo) {\r\n this.handler.control.taskEditController.hide();\r\n this.ganttMovingHelper.onMouseMove(evt);\r\n evt.preventDefault();\r\n }\r\n };\r\n MouseHandlerDefaultState.prototype.onMouseWheel = function (evt) {\r\n var _this = this;\r\n if (evt.ctrlKey) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n if (!this.isInScrolling) {\r\n this.isInScrolling = true;\r\n setTimeout(function () { _this.isInScrolling = false; }, 50);\r\n var increase = DomUtils_1.DomUtils.getWheelDelta(evt) > 0;\r\n var leftPos = DomUtils_1.DomUtils.getEventX(evt) - DomUtils_1.DomUtils.getAbsolutePositionX(this.handler.control.taskAreaContainer.getElement());\r\n if (increase)\r\n this.handler.control.zoomIn(leftPos);\r\n else\r\n this.handler.control.zoomOut(leftPos);\r\n }\r\n }\r\n };\r\n return MouseHandlerDefaultState;\r\n}(MouseHandlerStateBase_1.MouseHandlerStateBase));\r\nexports.MouseHandlerDefaultState = MouseHandlerDefaultState;\r\nvar GanttMovingHelper = (function () {\r\n function GanttMovingHelper(gantt) {\r\n this.gantt = gantt;\r\n this.movingInfo = null;\r\n }\r\n GanttMovingHelper.prototype.startMoving = function (e) {\r\n this.movingInfo = this.calcMovingInfo(e);\r\n this.updateGanttAreaCursor(true);\r\n };\r\n GanttMovingHelper.prototype.cancelMoving = function () {\r\n this.movingInfo = null;\r\n };\r\n GanttMovingHelper.prototype.onMouseMove = function (e) {\r\n this.move(e);\r\n };\r\n GanttMovingHelper.prototype.onMouseUp = function (e) {\r\n this.cancelMoving();\r\n this.updateGanttAreaCursor(false);\r\n };\r\n GanttMovingHelper.prototype.move = function (e) {\r\n this.updateScrollPosition(e);\r\n };\r\n GanttMovingHelper.prototype.updateScrollPosition = function (e) {\r\n var newEventX = Math.round(DomUtils_1.DomUtils.getEventX(e));\r\n var newEventY = Math.round(DomUtils_1.DomUtils.getEventY(e));\r\n var deltaX = newEventX - this.movingInfo.eventX;\r\n var deltaY = newEventY - this.movingInfo.eventY;\r\n var dirX = deltaX < 0 ? -1 : 1;\r\n var dirY = deltaY < 0 ? -1 : 1;\r\n var maxDeltaX = dirX < 0 ? this.movingInfo.maxRightDelta : this.movingInfo.maxLeftDelta;\r\n var maxDeltaY = dirY < 0 ? this.movingInfo.maxBottomDelta : this.movingInfo.maxTopDelta;\r\n if (Math.abs(deltaX) > maxDeltaX)\r\n deltaX = maxDeltaX * dirX;\r\n if (Math.abs(deltaY) > maxDeltaY)\r\n deltaY = maxDeltaY * dirY;\r\n var newScrollLeft = this.movingInfo.scrollLeft - deltaX;\r\n var newScrollTop = this.movingInfo.scrollTop - deltaY;\r\n var taskAreaContainer = this.gantt.taskAreaContainer;\r\n if (taskAreaContainer.scrollLeft !== newScrollLeft)\r\n taskAreaContainer.scrollLeft = newScrollLeft;\r\n if (taskAreaContainer.scrollTop !== newScrollTop)\r\n taskAreaContainer.scrollTop = newScrollTop;\r\n };\r\n GanttMovingHelper.prototype.calcMovingInfo = function (e) {\r\n var taskAreaContainer = this.gantt.taskAreaContainer;\r\n return {\r\n eventX: DomUtils_1.DomUtils.getEventX(e),\r\n eventY: DomUtils_1.DomUtils.getEventY(e),\r\n scrollLeft: taskAreaContainer.scrollLeft,\r\n scrollTop: taskAreaContainer.scrollTop,\r\n maxLeftDelta: taskAreaContainer.scrollLeft,\r\n maxRightDelta: taskAreaContainer.scrollWidth - taskAreaContainer.scrollLeft - taskAreaContainer.getElement().offsetWidth,\r\n maxTopDelta: taskAreaContainer.scrollTop,\r\n maxBottomDelta: taskAreaContainer.scrollHeight - taskAreaContainer.scrollTop - taskAreaContainer.getElement().offsetHeight\r\n };\r\n };\r\n GanttMovingHelper.prototype.updateGanttAreaCursor = function (drag) {\r\n this.gantt.taskAreaContainer.getElement().style.cursor = drag ? \"grabbing\" : \"default\";\r\n };\r\n return GanttMovingHelper;\r\n}());\r\nexports.GanttMovingHelper = GanttMovingHelper;\r\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar MouseHandlerDragTaskBaseState_1 = __webpack_require__(25);\r\nvar MouseHandlerMoveTaskState = (function (_super) {\r\n tslib_1.__extends(MouseHandlerMoveTaskState, _super);\r\n function MouseHandlerMoveTaskState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerMoveTaskState.prototype.onMouseUpInternal = function (_evt) {\r\n this.handler.control.taskEditController.confirmMove();\r\n };\r\n MouseHandlerMoveTaskState.prototype.onMouseMoveInternal = function (position) {\r\n this.handler.control.taskEditController.processMove(position.x - this.currentPosition.x);\r\n };\r\n return MouseHandlerMoveTaskState;\r\n}(MouseHandlerDragTaskBaseState_1.MouseHandlerDragBaseState));\r\nexports.MouseHandlerMoveTaskState = MouseHandlerMoveTaskState;\r\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar MouseHandlerDragTaskBaseState_1 = __webpack_require__(25);\r\nvar MouseHandlerProgressTaskState = (function (_super) {\r\n tslib_1.__extends(MouseHandlerProgressTaskState, _super);\r\n function MouseHandlerProgressTaskState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerProgressTaskState.prototype.onMouseUpInternal = function (_evt) {\r\n this.handler.control.taskEditController.confirmProgress();\r\n };\r\n MouseHandlerProgressTaskState.prototype.onMouseMoveInternal = function (position) {\r\n var relativePosition = this.getRelativePos(position);\r\n this.handler.control.taskEditController.processProgress(relativePosition);\r\n };\r\n return MouseHandlerProgressTaskState;\r\n}(MouseHandlerDragTaskBaseState_1.MouseHandlerDragBaseState));\r\nexports.MouseHandlerProgressTaskState = MouseHandlerProgressTaskState;\r\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskAreaManager_1 = __webpack_require__(6);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar MouseHandlerDragTaskBaseState_1 = __webpack_require__(25);\r\nvar MouseHandlerTimestampTaskState = (function (_super) {\r\n tslib_1.__extends(MouseHandlerTimestampTaskState, _super);\r\n function MouseHandlerTimestampTaskState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerTimestampTaskState.prototype.onMouseDown = function (evt) {\r\n _super.prototype.onMouseDown.call(this, evt);\r\n this.source = this.handler.getEventSource(DomUtils_1.DomUtils.getEventSource(evt));\r\n };\r\n MouseHandlerTimestampTaskState.prototype.onMouseUpInternal = function (_evt) {\r\n if (this.source == TaskAreaManager_1.MouseEventSource.TaskEdit_Start)\r\n this.handler.control.taskEditController.confirmStart();\r\n else\r\n this.handler.control.taskEditController.confirmEnd();\r\n };\r\n MouseHandlerTimestampTaskState.prototype.onMouseMoveInternal = function (position) {\r\n var relativePosition = this.getRelativePos(position);\r\n if (this.source == TaskAreaManager_1.MouseEventSource.TaskEdit_Start)\r\n this.handler.control.taskEditController.processStart(relativePosition);\r\n if (this.source == TaskAreaManager_1.MouseEventSource.TaskEdit_End)\r\n this.handler.control.taskEditController.processEnd(relativePosition);\r\n };\r\n return MouseHandlerTimestampTaskState;\r\n}(MouseHandlerDragTaskBaseState_1.MouseHandlerDragBaseState));\r\nexports.MouseHandlerTimestampTaskState = MouseHandlerTimestampTaskState;\r\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ModifierKey;\r\n(function (ModifierKey) {\r\n ModifierKey[ModifierKey[\"None\"] = 0] = \"None\";\r\n ModifierKey[ModifierKey[\"Ctrl\"] = 65536] = \"Ctrl\";\r\n ModifierKey[ModifierKey[\"Shift\"] = 262144] = \"Shift\";\r\n ModifierKey[ModifierKey[\"Alt\"] = 1048576] = \"Alt\";\r\n ModifierKey[ModifierKey[\"Meta\"] = 16777216] = \"Meta\";\r\n})(ModifierKey = exports.ModifierKey || (exports.ModifierKey = {}));\r\nvar KeyCode;\r\n(function (KeyCode) {\r\n KeyCode[KeyCode[\"Backspace\"] = 8] = \"Backspace\";\r\n KeyCode[KeyCode[\"Tab\"] = 9] = \"Tab\";\r\n KeyCode[KeyCode[\"Enter\"] = 13] = \"Enter\";\r\n KeyCode[KeyCode[\"Pause\"] = 19] = \"Pause\";\r\n KeyCode[KeyCode[\"CapsLock\"] = 20] = \"CapsLock\";\r\n KeyCode[KeyCode[\"Esc\"] = 27] = \"Esc\";\r\n KeyCode[KeyCode[\"Space\"] = 32] = \"Space\";\r\n KeyCode[KeyCode[\"PageUp\"] = 33] = \"PageUp\";\r\n KeyCode[KeyCode[\"PageDown\"] = 34] = \"PageDown\";\r\n KeyCode[KeyCode[\"End\"] = 35] = \"End\";\r\n KeyCode[KeyCode[\"Home\"] = 36] = \"Home\";\r\n KeyCode[KeyCode[\"Left\"] = 37] = \"Left\";\r\n KeyCode[KeyCode[\"Up\"] = 38] = \"Up\";\r\n KeyCode[KeyCode[\"Right\"] = 39] = \"Right\";\r\n KeyCode[KeyCode[\"Down\"] = 40] = \"Down\";\r\n KeyCode[KeyCode[\"Insert\"] = 45] = \"Insert\";\r\n KeyCode[KeyCode[\"Delete\"] = 46] = \"Delete\";\r\n KeyCode[KeyCode[\"Key_0\"] = 48] = \"Key_0\";\r\n KeyCode[KeyCode[\"Key_1\"] = 49] = \"Key_1\";\r\n KeyCode[KeyCode[\"Key_2\"] = 50] = \"Key_2\";\r\n KeyCode[KeyCode[\"Key_3\"] = 51] = \"Key_3\";\r\n KeyCode[KeyCode[\"Key_4\"] = 52] = \"Key_4\";\r\n KeyCode[KeyCode[\"Key_5\"] = 53] = \"Key_5\";\r\n KeyCode[KeyCode[\"Key_6\"] = 54] = \"Key_6\";\r\n KeyCode[KeyCode[\"Key_7\"] = 55] = \"Key_7\";\r\n KeyCode[KeyCode[\"Key_8\"] = 56] = \"Key_8\";\r\n KeyCode[KeyCode[\"Key_9\"] = 57] = \"Key_9\";\r\n KeyCode[KeyCode[\"Key_a\"] = 65] = \"Key_a\";\r\n KeyCode[KeyCode[\"Key_b\"] = 66] = \"Key_b\";\r\n KeyCode[KeyCode[\"Key_c\"] = 67] = \"Key_c\";\r\n KeyCode[KeyCode[\"Key_d\"] = 68] = \"Key_d\";\r\n KeyCode[KeyCode[\"Key_e\"] = 69] = \"Key_e\";\r\n KeyCode[KeyCode[\"Key_f\"] = 70] = \"Key_f\";\r\n KeyCode[KeyCode[\"Key_g\"] = 71] = \"Key_g\";\r\n KeyCode[KeyCode[\"Key_h\"] = 72] = \"Key_h\";\r\n KeyCode[KeyCode[\"Key_i\"] = 73] = \"Key_i\";\r\n KeyCode[KeyCode[\"Key_j\"] = 74] = \"Key_j\";\r\n KeyCode[KeyCode[\"Key_k\"] = 75] = \"Key_k\";\r\n KeyCode[KeyCode[\"Key_l\"] = 76] = \"Key_l\";\r\n KeyCode[KeyCode[\"Key_m\"] = 77] = \"Key_m\";\r\n KeyCode[KeyCode[\"Key_n\"] = 78] = \"Key_n\";\r\n KeyCode[KeyCode[\"Key_o\"] = 79] = \"Key_o\";\r\n KeyCode[KeyCode[\"Key_p\"] = 80] = \"Key_p\";\r\n KeyCode[KeyCode[\"Key_q\"] = 81] = \"Key_q\";\r\n KeyCode[KeyCode[\"Key_r\"] = 82] = \"Key_r\";\r\n KeyCode[KeyCode[\"Key_s\"] = 83] = \"Key_s\";\r\n KeyCode[KeyCode[\"Key_t\"] = 84] = \"Key_t\";\r\n KeyCode[KeyCode[\"Key_u\"] = 85] = \"Key_u\";\r\n KeyCode[KeyCode[\"Key_v\"] = 86] = \"Key_v\";\r\n KeyCode[KeyCode[\"Key_w\"] = 87] = \"Key_w\";\r\n KeyCode[KeyCode[\"Key_x\"] = 88] = \"Key_x\";\r\n KeyCode[KeyCode[\"Key_y\"] = 89] = \"Key_y\";\r\n KeyCode[KeyCode[\"Key_z\"] = 90] = \"Key_z\";\r\n KeyCode[KeyCode[\"Windows\"] = 91] = \"Windows\";\r\n KeyCode[KeyCode[\"ContextMenu\"] = 93] = \"ContextMenu\";\r\n KeyCode[KeyCode[\"Numpad_0\"] = 96] = \"Numpad_0\";\r\n KeyCode[KeyCode[\"Numpad_1\"] = 97] = \"Numpad_1\";\r\n KeyCode[KeyCode[\"Numpad_2\"] = 98] = \"Numpad_2\";\r\n KeyCode[KeyCode[\"Numpad_3\"] = 99] = \"Numpad_3\";\r\n KeyCode[KeyCode[\"Numpad_4\"] = 100] = \"Numpad_4\";\r\n KeyCode[KeyCode[\"Numpad_5\"] = 101] = \"Numpad_5\";\r\n KeyCode[KeyCode[\"Numpad_6\"] = 102] = \"Numpad_6\";\r\n KeyCode[KeyCode[\"Numpad_7\"] = 103] = \"Numpad_7\";\r\n KeyCode[KeyCode[\"Numpad_8\"] = 104] = \"Numpad_8\";\r\n KeyCode[KeyCode[\"Numpad_9\"] = 105] = \"Numpad_9\";\r\n KeyCode[KeyCode[\"Multiply\"] = 106] = \"Multiply\";\r\n KeyCode[KeyCode[\"Add\"] = 107] = \"Add\";\r\n KeyCode[KeyCode[\"Subtract\"] = 109] = \"Subtract\";\r\n KeyCode[KeyCode[\"Decimal\"] = 110] = \"Decimal\";\r\n KeyCode[KeyCode[\"Divide\"] = 111] = \"Divide\";\r\n KeyCode[KeyCode[\"F1\"] = 112] = \"F1\";\r\n KeyCode[KeyCode[\"F2\"] = 113] = \"F2\";\r\n KeyCode[KeyCode[\"F3\"] = 114] = \"F3\";\r\n KeyCode[KeyCode[\"F4\"] = 115] = \"F4\";\r\n KeyCode[KeyCode[\"F5\"] = 116] = \"F5\";\r\n KeyCode[KeyCode[\"F6\"] = 117] = \"F6\";\r\n KeyCode[KeyCode[\"F7\"] = 118] = \"F7\";\r\n KeyCode[KeyCode[\"F8\"] = 119] = \"F8\";\r\n KeyCode[KeyCode[\"F9\"] = 120] = \"F9\";\r\n KeyCode[KeyCode[\"F10\"] = 121] = \"F10\";\r\n KeyCode[KeyCode[\"F11\"] = 122] = \"F11\";\r\n KeyCode[KeyCode[\"F12\"] = 123] = \"F12\";\r\n KeyCode[KeyCode[\"NumLock\"] = 144] = \"NumLock\";\r\n KeyCode[KeyCode[\"ScrollLock\"] = 145] = \"ScrollLock\";\r\n KeyCode[KeyCode[\"Semicolon\"] = 186] = \"Semicolon\";\r\n KeyCode[KeyCode[\"Equals\"] = 187] = \"Equals\";\r\n KeyCode[KeyCode[\"Comma\"] = 188] = \"Comma\";\r\n KeyCode[KeyCode[\"Dash\"] = 189] = \"Dash\";\r\n KeyCode[KeyCode[\"Period\"] = 190] = \"Period\";\r\n KeyCode[KeyCode[\"ForwardSlash\"] = 191] = \"ForwardSlash\";\r\n KeyCode[KeyCode[\"GraveAccent\"] = 192] = \"GraveAccent\";\r\n KeyCode[KeyCode[\"OpenBracket\"] = 219] = \"OpenBracket\";\r\n KeyCode[KeyCode[\"BackSlash\"] = 220] = \"BackSlash\";\r\n KeyCode[KeyCode[\"CloseBracket\"] = 221] = \"CloseBracket\";\r\n KeyCode[KeyCode[\"SingleQuote\"] = 222] = \"SingleQuote\";\r\n})(KeyCode = exports.KeyCode || (exports.KeyCode = {}));\r\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerBase_1 = __webpack_require__(39);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar TaskAreaManager_1 = __webpack_require__(6);\r\nvar TouchHandlerMoveTaskState_1 = __webpack_require__(82);\r\nvar TouchHandlerDefaultState_1 = __webpack_require__(83);\r\nvar TouchHandlerProgressTaskState_1 = __webpack_require__(84);\r\nvar TouchHandlerTimestampTaskState_1 = __webpack_require__(85);\r\nvar TouchHandlerDependencyState_1 = __webpack_require__(86);\r\nvar TouchHandlerZoomState_1 = __webpack_require__(87);\r\nvar TouchHandler = (function (_super) {\r\n tslib_1.__extends(TouchHandler, _super);\r\n function TouchHandler() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandler.prototype.onTouchStart = function (evt) {\r\n if (evt.touches.length > 1)\r\n evt.preventDefault();\r\n var source = this.getEventSource(DomUtils_1.DomUtils.getEventSource(evt));\r\n switch (source) {\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_Frame:\r\n this.switchState(new TouchHandlerMoveTaskState_1.TouchHandlerMoveTaskState(this));\r\n break;\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_Progress:\r\n this.switchState(new TouchHandlerProgressTaskState_1.TouchHandlerProgressTaskState(this));\r\n break;\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_Start:\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_End:\r\n this.switchState(new TouchHandlerTimestampTaskState_1.TouchHandlerTimestampTaskState(this));\r\n break;\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyStart:\r\n case TaskAreaManager_1.MouseEventSource.TaskEdit_DependencyFinish:\r\n this.switchState(new TouchHandlerDependencyState_1.TouchHandlerDependencyState(this));\r\n break;\r\n }\r\n this.state.onTouchStart(evt);\r\n };\r\n TouchHandler.prototype.onDoubleTap = function (evt) {\r\n this.state.onDoubleTap(evt);\r\n };\r\n TouchHandler.prototype.onTouchEnd = function (evt) {\r\n this.state.onTouchEnd(evt);\r\n };\r\n TouchHandler.prototype.onTouchMove = function (evt) {\r\n if (evt.touches.length > 1) {\r\n if (!(this.state instanceof TouchHandlerZoomState_1.TouchHandlerZoomState))\r\n this.switchState(new TouchHandlerZoomState_1.TouchHandlerZoomState(this));\r\n }\r\n this.state.onTouchMove(evt);\r\n };\r\n TouchHandler.prototype.switchToDefaultState = function () {\r\n this.state = new TouchHandlerDefaultState_1.TouchHandlerDefaultState(this);\r\n };\r\n return TouchHandler;\r\n}(HandlerBase_1.HandlerBase));\r\nexports.TouchHandler = TouchHandler;\r\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerDragBaseState_1 = __webpack_require__(26);\r\nvar TouchHandlerMoveTaskState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerMoveTaskState, _super);\r\n function TouchHandlerMoveTaskState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerMoveTaskState.prototype.onTouchEndInternal = function (_evt) {\r\n this.handler.control.taskEditController.confirmMove();\r\n };\r\n TouchHandlerMoveTaskState.prototype.onTouchMoveInternal = function (position) {\r\n this.handler.control.taskEditController.processMove(position.x - this.currentPosition.x);\r\n };\r\n return TouchHandlerMoveTaskState;\r\n}(TouchHandlerDragBaseState_1.TouchHandlerDragBaseState));\r\nexports.TouchHandlerMoveTaskState = TouchHandlerMoveTaskState;\r\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerStateBase_1 = __webpack_require__(18);\r\nvar Point_1 = __webpack_require__(4);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar TouchUIHelper_1 = __webpack_require__(14);\r\nvar GridLayoutCalculator_1 = __webpack_require__(16);\r\nvar TouchHandlerDefaultState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerDefaultState, _super);\r\n function TouchHandlerDefaultState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerDefaultState.prototype.onTouchStart = function (evt) {\r\n var _this = this;\r\n this.preventSelect = false;\r\n clearTimeout(this.popupTimer);\r\n if (evt.touches.length === 1) {\r\n var source = DomUtils_1.DomUtils.getEventSource(evt);\r\n if (DomUtils_1.DomUtils.elementHasCssClass(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL) ||\r\n DomUtils_1.DomUtils.elementHasCssClass(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_VERTICAL)) {\r\n this.preventSelect = true;\r\n var id = source.getAttribute(\"dependency-id\");\r\n if (this.handler.control.taskEditController.dependencyId != id)\r\n this.handler.control.selectDependency(id);\r\n this.handler.control.ganttOwner.showPopupMenu(new Point_1.Point(TouchUIHelper_1.TouchUIHelper.getEventX(evt), TouchUIHelper_1.TouchUIHelper.getEventY(evt)));\r\n }\r\n else {\r\n this.popupTimer = setTimeout(function () {\r\n _this.changeTaskSelection(_this.getTaskIndex(evt));\r\n _this.handler.control.ganttOwner.showPopupMenu(new Point_1.Point(TouchUIHelper_1.TouchUIHelper.getEventX(evt), TouchUIHelper_1.TouchUIHelper.getEventY(evt)));\r\n }, 500);\r\n }\r\n }\r\n };\r\n TouchHandlerDefaultState.prototype.onDoubleTap = function (_evt) { };\r\n TouchHandlerDefaultState.prototype.onTouchEnd = function (evt) {\r\n clearTimeout(this.popupTimer);\r\n if (!this.preventSelect)\r\n this.changeTaskSelection(this.getTaskIndex(evt));\r\n };\r\n TouchHandlerDefaultState.prototype.onTouchMove = function (_evt) {\r\n clearTimeout(this.popupTimer);\r\n this.preventSelect = true;\r\n };\r\n TouchHandlerDefaultState.prototype.getTaskIndex = function (evt) {\r\n var y = TouchUIHelper_1.TouchUIHelper.getEventY(evt);\r\n var taskAreaY = DomUtils_1.DomUtils.getAbsolutePositionY(this.handler.control.taskArea);\r\n var relativeY = y - taskAreaY;\r\n return Math.floor(relativeY / this.handler.control.tickSize.height);\r\n };\r\n TouchHandlerDefaultState.prototype.changeTaskSelection = function (index) {\r\n var clickedTask = this.handler.control.viewModel.items[index];\r\n if (clickedTask)\r\n this.handler.control.ganttOwner.changeGanttTaskSelection(clickedTask.task.id, true);\r\n };\r\n return TouchHandlerDefaultState;\r\n}(HandlerStateBase_1.HandlerStateBase));\r\nexports.TouchHandlerDefaultState = TouchHandlerDefaultState;\r\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerDragBaseState_1 = __webpack_require__(26);\r\nvar TouchHandlerProgressTaskState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerProgressTaskState, _super);\r\n function TouchHandlerProgressTaskState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerProgressTaskState.prototype.onTouchEndInternal = function (_evt) {\r\n this.handler.control.taskEditController.confirmProgress();\r\n };\r\n TouchHandlerProgressTaskState.prototype.onTouchMoveInternal = function (position) {\r\n var relativePosition = this.getRelativePos(position);\r\n this.handler.control.taskEditController.processProgress(relativePosition);\r\n };\r\n return TouchHandlerProgressTaskState;\r\n}(TouchHandlerDragBaseState_1.TouchHandlerDragBaseState));\r\nexports.TouchHandlerProgressTaskState = TouchHandlerProgressTaskState;\r\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerDragBaseState_1 = __webpack_require__(26);\r\nvar TaskAreaManager_1 = __webpack_require__(6);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar TouchHandlerTimestampTaskState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerTimestampTaskState, _super);\r\n function TouchHandlerTimestampTaskState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerTimestampTaskState.prototype.onTouchStart = function (evt) {\r\n _super.prototype.onTouchStart.call(this, evt);\r\n this.source = this.handler.getEventSource(DomUtils_1.DomUtils.getEventSource(evt));\r\n };\r\n TouchHandlerTimestampTaskState.prototype.onTouchEndInternal = function (_evt) {\r\n if (this.source == TaskAreaManager_1.MouseEventSource.TaskEdit_Start)\r\n this.handler.control.taskEditController.confirmStart();\r\n else\r\n this.handler.control.taskEditController.confirmEnd();\r\n };\r\n TouchHandlerTimestampTaskState.prototype.onTouchMoveInternal = function (position) {\r\n var relativePosition = this.getRelativePos(position);\r\n if (this.source == TaskAreaManager_1.MouseEventSource.TaskEdit_Start)\r\n this.handler.control.taskEditController.processStart(relativePosition);\r\n if (this.source == TaskAreaManager_1.MouseEventSource.TaskEdit_End)\r\n this.handler.control.taskEditController.processEnd(relativePosition);\r\n };\r\n return TouchHandlerTimestampTaskState;\r\n}(TouchHandlerDragBaseState_1.TouchHandlerDragBaseState));\r\nexports.TouchHandlerTimestampTaskState = TouchHandlerTimestampTaskState;\r\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerStateBase_1 = __webpack_require__(41);\r\nvar TaskAreaManager_1 = __webpack_require__(6);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar Point_1 = __webpack_require__(4);\r\nvar MouseHandlerDependencyState_1 = __webpack_require__(40);\r\nvar TouchUIHelper_1 = __webpack_require__(14);\r\nvar TouchHandlerDependencyState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerDependencyState, _super);\r\n function TouchHandlerDependencyState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerDependencyState.prototype.onTouchStart = function (evt) {\r\n evt.preventDefault();\r\n var sourceElement = DomUtils_1.DomUtils.getEventSource(evt);\r\n this.source = this.handler.getEventSource(sourceElement);\r\n var pos = this.getRelativePos(new Point_1.Point(DomUtils_1.DomUtils.getAbsolutePositionX(sourceElement) + sourceElement.clientWidth / 2, DomUtils_1.DomUtils.getAbsolutePositionY(sourceElement) + sourceElement.clientHeight / 2));\r\n this.handler.control.taskEditController.startDependency(pos);\r\n };\r\n TouchHandlerDependencyState.prototype.onTouchEnd = function (evt) {\r\n var relativePosStart = this.getRelativePos(new Point_1.Point(DomUtils_1.DomUtils.getAbsolutePositionX(this.handler.control.taskEditController.dependencySuccessorStart) + this.handler.control.taskEditController.dependencySuccessorStart.clientWidth / 2, DomUtils_1.DomUtils.getAbsolutePositionY(this.handler.control.taskEditController.dependencySuccessorStart) + this.handler.control.taskEditController.dependencySuccessorStart.clientHeight / 2));\r\n var relativePosEnd = this.getRelativePos(new Point_1.Point(DomUtils_1.DomUtils.getAbsolutePositionX(this.handler.control.taskEditController.dependencySuccessorFinish) + this.handler.control.taskEditController.dependencySuccessorFinish.clientWidth / 2, DomUtils_1.DomUtils.getAbsolutePositionY(this.handler.control.taskEditController.dependencySuccessorFinish) + this.handler.control.taskEditController.dependencySuccessorFinish.clientHeight / 2));\r\n var relativeTouchPos = this.getRelativePos(new Point_1.Point(TouchUIHelper_1.TouchUIHelper.getEventX(evt), TouchUIHelper_1.TouchUIHelper.getEventY(evt)));\r\n var target = this.isTouchNearby(relativeTouchPos, relativePosStart) ? TaskAreaManager_1.MouseEventSource.Successor_DependencyStart :\r\n this.isTouchNearby(relativeTouchPos, relativePosEnd) ? TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish : null;\r\n var type = target === TaskAreaManager_1.MouseEventSource.Successor_DependencyStart || target == TaskAreaManager_1.MouseEventSource.Successor_DependencyFinish ?\r\n MouseHandlerDependencyState_1.dependencyMap[this.source][target] : null;\r\n this.handler.control.taskEditController.endDependency(type);\r\n this.handler.switchToDefaultState();\r\n };\r\n TouchHandlerDependencyState.prototype.onTouchMove = function (evt) {\r\n evt.preventDefault();\r\n var relativePos = this.getRelativePos(new Point_1.Point(TouchUIHelper_1.TouchUIHelper.getEventX(evt), TouchUIHelper_1.TouchUIHelper.getEventY(evt)));\r\n var hoverTaskIndex = Math.floor(relativePos.y / this.handler.control.tickSize.height);\r\n this.handler.control.taskEditController.processDependency(relativePos);\r\n if (this.handler.control.viewModel.tasks.items[hoverTaskIndex])\r\n this.handler.control.taskEditController.showDependencySuccessor(hoverTaskIndex);\r\n };\r\n TouchHandlerDependencyState.prototype.isTouchNearby = function (touchPos, elementPos) {\r\n if (Math.abs(elementPos.x - touchPos.x) <= 10 && Math.abs(elementPos.y - touchPos.y) <= 10)\r\n return true;\r\n return false;\r\n };\r\n return TouchHandlerDependencyState;\r\n}(TouchHandlerStateBase_1.TouchHandlerStateBase));\r\nexports.TouchHandlerDependencyState = TouchHandlerDependencyState;\r\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerStateBase_1 = __webpack_require__(18);\r\nvar Point_1 = __webpack_require__(4);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar PINCH_CHANGE_DISTANCE = 3;\r\nvar TouchHandlerZoomState = (function (_super) {\r\n tslib_1.__extends(TouchHandlerZoomState, _super);\r\n function TouchHandlerZoomState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TouchHandlerZoomState.prototype.onTouchStart = function (_evt) { };\r\n TouchHandlerZoomState.prototype.onDoubleTap = function (_evt) { };\r\n TouchHandlerZoomState.prototype.onTouchEnd = function (_evt) {\r\n this.prevDistance = null;\r\n this.handler.switchToDefaultState();\r\n };\r\n TouchHandlerZoomState.prototype.onTouchMove = function (evt) {\r\n evt.stopPropagation();\r\n evt.preventDefault();\r\n if (evt.touches.length > 1) {\r\n var distance = this.getTouchDistance(evt);\r\n if (this.prevDistance) {\r\n var diff = this.prevDistance - distance;\r\n if (Math.abs(diff) > PINCH_CHANGE_DISTANCE) {\r\n var offsetX = this.getMiddleAbsPoint(evt).x;\r\n if (diff > 0)\r\n this.handler.control.zoomOut(offsetX);\r\n else\r\n this.handler.control.zoomIn(offsetX);\r\n this.prevDistance = distance;\r\n }\r\n }\r\n else\r\n this.prevDistance = distance;\r\n }\r\n };\r\n TouchHandlerZoomState.prototype.getTouchDistance = function (evt) {\r\n var pt0 = new Point_1.Point(evt.touches[0].clientX, evt.touches[0].clientY);\r\n var pt1 = new Point_1.Point(evt.touches[1].clientX, evt.touches[1].clientY);\r\n return this.getDistance(pt0, pt1);\r\n };\r\n TouchHandlerZoomState.prototype.getDistance = function (a, b) {\r\n return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));\r\n };\r\n TouchHandlerZoomState.prototype.getMiddleAbsPoint = function (evt) {\r\n var _this = this;\r\n return this.getMiddlePointByEvent(evt, function (touch) {\r\n return new Point_1.Point(touch.pageX - DomUtils_1.DomUtils.getAbsolutePositionX(_this.handler.control.taskAreaContainer.getElement()), touch.pageY - DomUtils_1.DomUtils.getAbsolutePositionY(_this.handler.control.taskAreaContainer.getElement()));\r\n });\r\n };\r\n TouchHandlerZoomState.prototype.getMiddlePointByEvent = function (evt, getPoint) {\r\n if (evt.touches.length > 1) {\r\n return new Point_1.Point((getPoint(evt.touches[0]).x + getPoint(evt.touches[1]).x) / 2, (getPoint(evt.touches[0]).y + getPoint(evt.touches[1]).y) / 2);\r\n }\r\n };\r\n return TouchHandlerZoomState;\r\n}(HandlerStateBase_1.HandlerStateBase));\r\nexports.TouchHandlerZoomState = TouchHandlerZoomState;\r\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TaskAreaContainer = (function () {\r\n function TaskAreaContainer(element, ganttView) {\r\n this.element = element;\r\n this.element.addEventListener(\"scroll\", function () { ganttView.updateView(); });\r\n }\r\n Object.defineProperty(TaskAreaContainer.prototype, \"scrollTop\", {\r\n get: function () {\r\n return this.element.scrollTop;\r\n },\r\n set: function (value) {\r\n this.element.scrollTop = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskAreaContainer.prototype, \"scrollLeft\", {\r\n get: function () {\r\n return this.element.scrollLeft;\r\n },\r\n set: function (value) {\r\n this.element.scrollLeft = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskAreaContainer.prototype, \"scrollWidth\", {\r\n get: function () {\r\n return this.element.scrollWidth;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskAreaContainer.prototype, \"scrollHeight\", {\r\n get: function () {\r\n return this.element.scrollHeight;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskAreaContainer.prototype, \"isExternal\", {\r\n get: function () {\r\n return false;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TaskAreaContainer.prototype.getWidth = function () {\r\n return this.element.offsetWidth;\r\n };\r\n TaskAreaContainer.prototype.getHeight = function () {\r\n return this.element.offsetHeight;\r\n };\r\n TaskAreaContainer.prototype.getElement = function () {\r\n return this.element;\r\n };\r\n return TaskAreaContainer;\r\n}());\r\nexports.TaskAreaContainer = TaskAreaContainer;\r\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventDispatcher_1 = __webpack_require__(90);\r\nvar ModelChangesDispatcher = (function () {\r\n function ModelChangesDispatcher() {\r\n this.onModelChanged = new EventDispatcher_1.EventDispatcher();\r\n this.isLocked = false;\r\n }\r\n ModelChangesDispatcher.prototype.notifyTaskCreated = function (task, callback, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskCreated\", task, callback, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskRemoved = function (taskID, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskRemoved\", taskID, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskTitleChanged = function (taskID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskTitleChanged\", taskID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskDescriptionChanged = function (taskID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskDescriptionChanged\", taskID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskStartChanged = function (taskID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskStartChanged\", taskID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskEndChanged = function (taskID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskEndChanged\", taskID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskProgressChanged = function (taskID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskProgressChanged\", taskID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskColorChanged = function (taskID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskColorChanged\", taskID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyDependencyInserted = function (dependency, callback, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyDependencyInserted\", dependency, callback, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyDependencyRemoved = function (dependencyID, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyDependencyRemoved\", dependencyID, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceCreated = function (resource, callback, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceCreated\", resource, callback, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceRemoved = function (resourceID, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceRemoved\", resourceID, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceColorChanged = function (resourceID, newValue, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceColorChanged\", resourceID, newValue, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceAssigned = function (assignment, callback, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceAssigned\", assignment, callback, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceUnassigned = function (assignmentID, errorCallback) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceUnassigned\", assignmentID, errorCallback);\r\n };\r\n ModelChangesDispatcher.prototype.notifyParentDataRecalculated = function (data) {\r\n this.onModelChanged.raise(\"NotifyParentDataRecalculated\", data);\r\n };\r\n ModelChangesDispatcher.prototype.lock = function () { this.isLocked = true; };\r\n ModelChangesDispatcher.prototype.unlock = function () { this.isLocked = false; };\r\n return ModelChangesDispatcher;\r\n}());\r\nexports.ModelChangesDispatcher = ModelChangesDispatcher;\r\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventDispatcher = (function () {\r\n function EventDispatcher() {\r\n this.listeners = [];\r\n }\r\n EventDispatcher.prototype.add = function (listener) {\r\n if (!listener)\r\n throw new Error(\"Error\");\r\n if (!this.hasEventListener(listener))\r\n this.listeners.push(listener);\r\n };\r\n EventDispatcher.prototype.remove = function (listener) {\r\n for (var i = 0, currentListener; currentListener = this.listeners[i]; i++) {\r\n if (currentListener === listener) {\r\n this.listeners.splice(i, 1);\r\n break;\r\n }\r\n }\r\n };\r\n EventDispatcher.prototype.raise = function (funcName) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n for (var i = 0, listener; listener = this.listeners[i]; i++) {\r\n listener[funcName].apply(listener, args);\r\n }\r\n };\r\n EventDispatcher.prototype.hasEventListener = function (listener) {\r\n for (var i = 0, l = this.listeners.length; i < l; i++)\r\n if (this.listeners[i] === listener)\r\n return true;\r\n return false;\r\n };\r\n return EventDispatcher;\r\n}());\r\nexports.EventDispatcher = EventDispatcher;\r\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar TaskCommands_1 = __webpack_require__(92);\r\nvar TaskPropertiesCommands_1 = __webpack_require__(94);\r\nvar DependencyCommands_1 = __webpack_require__(95);\r\nvar ResourceCommands_1 = __webpack_require__(96);\r\nvar TaskEditDialog_1 = __webpack_require__(97);\r\nvar ConstraintViolationDialog_1 = __webpack_require__(42);\r\nvar ResourcesDialog_1 = __webpack_require__(98);\r\nvar ClientCommand_1 = __webpack_require__(99);\r\nvar HistoryCommands_1 = __webpack_require__(100);\r\nvar ZoomCommands_1 = __webpack_require__(101);\r\nvar FullScreenCommand_1 = __webpack_require__(102);\r\nvar CollapseExpandCommands_1 = __webpack_require__(103);\r\nvar ConfirmationDialog_1 = __webpack_require__(20);\r\nvar ResourcePropertiesCommands_1 = __webpack_require__(104);\r\nvar CommandManager = (function () {\r\n function CommandManager(control) {\r\n this.control = control;\r\n this.commands = {};\r\n this.createCommand(ClientCommand_1.GanttClientCommand.CreateTask, this.createTaskCommand);\r\n this.createCommand(ClientCommand_1.GanttClientCommand.CreateSubTask, this.createSubTaskCommand);\r\n this.createCommand(ClientCommand_1.GanttClientCommand.RemoveTask, this.removeTaskCommand);\r\n this.createCommand(ClientCommand_1.GanttClientCommand.RemoveDependency, this.removeDependencyCommand);\r\n this.createCommand(ClientCommand_1.GanttClientCommand.TaskInformation, this.showTaskEditDialog);\r\n this.createCommand(ClientCommand_1.GanttClientCommand.TaskAddContextItem, new TaskCommands_1.TaskAddContextItemCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.Undo, new HistoryCommands_1.UndoCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.Redo, new HistoryCommands_1.RedoCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.ZoomIn, new ZoomCommands_1.ZoomInCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.ZoomOut, new ZoomCommands_1.ZoomOutCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.FullScreen, new FullScreenCommand_1.ToggleFullScreenCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.CollapseAll, new CollapseExpandCommands_1.CollapseAllCommand(this.control));\r\n this.createCommand(ClientCommand_1.GanttClientCommand.ExpandAll, new CollapseExpandCommands_1.ExpandAllCommand(this.control));\r\n }\r\n Object.defineProperty(CommandManager.prototype, \"createTaskCommand\", {\r\n get: function () { return new TaskCommands_1.CreateTaskCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"createSubTaskCommand\", {\r\n get: function () { return new TaskCommands_1.CreateSubTaskCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"removeTaskCommand\", {\r\n get: function () { return new TaskCommands_1.RemoveTaskCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeTaskTitleCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskTitleCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeTaskDescriptionCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskDescriptionCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeTaskProgressCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskProgressCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeTaskColorCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskColorCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeTaskStartCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskStartCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"taskMoveCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskMoveCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeTaskEndCommand\", {\r\n get: function () { return new TaskPropertiesCommands_1.TaskEndCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"createDependencyCommand\", {\r\n get: function () { return new DependencyCommands_1.CreateDependencyCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"removeDependencyCommand\", {\r\n get: function () { return new DependencyCommands_1.RemoveDependencyCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"createResourceCommand\", {\r\n get: function () { return new ResourceCommands_1.CreateResourceCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"removeResourceCommand\", {\r\n get: function () { return new ResourceCommands_1.RemoveResourceCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"assignResourceCommand\", {\r\n get: function () { return new ResourceCommands_1.AssignResourceCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"deassignResourceCommand\", {\r\n get: function () { return new ResourceCommands_1.DeassignResourceCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"changeResourceColorCommand\", {\r\n get: function () { return new ResourcePropertiesCommands_1.ResourceColorCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"showTaskEditDialog\", {\r\n get: function () { return new TaskEditDialog_1.TaskEditDialogCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"showConstraintViolationDialog\", {\r\n get: function () { return new ConstraintViolationDialog_1.ConstraintViolationDialogCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"showConfirmationDialog\", {\r\n get: function () { return new ConfirmationDialog_1.ConfirmationDialog(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"showResourcesDialog\", {\r\n get: function () { return new ResourcesDialog_1.ResourcesDialogCommand(this.control); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n CommandManager.prototype.getCommand = function (key) {\r\n return this.commands[key];\r\n };\r\n CommandManager.prototype.createCommand = function (commandId, command) {\r\n this.commands[commandId] = command;\r\n };\r\n return CommandManager;\r\n}());\r\nexports.CommandManager = CommandManager;\r\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(5);\r\nvar TaskHistoryItem_1 = __webpack_require__(93);\r\nvar TaskDependencyHistoryItem_1 = __webpack_require__(19);\r\nvar ResourceHistoryItem_1 = __webpack_require__(27);\r\nvar ConfirmationDialog_1 = __webpack_require__(20);\r\nvar TaskCommandBase = (function (_super) {\r\n tslib_1.__extends(TaskCommandBase, _super);\r\n function TaskCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskCommandBase.prototype.getState = function () {\r\n var state = new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n state.visible = state.enabled && !this.control.taskEditController.dependencyId;\r\n return state;\r\n };\r\n return TaskCommandBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.TaskCommandBase = TaskCommandBase;\r\nvar CreateTaskCommand = (function (_super) {\r\n tslib_1.__extends(CreateTaskCommand, _super);\r\n function CreateTaskCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CreateTaskCommand.prototype.execute = function (start, end, title, parentId) {\r\n return _super.prototype.execute.call(this, start, end, title, parentId);\r\n };\r\n CreateTaskCommand.prototype.executeInternal = function (start, end, title, parentId) {\r\n if (!parentId) {\r\n var item = this.control.viewModel.findItem(this.control.currentSelectedTaskID);\r\n var selectedTask = item && item.task;\r\n if (selectedTask)\r\n parentId = selectedTask.parentId;\r\n }\r\n var referenceItem = this.control.viewModel.findItem(parentId) || this.control.viewModel.items[0];\r\n var referenceTask = referenceItem && referenceItem.task;\r\n if (!start)\r\n start = referenceTask ? new Date(referenceTask.start.getTime()) : new Date(this.control.range.start.getTime());\r\n if (!end)\r\n end = referenceTask ? new Date(referenceTask.end.getTime()) : new Date(this.control.range.end.getTime());\r\n title = title || \"New task\";\r\n this.history.addAndRedo(new TaskHistoryItem_1.CreateTaskHistoryItem(this.modelManipulator, start, end, title, parentId));\r\n return true;\r\n };\r\n CreateTaskCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowTaskInsert;\r\n };\r\n return CreateTaskCommand;\r\n}(TaskCommandBase));\r\nexports.CreateTaskCommand = CreateTaskCommand;\r\nvar CreateSubTaskCommand = (function (_super) {\r\n tslib_1.__extends(CreateSubTaskCommand, _super);\r\n function CreateSubTaskCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CreateSubTaskCommand.prototype.execute = function (parentId) {\r\n return _super.prototype.execute.call(this, parentId);\r\n };\r\n CreateSubTaskCommand.prototype.executeInternal = function (parentId) {\r\n parentId = parentId || this.control.currentSelectedTaskID;\r\n var selectedItem = this.control.viewModel.findItem(parentId);\r\n if (selectedItem.selected) {\r\n this.history.addAndRedo(new TaskHistoryItem_1.CreateTaskHistoryItem(this.modelManipulator, new Date(selectedItem.task.start.getTime()), new Date(selectedItem.task.end.getTime()), \"New task\", parentId));\r\n return true;\r\n }\r\n return false;\r\n };\r\n CreateSubTaskCommand.prototype.isEnabled = function () {\r\n var gantt = this.control;\r\n return _super.prototype.isEnabled.call(this) && gantt.settings.editing.allowTaskInsert && gantt.viewModel.hasTasks();\r\n };\r\n CreateSubTaskCommand.prototype.getState = function () {\r\n var state = _super.prototype.getState.call(this);\r\n var selectedItem = this.control.viewModel.findItem(this.control.currentSelectedTaskID);\r\n state.visible = state.visible && selectedItem && selectedItem.selected;\r\n return state;\r\n };\r\n return CreateSubTaskCommand;\r\n}(TaskCommandBase));\r\nexports.CreateSubTaskCommand = CreateSubTaskCommand;\r\nvar RemoveTaskCommand = (function (_super) {\r\n tslib_1.__extends(RemoveTaskCommand, _super);\r\n function RemoveTaskCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RemoveTaskCommand.prototype.execute = function (id, confirmRequired, historyItem) {\r\n var _this = this;\r\n if (confirmRequired === void 0) { confirmRequired = true; }\r\n if (confirmRequired) {\r\n this.control.commandManager.showConfirmationDialog.execute(new ConfirmationDialog_1.ConfirmationDialogParameters(ConfirmationDialog_1.ConfirmationType.TaskDelete, function () { _this.executeInternal(id, historyItem); }));\r\n return false;\r\n }\r\n else\r\n return _super.prototype.execute.call(this, id, historyItem);\r\n };\r\n RemoveTaskCommand.prototype.executeInternal = function (id, historyItem) {\r\n var _this = this;\r\n id = id || this.control.currentSelectedTaskID;\r\n this.control.viewModel.beginUpdate();\r\n var removeTaskHistoryItem = historyItem || new TaskHistoryItem_1.RemoveTaskHistoryItem(this.modelManipulator);\r\n removeTaskHistoryItem.addTask(id);\r\n var childTasks = this.control.viewModel.tasks.items.filter(function (t) { return t.parentId == id; });\r\n childTasks.forEach(function (t) { return new RemoveTaskCommand(_this.control).execute(t.internalId, false, removeTaskHistoryItem); });\r\n var item = this.control.viewModel.findItem(id);\r\n var parent = item && item.parent;\r\n var dependencies = this.control.viewModel.dependencies.items.filter(function (d) { return d.predecessorId == id || d.successorId == id; });\r\n if (dependencies.length)\r\n if (this.control.settings.editing.allowDependencyDelete) {\r\n dependencies = dependencies.filter(function (d) { return childTasks.filter(function (c) { return c.internalId == d.predecessorId || c.internalId == d.successorId; }).length == 0; });\r\n dependencies.forEach(function (d) { return removeTaskHistoryItem.add(new TaskDependencyHistoryItem_1.RemoveDependencyHistoryItem(_this.modelManipulator, d.internalId)); });\r\n }\r\n else\r\n return false;\r\n var assignments = this.control.viewModel.assignments.items.filter(function (a) { return a.taskId == id; });\r\n assignments.forEach(function (a) { return removeTaskHistoryItem.add(new ResourceHistoryItem_1.DeassignResourceHistoryItem(_this.modelManipulator, a.internalId)); });\r\n if (!historyItem)\r\n this.history.addAndRedo(removeTaskHistoryItem);\r\n this.updateParent(parent);\r\n this.control.viewModel.endUpdate();\r\n return true;\r\n };\r\n RemoveTaskCommand.prototype.updateParent = function (parent) {\r\n if (parent && parent.children.length > 0)\r\n this.control.validationController.updateParentsIfRequired(parent.children[0].task.internalId);\r\n };\r\n RemoveTaskCommand.prototype.isEnabled = function () {\r\n var gantt = this.control;\r\n return _super.prototype.isEnabled.call(this) && gantt.settings.editing.allowTaskDelete && gantt.viewModel.hasTasks();\r\n };\r\n return RemoveTaskCommand;\r\n}(TaskCommandBase));\r\nexports.RemoveTaskCommand = RemoveTaskCommand;\r\nvar TaskAddContextItemCommand = (function (_super) {\r\n tslib_1.__extends(TaskAddContextItemCommand, _super);\r\n function TaskAddContextItemCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskAddContextItemCommand.prototype.getState = function () {\r\n var state = _super.prototype.getState.call(this);\r\n state.visible = state.visible && this.control.settings.editing.allowTaskInsert;\r\n return state;\r\n };\r\n TaskAddContextItemCommand.prototype.execute = function () {\r\n return false;\r\n };\r\n return TaskAddContextItemCommand;\r\n}(TaskCommandBase));\r\nexports.TaskAddContextItemCommand = TaskAddContextItemCommand;\r\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(10);\r\nvar TaskDependencyHistoryItem_1 = __webpack_require__(19);\r\nvar CreateTaskHistoryItem = (function (_super) {\r\n tslib_1.__extends(CreateTaskHistoryItem, _super);\r\n function CreateTaskHistoryItem(modelManipulator, start, end, title, parentId) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.start = start;\r\n _this.end = end;\r\n _this.title = title;\r\n _this.parentId = parentId;\r\n return _this;\r\n }\r\n CreateTaskHistoryItem.prototype.redo = function () {\r\n this.taskId = this.modelManipulator.task.create(this.start, this.end, this.title, this.parentId, this.taskId ? this.taskId : null).internalId;\r\n };\r\n CreateTaskHistoryItem.prototype.undo = function () {\r\n this.modelManipulator.task.remove(this.taskId);\r\n };\r\n return CreateTaskHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.CreateTaskHistoryItem = CreateTaskHistoryItem;\r\nvar RemoveTaskHistoryItem = (function (_super) {\r\n tslib_1.__extends(RemoveTaskHistoryItem, _super);\r\n function RemoveTaskHistoryItem(modelManipulator) {\r\n var _this = _super.call(this) || this;\r\n _this.taskIds = [];\r\n _this.tasks = [];\r\n _this.modelManipulator = modelManipulator;\r\n return _this;\r\n }\r\n RemoveTaskHistoryItem.prototype.redo = function () {\r\n var _this = this;\r\n _super.prototype.redo.call(this);\r\n this.taskIds.forEach(function (id) {\r\n _this.tasks.push(_this.modelManipulator.task.remove(id));\r\n });\r\n };\r\n RemoveTaskHistoryItem.prototype.undo = function () {\r\n var _this = this;\r\n if (this.tasks.length) {\r\n var task_1 = this.tasks.shift();\r\n this.modelManipulator.task.create(task_1.start, task_1.end, task_1.title, task_1.parentId, task_1.internalId, function () {\r\n _this.modelManipulator.task.properties.progress.setValue(task_1.internalId, task_1.progress);\r\n if (task_1.color)\r\n _this.modelManipulator.task.properties.color.setValue(task_1.internalId, task_1.color);\r\n _this.tasks.length ? _this.undo() : _super.prototype.undo.call(_this);\r\n });\r\n }\r\n };\r\n RemoveTaskHistoryItem.prototype.undoItemsQuery = function () {\r\n while (this.tasks.length) {\r\n var task = this.tasks.shift();\r\n this.modelManipulator.task.create(task.start, task.end, task.title, task.parentId, task.internalId, function () { });\r\n this.modelManipulator.task.properties.progress.setValue(task.internalId, task.progress);\r\n if (task.color)\r\n this.modelManipulator.task.properties.color.setValue(task.internalId, task.color);\r\n }\r\n _super.prototype.undo.call(this);\r\n };\r\n RemoveTaskHistoryItem.prototype.addTask = function (taskId) {\r\n this.taskIds.push(taskId);\r\n };\r\n RemoveTaskHistoryItem.prototype.add = function (historyItem) {\r\n if (historyItem instanceof TaskDependencyHistoryItem_1.RemoveDependencyHistoryItem) {\r\n var item_1 = historyItem;\r\n if (!this.historyItems.filter(function (i) { return i instanceof TaskDependencyHistoryItem_1.RemoveDependencyHistoryItem && i.dependencyId == item_1.dependencyId; }).length)\r\n this.historyItems.push(item_1);\r\n }\r\n else\r\n _super.prototype.add.call(this, historyItem);\r\n };\r\n return RemoveTaskHistoryItem;\r\n}(HistoryItem_1.CompositionHistoryItem));\r\nexports.RemoveTaskHistoryItem = RemoveTaskHistoryItem;\r\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(5);\r\nvar TaskPropertiesHistoryItem_1 = __webpack_require__(28);\r\nvar ConstraintViolationDialog_1 = __webpack_require__(42);\r\nvar DateRange_1 = __webpack_require__(7);\r\nvar TaskPropertyCommandBase = (function (_super) {\r\n tslib_1.__extends(TaskPropertyCommandBase, _super);\r\n function TaskPropertyCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskPropertyCommandBase.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n TaskPropertyCommandBase.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowTaskUpdate;\r\n };\r\n return TaskPropertyCommandBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.TaskPropertyCommandBase = TaskPropertyCommandBase;\r\nvar TaskTitleCommand = (function (_super) {\r\n tslib_1.__extends(TaskTitleCommand, _super);\r\n function TaskTitleCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskTitleCommand.prototype.execute = function (id, value) {\r\n return _super.prototype.execute.call(this, id, value);\r\n };\r\n TaskTitleCommand.prototype.executeInternal = function (id, value) {\r\n var oldTitle = this.control.viewModel.tasks.getItemById(id).title;\r\n if (oldTitle == value)\r\n return false;\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskTitleHistoryItem(this.modelManipulator, id, value));\r\n return true;\r\n };\r\n return TaskTitleCommand;\r\n}(TaskPropertyCommandBase));\r\nexports.TaskTitleCommand = TaskTitleCommand;\r\nvar TaskDescriptionCommand = (function (_super) {\r\n tslib_1.__extends(TaskDescriptionCommand, _super);\r\n function TaskDescriptionCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskDescriptionCommand.prototype.execute = function (id, value) {\r\n return _super.prototype.execute.call(this, id, value);\r\n };\r\n TaskDescriptionCommand.prototype.executeInternal = function (id, value) {\r\n var oldDescription = this.control.viewModel.tasks.getItemById(id).description;\r\n if (oldDescription == value)\r\n return false;\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskDesriptionHistoryItem(this.modelManipulator, id, value));\r\n return true;\r\n };\r\n return TaskDescriptionCommand;\r\n}(TaskPropertyCommandBase));\r\nexports.TaskDescriptionCommand = TaskDescriptionCommand;\r\nvar TaskProgressCommand = (function (_super) {\r\n tslib_1.__extends(TaskProgressCommand, _super);\r\n function TaskProgressCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskProgressCommand.prototype.execute = function (id, value) {\r\n return _super.prototype.execute.call(this, id, value);\r\n };\r\n TaskProgressCommand.prototype.executeInternal = function (id, value) {\r\n var oldProgress = this.control.viewModel.tasks.getItemById(id).progress;\r\n if (oldProgress == value)\r\n return false;\r\n this.control.history.beginTransaction();\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskProgressHistoryItem(this.modelManipulator, id, value));\r\n this.validationController.updateParentsIfRequired(id);\r\n this.control.history.endTransaction();\r\n return true;\r\n };\r\n return TaskProgressCommand;\r\n}(TaskPropertyCommandBase));\r\nexports.TaskProgressCommand = TaskProgressCommand;\r\nvar TaskColorCommand = (function (_super) {\r\n tslib_1.__extends(TaskColorCommand, _super);\r\n function TaskColorCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskColorCommand.prototype.execute = function (id, value) {\r\n return _super.prototype.execute.call(this, id, value);\r\n };\r\n TaskColorCommand.prototype.executeInternal = function (id, value) {\r\n var oldColor = this.control.viewModel.tasks.getItemById(id).color;\r\n if (oldColor == value)\r\n return false;\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskColorHistoryItem(this.modelManipulator, id, value));\r\n return true;\r\n };\r\n return TaskColorCommand;\r\n}(TaskPropertyCommandBase));\r\nexports.TaskColorCommand = TaskColorCommand;\r\nvar TaskPropertyCommandValidation = (function (_super) {\r\n tslib_1.__extends(TaskPropertyCommandValidation, _super);\r\n function TaskPropertyCommandValidation() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskPropertyCommandValidation.prototype.executeInternal = function () {\r\n var _this = this;\r\n var parameters = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n parameters[_i] = arguments[_i];\r\n }\r\n var validationErrors = this.control.settings.validation.validateDependencies ? this.validate.apply(this, parameters) : [];\r\n var criticalErrors = validationErrors.filter(function (e) { return e.critical; });\r\n if (!validationErrors.length || validationErrors.length > 1 && criticalErrors.length === 0)\r\n return this.executeCore.apply(this, parameters);\r\n else if (validationErrors.length === 1)\r\n this.control.commandManager.showConstraintViolationDialog.execute(new ConstraintViolationDialog_1.ConstraintViolationDialogParameters(validationErrors[0], function () { _this.executeCore.apply(_this, parameters); }));\r\n return false;\r\n };\r\n ;\r\n TaskPropertyCommandValidation.prototype.executeCore = function () {\r\n var parameters = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n parameters[_i] = arguments[_i];\r\n }\r\n return false;\r\n };\r\n TaskPropertyCommandValidation.prototype.validate = function () {\r\n var parameters = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n parameters[_i] = arguments[_i];\r\n }\r\n return [];\r\n };\r\n return TaskPropertyCommandValidation;\r\n}(TaskPropertyCommandBase));\r\nexports.TaskPropertyCommandValidation = TaskPropertyCommandValidation;\r\nvar TaskStartCommand = (function (_super) {\r\n tslib_1.__extends(TaskStartCommand, _super);\r\n function TaskStartCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskStartCommand.prototype.execute = function (id, value) {\r\n return _super.prototype.execute.call(this, id, value);\r\n };\r\n TaskStartCommand.prototype.executeInternal = function (id, value) {\r\n return _super.prototype.executeInternal.call(this, id, value);\r\n };\r\n TaskStartCommand.prototype.executeCore = function (id, value) {\r\n var oldStart = this.control.viewModel.tasks.getItemById(id).start;\r\n if (oldStart.getTime() == value.getTime())\r\n return false;\r\n this.control.history.beginTransaction();\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(this.modelManipulator, id, value));\r\n if (this.control.settings.validation.validateDependencies)\r\n this.control.validationController.moveStartDependTasks(id, oldStart);\r\n this.validationController.updateParentsIfRequired(id);\r\n this.control.history.endTransaction();\r\n var minStartTask = this.control.viewModel.tasks.items.reduce(function (prev, curr) {\r\n return prev.start.getTime() < curr.start.getTime() ? prev : curr;\r\n });\r\n if (minStartTask.start < this.control.dataRange.start) {\r\n this.control.dataRange.start = minStartTask.start;\r\n this.control.resetAndUpdate();\r\n }\r\n return true;\r\n };\r\n TaskStartCommand.prototype.validate = function (id, value) {\r\n return this.control.validationController.checkStartDependencies(id, value);\r\n };\r\n return TaskStartCommand;\r\n}(TaskPropertyCommandValidation));\r\nexports.TaskStartCommand = TaskStartCommand;\r\nvar TaskEndCommand = (function (_super) {\r\n tslib_1.__extends(TaskEndCommand, _super);\r\n function TaskEndCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskEndCommand.prototype.execute = function (id, value) {\r\n return _super.prototype.execute.call(this, id, value);\r\n };\r\n TaskEndCommand.prototype.executeInternal = function (id, value) {\r\n return _super.prototype.executeInternal.call(this, id, value);\r\n };\r\n TaskEndCommand.prototype.executeCore = function (id, value) {\r\n var oldEnd = this.control.viewModel.tasks.getItemById(id).end;\r\n if (oldEnd.getTime() == value.getTime())\r\n return false;\r\n this.control.history.beginTransaction();\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(this.modelManipulator, id, value));\r\n if (this.control.settings.validation.validateDependencies)\r\n this.control.validationController.moveEndDependTasks(id, oldEnd);\r\n this.validationController.updateParentsIfRequired(id);\r\n this.control.history.endTransaction();\r\n var maxEndTask = this.control.viewModel.tasks.items.reduce(function (prev, curr) {\r\n return prev.end.getTime() > curr.end.getTime() ? prev : curr;\r\n });\r\n if (maxEndTask.end > this.control.dataRange.end) {\r\n this.control.dataRange.end = maxEndTask.end;\r\n this.control.resetAndUpdate();\r\n }\r\n return true;\r\n };\r\n TaskEndCommand.prototype.validate = function (id, value) {\r\n return this.control.validationController.checkEndDependencies(id, value);\r\n };\r\n return TaskEndCommand;\r\n}(TaskPropertyCommandValidation));\r\nexports.TaskEndCommand = TaskEndCommand;\r\nvar TaskMoveCommand = (function (_super) {\r\n tslib_1.__extends(TaskMoveCommand, _super);\r\n function TaskMoveCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskMoveCommand.prototype.execute = function (id, start, end) {\r\n return _super.prototype.execute.call(this, id, start, end);\r\n };\r\n TaskMoveCommand.prototype.executeInternal = function (id, start, end) {\r\n return _super.prototype.executeInternal.call(this, id, start, end);\r\n };\r\n TaskMoveCommand.prototype.executeCore = function (id, start, end) {\r\n var task = this.control.viewModel.tasks.getItemById(id);\r\n var oldDateRange = new DateRange_1.DateRange(new Date(task.start.getTime()), new Date(task.end.getTime()));\r\n this.control.history.beginTransaction();\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskMoveHistoryItem(this.modelManipulator, id, new DateRange_1.DateRange(start, end)));\r\n this.validationController.correctOnMoving(id, start.getTime() - oldDateRange.start.getTime());\r\n if (this.control.settings.validation.validateDependencies) {\r\n this.control.validationController.moveStartDependTasks(id, oldDateRange.start);\r\n this.control.validationController.moveEndDependTasks(id, oldDateRange.end);\r\n }\r\n this.control.history.endTransaction();\r\n var maxEndTask = this.control.viewModel.tasks.items.reduce(function (prev, curr) {\r\n return prev.end.getTime() > curr.end.getTime() ? prev : curr;\r\n });\r\n if (maxEndTask.end > this.control.dataRange.end) {\r\n this.control.dataRange.end = maxEndTask.end;\r\n this.control.resetAndUpdate();\r\n }\r\n var minStartTask = this.control.viewModel.tasks.items.reduce(function (prev, curr) {\r\n return prev.start.getTime() < curr.start.getTime() ? prev : curr;\r\n });\r\n if (minStartTask.start < this.control.dataRange.start) {\r\n this.control.dataRange.start = minStartTask.start;\r\n this.control.resetAndUpdate();\r\n }\r\n return true;\r\n };\r\n TaskMoveCommand.prototype.validate = function (id, start, end) {\r\n var startErrors = this.control.validationController.checkStartDependencies(id, start);\r\n var endErrors = this.control.validationController.checkEndDependencies(id, end);\r\n return startErrors.concat(endErrors);\r\n };\r\n return TaskMoveCommand;\r\n}(TaskPropertyCommandValidation));\r\nexports.TaskMoveCommand = TaskMoveCommand;\r\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(5);\r\nvar TaskDependencyHistoryItem_1 = __webpack_require__(19);\r\nvar Dependency_1 = __webpack_require__(12);\r\nvar ConfirmationDialog_1 = __webpack_require__(20);\r\nvar DependencyCommandBase = (function (_super) {\r\n tslib_1.__extends(DependencyCommandBase, _super);\r\n function DependencyCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DependencyCommandBase.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n return DependencyCommandBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.DependencyCommandBase = DependencyCommandBase;\r\nvar CreateDependencyCommand = (function (_super) {\r\n tslib_1.__extends(CreateDependencyCommand, _super);\r\n function CreateDependencyCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CreateDependencyCommand.prototype.execute = function (predecessorId, successorId, type) {\r\n return _super.prototype.execute.call(this, predecessorId, successorId, type);\r\n };\r\n CreateDependencyCommand.prototype.executeInternal = function (predecessorId, successorId, type) {\r\n if (this.control.viewModel.dependencies.items.filter(function (d) { return (d.predecessorId == predecessorId && d.successorId == successorId) ||\r\n (d.successorId == predecessorId && d.predecessorId == successorId); }).length)\r\n return false;\r\n this.control.history.beginTransaction();\r\n this.history.addAndRedo(new TaskDependencyHistoryItem_1.InsertDependencyHistoryItem(this.modelManipulator, predecessorId, successorId, type));\r\n if (this.control.settings.validation.validateDependencies) {\r\n var predecessorTask = this.control.viewModel.tasks.getItemById(predecessorId);\r\n if (type === Dependency_1.DependencyType.SF || type === Dependency_1.DependencyType.SS)\r\n this.control.validationController.moveStartDependTasks(predecessorId, predecessorTask.start);\r\n else\r\n this.control.validationController.moveEndDependTasks(predecessorId, predecessorTask.end);\r\n }\r\n this.control.history.endTransaction();\r\n return true;\r\n };\r\n CreateDependencyCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowDependencyInsert;\r\n };\r\n return CreateDependencyCommand;\r\n}(DependencyCommandBase));\r\nexports.CreateDependencyCommand = CreateDependencyCommand;\r\nvar RemoveDependencyCommand = (function (_super) {\r\n tslib_1.__extends(RemoveDependencyCommand, _super);\r\n function RemoveDependencyCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RemoveDependencyCommand.prototype.execute = function (id, confirmRequired) {\r\n var _this = this;\r\n if (confirmRequired === void 0) { confirmRequired = true; }\r\n if (confirmRequired) {\r\n this.control.commandManager.showConfirmationDialog.execute(new ConfirmationDialog_1.ConfirmationDialogParameters(ConfirmationDialog_1.ConfirmationType.DependencyDelete, function () { _this.executeInternal(id); }));\r\n return false;\r\n }\r\n else\r\n return _super.prototype.execute.call(this, id);\r\n };\r\n RemoveDependencyCommand.prototype.executeInternal = function (id) {\r\n id = id || this.control.taskEditController.dependencyId;\r\n if (id != null) {\r\n var dependency = this.control.viewModel.dependencies.items.filter(function (d) { return d.internalId == id; })[0];\r\n if (dependency) {\r\n this.history.addAndRedo(new TaskDependencyHistoryItem_1.RemoveDependencyHistoryItem(this.modelManipulator, id));\r\n if (id === this.control.taskEditController.dependencyId)\r\n this.control.taskEditController.selectDependency(null);\r\n this.control.barManager.updateItemsState([]);\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n RemoveDependencyCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowDependencyDelete;\r\n };\r\n RemoveDependencyCommand.prototype.getState = function () {\r\n var state = _super.prototype.getState.call(this);\r\n state.visible = state.enabled && this.control.taskEditController.dependencyId != null;\r\n return state;\r\n };\r\n return RemoveDependencyCommand;\r\n}(DependencyCommandBase));\r\nexports.RemoveDependencyCommand = RemoveDependencyCommand;\r\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(5);\r\nvar ResourceHistoryItem_1 = __webpack_require__(27);\r\nvar ResourceCommandBase = (function (_super) {\r\n tslib_1.__extends(ResourceCommandBase, _super);\r\n function ResourceCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourceCommandBase.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n return ResourceCommandBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.ResourceCommandBase = ResourceCommandBase;\r\nvar CreateResourceCommand = (function (_super) {\r\n tslib_1.__extends(CreateResourceCommand, _super);\r\n function CreateResourceCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CreateResourceCommand.prototype.execute = function (text) {\r\n return _super.prototype.execute.call(this, text);\r\n };\r\n CreateResourceCommand.prototype.executeInternal = function (text) {\r\n this.history.addAndRedo(new ResourceHistoryItem_1.CreateResourceHistoryItem(this.modelManipulator, text));\r\n return true;\r\n };\r\n CreateResourceCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowResourceInsert;\r\n };\r\n return CreateResourceCommand;\r\n}(ResourceCommandBase));\r\nexports.CreateResourceCommand = CreateResourceCommand;\r\nvar RemoveResourceCommand = (function (_super) {\r\n tslib_1.__extends(RemoveResourceCommand, _super);\r\n function RemoveResourceCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RemoveResourceCommand.prototype.execute = function (id) {\r\n return _super.prototype.execute.call(this, id);\r\n };\r\n RemoveResourceCommand.prototype.executeInternal = function (id) {\r\n var _this = this;\r\n var resource = this.control.viewModel.resources.items.filter(function (r) { return r.internalId == id; })[0];\r\n if (resource) {\r\n var removeResourceHistoryItem_1 = new ResourceHistoryItem_1.RemoveResourceHistoryItem(this.modelManipulator, id);\r\n var assignments = this.control.viewModel.assignments.items.filter(function (a) { return a.resourceId == id; });\r\n assignments.forEach(function (a) { return removeResourceHistoryItem_1.add(new ResourceHistoryItem_1.DeassignResourceHistoryItem(_this.modelManipulator, a.internalId)); });\r\n this.history.addAndRedo(removeResourceHistoryItem_1);\r\n return true;\r\n }\r\n return false;\r\n };\r\n RemoveResourceCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowResourceDelete;\r\n };\r\n return RemoveResourceCommand;\r\n}(ResourceCommandBase));\r\nexports.RemoveResourceCommand = RemoveResourceCommand;\r\nvar AssignResourceCommand = (function (_super) {\r\n tslib_1.__extends(AssignResourceCommand, _super);\r\n function AssignResourceCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AssignResourceCommand.prototype.execute = function (resourceId, taskId) {\r\n return _super.prototype.execute.call(this, resourceId, taskId);\r\n };\r\n AssignResourceCommand.prototype.executeInternal = function (resourceId, taskId) {\r\n var assignment = this.control.viewModel.assignments.items.filter(function (r) { return r.resourceId == resourceId && r.taskId == taskId; })[0];\r\n if (!assignment) {\r\n this.history.addAndRedo(new ResourceHistoryItem_1.AssignResourceHistoryItem(this.modelManipulator, resourceId, taskId));\r\n return true;\r\n }\r\n return false;\r\n };\r\n return AssignResourceCommand;\r\n}(ResourceCommandBase));\r\nexports.AssignResourceCommand = AssignResourceCommand;\r\nvar DeassignResourceCommand = (function (_super) {\r\n tslib_1.__extends(DeassignResourceCommand, _super);\r\n function DeassignResourceCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DeassignResourceCommand.prototype.execute = function (assignmentId) {\r\n return _super.prototype.execute.call(this, assignmentId);\r\n };\r\n DeassignResourceCommand.prototype.executeInternal = function (assignmentId) {\r\n var assignment = this.control.viewModel.assignments.items.filter(function (r) { return r.internalId == assignmentId; })[0];\r\n if (assignment) {\r\n this.history.addAndRedo(new ResourceHistoryItem_1.DeassignResourceHistoryItem(this.modelManipulator, assignmentId));\r\n return true;\r\n }\r\n return false;\r\n };\r\n return DeassignResourceCommand;\r\n}(ResourceCommandBase));\r\nexports.DeassignResourceCommand = DeassignResourceCommand;\r\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DialogBase_1 = __webpack_require__(21);\r\nvar TaskPropertiesHistoryItem_1 = __webpack_require__(28);\r\nvar ResourceCollection_1 = __webpack_require__(22);\r\nvar ResourceHistoryItem_1 = __webpack_require__(27);\r\nvar CommandBase_1 = __webpack_require__(5);\r\nvar TaskEditDialogCommand = (function (_super) {\r\n tslib_1.__extends(TaskEditDialogCommand, _super);\r\n function TaskEditDialogCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskEditDialogCommand.prototype.applyParameters = function (newParameters, oldParameters) {\r\n this.history.beginTransaction();\r\n if (newParameters.title != oldParameters.title)\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskTitleHistoryItem(this.modelManipulator, oldParameters.id, newParameters.title));\r\n if (newParameters.progress != oldParameters.progress)\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskProgressHistoryItem(this.modelManipulator, oldParameters.id, newParameters.progress));\r\n if (newParameters.end.getTime() < newParameters.start.getTime())\r\n newParameters.end = newParameters.start;\r\n if (newParameters.start != oldParameters.start) {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(this.modelManipulator, oldParameters.id, newParameters.start));\r\n if (this.control.settings.validation.validateDependencies)\r\n this.control.validationController.moveStartDependTasks(oldParameters.id, oldParameters.start);\r\n }\r\n if (newParameters.end != oldParameters.end) {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(this.modelManipulator, oldParameters.id, newParameters.end));\r\n if (this.control.settings.validation.validateDependencies)\r\n this.control.validationController.moveEndDependTasks(oldParameters.id, oldParameters.end);\r\n }\r\n for (var i = 0; i < newParameters.assigned.length; i++) {\r\n var resource = oldParameters.assigned.getItemById(newParameters.assigned.getItem(i).internalId);\r\n if (!resource)\r\n this.history.addAndRedo(new ResourceHistoryItem_1.AssignResourceHistoryItem(this.modelManipulator, newParameters.assigned.getItem(i).internalId, oldParameters.id));\r\n }\r\n var _loop_1 = function (i) {\r\n var assigned = oldParameters.assigned.getItem(i);\r\n var resource = newParameters.assigned.getItemById(assigned.internalId);\r\n if (!resource) {\r\n var assignment = this_1.control.viewModel.assignments.items.filter(function (assignment) { return assignment.resourceId == assigned.internalId && assignment.taskId == oldParameters.id; })[0];\r\n this_1.history.addAndRedo(new ResourceHistoryItem_1.DeassignResourceHistoryItem(this_1.modelManipulator, assignment.internalId));\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < oldParameters.assigned.length; i++) {\r\n _loop_1(i);\r\n }\r\n var updateParents = newParameters.start != oldParameters.start || newParameters.end != oldParameters.end || newParameters.progress != oldParameters.progress || newParameters.title != oldParameters.title;\r\n if (updateParents)\r\n this.validationController.updateParentsIfRequired(oldParameters.id);\r\n this.history.endTransaction();\r\n return false;\r\n };\r\n TaskEditDialogCommand.prototype.createParameters = function (options) {\r\n options = options || this.control.viewModel.tasks.getItemById(this.control.currentSelectedTaskID);\r\n var param = new TaskEditParameters();\r\n param.id = options.internalId;\r\n param.title = options.title;\r\n param.progress = options.progress;\r\n param.start = options.start;\r\n param.end = options.end;\r\n param.assigned = this.control.viewModel.getAssignedResources(options);\r\n param.resources = new ResourceCollection_1.ResourceCollection();\r\n param.resources.addRange(this.control.viewModel.resources.items);\r\n param.showResourcesDialogCommand = this.control.commandManager.showResourcesDialog;\r\n param.enableEdit = this.isTaskEditEnabled();\r\n param.enableRangeEdit = this.isTaskRangeEditEnabled(options);\r\n return param;\r\n };\r\n TaskEditDialogCommand.prototype.isTaskEditEnabled = function () {\r\n var settings = this.control.settings;\r\n return settings.editing.enabled && settings.editing.allowTaskUpdate;\r\n };\r\n TaskEditDialogCommand.prototype.isTaskRangeEditEnabled = function (task) {\r\n return !this.control.viewModel.isTaskToCalculateByChildren(task.internalId);\r\n };\r\n TaskEditDialogCommand.prototype.isEnabled = function () {\r\n return this.control.viewModel.hasTasks();\r\n };\r\n TaskEditDialogCommand.prototype.getState = function () {\r\n var state = new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n state.visible = state.enabled && !this.control.taskEditController.dependencyId;\r\n return state;\r\n };\r\n TaskEditDialogCommand.prototype.getDialogName = function () {\r\n return \"TaskEdit\";\r\n };\r\n return TaskEditDialogCommand;\r\n}(DialogBase_1.DialogBase));\r\nexports.TaskEditDialogCommand = TaskEditDialogCommand;\r\nvar TaskEditParameters = (function (_super) {\r\n tslib_1.__extends(TaskEditParameters, _super);\r\n function TaskEditParameters() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.enableEdit = true;\r\n _this.enableRangeEdit = true;\r\n return _this;\r\n }\r\n TaskEditParameters.prototype.clone = function () {\r\n var clone = new TaskEditParameters();\r\n clone.id = this.id;\r\n clone.title = this.title;\r\n clone.progress = this.progress;\r\n clone.start = this.start;\r\n clone.end = this.end;\r\n clone.assigned = new ResourceCollection_1.ResourceCollection();\r\n clone.assigned.addRange(this.assigned.items);\r\n clone.resources = new ResourceCollection_1.ResourceCollection();\r\n clone.resources.addRange(this.resources.items);\r\n clone.showResourcesDialogCommand = this.showResourcesDialogCommand;\r\n clone.enableEdit = this.enableEdit;\r\n clone.enableRangeEdit = this.enableRangeEdit;\r\n return clone;\r\n };\r\n return TaskEditParameters;\r\n}(DialogBase_1.DialogParametersBase));\r\nexports.TaskEditParameters = TaskEditParameters;\r\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DialogBase_1 = __webpack_require__(21);\r\nvar ResourceCollection_1 = __webpack_require__(22);\r\nvar ConfirmationDialog_1 = __webpack_require__(20);\r\nvar ResourcesDialogCommand = (function (_super) {\r\n tslib_1.__extends(ResourcesDialogCommand, _super);\r\n function ResourcesDialogCommand() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.resourcesForDelete = [];\r\n return _this;\r\n }\r\n ResourcesDialogCommand.prototype.applyParameters = function (newParameters, oldParameters) {\r\n this.history.beginTransaction();\r\n for (var i = 0; i < newParameters.resources.length; i++) {\r\n var resource = oldParameters.resources.getItemById(newParameters.resources.getItem(i).internalId);\r\n if (!resource)\r\n this.control.commandManager.createResourceCommand.execute(newParameters.resources.getItem(i).text);\r\n }\r\n for (var i = 0; i < oldParameters.resources.length; i++) {\r\n var resource = newParameters.resources.getItemById(oldParameters.resources.getItem(i).internalId);\r\n if (!resource)\r\n this.resourcesForDelete.push(oldParameters.resources.getItem(i));\r\n }\r\n this.history.endTransaction();\r\n return false;\r\n };\r\n ResourcesDialogCommand.prototype.createParameters = function (callBack) {\r\n this.callBack = callBack;\r\n var param = new ResourcesDialogParameters();\r\n param.resources = new ResourceCollection_1.ResourceCollection();\r\n param.resources.addRange(this.control.viewModel.resources.items);\r\n return param;\r\n };\r\n ResourcesDialogCommand.prototype.afterClosing = function () {\r\n var _this = this;\r\n if (this.resourcesForDelete.length) {\r\n var confirmationDialog = this.control.commandManager.showConfirmationDialog;\r\n var confirmationDialogParameters = new ConfirmationDialog_1.ConfirmationDialogParameters(ConfirmationDialog_1.ConfirmationType.ResourcesDelete, function () {\r\n _this.history.beginTransaction();\r\n for (var i = 0; i < _this.resourcesForDelete.length; i++)\r\n _this.control.commandManager.removeResourceCommand.execute(_this.resourcesForDelete[i].internalId);\r\n _this.history.endTransaction();\r\n });\r\n confirmationDialogParameters.message = this.resourcesForDelete.reduce(function (a, b) { return a.concat([b.text]); }, []).join(\", \");\r\n if (this.callBack)\r\n confirmationDialog.afterClosing = function () { return _this.callBack(); };\r\n confirmationDialog.execute(confirmationDialogParameters);\r\n }\r\n else if (this.callBack)\r\n this.callBack();\r\n };\r\n ResourcesDialogCommand.prototype.getDialogName = function () {\r\n return \"Resources\";\r\n };\r\n return ResourcesDialogCommand;\r\n}(DialogBase_1.DialogBase));\r\nexports.ResourcesDialogCommand = ResourcesDialogCommand;\r\nvar ResourcesDialogParameters = (function (_super) {\r\n tslib_1.__extends(ResourcesDialogParameters, _super);\r\n function ResourcesDialogParameters() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourcesDialogParameters.prototype.clone = function () {\r\n var clone = new ResourcesDialogParameters();\r\n clone.resources = new ResourceCollection_1.ResourceCollection();\r\n clone.resources.addRange(this.resources.items);\r\n return clone;\r\n };\r\n return ResourcesDialogParameters;\r\n}(DialogBase_1.DialogParametersBase));\r\nexports.ResourcesDialogParameters = ResourcesDialogParameters;\r\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar GanttClientCommand;\r\n(function (GanttClientCommand) {\r\n GanttClientCommand[GanttClientCommand[\"CreateTask\"] = 0] = \"CreateTask\";\r\n GanttClientCommand[GanttClientCommand[\"CreateSubTask\"] = 1] = \"CreateSubTask\";\r\n GanttClientCommand[GanttClientCommand[\"RemoveTask\"] = 2] = \"RemoveTask\";\r\n GanttClientCommand[GanttClientCommand[\"RemoveDependency\"] = 3] = \"RemoveDependency\";\r\n GanttClientCommand[GanttClientCommand[\"TaskInformation\"] = 4] = \"TaskInformation\";\r\n GanttClientCommand[GanttClientCommand[\"TaskAddContextItem\"] = 5] = \"TaskAddContextItem\";\r\n GanttClientCommand[GanttClientCommand[\"Undo\"] = 6] = \"Undo\";\r\n GanttClientCommand[GanttClientCommand[\"Redo\"] = 7] = \"Redo\";\r\n GanttClientCommand[GanttClientCommand[\"ZoomIn\"] = 8] = \"ZoomIn\";\r\n GanttClientCommand[GanttClientCommand[\"ZoomOut\"] = 9] = \"ZoomOut\";\r\n GanttClientCommand[GanttClientCommand[\"FullScreen\"] = 10] = \"FullScreen\";\r\n GanttClientCommand[GanttClientCommand[\"CollapseAll\"] = 11] = \"CollapseAll\";\r\n GanttClientCommand[GanttClientCommand[\"ExpandAll\"] = 12] = \"ExpandAll\";\r\n})(GanttClientCommand = exports.GanttClientCommand || (exports.GanttClientCommand = {}));\r\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(5);\r\nvar UndoCommand = (function (_super) {\r\n tslib_1.__extends(UndoCommand, _super);\r\n function UndoCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n UndoCommand.prototype.getState = function () {\r\n var state = new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n state.visible = this.control.settings.editing.enabled;\r\n return state;\r\n };\r\n UndoCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n UndoCommand.prototype.executeInternal = function () {\r\n this.history.undo();\r\n return true;\r\n };\r\n UndoCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.history.canUndo();\r\n };\r\n return UndoCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.UndoCommand = UndoCommand;\r\nvar RedoCommand = (function (_super) {\r\n tslib_1.__extends(RedoCommand, _super);\r\n function RedoCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RedoCommand.prototype.getState = function () {\r\n var state = new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n state.visible = this.control.settings.editing.enabled;\r\n return state;\r\n };\r\n RedoCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n RedoCommand.prototype.executeInternal = function () {\r\n this.history.redo();\r\n return true;\r\n };\r\n RedoCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.history.canRedo();\r\n };\r\n return RedoCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.RedoCommand = RedoCommand;\r\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(5);\r\nvar ZoomInCommand = (function (_super) {\r\n tslib_1.__extends(ZoomInCommand, _super);\r\n function ZoomInCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ZoomInCommand.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(true);\r\n };\r\n ZoomInCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n ZoomInCommand.prototype.executeInternal = function () {\r\n this.control.zoomIn();\r\n return true;\r\n };\r\n return ZoomInCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.ZoomInCommand = ZoomInCommand;\r\nvar ZoomOutCommand = (function (_super) {\r\n tslib_1.__extends(ZoomOutCommand, _super);\r\n function ZoomOutCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ZoomOutCommand.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(true);\r\n };\r\n ZoomOutCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n ZoomOutCommand.prototype.executeInternal = function () {\r\n this.control.zoomOut();\r\n return true;\r\n };\r\n return ZoomOutCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.ZoomOutCommand = ZoomOutCommand;\r\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(5);\r\nvar ToggleFullScreenCommand = (function (_super) {\r\n tslib_1.__extends(ToggleFullScreenCommand, _super);\r\n function ToggleFullScreenCommand() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.isInFullScreenMode = false;\r\n _this.fullScreenTempVars = {};\r\n return _this;\r\n }\r\n ToggleFullScreenCommand.prototype.getState = function () {\r\n var state = new CommandBase_1.SimpleCommandState(true);\r\n state.value = this.control.fullScreenModeHelper.isInFullScreenMode;\r\n return state;\r\n };\r\n ToggleFullScreenCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n ToggleFullScreenCommand.prototype.executeInternal = function () {\r\n this.control.fullScreenModeHelper.toggle();\r\n return true;\r\n };\r\n return ToggleFullScreenCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.ToggleFullScreenCommand = ToggleFullScreenCommand;\r\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(5);\r\nvar CollapseAllCommand = (function (_super) {\r\n tslib_1.__extends(CollapseAllCommand, _super);\r\n function CollapseAllCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CollapseAllCommand.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n CollapseAllCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n CollapseAllCommand.prototype.executeInternal = function () {\r\n this.control.ganttOwner.collapseAll();\r\n return true;\r\n };\r\n CollapseAllCommand.prototype.isEnabled = function () {\r\n return true;\r\n };\r\n return CollapseAllCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.CollapseAllCommand = CollapseAllCommand;\r\nvar ExpandAllCommand = (function (_super) {\r\n tslib_1.__extends(ExpandAllCommand, _super);\r\n function ExpandAllCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ExpandAllCommand.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n ExpandAllCommand.prototype.execute = function () {\r\n return _super.prototype.execute.call(this);\r\n };\r\n ExpandAllCommand.prototype.executeInternal = function () {\r\n this.control.ganttOwner.expandAll();\r\n return true;\r\n };\r\n ExpandAllCommand.prototype.isEnabled = function () {\r\n return true;\r\n };\r\n return ExpandAllCommand;\r\n}(CommandBase_1.CommandBase));\r\nexports.ExpandAllCommand = ExpandAllCommand;\r\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(5);\r\nvar ResourcePropertiesHistoryItem_1 = __webpack_require__(105);\r\nvar ResourcePropertyCommandBase = (function (_super) {\r\n tslib_1.__extends(ResourcePropertyCommandBase, _super);\r\n function ResourcePropertyCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourcePropertyCommandBase.prototype.getState = function () {\r\n return new CommandBase_1.SimpleCommandState(this.isEnabled());\r\n };\r\n ResourcePropertyCommandBase.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowResourceUpdate;\r\n };\r\n return ResourcePropertyCommandBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.ResourcePropertyCommandBase = ResourcePropertyCommandBase;\r\nvar ResourceColorCommand = (function (_super) {\r\n tslib_1.__extends(ResourceColorCommand, _super);\r\n function ResourceColorCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourceColorCommand.prototype.execute = function (id, value) {\r\n return _super.prototype.execute.call(this, id, value);\r\n };\r\n ResourceColorCommand.prototype.executeInternal = function (id, value) {\r\n var oldColor = this.control.viewModel.resources.getItemById(id).color;\r\n if (oldColor == value)\r\n return false;\r\n this.history.addAndRedo(new ResourcePropertiesHistoryItem_1.ResourceColorHistoryItem(this.modelManipulator, id, value));\r\n return true;\r\n };\r\n return ResourceColorCommand;\r\n}(ResourcePropertyCommandBase));\r\nexports.ResourceColorCommand = ResourceColorCommand;\r\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(10);\r\nvar ResourcePropertiesHistoryItemBase = (function (_super) {\r\n tslib_1.__extends(ResourcePropertiesHistoryItemBase, _super);\r\n function ResourcePropertiesHistoryItemBase(modelManipulator, resourceId, newValue) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.resourceId = resourceId;\r\n _this.newValue = newValue;\r\n return _this;\r\n }\r\n ResourcePropertiesHistoryItemBase.prototype.redo = function () {\r\n this.oldState = this.getPropertiesManipulator().setValue(this.resourceId, this.newValue);\r\n };\r\n ResourcePropertiesHistoryItemBase.prototype.undo = function () {\r\n this.getPropertiesManipulator().restoreValue(this.oldState);\r\n };\r\n ResourcePropertiesHistoryItemBase.prototype.getPropertiesManipulator = function () {\r\n throw new Error(\"Not Implemented\");\r\n };\r\n return ResourcePropertiesHistoryItemBase;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ResourcePropertiesHistoryItemBase = ResourcePropertiesHistoryItemBase;\r\nvar ResourceColorHistoryItem = (function (_super) {\r\n tslib_1.__extends(ResourceColorHistoryItem, _super);\r\n function ResourceColorHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ResourceColorHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.resource.properties.color;\r\n };\r\n return ResourceColorHistoryItem;\r\n}(ResourcePropertiesHistoryItemBase));\r\nexports.ResourceColorHistoryItem = ResourceColorHistoryItem;\r\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BarManager = (function () {\r\n function BarManager(control, bars) {\r\n this.control = control;\r\n this.bars = bars;\r\n }\r\n BarManager.prototype.updateContextMenu = function () {\r\n for (var i = 0, bar; bar = this.bars[i]; i++) {\r\n if (bar.isContextMenu()) {\r\n bar.updateItemsList();\r\n var commandKeys = bar.getCommandKeys();\r\n for (var j = 0; j < commandKeys.length; j++) {\r\n this.updateBarItem(bar, commandKeys[j]);\r\n }\r\n }\r\n }\r\n };\r\n BarManager.prototype.updateItemsState = function (queryCommands) {\r\n var anyQuerySended = !!queryCommands.length;\r\n var _loop_1 = function () {\r\n if (bar.isVisible()) {\r\n var commandKeys_1 = bar.getCommandKeys();\r\n var _loop_2 = function (j) {\r\n if (anyQuerySended && !queryCommands.filter(function (q) { return q == commandKeys_1[j]; }).length)\r\n return \"continue\";\r\n this_1.updateBarItem(bar, commandKeys_1[j]);\r\n };\r\n for (var j = 0; j < commandKeys_1.length; j++) {\r\n _loop_2(j);\r\n }\r\n bar.completeUpdate();\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = 0, bar; bar = this.bars[i]; i++) {\r\n _loop_1();\r\n }\r\n };\r\n BarManager.prototype.updateBarItem = function (bar, commandKey) {\r\n var command = this.control.commandManager.getCommand(commandKey);\r\n if (command) {\r\n var commandState = command.getState();\r\n bar.setItemVisible(commandKey, commandState.visible);\r\n if (commandState.visible) {\r\n bar.setItemEnabled(commandKey, commandState.enabled);\r\n bar.setItemValue(commandKey, commandState.value);\r\n }\r\n }\r\n };\r\n return BarManager;\r\n}());\r\nexports.BarManager = BarManager;\r\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Dependency_1 = __webpack_require__(12);\r\nvar TaskPropertiesHistoryItem_1 = __webpack_require__(28);\r\nvar DateRange_1 = __webpack_require__(7);\r\nvar DateTimeUtils_1 = __webpack_require__(3);\r\nvar Utils_1 = __webpack_require__(2);\r\nvar ValidationError = (function () {\r\n function ValidationError(dependencyId, critical) {\r\n if (critical === void 0) { critical = false; }\r\n this.dependencyId = dependencyId;\r\n this.critical = critical;\r\n }\r\n return ValidationError;\r\n}());\r\nexports.ValidationError = ValidationError;\r\nvar ValidationController = (function () {\r\n function ValidationController(gantt) {\r\n this.gantt = gantt;\r\n }\r\n Object.defineProperty(ValidationController.prototype, \"viewModel\", {\r\n get: function () {\r\n return this.gantt.viewModel;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ValidationController.prototype, \"history\", {\r\n get: function () {\r\n return this.gantt.history;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ValidationController.prototype.checkStartDependencies = function (taskId, date) {\r\n var _this = this;\r\n var result = [];\r\n var task = this.gantt.viewModel.tasks.getItemById(taskId);\r\n var dependencies = this.viewModel.dependencies.items.filter(function (d) { return d.successorId == taskId; });\r\n dependencies.forEach(function (dep) {\r\n var predecessorTask = _this.gantt.viewModel.tasks.getItemById(dep.predecessorId);\r\n if (dep.type == Dependency_1.DependencyType.FS && predecessorTask.end > date || dep.type == Dependency_1.DependencyType.SS && predecessorTask.start > date)\r\n result.push(new ValidationError(dep.internalId, true));\r\n if (dep.type == Dependency_1.DependencyType.FS && predecessorTask.end.valueOf() == task.start.valueOf() && date > predecessorTask.end ||\r\n dep.type == Dependency_1.DependencyType.SS && predecessorTask.start.valueOf() == task.start.valueOf() && date > predecessorTask.start)\r\n result.push(new ValidationError(dep.internalId));\r\n });\r\n return result;\r\n };\r\n ValidationController.prototype.checkEndDependencies = function (taskId, date) {\r\n var _this = this;\r\n var result = [];\r\n var task = this.gantt.viewModel.tasks.getItemById(taskId);\r\n var dependencies = this.viewModel.dependencies.items.filter(function (d) { return d.successorId == taskId; });\r\n dependencies.forEach(function (dep) {\r\n var predecessorTask = _this.gantt.viewModel.tasks.getItemById(dep.predecessorId);\r\n if (dep.type == Dependency_1.DependencyType.SF && predecessorTask.start > date || dep.type == Dependency_1.DependencyType.FF && predecessorTask.end > date) {\r\n result.push(new ValidationError(dep.internalId, true));\r\n }\r\n if (dep.type == Dependency_1.DependencyType.SF && predecessorTask.start.valueOf() == task.end.valueOf() && date > predecessorTask.start ||\r\n dep.type == Dependency_1.DependencyType.FF && predecessorTask.end.valueOf() == task.end.valueOf() && date > predecessorTask.end)\r\n result.push(new ValidationError(dep.internalId));\r\n });\r\n return result;\r\n };\r\n ValidationController.prototype.moveEndDependTasks = function (taskId, previousEndDate) {\r\n var _this = this;\r\n var dependencies = this.viewModel.dependencies.items.filter(function (d) { return d.predecessorId == taskId; });\r\n dependencies.forEach(function (dep) {\r\n var task = _this.gantt.viewModel.tasks.getItemById(taskId);\r\n var successorTask = _this.gantt.viewModel.tasks.getItemById(dep.successorId);\r\n var rangeBeforeMove = new DateRange_1.DateRange(new Date(successorTask.start.getTime()), new Date(successorTask.end.getTime()));\r\n var validRange = new DateRange_1.DateRange(new Date(), new Date());\r\n if (dep.type == Dependency_1.DependencyType.FS && (successorTask.start < task.end || successorTask.start.valueOf() === previousEndDate.valueOf() && successorTask.start > task.end)) {\r\n validRange.start.setTime(task.end.getTime());\r\n validRange.end.setTime(validRange.start.getTime() + (successorTask.end.getTime() - successorTask.start.getTime()));\r\n _this.correctMoving(successorTask.internalId, validRange);\r\n _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskMoveHistoryItem(_this.gantt.modelManipulator, dep.successorId, validRange));\r\n if (_this._parentAutoCalc)\r\n _this.updateParentsRangeByChild(successorTask.internalId);\r\n _this.moveStartDependTasks(dep.successorId, rangeBeforeMove.start);\r\n _this.moveEndDependTasks(dep.successorId, rangeBeforeMove.end);\r\n }\r\n if (dep.type == Dependency_1.DependencyType.FF && (successorTask.end < task.end || successorTask.end.valueOf() === previousEndDate.valueOf() && successorTask.end > task.end)) {\r\n validRange.start.setTime(task.end.getTime() - (successorTask.end.getTime() - successorTask.start.getTime()));\r\n validRange.end.setTime(task.end.getTime());\r\n _this.correctMoving(successorTask.internalId, validRange);\r\n _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskMoveHistoryItem(_this.gantt.modelManipulator, dep.successorId, validRange));\r\n if (_this._parentAutoCalc)\r\n _this.updateParentsRangeByChild(successorTask.internalId);\r\n _this.moveStartDependTasks(dep.successorId, rangeBeforeMove.start);\r\n _this.moveEndDependTasks(dep.successorId, rangeBeforeMove.end);\r\n }\r\n });\r\n };\r\n ValidationController.prototype.moveStartDependTasks = function (taskId, previousStartDate) {\r\n var _this = this;\r\n var dependencies = this.viewModel.dependencies.items.filter(function (d) { return d.predecessorId == taskId; });\r\n dependencies.forEach(function (dep) {\r\n var task = _this.gantt.viewModel.tasks.getItemById(taskId);\r\n var successorTask = _this.gantt.viewModel.tasks.getItemById(dep.successorId);\r\n var rangeBeforeMove = new DateRange_1.DateRange(new Date(successorTask.start.getTime()), new Date(successorTask.end.getTime()));\r\n var validRange = new DateRange_1.DateRange(new Date(), new Date());\r\n if (dep.type == Dependency_1.DependencyType.SF && (successorTask.end < task.start || successorTask.end.valueOf() === previousStartDate.valueOf() && successorTask.end > task.start)) {\r\n validRange.start.setTime(task.start.getTime() - (successorTask.end.getTime() - successorTask.start.getTime()));\r\n validRange.end.setTime(task.start.getTime());\r\n _this.correctMoving(successorTask.internalId, validRange);\r\n _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskMoveHistoryItem(_this.gantt.modelManipulator, dep.successorId, validRange));\r\n if (_this._parentAutoCalc)\r\n _this.updateParentsRangeByChild(successorTask.internalId);\r\n _this.moveStartDependTasks(dep.successorId, rangeBeforeMove.start);\r\n _this.moveEndDependTasks(dep.successorId, rangeBeforeMove.end);\r\n }\r\n if (dep.type == Dependency_1.DependencyType.SS && (successorTask.start < task.start || successorTask.start.valueOf() === previousStartDate.valueOf() && successorTask.start > task.start)) {\r\n validRange.start.setTime(task.start.getTime());\r\n validRange.end.setTime(task.start.getTime() + (successorTask.end.getTime() - successorTask.start.getTime()));\r\n _this.correctMoving(successorTask.internalId, validRange);\r\n _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskMoveHistoryItem(_this.gantt.modelManipulator, dep.successorId, validRange));\r\n if (_this._parentAutoCalc)\r\n _this.updateParentsRangeByChild(successorTask.internalId);\r\n _this.moveStartDependTasks(dep.successorId, rangeBeforeMove.start);\r\n _this.moveEndDependTasks(dep.successorId, rangeBeforeMove.end);\r\n }\r\n });\r\n };\r\n ValidationController.prototype.correctMoving = function (taskId, dateRange) {\r\n var _this = this;\r\n var deltaDate = dateRange.end.getTime() - dateRange.start.getTime();\r\n var validationErrors = this.checkStartDependencies(taskId, dateRange.start).concat(this.checkEndDependencies(taskId, dateRange.end));\r\n var criticalErrors = validationErrors.filter(function (e) { return e.critical; });\r\n criticalErrors.forEach(function (error) {\r\n var dependency = _this.gantt.viewModel.dependencies.getItemById(error.dependencyId);\r\n var predecessorTask = _this.gantt.viewModel.tasks.getItemById(dependency.predecessorId);\r\n if (dependency.type == Dependency_1.DependencyType.FS)\r\n if (dateRange.start < predecessorTask.end) {\r\n dateRange.start.setTime(predecessorTask.end.getTime());\r\n dateRange.end.setTime(dateRange.start.getTime() + deltaDate);\r\n }\r\n if (dependency.type == Dependency_1.DependencyType.SS)\r\n if (dateRange.start < predecessorTask.start) {\r\n dateRange.start.setTime(predecessorTask.start.getTime());\r\n dateRange.end.setTime(dateRange.start.getTime() + deltaDate);\r\n }\r\n if (dependency.type == Dependency_1.DependencyType.FF)\r\n if (dateRange.end < predecessorTask.end) {\r\n dateRange.end.setTime(predecessorTask.end.getTime());\r\n dateRange.start.setTime(dateRange.end.getTime() - deltaDate);\r\n }\r\n if (dependency.type == Dependency_1.DependencyType.SF)\r\n if (dateRange.end < predecessorTask.start) {\r\n dateRange.end.setTime(predecessorTask.start.getTime());\r\n dateRange.start.setTime(dateRange.end.getTime() - deltaDate);\r\n }\r\n });\r\n return dateRange;\r\n };\r\n ValidationController.prototype.recalculateParents = function (child, calcStepCallback) {\r\n var parent = child && child.parent;\r\n while (parent && parent.task) {\r\n var children = parent.children;\r\n var start = this.gantt.range.end;\r\n var end = this.gantt.range.start;\r\n var progress = 0;\r\n var totalDuration = 0;\r\n var data = { id: parent.task.internalId };\r\n for (var i = 0; i < children.length; i++) {\r\n var childTask = children[i].task;\r\n start = DateTimeUtils_1.DateTimeUtils.getMinDate(start, childTask.start);\r\n end = DateTimeUtils_1.DateTimeUtils.getMaxDate(end, childTask.end);\r\n var duration = childTask.getDuration();\r\n progress += childTask.progress * duration;\r\n totalDuration += duration;\r\n }\r\n if (!DateTimeUtils_1.DateTimeUtils.areDatesEqual(parent.task.start, start))\r\n data[\"start\"] = start;\r\n if (!DateTimeUtils_1.DateTimeUtils.areDatesEqual(parent.task.end, end))\r\n data[\"end\"] = end;\r\n progress = Math.ceil(progress / totalDuration);\r\n if (progress !== parent.task.progress)\r\n data[\"progress\"] = progress;\r\n calcStepCallback(data);\r\n parent = parent.parent;\r\n }\r\n };\r\n ValidationController.prototype.updateParentsRangeByChild = function (taskId) {\r\n var _this = this;\r\n this.recalculateParents(this.viewModel.findItem(taskId), function (data) {\r\n if (!Utils_1.JsonUtils.isExists(data.id))\r\n return;\r\n var history = _this.history;\r\n var manipulator = _this.gantt.modelManipulator;\r\n if (Utils_1.JsonUtils.isExists(data.start))\r\n history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(manipulator, data.id, data.start));\r\n if (Utils_1.JsonUtils.isExists(data.end))\r\n history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(manipulator, data.id, data.end));\r\n if (Utils_1.JsonUtils.isExists(data.progress))\r\n history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskProgressHistoryItem(manipulator, data.id, data.progress));\r\n });\r\n };\r\n ValidationController.prototype.updateChildRangeByParent = function (parentId, delta, changedTasks) {\r\n var item = this.viewModel.findItem(parentId);\r\n if (!item || item.children.length === 0)\r\n return;\r\n var children = item.children;\r\n for (var i = 0; i < children.length; i++) {\r\n var childTask = children[i].task;\r\n var newStart = new Date(childTask.start.getTime() + delta);\r\n var newEnd = new Date(childTask.end.getTime() + delta);\r\n changedTasks.push({ id: childTask.internalId, start: childTask.start, end: childTask.end });\r\n if (newStart < childTask.end) {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(this.gantt.modelManipulator, childTask.internalId, newStart));\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(this.gantt.modelManipulator, childTask.internalId, newEnd));\r\n }\r\n else {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(this.gantt.modelManipulator, childTask.internalId, newEnd));\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(this.gantt.modelManipulator, childTask.internalId, newStart));\r\n }\r\n this.updateChildRangeByParent(childTask.internalId, delta, changedTasks);\r\n }\r\n };\r\n ValidationController.prototype.updateParentsIfRequired = function (childId) {\r\n if (this._parentAutoCalc) {\r\n this.updateParentsRangeByChild(childId);\r\n this.gantt.dispatcher.notifyParentDataRecalculated(this.viewModel.getCurrentTaskData());\r\n }\r\n };\r\n ValidationController.prototype.correctOnMoving = function (taskId, delta) {\r\n var _this = this;\r\n if (this._parentAutoCalc && delta !== 0) {\r\n this.updateParentsRangeByChild(taskId);\r\n var changedTasks = [];\r\n this.updateChildRangeByParent(taskId, delta, changedTasks);\r\n if (this.gantt.settings.validation.validateDependencies) {\r\n changedTasks.forEach(function (i) {\r\n _this.moveStartDependTasks(i.id, i.start);\r\n _this.moveEndDependTasks(i.id, i.end);\r\n });\r\n }\r\n this.gantt.dispatcher.notifyParentDataRecalculated(this.viewModel.getCurrentTaskData());\r\n }\r\n };\r\n Object.defineProperty(ValidationController.prototype, \"_parentAutoCalc\", {\r\n get: function () {\r\n return this.viewModel.parentAutoCalc;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ValidationController;\r\n}());\r\nexports.ValidationController = ValidationController;\r\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Browser_1 = __webpack_require__(8);\r\nvar DomUtils_1 = __webpack_require__(1);\r\nvar FullScreenModeHelper = (function () {\r\n function FullScreenModeHelper(gantt) {\r\n this._isInFullScreenMode = false;\r\n this.fullScreenTempVars = {};\r\n this.gantt = gantt;\r\n }\r\n Object.defineProperty(FullScreenModeHelper.prototype, \"isInFullScreenMode\", {\r\n get: function () { return this._isInFullScreenMode; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n FullScreenModeHelper.prototype.toggle = function () {\r\n this._isInFullScreenMode = !this._isInFullScreenMode;\r\n if (this._isInFullScreenMode)\r\n this.setFullScreenMode();\r\n else\r\n this.setNormalMode();\r\n return true;\r\n };\r\n FullScreenModeHelper.prototype.setFullScreenMode = function () {\r\n this.prepareFullScreenMode();\r\n this.adjustControlInFullScreenMode();\r\n };\r\n FullScreenModeHelper.prototype.prepareFullScreenMode = function () {\r\n var mainElement = this.getMainElement();\r\n DomUtils_1.DomUtils.changeStyleAttribute(mainElement, Browser_1.Browser.IE ? \"borderTopWidth\" : \"border-top-width\", \"0px\");\r\n DomUtils_1.DomUtils.changeStyleAttribute(mainElement, Browser_1.Browser.IE ? \"borderLeftWidth\" : \"border-left-width\", \"0px\");\r\n DomUtils_1.DomUtils.changeStyleAttribute(mainElement, Browser_1.Browser.IE ? \"borderRightWidth\" : \"border-right-width\", \"0px\");\r\n DomUtils_1.DomUtils.changeStyleAttribute(mainElement, Browser_1.Browser.IE ? \"borderBottomWidth\" : \"border-bottom-width\", \"0px\");\r\n this.fullScreenTempVars.scrollTop = DomUtils_1.DomUtils.getDocumentScrollTop();\r\n this.fullScreenTempVars.scrollLeft = DomUtils_1.DomUtils.getDocumentScrollLeft();\r\n DomUtils_1.DomUtils.changeStyleAttribute(mainElement, \"background-color\", \"white\");\r\n DomUtils_1.DomUtils.changeStyleAttribute(mainElement, \"position\", \"fixed\");\r\n DomUtils_1.DomUtils.changeStyleAttribute(mainElement, \"top\", \"0px\");\r\n DomUtils_1.DomUtils.changeStyleAttribute(mainElement, \"left\", \"0px\");\r\n DomUtils_1.DomUtils.changeStyleAttribute(mainElement, Browser_1.Browser.IE ? \"zIndex\" : \"z-index\", 10001);\r\n DomUtils_1.DomUtils.changeStyleAttribute(document.documentElement, \"position\", \"static\");\r\n DomUtils_1.DomUtils.changeStyleAttribute(document.documentElement, \"overflow\", \"hidden\");\r\n this.fullScreenTempVars.bodyMargin = document.body.style.margin;\r\n document.body.style.margin = \"0\";\r\n this.fullScreenTempVars.width = mainElement.style.width;\r\n this.fullScreenTempVars.height = mainElement.style.height;\r\n if (window.self !== window.top)\r\n this.requestFullScreen(document.body);\r\n };\r\n FullScreenModeHelper.prototype.setNormalMode = function () {\r\n this.cancelFullScreen(document);\r\n var mainElement = this.getMainElement();\r\n DomUtils_1.DomUtils.restoreStyleAttribute(mainElement, \"left\");\r\n DomUtils_1.DomUtils.restoreStyleAttribute(mainElement, \"top\");\r\n DomUtils_1.DomUtils.restoreStyleAttribute(mainElement, \"background-color\");\r\n DomUtils_1.DomUtils.restoreStyleAttribute(document.documentElement, \"overflow\");\r\n DomUtils_1.DomUtils.restoreStyleAttribute(document.documentElement, \"position\");\r\n DomUtils_1.DomUtils.restoreStyleAttribute(mainElement, Browser_1.Browser.IE ? \"zIndex\" : \"z-index\");\r\n document.body.style.margin = this.fullScreenTempVars.bodyMargin;\r\n DomUtils_1.DomUtils.restoreStyleAttribute(mainElement, \"position\");\r\n DomUtils_1.DomUtils.restoreStyleAttribute(mainElement, Browser_1.Browser.IE ? \"borderTopWidth\" : \"border-top-width\");\r\n DomUtils_1.DomUtils.restoreStyleAttribute(mainElement, Browser_1.Browser.IE ? \"borderLeftWidth\" : \"border-left-width\");\r\n DomUtils_1.DomUtils.restoreStyleAttribute(mainElement, Browser_1.Browser.IE ? \"borderRightWidth\" : \"border-right-width\");\r\n DomUtils_1.DomUtils.restoreStyleAttribute(mainElement, Browser_1.Browser.IE ? \"borderBottomWidth\" : \"border-bottom-width\");\r\n this.setHeight(this.fullScreenTempVars.height);\r\n this.setWidth(this.fullScreenTempVars.width);\r\n document.documentElement.scrollTop = this.fullScreenTempVars.scrollTop;\r\n document.documentElement.scrollLeft = this.fullScreenTempVars.scrollLeft;\r\n this.adjustControl();\r\n };\r\n FullScreenModeHelper.prototype.adjustControlInFullScreenMode = function () {\r\n var documentWidth = document.documentElement.clientWidth == 0 ? document.body.clientWidth : document.documentElement.clientWidth;\r\n var documentHeight = document.documentElement.clientHeight == 0 ? document.body.clientHeight : document.documentElement.clientHeight;\r\n this.setWidth(documentWidth);\r\n this.setHeight(documentHeight);\r\n this.adjustControl();\r\n };\r\n FullScreenModeHelper.prototype.requestFullScreen = function (element) {\r\n if (element.requestFullscreen)\r\n element.requestFullscreen();\r\n else if (element.mozRequestFullScreen)\r\n element.mozRequestFullScreen();\r\n else if (element.webkitRequestFullscreen)\r\n element.webkitRequestFullscreen();\r\n else if (element.msRequestFullscreen)\r\n element.msRequestFullscreen();\r\n };\r\n FullScreenModeHelper.prototype.cancelFullScreen = function (document) {\r\n if (Browser_1.Browser.Firefox && !this.getFullScreenElement(document))\r\n return;\r\n if (document.webkitExitFullscreen)\r\n document.webkitExitFullscreen();\r\n else if (document.mozCancelFullScreen)\r\n document.mozCancelFullScreen();\r\n else if (document.msExitFullscreen)\r\n document.msExitFullscreen();\r\n else if (document.exitFullscreen)\r\n document.exitFullscreen();\r\n };\r\n FullScreenModeHelper.prototype.getFullScreenElement = function (document) {\r\n return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;\r\n };\r\n FullScreenModeHelper.prototype.setWidth = function (width) {\r\n var mainElement = this.getMainElement();\r\n mainElement.style.width = this.isNumber(width) ? width + \"px\" : width;\r\n };\r\n FullScreenModeHelper.prototype.setHeight = function (height) {\r\n var mainElement = this.getMainElement();\r\n mainElement.style.height = this.isNumber(height) ? height + \"px\" : height;\r\n };\r\n FullScreenModeHelper.prototype.isNumber = function (str) {\r\n return !isNaN(parseFloat(str)) && isFinite(str);\r\n };\r\n FullScreenModeHelper.prototype.getMainElement = function () {\r\n return this.gantt.getOwnerControlMainElement();\r\n };\r\n FullScreenModeHelper.prototype.adjustControl = function () {\r\n this.gantt.adjustOwnerControl();\r\n };\r\n return FullScreenModeHelper;\r\n}());\r\nexports.FullScreenModeHelper = FullScreenModeHelper;\r\n\n\n/***/ })\n/******/ ]);\n});","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.editing.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nrequire(\"./ui.tree_list.editor_factory\");\r\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _ui = require(\"../widget/ui.errors\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _message = require(\"../../localization/message\");\r\nvar _message2 = _interopRequireDefault(_message);\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.utils\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\nvar _uiGrid_core3 = require(\"../grid_core/ui.grid_core.editing\");\r\nvar _uiGrid_core4 = _interopRequireDefault(_uiGrid_core3);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TREELIST_EXPAND_ICON_CONTAINER_CLASS = \"dx-treelist-icon-container\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar DATA_EDIT_DATA_INSERT_TYPE = \"insert\";\r\nvar EditingController = _uiGrid_core4.default.controllers.editing.inherit(function() {\r\n return {\r\n _generateNewItem: function(key) {\r\n var item = this.callBase(key);\r\n item.data = {\r\n key: key\r\n };\r\n item.children = [];\r\n item.level = 0;\r\n item.parentKey = this.option(\"rootValue\");\r\n return item\r\n },\r\n _needInsertItem: function(editData, changeType, items, item) {\r\n var parentKey = editData.key.parentKey;\r\n if (void 0 !== parentKey && parentKey !== this.option(\"rootValue\")) {\r\n var rowIndex = _uiGrid_core2.default.getIndexByKey(parentKey, items);\r\n if (rowIndex >= 0 && this._dataController.isRowExpanded(parentKey)) {\r\n items.splice(rowIndex + 1, 0, item)\r\n }\r\n return false\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isEditColumnVisible: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n var editingOptions = this.option(\"editing\");\r\n return result || editingOptions && editingOptions.allowAdding\r\n },\r\n _isDefaultButtonVisible: function(button, options) {\r\n var result = this.callBase.apply(this, arguments);\r\n var row = options.row;\r\n if (\"add\" === button.name) {\r\n return this.allowAdding(options) && row.rowIndex !== this._getVisibleEditRowIndex() && !(row.removed || row.isNewRow)\r\n }\r\n return result\r\n },\r\n _getEditingButtons: function(options) {\r\n var buttons = this.callBase.apply(this, arguments);\r\n if (!options.column.buttons) {\r\n buttons.unshift(this._getButtonConfig(\"add\", options))\r\n }\r\n return buttons\r\n },\r\n _beforeSaveEditData: function(editData) {\r\n var dataController = this._dataController;\r\n var result = this.callBase.apply(this, arguments);\r\n if (editData && editData.type !== DATA_EDIT_DATA_INSERT_TYPE) {\r\n var store = dataController && dataController.store();\r\n var key = store && store.key();\r\n if (!(0, _type.isDefined)(key)) {\r\n throw _ui2.default.Error(\"E1045\")\r\n }\r\n }\r\n return result\r\n },\r\n addRowByRowIndex: function(rowIndex) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n return this.addRow(row ? row.key : void 0)\r\n },\r\n addRow: function(key) {\r\n var that = this;\r\n var callBase = that.callBase;\r\n var dataController = that.getController(\"data\");\r\n if (void 0 !== key && !dataController.isRowExpanded(key)) {\r\n var deferred = new _deferred.Deferred;\r\n dataController.expandRow(key).done(function() {\r\n setTimeout(function() {\r\n callBase.call(that, key).done(deferred.resolve).fail(deferred.reject)\r\n })\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n if (void 0 === key) {\r\n key = that.option(\"rootValue\")\r\n }\r\n return callBase.call(that, key)\r\n },\r\n _initNewRow: function(options, parentKey) {\r\n var dataController = this.getController(\"data\");\r\n var dataSourceAdapter = dataController.dataSource();\r\n var parentIdSetter = dataSourceAdapter.createParentIdSetter();\r\n parentIdSetter(options.data, parentKey);\r\n return this.callBase.apply(this, arguments)\r\n },\r\n allowAdding: function(options) {\r\n return this._allowEditAction(\"allowAdding\", options)\r\n },\r\n _needToCloseEditableCell: function($targetElement) {\r\n return this.callBase.apply(this, arguments) || $targetElement.closest(\".\" + TREELIST_EXPAND_ICON_CONTAINER_CLASS).length && this.isEditing()\r\n },\r\n getButtonLocalizationNames: function() {\r\n var names = this.callBase.apply(this);\r\n names.add = \"dxTreeList-editingAddRowToNode\";\r\n return names\r\n }\r\n }\r\n}());\r\nvar originalRowClick = _uiGrid_core4.default.extenders.views.rowsView._rowClick;\r\nvar originalRowDblClick = _uiGrid_core4.default.extenders.views.rowsView._rowDblClick;\r\nvar validateClick = function(e) {\r\n var $targetElement = (0, _renderer2.default)(e.event.target);\r\n var originalClickHandler = \"dxdblclick\" === e.event.type ? originalRowDblClick : originalRowClick;\r\n if ($targetElement.closest(\".\" + SELECT_CHECKBOX_CLASS).length) {\r\n return false\r\n }\r\n return !needToCallOriginalClickHandler.call(this, e, originalClickHandler)\r\n};\r\n\r\nfunction needToCallOriginalClickHandler(e, originalClickHandler) {\r\n var $targetElement = (0, _renderer2.default)(e.event.target);\r\n if (!$targetElement.closest(\".\" + TREELIST_EXPAND_ICON_CONTAINER_CLASS).length) {\r\n originalClickHandler.call(this, e);\r\n return true\r\n }\r\n return false\r\n}\r\nvar RowsViewExtender = (0, _extend.extend)({}, _uiGrid_core4.default.extenders.views.rowsView, {\r\n _renderCellCommandContent: function($container, options) {\r\n var editingController = this._editingController;\r\n var isEditRow = options.row && editingController.isEditRow(options.row.rowIndex);\r\n var isEditing = options.isEditing || isEditRow;\r\n if (!isEditing) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return false\r\n },\r\n _rowClick: function(e) {\r\n if (validateClick.call(this, e)) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowDblClick: function(e) {\r\n if (validateClick.call(this, e)) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n});\r\n_uiTree_list2.default.registerModule(\"editing\", {\r\n defaultOptions: function() {\r\n return (0, _extend.extend)(true, _uiGrid_core4.default.defaultOptions(), {\r\n editing: {\r\n texts: {\r\n addRowToNode: _message2.default.format(\"dxTreeList-editingAddRowToNode\")\r\n }\r\n }\r\n })\r\n },\r\n controllers: {\r\n editing: EditingController\r\n },\r\n extenders: {\r\n controllers: (0, _extend.extend)(true, {}, _uiGrid_core4.default.extenders.controllers, {\r\n data: {\r\n changeRowExpand: function() {\r\n this._editingController.refresh();\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }),\r\n views: {\r\n rowsView: RowsViewExtender,\r\n headerPanel: _uiGrid_core4.default.extenders.views.headerPanel\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/gantt/ui.gantt.bars.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.GanttContextMenuBar = exports.GanttToolbar = void 0;\r\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _toolbar = require(\"../toolbar\");\r\nvar _toolbar2 = _interopRequireDefault(_toolbar);\r\nvar _context_menu = require(\"../context_menu\");\r\nvar _context_menu2 = _interopRequireDefault(_context_menu);\r\nvar _message = require(\"../../localization/message\");\r\nvar _message2 = _interopRequireDefault(_message);\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\n\r\nfunction _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\r\n }\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\nvar TOOLBAR_SEPARATOR_CLASS = \"dx-gantt-toolbar-separator\";\r\nvar COMMANDS = {\r\n createTask: 0,\r\n createSubTask: 1,\r\n removeTask: 2,\r\n removeDependency: 3,\r\n taskInformation: 4,\r\n taskAddContextItem: 5,\r\n undo: 6,\r\n redo: 7,\r\n zoomIn: 8,\r\n zoomOut: 9,\r\n fullScreen: 10,\r\n collapseAll: 11,\r\n expandAll: 12\r\n};\r\nvar Bar = function() {\r\n function Bar(element, owner) {\r\n _classCallCheck(this, Bar);\r\n this._element = element;\r\n this._owner = owner;\r\n this._createControl()\r\n }\r\n _createClass(Bar, [{\r\n key: \"_getItemsCache\",\r\n value: function() {\r\n if (!this._cache) {\r\n this._cache = {};\r\n this._fillCache(this._items)\r\n }\r\n return this._cache\r\n }\r\n }, {\r\n key: \"_fillCache\",\r\n value: function(items) {\r\n var _this = this;\r\n items.forEach(function(item) {\r\n var key = item.commandId;\r\n if (void 0 !== key) {\r\n if (!_this._cache[key]) {\r\n _this._cache[key] = []\r\n }\r\n _this._cache[key].push(item)\r\n }\r\n if (item.items) {\r\n _this._fillCache(item.items)\r\n }\r\n })\r\n }\r\n }, {\r\n key: \"_getIcon\",\r\n value: function(name) {\r\n return \"dx-gantt-i dx-gantt-i-\" + name\r\n }\r\n }, {\r\n key: \"getCommandKeys\",\r\n value: function() {\r\n var itemsCache = this._getItemsCache();\r\n var result = [];\r\n for (var itemKey in itemsCache) {\r\n result.push(parseInt(itemKey))\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"setItemEnabled\",\r\n value: function(key, enabled) {\r\n var itemsCache = this._getItemsCache();\r\n itemsCache[key].forEach(function(item) {\r\n item.disabled = !enabled\r\n })\r\n }\r\n }, {\r\n key: \"setItemVisible\",\r\n value: function(key, visible) {\r\n var itemsCache = this._getItemsCache();\r\n itemsCache[key].forEach(function(item) {\r\n item.visible = visible\r\n })\r\n }\r\n }, {\r\n key: \"setItemValue\",\r\n value: function(_key, _value) {}\r\n }, {\r\n key: \"setEnabled\",\r\n value: function(enabled) {\r\n this._menu.option(\"disabled\", !enabled)\r\n }\r\n }, {\r\n key: \"updateItemsList\",\r\n value: function() {}\r\n }, {\r\n key: \"isVisible\",\r\n value: function() {\r\n return true\r\n }\r\n }, {\r\n key: \"isContextMenu\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"completeUpdate\",\r\n value: function() {}\r\n }]);\r\n return Bar\r\n}();\r\nvar GanttToolbar = exports.GanttToolbar = function(_Bar) {\r\n _inherits(GanttToolbar, _Bar);\r\n var _super = _createSuper(GanttToolbar);\r\n\r\n function GanttToolbar() {\r\n _classCallCheck(this, GanttToolbar);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(GanttToolbar, [{\r\n key: \"_createControl\",\r\n value: function() {\r\n var _this2 = this;\r\n this._menu = this._owner._createComponent(this._element, _toolbar2.default, {\r\n onItemClick: function(e) {\r\n var commandId = e.itemData.commandId;\r\n if (void 0 !== commandId) {\r\n _this2._owner._executeCoreCommand(e.itemData.commandId)\r\n }\r\n }\r\n })\r\n }\r\n }, {\r\n key: \"createItems\",\r\n value: function(items) {\r\n var _this3 = this;\r\n this._cache = null;\r\n this._items = items.map(function(item) {\r\n if (\"string\" === typeof item) {\r\n return _this3._createItemByText(item)\r\n } else {\r\n if (item.name) {\r\n return (0, _extend.extend)(_this3._createItemByText(item.name), item)\r\n } else {\r\n return (0, _extend.extend)(_this3._getDefaultItemOptions(), item)\r\n }\r\n }\r\n });\r\n this._menu.option(\"items\", this._items)\r\n }\r\n }, {\r\n key: \"_createItemByText\",\r\n value: function(text) {\r\n switch (text.toLowerCase()) {\r\n case \"separator\":\r\n return this._createSeparator();\r\n case \"undo\":\r\n return this._createDefaultItem(COMMANDS.undo, _message2.default.format(\"dxGantt-undo\"), this._getIcon(\"undo\"));\r\n case \"redo\":\r\n return this._createDefaultItem(COMMANDS.redo, _message2.default.format(\"dxGantt-redo\"), this._getIcon(\"redo\"));\r\n case \"expandall\":\r\n return this._createDefaultItem(COMMANDS.expandAll, _message2.default.format(\"dxGantt-expandAll\"), this._getIcon(\"expand\"));\r\n case \"collapseall\":\r\n return this._createDefaultItem(COMMANDS.collapseAll, _message2.default.format(\"dxGantt-collapseAll\"), this._getIcon(\"collapse\"));\r\n case \"addtask\":\r\n return this._createDefaultItem(COMMANDS.createTask, _message2.default.format(\"dxGantt-addNewTask\"), this._getIcon(\"add\"));\r\n case \"deletetask\":\r\n return this._createDefaultItem(COMMANDS.removeTask, _message2.default.format(\"dxGantt-deleteSelectedTask\"), this._getIcon(\"delete\"));\r\n case \"zoomin\":\r\n return this._createDefaultItem(COMMANDS.zoomIn, _message2.default.format(\"dxGantt-zoomIn\"), this._getIcon(\"zoom-in\"));\r\n case \"zoomout\":\r\n return this._createDefaultItem(COMMANDS.zoomOut, _message2.default.format(\"dxGantt-zoomOut\"), this._getIcon(\"zoom-out\"));\r\n case \"fullscreen\":\r\n return this._createDefaultItem(COMMANDS.fullScreen, _message2.default.format(\"dxGantt-fullScreen\"), this._getIcon(\"full-screen\"));\r\n default:\r\n return (0, _extend.extend)(this._getDefaultItemOptions(), {\r\n options: {\r\n text: text\r\n }\r\n })\r\n }\r\n }\r\n }, {\r\n key: \"_createDefaultItem\",\r\n value: function(commandId, hint, icon) {\r\n return {\r\n commandId: commandId,\r\n disabled: true,\r\n widget: \"dxButton\",\r\n location: \"before\",\r\n options: {\r\n icon: icon,\r\n stylingMode: \"text\",\r\n hint: hint\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"_createSeparator\",\r\n value: function() {\r\n return {\r\n location: \"before\",\r\n template: function(_data, _index, element) {\r\n (0, _renderer2.default)(element).addClass(TOOLBAR_SEPARATOR_CLASS)\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"_getDefaultItemOptions\",\r\n value: function() {\r\n return {\r\n location: \"before\",\r\n widget: \"dxButton\"\r\n }\r\n }\r\n }, {\r\n key: \"completeUpdate\",\r\n value: function() {\r\n this._menu.option(\"items\", this._items)\r\n }\r\n }]);\r\n return GanttToolbar\r\n}(Bar);\r\nvar GanttContextMenuBar = exports.GanttContextMenuBar = function(_Bar2) {\r\n _inherits(GanttContextMenuBar, _Bar2);\r\n var _super2 = _createSuper(GanttContextMenuBar);\r\n\r\n function GanttContextMenuBar() {\r\n _classCallCheck(this, GanttContextMenuBar);\r\n return _super2.apply(this, arguments)\r\n }\r\n _createClass(GanttContextMenuBar, [{\r\n key: \"_createControl\",\r\n value: function() {\r\n var _this4 = this;\r\n this._createItems();\r\n this._menu = this._owner._createComponent(this._element, _context_menu2.default, {\r\n showEvent: void 0,\r\n items: this._items,\r\n onItemClick: function(e) {\r\n var commandId = e.itemData.commandId;\r\n if (void 0 !== commandId) {\r\n _this4._owner._executeCoreCommand(e.itemData.commandId)\r\n }\r\n }\r\n })\r\n }\r\n }, {\r\n key: \"_createItems\",\r\n value: function() {\r\n this._items = [{\r\n text: _message2.default.format(\"dxGantt-dialogButtonAdd\"),\r\n commandId: COMMANDS.taskAddContextItem,\r\n icon: this._getIcon(\"add\"),\r\n items: [{\r\n text: _message2.default.format(\"dxGantt-contextMenuNewTask\"),\r\n commandId: COMMANDS.createTask,\r\n icon: this._getIcon(\"add-task\")\r\n }, {\r\n text: _message2.default.format(\"dxGantt-contextMenuNewSubtask\"),\r\n commandId: COMMANDS.createSubTask,\r\n icon: this._getIcon(\"add-sub-task\")\r\n }]\r\n }, {\r\n text: _message2.default.format(\"dxGantt-dialogTaskDetailsTitle\") + \"...\",\r\n commandId: COMMANDS.taskInformation,\r\n icon: this._getIcon(\"task-details\")\r\n }, {\r\n text: _message2.default.format(\"dxGantt-contextMenuDeleteTask\"),\r\n commandId: COMMANDS.removeTask,\r\n icon: this._getIcon(\"delete\")\r\n }, {\r\n text: _message2.default.format(\"dxGantt-contextMenuDeleteDependency\"),\r\n commandId: COMMANDS.removeDependency,\r\n icon: this._getIcon(\"delete-dependency\")\r\n }]\r\n }\r\n }, {\r\n key: \"show\",\r\n value: function(point) {\r\n this._menu.option(\"items\", this._items);\r\n this._menu.option(\"position.offset\", {\r\n x: point.x,\r\n y: point.y\r\n });\r\n this._menu.show()\r\n }\r\n }, {\r\n key: \"isContextMenu\",\r\n value: function() {\r\n return true\r\n }\r\n }]);\r\n return GanttContextMenuBar\r\n}(Bar);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.header_filter.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.header_filter\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"headerFilter\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.columns_resizing_reordering.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.columns_resizing_reordering\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"columnsResizingReordering\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.column_headers.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.column_headers\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"columnHeaders\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.filter_row.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.filter_row\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"filterRow\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/splitter.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.default = void 0;\r\nvar _renderer = require(\"../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _ui = require(\"./widget/ui.widget\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _dom_adapter = require(\"../core/dom_adapter\");\r\nvar _dom_adapter2 = _interopRequireDefault(_dom_adapter);\r\nvar _events_engine = require(\"../events/core/events_engine\");\r\nvar _events_engine2 = _interopRequireDefault(_events_engine);\r\nvar _pointer = require(\"../events/pointer\");\r\nvar _pointer2 = _interopRequireDefault(_pointer);\r\nvar _utils = require(\"../events/utils\");\r\nvar _type = require(\"../core/utils/type\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\r\n }\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\n\r\nfunction _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar SPLITTER_CLASS = \"dx-splitter\";\r\nvar SPLITTER_WRAPPER_CLASS = \"\".concat(SPLITTER_CLASS, \"-wrapper\");\r\nvar SPLITTER_INACTIVE_CLASS = \"\".concat(SPLITTER_CLASS, \"-inactive\");\r\nvar SPLITTER_BORDER_CLASS = \"\".concat(SPLITTER_CLASS, \"-border\");\r\nvar SPLITTER_INITIAL_STATE_CLASS = \"\".concat(SPLITTER_CLASS, \"-initial\");\r\nvar STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar SPLITTER_MODULE_NAMESPACE = \"dxSplitterResizing\";\r\nvar SPLITTER_POINTER_DOWN_EVENT_NAME = (0, _utils.addNamespace)(_pointer2.default.down, SPLITTER_MODULE_NAMESPACE);\r\nvar SPLITTER_POINTER_MOVE_EVENT_NAME = (0, _utils.addNamespace)(_pointer2.default.move, SPLITTER_MODULE_NAMESPACE);\r\nvar SPLITTER_POINTER_UP_EVENT_NAME = (0, _utils.addNamespace)(_pointer2.default.up, SPLITTER_MODULE_NAMESPACE);\r\nvar SplitterControl = function(_Widget) {\r\n _inherits(SplitterControl, _Widget);\r\n var _super = _createSuper(SplitterControl);\r\n\r\n function SplitterControl() {\r\n _classCallCheck(this, SplitterControl);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(SplitterControl, [{\r\n key: \"_initMarkup\",\r\n value: function() {\r\n this._$container = this.option(\"container\");\r\n this._$leftElement = this.option(\"leftElement\");\r\n this._$rightElement = this.option(\"rightElement\");\r\n this._onApplyPanelSize = this._createActionByOption(\"onApplyPanelSize\");\r\n this.$element().addClass(SPLITTER_WRAPPER_CLASS).addClass(SPLITTER_INITIAL_STATE_CLASS);\r\n this._$splitterBorder = (0, _renderer2.default)(\"
\").addClass(SPLITTER_BORDER_CLASS).appendTo(this.$element());\r\n this._$splitter = (0, _renderer2.default)(\"
\").addClass(SPLITTER_CLASS).addClass(SPLITTER_INACTIVE_CLASS).appendTo(this._$splitterBorder)\r\n }\r\n }, {\r\n key: \"_render\",\r\n value: function() {\r\n _get(_getPrototypeOf(SplitterControl.prototype), \"_render\", this).call(this);\r\n this._detachEventHandlers();\r\n this._attachEventHandlers()\r\n }\r\n }, {\r\n key: \"_clean\",\r\n value: function() {\r\n this._detachEventHandlers();\r\n _get(_getPrototypeOf(SplitterControl.prototype), \"_clean\", this).call(this)\r\n }\r\n }, {\r\n key: \"_attachEventHandlers\",\r\n value: function() {\r\n var document = _dom_adapter2.default.getDocument();\r\n _events_engine2.default.on(this._$splitterBorder, SPLITTER_POINTER_DOWN_EVENT_NAME, this._onMouseDownHandler.bind(this));\r\n _events_engine2.default.on(document, SPLITTER_POINTER_MOVE_EVENT_NAME, this._onMouseMoveHandler.bind(this));\r\n _events_engine2.default.on(document, SPLITTER_POINTER_UP_EVENT_NAME, this._onMouseUpHandler.bind(this))\r\n }\r\n }, {\r\n key: \"_detachEventHandlers\",\r\n value: function() {\r\n var document = _dom_adapter2.default.getDocument();\r\n _events_engine2.default.off(this._$splitterBorder, SPLITTER_POINTER_DOWN_EVENT_NAME);\r\n _events_engine2.default.off(document, SPLITTER_POINTER_MOVE_EVENT_NAME);\r\n _events_engine2.default.off(document, SPLITTER_POINTER_UP_EVENT_NAME)\r\n }\r\n }, {\r\n key: \"_dimensionChanged\",\r\n value: function() {\r\n if (void 0 === this._leftPanelPercentageWidth) {\r\n var leftElementWidth = this._$leftElement.get(0).clientWidth + this.getSplitterOffset();\r\n this._leftPanelPercentageWidth = this._convertLeftPanelWidthToPercentage(leftElementWidth)\r\n }\r\n var rightPanelWidth = 100 - this._leftPanelPercentageWidth;\r\n this._onApplyPanelSize({\r\n leftPanelWidth: this._leftPanelPercentageWidth + \"%\",\r\n rightPanelWidth: rightPanelWidth + \"%\"\r\n });\r\n this.setSplitterPositionLeft(this._$leftElement.get(0).clientWidth - this.getSplitterOffset())\r\n }\r\n }, {\r\n key: \"_onMouseDownHandler\",\r\n value: function(e) {\r\n e.preventDefault();\r\n this._offsetX = e.pageX - this._$splitterBorder.offset().left <= this._getSplitterBorderWidth() ? e.pageX - this._$splitterBorder.offset().left : 0;\r\n this._isSplitterActive = true;\r\n this._containerWidth = this._$container.get(0).clientWidth;\r\n this.$element().removeClass(SPLITTER_INITIAL_STATE_CLASS);\r\n this._$splitter.removeClass(SPLITTER_INACTIVE_CLASS);\r\n this.setSplitterPositionLeft(null, true)\r\n }\r\n }, {\r\n key: \"_onMouseMoveHandler\",\r\n value: function(e) {\r\n if (!this._isSplitterActive) {\r\n return\r\n }\r\n this.setSplitterPositionLeft(this._getNewSplitterPositionLeft(e), true)\r\n }\r\n }, {\r\n key: \"_onMouseUpHandler\",\r\n value: function() {\r\n if (this._isSplitterActive) {\r\n this._$splitter.addClass(SPLITTER_INACTIVE_CLASS);\r\n this._isSplitterActive = false\r\n }\r\n }\r\n }, {\r\n key: \"_getNewSplitterPositionLeft\",\r\n value: function(e) {\r\n var newSplitterPositionLeft = e.pageX - this._$container.offset().left - this._offsetX;\r\n newSplitterPositionLeft = Math.max(0 - this.getSplitterOffset(), newSplitterPositionLeft);\r\n newSplitterPositionLeft = Math.min(this._containerWidth - this.getSplitterOffset() - this._getSplitterWidth(), newSplitterPositionLeft);\r\n return newSplitterPositionLeft\r\n }\r\n }, {\r\n key: \"_isDomElement\",\r\n value: function(element) {\r\n return element && element.nodeType && 1 === element.nodeType\r\n }\r\n }, {\r\n key: \"_isPercentValue\",\r\n value: function(value) {\r\n return (0, _type.isString)(value) && \"%\" === value.slice(-1)\r\n }\r\n }, {\r\n key: \"getSplitterOffset\",\r\n value: function() {\r\n return (this._getSplitterBorderWidth() - this._getSplitterWidth()) / 2\r\n }\r\n }, {\r\n key: \"_getSplitterWidth\",\r\n value: function() {\r\n return this._$splitter.get(0).clientWidth\r\n }\r\n }, {\r\n key: \"_getSplitterBorderWidth\",\r\n value: function() {\r\n return this._$splitterBorder.get(0).clientWidth\r\n }\r\n }, {\r\n key: \"toggleState\",\r\n value: function(isActive) {\r\n var classAction = isActive ? \"removeClass\" : \"addClass\";\r\n this.$element()[classAction](STATE_DISABLED_CLASS);\r\n this._$splitter[classAction](STATE_DISABLED_CLASS)\r\n }\r\n }, {\r\n key: \"isSplitterMoved\",\r\n value: function() {\r\n return !this.$element().hasClass(SPLITTER_INITIAL_STATE_CLASS)\r\n }\r\n }, {\r\n key: \"setSplitterPositionLeft\",\r\n value: function(splitterPositionLeft, needUpdatePanels) {\r\n splitterPositionLeft = splitterPositionLeft || this._$leftElement.get(0).clientWidth - this.getSplitterOffset();\r\n this.$element().css(\"left\", splitterPositionLeft);\r\n if (!needUpdatePanels) {\r\n return\r\n }\r\n var leftPanelWidth = splitterPositionLeft + this.getSplitterOffset();\r\n var rightPanelWidth = this._containerWidth - leftPanelWidth;\r\n this._onApplyPanelSize({\r\n leftPanelWidth: leftPanelWidth,\r\n rightPanelWidth: rightPanelWidth\r\n });\r\n this._leftPanelPercentageWidth = this._convertLeftPanelWidthToPercentage(leftPanelWidth)\r\n }\r\n }, {\r\n key: \"_optionChanged\",\r\n value: function(args) {\r\n switch (args.name) {\r\n case \"initialLeftPanelWidth\":\r\n this._leftPanelPercentageWidth = this._convertLeftPanelWidthToPercentage(args.value);\r\n this._dimensionChanged();\r\n break;\r\n case \"leftElement\":\r\n this.repaint();\r\n break;\r\n default:\r\n _get(_getPrototypeOf(SplitterControl.prototype), \"_optionChanged\", this).call(this, args)\r\n }\r\n }\r\n }, {\r\n key: \"_convertLeftPanelWidthToPercentage\",\r\n value: function(leftPanelWidth) {\r\n return leftPanelWidth / this._$container.get(0).clientWidth * 100\r\n }\r\n }]);\r\n return SplitterControl\r\n}(_ui2.default);\r\nexports.default = SplitterControl;\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.virtual_scrolling.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiTree_list3 = require(\"./ui.tree_list.data_source_adapter\");\r\nvar _uiTree_list4 = _interopRequireDefault(_uiTree_list3);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.virtual_scrolling\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar oldDefaultOptions = _uiGrid_core2.default.defaultOptions;\r\nvar originalDataControllerExtender = _uiGrid_core2.default.extenders.controllers.data;\r\nvar originalDataSourceAdapterExtender = _uiGrid_core2.default.extenders.dataSourceAdapter;\r\n_uiGrid_core2.default.extenders.controllers.data = (0, _extend.extend)({}, originalDataControllerExtender, {\r\n _loadOnOptionChange: function() {\r\n var virtualScrollController = this._dataSource && this._dataSource._virtualScrollController;\r\n virtualScrollController && virtualScrollController.reset();\r\n this.callBase()\r\n }\r\n});\r\n_uiGrid_core2.default.extenders.dataSourceAdapter = (0, _extend.extend)({}, originalDataSourceAdapterExtender, {\r\n changeRowExpand: function() {\r\n var _this = this;\r\n return this.callBase.apply(this, arguments).done(function() {\r\n var viewportItemIndex = _this.getViewportItemIndex();\r\n viewportItemIndex >= 0 && _this.setViewportItemIndex(viewportItemIndex)\r\n })\r\n }\r\n});\r\n_uiTree_list2.default.registerModule(\"virtualScrolling\", (0, _extend.extend)({}, _uiGrid_core2.default, {\r\n defaultOptions: function() {\r\n return (0, _extend.extend)(true, oldDefaultOptions(), {\r\n scrolling: {\r\n mode: \"virtual\"\r\n }\r\n })\r\n }\r\n}));\r\n_uiTree_list4.default.extend(_uiGrid_core2.default.extenders.dataSourceAdapter);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.columns_controller.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.columns_controller\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nexports.ColumnsController = _uiGrid_core2.default.controllers.columns.inherit(function() {\r\n return {\r\n _getFirstItems: function(dataSourceAdapter) {\r\n return this.callBase(dataSourceAdapter).map(function(node) {\r\n return node.data\r\n })\r\n },\r\n getFirstDataColumnIndex: function() {\r\n var visibleColumns = this.getVisibleColumns();\r\n var visibleColumnsLength = visibleColumns.length;\r\n var firstDataColumnIndex = 0;\r\n for (var i = 0; i <= visibleColumnsLength - 1; i++) {\r\n if (!(0, _type.isDefined)(visibleColumns[i].command)) {\r\n firstDataColumnIndex = visibleColumns[i].index;\r\n break\r\n }\r\n }\r\n return firstDataColumnIndex\r\n }\r\n }\r\n}());\r\n_uiTree_list2.default.registerModule(\"columns\", {\r\n defaultOptions: _uiGrid_core2.default.defaultOptions,\r\n controllers: {\r\n columns: exports.ColumnsController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.context_menu.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.context_menu\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"contextMenu\", _uiGrid_core2.default);\r\n","/*!\n * devextreme-vue\n * Version: 20.1.7\n * Build date: Tue Aug 25 2020\n *\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar VueType = require(\"vue\");\nvar Vue = VueType.default || VueType;\nvar gantt_1 = require(\"devextreme/ui/gantt\");\nvar component_1 = require(\"./core/component\");\nvar configuration_component_1 = require(\"./core/configuration-component\");\nvar DxGantt = Vue.extend({\n extends: component_1.DxComponent,\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n allowSelection: Boolean,\n columns: Array,\n dependencies: Object,\n disabled: Boolean,\n editing: Object,\n elementAttr: Object,\n firstDayOfWeek: {\n type: Number,\n validator: function (v) { return typeof (v) !== \"number\" || [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ].indexOf(v) !== -1; }\n },\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n onContentReady: Function,\n onDisposing: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onSelectionChanged: Function,\n resourceAssignments: Object,\n resources: Object,\n scaleType: String,\n selectedRowKey: {},\n showResources: Boolean,\n showRowLines: Boolean,\n stripLines: Array,\n tabIndex: Number,\n taskListWidth: Number,\n tasks: Object,\n taskTitlePosition: String,\n toolbar: Object,\n validation: Object,\n visible: Boolean,\n width: [Function, Number, String]\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = gantt_1.default;\n this.$_expectedChildren = {\n column: { isCollectionItem: true, optionName: \"columns\" },\n dependencies: { isCollectionItem: false, optionName: \"dependencies\" },\n editing: { isCollectionItem: false, optionName: \"editing\" },\n resourceAssignments: { isCollectionItem: false, optionName: \"resourceAssignments\" },\n resources: { isCollectionItem: false, optionName: \"resources\" },\n stripLine: { isCollectionItem: true, optionName: \"stripLines\" },\n tasks: { isCollectionItem: false, optionName: \"tasks\" },\n toolbar: { isCollectionItem: false, optionName: \"toolbar\" },\n validation: { isCollectionItem: false, optionName: \"validation\" }\n };\n }\n});\nexports.DxGantt = DxGantt;\nvar DxAsyncRule = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxAsyncRule = DxAsyncRule;\nDxAsyncRule.$_optionName = \"validationRules\";\nDxAsyncRule.$_isCollectionItem = true;\nDxAsyncRule.$_predefinedProps = {\n type: \"async\"\n};\nvar DxButton = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n cssClass: String,\n hint: String,\n icon: String,\n name: String,\n onClick: [Function, String],\n template: {},\n text: String,\n visible: [Boolean, Function]\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nvar DxColumn = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n alignment: String,\n allowEditing: Boolean,\n allowFiltering: Boolean,\n allowFixing: Boolean,\n allowHeaderFiltering: Boolean,\n allowHiding: Boolean,\n allowReordering: Boolean,\n allowResizing: Boolean,\n allowSearch: Boolean,\n allowSorting: Boolean,\n buttons: Array,\n calculateCellValue: Function,\n calculateDisplayValue: [Function, String],\n calculateFilterExpression: Function,\n calculateSortValue: [Function, String],\n caption: String,\n cellTemplate: {},\n columns: Array,\n cssClass: String,\n customizeText: Function,\n dataField: String,\n dataType: String,\n editCellTemplate: {},\n editorOptions: Object,\n encodeHtml: Boolean,\n falseText: String,\n filterOperations: Array,\n filterType: String,\n filterValue: {},\n filterValues: Array,\n fixed: Boolean,\n fixedPosition: String,\n format: [Object, Function, String],\n formItem: Object,\n headerCellTemplate: {},\n headerFilter: Object,\n hidingPriority: Number,\n isBand: Boolean,\n lookup: Object,\n minWidth: Number,\n name: String,\n ownerBand: Number,\n renderAsync: Boolean,\n selectedFilterOperation: String,\n setCellValue: Function,\n showEditorAlways: Boolean,\n showInColumnChooser: Boolean,\n sortIndex: Number,\n sortingMethod: Function,\n sortOrder: String,\n trueText: String,\n type: String,\n validationRules: Array,\n visible: Boolean,\n visibleIndex: Number,\n width: [Number, String]\n }\n});\nexports.DxColumn = DxColumn;\nDxColumn.$_optionName = \"columns\";\nDxColumn.$_isCollectionItem = true;\nDxColumn.$_expectedChildren = {\n AsyncRule: { isCollectionItem: true, optionName: \"validationRules\" },\n button: { isCollectionItem: true, optionName: \"buttons\" },\n CompareRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CustomRule: { isCollectionItem: true, optionName: \"validationRules\" },\n EmailRule: { isCollectionItem: true, optionName: \"validationRules\" },\n format: { isCollectionItem: false, optionName: \"format\" },\n formItem: { isCollectionItem: false, optionName: \"formItem\" },\n headerFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n lookup: { isCollectionItem: false, optionName: \"lookup\" },\n NumericRule: { isCollectionItem: true, optionName: \"validationRules\" },\n PatternRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RangeRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RequiredRule: { isCollectionItem: true, optionName: \"validationRules\" },\n StringLengthRule: { isCollectionItem: true, optionName: \"validationRules\" },\n validationRule: { isCollectionItem: true, optionName: \"validationRules\" }\n};\nvar DxCompareRule = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String\n }\n});\nexports.DxCompareRule = DxCompareRule;\nDxCompareRule.$_optionName = \"validationRules\";\nDxCompareRule.$_isCollectionItem = true;\nDxCompareRule.$_predefinedProps = {\n type: \"compare\"\n};\nvar DxCustomRule = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxCustomRule = DxCustomRule;\nDxCustomRule.$_optionName = \"validationRules\";\nDxCustomRule.$_isCollectionItem = true;\nDxCustomRule.$_predefinedProps = {\n type: \"custom\"\n};\nvar DxDependencies = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n dataSource: [Array, Object],\n keyExpr: [Function, String],\n predecessorIdExpr: [Function, String],\n successorIdExpr: [Function, String],\n typeExpr: [Function, String]\n }\n});\nexports.DxDependencies = DxDependencies;\nDxDependencies.$_optionName = \"dependencies\";\nvar DxEditing = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n allowDependencyAdding: Boolean,\n allowDependencyDeleting: Boolean,\n allowResourceAdding: Boolean,\n allowResourceDeleting: Boolean,\n allowResourceUpdating: Boolean,\n allowTaskAdding: Boolean,\n allowTaskDeleting: Boolean,\n allowTaskUpdating: Boolean,\n enabled: Boolean\n }\n});\nexports.DxEditing = DxEditing;\nDxEditing.$_optionName = \"editing\";\nvar DxEmailRule = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxEmailRule = DxEmailRule;\nDxEmailRule.$_optionName = \"validationRules\";\nDxEmailRule.$_isCollectionItem = true;\nDxEmailRule.$_predefinedProps = {\n type: \"email\"\n};\nvar DxFormat = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String\n }\n});\nexports.DxFormat = DxFormat;\nDxFormat.$_optionName = \"format\";\nvar DxFormItem = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n colSpan: Number,\n cssClass: String,\n dataField: String,\n editorOptions: Object,\n editorType: String,\n helpText: String,\n isRequired: Boolean,\n itemType: String,\n label: Object,\n name: String,\n template: {},\n validationRules: Array,\n visible: Boolean,\n visibleIndex: Number\n }\n});\nexports.DxFormItem = DxFormItem;\nDxFormItem.$_optionName = \"formItem\";\nDxFormItem.$_expectedChildren = {\n AsyncRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CompareRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CustomRule: { isCollectionItem: true, optionName: \"validationRules\" },\n EmailRule: { isCollectionItem: true, optionName: \"validationRules\" },\n label: { isCollectionItem: false, optionName: \"label\" },\n NumericRule: { isCollectionItem: true, optionName: \"validationRules\" },\n PatternRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RangeRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RequiredRule: { isCollectionItem: true, optionName: \"validationRules\" },\n StringLengthRule: { isCollectionItem: true, optionName: \"validationRules\" },\n validationRule: { isCollectionItem: true, optionName: \"validationRules\" }\n};\nvar DxHeaderFilter = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n allowSearch: Boolean,\n dataSource: [Array, Object, Function],\n groupInterval: [Number, String],\n height: Number,\n searchMode: String,\n width: Number\n }\n});\nexports.DxHeaderFilter = DxHeaderFilter;\nDxHeaderFilter.$_optionName = \"headerFilter\";\nvar DxItem = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n cssClass: String,\n disabled: Boolean,\n html: String,\n locateInMenu: String,\n location: String,\n menuItemTemplate: {},\n name: String,\n options: Object,\n showText: String,\n template: {},\n text: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxItem = DxItem;\nDxItem.$_optionName = \"items\";\nDxItem.$_isCollectionItem = true;\nvar DxLabel = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n alignment: String,\n location: String,\n showColon: Boolean,\n text: String,\n visible: Boolean\n }\n});\nexports.DxLabel = DxLabel;\nDxLabel.$_optionName = \"label\";\nvar DxLookup = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n allowClearing: Boolean,\n dataSource: [Array, Object, Function],\n displayExpr: [Function, String],\n valueExpr: String\n }\n});\nexports.DxLookup = DxLookup;\nDxLookup.$_optionName = \"lookup\";\nvar DxNumericRule = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxNumericRule = DxNumericRule;\nDxNumericRule.$_optionName = \"validationRules\";\nDxNumericRule.$_isCollectionItem = true;\nDxNumericRule.$_predefinedProps = {\n type: \"numeric\"\n};\nvar DxPatternRule = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n pattern: {},\n type: String\n }\n});\nexports.DxPatternRule = DxPatternRule;\nDxPatternRule.$_optionName = \"validationRules\";\nDxPatternRule.$_isCollectionItem = true;\nDxPatternRule.$_predefinedProps = {\n type: \"pattern\"\n};\nvar DxRangeRule = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n ignoreEmptyValue: Boolean,\n max: {},\n message: String,\n min: {},\n reevaluate: Boolean,\n type: String\n }\n});\nexports.DxRangeRule = DxRangeRule;\nDxRangeRule.$_optionName = \"validationRules\";\nDxRangeRule.$_isCollectionItem = true;\nDxRangeRule.$_predefinedProps = {\n type: \"range\"\n};\nvar DxRequiredRule = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n message: String,\n trim: Boolean,\n type: String\n }\n});\nexports.DxRequiredRule = DxRequiredRule;\nDxRequiredRule.$_optionName = \"validationRules\";\nDxRequiredRule.$_isCollectionItem = true;\nDxRequiredRule.$_predefinedProps = {\n type: \"required\"\n};\nvar DxResourceAssignments = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n dataSource: [Array, Object],\n keyExpr: [Function, String],\n resourceIdExpr: [Function, String],\n taskIdExpr: [Function, String]\n }\n});\nexports.DxResourceAssignments = DxResourceAssignments;\nDxResourceAssignments.$_optionName = \"resourceAssignments\";\nvar DxResources = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n colorExpr: [Function, String],\n dataSource: [Array, Object],\n keyExpr: [Function, String],\n textExpr: [Function, String]\n }\n});\nexports.DxResources = DxResources;\nDxResources.$_optionName = \"resources\";\nvar DxStringLengthRule = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n ignoreEmptyValue: Boolean,\n max: Number,\n message: String,\n min: Number,\n trim: Boolean,\n type: String\n }\n});\nexports.DxStringLengthRule = DxStringLengthRule;\nDxStringLengthRule.$_optionName = \"validationRules\";\nDxStringLengthRule.$_isCollectionItem = true;\nDxStringLengthRule.$_predefinedProps = {\n type: \"stringLength\"\n};\nvar DxStripLine = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n cssClass: String,\n end: {},\n start: {},\n title: String\n }\n});\nexports.DxStripLine = DxStripLine;\nDxStripLine.$_optionName = \"stripLines\";\nDxStripLine.$_isCollectionItem = true;\nvar DxTasks = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n colorExpr: [Function, String],\n dataSource: [Array, Object],\n endExpr: [Function, String],\n keyExpr: [Function, String],\n parentIdExpr: [Function, String],\n progressExpr: [Function, String],\n startExpr: [Function, String],\n titleExpr: [Function, String]\n }\n});\nexports.DxTasks = DxTasks;\nDxTasks.$_optionName = \"tasks\";\nvar DxToolbar = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n items: Array\n }\n});\nexports.DxToolbar = DxToolbar;\nDxToolbar.$_optionName = \"toolbar\";\nDxToolbar.$_expectedChildren = {\n item: { isCollectionItem: true, optionName: \"items\" }\n};\nvar DxValidation = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n autoUpdateParentTasks: Boolean,\n validateDependencies: Boolean\n }\n});\nexports.DxValidation = DxValidation;\nDxValidation.$_optionName = \"validation\";\nvar DxValidationRule = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n max: {},\n message: String,\n min: {},\n pattern: {},\n reevaluate: Boolean,\n trim: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxValidationRule = DxValidationRule;\nDxValidationRule.$_optionName = \"validationRules\";\nDxValidationRule.$_isCollectionItem = true;\nDxValidationRule.$_predefinedProps = {\n type: \"required\"\n};\nexports.default = DxGantt;\n","/**\r\n * DevExtreme (ui/gantt/ui.gantt.view.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.GanttView = void 0;\r\nvar _ui = require(\"../widget/ui.widget\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _gantt_importer = require(\"./gantt_importer\");\r\nvar _uiGanttTaskArea = require(\"./ui.gantt.task.area.container\");\r\nvar _date = require(\"../../localization/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\r\n }\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\n\r\nfunction _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar GanttView = exports.GanttView = function(_Widget) {\r\n _inherits(GanttView, _Widget);\r\n var _super = _createSuper(GanttView);\r\n\r\n function GanttView() {\r\n _classCallCheck(this, GanttView);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(GanttView, [{\r\n key: \"_init\",\r\n value: function() {\r\n _get(_getPrototypeOf(GanttView.prototype), \"_init\", this).call(this);\r\n this._onSelectionChanged = this._createActionByOption(\"onSelectionChanged\");\r\n this._onScroll = this._createActionByOption(\"onScroll\");\r\n this._onDialogShowing = this._createActionByOption(\"onDialogShowing\");\r\n this._onPopupMenuShowing = this._createActionByOption(\"onPopupMenuShowing\");\r\n this._expandAll = this._createActionByOption(\"onExpandAll\");\r\n this._collapseAll = this._createActionByOption(\"onCollapseAll\")\r\n }\r\n }, {\r\n key: \"_initMarkup\",\r\n value: function() {\r\n var _getGanttViewCore = (0, _gantt_importer.getGanttViewCore)(),\r\n GanttView = _getGanttViewCore.GanttView;\r\n this._ganttViewCore = new GanttView(this.$element().get(0), this, {\r\n showResources: this.option(\"showResources\"),\r\n taskTitlePosition: this._getTaskTitlePosition(this.option(\"taskTitlePosition\")),\r\n firstDayOfWeek: this._getFirstDayOfWeek(this.option(\"firstDayOfWeek\")),\r\n allowSelectTask: this.option(\"allowSelection\"),\r\n editing: this._parseEditingSettings(this.option(\"editing\")),\r\n validation: this.option(\"validation\"),\r\n stripLines: {\r\n stripLines: this.option(\"stripLines\")\r\n },\r\n areHorizontalBordersEnabled: this.option(\"showRowLines\"),\r\n areAlternateRowsEnabled: false,\r\n viewType: this._getViewTypeByScaleType(this.option(\"scaleType\")),\r\n cultureInfo: this._getCultureInfo()\r\n });\r\n this._selectTask(this.option(\"selectedRowKey\"));\r\n this.updateBarItemsState()\r\n }\r\n }, {\r\n key: \"_getFirstDayOfWeek\",\r\n value: function(value) {\r\n return (0, _type.isDefined)(value) ? value : _date2.default.firstDayOfWeekIndex()\r\n }\r\n }, {\r\n key: \"getTaskAreaContainer\",\r\n value: function() {\r\n return this._ganttViewCore.taskAreaContainer\r\n }\r\n }, {\r\n key: \"getBarManager\",\r\n value: function() {\r\n return this._ganttViewCore.barManager\r\n }\r\n }, {\r\n key: \"executeCoreCommand\",\r\n value: function(id) {\r\n var command = this._ganttViewCore.commandManager.getCommand(id);\r\n if (command) {\r\n command.execute()\r\n }\r\n }\r\n }, {\r\n key: \"changeTaskExpanded\",\r\n value: function(id, value) {\r\n this._ganttViewCore.changeTaskExpanded(id, value)\r\n }\r\n }, {\r\n key: \"updateView\",\r\n value: function() {\r\n this._ganttViewCore.updateView()\r\n }\r\n }, {\r\n key: \"updateBarItemsState\",\r\n value: function() {\r\n this._ganttViewCore.barManager.updateItemsState([])\r\n }\r\n }, {\r\n key: \"setWidth\",\r\n value: function(value) {\r\n this._ganttViewCore.setWidth(value)\r\n }\r\n }, {\r\n key: \"_selectTask\",\r\n value: function(id) {\r\n this._ganttViewCore.selectTaskById(id)\r\n }\r\n }, {\r\n key: \"_update\",\r\n value: function() {\r\n this._ganttViewCore.loadOptionsFromGanttOwner();\r\n this._ganttViewCore.resetAndUpdate()\r\n }\r\n }, {\r\n key: \"_getCultureInfo\",\r\n value: function() {\r\n return {\r\n monthNames: _date2.default.getMonthNames(\"wide\"),\r\n dayNames: _date2.default.getDayNames(\"wide\"),\r\n abbrMonthNames: _date2.default.getMonthNames(\"abbreviated\"),\r\n abbrDayNames: _date2.default.getDayNames(\"abbreviated\"),\r\n quarterNames: _date2.default.getQuarterNames(),\r\n amText: _date2.default.getPeriodNames()[0],\r\n pmText: _date2.default.getPeriodNames()[1]\r\n }\r\n }\r\n }, {\r\n key: \"_getTaskTitlePosition\",\r\n value: function(value) {\r\n switch (value) {\r\n case \"outside\":\r\n return 1;\r\n case \"none\":\r\n return 2;\r\n default:\r\n return 0\r\n }\r\n }\r\n }, {\r\n key: \"_getViewTypeByScaleType\",\r\n value: function(scaleType) {\r\n switch (scaleType) {\r\n case \"minutes\":\r\n return 0;\r\n case \"hours\":\r\n return 1;\r\n case \"days\":\r\n return 3;\r\n case \"weeks\":\r\n return 4;\r\n case \"months\":\r\n return 5;\r\n case \"quarters\":\r\n return 6;\r\n case \"years\":\r\n return 7;\r\n default:\r\n return\r\n }\r\n }\r\n }, {\r\n key: \"_parseEditingSettings\",\r\n value: function(value) {\r\n return {\r\n enabled: value.enabled,\r\n allowDependencyDelete: value.allowDependencyDeleting,\r\n allowDependencyInsert: value.allowDependencyAdding,\r\n allowTaskDelete: value.allowTaskDeleting,\r\n allowTaskInsert: value.allowTaskAdding,\r\n allowTaskUpdate: value.allowTaskUpdating,\r\n allowResourceDelete: value.allowResourceDeleting,\r\n allowResourceInsert: value.allowResourceAdding,\r\n allowResourceUpdate: value.allowResourceUpdating\r\n }\r\n }\r\n }, {\r\n key: \"_optionChanged\",\r\n value: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n _get(_getPrototypeOf(GanttView.prototype), \"_optionChanged\", this).call(this, args);\r\n this._ganttViewCore.setWidth(args.value);\r\n break;\r\n case \"tasks\":\r\n case \"dependencies\":\r\n case \"resources\":\r\n case \"resourceAssignments\":\r\n this._update();\r\n break;\r\n case \"showResources\":\r\n this._ganttViewCore.setShowResources(args.value);\r\n break;\r\n case \"taskTitlePosition\":\r\n this._ganttViewCore.setTaskTitlePosition(this._getTaskTitlePosition(args.value));\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._ganttViewCore.setFirstDayOfWeek(this._getFirstDayOfWeek(args.value));\r\n break;\r\n case \"allowSelection\":\r\n this._ganttViewCore.setAllowSelection(args.value);\r\n break;\r\n case \"selectedRowKey\":\r\n this._selectTask(args.value);\r\n break;\r\n case \"editing\":\r\n this._ganttViewCore.setEditingSettings(this._parseEditingSettings(args.value));\r\n break;\r\n case \"validation\":\r\n this._ganttViewCore.setValidationSettings(args.value);\r\n this._update();\r\n break;\r\n case \"showRowLines\":\r\n this._ganttViewCore.setRowLinesVisible(args.value);\r\n break;\r\n case \"scaleType\":\r\n this._ganttViewCore.setViewType(this._getViewTypeByScaleType(args.value));\r\n break;\r\n case \"stripLines\":\r\n this._ganttViewCore.setStripLines({\r\n stripLines: args.value\r\n });\r\n break;\r\n default:\r\n _get(_getPrototypeOf(GanttView.prototype), \"_optionChanged\", this).call(this, args)\r\n }\r\n }\r\n }, {\r\n key: \"getRowHeight\",\r\n value: function() {\r\n return this.option(\"rowHeight\")\r\n }\r\n }, {\r\n key: \"getHeaderHeight\",\r\n value: function() {\r\n return this.option(\"headerHeight\")\r\n }\r\n }, {\r\n key: \"getGanttTasksData\",\r\n value: function() {\r\n return this.option(\"tasks\")\r\n }\r\n }, {\r\n key: \"getGanttDependenciesData\",\r\n value: function() {\r\n return this.option(\"dependencies\")\r\n }\r\n }, {\r\n key: \"getGanttResourcesData\",\r\n value: function() {\r\n return this.option(\"resources\")\r\n }\r\n }, {\r\n key: \"getGanttResourceAssignmentsData\",\r\n value: function() {\r\n return this.option(\"resourceAssignments\")\r\n }\r\n }, {\r\n key: \"getGanttWorkTimeRules\",\r\n value: function() {\r\n return {}\r\n }\r\n }, {\r\n key: \"getExternalTaskAreaContainer\",\r\n value: function(element) {\r\n if (!this._taskAreaContainer) {\r\n this._taskAreaContainer = new _uiGanttTaskArea.TaskAreaContainer(element, this)\r\n }\r\n return this._taskAreaContainer\r\n }\r\n }, {\r\n key: \"changeGanttTaskSelection\",\r\n value: function(id, selected) {\r\n this._onSelectionChanged({\r\n id: id,\r\n selected: selected\r\n })\r\n }\r\n }, {\r\n key: \"onGanttScroll\",\r\n value: function(scrollTop) {\r\n this._onScroll({\r\n scrollTop: scrollTop\r\n })\r\n }\r\n }, {\r\n key: \"showDialog\",\r\n value: function(name, parameters, callback, afterClosing) {\r\n this._onDialogShowing({\r\n name: name,\r\n parameters: parameters,\r\n callback: callback,\r\n afterClosing: afterClosing\r\n })\r\n }\r\n }, {\r\n key: \"getModelChangesListener\",\r\n value: function() {\r\n return this.option(\"modelChangesListener\")\r\n }\r\n }, {\r\n key: \"showPopupMenu\",\r\n value: function(position) {\r\n this._onPopupMenuShowing({\r\n position: position\r\n })\r\n }\r\n }, {\r\n key: \"getMainElement\",\r\n value: function() {\r\n return this.option(\"mainElement\").get(0)\r\n }\r\n }, {\r\n key: \"adjustControl\",\r\n value: function() {}\r\n }, {\r\n key: \"getRequireFirstLoadParentAutoCalc\",\r\n value: function() {\r\n return this.option(\"validation.autoUpdateParentTasks\")\r\n }\r\n }, {\r\n key: \"collapseAll\",\r\n value: function() {\r\n this._collapseAll()\r\n }\r\n }, {\r\n key: \"expandAll\",\r\n value: function() {\r\n this._expandAll()\r\n }\r\n }, {\r\n key: \"bars\",\r\n get: function() {\r\n return this.option(\"bars\")\r\n }\r\n }]);\r\n return GanttView\r\n}(_ui2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.editor_factory.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.editor_factory\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"editorFactory\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nmodule.exports = require(\"./tree_list/ui.tree_list\");\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.error_handling.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.error_handling\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"errorHandling\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/gantt.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nmodule.exports = require(\"./gantt/ui.gantt\");\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/gantt/ui.gantt.dialogs.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.GanttDialog = void 0;\r\nvar _popup = require(\"../popup\");\r\nvar _popup2 = _interopRequireDefault(_popup);\r\nvar _form = require(\"../form\");\r\nvar _form2 = _interopRequireDefault(_form);\r\nrequire(\"../tag_box\");\r\nvar _message = require(\"../../localization/message\");\r\nvar _message2 = _interopRequireDefault(_message);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\n\r\nfunction _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\r\n }\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\nvar GanttDialog = exports.GanttDialog = function() {\r\n function GanttDialog(owner, $element) {\r\n _classCallCheck(this, GanttDialog);\r\n this._popupInstance = owner._createComponent($element, _popup2.default);\r\n this.infoMap = {\r\n TaskEdit: TaskEditDialogInfo,\r\n Resources: ResourcesEditDialogInfo,\r\n Confirmation: ConfirmDialogInfo,\r\n ConstraintViolation: ConstraintViolationDialogInfo\r\n }\r\n }\r\n _createClass(GanttDialog, [{\r\n key: \"_apply\",\r\n value: function() {\r\n var result = this._dialogInfo.getResult();\r\n this._callback(result);\r\n this.hide()\r\n }\r\n }, {\r\n key: \"show\",\r\n value: function(name, parameters, callback, afterClosing, editingOptions) {\r\n this._callback = callback;\r\n this._afterClosing = afterClosing;\r\n if (!this.infoMap[name]) {\r\n return\r\n }\r\n this._dialogInfo = new this.infoMap[name](parameters, this._apply.bind(this), this.hide.bind(this), editingOptions);\r\n this._popupInstance.option({\r\n showTitle: !!this._dialogInfo.getTitle(),\r\n title: this._dialogInfo.getTitle(),\r\n toolbarItems: this._dialogInfo.getToolbarItems(),\r\n maxWidth: this._dialogInfo.getMaxWidth(),\r\n height: this._dialogInfo.getHeight(),\r\n contentTemplate: this._dialogInfo.getContentTemplate()\r\n });\r\n this._popupInstance.show()\r\n }\r\n }, {\r\n key: \"hide\",\r\n value: function() {\r\n this._popupInstance.hide();\r\n if (this._afterClosing) {\r\n this._afterClosing()\r\n }\r\n }\r\n }]);\r\n return GanttDialog\r\n}();\r\nvar DialogInfoBase = function() {\r\n function DialogInfoBase(parameters, applyAction, hideAction, editingOptions) {\r\n _classCallCheck(this, DialogInfoBase);\r\n this._parameters = parameters;\r\n this._applyAction = applyAction;\r\n this._hideAction = hideAction;\r\n this._editingOptions = editingOptions\r\n }\r\n _createClass(DialogInfoBase, [{\r\n key: \"_getFormItems\",\r\n value: function() {\r\n return {}\r\n }\r\n }, {\r\n key: \"_getFormCssClass\",\r\n value: function() {\r\n return \"\"\r\n }\r\n }, {\r\n key: \"_getFormData\",\r\n value: function() {\r\n return this._parameters\r\n }\r\n }, {\r\n key: \"_updateParameters\",\r\n value: function() {}\r\n }, {\r\n key: \"_getOkToolbarItem\",\r\n value: function() {\r\n return this._getToolbarItem(\"OK\", this._applyAction)\r\n }\r\n }, {\r\n key: \"_getCancelToolbarItem\",\r\n value: function() {\r\n return this._getToolbarItem(\"Cancel\", this._hideAction)\r\n }\r\n }, {\r\n key: \"_getYesToolbarItem\",\r\n value: function() {\r\n return this._getToolbarItem(\"Yes\", this._applyAction)\r\n }\r\n }, {\r\n key: \"_getNoToolbarItem\",\r\n value: function() {\r\n return this._getToolbarItem(\"No\", this._hideAction)\r\n }\r\n }, {\r\n key: \"_getToolbarItem\",\r\n value: function(localizationText, action) {\r\n return {\r\n widget: \"dxButton\",\r\n toolbar: \"bottom\",\r\n options: {\r\n text: _message2.default.format(localizationText),\r\n onClick: action\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"getTitle\",\r\n value: function() {\r\n return \"\"\r\n }\r\n }, {\r\n key: \"getToolbarItems\",\r\n value: function() {\r\n return this._editingOptions.enabled ? [this._getOkToolbarItem(), this._getCancelToolbarItem()] : [this._getCancelToolbarItem()]\r\n }\r\n }, {\r\n key: \"getMaxWidth\",\r\n value: function() {\r\n return 400\r\n }\r\n }, {\r\n key: \"getHeight\",\r\n value: function() {\r\n return \"auto\"\r\n }\r\n }, {\r\n key: \"getContentTemplate\",\r\n value: function() {\r\n var _this = this;\r\n return function(content) {\r\n _this._form = new _form2.default(content, {\r\n formData: _this._getFormData(),\r\n items: _this._getFormItems(),\r\n elementAttr: {\r\n \"class\": _this._getFormCssClass()\r\n }\r\n });\r\n return content\r\n }\r\n }\r\n }, {\r\n key: \"getResult\",\r\n value: function() {\r\n var formData = this._form && this._form.option(\"formData\");\r\n this._updateParameters(formData);\r\n return this._parameters\r\n }\r\n }]);\r\n return DialogInfoBase\r\n}();\r\nvar TaskEditDialogInfo = function(_DialogInfoBase) {\r\n _inherits(TaskEditDialogInfo, _DialogInfoBase);\r\n var _super = _createSuper(TaskEditDialogInfo);\r\n\r\n function TaskEditDialogInfo() {\r\n _classCallCheck(this, TaskEditDialogInfo);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(TaskEditDialogInfo, [{\r\n key: \"getTitle\",\r\n value: function() {\r\n return _message2.default.format(\"dxGantt-dialogTaskDetailsTitle\")\r\n }\r\n }, {\r\n key: \"_getFormItems\",\r\n value: function() {\r\n var _this2 = this;\r\n var readOnly = !this._editingOptions.enabled || !this._editingOptions.allowTaskUpdating;\r\n var readOnlyRange = readOnly || !this._parameters.enableRangeEdit;\r\n return [{\r\n dataField: \"title\",\r\n editorType: \"dxTextBox\",\r\n label: {\r\n text: _message2.default.format(\"dxGantt-dialogTitle\")\r\n },\r\n editorOptions: {\r\n readOnly: readOnly\r\n }\r\n }, {\r\n dataField: \"start\",\r\n editorType: \"dxDateBox\",\r\n label: {\r\n text: _message2.default.format(\"dxGantt-dialogStartTitle\")\r\n },\r\n editorOptions: {\r\n type: \"datetime\",\r\n width: \"100%\",\r\n readOnly: readOnlyRange\r\n }\r\n }, {\r\n dataField: \"end\",\r\n editorType: \"dxDateBox\",\r\n label: {\r\n text: _message2.default.format(\"dxGantt-dialogEndTitle\")\r\n },\r\n editorOptions: {\r\n type: \"datetime\",\r\n width: \"100%\",\r\n readOnly: readOnlyRange\r\n }\r\n }, {\r\n dataField: \"progress\",\r\n editorType: \"dxNumberBox\",\r\n label: {\r\n text: _message2.default.format(\"dxGantt-dialogProgressTitle\")\r\n },\r\n editorOptions: {\r\n showSpinButtons: true,\r\n min: 0,\r\n max: 1,\r\n format: \"#0%\",\r\n step: .01,\r\n readOnly: readOnlyRange\r\n }\r\n }, {\r\n dataField: \"assigned.items\",\r\n editorType: \"dxTagBox\",\r\n label: {\r\n text: _message2.default.format(\"dxGantt-dialogResourcesTitle\")\r\n },\r\n editorOptions: {\r\n readOnly: readOnly,\r\n dataSource: this._parameters.resources.items,\r\n displayExpr: \"text\",\r\n buttons: [{\r\n name: \"editResources\",\r\n location: \"after\",\r\n options: {\r\n text: \"...\",\r\n hint: _message2.default.format(\"dxGantt-dialogEditResourceListHint\"),\r\n onClick: function() {\r\n _this2._parameters.showResourcesDialogCommand.execute()\r\n }\r\n }\r\n }]\r\n }\r\n }]\r\n }\r\n }, {\r\n key: \"_getFormData\",\r\n value: function() {\r\n var data = {};\r\n for (var field in this._parameters) {\r\n data[field] = \"progress\" === field ? this._parameters[field] / 100 : this._parameters[field]\r\n }\r\n return data\r\n }\r\n }, {\r\n key: \"_updateParameters\",\r\n value: function(formData) {\r\n this._parameters.title = formData.title;\r\n this._parameters.start = formData.start;\r\n this._parameters.end = formData.end;\r\n this._parameters.progress = 100 * formData.progress;\r\n this._parameters.assigned = formData.assigned\r\n }\r\n }]);\r\n return TaskEditDialogInfo\r\n}(DialogInfoBase);\r\nvar ResourcesEditDialogInfo = function(_DialogInfoBase2) {\r\n _inherits(ResourcesEditDialogInfo, _DialogInfoBase2);\r\n var _super2 = _createSuper(ResourcesEditDialogInfo);\r\n\r\n function ResourcesEditDialogInfo() {\r\n _classCallCheck(this, ResourcesEditDialogInfo);\r\n return _super2.apply(this, arguments)\r\n }\r\n _createClass(ResourcesEditDialogInfo, [{\r\n key: \"getTitle\",\r\n value: function() {\r\n return _message2.default.format(\"dxGantt-dialogResourceManagerTitle\")\r\n }\r\n }, {\r\n key: \"_getFormItems\",\r\n value: function() {\r\n var _this3 = this;\r\n return [{\r\n label: {\r\n visible: false\r\n },\r\n dataField: \"resources.items\",\r\n editorType: \"dxList\",\r\n editorOptions: {\r\n allowItemDeleting: this._editingOptions.enabled && this._editingOptions.allowResourceDeleting,\r\n itemDeleteMode: \"static\",\r\n selectionMode: \"none\",\r\n items: this._parameters.resources.items,\r\n height: 250,\r\n noDataText: _message2.default.format(\"dxGantt-dialogEditNoResources\"),\r\n onInitialized: function(e) {\r\n _this3.list = e.component\r\n },\r\n onItemDeleted: function(e) {\r\n _this3._parameters.resources.remove(e.itemData)\r\n }\r\n }\r\n }, {\r\n label: {\r\n visible: false\r\n },\r\n editorType: \"dxTextBox\",\r\n editorOptions: {\r\n readOnly: !this._editingOptions.enabled || !this._editingOptions.allowResourceAdding,\r\n onInitialized: function(e) {\r\n _this3.textBox = e.component\r\n },\r\n onInput: function(e) {\r\n var addButton = e.component.getButton(\"addResource\");\r\n var resourceName = e.component.option(\"text\");\r\n addButton.option(\"disabled\", 0 === resourceName.length)\r\n },\r\n buttons: [{\r\n name: \"addResource\",\r\n location: \"after\",\r\n options: {\r\n text: _message2.default.format(\"dxGantt-dialogButtonAdd\"),\r\n disabled: true,\r\n onClick: function(e) {\r\n var newItem = _this3._parameters.resources.createItem();\r\n newItem.text = _this3.textBox.option(\"text\");\r\n _this3._parameters.resources.add(newItem);\r\n _this3.list.option(\"items\", _this3._parameters.resources.items);\r\n _this3.list.scrollToItem(newItem);\r\n _this3.textBox.reset();\r\n e.component.option(\"disabled\", true)\r\n }\r\n }\r\n }]\r\n }\r\n }]\r\n }\r\n }]);\r\n return ResourcesEditDialogInfo\r\n}(DialogInfoBase);\r\nvar ConfirmDialogInfo = function(_DialogInfoBase3) {\r\n _inherits(ConfirmDialogInfo, _DialogInfoBase3);\r\n var _super3 = _createSuper(ConfirmDialogInfo);\r\n\r\n function ConfirmDialogInfo() {\r\n _classCallCheck(this, ConfirmDialogInfo);\r\n return _super3.apply(this, arguments)\r\n }\r\n _createClass(ConfirmDialogInfo, [{\r\n key: \"getContentTemplate\",\r\n value: function() {\r\n var _this4 = this;\r\n return function(content) {\r\n return _this4._getConfirmMessage()\r\n }\r\n }\r\n }, {\r\n key: \"_getConfirmMessage\",\r\n value: function() {\r\n switch (this._parameters.type) {\r\n case 0:\r\n return _message2.default.format(\"dxGantt-dialogTaskDeleteConfirmation\");\r\n case 1:\r\n return _message2.default.format(\"dxGantt-dialogDependencyDeleteConfirmation\");\r\n case 2:\r\n return _message2.default.format(\"dxGantt-dialogResourcesDeleteConfirmation\", this._parameters.message);\r\n default:\r\n return \"\"\r\n }\r\n }\r\n }, {\r\n key: \"getToolbarItems\",\r\n value: function() {\r\n return [this._getYesToolbarItem(), this._getNoToolbarItem()]\r\n }\r\n }]);\r\n return ConfirmDialogInfo\r\n}(DialogInfoBase);\r\nvar ConstraintViolationDialogInfo = function(_DialogInfoBase4) {\r\n _inherits(ConstraintViolationDialogInfo, _DialogInfoBase4);\r\n var _super4 = _createSuper(ConstraintViolationDialogInfo);\r\n\r\n function ConstraintViolationDialogInfo() {\r\n _classCallCheck(this, ConstraintViolationDialogInfo);\r\n return _super4.apply(this, arguments)\r\n }\r\n _createClass(ConstraintViolationDialogInfo, [{\r\n key: \"_getFormItems\",\r\n value: function() {\r\n var items = [];\r\n items.push({\r\n text: _message2.default.format(\"dxGantt-dialogCancelOperationMessage\"),\r\n value: 0\r\n });\r\n items.push({\r\n text: _message2.default.format(\"dxGantt-dialogDeleteDependencyMessage\"),\r\n value: 1\r\n });\r\n if (!this._parameters.validationError.critical) {\r\n items.push({\r\n text: _message2.default.format(\"dxGantt-dialogMoveTaskAndKeepDependencyMessage\"),\r\n value: 2\r\n })\r\n }\r\n return [{\r\n template: this._parameters.validationError.critical ? _message2.default.format(\"dxGantt-dialogConstraintCriticalViolationMessage\") : _message2.default.format(\"dxGantt-dialogConstraintViolationMessage\")\r\n }, {\r\n cssClass: \"dx-cv-dialog-row\",\r\n dataField: \"option\",\r\n label: {\r\n visible: false\r\n },\r\n editorType: \"dxRadioGroup\",\r\n editorOptions: {\r\n items: items,\r\n valueExpr: \"value\",\r\n value: 0\r\n }\r\n }]\r\n }\r\n }, {\r\n key: \"_getFormCssClass\",\r\n value: function() {\r\n return \"dx-cv-dialog\"\r\n }\r\n }, {\r\n key: \"_updateParameters\",\r\n value: function(formData) {\r\n this._parameters.option = formData.option\r\n }\r\n }]);\r\n return ConstraintViolationDialogInfo\r\n}(DialogInfoBase);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.filter_panel.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.filter_panel\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"filterPanel\", _uiGrid_core2.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.search.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.search\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"search\", _uiGrid_core2.default);\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('DxGantt',{attrs:{\"task-list-width\":600,\"height\":700,\"scale-type\":\"weeks\"}},[_c('DxTasks',{attrs:{\"data-source\":_vm.tasks}}),_c('DxDependencies',{attrs:{\"data-source\":_vm.dependencies}}),_c('DxResources',{attrs:{\"data-source\":_vm.resources}}),_c('DxResourceAssignments',{attrs:{\"data-source\":_vm.resourceAssignments}}),_c('DxToolbar',[_c('DxItem',{attrs:{\"name\":\"undo\"}}),_c('DxItem',{attrs:{\"name\":\"redo\"}}),_c('DxItem',{attrs:{\"name\":\"separator\"}}),_c('DxItem',{attrs:{\"name\":\"collapseAll\"}}),_c('DxItem',{attrs:{\"name\":\"expandAll\"}}),_c('DxItem',{attrs:{\"name\":\"separator\"}}),_c('DxItem',{attrs:{\"name\":\"addTask\"}}),_c('DxItem',{attrs:{\"name\":\"deleteTask\"}}),_c('DxItem',{attrs:{\"name\":\"separator\"}}),_c('DxItem',{attrs:{\"name\":\"zoomIn\"}}),_c('DxItem',{attrs:{\"name\":\"zoomOut\"}}),_c('DxItem',{attrs:{\"name\":\"separator\"}}),_c('DxItem',{attrs:{\"options\":_vm.aboutButtonOptions,\"widget\":\"dxButton\"}})],1),_c('DxEditing',{attrs:{\"enabled\":true}}),_c('DxColumn',{attrs:{\"width\":100,\"data-field\":\"title\",\"caption\":\"Cliente\"}}),_c('DxColumn',{attrs:{\"width\":90,\"data-field\":\"titlez\",\"caption\":\"Consultor\"}}),_c('DxColumn',{attrs:{\"width\":200,\"data-field\":\"title\",\"caption\":\"Atividade\"}}),_c('DxColumn',{attrs:{\"data-field\":\"start\",\"caption\":\"Início\"}}),_c('DxColumn',{attrs:{\"data-field\":\"end\",\"caption\":\"Fim\"}}),_c('DxColumn',{attrs:{\"data-field\":\"end\",\"caption\":\"(%)\"}})],1),_c('DxPopup',{attrs:{\"visible\":_vm.popupVisible,\"title\":\"Informações\",\"height\":_vm.auto,\"show-title\":true,\"close-on-outside-click\":true}},[_c('div',[_vm._v(\"\\n Cronograma apresenta as atividades e fluxo com as dependências das tarefas de um determinado período.\\n \"),_c('br'),_c('br'),_vm._v(\"\\n Ajuste a escala de tempo para exibir tarefas em intervalos de tempo menores ou maiores, de horas a anos.\\n Segure a tecla CTRL e gire a roda de rolagem do mouse para aumentar ou diminuir o zoom para navegar pelos dados em vários níveis de detalhe.\\n \")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.transform-quasar-imports.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cronograma.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.transform-quasar-imports.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cronograma.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./cronograma.vue?vue&type=template&id=708e7876&\"\nimport script from \"./cronograma.vue?vue&type=script&lang=js&\"\nexport * from \"./cronograma.vue?vue&type=script&lang=js&\"\nimport style0 from \"./cronograma.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.row_dragging.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = require(\"./ui.tree_list.core\");\r\nvar _uiTree_list2 = _interopRequireDefault(_uiTree_list);\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.row_dragging\");\r\nvar _uiGrid_core2 = _interopRequireDefault(_uiGrid_core);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list2.default.registerModule(\"rowDragging\", _uiGrid_core2.default);\r\n"],"sourceRoot":""}