UNPKG

@syncfusion/ej2-gantt

Version:
365 lines (364 loc) 10.2 kB
import { Gantt } from '../base/gantt'; import { IGanttData, ITaskData, ITaskbarEditedEventArgs, ITaskSegment } from '../base/interface'; import { DateProcessor } from '../base/date-processor'; /** * File for handling taskbar editing operation in Gantt. */ export declare class TaskbarEdit extends DateProcessor { protected parent: Gantt; taskBarEditElement: HTMLElement; taskBarEditRecord: IGanttData; taskBarEditAction: string; roundOffDuration: boolean; private droppedTarget; leftValue: number; private previousLeftValue; private mouseDownX; private mouseDownY; mouseMoveX: number; mouseMoveY: number; previousItem: ITaskData; previousItemProperty: string[]; taskbarEditedArgs: ITaskbarEditedEventArgs; private progressBorderRadius; private scrollTimer; timerCount: number; dragMouseLeave: boolean; tooltipPositionX: number; isMouseDragged: boolean; private falseLine; connectorSecondElement: Element; connectorSecondRecord: IGanttData; connectorSecondAction: string; fromPredecessorText: string; toPredecessorText: string; finalPredecessor: string; dependencyCancel: boolean; drawPredecessor: boolean; private highlightedSecondElement; private editTooltip; private isDragged; private canDrag; private mainElement; private currentSegmentIndex; private progressValue; /** @private */ tapPointOnFocus: boolean; private editElement; touchEdit: boolean; private prevZIndex; private previousMouseMove; private elementOffsetLeft; private elementOffsetTop; private elementOffsetWidth; private elementOffsetHeight; segmentIndex: number; private targetElement; currentItemTop: number; currentItemPrevTop: number; topValue: number; draggedRecordMarginTop: string; dragMoveY: number; private realTaskbarElement; private cloneTaskbarElement; private taskbarElement; private taskbarResizer; private currentIndex; private currentData; private isClonedElement; private draggedTreeGridRowElement; private draggedTreeGridRowHeight; private updatePosition; private tooltipValue; previousFlatData: object[]; previousIds: string[]; private oldData; constructor(ganttObj?: Gantt); private wireEvents; /** * To initialize the public property. * * @returns {void} . * @private */ private initPublicProp; private mouseDownHandler; private mouseClickHandler; private showHideActivePredecessors; private applyActiveColor; private validateConnectorPoint; private mouseLeaveHandler; /** * To update taskbar edited elements on mouse down action. * * @param {PointerEvent} e . * @returns {void} . * @private */ updateTaskBarEditElement(e: PointerEvent): void; /** * To show/hide taskbar editing elements. * * @param {Element} element . * @param {Element} secondElement . * @param {boolean} fadeConnectorLine . * @returns {void} . * @private */ showHideTaskBarEditingElements(element: Element, secondElement: Element, fadeConnectorLine?: boolean): void; /** * To get taskbar edit actions. * * @param {PointerEvent} e . * @returns {string} . * @private */ private getTaskBarAction; /** * To update property while perform mouse down. * * @param {PointerEvent} event . * @returns {void} . * @private */ private updateMouseDownProperties; private isMouseDragCheck; removeFirstBorder(element: any): void; removeLastBorder(element: Element): void; private removetopOrBottomBorder; private topOrBottomBorder; private removeChildBorder; private addRemoveClasses; private addErrorElem; private removeErrorElem; ensurePosition(draggedRecords: IGanttData[], currentRecord: IGanttData): void; /** * To handle mouse move action in chart * * @param {PointerEvent} event . * @returns {void} . * @private */ mouseMoveAction(event: PointerEvent): void; /** * Method to update taskbar editing action on mous move. * * @param {PointerEvent} e . * @param {boolean} isMouseClick . * @returns {void} . * @private */ taskBarEditingAction(e: PointerEvent, isMouseClick: boolean): void; /** * To update property while perform mouse move. * * @param {PointerEvent} event . * @returns {void} . * @private */ private updateMouseMoveProperties; /** * To start the scroll timer. * * @param {string} direction . * @returns {void} . * @private */ startScrollTimer(direction: string): void; /** * To stop the scroll timer. * * @returns {void} . * @private */ stopScrollTimer(): void; /** * To update left and width while perform taskbar drag operation. * * @param {PointerEvent} e . * @returns {void} . * @private */ private enableDragging; private validateProgressWidth; /** * To update left and width while perform progress resize operation. * * @param {PointerEvent} e . * @param {number} segmentIndex . * @returns {void} . * @private */ private performProgressResize; /** * To update left and width while perform taskbar left resize operation. * * @param {PointerEvent} e . * @returns {void} . * @private */ private enableLeftResizing; private enableSplitTaskLeftResize; /** * Update mouse position and edited item value * * @param {PointerEvent} e . * @param {ITaskData} item . * @returns {void} . */ private updateEditPosition; /** * To update milestone property. * * @param {ITaskData} item . * @returns {void} . * @private */ private updateIsMilestone; /** * To update left and width while perform taskbar right resize operation. * * @param {PointerEvent} e . * @returns {void} . * @private */ private enableRightResizing; /** * To updated startDate and endDate while perform taskbar edit operation. * * @returns {void} . * @private */ private updateEditedItem; /** * Extracts the maximum end date from a list of predecessor relationships. * The end date is selected based on the type of dependency: * - FS (Finish to Start) and FF (Finish to Finish): uses the end date. * - SS (Start to Start) and SF (Start to Finish): uses the start date. * * @param {IPredecessor[]} predecessorList - An array of predecessor links to analyze. * @returns {{ maxEndDate: Date }} - The latest relevant date among all predecessors. */ private extractEndDates; /** * Validates whether the given task has a valid dependency configuration. * It compares the task's start or end date against the latest required predecessor date * and ensures the task starts after all its dependencies are satisfied. * * @param {IGanttData} record - The Gantt task to validate. * @returns {{ isValid: boolean }} - An object indicating if the task's dependencies are valid. */ private isValidDependency; private updateChildDrag; private updateSplitLeftResize; private updateSplitRightResizing; sumOfDuration(segments: ITaskSegment[]): number; private setSplitTaskDrag; /** * To get roundoff enddate. * * @param {ITaskData} ganttRecord . * @param {boolean} isRoundOff . * @returns {number} . * @private */ private getRoundOffEndLeft; /** * To get roundoff startdate. * * @param {ITaskData | ITaskSegment} ganttRecord . * @param {boolean} isRoundOff . * @returns {number} . * @private */ getRoundOffStartLeft(ganttRecord: ITaskData | ITaskSegment, isRoundOff: boolean): number; /** * To get date by left value. * * @param {number} left . * @param {boolean} isMilestone . * @param {ITaskData} property . * @returns {Date} . * @private */ getDateByLeft(left: number, isMilestone?: boolean, property?: ITaskData): Date; /** * To set item position. * * @returns {void} . * @private */ private setItemPosition; /** * To handle mouse up event in chart * * @param {PointerEvent} e . * @returns {void} . * @private */ mouseUpHandler(e: PointerEvent): void; /** * To perform taskbar edit operation. * * @param {PointerEvent} event . * @returns {void} . * @private */ taskBarEditedAction(event: PointerEvent): void; /** * To cancel the taskbar edt action. * * @returns {void} . * @private */ cancelTaskbarEditActionInMouseLeave(): void; updateSegmentProgress(taskData: ITaskData): void; /** * To trigger taskbar edited event. * * @param {ITaskbarEditedEventArgs} arg . * @returns {void} . * @private */ taskbarEdited(arg: ITaskbarEditedEventArgs): void; /** * To get progress in percentage. * * @param {number} parentwidth . * @param {number} progresswidth . * @returns {number} . * @private */ private getProgressPercent; /** * false line implementation. * * @returns {void} . * @private */ private drawFalseLine; /** * * @param {boolean} isRemoveConnectorPointDisplay . * @returns {void} . * @private */ removeFalseLine(isRemoveConnectorPointDisplay: boolean): void; /** * * @param {PointerEvent} e . * @returns {void} . * @private */ updateConnectorLineSecondProperties(e: PointerEvent): void; private triggerDependencyEvent; private getCoordinate; private getElementByPosition; private multipleSelectionEnabled; private unWireEvents; /** * @returns {void} . * @private */ destroy(): void; }