UNPKG

@syncfusion/ej2-gantt

Version:
366 lines (365 loc) 9.4 kB
import { Gantt } from '../base/gantt'; import { KeyboardEvents, KeyboardEventArgs } from '@syncfusion/ej2-base'; import { ChartScroll } from '../actions/chart-scroll'; import { IGanttData } from '../base/interface'; import { RecordDoubleClickEventArgs } from '../base/interface'; import { VirtualContentRenderer } from '../renderer/virtual-content-render'; /** * module to render gantt chart - project view */ export declare class GanttChart { private parent; chartElement: HTMLElement; chartTimelineContainer: HTMLElement; chartBodyContainer: HTMLElement; chartBodyContent: HTMLElement; rangeViewContainer: HTMLElement; scrollElement: HTMLElement; scrollObject: ChartScroll; isExpandCollapseFromChart: boolean; isExpandAll: boolean; isCollapseAll: boolean; private focusedElement; focusedRowIndex: number; debounceTimeoutNext: number; debounceTimeout: number; private isGanttElement; keyboardModule: KeyboardEvents; targetElement: Element; previousPinchDistance: number; virtualRender: VirtualContentRenderer; isEditableElement: boolean; tempNextElement: any; nextElementIndex: number; childrenIndex: number; private currentToolbarIndex; private initPinchDistance; private isPinching; private preventScrollIntoView; constructor(parent: Gantt); private addEventListener; private renderChartContents; /** * Method to render top level containers in Gantt chart * * @returns {void} . * @private */ renderChartContainer(): void; /** * method to render timeline, holidays, weekends at load time * * @returns {void} . */ private renderInitialContents; /** * @returns {void} . * @private */ renderOverAllocationContainer(): void; private renderChartElements; /** * @param {IGanttData[]} records . * @returns {void} . * @private */ renderRangeContainer(records: IGanttData[]): void; private getTopValue; private getHierarchyChildRecords; private collectHierarchyChildren; private getRangeHeight; private calculateCollapsedRowHeight; private calculateHierarchyChildLength; private calculateExpandedRowHeight; private renderRange; /** * @returns {void} . * @private */ renderTimelineContainer(): void; /** * initiate chart container * * @returns {void} . */ private renderBodyContainers; /** * @returns {void} . * @private */ updateWidthAndHeight(): void; private setVirtualHeight; /** * Method to update bottom border for chart rows * * @returns {void} . */ updateLastRowBottomWidth(): void; private removeEventListener; /** * Click event handler in chart side * * @param {PointerEvent} e . * @returns {void} . */ private ganttChartMouseDown; private calculatePinchDistance; private ganttChartMouseClick; private ganttChartMouseUp; /** * * @param {PointerEvent} e . * @returns {void} . */ private scrollToTarget; /** * To focus selected task in chart side * * @param {number} scrollLeft . * @returns {void} . * @private */ updateScrollLeft(scrollLeft: number): void; /** * Method trigger while perform mouse up action. * * @param {PointerEvent} e . * @returns {void} * @private */ private mouseUp; /** * Method trigger while perform mouse up action. * * @param {PointerEvent} e . * @returns {void} . * @private */ private documentMouseUp; /** * This event triggered when click on taskbar element * * @param {PointerEvent | KeyboardEventArgs} e . * @param {EventTarget} target . * @param {Element} taskbarElement . * @returns {void} */ onTaskbarClick(e: PointerEvent | KeyboardEventArgs, target: EventTarget, taskbarElement: Element): void; /** * Method trigger while perform mouse leave action. * * @param {PointerEvent} e . * @returns {void} . * @private */ private ganttChartLeave; /** * Method trigger while perform mouse move action. * * @param {PointerEvent} e . * @returns {void} . * @private */ private ganttChartMove; /** * Method trigger while perform right click action. * * @param {PointerEvent} e . * @returns {void} . * @private */ private contextClick; /** * Method to trigger while perform mouse move on Gantt. * * @param {PointerEvent} e . * @returns {void} . * @private */ mouseMoveHandler(e: PointerEvent): void; /** * Double click handler for chart * * @param {PointerEvent} e . * @returns {void} . */ private doubleClickHandler; /** * To trigger record double click event. * * @param {RecordDoubleClickEventArgs} args . * @returns {void} . * @private */ recordDoubleClick(args: RecordDoubleClickEventArgs): void; /** * @param {PointerEvent | KeyboardEventArgs} e . * @returns {IGanttData} . * @private */ getRecordByTarget(e: PointerEvent | KeyboardEventArgs): IGanttData; /** * To get gantt chart row elements * * @returns {NodeListOf<Element>} . * @private */ getChartRows(): NodeListOf<Element>; /** * Expand Collapse operations from gantt chart side * * @param {PointerEvent} e . * @returns {void} . * @private */ private chartExpandCollapseRequest; /** * @returns {void} . * @private */ reRenderConnectorLines(): void; /** * To collapse gantt rows * * @param {object} args . * @param {boolean} isCancel . * @returns {void} . * @private */ collapseGanttRow(args: object): void; /** * @returns {void} . * @param {object} args . * @private */ collapsedGanttRow(args: object): void; /** * To expand gantt rows * * @returns {void} . * @param {object} args . * @param {boolean} isCancel . * @private */ expandGanttRow(args: object): void; /** * @returns {void} . * @param {object} args . * @private */ expandedGanttRow(args: object): void; /** * On expand collapse operation row properties will be updated here. * * @param {string} action . * @param {Node} rowElement . * @param {IGanttData} record . * @param {boolean} isChild . * @returns {void} . * @private */ private expandCollapseChartRows; /** * Public method to expand or collapse all the rows of Gantt * * @returns {void} * @param {string} action . * @private */ expandCollapseAll(action: string): void; /** * Public method to expand particular level of rows. * * @returns {void} . * @param {number} level . * @private */ expandAtLevel(level: number): void; /** * Public method to collapse particular level of rows. * * @returns {void} . * @param {number} level . * @private */ collapseAtLevel(level: number): void; /** * Event Binding for gantt chart click * * @returns {void} . */ private wireEvents; private unWireEvents; private onWheelZoom; /** * To get record by taskbar element. * * @param {Element} target . * @returns {IGanttData} . * @private */ getRecordByTaskBar(target: Element): IGanttData; private updateElement; /** * Trigger Tab & Shift + Tab keypress to highlight active element. * * @param {KeyboardEventArgs} e . * @returns {void} . * @private */ onTabAction(e: KeyboardEventArgs): void; /** * Get next/previous sibling element. * * @param {Element} $target . * @param {boolean} isTab . * @param {boolean} isInEditedState . * @returns {Element | string} . */ private getNextElement; /** * Get next/previous row element. * * @param {number} rowIndex . * @param {boolean} isTab . * @param {boolean} isChartRow . * @returns {Element} . */ private getNextRowElement; /** * Validate next/previous sibling element haschilds. * * @param {Element} $target . * @param {string} className . * @returns {boolean} . */ private validateNextElement; /** * Getting child element based on row element. * * @param {Element} rowElement . * @param {boolean} isTab . * @returns {Element | string} . */ private getChildElement; /** * Add/Remove active element. * * @private * @param {HTMLElement} element . * @param {string} focus . * @param {boolean} isChartElement . * @param {string} keyAction . * @returns {void} . */ manageFocus(element: HTMLElement, focus: string, isChartElement?: boolean, keyAction?: string): void; /** * To get index by taskbar element. * * @param {Element} target . * @returns {number} . * @private */ getIndexByTaskBar(target: Element): number; private destroy; }