{"version":3,"sources":["webpack:///./node_modules/devexpress-gantt/dist/dx-gantt.js"],"names":["factory","modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","__extends","__assign","__rest","__decorate","__param","__metadata","__awaiter","__generator","__createBinding","__exportStar","__values","__read","__spread","__spreadArrays","__spreadArray","__await","__asyncGenerator","__asyncDelegator","__asyncValues","__makeTemplateObject","__importStar","__importDefault","__classPrivateFieldGet","__classPrivateFieldSet","extendStatics","b","setPrototypeOf","__proto__","Array","TypeError","String","__","this","constructor","assign","arguments","length","apply","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","paramIndex","decorator","metadataKey","metadataValue","metadata","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","body","f","y","g","_","label","sent","trys","ops","verb","iterator","v","op","pop","push","k","k2","undefined","ar","error","concat","il","a","j","jl","to","from","asyncIterator","q","resume","fulfill","settle","shift","cooked","raw","__setModuleDefault","mod","default","receiver","privateMap","has","set","string_1","isDefined","boolToInt","boolToString","isNumber","obj","isString","isNonNullString","str","isEven","num","isOdd","numberToStringBin","minLength","StringUtils","padLeft","toString","numberToStringHex","DateTimeUtils","Time_1","TimeRange_1","common_1","DateRange_1","DayOfWeekMonthlyOccurrence_1","compareDates","date1","date2","getTime","areDatesEqual","getMaxDate","getMinDate","getDaysBetween","start","end","diff","Math","abs","ceil","msInDay","getWeeksBetween","daysBetween","numWeeks","floor","getDay","getMonthsDifference","dateDiff","getFullYear","getMonth","getYearsDifference","getDayNumber","date","getDateByDayNumber","Date","setHours","setMinutes","setSeconds","addDays","days","checkDayOfMonth","day","getDate","checkDayOfWeek","checkMonth","month","checkYear","year","checkDayOfWeekOccurrenceInMonth","dayOfWeek","occurrence","dayOfWeekInMonthDates","getSpecificDayOfWeekInMonthDates","DayOfWeekMonthlyOccurrence","Last","getFirstDayOfWeekInMonth","firstDayOfWeekInMonth","diffDays","res","specificDayOfWeekDate","getSpecificDayOfWeekInMonthDate","dates","checkValidDayInMonth","getNextMonth","inc","convertToDate","src","ms","parse","isNaN","convertTimeRangeToDateRange","timeRange","dayNumber","startT","hour","min","sec","msec","endT","DateRange","convertToTimeRanges","_this","map","x","convertToTimeRange","parseTimeRanges","TimeRange","convertToTime","parseTimeRange","Time","getTimeGromJsDate","parseTime","split","filter","parts","h","parseInt","getHours","getMinutes","getSeconds","getMilliseconds","caclTimeDifference","time1","time2","getTimeInMilleconds","areTimesEqual","getMaxTime","getMinTime","getLastTimeOfDay","browser_1","math_1","DomUtils","clearInnerHtml","element","firstChild","removeChild","setStylePosition","style","point","left","MathUtils","round","top","setStyleSize","size","width","height","setStyleSizeAndPosition","rectangle","hideNode","node","parentNode","isHTMLElementNode","nodeType","Node","ELEMENT_NODE","isTextNode","TEXT_NODE","isElementNode","isHTMLTableRowElement","tagName","isItParent","parentElement","getParentByTagName","toUpperCase","getDocumentScrollTop","isScrollBodyIE","Browser","IE","getCurrentStyle","document","overflow","scrollTop","WebKitFamily","Edge","MacOSMobilePlatform","window","pageYOffset","documentElement","getDocumentScrollLeft","scrollLeft","currentStyle","defaultView","getComputedStyle","Firefox","frameElement","changes","curElement","display","setProperty","ownerDocument","srcObject","newObject","cloneObject","ch","offsetWidth","setFocus","focusCore","focus","activeElement","setTimeout","hasClassName","className","classNames","classList","contains","elementClassName","getAttribute","elementClasses","addClassName","setAttribute","removeClassName","updClassName","newClassName","replace","trim","toggleClassName","toggle","pxToInt","px","pxToNumber","pxToFloat","parseFloat","getAbsolutePositionY","getAbsolutePositionY_FF3","getBoundingClientRect","getAbsolutePositionY_IE","Version","Opera","curEl","isFirstCycle","cells","pos","getAbsoluteScrollOffset_OperaFF","offsetTop","offsetParent","getAbsolutePositionY_Opera","NetscapeFamily","borderTopWidth","getAbsolutePositionY_NS","getAbsolutePositionY_Other","getAbsolutePositionX","getAbsolutePositionX_FF3","getAbsolutePositionX_IE","offsetLeft","getAbsolutePositionX_Opera","borderLeftWidth","getAbsolutePositionX_NS","getAbsolutePositionX_Other","isInteractiveControl","getClearClientHeight","offsetHeight","getTopBottomPaddings","getVerticalBordersWidth","paddingTop","paddingBottom","MajorVersion","borderTopStyle","borderBottomStyle","borderBottomWidth","getNodes","parent","predicate","collection","all","getElementsByTagName","getChildNodes","childNodes","getNodesByClassName","querySelectorAll","children","result_1","forEach","elem","getChildNodesByClassName","getVerticalScrollBarWidth","verticalScrollBarWidth","container","createElement","cssText","appendChild","child","widthWithoutScrollBar","widthWithScrollBar","clientWidth","getHorizontalBordersWidth","borderLeftStyle","borderRightStyle","borderRightWidth","getFontFamiliesFromCssString","cssString","fam","getInnerText","Safari","html2PlainTextFilter","innerHTML","innerText","textContent","parseFunction","indexOfPx","substr","isX","position","Point","zero","fromNumber","isZero","JSON","stringify","copyFrom","clone","equals","offset","offsetX","offsetY","offsetByPoint","multiply","multiplierX","multiplierY","negative","applyConverter","converter","plus","minus","xComparer","yComparer","IdentUserAgent","userAgent","ignoreDocumentMode","browserTypesOrderedList","defaultVersions","Chrome","Mozilla","Netscape","toLowerCase","indentPlatformMajorVersion","platformIdentStrings","optVersion","patterns","Opera10","browserType","version","browserTypeCandidate","matches","RegExp","exec","index","GetBrowserVersion","getIECompatibleVersionString","browserVersionDetected","platform","minOccurenceIndex","Number","MAX_VALUE","identStr","importantIdent","occurenceIndex","match","isSamsungAndroidDevice","getVersionFromTrident","documentMode","max","fillUserAgentInfo","tridentPattern","ieCompatibleVersionString","getVersionFromMatches","versionFromTrident","compatible","isTouchEnabled","navigator","type","WindowsPlatform","MacOSPlatform","AndroidMobilePlatform","WindowsPhonePlatform","HardwareAcceleration","WebKitTouchUI","isIETouchUI","UserAgent","MSTouchUI","maxTouchPoints","TouchUI","MobileUI","AndroidDefaultBrowser","AndroidChromeBrowser","SamsungAndroidDevice","isARMArchitecture","VirtualKeyboardSupported","fillDocumentElementBrowserTypeClassNames","PlaformMajorVersion","versionStr","documentElementClassName","browserTypeslist","Info","getUserAgent","_foo","dom_1","touch_1","EvtUtils","preventEvent","evt","preventDefault","returnValue","getEventSource","srcElement","getEventSourceByPosition","elementFromPoint","getEventX","getEventY","getMouseWheelEventName","isLeftButtonPressed","TouchUtils","isTouchEvent","event","button","buttons","which","touchMouseMoveEventName","preventEventAndBubble","stopPropagation","cancelBubble","clientEventRequiresDocScrollCorrection","isSafariVerLess3","isMacOSMobileVerLess51","clientX","clientY","getWheelDelta","ret","detail","wheelDelta","deltaY","SimpleCommandState","CommandBase","control","modelManipulator","configurable","history","validationController","_state","getState","execute","parameters","_i","state","enabled","executed","executeInternal","barManager","updateItemsState","isEnabled","settings","editing","Error","visible","TaskAreaManager","MouseEventSource","point_1","evt_1","GridLayoutCalculator_1","ganttView","time","touchTime","eventManager","initMouseEvents","initTouchEvents","initMouseEventHandlers","onMouseClickHandler","onTaskAreaClick","onMouseDblClickHandler","onTaskAreaDblClick","onScrollHandler","updateView","onContextMenuHandler","onContextMenu","onMouseWheelHandler","onMouseWheel","onMouseDownHandler","onMouseDown","onMouseMoveHandler","onDocumentMouseMove","onMouseUpHandler","onDocumentMouseUp","onKeyDownHandler","onDocumentKeyDown","initTouchEventHandlers","onTouchStartHandler","onTouchStart","onTouchEndHandler","onTouchEnd","onTouchMoveHandler","onTouchMove","onPointerDownHandler","onPointerUpHandler","onPointerMoveHandler","taskArea","addEventListener","detachMouseEvents","removeEventListener","add","MS_POINTER_ACTIVE_CLASS","detachTouchEvents","attachEventsOnTask","taskElement","onMouseEnterHandler","onTaskElementHover","detachEventsOnTask","detachEvents","preventSelect","isFocus","allowSelectTask","isConnectorLine","changeTaskSelection","getClickedTaskIndex","onMouseUp","onKeyDown","onMouseMove","clickedItem","viewModel","items","now","touches","DBLCLICK_INTERVAL","onTaskDblClick","task","id","commandManager","showTaskEditDialog","onTaskClick","getDependencyKeyFromSource","source","convertInternalToPublicKey","isDependency","getClickedTaskKey","ganttOwner","onGanttViewContextMenu","info","showPopupMenu","hoveredTaskIndex","taskEditController","show","showTaskInfo","relativeY","tickSize","clickedTask","changeGanttTaskSelection","clickedTaskIndex","GridLayoutCalculator","CLASSNAMES","CONNECTOR_HORIZONTAL","CONNECTOR_VERTICAL","DataObject","internalId","generateGuid","assignFromObject","sourceObj","Dependency","DependencyType","tslib_1","DataObject_1","_super","predecessorId","successorId","parseType","FS","SS","FF","SF","CompositionHistoryItem","HistoryItem","historyItems","redo","item","undo","historyItem","undoItemsQuery","CollectionBase","Utils_1","_items","_isGanttCollection","getItemById","_addItem","addRange","range","remove","_removeItems","clear","_invertedItems","count","splice","slice","getItem","_a","_createInvertedItems","invertedItems","getItemByPublicId","val","sourceCollection","importFromObject","importFromArray","createItemFromObjectAndAdd","createItem","values","importFromJSON","json","GanttJsonUtils","parseJson","TaskTitlePosition","Position","ViewType","onEventAttachingToDocument","eventName","func","isTouchEventName","documentTouchHandlers","documentEventAttachingAllowed","changedTouches","pageX","pageY","touchMouseDownEventName","PointerEvent","touchMouseUpEventName","msTouchDraggableClassName","RecurrenceBase","DayOfWeek_1","Month_1","DateTimeUtils_1","RecurrenceFactory_1","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","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","scaleType","getScaleItemColSpan","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","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","prevLastPoint","lastPoint","Top","Bottom","Left","Right","getArrowX","getArrowY","getRangeTickCount","getRangeTickCountInMonthsViewType","getRangeTickCountInQuarterViewType","startMonthStartDate","endMonthStartDate","getOffsetInMonths","msPerMonth","startQuarterStartDate","endQuarterStartDate","getOffsetInQuarters","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","dependencies","createConnecotInfo","visibleIndex","updateTileToConnectorLinesMap","dependencyId","attr","dependency","dependencyInfo","predecessor","connectorInfo","connectorLine","addElementInfoToTileMap","getAdjustedNoWorkingInterval","noWorkingIntervalInfo","modelInterval","getNearestScaleTickDate","isVerticalTile","infoPointValue","infoSizeValue","tileSizeValue","firstTileIndex","lastTileIndex","getRenderedConnectorLines","getElementsInRenderedTiles","getRenderedStripLines","stripLines","showCurrentTime","StripLine","currentTimeTitle","currentTimeCssClass","stripLine","renderedStart","isCurrent","cssClass","title","firstVisibleTileIndex","lastVisibleTileIndex","TaskPropertyManipulator","TaskPropertiesManipulator","BaseManipulator","HistoryItemState_1","dispatcher","getErrorCallback","getDataUpdateErrorCallback","TaskTitleManipulator","description","TaskDescriptionManipulator","TaskProgressManipulator","TaskStartDateManipulator","TaskEndDateManipulator","move","TaskMoveManipulator","TaskColorManipulator","setValue","newValue","tasks","oldState","HistoryItemState","getPropertyValue","setPropertyValue","viewItem","findItem","owner","recreateTaskElement","restoreValue","notifyTaskTitleChanged","notifyTaskDescriptionChanged","notifyTaskProgressChanged","notifyTaskStartChanged","notifyTaskEndChanged","notifyTaskColorChanged","HandlerStateBase","handler","finish","getRelativePos","absolutePos","taskAreaX","taskAreaY","BaseArguments","cancel","RemoveDependencyHistoryItem","InsertDependencyHistoryItem","HistoryItem_1","insertDependency","removeDependency","DeassignResourceHistoryItem","AssignResourceHistoryItem","RemoveResourceHistoryItem","CreateResourceHistoryItem","text","callback","createCallback","resource","resourceId","properties","taskId","assignment","deassig","assignmentId","ConfirmationDialogParameters","ConfirmationDialog","ConfirmationType","DialogBase_1","applyParameters","_newParameters","oldParameters","beginTransaction","endTransaction","createParameters","options","getDialogName","DialogBase","message","DialogParametersBase","CommandBase_1","params","initParams","onBeforeDialogShow","showDialog","afterClosing","_oldParameters","TaskColorHistoryItem","TaskMoveHistoryItem","TaskEndHistoryItem","TaskStartHistoryItem","TaskProgressHistoryItem","TaskDescriptionHistoryItem","TaskTitleHistoryItem","TaskPropertiesHistoryItemBase","getPropertiesManipulator","ResourceCollection","CollectionBase_1","Resource_1","Resource","isAlpha","isDigit","stringHashCode","hash","strLen","charCodeAt","endsAt","template","strInd","tmplInd","strStartInd","startsAt","stringInLowerCase","stringInUpperCase","atLeastOneSymbolInUpperCase","char","getSymbolFromEnd","posFromEnd","trimChars","trimInternal","joinedChars","join","trimStart","trimEnd","getDecimalSeparator","toLocaleString","repeat","isNullOrEmpty","totalWidth","paddingChar","len","test","substring","empty","initByCommonAction","action","widthAdp","heightAdp","isEmpty","nonNegativeSize","multiplierW","multiplierH","conv","MouseHandlerStateBase","onMouseDoubleClick","_evt","MouseHandlerDragBaseState","currentPosition","selectDependency","onMouseUpInternal","switchToDefaultState","onMouseMoveInternal","_position","TouchHandlerDragBaseState","TouchHandlerStateBase_1","onTouchEndInternal","onTouchMoveInternal","TouchHandlerStateBase","ResourceUnassigningArguments","ResourceAssigningArguments","BaseArguments_1","list_1","digits","factor","powFactor","numberCloseTo","accuracy","restrictValue","minVal","maxVal","getRandomInt","random","ListUtils","initByCallback","ind","pow","somePrimes","ResourceAssignment","_hour","_min","_sec","_msec","_fullmsec","updateFullMilleconds","isTimeInRange","hasIntersect","concatWith","Daily_1","Weekly_1","Monthly_1","Yearly_1","createRecurrenceByType","Daily","Weekly","Monthly","Yearly","createRecurrenceFromObject","recurrence","RecurrenceBase_1","daysToAdd","ElementTextHelperCultureInfo","ElementTextHelper","getDaysInMonth","rangeStartTime","rangeEndTime","needCorrectDate","nearestLeftTickTime","getNearestLeftTickTime","nearestRightTickTime","getNextTickTime","currentTickTime","nextTickDate","adjustStartDateByViewType","firstDayOfWeek","adjustEndDateByViewType","roundStartDate","msPerHour","msPerDay","msPerWeek","msPerYear","data","getTimezoneOffsetDiff","data1","data2","getTimezoneOffset","ViewTypeToScaleMap","FiveYears","cultureInfo","longestAbbrMonthName","longestMonthName","longestAbbrDayName","canvas","textMeasureContext","getContext","setFont","fontHolder","computedStyle","font","fontStyle","fontVariant","fontWeight","fontSize","lineHeight","fontFamily","startTime","modelItems","getScaleItemStartDate","setFullYear","getScaleStartDateCorrectedWithDST","timeZoneDiff","getScaleItemText","scaleItemStartDate","isViewTypeScale","getTenMinutesScaleItemText","getHoursScaleItemText","getDaysScaleItemText","getWeeksScaleItemText","getMonthsScaleItemText","getQuarterScaleItemText","getYearsScaleItemText","getFiveYearsScaleItemText","scaleItemDate","minutes","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","margins_1","Margins","assignToElement","assignPosition","assignSize","assignMargins","marginLeft","marginTop","right","marginRight","bottom","marginBottom","ValidationSettings","StripLineSettings","EditingSettings","Settings","taskTitlePosition","Inside","showResources","areHorizontalBordersEnabled","areVerticalBordersEnabled","areAlternateRowsEnabled","validation","taskTooltipContentTemplate","equal","allowDependencyDelete","allowDependencyInsert","allowTaskDelete","allowTaskInsert","allowTaskUpdate","allowResourceDelete","allowResourceInsert","allowResourceUpdate","allowTaskResourceUpdate","currentTimeUpdateInterval","validateDependencies","autoUpdateParentTasks","TaskEditController","gantt","taskIndex","createElements","updateWrapInfo","wrapInfo","baseElement","TASK_EDIT_BOX","canUpdateTask","progressEdit","taskDateRange","hide","tooltip","posX","delay","showInfo","showDependencySuccessor","dependencySuccessorBaseElement","dependencySuccessorFrame","hideDependencySuccessor","processProgress","progressOffset","showProgress","confirmProgress","changeTaskProgressCommand","processEnd","positionX","startDate","gridLayoutCalculator","getNewDate","showTime","confirmEnd","changeTaskEndCommand","processStart","endDate","confirmStart","changeTaskStartCommand","processMove","delta","raiseTaskMoving","onTaskMovingCallback","newStart","newEnd","calculator","newLeft","newWidth","confirmMove","taskMoveCommand","referenceDate","newDate","startDependency","dependencyLine","TASK_EDIT_DEPENDENCY_LINE","startPosition","processDependency","drawline","endDependency","createDependencyCommand","isDependencySelected","deleteSelectedDependency","removeDependencyCommand","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","onMouseLeaveHandler","temp","angle","atan","PI","transform","TASK_EDIT_PROGRESS_STATUS","setDefaultTooltip","defaultTooltip","TASK_EDIT_TOOLTIP_DEFAULT","titleWrapper","TASK_EDIT_TASK_TITLE","getTimeContent","progressElement","TASK_EDIT_PROGRESS_STATUS_TIME","progressTitle","progressValue","tooltipTemplateFunction","isTooltipShowing","destroyTemplate","showInfoFunc","timerId","autoHide","_b","_c","_d","TASK_EDIT_TOOLTIP_ARROW_AFTER","TASK_EDIT_TOOLTIP_ARROW_BEFORE","absolutePositionY","leftPosition","absoluteDistance","header","clientHeight","isShowingDown","topPosition","clearTimeout","timeElement","startEl","startTitle","startValue","endEl","endTitle","endValue","formatDate","getDateFormat","HandlerBase","TaskAreaManager_1","TaskEditController_1","switchState","initSource","classToSource","TaskArea","TaskEdit_Progress","TaskEdit_Start","TaskEdit_End","TaskEdit_Frame","TaskEdit_DependencyStart","TaskEdit_DependencyFinish","Successor_DependencyStart","Successor_DependencyFinish","MouseHandlerDependencyState","dependencyMap","MouseHandlerStateBase_1","sourceElement","relativePosStart","relativePosEnd","relativeTouchPos","isTouchNearby","relativePos","hoverTaskIndex","touchPos","elementPos","onDoubleTap","TaskEditDialogShowingArguments","TaskUpdatingArguments","TaskRemovingArguments","TaskInsertingArguments","parentId","fieldNames","newValues","createNewValues","_loop_1","fieldName","this_1","hiddenFields","readOnlyFields","RemoveTaskHistoryItem","CreateTaskHistoryItem","TaskDependencyHistoryItem_1","taskIds","task_1","addTask","item_1","ConstraintViolationDialogParameters","ConstraintViolationDialogCommand","ConstraintViolationOption","newParameters","option","DoNothing","RemoveDependency","addAndRedo","validationError","KeepDependency","successorTask","predecessorTask","successorTaskTitle","predecessorTaskTitle","GanttView","GanttView_1","VisualModel_1","EtalonSizeValues_1","ModelManipulator_1","History_1","EventManager_1","TaskAreaContainer_1","ModelChangesDispatcher_1","CommandManager_1","BarManager_1","ValidationController_1","FullScreenModeHelper_1","TaskHistoryItem_1","ResourceHistoryItem_1","timeScaleAreas","horTaskAreaBorders","vertTaskAreaBorders","scaleBorders","scaleElements","taskElements","resourcesElements","selectionElements","hlRowElements","renderedRowIndices","renderedScaleItemIndices","invalidTaskDependencies","renderedConnectorLines","connectorLinesToElementsMap","noWorkingIntervalsToElementsMap","renderedNoWorkingIntervals","renderedStripLines","stripLinesMap","etalonSizeValues","EtalonSizeValues","scaleCount","currentZoom","maxZoom","stripLinesUpdaterId","currentSelectedTaskID","ValidationController","createMainElement","createHeader","calculateEtalonSizeValues","createTaskAreaContainer","loadOptionsFromGanttOwner","mainElement","setupHelpers","setSizeForTaskArea","createTimeScaleContainer","createTimeScaleAreas","CommandManager","BarManager","bars","EventManager","History","taskAreaManager","fullScreenModeHelper","FullScreenModeHelper","onWindowResizelHandler","onBrowserWindowResize","scrollLeftByViewType","initializeStripLinesUpdater","reset","timeScaleContainer","taskAreaContainer","getWidth","getHeight","getElement","getDateRange","modelStartDate","modelEndDate","getVisibleAreaTime","etalonElementsContainer","createEtalonElementsContainer","etalonElements","createEtalonElements","calculateEtalonSizeValuesCore","scaleItemWidths","getSmallTaskWidth","paddingLeft","getHeaderHeight","etalonPaddingLeft","indexOfRem","visibility","wrapper","milestoneWrapper","etalonElementClassNames","etalonElementInfo","parentWrapper","parentTask","zoomIn","leftPos","targetDate","updateTickSizeWidth","resetAndUpdate","setViewType","scrollToDate","zoomOut","adjustedStartDate","dataRange","onVisualModelChanged","setInterval","recreateStripLines","clearStripLinesUpdater","clearInterval","getGanttViewStartDate","reduce","getGanttViewEndDate","getTaskAreaWidth","getTaskAreaHeight","getVisibleTaskCount","createTimeScaleArea","timeScaleArea","unshift","createMonthsScale","createTaskArea","getExternalTaskAreaContainer","TaskAreaContainer","prepareTaskAreaContainer","currentDate","dayCount","nextDate","scaleItemElement","scaleBorderInfo","onBeginUpdateView","taskAreaContainerScrollLeft","processScroll","onGanttScroll","taskAreaContainerScrollTop","onEndUpdateView","taskAreaScrollTopKey","taskAreaScrollLeftKey","taskTextHeightKey","getTaskTextHeight","textElement","recreateTaskAreaBordersAndTaskElements","recreateConnectorLineElements","recreateNoWorkingIntervalElements","recreateScalesElements","newRenderedIndices","renderedIndices","recreateElements","removeTaskAreaBorderAndTaskElement","createTaskAreaBorderAndTaskElement","newRenderedNoWorkingIntervals","removeNoWorkingIntervalElement","createNoWorkingIntervalElement","newRenderedStripLines","removeElement","newRenderedConnectorLines","removeConnectorLineElement","createConnectorLineElement","recreateScaleElements","scaleIndex","removeScaleElementAndBorder","createScaleElementAndBorder","oldRenderedElementsInfo","newRenderedelementsInfo","removeAction","createAction","isVisible","removeTaskElement","createTaskElement","recreateConnectorLineElement","forceRender","infos","isRendered","allowTaskAreaBorders","isVerticalScroll","createTaskAreaBorder","removeTaskAreaBorder","getTaskAreaBordersDictionary","createScaleElement","createScaleBorder","scaleElement","createScaleElementCore","padding","dictionary","isHighlightRowElementAllowed","createHighlightRowElement","isValid","createTaskWrapperElement","Outside","createTaskTextElement","taskVisualElement","createTaskVisualElement","createTaskProgressElement","createResourcesWrapperElement","createResources","createTaskSelectionElement","taskDependencies","resourcesWrapperElementInfo","resources","createResourceElement","taskWrapperInfo","taskElementInfo","taskProgressInfo","taskTextInfo","taskTextElement","resourceElementInfo","selectionInfo","isExternal","hlRowInfo","some","calculateAutoViewType","diffInHours","changeTaskExpanded","publicId","expanded","getTaskByPublicId","expandTask","collapseTask","showTask","changeTaskVisibility","hideTask","unselectCurrentSelectedTask","unselectTask","getTaskSelected","autoPositioning","UpdateGanttViewType","setTaskTitlePosition","setShowResources","setFirstDayOfWeek","getRowHeight","tasksData","getGanttTasksData","ModelChangesDispatcher","modelChangesListener","getModelChangesListener","onModelChanged","ViewVisualModel","getGanttDependenciesData","getGanttResourcesData","getGanttResourceAssignmentsData","getGanttWorkTimeRules","ModelManipulator","updateRange","cleanMarkup","updateRowHeights","selectTask","changeTaskSelected","updateBarManager","selectTaskById","getTaskAreaContainer","setWidth","setHeight","setAllowSelection","setEditingSettings","setValidationSettings","setRowLinesVisible","setStripLines","deleteTask","removeTaskCommand","insertTask","parent_1","taskData","createTaskCommand","getLastInsertedTaskId","updateTask","updateTaskCommand","getTaskData","getTaskObjectForDataSource","deleteDependency","internalKey","convertPublicToInternalKey","getDependencyData","getDependencyObjectForDataSource","insertResource","taskKeys","createResourceCommand","assignResourceToTask","deleteResource","removeResourceCommand","resourceKey","taskKey","resourceInternalKey","taskInternalKey","assignResourceCommand","unassignResourceFromTask","findAssignment","deassignResourceCommand","getResourceData","getResourceObjectForDataSource","getResourceAssignmentData","getResourceAssignmentObjectForDataSource","getTaskResources","model","getAssignedResources","getVisibleTaskKeys","getVisibleTasks","getVisibleDependencyKeys","getVisibleDependencies","getVisibleResourceKeys","getVisibleResources","getVisibleResourceAssignmentKeys","getVisibleResourceAssignments","setTaskValue","manager","checkedNewValue","changeTaskTitleCommand","newProgress","createTaskItems","lastItem","getLastInsertedResource","getPrevTask","root","updateCreatedTaskIdAfterServerUpdate","getTaskIdByInternalId","isTaskHasChildren","requireFirstLoadParentAutoCalc","getRequireFirstLoadParentAutoCalc","updateOwnerInAutoParentMode","notifyParentDataRecalculated","getCurrentTaskData","getOwnerControlMainElement","getMainElement","adjustOwnerControl","adjustControl","isInFullScreenMode","adjustControlInFullScreenMode","applySettings","preventViewUpdate","ganttSettings","preventUpdate","currentHistoryItemInfo","getCurrentProcessingItemInfo","lock","rollBackAndRemove","unlock","setTaskTooltipContentTemplate","getFormattedDateText","getDefaultDateFormat","cachedPrefix","ResourceCollection_1","TaskCollection_1","DependencyCollection_1","ResourceAssignmentCollection_1","ViewVisualModelItem_1","ViewVisualModelDependencyInfo_1","WorkingTimeCalculator_1","ResourceAssignment_1","assignments","dateRange","workTimeRules","_fLockCount","TaskCollection","DependencyCollection","ResourceAssignmentCollection","_itemList","_viewItemList","_workTimeCalculator","WorkingTimeCalculator","updateModel","ViewVisualModelItem","createHierarchy","populateItemsForView","list","inverted","previous","recalculateParentRequired","parentItem","addChild","recalculateParents","duration","taskType","customFields","populateVisibleItems","updateVisibleItemDependencies","isRoot","getExpanded","visibleDependencies","getTasVisibleDependencies","setDependencies","ViewVisualModelDependencyInfo","changed","beginUpdate","endUpdate","taskHasChildren","hasTasks","dataType","publicKey","getItemByInternalId","strKey","visibleTasksKeys","visibleResources","visibleAssignments","json_1","JsonUtils","min_max_1","comparers_1","removeBy","shallowCopy","deepCopy","initByValue","numElements","initValue","initCallback","forEachOnInterval","reverseForEachOnInterval","reducedMap","startIndex","endIndex","newItem","indexBy","reverseIndexBy","elementBy","reverseElementBy","last","setLast","newVal","incLast","decLast","allOf2","equalsByReference","aLen","unique","cmp","finalizeObj","prevValue","sort","uniqueNumber","Comparers","number","NaN","forEach2","listA","listB","reverseForEach","reverseIndexOf","accumulate","initAccValue","acc","accumulateNumber","anyOf","unsafeAnyOf","currResult","reverseAnyOf","unsafeReverseAnyOf","anyOf2","allOf","allOfOnInterval","addListOnTail","resultList","addedList","joinLists","lists","accList","countIf","merge","shouldMerge","prevObj","getValue","minExtended","minElement","maxExtended","maxElement","minMax","minMaxExtended","MinMax","minValue","elemValue","ExtendedMin","maxValue","ExtendedMax","ExtendedMinMax","minByCmp","found","maxByCmp","minMaxByCmp","MinMaxNumber","string","stringIgnoreCase","Equals","simpleType","Task_1","Task","TaskType","assignCustomFields","getDuration","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","_noWorkingIntervals","invalidate","WorkingTimeRule_1","WorkingTimeRule","recurrenceType","ranges","weeksFromStart","intervalCount","weeksToAdd","calcNextPointWithWeekCount","weekCount","MonthInfo_1","monthToAdd","MonthInfo","addMonths","months","nextMonth","yearInc","yearFromStart","newYear","intervals","_workingIntervals","rearrangeWorkingIntervals","concatWithIntersectedRanges","sortIntervals","getIntersectedIntervals","removeInterval","r1","r2","clearIntervals","starts","ends","_isWorkDay","Offsets","fromOffsets","offsets","fromSide","horizontal","vertical","normalize","multLeft","multRight","multTop","multBottom","DependencyManipulator_1","ResourcesManipulator_1","TaskManipulator_1","TaskManipulator","TaskDependencyManipulator","ResourcesManipulator","notifyDependencyInserted","getObjectForDataSource","notifyDependencyRemoved","TaskPropertiesManipulator_1","ResourcePropertiesManipulator_1","ResourcePropertiesManipulator","notifyResourceCreated","notifyResourceRemoved","resourceID","notifyResourceAssigned","notifyResourceUnassigned","resourceAssignment","ResourcePropertyManipulator","ResourceColorManipulator","stateValue","notifyResourceColorChanged","notifyTaskCreated","data_1","notifyTaskRemoved","HistoryItemInfo_1","currentIndex","currentProcessingItemInfo","transaction","transactionLevel","canUndo","activateItem","canRedo","transactionLength","addInternal","deleteOldItems","exceedItemsCount","MAX_HISTORY_ITEM_COUNT","isUndo","HistoryItemInfo","checkAndRemoveItem","MouseHandler_1","key_1","TouchHandler_1","mouseHandler","MouseHandler","touchHandler","TouchHandler","onMouseDblClick","code","getShortcutCode","ModifierKey","Ctrl","KeyCode","Key_z","Key_y","Delete","keyCode","KeyUtils","getEventKeyCode","modifiers","altKey","Alt","ctrlKey","shiftKey","Shift","metaKey","Meta","HandlerBase_1","MouseHandlerDefaultState_1","MouseHandlerMoveTaskState_1","MouseHandlerProgressTaskState_1","MouseHandlerTimestampTaskState_1","MouseHandlerDependencyState_1","MouseHandlerMoveTaskState","MouseHandlerProgressTaskState","MouseHandlerTimestampTaskState","MouseHandlerDefaultState","GanttMovingHelper","isInScrolling","ganttMovingHelper","startMoving","movingInfo","increase","calcMovingInfo","updateGanttAreaCursor","cancelMoving","updateScrollPosition","newEventX","newEventY","deltaX","eventX","eventY","dirX","dirY","maxDeltaX","maxRightDelta","maxLeftDelta","maxDeltaY","maxBottomDelta","maxTopDelta","newScrollLeft","newScrollTop","scrollWidth","scrollHeight","drag","cursor","relativePosition","encode_1","getKeyModifiers","isCtrlKey","isShiftKey","isAltKey","isMetaKey","getShortcutCodeByEvent","parseShortcutString","shortcutString","shcKeys","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","Enter","Home","End","Up","Down","PageUp","PageDown","Space","Tab","Backspace","ContextMenu","Esc","Insert","alert","EncodeUtils","decodeViaTextArea","encodeHtml","decodeHtml","prepareTextForRequest","prepareTextForCallBackRequest","html","textArea","TouchHandlerMoveTaskState_1","TouchHandlerDefaultState_1","TouchHandlerProgressTaskState_1","TouchHandlerTimestampTaskState_1","TouchHandlerDependencyState_1","TouchHandlerZoomState_1","TouchHandlerMoveTaskState","TouchHandlerProgressTaskState","TouchHandlerTimestampTaskState","TouchHandlerDependencyState","TouchHandlerZoomState","TouchHandlerDefaultState","popupTimer","info_1","getTaskIndex","TouchHandlerDragBaseState_1","HandlerStateBase_1","prevDistance","distance","getTouchDistance","getMiddleAbsPoint","pt0","pt1","getDistance","getMiddlePointByEvent","touch","getPoint","EventDispatcher_1","TaskArguments_1","AssignmentArguments_1","EventDispatcher","isLocked","notifyTaskCreating","args","raise","errorCallback","notifyTaskRemoving","taskID","notifyTaskUpdating","notifyTaskMoving","notifyTaskEditDialogShowing","notifyDependencyInserting","notifyDependencyRemoving","dependencyID","notifyResourceCreating","notifyResourceRemoving","notifyResourceAssigning","notifyResourceUnassigning","assignmentID","fireResourceUnassigning","raiseTaskTitleUpdating","raiseTaskUpdating","raiseTaskDescriptionUpdating","raiseTaskProgressUpdating","raiseTaskColorUpdating","raiseTaskStartUpdating","raiseTaskEndUpdating","raiseTaskStartAndEndUpdating","oldValue","raiseTaskMultipleUpdating","fields","raiseTaskTaskEditDialogShowing","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","UpdateTaskCommand","CreateDependencyCommand","RemoveDependencyCommand","CreateResourceCommand","RemoveResourceCommand","AssignResourceCommand","DeassignResourceCommand","ResourceColorCommand","TaskEditDialogCommand","ResourcesDialogCommand","getCommand","commandId","command","TaskCommandBase","TaskPropertiesHistoryItem_1","selectedTask","referenceItem","referenceTask","selectedItem","confirmRequired","showConfirmationDialog","TaskDelete","removeTaskHistoryItem","childTasks","updateParent","updateParentsIfRequired","success","changedNewValues","needRecalculateParents","moveStartDependTasks","moveEndDependTasks","TaskPropertyCommandValidation","TaskPropertyCommandBase","newTitle","newDescription","validationErrors","validate","criticalErrors","critical","executeCore","showConstraintViolationDialog","oldStart","minStartTask","prev","curr","checkStartDependencies","oldEnd","maxEndTask","checkEndDependencies","oldDateRange","correctOnMoving","startErrors","endErrors","DependencyCommandBase","DependencyArguments_1","DependencyInsertingArguments","DependencyDelete","DependencyRemovingArguments","ResourceCommandBase","ResourceArguments_1","ResourceInsertingArguments","ResourceRemovingArguments","removeResourceHistoryItem_1","TaskEditParameters","assigned","updateParents","param","showResourcesDialogCommand","showResourcesDialog","showTaskEditDialogCommand","enableEdit","isTaskEditEnabled","enableRangeEdit","isTaskRangeEditEnabled","ResourcesDialogParameters","resourcesForDelete","callBack","confirmationDialog","confirmationDialogParameters","ResourcesDelete","fullScreenTempVars","collapseAll","expandAll","ResourcePropertyCommandBase","ResourcePropertiesHistoryItem_1","ResourceColorHistoryItem","ResourcePropertiesHistoryItemBase","updateContextMenu","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","previousStartDate","deltaDate","calcStepCallback","totalDuration","childTask","updateParentsRangeByChild","manipulator","updateChildRangeByParent","changedTasks","childId","attr_1","_isInFullScreenMode","setFullScreenMode","setNormalMode","prepareFullScreenMode","AttrUtils","changeElementStyleAttribute","bodyMargin","margin","self","requestFullScreen","cancelFullScreen","restoreElementStyleAttribute","documentWidth","documentHeight","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","getFullScreenElement","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","exitFullscreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","isFinite","setElementAttribute","attrName","setStyleAttribute","getElementAttribute","getStyleAttribute","removeElementAttribute","removeAttribute","removeStyleAttribute","removeProperty","saveStyleAttributeInElement","savedAttrName","isExistsAttributeInElement","emptyObject","isAttributeExists","attrValue"],"mappings":"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","file":"vendors~d6ce2105.a8e0a5679af84939b04a.bundle.js","sourcesContent":["/*!\n * DevExpress Gantt (dx-gantt)\n * Version: 2.0.29\n * Build date: Tue Apr 20 2021\n * \n * Copyright (c) 2012 - 2021 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})(this, 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 = 53);\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__, \"__spreadArray\", function() { return __spreadArray; });\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(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, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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 string_1 = __webpack_require__(27);\r\nfunction isDefined(value) {\r\n return value !== undefined && value !== null;\r\n}\r\nexports.isDefined = isDefined;\r\nfunction boolToInt(value) {\r\n return value ? 1 : 0;\r\n}\r\nexports.boolToInt = boolToInt;\r\nfunction boolToString(value) {\r\n return value ? '1' : '0';\r\n}\r\nexports.boolToString = boolToString;\r\nfunction isNumber(obj) {\r\n return typeof obj === 'number';\r\n}\r\nexports.isNumber = isNumber;\r\nfunction isString(obj) {\r\n return typeof obj === 'string';\r\n}\r\nexports.isString = isString;\r\nfunction isNonNullString(str) {\r\n return !!str;\r\n}\r\nexports.isNonNullString = isNonNullString;\r\nfunction isEven(num) {\r\n return (num % 2) !== 0;\r\n}\r\nexports.isEven = isEven;\r\nfunction isOdd(num) {\r\n return (num % 2) === 0;\r\n}\r\nexports.isOdd = isOdd;\r\nfunction numberToStringBin(num, minLength) {\r\n if (minLength === void 0) { minLength = 0; }\r\n return string_1.StringUtils.padLeft(num.toString(2), minLength, '0');\r\n}\r\nexports.numberToStringBin = numberToStringBin;\r\nfunction numberToStringHex(num, minLength) {\r\n if (minLength === void 0) { minLength = 0; }\r\n return string_1.StringUtils.padLeft(num.toString(16), minLength, '0');\r\n}\r\nexports.numberToStringHex = numberToStringHex;\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\nexports.DateTimeUtils = void 0;\r\nvar Time_1 = __webpack_require__(37);\r\nvar TimeRange_1 = __webpack_require__(38);\r\nvar common_1 = __webpack_require__(1);\r\nvar DateRange_1 = __webpack_require__(9);\r\nvar DayOfWeekMonthlyOccurrence_1 = __webpack_require__(39);\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 (common_1.isDefined(src.start) && common_1.isDefined(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 (common_1.isDefined(start) && common_1.isDefined(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/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(5);\r\nvar common_1 = __webpack_require__(1);\r\nvar math_1 = __webpack_require__(34);\r\nvar string_1 = __webpack_require__(27);\r\nvar DomUtils = (function () {\r\n function DomUtils() {\r\n }\r\n DomUtils.clearInnerHtml = function (element) {\r\n while (element.firstChild)\r\n element.removeChild(element.firstChild);\r\n };\r\n DomUtils.setStylePosition = function (style, point) {\r\n style.left = math_1.MathUtils.round(point.x, 3) + 'px';\r\n style.top = math_1.MathUtils.round(point.y, 3) + 'px';\r\n };\r\n DomUtils.setStyleSize = function (style, size) {\r\n style.width = math_1.MathUtils.round(size.width, 3) + 'px';\r\n style.height = math_1.MathUtils.round(size.height, 3) + 'px';\r\n };\r\n DomUtils.setStyleSizeAndPosition = function (style, rectangle) {\r\n DomUtils.setStylePosition(style, rectangle);\r\n DomUtils.setStyleSize(style, rectangle);\r\n };\r\n DomUtils.hideNode = function (node) {\r\n if (node) {\r\n var parentNode = node.parentNode;\r\n if (parentNode)\r\n parentNode.removeChild(node);\r\n }\r\n };\r\n DomUtils.isHTMLElementNode = function (node) {\r\n return node.nodeType === Node.ELEMENT_NODE;\r\n };\r\n DomUtils.isTextNode = function (node) {\r\n return node.nodeType === Node.TEXT_NODE;\r\n };\r\n DomUtils.isElementNode = function (node) {\r\n return node.nodeType === Node.ELEMENT_NODE;\r\n };\r\n DomUtils.isHTMLTableRowElement = function (element) {\r\n return element.tagName === 'TR';\r\n };\r\n DomUtils.isItParent = 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.getParentByTagName = function (element, tagName) {\r\n tagName = tagName.toUpperCase();\r\n while (element) {\r\n if (element.tagName === 'BODY')\r\n return null;\r\n if (element.tagName === tagName)\r\n return element;\r\n element = element.parentNode;\r\n }\r\n return null;\r\n };\r\n DomUtils.getDocumentScrollTop = function () {\r\n var isScrollBodyIE = browser_1.Browser.IE && DomUtils.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 && DomUtils.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.getCurrentStyle = function (element) {\r\n if (element.currentStyle)\r\n return element.currentStyle;\r\n else if (document.defaultView && document.defaultView.getComputedStyle) {\r\n var result = document.defaultView.getComputedStyle(element, null);\r\n if (!result && browser_1.Browser.Firefox && window.frameElement) {\r\n var changes = [];\r\n var curElement = window.frameElement;\r\n while (!(result = document.defaultView.getComputedStyle(element, null))) {\r\n changes.push([curElement, curElement.style.display]);\r\n curElement.style.setProperty('display', 'block', 'important');\r\n curElement = curElement.tagName === 'BODY' ? curElement.ownerDocument.defaultView.frameElement : curElement.parentNode;\r\n }\r\n result = cloneObject(result);\r\n for (var ch = void 0, i = 0; ch = changes[i]; i++)\r\n ch[0].style.display = ch[1];\r\n document.body.offsetWidth;\r\n }\r\n return result;\r\n }\r\n return window.getComputedStyle(element, null);\r\n };\r\n DomUtils.setFocus = function (element) {\r\n function focusCore() {\r\n try {\r\n element.focus();\r\n if (browser_1.Browser.IE && document.activeElement !== element)\r\n element.focus();\r\n }\r\n catch (e) {\r\n }\r\n }\r\n if (browser_1.Browser.MacOSMobilePlatform)\r\n focusCore();\r\n else {\r\n setTimeout(function () {\r\n focusCore();\r\n }, 100);\r\n }\r\n };\r\n DomUtils.hasClassName = function (element, className) {\r\n try {\r\n var classNames = className.split(' ');\r\n var classList = element.classList;\r\n if (classList) {\r\n for (var i = classNames.length - 1; i >= 0; i--) {\r\n if (!classList.contains(classNames[i]))\r\n return false;\r\n }\r\n }\r\n else {\r\n var elementClassName = element.getAttribute && element.getAttribute('class');\r\n if (!elementClassName)\r\n return false;\r\n var elementClasses = elementClassName.split(' ');\r\n for (var i = classNames.length - 1; i >= 0; i--) {\r\n if (elementClasses.indexOf(classNames[i]) < 0)\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n };\r\n DomUtils.addClassName = function (element, className) {\r\n if (!DomUtils.hasClassName(element, className)) {\r\n var elementClassName = element.getAttribute && element.getAttribute('class');\r\n element.setAttribute('class', elementClassName === '' ? className : elementClassName + \" \" + className);\r\n }\r\n };\r\n DomUtils.removeClassName = function (element, className) {\r\n var elementClassName = element.getAttribute && element.getAttribute('class');\r\n var updClassName = \" \" + elementClassName + \" \";\r\n var newClassName = updClassName.replace(\" \" + className + \" \", ' ');\r\n if (updClassName.length !== newClassName.length)\r\n element.setAttribute('class', string_1.StringUtils.trim(newClassName));\r\n };\r\n DomUtils.toggleClassName = function (element, className, toggle) {\r\n if (toggle === undefined) {\r\n if (DomUtils.hasClassName(element, className))\r\n DomUtils.removeClassName(element, className);\r\n else\r\n DomUtils.addClassName(element, className);\r\n }\r\n else {\r\n if (toggle)\r\n DomUtils.addClassName(element, className);\r\n else\r\n DomUtils.removeClassName(element, className);\r\n }\r\n };\r\n DomUtils.pxToInt = function (px) {\r\n return pxToNumber(px, parseInt);\r\n };\r\n DomUtils.pxToFloat = function (px) {\r\n return pxToNumber(px, parseFloat);\r\n };\r\n DomUtils.getAbsolutePositionY = function (element) {\r\n function getAbsolutePositionY_IE(element) {\r\n return browser_1.Browser.IE && element.parentNode === null ?\r\n 0 :\r\n element.getBoundingClientRect().top + DomUtils.getDocumentScrollTop();\r\n }\r\n function getAbsolutePositionY_FF3(element) {\r\n return Math.round(element.getBoundingClientRect().top + DomUtils.getDocumentScrollTop());\r\n }\r\n function getAbsolutePositionY_Opera(curEl) {\r\n var isFirstCycle = true;\r\n if (curEl && DomUtils.isHTMLTableRowElement(curEl) && curEl.cells.length > 0)\r\n curEl = curEl.cells[0];\r\n var pos = 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 function getAbsolutePositionY_NS(curEl) {\r\n var pos = 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 = DomUtils.getCurrentStyle(curEl);\r\n if (curEl.tagName === 'DIV' && style.overflow !== 'visible')\r\n pos += DomUtils.pxToInt(style.borderTopWidth);\r\n }\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n }\r\n function getAbsolutePositionY_Other(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 if (!element)\r\n return 0;\r\n if (browser_1.Browser.IE)\r\n return getAbsolutePositionY_IE(element);\r\n else if (browser_1.Browser.Firefox && browser_1.Browser.Version >= 3)\r\n return getAbsolutePositionY_FF3(element);\r\n else if (browser_1.Browser.Opera)\r\n return getAbsolutePositionY_Opera(element);\r\n else if (browser_1.Browser.NetscapeFamily && (!browser_1.Browser.Firefox || browser_1.Browser.Version < 3))\r\n return getAbsolutePositionY_NS(element);\r\n else if (browser_1.Browser.WebKitFamily || browser_1.Browser.Edge)\r\n return getAbsolutePositionY_FF3(element);\r\n return getAbsolutePositionY_Other(element);\r\n };\r\n DomUtils.getAbsolutePositionX = function (element) {\r\n function getAbsolutePositionX_IE(element) {\r\n return browser_1.Browser.IE && element.parentNode === null ?\r\n 0 :\r\n element.getBoundingClientRect().left + DomUtils.getDocumentScrollLeft();\r\n }\r\n function getAbsolutePositionX_FF3(element) {\r\n return Math.round(element.getBoundingClientRect().left + DomUtils.getDocumentScrollLeft());\r\n }\r\n function getAbsolutePositionX_Opera(curEl) {\r\n var isFirstCycle = true;\r\n var pos = 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 function getAbsolutePositionX_NS(curEl) {\r\n var pos = 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 = DomUtils.getCurrentStyle(curEl);\r\n if (curEl.tagName === 'DIV' && style.overflow !== 'visible')\r\n pos += DomUtils.pxToInt(style.borderLeftWidth);\r\n }\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n }\r\n function getAbsolutePositionX_Other(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 if (!element)\r\n return 0;\r\n if (browser_1.Browser.IE)\r\n return getAbsolutePositionX_IE(element);\r\n else if (browser_1.Browser.Firefox && browser_1.Browser.Version >= 3)\r\n return getAbsolutePositionX_FF3(element);\r\n else if (browser_1.Browser.Opera)\r\n return getAbsolutePositionX_Opera(element);\r\n else if (browser_1.Browser.NetscapeFamily && (!browser_1.Browser.Firefox || browser_1.Browser.Version < 3))\r\n return getAbsolutePositionX_NS(element);\r\n else if (browser_1.Browser.WebKitFamily || browser_1.Browser.Edge)\r\n return getAbsolutePositionX_FF3(element);\r\n else\r\n return getAbsolutePositionX_Other(element);\r\n };\r\n DomUtils.isInteractiveControl = function (element) {\r\n return ['A', 'INPUT', 'SELECT', 'OPTION', 'TEXTAREA', 'BUTTON', 'IFRAME'].indexOf(element.tagName) > -1;\r\n };\r\n DomUtils.getClearClientHeight = function (element) {\r\n return element.offsetHeight - (DomUtils.getTopBottomPaddings(element) + DomUtils.getVerticalBordersWidth(element));\r\n };\r\n DomUtils.getTopBottomPaddings = function (element, style) {\r\n var currentStyle = style ? style : DomUtils.getCurrentStyle(element);\r\n return DomUtils.pxToInt(currentStyle.paddingTop) + DomUtils.pxToInt(currentStyle.paddingBottom);\r\n };\r\n DomUtils.getVerticalBordersWidth = function (element, style) {\r\n if (!common_1.isDefined(style))\r\n style = (browser_1.Browser.IE && browser_1.Browser.MajorVersion !== 9 && window.getComputedStyle) ? window.getComputedStyle(element) : DomUtils.getCurrentStyle(element);\r\n var res = 0;\r\n if (style.borderTopStyle !== 'none')\r\n res += DomUtils.pxToFloat(style.borderTopWidth);\r\n if (style.borderBottomStyle !== 'none')\r\n res += DomUtils.pxToFloat(style.borderBottomWidth);\r\n return res;\r\n };\r\n DomUtils.getNodes = function (parent, predicate) {\r\n var collection = parent.all || parent.getElementsByTagName('*');\r\n var result = [];\r\n for (var i = 0; i < collection.length; i++) {\r\n var element = collection[i];\r\n if (predicate(element))\r\n result.push(element);\r\n }\r\n return result;\r\n };\r\n DomUtils.getChildNodes = function (parent, predicate) {\r\n var collection = parent.childNodes;\r\n var result = [];\r\n for (var i = 0; i < collection.length; i++) {\r\n var element = collection[i];\r\n if (predicate(element))\r\n result.push(element);\r\n }\r\n return result;\r\n };\r\n DomUtils.getNodesByClassName = function (parent, className) {\r\n if (parent.querySelectorAll) {\r\n var children = parent.querySelectorAll(\".\" + className);\r\n var result_1 = [];\r\n children.forEach(function (element) { return result_1.push(element); });\r\n return result_1;\r\n }\r\n else\r\n return DomUtils.getNodes(parent, function (elem) { return DomUtils.hasClassName(elem, className); });\r\n };\r\n DomUtils.getChildNodesByClassName = function (parent, className) {\r\n function nodeListToArray(nodeList, filter) {\r\n var result = [];\r\n nodeList.forEach(function (element) {\r\n if (filter(element))\r\n result.push(element);\r\n });\r\n return result;\r\n }\r\n if (parent.querySelectorAll) {\r\n var children = parent.querySelectorAll(\".\" + className);\r\n return nodeListToArray(children, function (element) { return element.parentNode === parent; });\r\n }\r\n else {\r\n return DomUtils.getChildNodes(parent, function (elem) {\r\n if (DomUtils.isElementNode(elem))\r\n return common_1.isNonNullString(elem.className) && DomUtils.hasClassName(elem, elem.className);\r\n else\r\n return false;\r\n });\r\n }\r\n };\r\n DomUtils.getVerticalScrollBarWidth = function () {\r\n if (DomUtils.verticalScrollBarWidth === undefined) {\r\n var container = document.createElement('DIV');\r\n container.style.cssText = 'position: absolute; top: 0px; left: 0px; visibility: hidden; width: 200px; height: 150px; overflow: hidden; box-sizing: content-box';\r\n document.body.appendChild(container);\r\n var child = document.createElement('P');\r\n container.appendChild(child);\r\n child.style.cssText = 'width: 100%; height: 200px;';\r\n var widthWithoutScrollBar = child.offsetWidth;\r\n container.style.overflow = 'scroll';\r\n var widthWithScrollBar = child.offsetWidth;\r\n if (widthWithoutScrollBar === widthWithScrollBar)\r\n widthWithScrollBar = container.clientWidth;\r\n DomUtils.verticalScrollBarWidth = widthWithoutScrollBar - widthWithScrollBar;\r\n document.body.removeChild(container);\r\n }\r\n return DomUtils.verticalScrollBarWidth;\r\n };\r\n DomUtils.getHorizontalBordersWidth = function (element, style) {\r\n if (!common_1.isDefined(style))\r\n style = (browser_1.Browser.IE && window.getComputedStyle) ? window.getComputedStyle(element) : DomUtils.getCurrentStyle(element);\r\n var res = 0;\r\n if (style.borderLeftStyle !== 'none')\r\n res += DomUtils.pxToFloat(style.borderLeftWidth);\r\n if (style.borderRightStyle !== 'none')\r\n res += DomUtils.pxToFloat(style.borderRightWidth);\r\n return res;\r\n };\r\n DomUtils.getFontFamiliesFromCssString = function (cssString) {\r\n return cssString.split(',').map(function (fam) { return string_1.StringUtils.trim(fam.replace(/'|\"/gi, '')); });\r\n };\r\n DomUtils.getInnerText = function (container) {\r\n if (browser_1.Browser.Safari && browser_1.Browser.MajorVersion <= 5) {\r\n if (DomUtils.html2PlainTextFilter === null) {\r\n DomUtils.html2PlainTextFilter = document.createElement('DIV');\r\n DomUtils.html2PlainTextFilter.style.width = '0';\r\n DomUtils.html2PlainTextFilter.style.height = '0';\r\n DomUtils.html2PlainTextFilter.style.overflow = 'visible';\r\n DomUtils.html2PlainTextFilter.style.display = 'none';\r\n document.body.appendChild(DomUtils.html2PlainTextFilter);\r\n }\r\n var filter = DomUtils.html2PlainTextFilter;\r\n filter.innerHTML = container.innerHTML;\r\n filter.style.display = '';\r\n var innerText = filter.innerText;\r\n filter.style.display = 'none';\r\n return innerText;\r\n }\r\n else if (browser_1.Browser.NetscapeFamily || browser_1.Browser.WebKitFamily || (browser_1.Browser.IE && browser_1.Browser.Version >= 9) || browser_1.Browser.Edge)\r\n return container.textContent;\r\n else\r\n return container.innerText;\r\n };\r\n DomUtils.html2PlainTextFilter = null;\r\n DomUtils.verticalScrollBarWidth = undefined;\r\n return DomUtils;\r\n}());\r\nexports.DomUtils = DomUtils;\r\nfunction cloneObject(srcObject) {\r\n if (typeof (srcObject) !== 'object' || !common_1.isDefined(srcObject))\r\n return srcObject;\r\n var newObject = {};\r\n for (var i in srcObject)\r\n newObject[i] = srcObject[i];\r\n return newObject;\r\n}\r\nfunction pxToNumber(px, parseFunction) {\r\n var result = 0;\r\n if (common_1.isDefined(px) && 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\nfunction getAbsoluteScrollOffset_OperaFF(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 = DomUtils.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\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 = x;\r\n this.y = y;\r\n }\r\n Point.zero = function () {\r\n return new Point(0, 0);\r\n };\r\n Point.fromNumber = function (num) {\r\n return new Point(num, num);\r\n };\r\n Point.prototype.isZero = function () {\r\n return this.x === 0 && this.y === 0;\r\n };\r\n Point.prototype.toString = function () {\r\n return JSON.stringify(this);\r\n };\r\n Point.prototype.copyFrom = function (obj) {\r\n this.x = obj.x;\r\n this.y = obj.y;\r\n };\r\n Point.prototype.clone = function () {\r\n return new Point(this.x, this.y);\r\n };\r\n Point.prototype.equals = function (obj) {\r\n return this.x === obj.x && this.y === obj.y;\r\n };\r\n Point.prototype.offset = function (offsetX, offsetY) {\r\n this.x += offsetX;\r\n this.y += offsetY;\r\n return this;\r\n };\r\n Point.prototype.offsetByPoint = function (offset) {\r\n this.x += offset.x;\r\n this.y += offset.y;\r\n return this;\r\n };\r\n Point.prototype.multiply = function (multiplierX, multiplierY) {\r\n this.x *= multiplierX;\r\n this.y *= multiplierY;\r\n return this;\r\n };\r\n Point.prototype.negative = function () {\r\n this.x *= -1;\r\n this.y *= -1;\r\n return this;\r\n };\r\n Point.prototype.applyConverter = function (converter) {\r\n this.x = converter(this.x);\r\n this.y = converter(this.y);\r\n return this;\r\n };\r\n Point.plus = function (a, b) {\r\n return new Point(a.x + b.x, a.y + b.y);\r\n };\r\n Point.minus = function (a, b) {\r\n return new Point(a.x - b.x, a.y - b.y);\r\n };\r\n Point.xComparer = function (a, b) {\r\n return a.x - b.x;\r\n };\r\n Point.yComparer = function (a, b) {\r\n return a.y - b.y;\r\n };\r\n Point.equals = function (a, b) {\r\n return a.x === b.x && a.y === b.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 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 = null;\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 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 = null;\r\n var minOccurenceIndex = Number.MAX_VALUE;\r\n for (var identStr in platformIdentStrings) {\r\n if (!Object.prototype.hasOwnProperty.call(platformIdentStrings, 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 }\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 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.getVersionFromMatches = function (matches) {\r\n var result = -1;\r\n var versionStr = '';\r\n if (matches) {\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 }\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 (typeof document !== 'undefined' && 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.getUserAgent = function () {\r\n return typeof navigator !== 'undefined' && navigator.userAgent ? navigator.userAgent.toLowerCase() : '';\r\n };\r\n Browser.UserAgent = Browser.getUserAgent();\r\n Browser._foo = Browser.IdentUserAgent(Browser.UserAgent);\r\n return Browser;\r\n}());\r\nexports.Browser = Browser;\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 browser_1 = __webpack_require__(5);\r\nvar common_1 = __webpack_require__(1);\r\nvar dom_1 = __webpack_require__(3);\r\nvar touch_1 = __webpack_require__(15);\r\nvar EvtUtils = (function () {\r\n function EvtUtils() {\r\n }\r\n EvtUtils.preventEvent = function (evt) {\r\n if (evt.preventDefault)\r\n evt.preventDefault();\r\n else\r\n evt.returnValue = false;\r\n };\r\n EvtUtils.getEventSource = function (evt) {\r\n if (!common_1.isDefined(evt))\r\n return null;\r\n return evt.srcElement ? evt.srcElement : evt.target;\r\n };\r\n EvtUtils.getEventSourceByPosition = function (evt) {\r\n if (!common_1.isDefined(evt))\r\n return null;\r\n if (document.elementFromPoint && EvtUtils.getEventX(evt) !== undefined && EvtUtils.getEventY(evt) !== undefined)\r\n return document.elementFromPoint(EvtUtils.getEventX(evt), EvtUtils.getEventY(evt));\r\n return evt.srcElement ? evt.srcElement : evt.target;\r\n };\r\n EvtUtils.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 EvtUtils.isLeftButtonPressed = function (evt) {\r\n if (touch_1.TouchUtils.isTouchEvent(evt))\r\n return true;\r\n evt = (browser_1.Browser.IE && common_1.isDefined(event)) ? event : 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 === touch_1.TouchUtils.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 EvtUtils.preventEventAndBubble = function (evt) {\r\n EvtUtils.preventEvent(evt);\r\n if (evt.stopPropagation)\r\n evt.stopPropagation();\r\n evt.cancelBubble = true;\r\n };\r\n EvtUtils.clientEventRequiresDocScrollCorrection = function () {\r\n var isSafariVerLess3 = browser_1.Browser.Safari && browser_1.Browser.Version < 3;\r\n var 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 EvtUtils.getEventX = function (evt) {\r\n if (touch_1.TouchUtils.isTouchEvent(evt))\r\n return touch_1.TouchUtils.getEventX(evt);\r\n return evt.clientX + (EvtUtils.clientEventRequiresDocScrollCorrection() ? dom_1.DomUtils.getDocumentScrollLeft() : 0);\r\n };\r\n EvtUtils.getEventY = function (evt) {\r\n if (touch_1.TouchUtils.isTouchEvent(evt))\r\n return touch_1.TouchUtils.getEventY(evt);\r\n return evt.clientY + (EvtUtils.clientEventRequiresDocScrollCorrection() ? dom_1.DomUtils.getDocumentScrollTop() : 0);\r\n };\r\n EvtUtils.cancelBubble = function (evt) {\r\n evt.cancelBubble = true;\r\n };\r\n EvtUtils.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 return EvtUtils;\r\n}());\r\nexports.EvtUtils = EvtUtils;\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\nexports.SimpleCommandState = exports.CommandBase = void 0;\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: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandBase.prototype, \"history\", {\r\n get: function () { return this.control.history; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandBase.prototype, \"validationController\", {\r\n get: function () { return this.control.validationController; },\r\n enumerable: false,\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: false,\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 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/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskAreaManager = exports.MouseEventSource = void 0;\r\nvar browser_1 = __webpack_require__(5);\r\nvar point_1 = __webpack_require__(4);\r\nvar dom_1 = __webpack_require__(3);\r\nvar evt_1 = __webpack_require__(6);\r\nvar touch_1 = __webpack_require__(15);\r\nvar GridLayoutCalculator_1 = __webpack_require__(17);\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.initMouseEventHandlers = function () {\r\n var _this = this;\r\n this.onMouseClickHandler = function (evt) { _this.onTaskAreaClick(evt); };\r\n this.onMouseDblClickHandler = function (evt) { _this.onTaskAreaDblClick(evt); };\r\n this.onScrollHandler = this.ganttView.updateView.bind(this.ganttView);\r\n this.onContextMenuHandler = function (evt) { _this.onContextMenu(evt); };\r\n this.onMouseWheelHandler = function (evt) { _this.onMouseWheel(evt); };\r\n this.onMouseDownHandler = function (evt) { _this.onMouseDown(evt); };\r\n this.onMouseMoveHandler = function (evt) { _this.onDocumentMouseMove(evt); };\r\n this.onMouseUpHandler = function (evt) { _this.onDocumentMouseUp(evt); };\r\n this.onKeyDownHandler = function (evt) { _this.onDocumentKeyDown(evt); };\r\n };\r\n TaskAreaManager.prototype.initTouchEventHandlers = function () {\r\n var _this = this;\r\n this.onTouchStartHandler = function (evt) { _this.onTouchStart(evt); };\r\n this.onTouchEndHandler = function (evt) { _this.onTouchEnd(evt); };\r\n this.onTouchMoveHandler = function (evt) { _this.onTouchMove(evt); };\r\n this.onPointerDownHandler = function (evt) { _this.onMouseDown(evt); };\r\n this.onPointerUpHandler = function (evt) { _this.onDocumentMouseUp(evt); };\r\n this.onPointerMoveHandler = function (evt) { _this.onDocumentMouseMove(evt); };\r\n };\r\n TaskAreaManager.prototype.initMouseEvents = function () {\r\n this.initMouseEventHandlers();\r\n this.ganttView.taskArea.addEventListener(\"click\", this.onMouseClickHandler);\r\n this.ganttView.taskArea.addEventListener(\"dblclick\", this.onMouseDblClickHandler);\r\n this.ganttView.taskArea.addEventListener(\"scroll\", this.onScrollHandler);\r\n this.ganttView.taskArea.addEventListener(\"contextmenu\", this.onContextMenuHandler);\r\n this.ganttView.taskArea.addEventListener(evt_1.EvtUtils.getMouseWheelEventName(), this.onMouseWheelHandler);\r\n this.ganttView.taskArea.addEventListener(\"mousedown\", this.onMouseDownHandler);\r\n document.addEventListener(\"mousemove\", this.onMouseMoveHandler);\r\n document.addEventListener(\"mouseup\", this.onMouseUpHandler);\r\n document.addEventListener(\"keydown\", this.onKeyDownHandler);\r\n };\r\n TaskAreaManager.prototype.detachMouseEvents = function () {\r\n this.initTouchEventHandlers();\r\n this.ganttView.taskArea.removeEventListener(\"click\", this.onMouseClickHandler);\r\n this.ganttView.taskArea.removeEventListener(\"dblclick\", this.onMouseDblClickHandler);\r\n this.ganttView.taskArea.removeEventListener(\"scroll\", this.onScrollHandler);\r\n this.ganttView.taskArea.removeEventListener(\"contextmenu\", this.onContextMenuHandler);\r\n this.ganttView.taskArea.removeEventListener(evt_1.EvtUtils.getMouseWheelEventName(), this.onMouseWheelHandler);\r\n this.ganttView.taskArea.removeEventListener(\"mousedown\", this.onMouseDownHandler);\r\n document.removeEventListener(\"mousemove\", this.onMouseMoveHandler);\r\n document.removeEventListener(\"mouseup\", this.onMouseUpHandler);\r\n document.removeEventListener(\"keydown\", this.onKeyDownHandler);\r\n };\r\n TaskAreaManager.prototype.initTouchEvents = function () {\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\", this.onTouchStartHandler);\r\n this.ganttView.taskArea.addEventListener(\"touchend\", this.onTouchEndHandler);\r\n this.ganttView.taskArea.addEventListener(\"touchmove\", this.onTouchMoveHandler);\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\", this.onPointerDownHandler);\r\n this.ganttView.taskArea.addEventListener(\"pointerup\", this.onPointerUpHandler);\r\n this.ganttView.taskArea.addEventListener(\"pointermove\", this.onPointerMoveHandler);\r\n }\r\n };\r\n TaskAreaManager.prototype.detachTouchEvents = function () {\r\n this.ganttView.taskArea.removeEventListener(\"touchstart\", this.onTouchStartHandler);\r\n this.ganttView.taskArea.removeEventListener(\"touchend\", this.onTouchEndHandler);\r\n this.ganttView.taskArea.removeEventListener(\"touchmove\", this.onTouchMoveHandler);\r\n this.ganttView.taskArea.removeEventListener(\"pointerdown\", this.onPointerDownHandler);\r\n this.ganttView.taskArea.removeEventListener(\"pointerup\", this.onPointerUpHandler);\r\n this.ganttView.taskArea.removeEventListener(\"pointermove\", this.onPointerMoveHandler);\r\n };\r\n TaskAreaManager.prototype.attachEventsOnTask = function (taskElement) {\r\n var _this = this;\r\n this.onMouseEnterHandler = 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 taskElement.addEventListener(\"mouseenter\", this.onMouseEnterHandler);\r\n };\r\n TaskAreaManager.prototype.detachEventsOnTask = function (taskElement) {\r\n taskElement.removeEventListener(\"mouseenter\", this.onMouseEnterHandler);\r\n };\r\n TaskAreaManager.prototype.detachEvents = function () {\r\n this.detachMouseEvents();\r\n this.detachTouchEvents();\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 = dom_1.DomUtils.isItParent(this.ganttView.taskArea, evt_1.EvtUtils.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(touch_1.TouchUtils.getEventX(evt), touch_1.TouchUtils.getEventY(evt));\r\n var clickedItem = this.ganttView.viewModel.items[this.getClickedTaskIndex(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 if (clickedItem && this.ganttView.onTaskDblClick(clickedItem.task.id, evt))\r\n this.ganttView.commandManager.showTaskEditDialog.execute(clickedItem.task);\r\n }\r\n else\r\n this.eventManager.onTouchStart(evt);\r\n if (clickedItem && this.ganttView.onTaskClick(clickedItem.task.id, 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 != touch_1.TouchUtils.getEventX(evt) || this.position.y != touch_1.TouchUtils.getEventY(evt)) {\r\n this.eventManager.onTouchMove(evt);\r\n this.preventSelect = true;\r\n }\r\n };\r\n TaskAreaManager.prototype.getDependencyKeyFromSource = function (source) {\r\n return this.ganttView.viewModel.convertInternalToPublicKey(\"dependency\", source.getAttribute(\"dependency-id\"));\r\n };\r\n TaskAreaManager.prototype.onContextMenu = function (evt) {\r\n var source = evt_1.EvtUtils.getEventSource(evt);\r\n var isDependency = this.isConnectorLine(evt);\r\n var type = isDependency ? \"dependency\" : \"task\";\r\n var key = isDependency ? this.getDependencyKeyFromSource(source) : this.getClickedTaskKey(this.getClickedTaskIndex(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 if (this.ganttView.ganttOwner.onGanttViewContextMenu(evt, key, type)) {\r\n var info = {\r\n event: evt,\r\n type: type,\r\n key: key,\r\n position: new point_1.Point(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.getEventY(evt))\r\n };\r\n this.ganttView.ganttOwner.showPopupMenu(info);\r\n }\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(evt_1.EvtUtils.getEventX(evt));\r\n };\r\n TaskAreaManager.prototype.getClickedTaskIndex = function (evt) {\r\n var y = evt_1.EvtUtils.getEventY(evt);\r\n var taskAreaY = dom_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.getClickedTaskKey = function (index) {\r\n var clickedItem = this.ganttView.viewModel.items[index];\r\n return clickedItem && clickedItem.task && clickedItem.task.id;\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 clickedTaskIndex = this.getClickedTaskIndex(evt);\r\n var clickedItem = this.ganttView.viewModel.items[clickedTaskIndex];\r\n if (clickedItem)\r\n this.ganttView.onTaskClick(clickedItem.task.id, evt);\r\n };\r\n TaskAreaManager.prototype.onTaskAreaDblClick = function (evt) {\r\n evt.preventDefault();\r\n var clickedTaskIndex = this.getClickedTaskIndex(evt);\r\n var clickedItem = this.ganttView.viewModel.items[clickedTaskIndex];\r\n if (clickedItem && this.ganttView.onTaskDblClick(clickedItem.task.id, evt))\r\n this.ganttView.commandManager.showTaskEditDialog.execute(clickedItem.task);\r\n };\r\n TaskAreaManager.prototype.isConnectorLine = function (evt) {\r\n var source = evt_1.EvtUtils.getEventSource(evt);\r\n return dom_1.DomUtils.hasClassName(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL) ||\r\n dom_1.DomUtils.hasClassName(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/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DateRange = void 0;\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/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataObject = void 0;\r\nvar common_1 = __webpack_require__(1);\r\nvar math_1 = __webpack_require__(34);\r\nvar DataObject = (function () {\r\n function DataObject() {\r\n this.internalId = math_1.MathUtils.generateGuid();\r\n }\r\n DataObject.prototype.assignFromObject = function (sourceObj) {\r\n if (!common_1.isDefined(sourceObj))\r\n return;\r\n if (common_1.isDefined(sourceObj.id)) {\r\n this.id = sourceObj.id;\r\n this.internalId = String(sourceObj.id);\r\n }\r\n };\r\n return DataObject;\r\n}());\r\nexports.DataObject = DataObject;\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\nexports.Dependency = exports.DependencyType = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DataObject_1 = __webpack_require__(10);\r\nvar common_1 = __webpack_require__(1);\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 (common_1.isDefined(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 (common_1.isDefined(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/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CompositionHistoryItem = exports.HistoryItem = void 0;\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/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionBase = void 0;\r\nvar common_1 = __webpack_require__(1);\r\nvar Utils_1 = __webpack_require__(57);\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 (!common_1.isDefined(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._addItem(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._removeItems(index, 1);\r\n };\r\n CollectionBase.prototype.clear = function () {\r\n this._removeItems(0, this._items.length);\r\n };\r\n CollectionBase.prototype._addItem = function (element) {\r\n this._items.push(element);\r\n delete this._invertedItems;\r\n };\r\n CollectionBase.prototype._removeItems = function (start, count) {\r\n this._items.splice(start, count);\r\n delete this._invertedItems;\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: false,\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: false,\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 Object.defineProperty(CollectionBase.prototype, \"invertedItems\", {\r\n get: function () {\r\n var _a;\r\n (_a = this._invertedItems) !== null && _a !== void 0 ? _a : (this._invertedItems = this._createInvertedItems());\r\n return this._invertedItems;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CollectionBase.prototype._createInvertedItems = function () {\r\n var result = {};\r\n for (var i = 0; i < this._items.length; i++) {\r\n var item = this._items[i];\r\n result[item.internalId] = item;\r\n }\r\n return result;\r\n };\r\n CollectionBase.prototype.getItemById = function (id) {\r\n return this.invertedItems[id];\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 (!common_1.isDefined(sourceCollection))\r\n return;\r\n this.items = sourceCollection.items;\r\n };\r\n CollectionBase.prototype.importFromObject = function (source) {\r\n if (!common_1.isDefined(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 else\r\n this.createItemFromObjectAndAdd(source);\r\n };\r\n CollectionBase.prototype.createItemFromObjectAndAdd = function (source) {\r\n if (common_1.isDefined(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.GanttJsonUtils.parseJson(json));\r\n };\r\n return CollectionBase;\r\n}());\r\nexports.CollectionBase = CollectionBase;\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\nexports.TaskTitlePosition = exports.Position = exports.ViewType = void 0;\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/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(5);\r\nvar common_1 = __webpack_require__(1);\r\nvar TouchUtils = (function () {\r\n function TouchUtils() {\r\n }\r\n TouchUtils.onEventAttachingToDocument = function (eventName, func) {\r\n if (browser_1.Browser.MacOSMobilePlatform && TouchUtils.isTouchEventName(eventName)) {\r\n if (!TouchUtils.documentTouchHandlers[eventName])\r\n TouchUtils.documentTouchHandlers[eventName] = [];\r\n TouchUtils.documentTouchHandlers[eventName].push(func);\r\n return TouchUtils.documentEventAttachingAllowed;\r\n }\r\n return true;\r\n };\r\n TouchUtils.isTouchEventName = function (eventName) {\r\n return browser_1.Browser.WebKitTouchUI && (eventName.indexOf('touch') > -1 || eventName.indexOf('gesture') > -1);\r\n };\r\n TouchUtils.isTouchEvent = function (evt) {\r\n return browser_1.Browser.WebKitTouchUI && common_1.isDefined(evt.changedTouches);\r\n };\r\n TouchUtils.getEventX = function (evt) {\r\n return browser_1.Browser.IE ? evt.pageX : evt.changedTouches[0].pageX;\r\n };\r\n TouchUtils.getEventY = function (evt) {\r\n return browser_1.Browser.IE ? evt.pageY : evt.changedTouches[0].pageY;\r\n };\r\n TouchUtils.touchMouseDownEventName = browser_1.Browser.WebKitTouchUI ? 'touchstart' : (browser_1.Browser.Edge && browser_1.Browser.MSTouchUI && window.PointerEvent ? 'pointerdown' : 'mousedown');\r\n TouchUtils.touchMouseUpEventName = browser_1.Browser.WebKitTouchUI ? 'touchend' : (browser_1.Browser.Edge && browser_1.Browser.MSTouchUI && window.PointerEvent ? 'pointerup' : 'mouseup');\r\n TouchUtils.touchMouseMoveEventName = browser_1.Browser.WebKitTouchUI ? 'touchmove' : (browser_1.Browser.Edge && browser_1.Browser.MSTouchUI && window.PointerEvent ? 'pointermove' : 'mousemove');\r\n TouchUtils.msTouchDraggableClassName = 'dxMSTouchDraggable';\r\n TouchUtils.documentTouchHandlers = {};\r\n TouchUtils.documentEventAttachingAllowed = true;\r\n return TouchUtils;\r\n}());\r\nexports.TouchUtils = TouchUtils;\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\nexports.RecurrenceBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DataObject_1 = __webpack_require__(10);\r\nvar DayOfWeek_1 = __webpack_require__(71);\r\nvar DayOfWeekMonthlyOccurrence_1 = __webpack_require__(39);\r\nvar Month_1 = __webpack_require__(72);\r\nvar common_1 = __webpack_require__(1);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar RecurrenceFactory_1 = __webpack_require__(40);\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 (common_1.isDefined(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 (common_1.isDefined(sourceObj.interval))\r\n this.interval = sourceObj.interval;\r\n if (common_1.isDefined(sourceObj.occurrenceCount))\r\n this.occurrenceCount = sourceObj.occurrenceCount;\r\n if (common_1.isDefined(sourceObj.dayOfWeek))\r\n this.dayOfWeekInternal = RecurrenceFactory_1.RecurrenceFactory.getEnumValue(DayOfWeek_1.DayOfWeek, sourceObj.dayOfWeek);\r\n if (common_1.isDefined(sourceObj.day))\r\n this.dayInternal = sourceObj.day;\r\n if (common_1.isDefined(sourceObj.dayOfWeekOccurrence))\r\n this.dayOfWeekOccurrenceInternal = RecurrenceFactory_1.RecurrenceFactory.getEnumValue(DayOfWeekMonthlyOccurrence_1.DayOfWeekMonthlyOccurrence, sourceObj.dayOfWeekOccurrence);\r\n if (common_1.isDefined(sourceObj.month))\r\n this.monthInternal = RecurrenceFactory_1.RecurrenceFactory.getEnumValue(Month_1.Month, sourceObj.month);\r\n if (common_1.isDefined(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 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 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: false,\r\n configurable: true\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: false,\r\n configurable: true\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: false,\r\n configurable: true\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: false,\r\n configurable: true\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: false,\r\n configurable: true\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: false,\r\n configurable: true\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: false,\r\n configurable: true\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: false,\r\n configurable: true\r\n });\r\n return RecurrenceBase;\r\n}(DataObject_1.DataObject));\r\nexports.RecurrenceBase = RecurrenceBase;\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\nexports.GridLayoutCalculator = void 0;\r\nvar size_1 = __webpack_require__(28);\r\nvar DateRange_1 = __webpack_require__(9);\r\nvar Enums_1 = __webpack_require__(14);\r\nvar GridElementInfo_1 = __webpack_require__(43);\r\nvar Utils_1 = __webpack_require__(42);\r\nvar point_1 = __webpack_require__(4);\r\nvar Dependency_1 = __webpack_require__(11);\r\nvar Settings_1 = __webpack_require__(44);\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(undefined, undefined);\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(0, 0);\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), undefined);\r\n };\r\n GridLayoutCalculator.prototype.getScaleItemSize = function (scaleType) {\r\n return new size_1.Size(this.tickSize.width * this.getScaleItemColSpan(scaleType), 0);\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), 0);\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.left = -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(undefined, undefined);\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(undefined, undefined);\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(0, 0);\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 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 GridLayoutCalculator.prototype.getFinishToFinishConnectorPoints = function (predessorIndex, successorIndex) {\r\n if (predessorIndex < successorIndex)\r\n return this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide(predessorIndex, successorIndex);\r\n return this.getConnectorPoints_FromTopTaskRightSide_ToBottomTaskRightSide(successorIndex, predessorIndex);\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 return this.getConnectorPoints_FromTopTaskLeftSide_ToBottomTaskLeftSide(successorIndex, predessorIndex);\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 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 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 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/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskPropertyManipulator = exports.TaskPropertiesManipulator = exports.BaseManipulator = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItemState_1 = __webpack_require__(46);\r\nvar DateRange_1 = __webpack_require__(9);\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/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HandlerStateBase = void 0;\r\nvar point_1 = __webpack_require__(4);\r\nvar dom_1 = __webpack_require__(3);\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 = dom_1.DomUtils.getAbsolutePositionX(this.handler.control.taskArea);\r\n var taskAreaY = dom_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/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BaseArguments = void 0;\r\nvar BaseArguments = (function () {\r\n function BaseArguments(key) {\r\n this.cancel = false;\r\n this.values = {};\r\n this.key = key;\r\n }\r\n return BaseArguments;\r\n}());\r\nexports.BaseArguments = BaseArguments;\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\nexports.RemoveDependencyHistoryItem = exports.InsertDependencyHistoryItem = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(12);\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/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeassignResourceHistoryItem = exports.AssignResourceHistoryItem = exports.RemoveResourceHistoryItem = exports.CreateResourceHistoryItem = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(12);\r\nvar CreateResourceHistoryItem = (function (_super) {\r\n tslib_1.__extends(CreateResourceHistoryItem, _super);\r\n function CreateResourceHistoryItem(modelManipulator, text, color, callback) {\r\n if (color === void 0) { color = \"\"; }\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.text = text;\r\n _this.color = color;\r\n _this.createCallback = callback;\r\n return _this;\r\n }\r\n CreateResourceHistoryItem.prototype.redo = function () {\r\n this.resource = this.modelManipulator.resource.create(this.text, this.color, this.resource ? this.resource.internalId : null, this.createCallback);\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.resource.color, 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.resource.color, 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/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConfirmationDialogParameters = exports.ConfirmationDialog = exports.ConfirmationType = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DialogBase_1 = __webpack_require__(24);\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/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DialogParametersBase = exports.DialogBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\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 if (!this.onBeforeDialogShow(params))\r\n return false;\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.onBeforeDialogShow = function (params) {\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/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskColorHistoryItem = exports.TaskMoveHistoryItem = exports.TaskEndHistoryItem = exports.TaskStartHistoryItem = exports.TaskProgressHistoryItem = exports.TaskDescriptionHistoryItem = exports.TaskTitleHistoryItem = exports.TaskPropertiesHistoryItemBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(12);\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 TaskDescriptionHistoryItem = (function (_super) {\r\n tslib_1.__extends(TaskDescriptionHistoryItem, _super);\r\n function TaskDescriptionHistoryItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TaskDescriptionHistoryItem.prototype.getPropertiesManipulator = function () {\r\n return this.modelManipulator.task.properties.description;\r\n };\r\n return TaskDescriptionHistoryItem;\r\n}(TaskPropertiesHistoryItemBase));\r\nexports.TaskDescriptionHistoryItem = TaskDescriptionHistoryItem;\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/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceCollection = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CollectionBase_1 = __webpack_require__(13);\r\nvar Resource_1 = __webpack_require__(33);\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/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StringUtils = (function () {\r\n function StringUtils() {\r\n }\r\n StringUtils.isAlpha = function (ch) {\r\n return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z');\r\n };\r\n StringUtils.isDigit = function (ch) {\r\n return ch >= '0' && ch <= '9';\r\n };\r\n StringUtils.stringHashCode = function (str) {\r\n var hash = 0;\r\n if (str.length === 0)\r\n return hash;\r\n var strLen = str.length;\r\n for (var i = 0; i < strLen; i++) {\r\n hash = ((hash << 5) - hash) + str.charCodeAt(i);\r\n hash |= 0;\r\n }\r\n return hash;\r\n };\r\n StringUtils.endsAt = function (str, template) {\r\n var strInd = str.length - 1;\r\n var tmplInd = template.length - 1;\r\n var strStartInd = strInd - tmplInd;\r\n if (strStartInd < 0)\r\n return false;\r\n for (; strInd >= strStartInd; strInd--, tmplInd--) {\r\n if (str[strInd] !== template[tmplInd])\r\n return false;\r\n }\r\n return true;\r\n };\r\n StringUtils.startsAt = function (str, template) {\r\n return str.substr(0, template.length) === template;\r\n };\r\n StringUtils.stringInLowerCase = function (str) {\r\n return str.toLowerCase() === str;\r\n };\r\n StringUtils.stringInUpperCase = function (str) {\r\n return str.toUpperCase() === str;\r\n };\r\n StringUtils.atLeastOneSymbolInUpperCase = function (str) {\r\n for (var i = 0, char = void 0; char = str[i]; i++) {\r\n if (StringUtils.stringInUpperCase(char) && !StringUtils.stringInLowerCase(char))\r\n return true;\r\n }\r\n return false;\r\n };\r\n StringUtils.getSymbolFromEnd = function (text, posFromEnd) {\r\n return text[text.length - posFromEnd];\r\n };\r\n StringUtils.trim = function (str, trimChars) {\r\n if (trimChars === undefined)\r\n return StringUtils.trimInternal(str, true, true);\r\n else {\r\n var joinedChars = trimChars.join('');\r\n return str.replace(new RegExp(\"(^[\" + joinedChars + \"]*)|([\" + joinedChars + \"]*$)\", 'g'), '');\r\n }\r\n };\r\n StringUtils.trimStart = function (str, trimChars) {\r\n if (trimChars === undefined)\r\n return StringUtils.trimInternal(str, true, false);\r\n else {\r\n var joinedChars = trimChars.join('');\r\n return str.replace(new RegExp(\"^[\" + joinedChars + \"]*\", 'g'), '');\r\n }\r\n };\r\n StringUtils.trimEnd = function (str, trimChars) {\r\n if (trimChars === undefined)\r\n return StringUtils.trimInternal(str, false, true);\r\n else {\r\n var joinedChars = trimChars.join('');\r\n return str.replace(new RegExp(\"[\" + joinedChars + \"]*$\", 'g'), '');\r\n }\r\n };\r\n StringUtils.getDecimalSeparator = function () {\r\n return (1.1).toLocaleString().substr(1, 1);\r\n };\r\n StringUtils.repeat = function (str, count) {\r\n return new Array(count <= 0 ? 0 : count + 1).join(str);\r\n };\r\n StringUtils.isNullOrEmpty = function (str) {\r\n return !str || !str.length;\r\n };\r\n StringUtils.padLeft = function (str, totalWidth, paddingChar) {\r\n return StringUtils.repeat(paddingChar, Math.max(0, totalWidth - str.length)) + str;\r\n };\r\n StringUtils.trimInternal = function (source, trimStart, trimEnd) {\r\n var len = source.length;\r\n if (!len)\r\n return source;\r\n if (len < 0xBABA1) {\r\n var result = source;\r\n if (trimStart)\r\n result = result.replace(/^\\s+/, '');\r\n if (trimEnd)\r\n result = result.replace(/\\s+$/, '');\r\n return result;\r\n }\r\n else {\r\n var start = 0;\r\n if (trimEnd) {\r\n while (len > 0 && /\\s/.test(source[len - 1]))\r\n len--;\r\n }\r\n if (trimStart && len > 0) {\r\n while (start < len && /\\s/.test(source[start]))\r\n start++;\r\n }\r\n return source.substring(start, len);\r\n }\r\n };\r\n return StringUtils;\r\n}());\r\nexports.StringUtils = StringUtils;\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 Size = (function () {\r\n function Size(width, height) {\r\n this.width = width;\r\n this.height = height;\r\n }\r\n Size.empty = function () {\r\n return new Size(0, 0);\r\n };\r\n Size.fromNumber = function (num) {\r\n return new Size(num, num);\r\n };\r\n Size.initByCommonAction = function (action) {\r\n var widthAdp = function (s) { return s.width; };\r\n var heightAdp = function (s) { return s.height; };\r\n return new Size(action(widthAdp, heightAdp), action(heightAdp, widthAdp));\r\n };\r\n Size.prototype.isEmpty = function () {\r\n return this.width === 0 && this.height === 0;\r\n };\r\n Size.prototype.toString = function () {\r\n return JSON.stringify(this);\r\n };\r\n Size.prototype.nonNegativeSize = function () {\r\n if (this.width < 0)\r\n this.width = 0;\r\n if (this.height < 0)\r\n this.height = 0;\r\n return this;\r\n };\r\n Size.prototype.offset = function (offsetWidth, offsetHeight) {\r\n this.width = this.width + offsetWidth;\r\n this.height = this.height + offsetHeight;\r\n return this;\r\n };\r\n Size.prototype.multiply = function (multiplierW, multiplierH) {\r\n this.width *= multiplierW;\r\n this.height *= multiplierH;\r\n return this;\r\n };\r\n Size.prototype.equals = function (obj) {\r\n return this.width === obj.width && this.height === obj.height;\r\n };\r\n Size.prototype.clone = function () {\r\n return new Size(this.width, this.height);\r\n };\r\n Size.prototype.copyFrom = function (obj) {\r\n this.width = obj.width;\r\n this.height = obj.height;\r\n };\r\n Size.prototype.applyConverter = function (conv) {\r\n this.width = conv(this.width);\r\n this.height = conv(this.height);\r\n return this;\r\n };\r\n Size.equals = function (a, b) {\r\n return a.width === b.width && a.height === b.height;\r\n };\r\n return Size;\r\n}());\r\nexports.Size = Size;\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\nexports.MouseHandlerStateBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerStateBase_1 = __webpack_require__(19);\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/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerDragBaseState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar point_1 = __webpack_require__(4);\r\nvar evt_1 = __webpack_require__(6);\r\nvar MouseHandlerStateBase_1 = __webpack_require__(29);\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(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.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(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.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/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerDragBaseState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerStateBase_1 = __webpack_require__(49);\r\nvar point_1 = __webpack_require__(4);\r\nvar touch_1 = __webpack_require__(15);\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(touch_1.TouchUtils.getEventX(evt), touch_1.TouchUtils.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(touch_1.TouchUtils.getEventX(evt), touch_1.TouchUtils.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/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceUnassigningArguments = exports.ResourceAssigningArguments = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar BaseArguments_1 = __webpack_require__(20);\r\nvar ResourceAssigningArguments = (function (_super) {\r\n tslib_1.__extends(ResourceAssigningArguments, _super);\r\n function ResourceAssigningArguments(resourceId, taskId) {\r\n var _this = _super.call(this, null) || this;\r\n _this.values = {\r\n resourceId: resourceId,\r\n taskId: taskId\r\n };\r\n return _this;\r\n }\r\n Object.defineProperty(ResourceAssigningArguments.prototype, \"resourceId\", {\r\n get: function () { return this.values.resourceId; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ResourceAssigningArguments.prototype, \"taskId\", {\r\n get: function () { return this.values.taskId; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ResourceAssigningArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.ResourceAssigningArguments = ResourceAssigningArguments;\r\nvar ResourceUnassigningArguments = (function (_super) {\r\n tslib_1.__extends(ResourceUnassigningArguments, _super);\r\n function ResourceUnassigningArguments(assignment) {\r\n var _this = _super.call(this, assignment.internalId) || this;\r\n _this.values = assignment;\r\n return _this;\r\n }\r\n return ResourceUnassigningArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.ResourceUnassigningArguments = ResourceUnassigningArguments;\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\nexports.Resource = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar common_1 = __webpack_require__(1);\r\nvar DataObject_1 = __webpack_require__(10);\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 (common_1.isDefined(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.text = sourceObj.text;\r\n if (common_1.isDefined(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/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar list_1 = __webpack_require__(59);\r\nvar MathUtils = (function () {\r\n function MathUtils() {\r\n }\r\n MathUtils.round = function (value, digits) {\r\n if (digits === void 0) { digits = 0; }\r\n var factor = MathUtils.powFactor[digits];\r\n return Math.round(value * factor) / factor;\r\n };\r\n MathUtils.numberCloseTo = function (num, to, accuracy) {\r\n if (accuracy === void 0) { accuracy = 0.00001; }\r\n return Math.abs(num - to) < accuracy;\r\n };\r\n MathUtils.restrictValue = function (val, minVal, maxVal) {\r\n if (maxVal < minVal)\r\n maxVal = minVal;\r\n if (val > maxVal)\r\n return maxVal;\r\n else if (val < minVal)\r\n return minVal;\r\n return val;\r\n };\r\n MathUtils.getRandomInt = function (min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n };\r\n MathUtils.generateGuid = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = Math.random() * 16 | 0;\r\n var v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n };\r\n MathUtils.powFactor = list_1.ListUtils.initByCallback(20, function (ind) { return Math.pow(10, ind); });\r\n MathUtils.somePrimes = [1009, 1013,\r\n 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069,\r\n 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151,\r\n 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223,\r\n 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291,\r\n 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373,\r\n 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451,\r\n 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511,\r\n 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583,\r\n 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657,\r\n 1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733,\r\n 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811,\r\n 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889,\r\n 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987,\r\n 1993, 1997, 1999, 2003];\r\n return MathUtils;\r\n}());\r\nexports.MathUtils = MathUtils;\r\n\n\n/***/ }),\n/* 35 */\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 (Object.prototype.hasOwnProperty.call(b, 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\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(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, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceAssignment = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DataObject_1 = __webpack_require__(10);\r\nvar common_1 = __webpack_require__(1);\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 (common_1.isDefined(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/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Time = void 0;\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: false,\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: false,\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: false,\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: false,\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/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TimeRange = void 0;\r\nvar DateTimeUtils_1 = __webpack_require__(2);\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 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: false,\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: false,\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 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/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DayOfWeekMonthlyOccurrence = void 0;\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/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RecurrenceFactory = void 0;\r\nvar common_1 = __webpack_require__(1);\r\nvar Daily_1 = __webpack_require__(41);\r\nvar Weekly_1 = __webpack_require__(73);\r\nvar Monthly_1 = __webpack_require__(74);\r\nvar Yearly_1 = __webpack_require__(76);\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 (!common_1.isDefined(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/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Daily = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar RecurrenceBase_1 = __webpack_require__(16);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\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/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ElementTextHelperCultureInfo = exports.ElementTextHelper = exports.DateUtils = void 0;\r\nvar Enums_1 = __webpack_require__(14);\r\nvar dom_1 = __webpack_require__(3);\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.msPerYear;\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.getTimezoneOffsetDiff = function (data1, data2) {\r\n return data2.getTimezoneOffset() - data1.getTimezoneOffset();\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.msPerYear = 365 * 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 = dom_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 result = this.getScaleStartDateCorrectedWithDST(result);\r\n return result;\r\n };\r\n ElementTextHelper.prototype.getScaleStartDateCorrectedWithDST = function (date) {\r\n var timeZoneDiff = DateUtils.getTimezoneOffsetDiff(new Date(this.startTime), date);\r\n return timeZoneDiff > 0 ? new Date(date.getTime() + timeZoneDiff * 60000) : date;\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/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GridElementInfo = void 0;\r\nvar point_1 = __webpack_require__(4);\r\nvar size_1 = __webpack_require__(28);\r\nvar margins_1 = __webpack_require__(78);\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(undefined, undefined);\r\n this.size = new size_1.Size(0, 0);\r\n this.margins = new margins_1.Margins(undefined, undefined, undefined, undefined);\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.left)\r\n element.style.marginLeft = this.margins.left + \"px\";\r\n if (this.margins.top)\r\n element.style.marginTop = this.margins.top + \"px\";\r\n if (this.margins.right)\r\n element.style.marginRight = this.margins.right + \"px\";\r\n if (this.margins.bottom)\r\n element.style.marginBottom = this.margins.bottom + \"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/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ValidationSettings = exports.StripLine = exports.StripLineSettings = exports.EditingSettings = exports.Settings = void 0;\r\nvar Enums_1 = __webpack_require__(14);\r\nvar common_1 = __webpack_require__(1);\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 (common_1.isDefined(settings.viewType))\r\n result.viewType = settings.viewType;\r\n if (common_1.isDefined(settings.taskTitlePosition))\r\n result.taskTitlePosition = settings.taskTitlePosition;\r\n if (common_1.isDefined(settings.showResources))\r\n result.showResources = settings.showResources;\r\n if (common_1.isDefined(settings.areHorizontalBordersEnabled))\r\n result.areHorizontalBordersEnabled = settings.areHorizontalBordersEnabled;\r\n if (common_1.isDefined(settings.areVerticalBordersEnabled))\r\n result.areHorizontalBordersEnabled = settings.areHorizontalBordersEnabled;\r\n if (common_1.isDefined(settings.areAlternateRowsEnabled))\r\n result.areAlternateRowsEnabled = settings.areAlternateRowsEnabled;\r\n if (common_1.isDefined(settings.allowSelectTask))\r\n result.allowSelectTask = settings.allowSelectTask;\r\n if (common_1.isDefined(settings.firstDayOfWeek))\r\n result.firstDayOfWeek = settings.firstDayOfWeek;\r\n if (common_1.isDefined(settings.editing))\r\n result.editing = EditingSettings.parse(settings.editing);\r\n if (common_1.isDefined(settings.validation))\r\n result.validation = ValidationSettings.parse(settings.validation);\r\n if (common_1.isDefined(settings.stripLines))\r\n result.stripLines = StripLineSettings.parse(settings.stripLines);\r\n if (common_1.isDefined(settings.taskTooltipContentTemplate))\r\n result.taskTooltipContentTemplate = settings.taskTooltipContentTemplate;\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 this.allowTaskResourceUpdate = true;\r\n }\r\n EditingSettings.parse = function (settings) {\r\n var result = new EditingSettings();\r\n if (settings) {\r\n if (common_1.isDefined(settings.enabled))\r\n result.enabled = settings.enabled;\r\n if (common_1.isDefined(settings.allowDependencyDelete))\r\n result.allowDependencyDelete = settings.allowDependencyDelete;\r\n if (common_1.isDefined(settings.allowDependencyInsert))\r\n result.allowDependencyInsert = settings.allowDependencyInsert;\r\n if (common_1.isDefined(settings.allowTaskDelete))\r\n result.allowTaskDelete = settings.allowTaskDelete;\r\n if (common_1.isDefined(settings.allowTaskInsert))\r\n result.allowTaskInsert = settings.allowTaskInsert;\r\n if (common_1.isDefined(settings.allowTaskUpdate))\r\n result.allowTaskUpdate = settings.allowTaskUpdate;\r\n if (common_1.isDefined(settings.allowResourceDelete))\r\n result.allowResourceDelete = settings.allowResourceDelete;\r\n if (common_1.isDefined(settings.allowResourceInsert))\r\n result.allowResourceInsert = settings.allowResourceInsert;\r\n if (common_1.isDefined(settings.allowResourceUpdate))\r\n result.allowResourceUpdate = settings.allowResourceUpdate;\r\n if (common_1.isDefined(settings.allowTaskResourceUpdate))\r\n result.allowTaskResourceUpdate = settings.allowTaskResourceUpdate;\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 result = result && this.allowTaskResourceUpdate === settings.allowTaskResourceUpdate;\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 (common_1.isDefined(settings.showCurrentTime))\r\n result.showCurrentTime = settings.showCurrentTime;\r\n if (common_1.isDefined(settings.currentTimeUpdateInterval))\r\n result.currentTimeUpdateInterval = settings.currentTimeUpdateInterval;\r\n if (common_1.isDefined(settings.currentTimeTitle))\r\n result.currentTimeTitle = settings.currentTimeTitle;\r\n if (common_1.isDefined(settings.currentTimeCssClass))\r\n result.currentTimeCssClass = settings.currentTimeCssClass;\r\n if (common_1.isDefined(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 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 (common_1.isDefined(settings.start))\r\n result.start = settings.start;\r\n if (common_1.isDefined(settings.end))\r\n result.end = settings.end;\r\n if (common_1.isDefined(settings.title))\r\n result.title = settings.title;\r\n if (common_1.isDefined(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 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 (common_1.isDefined(settings.validateDependencies))\r\n result.validateDependencies = settings.validateDependencies;\r\n if (common_1.isDefined(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/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskEditController = void 0;\r\nvar Enums_1 = __webpack_require__(14);\r\nvar DateRange_1 = __webpack_require__(9);\r\nvar dom_1 = __webpack_require__(3);\r\nvar browser_1 = __webpack_require__(5);\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: false,\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: false,\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: false,\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, delay) {\r\n if (delay === void 0) { delay = 500; }\r\n this.tooltip.showInfo(this.task, posX, delay, this.gantt.settings.taskTooltipContentTemplate);\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, dom_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, dom_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, dom_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 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.editing = this.gantt.modelManipulator.dispatcher.raiseTaskMoving(this.task, this.taskDateRange.start, this.taskDateRange.end, this.onTaskMovingCallback.bind(this));\r\n if (this.editing)\r\n this.tooltip.showTime(this.taskDateRange.start, this.taskDateRange.end, dom_1.DomUtils.getAbsolutePositionX(this.baseElement));\r\n return this.editing;\r\n }\r\n return true;\r\n };\r\n TaskEditController.prototype.onTaskMovingCallback = function (newStart, newEnd) {\r\n if (this.taskDateRange.start === newStart && this.taskDateRange.end === newEnd)\r\n return;\r\n var calculator = this.gantt.gridLayoutCalculator;\r\n var newLeft = calculator.getPosByDate(newStart);\r\n var newWidth = calculator.getPosByDate(newEnd) - newLeft;\r\n this.baseElement.style.left = newLeft + \"px\";\r\n this.baseElement.style.width = (newWidth < 1 ? 0 : newWidth) + \"px\";\r\n this.taskDateRange.start = newStart;\r\n this.taskDateRange.end = newEnd;\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 year = newDate.getFullYear();\r\n var month = newDate.getMonth();\r\n var day = newDate.getDate();\r\n var hours = this.gantt.settings.viewType == Enums_1.ViewType.Days ? newDate.getHours() : referenceDate.getHours();\r\n var minutes = referenceDate.getMinutes();\r\n var sec = referenceDate.getSeconds();\r\n var msec = referenceDate.getMilliseconds();\r\n return new Date(year, month, day, hours, minutes, sec, msec);\r\n }\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, this.gantt.elementTextHelper.cultureInfo);\r\n this.attachEvents();\r\n };\r\n TaskEditController.prototype.attachEvents = function () {\r\n this.onMouseLeaveHandler = function () {\r\n if (!this.editing)\r\n this.hide();\r\n }.bind(this);\r\n this.baseElement.addEventListener(\"mouseleave\", this.onMouseLeaveHandler);\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.prototype.detachEvents = function () {\r\n this.baseElement.removeEventListener(\"mouseleave\", this.onMouseLeaveHandler);\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, owner, 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.owner = owner;\r\n this.cultureInfo = cultureInfo;\r\n }\r\n TaskEditTooltip.prototype.setDefaultTooltip = function (task) {\r\n this.defaultTooltip = document.createElement(\"DIV\");\r\n this.defaultTooltip.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_DEFAULT;\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.defaultTooltip.appendChild(titleWrapper);\r\n title.innerText = task.title;\r\n this.defaultTooltip.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.defaultTooltip.appendChild(progressElement);\r\n progressTitle.innerText = (this.cultureInfo.progress ? this.cultureInfo.progress : \"Progress\") + \": \";\r\n progressValue.innerText = task.progress + \"%\";\r\n }\r\n this.baseElement.appendChild(this.defaultTooltip);\r\n };\r\n TaskEditTooltip.prototype.showInfo = function (task, posX, delay, tooltipTemplateFunction) {\r\n var _this = this;\r\n if (delay === void 0) { delay = 0; }\r\n var isTooltipShowing = true;\r\n this.owner.destroyTemplate(this.baseElement);\r\n if (tooltipTemplateFunction)\r\n isTooltipShowing = tooltipTemplateFunction(this.baseElement, task);\r\n else\r\n this.setDefaultTooltip(task);\r\n isTooltipShowing = isTooltipShowing && !!this.baseElement.innerHTML;\r\n if (isTooltipShowing) {\r\n var showInfoFunc = function () {\r\n _this.show(posX, false);\r\n };\r\n if (delay)\r\n this.timerId = setTimeout(showInfoFunc, delay);\r\n else\r\n showInfoFunc();\r\n }\r\n };\r\n TaskEditTooltip.prototype.showProgress = function (progress, posX) {\r\n this.owner.destroyTemplate(this.baseElement);\r\n this.defaultTooltip = document.createElement(\"DIV\");\r\n this.defaultTooltip.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_DEFAULT;\r\n this.defaultTooltip.innerText = progress + \"%\";\r\n this.baseElement.appendChild(this.defaultTooltip);\r\n this.show(posX);\r\n };\r\n TaskEditTooltip.prototype.showTime = function (start, end, posX) {\r\n this.owner.destroyTemplate(this.baseElement);\r\n this.defaultTooltip = document.createElement(\"DIV\");\r\n this.defaultTooltip.className = TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_DEFAULT;\r\n this.defaultTooltip.appendChild(this.getTimeContent(start, end));\r\n this.baseElement.appendChild(this.defaultTooltip);\r\n this.show(posX);\r\n };\r\n TaskEditTooltip.prototype.show = function (posX, autoHide) {\r\n var _this = this;\r\n var _a, _b, _c, _d;\r\n if (autoHide === void 0) { autoHide = true; }\r\n var arrowHeight = 5;\r\n var heightOffset = 15;\r\n (_a = this.defaultTooltip) === null || _a === void 0 ? void 0 : _a.classList.remove(TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_ARROW_AFTER);\r\n (_b = this.defaultTooltip) === null || _b === void 0 ? void 0 : _b.classList.remove(TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_ARROW_BEFORE);\r\n this.baseElement.style.display = \"block\";\r\n var absolutePositionY = dom_1.DomUtils.getAbsolutePositionY(this.parentElement);\r\n var absoluteX = dom_1.DomUtils.getAbsolutePositionX(this.parentElement);\r\n var leftPosition = posX - absoluteX - 2 * arrowHeight;\r\n var absoluteDistance = absolutePositionY - this.owner.header.clientHeight - dom_1.DomUtils.getDocumentScrollTop() - heightOffset;\r\n var isShowingDown = this.baseElement.clientHeight > absoluteDistance || this.baseElement.clientHeight > this.parentElement.offsetTop;\r\n var topPosition = -this.baseElement.clientHeight - arrowHeight;\r\n if (isShowingDown) {\r\n topPosition = this.parentElement.clientHeight + arrowHeight;\r\n (_c = this.defaultTooltip) === null || _c === void 0 ? void 0 : _c.classList.add(TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_ARROW_AFTER);\r\n }\r\n else\r\n (_d = this.defaultTooltip) === null || _d === void 0 ? void 0 : _d.classList.add(TaskEditTooltip.CLASSNAMES.TASK_EDIT_TOOLTIP_ARROW_BEFORE);\r\n this.baseElement.style.left = leftPosition + \"px\";\r\n this.baseElement.style.top = topPosition + \"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.innerText = (this.cultureInfo.start ? this.cultureInfo.start : \"Start\") + \": \";\r\n startValue.innerText = this.formatDate(start);\r\n endTitle.innerText = (this.cultureInfo.end ? this.cultureInfo.end : \"End\") + \": \";\r\n endValue.innerText = this.formatDate(end);\r\n return timeElement;\r\n };\r\n TaskEditTooltip.prototype.formatDate = function (date) {\r\n return this.owner.getDateFormat(date);\r\n };\r\n TaskEditTooltip.CLASSNAMES = {\r\n TASK_EDIT_PROGRESS_STATUS: \"dx-gantt-task-edit-tooltip\",\r\n TASK_EDIT_TOOLTIP_DEFAULT: \"dx-gantt-task-edit-tooltip-default\",\r\n TASK_EDIT_TASK_TITLE: \"dx-gantt-task-title\",\r\n TASK_EDIT_PROGRESS_STATUS_TIME: \"dx-gantt-status-time\",\r\n TASK_EDIT_TOOLTIP_ARROW_BEFORE: \"dx-gantt-task-edit-tooltip-before\",\r\n TASK_EDIT_TOOLTIP_ARROW_AFTER: \"dx-gantt-task-edit-tooltip-after\"\r\n };\r\n return TaskEditTooltip;\r\n}());\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\nexports.HistoryItemState = void 0;\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/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar _a;\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HandlerBase = void 0;\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar TaskEditController_1 = __webpack_require__(45);\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/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerDependencyState = exports.dependencyMap = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar point_1 = __webpack_require__(4);\r\nvar dom_1 = __webpack_require__(3);\r\nvar evt_1 = __webpack_require__(6);\r\nvar MouseHandlerStateBase_1 = __webpack_require__(29);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar Dependency_1 = __webpack_require__(11);\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 = evt_1.EvtUtils.getEventSource(evt);\r\n this.source = this.handler.getEventSource(sourceElement);\r\n var pos = this.getRelativePos(new point_1.Point(dom_1.DomUtils.getAbsolutePositionX(sourceElement) + sourceElement.clientWidth / 2, dom_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(dom_1.DomUtils.getAbsolutePositionX(this.handler.control.taskEditController.dependencySuccessorStart) + this.handler.control.taskEditController.dependencySuccessorStart.clientWidth / 2, dom_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(dom_1.DomUtils.getAbsolutePositionX(this.handler.control.taskEditController.dependencySuccessorFinish) + this.handler.control.taskEditController.dependencySuccessorFinish.clientWidth / 2, dom_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(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.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(evt_1.EvtUtils.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(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.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/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerStateBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerStateBase_1 = __webpack_require__(19);\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/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskEditDialogShowingArguments = exports.TaskUpdatingArguments = exports.TaskRemovingArguments = exports.TaskInsertingArguments = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar BaseArguments_1 = __webpack_require__(20);\r\nvar TaskInsertingArguments = (function (_super) {\r\n tslib_1.__extends(TaskInsertingArguments, _super);\r\n function TaskInsertingArguments(key, data) {\r\n var _this = _super.call(this, key) || this;\r\n _this.values = data !== null && data !== void 0 ? data : {};\r\n return _this;\r\n }\r\n Object.defineProperty(TaskInsertingArguments.prototype, \"start\", {\r\n get: function () { return this.values.start; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskInsertingArguments.prototype, \"end\", {\r\n get: function () { return this.values.end; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskInsertingArguments.prototype, \"title\", {\r\n get: function () { return this.values.title; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskInsertingArguments.prototype, \"progress\", {\r\n get: function () { return this.values.progress; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskInsertingArguments.prototype, \"parentId\", {\r\n get: function () { return this.values.parentId; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TaskInsertingArguments.prototype, \"color\", {\r\n get: function () { return this.values.color; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return TaskInsertingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.TaskInsertingArguments = TaskInsertingArguments;\r\nvar TaskRemovingArguments = (function (_super) {\r\n tslib_1.__extends(TaskRemovingArguments, _super);\r\n function TaskRemovingArguments(task) {\r\n var _this = _super.call(this, task.id) || this;\r\n _this.values = task;\r\n return _this;\r\n }\r\n return TaskRemovingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.TaskRemovingArguments = TaskRemovingArguments;\r\nvar TaskUpdatingArguments = (function (_super) {\r\n tslib_1.__extends(TaskUpdatingArguments, _super);\r\n function TaskUpdatingArguments(task, fieldNames, newValues) {\r\n var _this = _super.call(this, task.id) || this;\r\n _this.values = task;\r\n _this.createNewValues(fieldNames, newValues);\r\n return _this;\r\n }\r\n TaskUpdatingArguments.prototype.createNewValues = function (fieldNames, newValues) {\r\n var _this = this;\r\n this.newValues = {};\r\n var _loop_1 = function (i) {\r\n var fieldName = fieldNames[i];\r\n this_1.newValues[fieldName] = newValues[i];\r\n Object.defineProperty(this_1, fieldName, {\r\n get: function () { return _this.newValues[fieldName]; }\r\n });\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < fieldNames.length; i++) {\r\n _loop_1(i);\r\n }\r\n };\r\n return TaskUpdatingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.TaskUpdatingArguments = TaskUpdatingArguments;\r\nvar TaskEditDialogShowingArguments = (function (_super) {\r\n tslib_1.__extends(TaskEditDialogShowingArguments, _super);\r\n function TaskEditDialogShowingArguments(params) {\r\n var _this = _super.call(this, params.id) || this;\r\n _this.values = {\r\n start: params.start,\r\n end: params.end,\r\n title: params.title,\r\n progress: params.progress\r\n };\r\n _this.hiddenFields = params.hiddenFields;\r\n _this.readOnlyFields = params.readOnlyFields;\r\n return _this;\r\n }\r\n return TaskEditDialogShowingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.TaskEditDialogShowingArguments = TaskEditDialogShowingArguments;\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\nexports.RemoveTaskHistoryItem = exports.CreateTaskHistoryItem = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(12);\r\nvar TaskDependencyHistoryItem_1 = __webpack_require__(21);\r\nvar CreateTaskHistoryItem = (function (_super) {\r\n tslib_1.__extends(CreateTaskHistoryItem, _super);\r\n function CreateTaskHistoryItem(modelManipulator, data) {\r\n var _this = _super.call(this, modelManipulator) || this;\r\n _this.data = data;\r\n return _this;\r\n }\r\n CreateTaskHistoryItem.prototype.redo = function () {\r\n this.taskId = this.modelManipulator.task.create(this.data, 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, 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, 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/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConstraintViolationDialogParameters = exports.ConstraintViolationDialogCommand = exports.ConstraintViolationOption = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DialogBase_1 = __webpack_require__(24);\r\nvar TaskDependencyHistoryItem_1 = __webpack_require__(21);\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/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GanttView = exports.default = void 0;\r\n__webpack_require__(54);\r\nvar GanttView_1 = __webpack_require__(55);\r\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return GanttView_1.GanttView; } });\r\nObject.defineProperty(exports, \"GanttView\", { enumerable: true, get: function () { return GanttView_1.GanttView; } });\r\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GanttView = void 0;\r\nvar VisualModel_1 = __webpack_require__(56);\r\nvar Enums_1 = __webpack_require__(14);\r\nvar Utils_1 = __webpack_require__(42);\r\nvar dom_1 = __webpack_require__(3);\r\nvar DateRange_1 = __webpack_require__(9);\r\nvar size_1 = __webpack_require__(28);\r\nvar point_1 = __webpack_require__(4);\r\nvar GridElementInfo_1 = __webpack_require__(43);\r\nvar GridLayoutCalculator_1 = __webpack_require__(17);\r\nvar EtalonSizeValues_1 = __webpack_require__(80);\r\nvar TaskEditController_1 = __webpack_require__(45);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar ModelManipulator_1 = __webpack_require__(81);\r\nvar History_1 = __webpack_require__(86);\r\nvar EventManager_1 = __webpack_require__(88);\r\nvar TaskAreaContainer_1 = __webpack_require__(103);\r\nvar Settings_1 = __webpack_require__(44);\r\nvar ModelChangesDispatcher_1 = __webpack_require__(104);\r\nvar CommandManager_1 = __webpack_require__(106);\r\nvar BarManager_1 = __webpack_require__(122);\r\nvar browser_1 = __webpack_require__(5);\r\nvar ValidationController_1 = __webpack_require__(123);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar FullScreenModeHelper_1 = __webpack_require__(124);\r\nvar TaskHistoryItem_1 = __webpack_require__(51);\r\nvar common_1 = __webpack_require__(1);\r\nvar ResourceHistoryItem_1 = __webpack_require__(22);\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.invalidTaskDependencies = [];\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(0, 0);\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 this.onWindowResizelHandler = this.onBrowserWindowResize.bind(this);\r\n window.addEventListener(\"resize\", this.onWindowResizelHandler);\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 this.invalidTaskDependencies = [];\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 = dom_1.DomUtils.pxToInt(dom_1.DomUtils.getCurrentStyle(etalonElements[0]).paddingTop);\r\n this.etalonSizeValues.connectorLineThickness = dom_1.DomUtils.getVerticalBordersWidth(etalonElements[2]);\r\n this.etalonSizeValues.connectorArrowWidth = dom_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 = this.getSmallTaskWidth(dom_1.DomUtils.getCurrentStyle(etalonElements[0].firstChild.firstChild).paddingLeft);\r\n this.etalonSizeValues.outsideTaskTextDefaultWidth = dom_1.DomUtils.pxToFloat(dom_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.getSmallTaskWidth = function (etalonPaddingLeft) {\r\n var result = 0;\r\n if (etalonPaddingLeft != null && etalonPaddingLeft != \"\") {\r\n var indexOfRem = etalonPaddingLeft.indexOf(\"rem\");\r\n if (indexOfRem > -1)\r\n try {\r\n var remSize = parseFloat(etalonPaddingLeft.substr(0, indexOfRem));\r\n result = remSize * parseFloat(getComputedStyle(document.documentElement).fontSize);\r\n }\r\n catch (e) { }\r\n else\r\n result = dom_1.DomUtils.pxToInt(etalonPaddingLeft);\r\n }\r\n return result * 2;\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 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 common_1.isDefined(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 common_1.isDefined(d); });\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 dom_1.DomUtils.addClassName(element, className) : dom_1.DomUtils.removeClassName(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, undefined), 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, undefined), 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.onBeginUpdateView();\r\n this.timeScaleContainer.scrollLeft = this.taskAreaContainerScrollLeft;\r\n this.processScroll(false);\r\n this.processScroll(true);\r\n this.ganttOwner.onGanttScroll(this.taskAreaContainerScrollTop);\r\n this.onEndUpdateView();\r\n };\r\n GanttView.prototype.onBeginUpdateView = function () {\r\n this[GanttView.taskAreaScrollTopKey] = this.taskAreaContainer.scrollTop;\r\n this[GanttView.taskAreaScrollLeftKey] = this.taskAreaContainer.scrollLeft;\r\n };\r\n GanttView.prototype.onEndUpdateView = function () {\r\n delete this[GanttView.taskAreaScrollTopKey];\r\n delete this[GanttView.taskAreaScrollLeftKey];\r\n delete this[GanttView.taskTextHeightKey];\r\n };\r\n GanttView.prototype.getTaskTextHeight = function (textElement) {\r\n textElement.innerText = \"WWW\";\r\n var height = getComputedStyle(textElement).height;\r\n textElement.innerText = \"\";\r\n return height;\r\n };\r\n Object.defineProperty(GanttView.prototype, \"taskAreaContainerScrollTop\", {\r\n get: function () {\r\n var _a;\r\n return (_a = this[GanttView.taskAreaScrollTopKey]) !== null && _a !== void 0 ? _a : this.taskAreaContainer.scrollTop;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(GanttView.prototype, \"taskAreaContainerScrollLeft\", {\r\n get: function () {\r\n var _a;\r\n return (_a = this[GanttView.taskAreaScrollLeftKey]) !== null && _a !== void 0 ? _a : this.taskAreaContainer.scrollLeft;\r\n },\r\n enumerable: false,\r\n configurable: true\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.taskAreaContainerScrollTop : this.taskAreaContainerScrollLeft;\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.taskAreaContainerScrollLeft);\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.taskAreaContainerScrollTop);\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 if (isVisible) {\r\n this.removeTaskElement(index);\r\n this.createTaskElement(index);\r\n }\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 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 if (scaleType === Enums_1.ViewType.Quarter)\r\n scaleElement.style.padding = \"0\";\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 var task = this.viewModel.items[index].task;\r\n if (this.isHighlightRowElementAllowed(index))\r\n this.createHighlightRowElement(index);\r\n if (!task.isValid()) {\r\n var taskDependencies = this.viewModel.dependencies.items.filter(function (d) { return d.predecessorId == task.id || d.successorId == task.id; });\r\n this.invalidTaskDependencies = this.invalidTaskDependencies.concat(taskDependencies);\r\n return;\r\n }\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 (!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 };\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 _a;\r\n var _b;\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 var text = this.elementTextHelper.getTaskText(index);\r\n if (!text) {\r\n (_a = this[_b = GanttView.taskTextHeightKey]) !== null && _a !== void 0 ? _a : (this[_b] = this.getTaskTextHeight(taskTextElement));\r\n taskTextElement.style.height = this[GanttView.taskTextHeightKey];\r\n }\r\n taskTextElement.innerText = text;\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 var task = this.viewModel.items[index].task;\r\n this.invalidTaskDependencies = this.invalidTaskDependencies.filter(function (d) { return d.predecessorId != task.id && d.successorId != task.id; });\r\n this.taskAreaManager.detachEventsOnTask(this.taskElements[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 var isInvalid = this.invalidTaskDependencies.some(function (d) { return d.id == dependencyId; });\r\n if (isInvalid)\r\n return;\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 for (var key in info.attr)\r\n if (Object.prototype.hasOwnProperty.call(info.attr, key))\r\n element.setAttribute(key, info.attr[key]);\r\n for (var key in info.style)\r\n if (Object.prototype.hasOwnProperty.call(info.style, key))\r\n element.style[key] = info.style[key];\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 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.cleanMarkup = function () {\r\n this.taskAreaManager.detachEvents();\r\n this.taskEditController.detachEvents();\r\n window.removeEventListener(\"resize\", this.onWindowResizelHandler);\r\n this.reset();\r\n };\r\n GanttView.prototype.updateRowHeights = function (height) {\r\n if (this.tickSize.height !== height) {\r\n this.tickSize.height = height;\r\n var leftPosition = this.taskAreaContainer.scrollLeft;\r\n this.resetAndUpdate();\r\n this.taskAreaContainer.scrollLeft = leftPosition;\r\n }\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 this.updateBarManager();\r\n };\r\n GanttView.prototype.unselectTask = function (id) {\r\n this.viewModel.changeTaskSelected(id, false);\r\n this.updateBarManager();\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.setHeight = function (value) {\r\n this.mainElement.style.height = 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 this.updateBarManager();\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.deleteTask = function (key) {\r\n var task = this.getTaskByPublicId(key.toString());\r\n if (task)\r\n this.commandManager.removeTaskCommand.execute(task.internalId);\r\n };\r\n GanttView.prototype.insertTask = function (data) {\r\n if (data) {\r\n var parentId = data.parentId != null ? String(data.parentId) : null;\r\n var parent_1 = this.getTaskByPublicId(parentId);\r\n var start = typeof data.start === \"string\" ? new Date(data.start) : data.start;\r\n var end = typeof data.end === \"string\" ? new Date(data.end) : data.end;\r\n var taskData = {\r\n parentId: parent_1 === null || parent_1 === void 0 ? void 0 : parent_1.internalId,\r\n title: data.title,\r\n start: start,\r\n end: end,\r\n progress: parseInt(data.progress) || 0,\r\n color: data.color\r\n };\r\n if (this.commandManager.createTaskCommand.execute(taskData))\r\n return this.getLastInsertedTaskId();\r\n }\r\n return \"\";\r\n };\r\n GanttView.prototype.updateTask = function (key, data) {\r\n var task = this.getTaskByPublicId(key.toString());\r\n if (task && data)\r\n this.commandManager.updateTaskCommand.execute(task.internalId, data);\r\n };\r\n GanttView.prototype.getTaskData = function (key) {\r\n var task = this.getTaskByPublicId(key.toString());\r\n if (task)\r\n return this.viewModel.getTaskObjectForDataSource(task);\r\n };\r\n GanttView.prototype.insertDependency = function (data) {\r\n if (data) {\r\n var predecessorId = String(data.predecessorId);\r\n var successorId = String(data.successorId);\r\n var type = data.type;\r\n this.commandManager.createDependencyCommand.execute(predecessorId, successorId, type);\r\n }\r\n };\r\n GanttView.prototype.deleteDependency = function (key) {\r\n var internalKey = this.viewModel.convertPublicToInternalKey(\"dependency\", key);\r\n if (common_1.isDefined(internalKey))\r\n this.commandManager.removeDependencyCommand.execute(internalKey);\r\n };\r\n GanttView.prototype.getDependencyData = function (key) {\r\n return this.viewModel.getDependencyObjectForDataSource(key);\r\n };\r\n GanttView.prototype.insertResource = function (data, taskKeys) {\r\n var _this = this;\r\n if (data) {\r\n var callback = function (id) {\r\n if (common_1.isDefined(taskKeys))\r\n for (var i = 0; i < taskKeys.length; i++)\r\n _this.assignResourceToTask(id, taskKeys[i]);\r\n };\r\n this.commandManager.createResourceCommand.execute(String(data.text), data.color && String(data.color), callback);\r\n }\r\n };\r\n GanttView.prototype.deleteResource = function (key) {\r\n var internalKey = this.viewModel.convertPublicToInternalKey(\"resource\", key);\r\n if (common_1.isDefined(internalKey))\r\n this.commandManager.removeResourceCommand.execute(internalKey);\r\n };\r\n GanttView.prototype.assignResourceToTask = function (resourceKey, taskKey) {\r\n var resourceInternalKey = this.viewModel.convertPublicToInternalKey(\"resource\", resourceKey);\r\n var taskInternalKey = this.viewModel.convertPublicToInternalKey(\"task\", taskKey);\r\n if (common_1.isDefined(resourceInternalKey) && common_1.isDefined(taskInternalKey))\r\n this.commandManager.assignResourceCommand.execute(resourceInternalKey, taskInternalKey);\r\n };\r\n GanttView.prototype.unassignResourceFromTask = function (resourceKey, taskKey) {\r\n var assignment = this.viewModel.findAssignment(resourceKey, taskKey);\r\n if (assignment)\r\n this.commandManager.deassignResourceCommand.execute(assignment.internalId);\r\n };\r\n GanttView.prototype.getResourceData = function (key) {\r\n return this.viewModel.getResourceObjectForDataSource(key);\r\n };\r\n GanttView.prototype.getResourceAssignmentData = function (key) {\r\n return this.viewModel.getResourceAssignmentObjectForDataSource(key);\r\n };\r\n GanttView.prototype.getTaskResources = function (key) {\r\n var model = this.viewModel;\r\n var task = model.getItemByPublicId(\"task\", key);\r\n return task && model.getAssignedResources(task).items;\r\n };\r\n GanttView.prototype.getVisibleTaskKeys = function () { return this.viewModel.getVisibleTasks().map(function (t) { return t.id; }); };\r\n GanttView.prototype.getVisibleDependencyKeys = function () { return this.viewModel.getVisibleDependencies().map(function (d) { return d.id; }); };\r\n GanttView.prototype.getVisibleResourceKeys = function () { return this.viewModel.getVisibleResources().map(function (r) { return r.id; }); };\r\n GanttView.prototype.getVisibleResourceAssignmentKeys = function () { return this.viewModel.getVisibleResourceAssignments().map(function (a) { return a.id; }); };\r\n GanttView.prototype.setTaskValue = function (id, fieldName, newValue) {\r\n var manager = this.commandManager;\r\n var task = this.getTaskByPublicId(id);\r\n if (task) {\r\n if (fieldName === \"title\") {\r\n var checkedNewValue = newValue ? newValue : \"\";\r\n return manager.changeTaskTitleCommand.execute(task.internalId, checkedNewValue);\r\n }\r\n if (fieldName === \"progress\") {\r\n var newProgress = Math.max(newValue, 0);\r\n newProgress = Math.min(newValue, 100);\r\n return manager.changeTaskProgressCommand.execute(task.internalId, newProgress);\r\n }\r\n if (fieldName === \"start\")\r\n return manager.changeTaskStartCommand.execute(task.internalId, DateTimeUtils_1.DateTimeUtils.getMinDate(newValue, task.end));\r\n if (fieldName === \"end\")\r\n return manager.changeTaskEndCommand.execute(task.internalId, DateTimeUtils_1.DateTimeUtils.getMaxDate(newValue, task.start));\r\n }\r\n return false;\r\n };\r\n GanttView.prototype.getLastInsertedTaskId = function () {\r\n var createTaskItems = this.history.historyItems.filter(function (i) { return i instanceof TaskHistoryItem_1.CreateTaskHistoryItem; });\r\n var lastItem = createTaskItems[createTaskItems.length - 1];\r\n return lastItem && lastItem.taskId;\r\n };\r\n GanttView.prototype.getLastInsertedResource = function () {\r\n var createTaskItems = this.history.historyItems.filter(function (i) { return i instanceof ResourceHistoryItem_1.CreateResourceHistoryItem; });\r\n var lastItem = createTaskItems[createTaskItems.length - 1];\r\n return lastItem && lastItem.resource;\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.updateOwnerInAutoParentMode = function () {\r\n if (this.viewModel.parentAutoCalc)\r\n this.dispatcher.notifyParentDataRecalculated(this.viewModel.getCurrentTaskData());\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.updateBarManager();\r\n };\r\n };\r\n GanttView.prototype.setTaskTooltipContentTemplate = function (taskTooltipContentTemplate) {\r\n this.settings.taskTooltipContentTemplate = taskTooltipContentTemplate;\r\n };\r\n GanttView.prototype.updateBarManager = function () {\r\n this.barManager.updateItemsState([]);\r\n };\r\n GanttView.prototype.onTaskClick = function (key, evt) {\r\n if (!this.ganttOwner.onTaskClick)\r\n return true;\r\n return this.ganttOwner.onTaskClick(key, evt);\r\n };\r\n GanttView.prototype.onTaskDblClick = function (key, evt) {\r\n if (!this.ganttOwner.onTaskDblClick)\r\n return true;\r\n return this.ganttOwner.onTaskDblClick(key, evt);\r\n };\r\n GanttView.prototype.getDateFormat = function (date) {\r\n return this.ganttOwner.getFormattedDateText ? this.ganttOwner.getFormattedDateText(date) : this.getDefaultDateFormat(date);\r\n };\r\n GanttView.prototype.getDefaultDateFormat = function (date) {\r\n return (\"0\" + date.getDate()).slice(-2) + \"/\" + (\"0\" + (date.getMonth() + 1)).slice(-2) + \"/\" + date.getFullYear() + \" \" + (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n };\r\n GanttView.prototype.destroyTemplate = function (container) {\r\n this.ganttOwner.destroyTemplate ? this.ganttOwner.destroyTemplate(container) : container.innerHTML = \"\";\r\n };\r\n GanttView.cachedPrefix = \"cached_\";\r\n GanttView.taskAreaScrollTopKey = GanttView.cachedPrefix + \"taskAreaScrollTop\";\r\n GanttView.taskAreaScrollLeftKey = GanttView.cachedPrefix + \"taskAreaScrollLeft\";\r\n GanttView.taskTextHeightKey = GanttView.cachedPrefix + \"taskTextHeight\";\r\n return GanttView;\r\n}());\r\nexports.GanttView = GanttView;\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\nexports.ViewVisualModel = void 0;\r\nvar ResourceCollection_1 = __webpack_require__(26);\r\nvar TaskCollection_1 = __webpack_require__(62);\r\nvar DependencyCollection_1 = __webpack_require__(64);\r\nvar ResourceAssignmentCollection_1 = __webpack_require__(65);\r\nvar ViewVisualModelItem_1 = __webpack_require__(66);\r\nvar ViewVisualModelDependencyInfo_1 = __webpack_require__(67);\r\nvar WorkingTimeCalculator_1 = __webpack_require__(68);\r\nvar common_1 = __webpack_require__(1);\r\nvar Dependency_1 = __webpack_require__(11);\r\nvar Resource_1 = __webpack_require__(33);\r\nvar ResourceAssignment_1 = __webpack_require__(36);\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 inverted = list.reduce(function (previous, item) {\r\n var _a;\r\n var key = (_a = item.task) === null || _a === void 0 ? void 0 : _a.internalId;\r\n if (common_1.isDefined(key))\r\n previous[key] = item;\r\n return previous;\r\n }, {});\r\n var recalculateParentRequired = this.requireFirstLoadParentAutoCalc;\r\n for (var i = 0; i < list.length; i++) {\r\n var item = list[i];\r\n var parentId = item.task.parentId;\r\n var parentItem = inverted[parentId] || this.root;\r\n item.parent = parentItem;\r\n parentItem.addChild(item);\r\n if (recalculateParentRequired)\r\n this.owner.validationController.recalculateParents(item, function (data) {\r\n if (!common_1.isDefined(data.id))\r\n return;\r\n var task = _this.tasks.getItemById(data.id);\r\n if (common_1.isDefined(data.start))\r\n task.start = data.start;\r\n if (common_1.isDefined(data.end))\r\n task.end = data.end;\r\n if (common_1.isDefined(data.progress))\r\n task.progress = data.progress;\r\n });\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 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 color: task.color,\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.getDependencyObjectForDataSource = function (key) {\r\n var dependency = key instanceof Dependency_1.Dependency ? key : this.getItemByPublicId(\"dependency\", key);\r\n if (dependency) {\r\n var predecessorId = this.convertInternalToPublicKey(\"task\", dependency.predecessorId);\r\n var successorId = this.convertInternalToPublicKey(\"task\", dependency.successorId);\r\n return {\r\n id: dependency.id,\r\n predecessorId: common_1.isDefined(predecessorId) ? predecessorId : dependency.predecessorId,\r\n successorId: common_1.isDefined(successorId) ? successorId : dependency.successorId,\r\n type: dependency.type\r\n };\r\n }\r\n return null;\r\n };\r\n ViewVisualModel.prototype.getResourceObjectForDataSource = function (key) {\r\n var resource = key instanceof Resource_1.Resource ? key : this.getItemByPublicId(\"resource\", key);\r\n if (resource)\r\n return {\r\n id: resource.id,\r\n text: resource.text,\r\n color: resource.color\r\n };\r\n return null;\r\n };\r\n ViewVisualModel.prototype.getResourceAssignmentObjectForDataSource = function (key) {\r\n var assignment = key instanceof ResourceAssignment_1.ResourceAssignment ? key : this.getItemByPublicId(\"assignment\", key);\r\n if (assignment) {\r\n var taskId = this.convertInternalToPublicKey(\"task\", assignment.taskId);\r\n var resourceId = this.convertInternalToPublicKey(\"resource\", assignment.resourceId);\r\n return {\r\n id: assignment.id,\r\n taskId: common_1.isDefined(taskId) ? taskId : assignment.taskId,\r\n resourceId: common_1.isDefined(resourceId) ? resourceId : assignment.resourceId\r\n };\r\n }\r\n return null;\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; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ViewVisualModel.prototype, \"itemCount\", {\r\n get: function () { return this.items.length; },\r\n enumerable: false,\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: false,\r\n configurable: true\r\n });\r\n ViewVisualModel.prototype.updateRange = function (range) { this._workTimeCalculator.updateRange(range); };\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: false,\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: false,\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 ViewVisualModel.prototype.convertPublicToInternalKey = function (dataType, publicKey) {\r\n var item = this.getItemByPublicId(dataType, publicKey);\r\n return item && item.internalId;\r\n };\r\n ViewVisualModel.prototype.convertInternalToPublicKey = function (dataType, internalId) {\r\n var item = this.getItemByInternalId(dataType, internalId);\r\n return item && item.id;\r\n };\r\n ViewVisualModel.prototype.getItemByPublicId = function (dataType, publicKey) {\r\n var strKey = publicKey.toString();\r\n switch (dataType) {\r\n case \"task\":\r\n return this.tasks.getItemByPublicId(strKey);\r\n case \"dependency\":\r\n return this.dependencies.getItemByPublicId(strKey);\r\n case \"resource\":\r\n return this.resources.getItemByPublicId(strKey);\r\n case \"assignment\":\r\n return this.assignments.getItemByPublicId(strKey);\r\n }\r\n return null;\r\n };\r\n ViewVisualModel.prototype.getItemByInternalId = function (dataType, internalId) {\r\n switch (dataType) {\r\n case \"task\":\r\n return this.tasks.getItemById(internalId);\r\n case \"dependency\":\r\n return this.dependencies.getItemById(internalId);\r\n case \"resource\":\r\n return this.resources.getItemById(internalId);\r\n case \"assignment\":\r\n return this.assignments.getItemById(internalId);\r\n }\r\n return null;\r\n };\r\n ViewVisualModel.prototype.findAssignment = function (resourceKey, taskKey) {\r\n var resourceInternalKey = this.convertPublicToInternalKey(\"resource\", resourceKey);\r\n var taskInternalKey = this.convertPublicToInternalKey(\"task\", taskKey);\r\n return this.assignments.items.filter(function (val) { return val.resourceId === resourceInternalKey && val.taskId === taskInternalKey; })[0];\r\n };\r\n ViewVisualModel.prototype.getVisibleTasks = function () {\r\n var _this = this;\r\n return this.tasks.items.filter(function (t) { return t && _this.getTaskVisibility(t.internalId) && t.isValid(); });\r\n };\r\n ViewVisualModel.prototype.getVisibleDependencies = function () {\r\n var visibleTasksKeys = this.getVisibleTasks().map(function (t) { return t.internalId; });\r\n return this.dependencies.items.filter(function (d) { return d && visibleTasksKeys.indexOf(d.successorId) > -1 && visibleTasksKeys.indexOf(d.predecessorId) > -1; });\r\n };\r\n ViewVisualModel.prototype.getVisibleResourceAssignments = function () {\r\n var visibleTasksKeys = this.getVisibleTasks().map(function (t) { return t.internalId; });\r\n return this.assignments.items.filter(function (a) { return a && visibleTasksKeys.indexOf(a.taskId) > -1; });\r\n };\r\n ViewVisualModel.prototype.getVisibleResources = function () {\r\n var visibleResources = [];\r\n var visibleAssignments = this.getVisibleResourceAssignments();\r\n for (var i = 0; i < visibleAssignments.length; i++) {\r\n var resource = this.getItemByInternalId(\"resource\", visibleAssignments[i].resourceId);\r\n if (resource && visibleResources.indexOf(resource) === -1)\r\n visibleResources.push(resource);\r\n }\r\n return visibleResources;\r\n };\r\n return ViewVisualModel;\r\n}());\r\nexports.ViewVisualModel = ViewVisualModel;\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\nexports.GanttJsonUtils = void 0;\r\nvar json_1 = __webpack_require__(58);\r\nvar GanttJsonUtils = (function () {\r\n function GanttJsonUtils() {\r\n }\r\n GanttJsonUtils.parseJson = function (json) {\r\n return json_1.JsonUtils.isValid(json) ? JSON.parse(json) : null;\r\n };\r\n return GanttJsonUtils;\r\n}());\r\nexports.GanttJsonUtils = GanttJsonUtils;\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 JsonUtils = (function () {\r\n function JsonUtils() {\r\n }\r\n JsonUtils.isValid = function (json) {\r\n return !(/[^,:{}[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]/.test(json.replace(/\"(\\\\.|[^\"\\\\])*\"/g, '')));\r\n };\r\n return JsonUtils;\r\n}());\r\nexports.JsonUtils = JsonUtils;\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 min_max_1 = __webpack_require__(60);\r\nvar comparers_1 = __webpack_require__(61);\r\nvar ListUtils = (function () {\r\n function ListUtils() {\r\n }\r\n ListUtils.remove = function (list, element) {\r\n var index = list.indexOf(element, 0);\r\n if (index >= 0)\r\n list.splice(index, 1);\r\n };\r\n ListUtils.removeBy = function (list, callback) {\r\n var len = list.length;\r\n for (var index = 0; index < len; index++) {\r\n if (callback(list[index], index))\r\n return list.splice(index, 1)[0];\r\n }\r\n return null;\r\n };\r\n ListUtils.shallowCopy = function (list) {\r\n return list.slice();\r\n };\r\n ListUtils.deepCopy = function (list) {\r\n return ListUtils.map(list, function (val) { return val.clone(); });\r\n };\r\n ListUtils.initByValue = function (numElements, initValue) {\r\n var result = [];\r\n for (; numElements > 0; numElements--)\r\n result.push(initValue);\r\n return result;\r\n };\r\n ListUtils.initByCallback = function (numElements, initCallback) {\r\n var result = [];\r\n for (var index = 0; index < numElements; index++)\r\n result.push(initCallback(index));\r\n return result;\r\n };\r\n ListUtils.forEachOnInterval = function (interval, callback) {\r\n var end = interval.end;\r\n for (var index = interval.start; index < end; index++)\r\n callback(index);\r\n };\r\n ListUtils.reverseForEachOnInterval = function (interval, callback) {\r\n var start = interval.start;\r\n for (var index = interval.end - 1; index >= start; index--)\r\n callback(index);\r\n };\r\n ListUtils.reducedMap = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var result = [];\r\n for (var index = startIndex; index < endIndex; index++) {\r\n var newItem = callback(list[index], index);\r\n if (newItem !== null)\r\n result.push(newItem);\r\n }\r\n return result;\r\n };\r\n ListUtils.filter = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var result = [];\r\n for (var index = startIndex; index < endIndex; index++) {\r\n var item = list[index];\r\n if (callback(item, index))\r\n result.push(item);\r\n }\r\n return result;\r\n };\r\n ListUtils.map = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var result = [];\r\n for (var index = startIndex; index < endIndex; index++)\r\n result.push(callback(list[index], index));\r\n return result;\r\n };\r\n ListUtils.indexBy = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var ind = startIndex; ind < endIndex; ind++) {\r\n if (callback(list[ind], ind))\r\n return ind;\r\n }\r\n return -1;\r\n };\r\n ListUtils.reverseIndexBy = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var ind = startIndex; ind >= endIndex; ind--) {\r\n if (callback(list[ind], ind))\r\n return ind;\r\n }\r\n return -1;\r\n };\r\n ListUtils.elementBy = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var ind = ListUtils.indexBy(list, callback, startIndex, endIndex);\r\n return ind < 0 ? null : list[ind];\r\n };\r\n ListUtils.reverseElementBy = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n var ind = ListUtils.reverseIndexBy(list, callback, startIndex, endIndex);\r\n return ind < 0 ? null : list[ind];\r\n };\r\n ListUtils.last = function (list) {\r\n return list[list.length - 1];\r\n };\r\n ListUtils.setLast = function (list, newVal) {\r\n return list[list.length - 1] = newVal;\r\n };\r\n ListUtils.incLast = function (list) {\r\n return ++list[list.length - 1];\r\n };\r\n ListUtils.decLast = function (list) {\r\n return --list[list.length - 1];\r\n };\r\n ListUtils.equals = function (a, b) {\r\n return a.length === b.length && ListUtils.allOf2(a, b, function (a, b) { return a.equals(b); });\r\n };\r\n ListUtils.equalsByReference = function (a, b) {\r\n var aLen = a.length;\r\n var bLen = a.length;\r\n if (aLen !== bLen)\r\n return false;\r\n for (var i = 0; i < aLen; i++) {\r\n if (a[i] !== b[i])\r\n return false;\r\n }\r\n return true;\r\n };\r\n ListUtils.unique = function (list, cmp, equal, finalizeObj) {\r\n if (equal === void 0) { equal = cmp; }\r\n if (finalizeObj === void 0) { finalizeObj = function () { }; }\r\n var len = list.length;\r\n if (len === 0)\r\n return [];\r\n list = list.sort(cmp);\r\n var prevValue = list[0];\r\n var result = ListUtils.reducedMap(list, function (v) {\r\n if (equal(prevValue, v) !== 0) {\r\n prevValue = v;\r\n return v;\r\n }\r\n finalizeObj(v);\r\n return null;\r\n }, 1, len);\r\n result.unshift(list[0]);\r\n return result;\r\n };\r\n ListUtils.uniqueNumber = function (list) {\r\n list = list.sort(comparers_1.Comparers.number);\r\n var prevValue = Number.NaN;\r\n for (var i = list.length - 1; i >= 0; i--) {\r\n if (prevValue === list[i])\r\n list.splice(i, 1);\r\n else\r\n prevValue = list[i];\r\n }\r\n return list;\r\n };\r\n ListUtils.forEach = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var index = startIndex; index < endIndex; index++)\r\n callback(list[index], index);\r\n };\r\n ListUtils.forEach2 = function (listA, listB, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = listA.length; }\r\n for (var index = startIndex; index < endIndex; index++)\r\n callback(listA[index], listB[index], index);\r\n };\r\n ListUtils.reverseForEach = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var index = startIndex; index >= endIndex; index--)\r\n callback(list[index], index);\r\n };\r\n ListUtils.reverseIndexOf = function (list, element, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var index = startIndex; index >= endIndex; index--) {\r\n if (list[index] === element)\r\n return index;\r\n }\r\n return -1;\r\n };\r\n ListUtils.accumulate = function (list, initAccValue, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var acc = initAccValue;\r\n for (var ind = startIndex; ind < endIndex; ind++)\r\n acc = callback(acc, list[ind], ind);\r\n return acc;\r\n };\r\n ListUtils.accumulateNumber = function (list, callback, initAccValue, startIndex, endIndex) {\r\n if (initAccValue === void 0) { initAccValue = 0; }\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var acc = initAccValue;\r\n for (var ind = startIndex; ind < endIndex; ind++)\r\n acc += callback(list[ind], ind, acc);\r\n return acc;\r\n };\r\n ListUtils.anyOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n if (callback(list[index], index))\r\n return true;\r\n }\r\n return false;\r\n };\r\n ListUtils.unsafeAnyOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n var currResult = callback(list[index], index);\r\n if (currResult)\r\n return currResult;\r\n }\r\n return null;\r\n };\r\n ListUtils.reverseAnyOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var index = startIndex; index >= endIndex; index--) {\r\n if (callback(list[index], index))\r\n return true;\r\n }\r\n return false;\r\n };\r\n ListUtils.unsafeReverseAnyOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var index = startIndex; index >= endIndex; index--) {\r\n var currResult = callback(list[index], index);\r\n if (currResult)\r\n return currResult;\r\n }\r\n return null;\r\n };\r\n ListUtils.anyOf2 = function (listA, listB, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = listA.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n if (callback(listA[index], listB[index], index))\r\n return true;\r\n }\r\n return false;\r\n };\r\n ListUtils.allOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n if (!callback(list[index], index))\r\n return false;\r\n }\r\n return true;\r\n };\r\n ListUtils.allOf2 = function (listA, listB, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = listA.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n if (!callback(listA[index], listB[index], index))\r\n return false;\r\n }\r\n return true;\r\n };\r\n ListUtils.allOfOnInterval = function (interval, callback) {\r\n var endIndex = interval.end;\r\n for (var index = interval.start; index < endIndex; index++) {\r\n if (!callback(index))\r\n return false;\r\n }\r\n return true;\r\n };\r\n ListUtils.addListOnTail = function (resultList, addedList) {\r\n for (var i = 0, elem = void 0; elem = addedList[i]; i++)\r\n resultList.push(elem);\r\n return resultList;\r\n };\r\n ListUtils.joinLists = function (converter) {\r\n var lists = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n lists[_i - 1] = arguments[_i];\r\n }\r\n return ListUtils.accumulate(lists, [], function (accList, list) {\r\n ListUtils.addListOnTail(accList, converter(list));\r\n return accList;\r\n });\r\n };\r\n ListUtils.push = function (list, element) {\r\n list.push(element);\r\n return list;\r\n };\r\n ListUtils.countIf = function (list, callback) {\r\n return ListUtils.accumulateNumber(list, function (elem, ind) { return callback(elem, ind) ? 1 : 0; });\r\n };\r\n ListUtils.clear = function (list) {\r\n list.splice(0);\r\n };\r\n ListUtils.merge = function (list, cmp, shouldMerge, merge, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n list = list.slice(startIndex, endIndex);\r\n if (endIndex - startIndex < 2)\r\n return list;\r\n list = list.sort(cmp);\r\n var prevObj = list[startIndex];\r\n var result = [prevObj];\r\n for (var ind = startIndex + 1; ind < endIndex; ind++) {\r\n var obj = list[ind];\r\n if (shouldMerge(prevObj, obj))\r\n merge(prevObj, obj);\r\n else {\r\n prevObj = obj;\r\n result.push(prevObj);\r\n }\r\n }\r\n return result;\r\n };\r\n ListUtils.min = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var res = ListUtils.minExtended(list, getValue, startIndex, endIndex);\r\n return res ? res.minElement : null;\r\n };\r\n ListUtils.max = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var res = ListUtils.maxExtended(list, getValue, startIndex, endIndex);\r\n return res ? res.maxElement : null;\r\n };\r\n ListUtils.minMax = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var res = ListUtils.minMaxExtended(list, getValue, startIndex, endIndex);\r\n return res ? new min_max_1.MinMax(res.minElement, res.maxElement) : null;\r\n };\r\n ListUtils.minExtended = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var minElement = list[startIndex];\r\n var minValue = getValue(minElement);\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n var elemValue = getValue(elem);\r\n if (elemValue < minValue) {\r\n minValue = elemValue;\r\n minElement = elem;\r\n }\r\n }\r\n return new min_max_1.ExtendedMin(minElement, minValue);\r\n };\r\n ListUtils.maxExtended = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var maxElement = list[startIndex];\r\n var maxValue = getValue(maxElement);\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n var elemValue = getValue(elem);\r\n if (elemValue > maxValue) {\r\n maxValue = elemValue;\r\n maxElement = elem;\r\n }\r\n }\r\n return new min_max_1.ExtendedMax(maxElement, maxValue);\r\n };\r\n ListUtils.minMaxExtended = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var minElement = list[startIndex];\r\n var maxElement = minElement;\r\n var minValue = getValue(minElement);\r\n var maxValue = minValue;\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n var elemValue = getValue(elem);\r\n if (elemValue < minValue) {\r\n minValue = elemValue;\r\n minElement = elem;\r\n }\r\n else if (elemValue > maxValue) {\r\n maxValue = elemValue;\r\n maxElement = elem;\r\n }\r\n }\r\n return new min_max_1.ExtendedMinMax(minElement, minValue, maxElement, maxValue);\r\n };\r\n ListUtils.minByCmp = function (list, cmp, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var found = list[startIndex];\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n if (cmp(elem, found) < 0)\r\n found = elem;\r\n }\r\n return found;\r\n };\r\n ListUtils.maxByCmp = function (list, cmp, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var found = list[startIndex];\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n if (cmp(elem, found) > 0)\r\n found = elem;\r\n }\r\n return found;\r\n };\r\n ListUtils.minMaxByCmp = function (list, cmp, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var min = list[startIndex];\r\n var max = min;\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n var res = cmp(elem, min);\r\n if (res > 0)\r\n max = elem;\r\n else if (res < 0)\r\n min = elem;\r\n }\r\n return new min_max_1.MinMax(min, max);\r\n };\r\n return ListUtils;\r\n}());\r\nexports.ListUtils = ListUtils;\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__(35);\r\nvar MinMax = (function () {\r\n function MinMax(minElement, maxElement) {\r\n this.minElement = minElement;\r\n this.maxElement = maxElement;\r\n }\r\n return MinMax;\r\n}());\r\nexports.MinMax = MinMax;\r\nvar MinMaxNumber = (function (_super) {\r\n tslib_1.__extends(MinMaxNumber, _super);\r\n function MinMaxNumber() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(MinMaxNumber.prototype, \"length\", {\r\n get: function () {\r\n return this.maxElement - this.minElement;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return MinMaxNumber;\r\n}(MinMax));\r\nexports.MinMaxNumber = MinMaxNumber;\r\nvar ExtendedMin = (function () {\r\n function ExtendedMin(minElement, minValue) {\r\n this.minElement = minElement;\r\n this.minValue = minValue;\r\n }\r\n return ExtendedMin;\r\n}());\r\nexports.ExtendedMin = ExtendedMin;\r\nvar ExtendedMax = (function () {\r\n function ExtendedMax(maxElement, maxValue) {\r\n this.maxElement = maxElement;\r\n this.maxValue = maxValue;\r\n }\r\n return ExtendedMax;\r\n}());\r\nexports.ExtendedMax = ExtendedMax;\r\nvar ExtendedMinMax = (function (_super) {\r\n tslib_1.__extends(ExtendedMinMax, _super);\r\n function ExtendedMinMax(minElement, minValue, maxElement, maxValue) {\r\n var _this = _super.call(this, minElement, maxElement) || this;\r\n _this.minValue = minValue;\r\n _this.maxValue = maxValue;\r\n return _this;\r\n }\r\n return ExtendedMinMax;\r\n}(MinMax));\r\nexports.ExtendedMinMax = ExtendedMinMax;\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 Comparers = (function () {\r\n function Comparers() {\r\n }\r\n Comparers.number = function (a, b) {\r\n return a - b;\r\n };\r\n Comparers.string = function (a, b) {\r\n return ((a === b) ? 0 : ((a > b) ? 1 : -1));\r\n };\r\n Comparers.stringIgnoreCase = function (a, b) {\r\n a = a.toLowerCase();\r\n b = b.toLowerCase();\r\n return ((a === b) ? 0 : ((a > b) ? 1 : -1));\r\n };\r\n return Comparers;\r\n}());\r\nexports.Comparers = Comparers;\r\nvar Equals = (function () {\r\n function Equals() {\r\n }\r\n Equals.simpleType = function (a, b) {\r\n return a === b;\r\n };\r\n Equals.object = function (a, b) {\r\n return a && b && (a === b || a.equals(b));\r\n };\r\n return Equals;\r\n}());\r\nexports.Equals = Equals;\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\nexports.TaskCollection = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar Task_1 = __webpack_require__(63);\r\nvar CollectionBase_1 = __webpack_require__(13);\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/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Task = exports.TaskType = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar common_1 = __webpack_require__(1);\r\nvar DataObject_1 = __webpack_require__(10);\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 = exports.TaskType || (exports.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 (common_1.isDefined(sourceObj)) {\r\n _super.prototype.assignFromObject.call(this, sourceObj);\r\n this.owner = sourceObj.owner;\r\n this.parentId = common_1.isDefined(sourceObj.parentId) ? String(sourceObj.parentId) : \"\";\r\n this.description = sourceObj.description;\r\n this.title = sourceObj.title;\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 (common_1.isDefined(sourceObj.expanded))\r\n this.expanded = !!sourceObj.expanded;\r\n if (common_1.isDefined(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 (!Object.prototype.hasOwnProperty.call(sourceObj, 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 Task.prototype.isValid = function () {\r\n return !!this.start.getTime() && !!this.end.getTime();\r\n };\r\n return Task;\r\n}(DataObject_1.DataObject));\r\nexports.Task = Task;\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\nexports.DependencyCollection = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CollectionBase_1 = __webpack_require__(13);\r\nvar Dependency_1 = __webpack_require__(11);\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/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceAssignmentCollection = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CollectionBase_1 = __webpack_require__(13);\r\nvar ResourceAssignment_1 = __webpack_require__(36);\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/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ViewVisualModelItem = void 0;\r\nvar common_1 = __webpack_require__(1);\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: false,\r\n configurable: true\r\n });\r\n ViewVisualModelItem.prototype.addChild = function (child) {\r\n if (common_1.isDefined(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/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ViewVisualModelDependencyInfo = void 0;\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/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WorkingTimeCalculator = void 0;\r\nvar GanttWorkingDayRuleCollection_1 = __webpack_require__(69);\r\nvar DayWorkingTimeInfo_1 = __webpack_require__(77);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\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: false,\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/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WorkingDayRuleCollection = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CollectionBase_1 = __webpack_require__(13);\r\nvar WorkingTimeRule_1 = __webpack_require__(70);\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/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WorkingTimeRule = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DataObject_1 = __webpack_require__(10);\r\nvar common_1 = __webpack_require__(1);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar RecurrenceFactory_1 = __webpack_require__(40);\r\nvar Daily_1 = __webpack_require__(41);\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 (common_1.isDefined(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 (common_1.isDefined(sourceObj.recurrence))\r\n this.recurrence.assignFromObject(sourceObj.recurrence);\r\n if (common_1.isDefined(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/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DayOfWeek = void 0;\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/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Month = void 0;\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/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Weekly = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar RecurrenceBase_1 = __webpack_require__(16);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\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: false,\r\n configurable: true\r\n });\r\n return Weekly;\r\n}(RecurrenceBase_1.RecurrenceBase));\r\nexports.Weekly = Weekly;\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\nexports.Monthly = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar RecurrenceBase_1 = __webpack_require__(16);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar MonthInfo_1 = __webpack_require__(75);\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: false,\r\n configurable: true\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: false,\r\n configurable: true\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: false,\r\n configurable: true\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: false,\r\n configurable: true\r\n });\r\n return Monthly;\r\n}(RecurrenceBase_1.RecurrenceBase));\r\nexports.Monthly = Monthly;\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\nexports.MonthInfo = void 0;\r\nvar DateTimeUtils_1 = __webpack_require__(2);\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/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Yearly = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar RecurrenceBase_1 = __webpack_require__(16);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\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: false,\r\n configurable: true\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: false,\r\n configurable: true\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: false,\r\n configurable: true\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: false,\r\n configurable: true\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: false,\r\n configurable: true\r\n });\r\n return Yearly;\r\n}(RecurrenceBase_1.RecurrenceBase));\r\nexports.Yearly = Yearly;\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\nexports.DayWorkingTimeInfo = void 0;\r\nvar TimeRange_1 = __webpack_require__(38);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar Time_1 = __webpack_require__(37);\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 this.sortIntervals();\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 DayWorkingTimeInfo.prototype.getIntersectedIntervals = function (range) {\r\n return this._workingIntervals.filter(function (r) { return r.hasIntersect(range) && r !== range; });\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 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 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: false,\r\n configurable: true\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: false,\r\n configurable: true\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: false,\r\n configurable: true\r\n });\r\n return DayWorkingTimeInfo;\r\n}());\r\nexports.DayWorkingTimeInfo = DayWorkingTimeInfo;\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__(35);\r\nvar offsets_1 = __webpack_require__(79);\r\nvar Margins = (function (_super) {\r\n tslib_1.__extends(Margins, _super);\r\n function Margins() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Margins.empty = function () {\r\n return new Margins(0, 0, 0, 0);\r\n };\r\n Margins.prototype.clone = function () {\r\n return new Margins(this.left, this.right, this.top, this.bottom);\r\n };\r\n return Margins;\r\n}(offsets_1.Offsets));\r\nexports.Margins = Margins;\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 Offsets = (function () {\r\n function Offsets(left, right, top, bottom) {\r\n this.left = left;\r\n this.right = right;\r\n this.top = top;\r\n this.bottom = bottom;\r\n }\r\n Offsets.empty = function () {\r\n return new Offsets(0, 0, 0, 0);\r\n };\r\n Object.defineProperty(Offsets.prototype, \"horizontal\", {\r\n get: function () {\r\n return this.left + this.right;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Offsets.prototype, \"vertical\", {\r\n get: function () {\r\n return this.top + this.bottom;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Offsets.fromNumber = function (offset) {\r\n return new Offsets(offset, offset, offset, offset);\r\n };\r\n Offsets.fromOffsets = function (offsets) {\r\n return new Offsets(offsets.left, offsets.right, offsets.top, offsets.bottom);\r\n };\r\n Offsets.fromSide = function (horizontal, vertical) {\r\n return new Offsets(horizontal, horizontal, vertical, vertical);\r\n };\r\n Offsets.prototype.normalize = function () {\r\n this.left = Math.max(0, this.left);\r\n this.right = Math.max(0, this.right);\r\n this.top = Math.max(0, this.top);\r\n this.bottom = Math.max(0, this.bottom);\r\n return this;\r\n };\r\n Offsets.prototype.toString = function () {\r\n return JSON.stringify(this);\r\n };\r\n Offsets.prototype.isEmpty = function () {\r\n return this.left === 0 && this.right === 0 && this.top === 0 && this.bottom === 0;\r\n };\r\n Offsets.prototype.offset = function (offset) {\r\n this.left += offset.left;\r\n this.right += offset.right;\r\n this.top += offset.top;\r\n this.bottom += offset.bottom;\r\n return this;\r\n };\r\n Offsets.prototype.multiply = function (multLeft, multRight, multTop, multBottom) {\r\n switch (arguments.length) {\r\n case 1: {\r\n this.left *= multLeft;\r\n this.right *= multLeft;\r\n this.top *= multLeft;\r\n this.bottom *= multLeft;\r\n return this;\r\n }\r\n case 2: {\r\n this.left *= multLeft;\r\n this.right *= multLeft;\r\n this.top *= multRight;\r\n this.bottom *= multRight;\r\n return this;\r\n }\r\n case 4: {\r\n this.left *= multLeft;\r\n this.right *= multRight;\r\n this.top *= multTop;\r\n this.bottom *= multBottom;\r\n return this;\r\n }\r\n }\r\n return this;\r\n };\r\n Offsets.prototype.clone = function () {\r\n return new Offsets(this.left, this.right, this.top, this.bottom);\r\n };\r\n Offsets.prototype.copyFrom = function (obj) {\r\n this.left = obj.left;\r\n this.right = obj.right;\r\n this.top = obj.top;\r\n this.bottom = obj.bottom;\r\n };\r\n Offsets.prototype.equals = function (obj) {\r\n return this.top === obj.top &&\r\n this.bottom === obj.bottom &&\r\n this.right === obj.right &&\r\n this.left === obj.left;\r\n };\r\n Offsets.prototype.applyConverter = function (converter) {\r\n this.left = converter(this.left);\r\n this.right = converter(this.right);\r\n this.top = converter(this.top);\r\n this.bottom = converter(this.bottom);\r\n return this;\r\n };\r\n return Offsets;\r\n}());\r\nexports.Offsets = Offsets;\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\nexports.EtalonSizeValues = void 0;\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/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelManipulator = void 0;\r\nvar DependencyManipulator_1 = __webpack_require__(82);\r\nvar ResourcesManipulator_1 = __webpack_require__(83);\r\nvar TaskManipulator_1 = __webpack_require__(85);\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 this.dispatcher = dispatcher;\r\n }\r\n return ModelManipulator;\r\n}());\r\nexports.ModelManipulator = ModelManipulator;\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\nexports.TaskDependencyManipulator = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskPropertiesManipulator_1 = __webpack_require__(18);\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(), this.viewModel.getDependencyObjectForDataSource(dependency));\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/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourcesManipulator = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskPropertiesManipulator_1 = __webpack_require__(18);\r\nvar ResourcePropertiesManipulator_1 = __webpack_require__(84);\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, color, id, callback) {\r\n var resource = this.viewModel.resources.createItem();\r\n resource.text = text;\r\n if (color)\r\n resource.color = color;\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(id);\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(), this.viewModel.getResourceObjectForDataSource(resource));\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(assignment.id, this.getErrorCallback(), this.viewModel.getResourceAssignmentObjectForDataSource(assignment));\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/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourcePropertyManipulator = exports.ResourcePropertiesManipulator = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskPropertiesManipulator_1 = __webpack_require__(18);\r\nvar HistoryItemState_1 = __webpack_require__(46);\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/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskManipulator = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskPropertiesManipulator_1 = __webpack_require__(18);\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 (data, id, callback) {\r\n var _this = this;\r\n var task = this.viewModel.tasks.createItem();\r\n task.start = data.start;\r\n task.end = data.end;\r\n task.title = data.title;\r\n task.progress = data.progress;\r\n if (data.color)\r\n task.color = data.color;\r\n var parentItem = this.viewModel.tasks.getItemById(data.parentId);\r\n if (parentItem)\r\n parentItem.expanded = true;\r\n task.parentId = data.parentId;\r\n if (id)\r\n task.internalId = id;\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_1 = _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_1);\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(), this.viewModel.getTaskObjectForDataSource(task));\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/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.History = void 0;\r\nvar HistoryItem_1 = __webpack_require__(12);\r\nvar HistoryItemInfo_1 = __webpack_require__(87);\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 if (item instanceof HistoryItem_1.CompositionHistoryItem)\r\n item.undoItemsQuery();\r\n else\r\n item.undo();\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/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HistoryItemInfo = void 0;\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/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EventManager = void 0;\r\nvar MouseHandler_1 = __webpack_require__(89);\r\nvar key_1 = __webpack_require__(94);\r\nvar browser_1 = __webpack_require__(5);\r\nvar TouchHandler_1 = __webpack_require__(96);\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 == (key_1.ModifierKey.Ctrl | key_1.KeyCode.Key_z))\r\n this.control.history.undo();\r\n if (code == (key_1.ModifierKey.Ctrl | key_1.KeyCode.Key_y))\r\n this.control.history.redo();\r\n if (code == key_1.KeyCode.Delete)\r\n this.control.taskEditController.deleteSelectedDependency();\r\n }\r\n };\r\n EventManager.prototype.getShortcutCode = function (evt) {\r\n var keyCode = key_1.KeyUtils.getEventKeyCode(evt);\r\n var modifiers = 0;\r\n if (evt.altKey)\r\n modifiers |= key_1.ModifierKey.Alt;\r\n if (evt.ctrlKey)\r\n modifiers |= key_1.ModifierKey.Ctrl;\r\n if (evt.shiftKey)\r\n modifiers |= key_1.ModifierKey.Shift;\r\n if (evt.metaKey && browser_1.Browser.MacOSPlatform)\r\n modifiers |= key_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/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandler = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerBase_1 = __webpack_require__(47);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar MouseHandlerDefaultState_1 = __webpack_require__(90);\r\nvar evt_1 = __webpack_require__(6);\r\nvar MouseHandlerMoveTaskState_1 = __webpack_require__(91);\r\nvar MouseHandlerProgressTaskState_1 = __webpack_require__(92);\r\nvar MouseHandlerTimestampTaskState_1 = __webpack_require__(93);\r\nvar MouseHandlerDependencyState_1 = __webpack_require__(48);\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(evt_1.EvtUtils.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/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GanttMovingHelper = exports.MouseHandlerDefaultState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar dom_1 = __webpack_require__(3);\r\nvar evt_1 = __webpack_require__(6);\r\nvar MouseHandlerStateBase_1 = __webpack_require__(29);\r\nvar GridLayoutCalculator_1 = __webpack_require__(17);\r\nvar point_1 = __webpack_require__(4);\r\nvar browser_1 = __webpack_require__(5);\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 = evt_1.EvtUtils.getEventSource(evt);\r\n if (dom_1.DomUtils.hasClassName(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL) ||\r\n dom_1.DomUtils.hasClassName(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 var info = {\r\n event: evt,\r\n type: \"dependency\",\r\n key: id,\r\n position: new point_1.Point(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.getEventY(evt))\r\n };\r\n this.handler.control.ganttOwner.showPopupMenu(info);\r\n }\r\n }\r\n }\r\n else {\r\n if (evt_1.EvtUtils.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 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 = evt_1.EvtUtils.getWheelDelta(evt) > 0;\r\n var leftPos = evt_1.EvtUtils.getEventX(evt) - dom_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(evt_1.EvtUtils.getEventX(e));\r\n var newEventY = Math.round(evt_1.EvtUtils.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: evt_1.EvtUtils.getEventX(e),\r\n eventY: evt_1.EvtUtils.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 if (browser_1.Browser.IE)\r\n this.gantt.taskAreaContainer.getElement().style.cursor = drag ? \"move\" : \"default\";\r\n else\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/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerMoveTaskState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar MouseHandlerDragTaskBaseState_1 = __webpack_require__(30);\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 if (!this.handler.control.taskEditController.processMove(position.x - this.currentPosition.x))\r\n this.handler.switchToDefaultState();\r\n };\r\n return MouseHandlerMoveTaskState;\r\n}(MouseHandlerDragTaskBaseState_1.MouseHandlerDragBaseState));\r\nexports.MouseHandlerMoveTaskState = MouseHandlerMoveTaskState;\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\nexports.MouseHandlerProgressTaskState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar MouseHandlerDragTaskBaseState_1 = __webpack_require__(30);\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/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerTimestampTaskState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar evt_1 = __webpack_require__(6);\r\nvar MouseHandlerDragTaskBaseState_1 = __webpack_require__(30);\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(evt_1.EvtUtils.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/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(5);\r\nvar encode_1 = __webpack_require__(95);\r\nvar string_1 = __webpack_require__(27);\r\nvar KeyUtils = (function () {\r\n function KeyUtils() {\r\n }\r\n KeyUtils.getKeyModifiers = function (evt) {\r\n var result = 0;\r\n if (evt.altKey)\r\n result |= ModifierKey.Alt;\r\n if (evt.ctrlKey)\r\n result |= ModifierKey.Ctrl;\r\n if (evt.shiftKey)\r\n result |= ModifierKey.Shift;\r\n return result;\r\n };\r\n KeyUtils.getShortcutCode = function (keyCode, isCtrlKey, isShiftKey, isAltKey, isMetaKey) {\r\n var value = keyCode;\r\n value |= isCtrlKey ? ModifierKey.Ctrl : 0;\r\n value |= isShiftKey ? ModifierKey.Shift : 0;\r\n value |= isAltKey ? ModifierKey.Alt : 0;\r\n value |= isMetaKey ? ModifierKey.Meta : 0;\r\n return value;\r\n };\r\n KeyUtils.getShortcutCodeByEvent = function (evt) {\r\n return KeyUtils.getShortcutCode(KeyUtils.getEventKeyCode(evt), evt.ctrlKey, evt.shiftKey, evt.altKey, browser_1.Browser.MacOSPlatform ? evt.metaKey : false);\r\n };\r\n KeyUtils.getEventKeyCode = function (evt) {\r\n return browser_1.Browser.NetscapeFamily || browser_1.Browser.Opera ? evt.which : evt.keyCode;\r\n };\r\n KeyUtils.parseShortcutString = function (shortcutString) {\r\n if (!shortcutString)\r\n return 0;\r\n var isCtrlKey = false;\r\n var isShiftKey = false;\r\n var isAltKey = false;\r\n var isMetaKey = false;\r\n var keyCode = null;\r\n var shcKeys = shortcutString.toString().split('+');\r\n if (shcKeys.length > 0) {\r\n for (var i = 0; i < shcKeys.length; i++) {\r\n var key = string_1.StringUtils.trim(shcKeys[i].toUpperCase());\r\n switch (key) {\r\n case 'CONTROL':\r\n case 'CONTROLKEY':\r\n case 'CTRL':\r\n isCtrlKey = true;\r\n break;\r\n case 'SHIFT':\r\n case 'SHIFTKEY':\r\n isShiftKey = true;\r\n break;\r\n case 'ALT':\r\n isAltKey = true;\r\n break;\r\n case 'CMD':\r\n isMetaKey = true;\r\n break;\r\n case 'F1':\r\n keyCode = KeyCode.F1;\r\n break;\r\n case 'F2':\r\n keyCode = KeyCode.F2;\r\n break;\r\n case 'F3':\r\n keyCode = KeyCode.F3;\r\n break;\r\n case 'F4':\r\n keyCode = KeyCode.F4;\r\n break;\r\n case 'F5':\r\n keyCode = KeyCode.F5;\r\n break;\r\n case 'F6':\r\n keyCode = KeyCode.F6;\r\n break;\r\n case 'F7':\r\n keyCode = KeyCode.F7;\r\n break;\r\n case 'F8':\r\n keyCode = KeyCode.F8;\r\n break;\r\n case 'F9':\r\n keyCode = KeyCode.F9;\r\n break;\r\n case 'F10':\r\n keyCode = KeyCode.F10;\r\n break;\r\n case 'F11':\r\n keyCode = KeyCode.F11;\r\n break;\r\n case 'F12':\r\n keyCode = KeyCode.F12;\r\n break;\r\n case 'RETURN':\r\n case 'ENTER':\r\n keyCode = KeyCode.Enter;\r\n break;\r\n case 'HOME':\r\n keyCode = KeyCode.Home;\r\n break;\r\n case 'END':\r\n keyCode = KeyCode.End;\r\n break;\r\n case 'LEFT':\r\n keyCode = KeyCode.Left;\r\n break;\r\n case 'RIGHT':\r\n keyCode = KeyCode.Right;\r\n break;\r\n case 'UP':\r\n keyCode = KeyCode.Up;\r\n break;\r\n case 'DOWN':\r\n keyCode = KeyCode.Down;\r\n break;\r\n case 'PAGEUP':\r\n keyCode = KeyCode.PageUp;\r\n break;\r\n case 'PAGEDOWN':\r\n keyCode = KeyCode.PageDown;\r\n break;\r\n case 'SPACE':\r\n keyCode = KeyCode.Space;\r\n break;\r\n case 'TAB':\r\n keyCode = KeyCode.Tab;\r\n break;\r\n case 'BACKSPACE':\r\n case 'BACK':\r\n keyCode = KeyCode.Backspace;\r\n break;\r\n case 'CONTEXT':\r\n keyCode = KeyCode.ContextMenu;\r\n break;\r\n case 'ESCAPE':\r\n case 'ESC':\r\n keyCode = KeyCode.Esc;\r\n break;\r\n case 'DELETE':\r\n case 'DEL':\r\n keyCode = KeyCode.Delete;\r\n break;\r\n case 'INSERT':\r\n case 'INS':\r\n keyCode = KeyCode.Insert;\r\n break;\r\n case 'PLUS':\r\n keyCode = '+'.charCodeAt(0);\r\n break;\r\n default:\r\n keyCode = key.charCodeAt(0);\r\n break;\r\n }\r\n }\r\n }\r\n else\r\n alert(encode_1.EncodeUtils.decodeViaTextArea('Invalid shortcut'));\r\n return KeyUtils.getShortcutCode(keyCode, isCtrlKey, isShiftKey, isAltKey, isMetaKey);\r\n };\r\n return KeyUtils;\r\n}());\r\nexports.KeyUtils = KeyUtils;\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/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EncodeUtils = (function () {\r\n function EncodeUtils() {\r\n }\r\n EncodeUtils.encodeHtml = function (text) {\r\n return text\r\n .replace(/&/g, '&')\r\n .replace(//g, '>');\r\n };\r\n EncodeUtils.decodeHtml = function (text) {\r\n return text\r\n .replace(/&/g, '&')\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>');\r\n };\r\n EncodeUtils.prepareTextForRequest = function (text) {\r\n return text\r\n .replace(/%/g, '%25')\r\n .replace(/&/g, '%26amp;')\r\n .replace(/\\+/g, '%2B')\r\n .replace(//g, '%26gt;')\r\n .replace(/\"/g, '%26quot;');\r\n };\r\n EncodeUtils.prepareTextForCallBackRequest = function (text) {\r\n return text\r\n .replace(/&/g, '&')\r\n .replace(//g, '>')\r\n .replace(/\"/g, '"');\r\n };\r\n EncodeUtils.decodeViaTextArea = function (html) {\r\n var textArea = document.createElement('TEXTAREA');\r\n textArea.innerHTML = html;\r\n return textArea.value;\r\n };\r\n return EncodeUtils;\r\n}());\r\nexports.EncodeUtils = EncodeUtils;\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\nexports.TouchHandler = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerBase_1 = __webpack_require__(47);\r\nvar evt_1 = __webpack_require__(6);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar TouchHandlerMoveTaskState_1 = __webpack_require__(97);\r\nvar TouchHandlerDefaultState_1 = __webpack_require__(98);\r\nvar TouchHandlerProgressTaskState_1 = __webpack_require__(99);\r\nvar TouchHandlerTimestampTaskState_1 = __webpack_require__(100);\r\nvar TouchHandlerDependencyState_1 = __webpack_require__(101);\r\nvar TouchHandlerZoomState_1 = __webpack_require__(102);\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(evt_1.EvtUtils.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 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/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerMoveTaskState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerDragBaseState_1 = __webpack_require__(31);\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 if (!this.handler.control.taskEditController.processMove(position.x - this.currentPosition.x))\r\n this.handler.switchToDefaultState();\r\n };\r\n return TouchHandlerMoveTaskState;\r\n}(TouchHandlerDragBaseState_1.TouchHandlerDragBaseState));\r\nexports.TouchHandlerMoveTaskState = TouchHandlerMoveTaskState;\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\nexports.TouchHandlerDefaultState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar point_1 = __webpack_require__(4);\r\nvar dom_1 = __webpack_require__(3);\r\nvar evt_1 = __webpack_require__(6);\r\nvar touch_1 = __webpack_require__(15);\r\nvar GridLayoutCalculator_1 = __webpack_require__(17);\r\nvar HandlerStateBase_1 = __webpack_require__(19);\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 = evt_1.EvtUtils.getEventSource(evt);\r\n var info_1 = {\r\n event: evt,\r\n position: new point_1.Point(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.getEventY(evt))\r\n };\r\n if (dom_1.DomUtils.hasClassName(source, GridLayoutCalculator_1.GridLayoutCalculator.CLASSNAMES.CONNECTOR_HORIZONTAL) ||\r\n dom_1.DomUtils.hasClassName(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 info_1[\"type\"] = \"dependency\";\r\n info_1[\"key\"] = id;\r\n this.handler.control.ganttOwner.showPopupMenu(info_1);\r\n }\r\n else\r\n this.popupTimer = setTimeout(function () {\r\n var index = _this.getTaskIndex(evt);\r\n _this.changeTaskSelection(index);\r\n var item = _this.handler.control.viewModel.items[index];\r\n info_1[\"type\"] = \"task\";\r\n info_1[\"key\"] = item && item.task.id;\r\n _this.handler.control.ganttOwner.showPopupMenu(info_1);\r\n }, 500);\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 = touch_1.TouchUtils.getEventY(evt);\r\n var taskAreaY = dom_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/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerProgressTaskState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerDragBaseState_1 = __webpack_require__(31);\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/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerTimestampTaskState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerDragBaseState_1 = __webpack_require__(31);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar evt_1 = __webpack_require__(6);\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(evt_1.EvtUtils.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/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerDependencyState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar TouchHandlerStateBase_1 = __webpack_require__(49);\r\nvar TaskAreaManager_1 = __webpack_require__(8);\r\nvar dom_1 = __webpack_require__(3);\r\nvar evt_1 = __webpack_require__(6);\r\nvar point_1 = __webpack_require__(4);\r\nvar MouseHandlerDependencyState_1 = __webpack_require__(48);\r\nvar touch_1 = __webpack_require__(15);\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 = evt_1.EvtUtils.getEventSource(evt);\r\n this.source = this.handler.getEventSource(sourceElement);\r\n var pos = this.getRelativePos(new point_1.Point(dom_1.DomUtils.getAbsolutePositionX(sourceElement) + sourceElement.clientWidth / 2, dom_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(dom_1.DomUtils.getAbsolutePositionX(this.handler.control.taskEditController.dependencySuccessorStart) + this.handler.control.taskEditController.dependencySuccessorStart.clientWidth / 2, dom_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(dom_1.DomUtils.getAbsolutePositionX(this.handler.control.taskEditController.dependencySuccessorFinish) + this.handler.control.taskEditController.dependencySuccessorFinish.clientWidth / 2, dom_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(touch_1.TouchUtils.getEventX(evt), touch_1.TouchUtils.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(touch_1.TouchUtils.getEventX(evt), touch_1.TouchUtils.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/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TouchHandlerZoomState = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HandlerStateBase_1 = __webpack_require__(19);\r\nvar point_1 = __webpack_require__(4);\r\nvar dom_1 = __webpack_require__(3);\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 - dom_1.DomUtils.getAbsolutePositionX(_this.handler.control.taskAreaContainer.getElement()), touch.pageY - dom_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 return TouchHandlerZoomState;\r\n}(HandlerStateBase_1.HandlerStateBase));\r\nexports.TouchHandlerZoomState = TouchHandlerZoomState;\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\nexports.TaskAreaContainer = void 0;\r\nvar TaskAreaContainer = (function () {\r\n function TaskAreaContainer(element, ganttView) {\r\n this.element = element;\r\n this.onScrollHandler = function () { ganttView.updateView(); };\r\n this.element.addEventListener(\"scroll\", this.onScrollHandler);\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: false,\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: false,\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: false,\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: false,\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: false,\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 TaskAreaContainer.prototype.detachEvents = function () {\r\n this.element.removeEventListener(\"scroll\", this.onScrollHandler);\r\n };\r\n return TaskAreaContainer;\r\n}());\r\nexports.TaskAreaContainer = TaskAreaContainer;\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\nexports.ModelChangesDispatcher = void 0;\r\nvar EventDispatcher_1 = __webpack_require__(105);\r\nvar TaskArguments_1 = __webpack_require__(50);\r\nvar AssignmentArguments_1 = __webpack_require__(32);\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.notifyTaskCreating = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskCreating\", args);\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.notifyTaskRemoving = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskRemoving\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskRemoved = function (taskID, errorCallback, task) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskRemoved\", taskID, errorCallback, task);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskUpdating = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskUpdating\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskMoving = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskMoving\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyTaskEditDialogShowing = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyTaskEditDialogShowing\", args);\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.notifyDependencyInserting = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyDependencyInserting\", args);\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.notifyDependencyRemoving = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyDependencyRemoving\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyDependencyRemoved = function (dependencyID, errorCallback, dependency) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyDependencyRemoved\", dependencyID, errorCallback, dependency);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceCreating = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceCreating\", args);\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.notifyResourceRemoving = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceRemoving\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceRemoved = function (resourceID, errorCallback, resource) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceRemoved\", resourceID, errorCallback, resource);\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.notifyResourceAssigning = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceAssigning\", args);\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.notifyResourceUnassigning = function (args) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceUnassigning\", args);\r\n };\r\n ModelChangesDispatcher.prototype.notifyResourceUnassigned = function (assignmentID, errorCallback, assignment) {\r\n if (!this.isLocked)\r\n this.onModelChanged.raise(\"NotifyResourceUnassigned\", assignmentID, errorCallback, assignment);\r\n };\r\n ModelChangesDispatcher.prototype.notifyParentDataRecalculated = function (data) {\r\n this.onModelChanged.raise(\"NotifyParentDataRecalculated\", data);\r\n };\r\n ModelChangesDispatcher.prototype.fireResourceUnassigning = function (assignment) {\r\n var args = new AssignmentArguments_1.ResourceUnassigningArguments(assignment);\r\n this.notifyResourceUnassigning(args);\r\n return !args.cancel;\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskTitleUpdating = function (task, value, callback) {\r\n return this.raiseTaskUpdating(task, \"title\", value, callback);\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskDescriptionUpdating = function (task, value, callback) {\r\n return this.raiseTaskUpdating(task, \"description\", value, callback);\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskProgressUpdating = function (task, value, callback) {\r\n return this.raiseTaskUpdating(task, \"progress\", value, callback);\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskColorUpdating = function (task, value, callback) {\r\n return this.raiseTaskUpdating(task, \"color\", value, callback);\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskStartUpdating = function (task, value, callback) {\r\n return this.raiseTaskUpdating(task, \"start\", value, callback);\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskEndUpdating = function (task, value, callback) {\r\n return this.raiseTaskUpdating(task, \"end\", value, callback);\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskStartAndEndUpdating = function (task, newStart, newEnd, callback) {\r\n var args = new TaskArguments_1.TaskUpdatingArguments(task, [\"start\", \"end\"], [newStart, newEnd]);\r\n this.notifyTaskUpdating(args);\r\n if (!args.cancel) {\r\n callback(args[\"start\"], args[\"end\"]);\r\n return true;\r\n }\r\n return false;\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskUpdating = function (task, fieldName, newValue, callback) {\r\n var oldValue = task[fieldName];\r\n if (oldValue !== newValue) {\r\n var args = new TaskArguments_1.TaskUpdatingArguments(task, [fieldName], [newValue]);\r\n this.notifyTaskUpdating(args);\r\n if (!args.cancel && oldValue !== args[fieldName]) {\r\n callback(args[fieldName]);\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskMultipleUpdating = function (task, newValues, callback) {\r\n var fields = [\"title\", \"progress\", \"start\", \"end\", \"color\"];\r\n var values = fields.map(function (f) { return newValues[f]; });\r\n var args = new TaskArguments_1.TaskUpdatingArguments(task, fields, values);\r\n this.notifyTaskUpdating(args);\r\n if (!args.cancel) {\r\n callback(args.newValues);\r\n return true;\r\n }\r\n return false;\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskMoving = function (task, newStart, newEnd, callback) {\r\n var args = new TaskArguments_1.TaskUpdatingArguments(task, [\"start\", \"end\"], [newStart, newEnd]);\r\n this.notifyTaskMoving(args);\r\n if (!args.cancel) {\r\n callback(args[\"start\"], args[\"end\"]);\r\n return true;\r\n }\r\n return false;\r\n };\r\n ModelChangesDispatcher.prototype.raiseTaskTaskEditDialogShowing = function (params, callback) {\r\n var args = new TaskArguments_1.TaskEditDialogShowingArguments(params);\r\n this.notifyTaskEditDialogShowing(args);\r\n if (!args.cancel) {\r\n callback(args);\r\n return true;\r\n }\r\n return false;\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/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EventDispatcher = void 0;\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 = void 0; 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 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 = void 0; listener = this.listeners[i]; i++) {\r\n var func = listener[funcName];\r\n func === null || func === void 0 ? void 0 : func.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/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CommandManager = void 0;\r\nvar TaskCommands_1 = __webpack_require__(107);\r\nvar TaskPropertiesCommands_1 = __webpack_require__(108);\r\nvar DependencyCommands_1 = __webpack_require__(109);\r\nvar ResourceCommands_1 = __webpack_require__(111);\r\nvar TaskEditDialog_1 = __webpack_require__(113);\r\nvar ConstraintViolationDialog_1 = __webpack_require__(52);\r\nvar ResourcesDialog_1 = __webpack_require__(114);\r\nvar ClientCommand_1 = __webpack_require__(115);\r\nvar HistoryCommands_1 = __webpack_require__(116);\r\nvar ZoomCommands_1 = __webpack_require__(117);\r\nvar FullScreenCommand_1 = __webpack_require__(118);\r\nvar CollapseExpandCommands_1 = __webpack_require__(119);\r\nvar ConfirmationDialog_1 = __webpack_require__(23);\r\nvar ResourcePropertiesCommands_1 = __webpack_require__(120);\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: false,\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: false,\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: false,\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: false,\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: false,\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: false,\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: false,\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: false,\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: false,\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: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandManager.prototype, \"updateTaskCommand\", {\r\n get: function () { return new TaskCommands_1.UpdateTaskCommand(this.control); },\r\n enumerable: false,\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: false,\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: false,\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: false,\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: false,\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: false,\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: false,\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: false,\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: false,\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: false,\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: false,\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: false,\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/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskAddContextItemCommand = exports.UpdateTaskCommand = exports.RemoveTaskCommand = exports.CreateSubTaskCommand = exports.CreateTaskCommand = exports.TaskCommandBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar TaskHistoryItem_1 = __webpack_require__(51);\r\nvar TaskDependencyHistoryItem_1 = __webpack_require__(21);\r\nvar ResourceHistoryItem_1 = __webpack_require__(22);\r\nvar ConfirmationDialog_1 = __webpack_require__(23);\r\nvar TaskArguments_1 = __webpack_require__(50);\r\nvar TaskPropertiesHistoryItem_1 = __webpack_require__(25);\r\nvar common_1 = __webpack_require__(1);\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 = this.control.settings.editing.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 (data) {\r\n return _super.prototype.execute.call(this, data);\r\n };\r\n CreateTaskCommand.prototype.executeInternal = function (data) {\r\n var _a;\r\n data !== null && data !== void 0 ? data : (data = {});\r\n if (!data.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 data.parentId = selectedTask.parentId;\r\n }\r\n var referenceItem = this.control.viewModel.findItem(data.parentId) || this.control.viewModel.items[0];\r\n var referenceTask = referenceItem && referenceItem.task;\r\n if (!data.start)\r\n data.start = referenceTask ? new Date(referenceTask.start.getTime()) : new Date(this.control.range.start.getTime());\r\n if (!data.end)\r\n data.end = referenceTask ? new Date(referenceTask.end.getTime()) : new Date(this.control.range.end.getTime());\r\n (_a = data.title) !== null && _a !== void 0 ? _a : (data.title = \"New task\");\r\n var args = new TaskArguments_1.TaskInsertingArguments(null, data);\r\n this.modelManipulator.dispatcher.notifyTaskCreating(args);\r\n if (!args.cancel)\r\n this.history.addAndRedo(new TaskHistoryItem_1.CreateTaskHistoryItem(this.modelManipulator, args));\r\n return !args.cancel;\r\n };\r\n CreateTaskCommand.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 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 var data = {\r\n start: new Date(selectedItem.task.start.getTime()),\r\n end: new Date(selectedItem.task.end.getTime()),\r\n title: \"New task\",\r\n progress: 0,\r\n parentId: parentId\r\n };\r\n var args = new TaskArguments_1.TaskInsertingArguments(null, data);\r\n this.modelManipulator.dispatcher.notifyTaskCreating(args);\r\n if (!args.cancel)\r\n this.history.addAndRedo(new TaskHistoryItem_1.CreateTaskHistoryItem(this.modelManipulator, args));\r\n return !args.cancel;\r\n }\r\n return false;\r\n };\r\n CreateSubTaskCommand.prototype.isEnabled = function () {\r\n var gantt = this.control;\r\n var selectedItem = gantt.viewModel.findItem(gantt.currentSelectedTaskID);\r\n return _super.prototype.isEnabled.call(this) && !!selectedItem && selectedItem.selected;\r\n };\r\n CreateSubTaskCommand.prototype.getState = function () {\r\n var state = _super.prototype.getState.call(this);\r\n var gantt = this.control;\r\n state.visible = state.visible && gantt.settings.editing.allowTaskInsert;\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 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 var item = this.control.viewModel.findItem(id);\r\n var task = item ? item.task : this.control.viewModel.tasks.getItemById(id);\r\n var args = new TaskArguments_1.TaskRemovingArguments(task);\r\n this.modelManipulator.dispatcher.notifyTaskRemoving(args);\r\n if (args.cancel)\r\n return false;\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 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) {\r\n if (_this.modelManipulator.dispatcher.fireResourceUnassigning(a))\r\n removeTaskHistoryItem.add(new ResourceHistoryItem_1.DeassignResourceHistoryItem(_this.modelManipulator, a.internalId));\r\n });\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 var selectedItem = gantt.viewModel.findItem(gantt.currentSelectedTaskID);\r\n var result = _super.prototype.isEnabled.call(this) && !!selectedItem && selectedItem.selected;\r\n return result;\r\n };\r\n RemoveTaskCommand.prototype.getState = function () {\r\n var state = _super.prototype.getState.call(this);\r\n var gantt = this.control;\r\n state.visible = state.visible && gantt.settings.editing.allowTaskDelete;\r\n return state;\r\n };\r\n return RemoveTaskCommand;\r\n}(TaskCommandBase));\r\nexports.RemoveTaskCommand = RemoveTaskCommand;\r\nvar UpdateTaskCommand = (function (_super) {\r\n tslib_1.__extends(UpdateTaskCommand, _super);\r\n function UpdateTaskCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n UpdateTaskCommand.prototype.execute = function (id, newValues) {\r\n return _super.prototype.execute.call(this, id, newValues);\r\n };\r\n UpdateTaskCommand.prototype.executeInternal = function (id, newValues) {\r\n var task = this.control.viewModel.tasks.getItemById(id);\r\n if (!task)\r\n return false;\r\n var success = this.control.modelManipulator.dispatcher.raiseTaskMultipleUpdating(task, newValues, function (changedNewValues) {\r\n newValues.title = changedNewValues.title;\r\n newValues.progress = changedNewValues.progress;\r\n newValues.start = changedNewValues.start;\r\n newValues.end = changedNewValues.end;\r\n newValues.color = changedNewValues.color;\r\n });\r\n if (success) {\r\n this.history.beginTransaction();\r\n var needRecalculateParents = false;\r\n if (common_1.isDefined(newValues.title) && newValues.title !== task.title)\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskTitleHistoryItem(this.modelManipulator, id, newValues.title));\r\n if (common_1.isDefined(newValues.progress) && newValues.progress !== task.progress) {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskProgressHistoryItem(this.modelManipulator, id, newValues.progress));\r\n needRecalculateParents = true;\r\n }\r\n if (common_1.isDefined(newValues.start) && common_1.isDefined(newValues.end) && newValues.end.getTime() < newValues.start.getTime())\r\n newValues.end = newValues.start;\r\n if (common_1.isDefined(newValues.start) && newValues.start !== task.start) {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(this.modelManipulator, id, newValues.start));\r\n needRecalculateParents = true;\r\n if (this.control.settings.validation.validateDependencies)\r\n this.control.validationController.moveStartDependTasks(id, task.start);\r\n }\r\n if (common_1.isDefined(newValues.end) && newValues.end !== task.end) {\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(this.modelManipulator, id, newValues.end));\r\n needRecalculateParents = true;\r\n if (this.control.settings.validation.validateDependencies)\r\n this.control.validationController.moveEndDependTasks(id, task.end);\r\n }\r\n if (common_1.isDefined(newValues.color) && newValues.color !== task.color)\r\n this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskColorHistoryItem(this.modelManipulator, id, newValues.color));\r\n if (needRecalculateParents)\r\n this.validationController.updateParentsIfRequired(id);\r\n else\r\n this.control.updateOwnerInAutoParentMode();\r\n this.history.endTransaction();\r\n }\r\n return success;\r\n };\r\n UpdateTaskCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowTaskUpdate;\r\n };\r\n return UpdateTaskCommand;\r\n}(TaskCommandBase));\r\nexports.UpdateTaskCommand = UpdateTaskCommand;\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/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskMoveCommand = exports.TaskEndCommand = exports.TaskStartCommand = exports.TaskPropertyCommandValidation = exports.TaskColorCommand = exports.TaskProgressCommand = exports.TaskDescriptionCommand = exports.TaskTitleCommand = exports.TaskPropertyCommandBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar TaskPropertiesHistoryItem_1 = __webpack_require__(25);\r\nvar ConstraintViolationDialog_1 = __webpack_require__(52);\r\nvar DateRange_1 = __webpack_require__(9);\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 TaskPropertyCommandBase.prototype.getTask = function (id) {\r\n return this.control.viewModel.tasks.getItemById(id);\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 _this = this;\r\n return this.modelManipulator.dispatcher.raiseTaskTitleUpdating(this.getTask(id), value, function (newTitle) { _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskTitleHistoryItem(_this.modelManipulator, id, newTitle)); });\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 _this = this;\r\n return this.modelManipulator.dispatcher.raiseTaskDescriptionUpdating(this.getTask(id), value, function (newDescription) { _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskDescriptionHistoryItem(_this.modelManipulator, id, newDescription)); });\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 _this = this;\r\n return this.modelManipulator.dispatcher.raiseTaskProgressUpdating(this.getTask(id), value, function (newValue) {\r\n _this.control.history.beginTransaction();\r\n _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskProgressHistoryItem(_this.modelManipulator, id, newValue));\r\n _this.validationController.updateParentsIfRequired(id);\r\n _this.control.history.endTransaction();\r\n });\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 _this = this;\r\n return this.modelManipulator.dispatcher.raiseTaskColorUpdating(this.getTask(id), value, function (newValue) { _this.history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskColorHistoryItem(_this.modelManipulator, id, newValue)); });\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 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 var success = this.modelManipulator.dispatcher.raiseTaskStartUpdating(this.getTask(id), value, function (newStart) { value = newStart; });\r\n return success && _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 if (!curr.isValid())\r\n return prev;\r\n if (!prev.isValid())\r\n return 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 var success = this.modelManipulator.dispatcher.raiseTaskEndUpdating(this.getTask(id), value, function (newStart) { value = newStart; });\r\n return success && _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 if (!curr.isValid())\r\n return prev;\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 var success = this.modelManipulator.dispatcher.raiseTaskStartAndEndUpdating(this.getTask(id), start, end, function (newStart, newEnd) {\r\n start = newStart;\r\n end = newEnd;\r\n });\r\n return success && _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 if (!curr.isValid())\r\n return prev;\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 if (!curr.isValid())\r\n return prev;\r\n if (!prev.isValid())\r\n return 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 tslib_1.__spreadArray(tslib_1.__spreadArray([], startErrors), endErrors);\r\n };\r\n return TaskMoveCommand;\r\n}(TaskPropertyCommandValidation));\r\nexports.TaskMoveCommand = TaskMoveCommand;\r\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RemoveDependencyCommand = exports.CreateDependencyCommand = exports.DependencyCommandBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar TaskDependencyHistoryItem_1 = __webpack_require__(21);\r\nvar Dependency_1 = __webpack_require__(11);\r\nvar ConfirmationDialog_1 = __webpack_require__(23);\r\nvar DependencyArguments_1 = __webpack_require__(110);\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 var args = new DependencyArguments_1.DependencyInsertingArguments(predecessorId, successorId, type);\r\n this.modelManipulator.dispatcher.notifyDependencyInserting(args);\r\n if (args.cancel)\r\n return false;\r\n predecessorId = args.predecessorId;\r\n successorId = args.successorId;\r\n type = args.type;\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 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 var args = new DependencyArguments_1.DependencyRemovingArguments(dependency);\r\n this.modelManipulator.dispatcher.notifyDependencyRemoving(args);\r\n if (!args.cancel) {\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 }\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/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DependencyRemovingArguments = exports.DependencyInsertingArguments = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar BaseArguments_1 = __webpack_require__(20);\r\nvar DependencyInsertingArguments = (function (_super) {\r\n tslib_1.__extends(DependencyInsertingArguments, _super);\r\n function DependencyInsertingArguments(predecessorId, successorId, type) {\r\n var _this = _super.call(this, null) || this;\r\n _this.values = {\r\n predecessorId: predecessorId,\r\n successorId: successorId,\r\n type: type\r\n };\r\n return _this;\r\n }\r\n Object.defineProperty(DependencyInsertingArguments.prototype, \"predecessorId\", {\r\n get: function () { return this.values.predecessorId; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DependencyInsertingArguments.prototype, \"successorId\", {\r\n get: function () { return this.values.successorId; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DependencyInsertingArguments.prototype, \"type\", {\r\n get: function () { return this.values.type; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return DependencyInsertingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.DependencyInsertingArguments = DependencyInsertingArguments;\r\nvar DependencyRemovingArguments = (function (_super) {\r\n tslib_1.__extends(DependencyRemovingArguments, _super);\r\n function DependencyRemovingArguments(dependency) {\r\n var _this = _super.call(this, dependency.id) || this;\r\n _this.values = dependency;\r\n return _this;\r\n }\r\n return DependencyRemovingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.DependencyRemovingArguments = DependencyRemovingArguments;\r\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeassignResourceCommand = exports.AssignResourceCommand = exports.RemoveResourceCommand = exports.CreateResourceCommand = exports.ResourceCommandBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar ResourceHistoryItem_1 = __webpack_require__(22);\r\nvar ResourceArguments_1 = __webpack_require__(112);\r\nvar AssignmentArguments_1 = __webpack_require__(32);\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, color, callback) {\r\n if (color === void 0) { color = \"\"; }\r\n return _super.prototype.execute.call(this, text, color, callback);\r\n };\r\n CreateResourceCommand.prototype.executeInternal = function (text, color, callback) {\r\n if (color === void 0) { color = \"\"; }\r\n var args = new ResourceArguments_1.ResourceInsertingArguments(text, color);\r\n this.modelManipulator.dispatcher.notifyResourceCreating(args);\r\n if (!args.cancel)\r\n this.history.addAndRedo(new ResourceHistoryItem_1.CreateResourceHistoryItem(this.modelManipulator, args.text, args.color, callback));\r\n return !args.cancel;\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 args = new ResourceArguments_1.ResourceRemovingArguments(resource);\r\n this.modelManipulator.dispatcher.notifyResourceRemoving(args);\r\n if (!args.cancel) {\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) {\r\n if (_this.modelManipulator.dispatcher.fireResourceUnassigning(a))\r\n removeResourceHistoryItem_1.add(new ResourceHistoryItem_1.DeassignResourceHistoryItem(_this.modelManipulator, a.internalId));\r\n });\r\n this.history.addAndRedo(removeResourceHistoryItem_1);\r\n return true;\r\n }\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 var converter = this.control.viewModel;\r\n var args = new AssignmentArguments_1.ResourceAssigningArguments(converter.convertInternalToPublicKey(\"resource\", resourceId), converter.convertInternalToPublicKey(\"task\", taskId));\r\n this.modelManipulator.dispatcher.notifyResourceAssigning(args);\r\n if (!args.cancel) {\r\n this.history.addAndRedo(new ResourceHistoryItem_1.AssignResourceHistoryItem(this.modelManipulator, converter.convertPublicToInternalKey(\"resource\", args.resourceId), converter.convertPublicToInternalKey(\"task\", args.taskId)));\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n AssignResourceCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowTaskResourceUpdate;\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 && this.modelManipulator.dispatcher.fireResourceUnassigning(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 DeassignResourceCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.settings.editing.allowTaskResourceUpdate;\r\n };\r\n return DeassignResourceCommand;\r\n}(ResourceCommandBase));\r\nexports.DeassignResourceCommand = DeassignResourceCommand;\r\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceRemovingArguments = exports.ResourceInsertingArguments = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar BaseArguments_1 = __webpack_require__(20);\r\nvar ResourceInsertingArguments = (function (_super) {\r\n tslib_1.__extends(ResourceInsertingArguments, _super);\r\n function ResourceInsertingArguments(text, color) {\r\n if (color === void 0) { color = \"\"; }\r\n var _this = _super.call(this, null) || this;\r\n _this.values = {\r\n text: text,\r\n color: color\r\n };\r\n return _this;\r\n }\r\n Object.defineProperty(ResourceInsertingArguments.prototype, \"text\", {\r\n get: function () { return this.values.text; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ResourceInsertingArguments.prototype, \"color\", {\r\n get: function () { return this.values.color; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ResourceInsertingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.ResourceInsertingArguments = ResourceInsertingArguments;\r\nvar ResourceRemovingArguments = (function (_super) {\r\n tslib_1.__extends(ResourceRemovingArguments, _super);\r\n function ResourceRemovingArguments(resource) {\r\n var _this = _super.call(this, resource.id) || this;\r\n _this.values = resource;\r\n return _this;\r\n }\r\n return ResourceRemovingArguments;\r\n}(BaseArguments_1.BaseArguments));\r\nexports.ResourceRemovingArguments = ResourceRemovingArguments;\r\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TaskEditParameters = exports.TaskEditDialogCommand = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DialogBase_1 = __webpack_require__(24);\r\nvar TaskPropertiesHistoryItem_1 = __webpack_require__(25);\r\nvar ResourceCollection_1 = __webpack_require__(26);\r\nvar ResourceHistoryItem_1 = __webpack_require__(22);\r\nvar AssignmentArguments_1 = __webpack_require__(32);\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.onBeforeDialogShow = function (params) {\r\n return this.modelManipulator.dispatcher.raiseTaskTaskEditDialogShowing(params, function (args) {\r\n var newValues = args.values;\r\n params.start = newValues.start;\r\n params.end = newValues.end;\r\n params.progress = newValues.progress;\r\n params.title = newValues.title;\r\n params.readOnlyFields = args.readOnlyFields;\r\n params.hiddenFields = args.hiddenFields;\r\n });\r\n };\r\n TaskEditDialogCommand.prototype.applyParameters = function (newParameters, oldParameters) {\r\n this.history.beginTransaction();\r\n var success = this.control.modelManipulator.dispatcher.raiseTaskMultipleUpdating(this.control.viewModel.tasks.getItemById(oldParameters.id), newParameters, function (newValues) {\r\n newParameters.title = newValues.title ? newValues.title : \"\";\r\n newParameters.progress = newValues.progress;\r\n newParameters.start = typeof newValues.start === \"string\" ? new Date(newValues.start) : newValues.start || new Date(0);\r\n newParameters.end = typeof newValues.end === \"string\" ? new Date(newValues.end) : newValues.end || new Date(0);\r\n });\r\n if (success) {\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 }\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 var resourceId = newParameters.assigned.getItem(i).internalId;\r\n var taskId = oldParameters.id;\r\n var args = new AssignmentArguments_1.ResourceAssigningArguments(resourceId, taskId);\r\n this.modelManipulator.dispatcher.notifyResourceAssigning(args);\r\n if (!args.cancel)\r\n this.history.addAndRedo(new ResourceHistoryItem_1.AssignResourceHistoryItem(this.modelManipulator, args.resourceId, args.taskId));\r\n }\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 if (this_1.modelManipulator.dispatcher.fireResourceUnassigning(assignment))\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 (success && 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.showTaskEditDialogCommand = this.control.commandManager.showTaskEditDialog;\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 var gantt = this.control;\r\n var selectedItem = gantt.viewModel.findItem(gantt.currentSelectedTaskID);\r\n return !!selectedItem && selectedItem.selected;\r\n };\r\n TaskEditDialogCommand.prototype.getState = function () {\r\n var state = _super.prototype.getState.call(this);\r\n state.visible = state.visible && !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 _this.hiddenFields = [];\r\n _this.readOnlyFields = [];\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.showTaskEditDialogCommand = this.showTaskEditDialogCommand;\r\n clone.enableEdit = this.enableEdit;\r\n clone.enableRangeEdit = this.enableRangeEdit;\r\n clone.hiddenFields = this.hiddenFields.slice();\r\n clone.readOnlyFields = this.readOnlyFields.slice();\r\n return clone;\r\n };\r\n return TaskEditParameters;\r\n}(DialogBase_1.DialogParametersBase));\r\nexports.TaskEditParameters = TaskEditParameters;\r\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourcesDialogParameters = exports.ResourcesDialogCommand = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar DialogBase_1 = __webpack_require__(24);\r\nvar ResourceCollection_1 = __webpack_require__(26);\r\nvar ConfirmationDialog_1 = __webpack_require__(23);\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 tslib_1.__spreadArray(tslib_1.__spreadArray([], a), [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/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GanttClientCommand = void 0;\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/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RedoCommand = exports.UndoCommand = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\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/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ZoomOutCommand = exports.ZoomInCommand = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\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/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ToggleFullScreenCommand = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\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/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ExpandAllCommand = exports.CollapseAllCommand = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\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/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceColorCommand = exports.ResourcePropertyCommandBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar CommandBase_1 = __webpack_require__(7);\r\nvar ResourcePropertiesHistoryItem_1 = __webpack_require__(121);\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/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResourceColorHistoryItem = exports.ResourcePropertiesHistoryItemBase = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar HistoryItem_1 = __webpack_require__(12);\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/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BarManager = void 0;\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 = void 0; 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 BarManager.prototype.updateItemsState = function (queryCommands) {\r\n var anyQuerySended = !!queryCommands.length;\r\n var _loop_1 = function (i, bar) {\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 = void 0; bar = this.bars[i]; i++) {\r\n _loop_1(i, bar);\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/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ValidationController = exports.ValidationError = void 0;\r\nvar tslib_1 = __webpack_require__(0);\r\nvar Dependency_1 = __webpack_require__(11);\r\nvar TaskPropertiesHistoryItem_1 = __webpack_require__(25);\r\nvar DateRange_1 = __webpack_require__(9);\r\nvar DateTimeUtils_1 = __webpack_require__(2);\r\nvar common_1 = __webpack_require__(1);\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: false,\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: false,\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 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 var delta = validRange.start.getTime() - rangeBeforeMove.start.getTime();\r\n _this.correctOnMoving(successorTask.internalId, delta);\r\n }\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 var delta = validRange.start.getTime() - rangeBeforeMove.start.getTime();\r\n _this.correctOnMoving(successorTask.internalId, delta);\r\n }\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 var delta = validRange.start.getTime() - rangeBeforeMove.start.getTime();\r\n _this.correctOnMoving(successorTask.internalId, delta);\r\n }\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 var delta = validRange.start.getTime() - rangeBeforeMove.start.getTime();\r\n _this.correctOnMoving(successorTask.internalId, delta);\r\n }\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 = tslib_1.__spreadArray(tslib_1.__spreadArray([], this.checkStartDependencies(taskId, dateRange.start)), 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 if (!childTask.isValid())\r\n continue;\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 (!common_1.isDefined(data.id))\r\n return;\r\n var history = _this.history;\r\n var manipulator = _this.gantt.modelManipulator;\r\n if (common_1.isDefined(data.start))\r\n history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskStartHistoryItem(manipulator, data.id, data.start));\r\n if (common_1.isDefined(data.end))\r\n history.addAndRedo(new TaskPropertiesHistoryItem_1.TaskEndHistoryItem(manipulator, data.id, data.end));\r\n if (common_1.isDefined(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.updateOwnerInAutoParentMode();\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 this.gantt.updateOwnerInAutoParentMode();\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: false,\r\n configurable: true\r\n });\r\n return ValidationController;\r\n}());\r\nexports.ValidationController = ValidationController;\r\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FullScreenModeHelper = void 0;\r\nvar browser_1 = __webpack_require__(5);\r\nvar attr_1 = __webpack_require__(125);\r\nvar dom_1 = __webpack_require__(3);\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: false,\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 attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"border-top-width\", \"0px\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"border-left-width\", \"0px\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"border-right-width\", \"0px\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"border-bottom-width\", \"0px\");\r\n this.fullScreenTempVars.scrollTop = dom_1.DomUtils.getDocumentScrollTop();\r\n this.fullScreenTempVars.scrollLeft = dom_1.DomUtils.getDocumentScrollLeft();\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"background-color\", \"white\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"position\", \"fixed\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"top\", \"0px\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"left\", \"0px\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(mainElement, \"z-index\", \"1010\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(document.documentElement, \"position\", \"static\");\r\n attr_1.AttrUtils.changeElementStyleAttribute(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 || mainElement.clientHeight;\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 attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"left\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"top\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"background-color\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(document.documentElement, \"overflow\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(document.documentElement, \"position\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"z-index\");\r\n document.body.style.margin = this.fullScreenTempVars.bodyMargin;\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"position\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"border-top-width\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"border-left-width\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"border-right-width\");\r\n attr_1.AttrUtils.restoreElementStyleAttribute(mainElement, \"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/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(5);\r\nvar AttrUtils = (function () {\r\n function AttrUtils() {\r\n }\r\n AttrUtils.setElementAttribute = function (obj, attrName, value) {\r\n if (obj.setAttribute) {\r\n if (browser_1.Browser.IE && browser_1.Browser.MajorVersion >= 11 && attrName.toLowerCase() === 'src')\r\n obj.setAttribute(attrName, '');\r\n obj.setAttribute(attrName, value);\r\n }\r\n };\r\n AttrUtils.setStyleAttribute = function (obj, attrName, value) {\r\n if (obj.setProperty)\r\n obj.setProperty(attrName, value, '');\r\n };\r\n AttrUtils.getElementAttribute = function (obj, attrName) {\r\n return obj.getAttribute(attrName);\r\n };\r\n AttrUtils.getStyleAttribute = function (obj, attrName) {\r\n 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 AttrUtils.removeElementAttribute = function (obj, attrName) {\r\n if (obj.removeAttribute)\r\n obj.removeAttribute(attrName);\r\n };\r\n AttrUtils.removeStyleAttribute = function (obj, attrName) {\r\n if (obj.removeProperty)\r\n obj.removeProperty(attrName);\r\n };\r\n AttrUtils.changeElementStyleAttribute = function (obj, attrName, newValue) {\r\n AttrUtils.saveStyleAttributeInElement(obj, attrName);\r\n AttrUtils.setStyleAttribute(obj.style, attrName, newValue);\r\n };\r\n AttrUtils.restoreElementStyleAttribute = function (obj, attrName) {\r\n var savedAttrName = \"saved\" + attrName;\r\n var style = obj.style;\r\n if (AttrUtils.isExistsAttributeInElement(obj, savedAttrName)) {\r\n var oldValue = AttrUtils.getElementAttribute(obj, savedAttrName);\r\n if (oldValue === AttrUtils.emptyObject || oldValue === null)\r\n AttrUtils.removeStyleAttribute(style, attrName);\r\n else\r\n AttrUtils.setStyleAttribute(style, attrName, oldValue);\r\n AttrUtils.removeElementAttribute(obj, savedAttrName);\r\n return true;\r\n }\r\n return false;\r\n };\r\n AttrUtils.saveStyleAttributeInElement = function (obj, attrName) {\r\n var savedAttrName = \"saved\" + attrName;\r\n var style = obj.style;\r\n if (!AttrUtils.isExistsAttributeInElement(obj, savedAttrName)) {\r\n var oldValue = AttrUtils.getStyleAttribute(style, attrName);\r\n AttrUtils.setElementAttribute(obj, savedAttrName, AttrUtils.isAttributeExists(oldValue) ? oldValue : AttrUtils.emptyObject);\r\n }\r\n };\r\n AttrUtils.isExistsAttributeInElement = function (obj, attrName) {\r\n var value = AttrUtils.getElementAttribute(obj, attrName);\r\n return AttrUtils.isAttributeExists(value);\r\n };\r\n AttrUtils.isAttributeExists = function (attrValue) {\r\n return attrValue !== null && attrValue !== '';\r\n };\r\n AttrUtils.emptyObject = 'DxEmptyValue';\r\n return AttrUtils;\r\n}());\r\nexports.AttrUtils = AttrUtils;\r\n\n\n/***/ })\n/******/ ]);\n});"],"sourceRoot":""}