forked from HTMLElements/smart-webcomponents-angular
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsmart-webcomponents-angular-ganttchart.js.map
1 lines (1 loc) · 165 KB
/
smart-webcomponents-angular-ganttchart.js.map
1
{"version":3,"file":"smart-webcomponents-angular-ganttchart.js","sources":["ng://smart-webcomponents-angular/ganttchart/smart.element.ts","ng://smart-webcomponents-angular/ganttchart/smart.ganttchart.ts","ng://smart-webcomponents-angular/ganttchart/smart.ganttchart.module.ts","ng://smart-webcomponents-angular/ganttchart/smart-webcomponents-angular-ganttchart.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n Smart: any;\n}\n}\n\n\nimport { ElementRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ElementRenderMode } from './../index';\n\nexport class BaseElement {\n constructor(ref: ElementRef) {\n const that = this;\n this.nativeElement = ref.nativeElement as any;\n\n that.nativeElement.onAttached = () => {\n that.onAttach.emit(that.nativeElement);\n }\n\n that.nativeElement.onDetached = () => {\n that.onDetach.emit(that.nativeElement);\n }\n }\n\n @Output() onCreate: EventEmitter<any> = new EventEmitter();\n @Output() onReady: EventEmitter<any> = new EventEmitter();\n @Output() onAttach: EventEmitter<any> = new EventEmitter();\n @Output() onDetach: EventEmitter<any> = new EventEmitter();\n\n public nativeElement: any;\n\n public addEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n this.nativeElement.addEventListener(type, listener, options);\n\t}\n\n\tpublic removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n\t\tthis.nativeElement.removeEventListener(type, listener, options);\n\t}\n\n\tpublic dispatchEvent(event: Event): boolean {\n\t\treturn this.nativeElement.dispatchEvent(event);\n\t}\n\n\tpublic blur(): void {\n\t\tthis.nativeElement.blur();\n\t}\n\n\tpublic click(): void {\n\t\tthis.nativeElement.click();\n\t}\n\n\tpublic focus(options?: FocusOptions): void {\n\t\tthis.nativeElement.focus(options);\n\t}\n\n/** @description Sets or gets the language. Used in conjunction with the property messages. */\n\t@Input()\n\tget locale(): string {\n\t\treturn this.nativeElement ? this.nativeElement.locale : undefined;\n\t}\n\tset locale(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.locale = value : undefined;\n\t}\n\n\t/** @description Callback used to customize the format of the messages that are returned from the Localization Module. */\n\t@Input()\n\tget localizeFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined;\n\t}\n\tset localizeFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined;\n\t}\n\n\t/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Determines the theme. Theme defines the look of the element */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n}\n\nexport const Smart: any = window.Smart;\n\n","import { GanttChart } from './../index';\nimport { GanttChartDataExportItemType, GanttDayFormat, Duration, HorizontalScrollBarVisibility, HourFormat, MonthFormat, MonthScale, GanttChartResourceTimelineMode, GanttChartResourceTimelineView, GanttChartSortMode, GanttChartTaskType, VerticalScrollBarVisibility, GanttChartView, YearFormat, WeekFormat, GanttChartDataExport, GanttChartDateMarker, GanttChartResource, GanttChartResourceColumn, GanttChartTask, GanttChartTaskIndicator, GanttChartTaskPlanned, GanttChartTaskSegment, GanttChartTaskColumn, GanttChartTooltip, ElementRenderMode} from './../index';\nimport { Component, Directive, AfterViewInit, ElementRef, Input, OnInit, OnChanges, OnDestroy, SimpleChanges, Output, EventEmitter } from '@angular/core';\nimport { BaseElement, Smart } from './smart.element';\nexport { GanttChartDataExportItemType, GanttDayFormat, Duration, HorizontalScrollBarVisibility, HourFormat, MonthFormat, MonthScale, GanttChartResourceTimelineMode, GanttChartResourceTimelineView, GanttChartSortMode, GanttChartTaskType, VerticalScrollBarVisibility, GanttChartView, YearFormat, WeekFormat, GanttChartDataExport, GanttChartDateMarker, GanttChartResource, GanttChartResourceColumn, GanttChartTask, GanttChartTaskIndicator, GanttChartTaskPlanned, GanttChartTaskSegment, GanttChartTaskColumn, GanttChartTooltip, ElementRenderMode} from './../index';\nexport { Smart } from './smart.element';\nexport { GanttChart } from './../index';\n\n\n@Directive({\n\texportAs: 'smart-gantt-chart',\tselector: 'smart-gantt-chart, [smart-gantt-chart]'\n})\n\nexport class GanttChartComponent extends BaseElement implements OnInit, AfterViewInit, OnDestroy, OnChanges {\n\tconstructor(ref: ElementRef<GanttChart>) {\n\t\tsuper(ref);\n\t\tthis.nativeElement = ref.nativeElement as GanttChart;\n\t}\n\n\tprivate eventHandlers: any[] = [];\n\n\tpublic nativeElement: GanttChart;\n\t/** @description Creates the component on demand.\n\t * @param properties An optional object of properties, which will be added to the template binded ones.\n\t */\n\tpublic createComponent(properties = {}): any {\n \tthis.nativeElement = <GanttChart>document.createElement('smart-gantt-chart');\n\t\tfor (let propertyName in properties) { \n \t\t\tthis.nativeElement[propertyName] = properties[propertyName];\n\t\t}\n\t\treturn this.nativeElement;\n\t}\n\t/** @description Determines whether nonworkingDays/nonworkingHours are taken into considuration when determining the dateEnd of the tasks. When this property is enabled the dateEnd of the tasks is calculated to include only the actual working time. By default it's disabled and only calendar time is used. */\n\t@Input()\n\tget adjustToNonworkingTime(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.adjustToNonworkingTime : undefined;\n\t}\n\tset adjustToNonworkingTime(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.adjustToNonworkingTime = value : undefined;\n\t}\n\n\t/** @description Recalculates the tasks that are connected and re-schedules them according to their connections. If no connections are present, autoScheduling has no effect until a connection is created. Connection types determines the start/end date limits of the tasks. */\n\t@Input()\n\tget autoSchedule(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.autoSchedule : undefined;\n\t}\n\tset autoSchedule(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.autoSchedule = value : undefined;\n\t}\n\n\t/** @description Affects the tasks only when autoSchedule is enabled. When set to true, the tasks are strictly scheduled ( according to their connections ) and dragging is not allowed. Users can set lag to specific connections to determine a delay of overlap of between the two tasks ( interval of time in miliseconds ). Lag one of the attributes of a task connection and should be set in the dataSource where the task connections are defined. */\n\t@Input()\n\tget autoScheduleStrictMode(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.autoScheduleStrictMode : undefined;\n\t}\n\tset autoScheduleStrictMode(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.autoScheduleStrictMode = value : undefined;\n\t}\n\n\t/** @description Determines the scroll speed when dragging when autoScroll property is set. */\n\t@Input()\n\tget autoScrollStep(): number {\n\t\treturn this.nativeElement ? this.nativeElement.autoScrollStep : undefined;\n\t}\n\tset autoScrollStep(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.autoScrollStep = value : undefined;\n\t}\n\n\t/** @description Enabled/Disables the colummn header menu. When enabled and the user hovers a column header, a drop down button will appear that triggers a column menu for quick actions like sorting, filtering, etc. The actions depend on the enabled Gantt features, for example the filtering action will be available only if filtering is enabled for the element. */\n\t@Input()\n\tget columnMenu(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.columnMenu : undefined;\n\t}\n\tset columnMenu(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.columnMenu = value : undefined;\n\t}\n\n\t/** @description Determines whether the Table columns are resizable or not. When enabled it is possible to resize the columns from the header cells of the Table in both Task and Resource timelines. */\n\t@Input()\n\tget columnResize(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.columnResize : undefined;\n\t}\n\tset columnResize(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.columnResize = value : undefined;\n\t}\n\n\t/** @description Determines resize feedback is used during column resizing. This property is applicable only when columnResize is enabled. */\n\t@Input()\n\tget columnResizeFeedback(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.columnResizeFeedback : undefined;\n\t}\n\tset columnResizeFeedback(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.columnResizeFeedback = value : undefined;\n\t}\n\n\t/** @description Enables/Disables the current time indicator. Current time indicator shows the current time in the appropriate view cells. */\n\t@Input()\n\tget currentTimeIndicator(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.currentTimeIndicator : undefined;\n\t}\n\tset currentTimeIndicator(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.currentTimeIndicator = value : undefined;\n\t}\n\n\t/** @description Determines the refresh interval in seconds for the currentTimeIndicator. */\n\t@Input()\n\tget currentTimeIndicatorInterval(): number {\n\t\treturn this.nativeElement ? this.nativeElement.currentTimeIndicatorInterval : undefined;\n\t}\n\tset currentTimeIndicatorInterval(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.currentTimeIndicatorInterval = value : undefined;\n\t}\n\n\t/** @description Sets the GanttChart's Data Export options. */\n\t@Input()\n\tget dataExport(): GanttChartDataExport {\n\t\treturn this.nativeElement ? this.nativeElement.dataExport : undefined;\n\t}\n\tset dataExport(value: GanttChartDataExport) {\n\t\tthis.nativeElement ? this.nativeElement.dataExport = value : undefined;\n\t}\n\n\t/** @description Determines the tasks that will be loaded inside the Timeline. Each item represents an object that should contain the following properties: label - the label of the TaskdateStart - the starting date of the Task. Should be a string representing a valid date.dateEnd - the ending date of the Task. Should be a string representing a valid date.type - determines the type of the task. Whether it's a simple task, a project or a milestone. Each type of task has specific behavior and additional attributes.. Additional properties: connections - an array of objects representing the connection between two tasks. Each connection (object) should have the following properties : target - a number representing the index of the target tasktype - a number representing the type of the connection. Four types of connections are available: 0 - is a connection of type Start-to-Start 1 - is a connection of type End-to-Start 2 - is a connection of type End-to-End3 - is a connection of type Start-to-End lag - a number that determines the delay between two connected auto scheduled tasks. Lag property can be a positive or a negative number. When negative it determines the overlap between two connected tasks. This property is used in conjuction with autoSchedule.duration - determines the duration of a Task in days, hours, minutes, seconds or miliseconds. Very usefull when the the dateEnd of a Task is unknown. The duration always shows the calendar time whether it is in days/hours or other.minDuration - sets the minimum duration of a task. maxDuration - sets the maximum duration of a task.minDateStart - determines the mininum date that a task can start from. Must be if type string and should represent a valid date.maxDateStart - determines the maximum date that a task can start from. Must be if type string and should represent a valid date.minDateEnd - determines the mininum date that a task can end. Must be if type string and should represent a valid date.maxDateEnd - determines the maximum date that a task can end. Must be if type string and should represent a valid date.progress - a number that determines the progress of a task ( from 0 to 100 ).overdue - a boolean that indicates whether the task's dateEnd has surpassed it's deadline date.disableDrag - a boolean property that disables the dragging of a task when set to true.disableResize - a boolean property that disables the resizing of a task when set to true.dragProject - a boolean that determines whether or not the whole project (along with the tasks) can be dragged while dragging the project task. Applicalbe only to Projects.segments - an array of objects that allows to devide a task into multiple segements. Each segment (except the first) can have a different starting date, duration and label.synchronized - a boolean that if set the project task's start/end dates are automatically calculated based on the tasks. By default a synchronized project task can't be dragged alone. Applicable only to Project tasks.expanded - a boolean that determines if a project is expanded or not. If not all of it's sub-tasks are not visible. Only the project task itself is visible. By default no projects are expanded. Applicable only to project tasks..GanttChart also accepts a DataAdapter instance as dataSource. You can read more about the dataAdapter here - https://www.htmlelements.com/docs/data-adapter/. */\n\t@Input()\n\tget dataSource(): any {\n\t\treturn this.nativeElement ? this.nativeElement.dataSource : undefined;\n\t}\n\tset dataSource(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.dataSource = value : undefined;\n\t}\n\n\t/** @description Determines the format of the dates in the timeline header when they represent days. */\n\t@Input()\n\tget dayFormat(): GanttDayFormat | string {\n\t\treturn this.nativeElement ? this.nativeElement.dayFormat : undefined;\n\t}\n\tset dayFormat(value: GanttDayFormat | string) {\n\t\tthis.nativeElement ? this.nativeElement.dayFormat = value : undefined;\n\t}\n\n\t/** @description Determines a specific end date for the Timeline. Usefull when the user wants custom ending date for the Timeline. If no date is set the end date of the timeline is automatically determined from the tasks. */\n\t@Input()\n\tget dateEnd(): string | Date {\n\t\treturn this.nativeElement ? this.nativeElement.dateEnd : undefined;\n\t}\n\tset dateEnd(value: string | Date) {\n\t\tthis.nativeElement ? this.nativeElement.dateEnd = value : undefined;\n\t}\n\n\t/** @description Determines a specific starting date for the Timeline. Usefull when the user wants custom starting date for the Timeline. If no date is set the start date of the timeline is automatically determined from the tasks. */\n\t@Input()\n\tget dateStart(): string | Date {\n\t\treturn this.nativeElement ? this.nativeElement.dateStart : undefined;\n\t}\n\tset dateStart(value: string | Date) {\n\t\tthis.nativeElement ? this.nativeElement.dateStart = value : undefined;\n\t}\n\n\t/** @description Determines the date markers that will be displayed inside the timeline. Date markers allow to mark and even label specific dates (including time) inside the GanttChart timeline. */\n\t@Input()\n\tget dateMarkers(): GanttChartDateMarker[] {\n\t\treturn this.nativeElement ? this.nativeElement.dateMarkers : undefined;\n\t}\n\tset dateMarkers(value: GanttChartDateMarker[]) {\n\t\tthis.nativeElement ? this.nativeElement.dateMarkers = value : undefined;\n\t}\n\n\t/** @description Enables or disables the element. */\n\t@Input()\n\tget disabled(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disabled : undefined;\n\t}\n\tset disabled(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disabled = value : undefined;\n\t}\n\n\t/** @description Disables auto scrolling while dragging/resizing a task bar inside the Timeline. */\n\t@Input()\n\tget disableAutoScroll(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableAutoScroll : undefined;\n\t}\n\tset disableAutoScroll(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableAutoScroll = value : undefined;\n\t}\n\n\t/** @description Disables dragging of tasks in the Timeline. */\n\t@Input()\n\tget disableTaskDrag(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableTaskDrag : undefined;\n\t}\n\tset disableTaskDrag(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableTaskDrag = value : undefined;\n\t}\n\n\t/** @description Disables task progress changing in the Timeline. */\n\t@Input()\n\tget disableTaskProgressChange(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableTaskProgressChange : undefined;\n\t}\n\tset disableTaskProgressChange(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableTaskProgressChange = value : undefined;\n\t}\n\n\t/** @description Disables resizing of tasks in the Timeline. */\n\t@Input()\n\tget disableTaskResize(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableTaskResize : undefined;\n\t}\n\tset disableTaskResize(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableTaskResize = value : undefined;\n\t}\n\n\t/** @description Disables the selection inside the GanttChart. */\n\t@Input()\n\tget disableSelection(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableSelection : undefined;\n\t}\n\tset disableSelection(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableSelection = value : undefined;\n\t}\n\n\t/** @description Disables the task segment dragging. */\n\t@Input()\n\tget disableSegmentDrag(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableSegmentDrag : undefined;\n\t}\n\tset disableSegmentDrag(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableSegmentDrag = value : undefined;\n\t}\n\n\t/** @description Disables the task segment resizing. */\n\t@Input()\n\tget disableSegmentResize(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableSegmentResize : undefined;\n\t}\n\tset disableSegmentResize(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableSegmentResize = value : undefined;\n\t}\n\n\t/** @description Disables the window editor for the GanttChart. */\n\t@Input()\n\tget disableWindowEditor(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableWindowEditor : undefined;\n\t}\n\tset disableWindowEditor(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableWindowEditor = value : undefined;\n\t}\n\n\t/** @description Determines in what unit is task duration property measured. */\n\t@Input()\n\tget durationUnit(): Duration | string {\n\t\treturn this.nativeElement ? this.nativeElement.durationUnit : undefined;\n\t}\n\tset durationUnit(value: Duration | string) {\n\t\tthis.nativeElement ? this.nativeElement.durationUnit = value : undefined;\n\t}\n\n\t/** @description Determines whether a dedicated filter row is used for Table filtering instead of the default filter input. This property has no effect if filtering is not enabled. */\n\t@Input()\n\tget filterRow(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.filterRow : undefined;\n\t}\n\tset filterRow(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.filterRow = value : undefined;\n\t}\n\n\t/** @description Determines the view start day. Sunday is 0, Monday is 1, Saturday is 6. By default it's Sunday. */\n\t@Input()\n\tget firstDayOfWeek(): number {\n\t\treturn this.nativeElement ? this.nativeElement.firstDayOfWeek : undefined;\n\t}\n\tset firstDayOfWeek(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.firstDayOfWeek = value : undefined;\n\t}\n\n\t/** @description Groups the tasks inside the Task timeline according to the resources they are assigned to. Unassigned tasks are placed in a default group labeled 'Unassigned'. */\n\t@Input()\n\tget groupByResources(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.groupByResources : undefined;\n\t}\n\tset groupByResources(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.groupByResources = value : undefined;\n\t}\n\n\t/** @description Allows to create a custom header content for the Task Panel. The attribute accepts an HTMLTemplate element, it's id or a function. */\n\t@Input()\n\tget headerTemplate(): any {\n\t\treturn this.nativeElement ? this.nativeElement.headerTemplate : undefined;\n\t}\n\tset headerTemplate(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.headerTemplate = value : undefined;\n\t}\n\n\t/** @description Determines whether the dateMarkers are visible or not. */\n\t@Input()\n\tget hideDateMarkers(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.hideDateMarkers : undefined;\n\t}\n\tset hideDateMarkers(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.hideDateMarkers = value : undefined;\n\t}\n\n\t/** @description By default the Timeline has a three level header - timeline details, timeline second details and timeline header. This property hides the header container( the bottom container ). */\n\t@Input()\n\tget hideTimelineHeader(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.hideTimelineHeader : undefined;\n\t}\n\tset hideTimelineHeader(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.hideTimelineHeader = value : undefined;\n\t}\n\n\t/** @description By default the Timeline has a three level header - timeline details, timeline second details and timeline header. This property hides the header details container( the top container ). */\n\t@Input()\n\tget hideTimelineHeaderDetails(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.hideTimelineHeaderDetails : undefined;\n\t}\n\tset hideTimelineHeaderDetails(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.hideTimelineHeaderDetails = value : undefined;\n\t}\n\n\t/** @description By default the Timeline has a three level header - timeline details and timeline header. This property hides the second header details container( the middle container ). */\n\t@Input()\n\tget hideTimelineSecondHeaderDetails(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.hideTimelineSecondHeaderDetails : undefined;\n\t}\n\tset hideTimelineSecondHeaderDetails(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.hideTimelineSecondHeaderDetails = value : undefined;\n\t}\n\n\t/** @description Shows the selection column of the Task/Resource Table. When applied a checkbox column is displayed that allows to select tasks/resources. */\n\t@Input()\n\tget showSelectionColumn(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.showSelectionColumn : undefined;\n\t}\n\tset showSelectionColumn(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.showSelectionColumn = value : undefined;\n\t}\n\n\t/** @description Hides the Resource panel regardless of the resources availability By default the Resource panel is visible if resources are added to the GanttChart. This property allows to hide the Resource panel permanently. */\n\t@Input()\n\tget hideResourcePanel(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.hideResourcePanel : undefined;\n\t}\n\tset hideResourcePanel(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.hideResourcePanel = value : undefined;\n\t}\n\n\t/** @description Determines weather or not horizontal scrollbar is shown. */\n\t@Input()\n\tget horizontalScrollBarVisibility(): HorizontalScrollBarVisibility | string {\n\t\treturn this.nativeElement ? this.nativeElement.horizontalScrollBarVisibility : undefined;\n\t}\n\tset horizontalScrollBarVisibility(value: HorizontalScrollBarVisibility | string) {\n\t\tthis.nativeElement ? this.nativeElement.horizontalScrollBarVisibility = value : undefined;\n\t}\n\n\t/** @description Determines the format of the dates inside the timeline header when they represent hours. */\n\t@Input()\n\tget hourFormat(): HourFormat | string {\n\t\treturn this.nativeElement ? this.nativeElement.hourFormat : undefined;\n\t}\n\tset hourFormat(value: HourFormat | string) {\n\t\tthis.nativeElement ? this.nativeElement.hourFormat = value : undefined;\n\t}\n\n\t/** @description When enabled, scrolling to the end of the horizotal timeline, triggers the creation of additional to extend the time range. The number of cells to be added when the scrollbar reaches the end position is determined by the infiniteTimelineStep. */\n\t@Input()\n\tget infiniteTimeline(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.infiniteTimeline : undefined;\n\t}\n\tset infiniteTimeline(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.infiniteTimeline = value : undefined;\n\t}\n\n\t/** @description Determines the number of cells to be added when the horizontal scroll bar of the Timeline reaches it's end position when infiniteTimeline is enabled. */\n\t@Input()\n\tget infiniteTimelineStep(): number {\n\t\treturn this.nativeElement ? this.nativeElement.infiniteTimelineStep : undefined;\n\t}\n\tset infiniteTimelineStep(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.infiniteTimelineStep = value : undefined;\n\t}\n\n\t/** @description When set the Timeline is positioned on the left side while the Task Tree is positioned on the right. By default it's vice versa. */\n\t@Input()\n\tget inverted(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.inverted : undefined;\n\t}\n\tset inverted(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.inverted = value : undefined;\n\t}\n\n\t/** @description Determines whether keyboard navigation inside the Table is enabled or not. Keyboard navigation affects both Task and Resource Tables. It allows to navigate between items. the following keyboard shortcut keys are available for focused tasks inside the Task Table: Enter - opens the Window editor to edit the currently focused task.Delete - opens a confirmation window regarding the deletion of the currently focused task. */\n\t@Input()\n\tget keyboardNavigation(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.keyboardNavigation : undefined;\n\t}\n\tset keyboardNavigation(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.keyboardNavigation = value : undefined;\n\t}\n\n\t/** @description Determines the language of the GanttChart. */\n\t@Input()\n\tget locale(): string {\n\t\treturn this.nativeElement ? this.nativeElement.locale : undefined;\n\t}\n\tset locale(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.locale = value : undefined;\n\t}\n\n\t/** @description Detetmines the maximum possible date of the Timeline. */\n\t@Input()\n\tget max(): string | Date {\n\t\treturn this.nativeElement ? this.nativeElement.max : undefined;\n\t}\n\tset max(value: string | Date) {\n\t\tthis.nativeElement ? this.nativeElement.max = value : undefined;\n\t}\n\n\t/** @description Detetmines the minimum possible date of the Timeline. */\n\t@Input()\n\tget min(): string | Date {\n\t\treturn this.nativeElement ? this.nativeElement.min : undefined;\n\t}\n\tset min(value: string | Date) {\n\t\tthis.nativeElement ? this.nativeElement.min = value : undefined;\n\t}\n\n\t/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Determines the format of the dates the timeline header when they represent months. */\n\t@Input()\n\tget monthFormat(): MonthFormat | string {\n\t\treturn this.nativeElement ? this.nativeElement.monthFormat : undefined;\n\t}\n\tset monthFormat(value: MonthFormat | string) {\n\t\tthis.nativeElement ? this.nativeElement.monthFormat = value : undefined;\n\t}\n\n\t/** @description Determines the scale in Month view. */\n\t@Input()\n\tget monthScale(): MonthScale | string {\n\t\treturn this.nativeElement ? this.nativeElement.monthScale : undefined;\n\t}\n\tset monthScale(value: MonthScale | string) {\n\t\tthis.nativeElement ? this.nativeElement.monthScale = value : undefined;\n\t}\n\n\t/** @description Determines the nonworking days of the week from 0 to 6, where 0 is the first day of the week and 6 is the last day. Nonworking days will be displayed with colored cells inside the timeline and will not affect the dateEnd of the tasks unless the adjustToNonworkingTime property is enabled. */\n\t@Input()\n\tget nonworkingDays(): number[] {\n\t\treturn this.nativeElement ? this.nativeElement.nonworkingDays : undefined;\n\t}\n\tset nonworkingDays(value: number[]) {\n\t\tthis.nativeElement ? this.nativeElement.nonworkingDays = value : undefined;\n\t}\n\n\t/** @description Determines the nonworking hours of a day. Hours are represented as numbers inside an array (e.g. [1,2,3] - means 1,2 and 3 AM) or number ranges represented as nested arrays(e.g. [[0,6]] - means from 0 to 6 AM). In the timline the cells that represent nonworking days are colored differently from the rest and will not affect the dateEnd of the tasks unless the adjustToNonworkingTime property is enabled. */\n\t@Input()\n\tget nonworkingHours(): number[] | number[][] {\n\t\treturn this.nativeElement ? this.nativeElement.nonworkingHours : undefined;\n\t}\n\tset nonworkingHours(value: number[] | number[][]) {\n\t\tthis.nativeElement ? this.nativeElement.nonworkingHours = value : undefined;\n\t}\n\n\t/** @description A function that can be used to completly customize the popup Window that is used to interact width tasks by changing their properties. The function as three arguments: target - the target popup Window that is about to be opened.type - the type of the window. The type determines the purpose of the window. Three possible values: 'task' (task editing), 'confirm' ( confirmation window), 'connection' (used when deleting a connection between tasks). item - the connection/task object that is the target of the window. */\n\t@Input()\n\tget popupWindowCustomizationFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.popupWindowCustomizationFunction : undefined;\n\t}\n\tset popupWindowCustomizationFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.popupWindowCustomizationFunction = value : undefined;\n\t}\n\n\t/** @description Determines which Tab items are visible inside the popup window. Three possible values are allowed: general - the general tab with task properties determines by the taskColumns property.dependency - the dependency tab which shows the connections to the task and allows to create/delete connections.segments - the segments tab which shows the segments of the task and allows to created/delete segments.. */\n\t@Input()\n\tget popupWindowTabs(): string[] {\n\t\treturn this.nativeElement ? this.nativeElement.popupWindowTabs : undefined;\n\t}\n\tset popupWindowTabs(value: string[]) {\n\t\tthis.nativeElement ? this.nativeElement.popupWindowTabs = value : undefined;\n\t}\n\n\t/** @description A format function for the Timeline task progress label. The expected result from the function is a string. The label is hidden by default can be shown with the showProgressLabel property. */\n\t@Input()\n\tget progressLabelFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.progressLabelFormatFunction : undefined;\n\t}\n\tset progressLabelFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.progressLabelFormatFunction = value : undefined;\n\t}\n\n\t/** @description A getter that returns a flat structure as an array of all resources inside the element. */\n\t@Input()\n\tget resources(): GanttChartResource[] {\n\t\treturn this.nativeElement ? this.nativeElement.resources : undefined;\n\t}\n\tset resources(value: GanttChartResource[]) {\n\t\tthis.nativeElement ? this.nativeElement.resources = value : undefined;\n\t}\n\n\t/** @description Deteremines the columns that will be visible in the Resource Tree. Each entry in the value of this property must be of type Object. It should contain the label and value keys. The value of label determines the column header label inside the Task Tree. The value of value determines the content of the cells in the column. By default, one column with all resource labels is visible. Additional properties: formatFunction - a function that allows to customize the content of each record in the column. The function accepts two arguments - the actual label as string that is going to be inserted and the index of the resource. The function must return a string as the new content. min - controls the min size of the column max - controls the max size of the columnsize - controls the actual size of the column */\n\t@Input()\n\tget resourceColumns(): GanttChartResourceColumn[] {\n\t\treturn this.nativeElement ? this.nativeElement.resourceColumns : undefined;\n\t}\n\tset resourceColumns(value: GanttChartResourceColumn[]) {\n\t\tthis.nativeElement ? this.nativeElement.resourceColumns = value : undefined;\n\t}\n\n\t/** @description Determines whether the Resource Table is filterable or not. */\n\t@Input()\n\tget resourceFiltering(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.resourceFiltering : undefined;\n\t}\n\tset resourceFiltering(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.resourceFiltering = value : undefined;\n\t}\n\n\t/** @description A format function that allows to re-format the group row labels when groupByResources is enabled. */\n\t@Input()\n\tget resourceGroupFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.resourceGroupFormatFunction : undefined;\n\t}\n\tset resourceGroupFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.resourceGroupFormatFunction = value : undefined;\n\t}\n\n\t/** @description Allows to create a custom header content for the Resource Panel. The attribute accepts an HTMLTemplate element, it's id or a function. */\n\t@Input()\n\tget resourcePanelHeaderTemplate(): any {\n\t\treturn this.nativeElement ? this.nativeElement.resourcePanelHeaderTemplate : undefined;\n\t}\n\tset resourcePanelHeaderTemplate(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.resourcePanelHeaderTemplate = value : undefined;\n\t}\n\n\t/** @description Determines the min size of the Resource Panel. */\n\t@Input()\n\tget resourcePanelMin(): number | string {\n\t\treturn this.nativeElement ? this.nativeElement.resourcePanelMin : undefined;\n\t}\n\tset resourcePanelMin(value: number | string) {\n\t\tthis.nativeElement ? this.nativeElement.resourcePanelMin = value : undefined;\n\t}\n\n\t/** @description Determines the size of the Resource Panel. */\n\t@Input()\n\tget resourcePanelSize(): number | string {\n\t\treturn this.nativeElement ? this.nativeElement.resourcePanelSize : undefined;\n\t}\n\tset resourcePanelSize(value: number | string) {\n\t\tthis.nativeElement ? this.nativeElement.resourcePanelSize = value : undefined;\n\t}\n\n\t/** @description Determines the refresh rate of the Resource Panel when dragging/resizing/progress changing a Task from the Timeline. This property allows to customize the interval between resource Tree/Timeline refreshes. By default they refresh immediately after a change. */\n\t@Input()\n\tget resourcePanelRefreshRate(): number {\n\t\treturn this.nativeElement ? this.nativeElement.resourcePanelRefreshRate : undefined;\n\t}\n\tset resourcePanelRefreshRate(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.resourcePanelRefreshRate = value : undefined;\n\t}\n\n\t/** @description A callback that can be used to customize the content of the resource Timeline cells. The callback accepts three arguments: taskIndexes - an array of task indexes that are assigned to the resource for the current cell.resourceIndex - the index of the resource.cellDate - the date of the current cell. This property is used when resourceTimelineView is set to custom. Depending on the resourceTimelineMode, it should return: string - when the resourceTimelineMode is set to 'diagram'.object - when the resourceTimelineMode is set to 'histogram'. The object should have two attributes: capacity and maxCapacity, in order to be visualized as a histogram.. Another usage of this callback is to customize the timeline resource representation completely if resourceTimelineMode is set to custom. */\n\t@Input()\n\tget resourceTimelineFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.resourceTimelineFormatFunction : undefined;\n\t}\n\tset resourceTimelineFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.resourceTimelineFormatFunction = value : undefined;\n\t}\n\n\t/** @description Determines how the capacity of the resources will be visualized inside the resource timeline. By default, the capacity is measured in hours depending on the view property of the element. */\n\t@Input()\n\tget resourceTimelineMode(): GanttChartResourceTimelineMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.resourceTimelineMode : undefined;\n\t}\n\tset resourceTimelineMode(value: GanttChartResourceTimelineMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.resourceTimelineMode = value : undefined;\n\t}\n\n\t/** @description Determines how the resources will be displayed inside the resource Timeline. */\n\t@Input()\n\tget resourceTimelineView(): GanttChartResourceTimelineView | string {\n\t\treturn this.nativeElement ? this.nativeElement.resourceTimelineView : undefined;\n\t}\n\tset resourceTimelineView(value: GanttChartResourceTimelineView | string) {\n\t\tthis.nativeElement ? this.nativeElement.resourceTimelineView = value : undefined;\n\t}\n\n\t/** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Sets which tasks to select by their id or gets the currently selected task ids. If no id is provided for the task, an internal id is generated for each task according to it's index(tree path). */\n\t@Input()\n\tget selectedTaskIds(): number[] | string[] {\n\t\treturn this.nativeElement ? this.nativeElement.selectedTaskIds : undefined;\n\t}\n\tset selectedTaskIds(value: number[] | string[]) {\n\t\tthis.nativeElement ? this.nativeElement.selectedTaskIds = value : undefined;\n\t}\n\n\t/** @description Sets which resources to select by their id or gets the currently selected resource ids. If no id is provided for the resource, an internal id is generated for each resource according to it's index(tree path). */\n\t@Input()\n\tget selectedResourceIds(): number[] | string[] {\n\t\treturn this.nativeElement ? this.nativeElement.selectedResourceIds : undefined;\n\t}\n\tset selectedResourceIds(value: number[] | string[]) {\n\t\tthis.nativeElement ? this.nativeElement.selectedResourceIds = value : undefined;\n\t}\n\n\t/** @description Enables/Disables the current time shader. If enabled all cells that represent past time will be shaded. */\n\t@Input()\n\tget shadeUntilCurrentTime(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.shadeUntilCurrentTime : undefined;\n\t}\n\tset shadeUntilCurrentTime(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.shadeUntilCurrentTime = value : undefined;\n\t}\n\n\t/** @description Determines whether the baselnes of the tasks are visible or not. Baselines are defined via the 'planned' attribute on the task objects of the dataSource property. */\n\t@Input()\n\tget showBaseline(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.showBaseline : undefined;\n\t}\n\tset showBaseline(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.showBaseline = value : undefined;\n\t}\n\n\t/** @description Shows the progress label inside the progress bars of the Timeline tasks. */\n\t@Input()\n\tget showProgressLabel(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.showProgressLabel : undefined;\n\t}\n\tset showProgressLabel(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.showProgressLabel = value : undefined;\n\t}\n\n\t/** @description If set the dateStart/dateEnd of the tasks will be coerced to the nearest timeline cell date ( according to the view ). Affects the dragging operation as well. */\n\t@Input()\n\tget snapToNearest(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.snapToNearest : undefined;\n\t}\n\tset snapToNearest(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.snapToNearest = value : undefined;\n\t}\n\n\t/** @description Determines whether the GanttChart can be sorted by one, more then one or no columns. */\n\t@Input()\n\tget sortFunction(): { (dataSource: any, sortColumns: string[], directions: string[], defaultCompareFunctions: { (firstRecord: any, secondRecord: any): number }[]): void } {\n\t\treturn this.nativeElement ? this.nativeElement.sortFunction : undefined;\n\t}\n\tset sortFunction(value: { (dataSource: any, sortColumns: string[], directions: string[], defaultCompareFunctions: { (firstRecord: any, secondRecord: any): number }[]): void }) {\n\t\tthis.nativeElement ? this.nativeElement.sortFunction = value : undefined;\n\t}\n\n\t/** @description A getter that returns a flat structure as an array of all tasks inside the element. */\n\t@Input()\n\tget sortMode(): GanttChartSortMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.sortMode : undefined;\n\t}\n\tset sortMode(value: GanttChartSortMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.sortMode = value : undefined;\n\t}\n\n\t/** @description Deteremines the columns that will be visible in the Task Tree. Each entry in the value of this property must be of type Object. It should contain the label and value keys. The value of label determines the column header label inside the Task Tree. The value of value determines the content of the cells in the column. It should reference a task attribute from the dataSource. By default, one column with all task labels is visible. Additional properties: formatFunction - a function that allows to customize the content of each record in the column. The function accepts one argument - the actual label as string that is going to be inserted and must return some content. min - controls the min size of the column max - controls the max size of the column size - controls the actual size of the columncustomEditor - a callback that can be used to set a custom editor for the column when editing via the window. It accepts two arguments label - the label of the columnvalue - the value of the column. The callback must return the editor.setCustomEditorValue - a callback that is used to set the value of the custom editor.getCustomEditorValue - a callback that is used to get the value of the custom editor. */\n\t@Input()\n\tget tasks(): GanttChartTask[] {\n\t\treturn this.nativeElement ? this.nativeElement.tasks : undefined;\n\t}\n\tset tasks(value: GanttChartTask[]) {\n\t\tthis.nativeElement ? this.nativeElement.tasks = value : undefined;\n\t}\n\n\t/** @description Determines whether the Task Table is filterable or not. */\n\t@Input()\n\tget taskColumns(): GanttChartTaskColumn[] {\n\t\treturn this.nativeElement ? this.nativeElement.taskColumns : undefined;\n\t}\n\tset taskColumns(value: GanttChartTaskColumn[]) {\n\t\tthis.nativeElement ? this.nativeElement.taskColumns = value : undefined;\n\t}\n\n\t/** @description Determines the min size of the Task Panel. Used when Resource Panel is visible. */\n\t@Input()\n\tget taskFiltering(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.taskFiltering : undefined;\n\t}\n\tset taskFiltering(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.taskFiltering = value : undefined;\n\t}\n\n\t/** @description Determines the size of the Task Panel. Used when Resource Panel is visible. */\n\t@Input()\n\tget taskPanelMin(): string | number {\n\t\treturn this.nativeElement ? this.nativeElement.taskPanelMin : undefined;\n\t}\n\tset taskPanelMin(value: string | number) {\n\t\tthis.nativeElement ? this.nativeElement.taskPanelMin = value : undefined;\n\t}\n\n\t/** @description Determines the min width of the timeline. */\n\t@Input()\n\tget taskPanelSize(): string | number {\n\t\treturn this.nativeElement ? this.nativeElement.taskPanelSize : undefined;\n\t}\n\tset taskPanelSize(value: string | number) {\n\t\tthis.nativeElement ? this.nativeElement.taskPanelSize = value : undefined;\n\t}\n\n\t/** @description Determines the min width of the task table. */\n\t@Input()\n\tget timelineMin(): string | number {\n\t\treturn this.nativeElement ? this.nativeElement.timelineMin : undefined;\n\t}\n\tset timelineMin(value: string | number) {\n\t\tthis.nativeElement ? this.nativeElement.timelineMin = value : undefined;\n\t}\n\n\t/** @description Determines the size(width) of the task table. */\n\t@Input()\n\tget treeMin(): string | number {\n\t\treturn this.nativeElement ? this.nativeElement.treeMin : undefined;\n\t}\n\tset treeMin(value: string | number) {\n\t\tthis.nativeElement ? this.nativeElement.treeMin = value : undefined;\n\t}\n\n\t/** @description A format function for the Header of the Timeline. The function provides the following arguments: date - a Date object that represets the date for the current cell.type - a string that represents the type of date that the cell is showing, e.g. 'month', 'week', 'day', etc.isHeaderDetails - a boolean that indicates whether the current cell is part of the Header Details Container or not.value - a string that represents the default value for the cell provided by the element. */\n\t@Input()\n\tget treeSize(): string | number {\n\t\treturn this.nativeElement ? this.nativeElement.treeSize : undefined;\n\t}\n\tset treeSize(value: string | number) {\n\t\tthis.nativeElement ? this.nativeElement.treeSize = value : undefined;\n\t}\n\n\t/** @description Determines whether the tooltips are enabled or not. Tooltips are available for timeline tasks, resources, connections, indicators and segments. */\n\t@Input()\n\tget timelineHeaderFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.timelineHeaderFormatFunction : undefined;\n\t}\n\tset timelineHeaderFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.timelineHeaderFormatFunction = value : undefined;\n\t}\n\n\t/** @description Determines weather or not vertical scrollbar is shown. */\n\t@Input()\n\tget tooltip(): GanttChartTooltip {\n\t\treturn this.nativeElement ? this.nativeElement.tooltip : undefined;\n\t}\n\tset tooltip(value: GanttChartTooltip) {\n\t\tthis.nativeElement ? this.nativeElement.tooltip = value : undefined;\n\t}\n\n\t/** @description Determines the viewing date range of the timeline. Possible values: day - The timeline show the hours of the day.week - the timeline shows the days of the week.month - the timeline shows the days of the month.year - the timeline shows the months of the year.resource - displays the current tasks by grouping them according to the resources they have assigned. The unassigned tasks will be placed in a separate group called 'Unassigned'. The timeline has a header section that contains the labels of each cell according to the date inside them. The header is splitted in two sections in order to give a more detailed information of the dates. */\n\t@Input()\n\tget verticalScrollBarVisibility(): VerticalScrollBarVisibility | string {\n\t\treturn this.nativeElement ? this.nativeElement.verticalScrollBarVisibility : undefined;\n\t}\n\tset verticalScrollBarVisibility(value: VerticalScrollBarVisibility | string) {\n\t\tthis.nativeElement ? this.nativeElement.verticalScrollBarVisibility = value : undefined;\n\t}\n\n\t/** @description Determines the format of the dates inside the timeline header when they represent years. */\n\t@Input()\n\tget view(): GanttChartView | string {\n\t\treturn this.nativeElement ? this.nativeElement.view : undefined;\n\t}\n\tset view(value: GanttChartView | string) {\n\t\tthis.nativeElement ? this.nativeElement.view = value : undefined;\n\t}\n\n\t/** @description Determines the format of the dates inside the timeline header when they represent weeks. */\n\t@Input()\n\tget yearFormat(): YearFormat | string {\n\t\treturn this.nativeElement ? this.nativeElement.yearFormat : undefined;\n\t}\n\tset yearFormat(value: YearFormat | string) {\n\t\tthis.nativeElement ? this.nativeElement.yearFormat = value : undefined;\n\t}\n\n\t/** @description Sets or gets the element's visual theme. */\n\t@Input()\n\tget weekFormat(): WeekFormat | string {\n\t\treturn this.nativeElement ? this.nativeElement.weekFormat : undefined;\n\t}\n\tset weekFormat(value: WeekFormat | string) {\n\t\tthis.nativeElement ? this.nativeElement.weekFormat = value : undefined;\n\t}\n\n\t/** @description Sets or gets if the element can be focused. */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n\n\t/** @description undefined */\n\t@Input()\n\tget unfocusable(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.unfocusable : undefined;\n\t}\n\tset unfocusable(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.unfocusable = value : undefined;\n\t}\n\n\t/** @description This event is triggered when a batch update was started after executing the beginUpdate method.\n\t* @param event. The custom event. \t*/\n\t@Output() onBeginUpdate: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when a batch update was ended from after executing the endUpdate method.\n\t* @param event. The custom event. \t*/\n\t@Output() onEndUpdate: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the user starts connecting one task to another. This event allows to cancel the operation by calling event.preventDefault() in the event handler function.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tstartIndex)\n\t* startIndex - The index of the task that a connection is started from.\n\t*/\n\t@Output() onConnectionStart: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the user completes a connection between two tasks.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tid, \tstartTaskId, \tstartIndex, \tendIndex, \tendTaskId, \ttype)\n\t* id - The id of the connection that was created.\n\t* startTaskId - The id of the task that a connection is started from.\n\t* startIndex - The index of the task that a connection is started from.\n\t* endIndex - The index of the task that a connection ended to.\n\t* endTaskId - The id of the task that a connection ended to.\n\t* type - The type of connection. Fours types are available: <ul><li><b>0</b> - start-to-start</li><li><b>1</b> - end-to-start</li><li><b>2</b> - end-to-end</li><li><b>3</b> - start-to-end</li></ul>\n\t*/\n\t@Output() onConnectionEnd: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when a Task is selected/unselected.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tvalue, \toldValue)\n\t* value - The index of the new selected task.\n\t* oldValue - The index of the previously selected task.\n\t*/\n\t@Output() onChange: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when a Tree column is resized. Column resizing is controled by the columnResize property.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tdataField, \theaderCellElement, \twidthInPercentages, \twidth)\n\t* dataField - The name of the column. Corresponds to the <b>value</b> attribute of a <b>taskColumns/resourceColumns</b> object.\n\t* headerCellElement - The HTMLElement column cell element that was resized.\n\t* widthInPercentages - The new width of the column in percentages.\n\t* width - The new width of the column in pixels.\n\t*/\n\t@Output() onColumnResize: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered just before the window for task editing or tooltip is closing. The closing operation can be canceled by calling event.preventDefault() in the event handler function.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\towner, \titem, \ttarget, \ttype)\n\t* owner - The HTMLElement that is the owner of the tooltip. This attribute is defined only when the event is related to the tooltip.\n\t* item - The item object that is related to the tooltip owner. It can be a task/segment/resource/indicator object. This attribute is defined only when the event is related to the tooltip.\n\t* target - The instance of the window/tooltip that is going to close.\n\t* type - The type of window/tooltip that is going to close. There are three types of windows inside GanttChart: <ul><li><b>confirm</b> - a confirm window. This type of window is usually used to confirm the deletion of a task.</li><li><b>task</b> - a window used for task editing.</li><li><b>connection</b> - a window used to delete a connection.</li></ul>. If the event is a tooltip event, there are several tooltip types: <ul><li>indicator - when the tooltip owner is an indicator.</li><li>segment - when the tooltip owner is a task segment.</li><li>task - when the tooltip owner is a task.</li><li>resource - when the tooltip target is a resource.</li></ul>\n\t*/\n\t@Output() onClosing: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the window for task editing is closed( hidden )\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\towner, \titem, \ttarget, \ttype)\n\t* owner - The HTMLElement that is the owner of the tooltip. This attribute is defined only when the event is related to the tooltip\n\t* item - The item object that is related to the tooltip owner. It can be a task/segment/resource/indicator object. This attribute is defined only when the event is related to the tooltip.\n\t* target - The instance of the window/tooltip that is closed.\n\t* type - The type of window/tooltip that is closed. There are three types of windows inside GanttChart: <ul><li><b>confirm</b> - a confirm window. This type of window is usually used to confirm the deletion of a task.</li><li><b>task</b> - a window used for task editing.</li><li><b>connection</b> - a window used to delete a connection.</li></ul>. If the event is a tooltip event, there are several tooltip types: <ul><li>indicator - when the tooltip owner is an indicator.</li><li>segment - when the tooltip owner is a task segment.</li><li>task - when the tooltip owner is a task.</li><li>resource - when the tooltip target is a resource.</li></ul>\n\t*/\n\t@Output() onClose: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when an item is collapsed.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tisGroup, \titem, \tindex, \tlabel, \tvalue)\n\t* isGroup - A boolean flag indicating whether the collapsed item is a resource group. This is the case when <b>groupByResoruces</b> is enabled.\n\t* item - The object details of the collapsed item.\n\t* index - The index of the collapsed item.\n\t* label - The label of the collapsed item.\n\t* value - The value of the collapsed item.\n\t*/\n\t@Output() onCollapse: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when dragging of a task starts. This event allows to cancel the operation by calling event.preventDefault() in the event handler function.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tid, \titem, \tdateStart, \tdateEnd, \tsegment)\n\t* id - The id of the task that is going to be dragged.\n\t* item - The object of the task that is going to be dragged.\n\t* dateStart - The start date of the task that is going to be dragged.\n\t* dateEnd - The end date of the task that is going to be dragged.\n\t* segment - The segment object that is going to be dragged. This attribute is undefined if a segment is not going to be dragged.\n\t*/\n\t@Output() onDragStart: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when dragging of a task finishes.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tid, \titem, \tdateStart, \tdateEnd, \tsegment)\n\t* id - The id of the task that is was dragged.\n\t* item - The object of the task that is was dragged.\n\t* dateStart - The start date of the task that is was dragged.\n\t* dateEnd - The end date of the task that is was dragged.\n\t* segment - The segment object that was dragged. This attribute is undefined if a segment has not been dragged.\n\t*/\n\t@Output() onDragEnd: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when an item is expanded.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tisGroup, \titem, \tindex, \tlabel, \tvalue)\n\t* isGroup - A boolean flag indicating whether the collapsed item is a resource group. This is the case when <b>groupByResoruces</b> is enabled.\n\t* item - The index of the expanded item.\n\t* index - The index of the expanded item.\n\t* label - The label of the expanded item.\n\t* value - The value of the expanded item.\n\t*/\n\t@Output() onExpand: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the GanttChart is filtered.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\ttype, \taction, \tfilters)\n\t* type - The type of items that have been filtered ( task or resource ).\n\t* action - The name of the filtering action (whether filtering is added or removed).\n\t* filters - The filters that have been applied. Filters represent JQX.Utilities.FilterGroup objects.\n\t*/\n\t@Output() onFilter: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when a task, resource or connection is clicked inside the Timeline or the Tree columns.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tid, \titem, \ttype, \toriginalEvent)\n\t* id - The id of the task.\n\t* item - The item that was clicked. It can be a task, resource or connection.\n\t* type - The type of item. Possible values are: 'task', 'project', 'resource', 'connection'.\n\t* originalEvent - The original DOM event.\n\t*/\n\t@Output() onItemClick: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when a Task/Resource/Connection is inserted.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\ttype, \titem)\n\t* type - The type of item that has been modified. The type could be: 'connection', 'task', 'project', 'resource'.\n\t* item - An object that represents the actual item with it's attributes.\n\t*/\n\t@Output() onItemInsert: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when a Task/Resource/Connection is removed.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tid, \ttype, \titem)\n\t* id - The id of the task.\n\t* type - The type of item that has been modified. The type could be: 'connection', 'task', 'project', 'resource'.\n\t* item - An object that represents the actual item with it's attributes.\n\t*/\n\t@Output() onItemRemove: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when a Task/Resource/Connection is updated.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tid, \ttype, \titem)\n\t* id - The id of the task.\n\t* type - The type of item that has been modified. The type could be: 'connection', 'task', 'project', 'resource'.\n\t* item - An object that represents the actual item with it's attributes.\n\t*/\n\t@Output() onItemUpdate: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered just before the window for task editing or tooltip is opening. The opening operation can be canceled by calling event.preventDefault() in the event handler function.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\towner, \titem, \ttarget, \ttype)\n\t* owner - The HTMLElement that is the owner of the tooltip. This attribute is defined only when the event is related to the tooltip\n\t* item - The item object that is related to the tooltip owner. It can be a task/segment/resource/indicator object. This attribute is defined only when the event is related to the tooltip.\n\t* target - The instance of the window/tooltip that is going to open.\n\t* type - The type of window/tooltip that is going to open. There are three types of windows inside GanttChart: <ul><li><b>confirm</b> - a confirm window. This type of window is usually used to confirm the deletion of a task.</li><li><b>task</b> - a window used for task editing.</li><li><b>connection</b> - a window used to delete a connection.</li></ul>. If the event is a tooltip event, there are several tooltip types: <ul><li>indicator - when the tooltip owner is an indicator.</li><li>segment - when the tooltip owner is a task segment.</li><li>task - when the tooltip owner is a task.</li><li>resource - when the tooltip target is a resource.</li></ul>\n\t*/\n\t@Output() onOpening: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the window for task editing is opened( visible ) or when the tooltip is opened.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\towner, \titem, \ttarget, \ttype)\n\t* owner - The HTMLElement that is the owner of the tooltip. This attribute is defined only when the event is related to the tooltip\n\t* item - The item object that is related to the tooltip owner. It can be a task/segment/resource/indicator object. This attribute is defined only when the event is related to the tooltip.\n\t* target - The instance of the window/tooltip that is opened.\n\t* type - The type of window/tooltip that is opened. There are three types of windows inside GanttChart: <ul><li><b>confirm</b> - a confirm window. This type of window is usually used to confirm the deletion of a task.</li><li><b>task</b> - a window used for task editing.</li><li><b>connection</b> - a window used to delete a connection.</li></ul>. If the event is a tooltip event, there are several tooltip types: <ul><li>indicator - when the tooltip owner is an indicator.</li><li>segment - when the tooltip owner is a task segment.</li><li>task - when the tooltip owner is a task.</li><li>resource - when the tooltip target is a resource.</li></ul>\n\t*/\n\t@Output() onOpen: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the progress of a task bar starts to change as a result of user interaction. This event allows to cancel the operation by calling event.preventDefault() in the event handler function.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tid, \tindex, \tprogress)\n\t* id - The id of the task.\n\t* index - The index of the task which progress is going to be changed.\n\t* progress - The progress of the task before it is changed.\n\t*/\n\t@Output() onProgressChangeStart: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the progress of a task is changed.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tid, \tindex, \tprogress)\n\t* id - The id of the task.\n\t* index - The index of the task which progress is has been changed.\n\t* progress - The progress of the task after it was changed.\n\t*/\n\t@Output() onProgressChangeEnd: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when resizing of a task starts. This event allows to cancel the operation by calling event.preventDefault() in the event handler function.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tid, \titem, \tdateStart, \tdateEnd, \tsegment)\n\t* id - The id of the task that is going to be resized.\n\t* item - The object of the task that is going to be resized.\n\t* dateStart - The start date of the task that is going to be resized.\n\t* dateEnd - The end date of the task that is going to be resized.\n\t* segment - The segment object that is going to be resized. This attribute is undefined if a segment is not going to be resized.\n\t*/\n\t@Output() onResizeStart: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the resizing of a task finishes.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tid, \titem, \tdateStart, \tdateEnd, \tsegment)\n\t* id - The id of the task that was resized.\n\t* item - The object of the task that was resized.\n\t* dateStart - The start date of the task that was resized.\n\t* dateEnd - The end date of the task that was resized.\n\t* segment - The segment object that was resized. This attribute is undefined if a segment has not been resized.\n\t*/\n\t@Output() onResizeEnd: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the GanttChart is sorted by some column.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\ttype, \tcolumns, \tsortDataFields, \tsortOrders, \tsortDataTypes)\n\t* type - The type of columns that have been sorted ( task or resource column ).\n\t* columns - An array of objects that contains the currently sorted column objects.\n\t* sortDataFields - The dataFields of the columns that have been sorted. The dataField corresponds to the <b>value</b> property of a <b>taskColumns/resourceColumns</b> object.\n\t* sortOrders - The orders of the columns that have been sorted.\n\t* sortDataTypes - The data types of the columns that have been sorted.\n\t*/\n\t@Output() onSort: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the Timeline has been scrolled to the bottom.\n\t* @param event. The custom event. \t*/\n\t@Output() onScrollBottomReached: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the Timeline has been scrolled to the top.\n\t* @param event. The custom event. \t*/\n\t@Output() onScrollTopReached: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the Timeline has been scrolled to the beginning (horizontally).\n\t* @param event. The custom event. \t*/\n\t@Output() onScrollLeftReached: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the Timeline has been scrolled to the end (horizontally).\n\t* @param event. The custom event. \t*/\n\t@Output() onScrollRightReached: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description Adds a custom filter to a specific column (task or resource column). \n\t* @param {any} columns. An object or an array of objects with the following syntax: <ul><li><b>type</b> - indicates the type of column to filter. Possible values are 'task' or 'resource'.</li><li><b>value</b> - the value of the column that must match the value attribute of a taskColumns/resourceColumns object(e.g. 'label', 'dateStart', etc).</li></ul>.\n\t* @param {any} filterGroup. A JQX.Utilities.FilterGroup object. Here's an example for creating a FilterGroup object: <pre>const filterGroup = new window.JQX.Utilities.FilterGroup(), filterObject = filterGroup.createFilter('string', 'Task B', 'STARTS_WITH_CASE_SENSITIVE'); filterGroup.addFilter('or', filterObject); gantt.addFilter({ type: 'task', value: 'label' }, filterGroup);</pre>\n\t*/\n public addFilter(columns: any, filterGroup: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.addFilter(columns, filterGroup);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.addFilter(columns, filterGroup);\n });\n }\n }\n\n\t/** @description Clears the currently applied filters. \n\t*/\n public clearFilters(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.clearFilters();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.clearFilters();\n });\n }\n }\n\n\t/** @description Clears the currently applied column sorting. \n\t*/\n public clearSort(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.clearSort();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.clearSort();\n });\n }\n }\n\n\t/** @description Unselects all currently selected items inside the GanttChart including Tasks and Resources. It also clears the assignment highlgihters. \n\t*/\n public clearSelection(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.clearSelection();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.clearSelection();\n });\n }\n }\n\n\t/** @description Removes a previously saved state of the element form LocalStorage according to it's id. Requires an id to be set to the element. \n\t*/\n public clearState(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.clearState();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.clearState();\n });\n }\n }\n\n\t/** @description Removes all tasks. \n\t*/\n public clearTasks(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.clearTasks();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.clearTasks();\n });\n }\n }\n\n\t/** @description Removes all resources. \n\t*/\n public clearResources(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.clearResources();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.clearResources();\n });\n }\n }\n\n\t/** @description Creates a connection between two tasks. \n\t* @param {number | string} startTaskIndex. The id of the start task or the connection string like '2-3-0'. <b>If the complete connections string is provided as the first argument, the rest of the method arguments are not necessary</b>\n\t* @param {number | string} taskEndIndex?. The id of the end task.\n\t* @param {number} connectionType?. The type of the connection. A numeric value from 0 to 3. The connection type can be: <ul><li><b>0</b> - Start-to-Start connection.</li><li><b>1</b> - End-to-Start connection.</li><li><b>2</b> - End-to-End connection.</li><li><b>3</b> - Start-to-End connection.</li></ul>\n\t* @param {number} lag?. The connection lag in miliseconds. Used by the Auto scheduling algorithm in order allow some slack time slack time before or after the next task begins/ends. Lag is measured in miliseconds. It can be a negative (lead) or a positive (lag) number.\n\t*/\n public createConnection(startTaskIndex: number | string, taskEndIndex?: number | string, connectionType?: number, lag?: number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.createConnection(startTaskIndex, taskEndIndex, connectionType, lag);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.createConnection(startTaskIndex, taskEndIndex, connectionType, lag);\n });\n }\n }\n\n\t/** @description Collapses an expanded project. \n\t* @param {string | number} id. The id of a project item that should be collapsed.\n\t*/\n public collapse(id: string | number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.collapse(id);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.collapse(id);\n });\n }\n }\n\n\t/** @description Starts an update operation. This is appropriate when calling multiple methods or set multiple properties at once. \n\t*/\n public beginUpdate(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.beginUpdate();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.beginUpdate();\n });\n }\n }\n\n\t/** @description Ends the update operation. This method will resume the rendering and will refresh the GanttChart. \n\t*/\n public endUpdate(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.endUpdate();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.endUpdate();\n });\n }\n }\n\n\t/** @description Refereshes the GanttChart after resizing by recalculating the Scrollbars. \n\t* @param {boolean} fullRefresh?. If set the GanttChart will be re-rendered completely.\n\t*/\n public refresh(fullRefresh?: boolean): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.refresh(fullRefresh);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.refresh(fullRefresh);\n });\n }\n }\n\n\t/** @description Makes sure a Task is visible by scrolling to it. \n\t* @param {string | number} taskId. The id of the target Task.\n\t*/\n public ensureVisible(taskId: string | number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.ensureVisible(taskId);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.ensureVisible(taskId);\n });\n }\n }\n\n\t/** @description Expands a collapsed project with tasks. \n\t* @param {string | number} id. The id of a project task that should be expanded.\n\t*/\n public expand(id: string | number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.expand(id);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.expand(id);\n });\n }\n }\n\n\t/** @description Exports the data of Tree of the GanttChart. \n\t* @param {string} dataFormat. Determines the format of the exported file. Three possible values are available: <ul><li><b>pdf</b></li><li><b>xlsx</b></li><li><b>html</b></li><li><b>tsv</b></li><li><b>csv</b></li><li><b>xml</b></li></ul>\n\t* @param {any} callback?. A callback that allows to format the exported data based on a condition. For additional details, refer ro the JQX Export Documentation.\n\t*/\n public exportData(dataFormat: string, callback?: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.exportData(dataFormat, callback);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.exportData(dataFormat, callback);\n });\n }\n }\n\n\t/** @description Returns all existing connections. The connections are returned as objects that contain detailed information. Each object in the array has the following keys: 'id' - connection id, 'type' - connection type, 'startTaskId' - connection's start task id, 'endTaskId' - connection's end task id, 'startIndex' - connection's start task index, 'endIndex' - connection's end task index, 'lag' - lag time. \n\t* @returns {any}\n */\n\tpublic async getConnections(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getConnections();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the connection details for the target connection which includes: startTask, endTask, startTaskId, endTaskId and type of the corresponding connection. Connection types are described in detail under the `connectionEnd` event description in this document and in a dedicated topic available on the website. \n\t* @param {string} connectionId. A connection id. Each connection has a unique id that is assigned when a connection is created.\n\t* @returns {any}\n */\n\tpublic async getConnectionDetails(connectionId): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getConnectionDetails(connectionId);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns a JSON representation of all tasks inside the element along with their connections and settings. \n\t* @returns {any[]}\n */\n\tpublic async getState(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getState();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the Tree path of a task/resource. The tree path is used as task/resource id if no id is provided by the user. \n\t* @param {any} item. A GattChartTask/GanttChartResource item object.\n\t* @returns {string}\n */\n\tpublic async getItemPath(item): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getItemPath(item);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the task object that corresponds to the id/path. \n\t* @param {string | number} itemId. The id/path of a task.\n\t* @returns {any}\n */\n\tpublic async getTask(itemId): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getTask(itemId);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns an array of all GanttChart tasks. \n\t* @returns {any[]}\n */\n\tpublic async getTasks(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getTasks();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the index of a task. \n\t* @param {any} task. A GattChartTask object.\n\t* @returns {number}\n */\n\tpublic async getTaskIndex(task): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getTaskIndex(task);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the connections definitions of a task. \n\t* @param {any} taskId. A GanttChartTask object or it's id.\n\t* @returns {any}\n */\n\tpublic async getTaskConnections(taskId): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getTaskConnections(taskId);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the Project of a task or undefined if it does not have one. \n\t* @param {any} task. A GantChartTask object.\n\t* @returns {any}\n */\n\tpublic async getTaskProject(task): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getTaskProject(task);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the resource object that corresponds to the id/path. \n\t* @param {string | number} itemId. The id/path of a resource.\n\t* @returns {any}\n */\n\tpublic async getResource(itemId): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getResource(itemId);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns an array of all GanttChart resources. \n\t* @returns {any[]}\n */\n\tpublic async getResources(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getResources();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the index of a resource. \n\t* @param {any} resource. A GanttChartResource object.\n\t* @returns {number}\n */\n\tpublic async getResourceIndex(resource): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getResourceIndex(resource);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the tasks that are assigned to the resource. \n\t* @param {any} resource. A GanttChartResource object or it's id.\n\t* @returns {any}\n */\n\tpublic async getResourceTasks(resource): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getResourceTasks(resource);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the currently selected tasks/resource ids. If selection is disabled or no items are selected returns null. \n\t* @returns {any}\n */\n\tpublic async getSelectedIds(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getSelectedIds();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the currently selected tasks. \n\t* @returns {any}\n */\n\tpublic async getSelectedTasks(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getSelectedTasks();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the currently selected resources. \n\t* @returns {any}\n */\n\tpublic async getSelectedResources(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getSelectedResources();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the working hours of the day as numbers. \n\t* @returns {any}\n */\n\tpublic async getWorkingHours(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getWorkingHours();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Hides the tooltip if it's visible. \n\t* @returns {any}\n */\n\tpublic async hideTooltip(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.hideTooltip();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Depending on the nonworkingDays property, returns true or false whether the target date is on a working day or not. \n\t* @param {Date} date. A javascript Date object or a string/number which represents a valid JS Date.\n\t*/\n public isWorkingDay(date: Date): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.isWorkingDay(date);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.isWorkingDay(date);\n });\n }\n }\n\n\t/** @description Loads a previously saved state of the element or checks LocalStorage for any saved states if no argument is passed to the method. \n\t* @param {any[]} state?. An Array containing a valid structure of Gantt Chart tasks.\n\t*/\n public loadState(state?: any[]): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.loadState(state);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.loadState(state);\n });\n }\n }\n\n\t/** @description Removes all connections between tasks. \n\t*/\n public removeAllConnections(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.removeAllConnections();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.removeAllConnections();\n });\n }\n }\n\n\t/** @description Removes a connection between tasks. The function accepts three arguments(task's start index, end index and connection type) or one connection string argument which describes the connection. \n\t* @param {number | string} startTaskIndex. The index of the start task or the connection string like '2-3-0.\n\t* @param {number} taskEndIndex?. The index of the end task.\n\t* @param {number} connectionType?. The type of the connection. A numeric value from 0 to 3.\n\t* @returns {any}\n */\n\tpublic async removeConnection(startTaskIndex, taskEndIndex?, connectionType?): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.removeConnection(startTaskIndex, taskEndIndex, connectionType);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Removes all connections of a task or between two tasks if the second argument is provided and valid. \n\t* @param {any} taskStart. The start task object or it's id.\n\t* @param {any} taskEnd?. The end task object or it's id.\n\t*/\n public removeTaskConnection(taskStart: any, taskEnd?: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.removeTaskConnection(taskStart, taskEnd);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.removeTaskConnection(taskStart, taskEnd);\n });\n }\n }\n\n\t/** @description Shows the tooltip for a specific element. \n\t* @param {HTMLElement} target. The HTMLElement that will be the target of the tooltip.\n\t* @param {string} content?. Allows to set a custom content for the Tooltip.\n\t*/\n public showTooltip(target: HTMLElement, content?: string): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.showTooltip(target, content);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.showTooltip(target, content);\n });\n }\n }\n\n\t/** @description Saves the current settings of the element to LocalStorage. Requires an id to be set to the element. \n\t* @param {any[]} state?. An Array containing a valid structure of Gantt Chart tasks.\n\t*/\n public saveState(state?: any[]): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.saveState(state);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.saveState(state);\n });\n }\n }\n\n\t/** @description Inserts a new task in the timeline. The new task can be inserted as a sub task of a project by passing the appropriate argument for the project id or as a root level item. \n\t* @param {any} taskObject. An object describing a Gantt Chart task.\n\t* @param {any} project?. A number or string that represents the id of a project (e.g. '0') or a project object definition present in the GanttChart. This parameter determines the parent project of the task that will be inserted. If <b>null</b> is passed as an arguemnt the new task will be inserted at root level without a parent project.\n\t* @param {number} index?. The index where the new item should be inserted(e.g. 2). This index will determine the position of the newly inserted task.\n\t* @returns {string | number | undefined}\n */\n\tpublic async insertTask(taskObject, project?, index?): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.insertTask(taskObject, project, index);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Updates a task/project/milestone. \n\t* @param {any} taskId. A number or string that represents the id of a task/project(e.g. '0') or the object definition of the task/project.\n\t* @param {any} taskObject. An object describing a Gantt Chart task. The properties of this object will be applied to the desired task.\n\t*/\n public updateTask(taskId: any, taskObject: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.updateTask(taskId, taskObject);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.updateTask(taskId, taskObject);\n });\n }\n }\n\n\t/** @description Removes a task from the timeline. \n\t* @param {any} taskId. A number or string that represents the id of a task or the actual item object.\n\t*/\n public removeTask(taskId: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.removeTask(taskId);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.removeTask(taskId);\n });\n }\n }\n\n\t/** @description Inserts a new resource. \n\t* @param {string | number} resourceId. A string that represents the id of a resource or it's hierarchical position, e.g. '0' ( following jqxTree syntax), or a number that represents the index of a resource.\n\t* @param {any} resourceObject?. An object describing a Gantt Chart resource.\n\t*/\n public insertResource(resourceId: string | number, resourceObject?: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.insertResource(resourceId, resourceObject);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.insertResource(resourceId, resourceObject);\n });\n }\n }\n\n\t/** @description Updates an existing resource. \n\t* @param {any} resourceId. A string that represents the id of a resource or it's hierarchical position, e.g. '0' ( following jqxTree syntax), or a number that represents the index of a resource.\n\t* @param {any} taskObject. An object describing a Gantt Chart resource. The properties of this object will be applied to the target resource.\n\t*/\n public updateResource(resourceId: any, taskObject: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.updateResource(resourceId, taskObject);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.updateResource(resourceId, taskObject);\n });\n }\n }\n\n\t/** @description Removes a resource. \n\t* @param {any} resourceId. A string that represents the id of a resource or it's hierarchical position, e.g. '0' ( following jqxTree syntax), or a number that represents the index of a resource.\n\t*/\n public removeResource(resourceId: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.removeResource(resourceId);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.removeResource(resourceId);\n });\n }\n }\n\n\t/** @description Opens the popup Window for specific task to edit or to delete a connection if a connection string is passed. \n\t* @param {any} taskId. A string or number that represents the id of a task or the task object that is going to be edited or a connection string(e.g. '2-0-0').\n\t*/\n public openWindow(taskId: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.openWindow(taskId);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.openWindow(taskId);\n });\n }\n }\n\n\t/** @description Closes an opened popup Window. The method will close any opened popup window inside the element. \n\t*/\n public closeWindow(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.closeWindow();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.closeWindow();\n });\n }\n }\n\n\t/** @description Prepares the GanttChart for printing by opening the browser's Print Preview. \n\t*/\n public print(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.print();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.print();\n });\n }\n }\n\n\t/** @description Allows to sets the working days and hours at once. \n\t* @param {{ days: (number | string | number[])[], hours: (number | string | number[])[] }} settings. An object definition that contains the days and hours that should be working. The days and hours can be defined as an array of numbers where each number is a day/hour, strings where each string represents a range of days/hours (e.g. '1-5' or '2:00-8:00') or nested array of numbers (e.g. [[1,5]] or [[2, 8]]) which means from 1 to 5 or 2 to 8.\n\t*/\n public setWorkTime(settings: { days: (number | string | number[])[], hours: (number | string | number[])[] }): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.setWorkTime(settings);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.setWorkTime(settings);\n });\n }\n }\n\n\t/** @description Allows to select a task based on it's id. \n\t* @param {string | number} id. The id of the task to select.\n\t*/\n public selectTask(id: string | number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.selectTask(id);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.selectTask(id);\n });\n }\n }\n\n\t/** @description Allows to select a resource based on it's id. \n\t* @param {string | number} id. The id of the resource to select.\n\t*/\n public selectResource(id: string | number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.selectResource(id);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.selectResource(id);\n });\n }\n }\n\n\t/** @description Allows to unselect a task based on it's id. \n\t* @param {string | number} id. The id of the task to unselect.\n\t*/\n public unselectTask(id: string | number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.unselectTask(id);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.unselectTask(id);\n });\n }\n }\n\n\t/** @description Allows to unselect a resource based on it's id. \n\t* @param {string | number} id. The id of the resource to unselect.\n\t*/\n public unselectResource(id: string | number): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.unselectResource(id);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.unselectResource(id);\n });\n }\n }\n\n\t/** @description Allows to unset previously set working time. The opposte method for setWorkingTime. \n\t* @param {{ days: (number | string | number[])[], hours: (number | string | number[])[] }} settings. An object definition that contains the days and hours that should not be working. The days and hours can be defined as an array of numbers where each number is a day/hour, strings where each string represents a range of days/hours (e.g. '1-5' or '2:00-8:00') or nested array of numbers (e.g. [[1,5]] or [[2, 8]]) which means from 1 to 5 or 2 to 8.\n\t*/\n public unsetWorkTime(settings: { days: (number | string | number[])[], hours: (number | string | number[])[] }): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.unsetWorkTime(settings);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.unsetWorkTime(settings);\n });\n }\n }\n\n\t/** @description Sorts the GanttChart tasks/resources if sortable is enabled. \n\t* @param {any} columns. An Array of objects which determine which columns to be sorted, the sort order and the type of item to sort: task or resource. If no arguments are provided sorting will be removed. <br /> An object should have the following properties: <ul><li><b>value</b> - a string that represents the value of a <b>taskColumn</b> to sort.</li><li><b>sortOrder</b> - a string that represents the sorting order for the column: 'asc' (asscending sorting) or 'desc' (descending) are possible values. </li><li><b>type</b> - a string that represents the type of item to sort. This property determines which panel will be sorted. Two possible values: 'task', 'resource'.</li></ul>\n\t*/\n public sort(columns: any): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.sort(columns);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.sort(columns);\n });\n }\n }\n\n\n\tget isRendered(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.isRendered : false;\n\t}\n\n\tngOnInit() {\n\t}\n\n ngAfterViewInit() {\n const that = this;\n\n that.onCreate.emit(that.nativeElement);\n\n\t\tSmart.Render();\n\n\t\tthis.nativeElement.classList.add('smart-angular');\n\n\t\tthis.nativeElement.whenRendered(() => { that.onReady.emit(that.nativeElement); });\n\t\tthis.listen();\n\t}\n\n\tngOnDestroy() {\n\t\tthis.unlisten();\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (this.nativeElement && this.nativeElement.isRendered) {\n\t\t\tfor (const propName in changes) {\n\t\t\t\tif (changes.hasOwnProperty(propName)) {\n\t\t\t\t\tthis.nativeElement[propName] = changes[propName].currentValue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @description Add event listeners. */\n\tprivate listen(): void {\n const that = this;\n\t\tthat.eventHandlers['beginUpdateHandler'] = (event: CustomEvent) => { that.onBeginUpdate.emit(event); }\n\t\tthat.nativeElement.addEventListener('beginUpdate', that.eventHandlers['beginUpdateHandler']);\n\n\t\tthat.eventHandlers['endUpdateHandler'] = (event: CustomEvent) => { that.onEndUpdate.emit(event); }\n\t\tthat.nativeElement.addEventListener('endUpdate', that.eventHandlers['endUpdateHandler']);\n\n\t\tthat.eventHandlers['connectionStartHandler'] = (event: CustomEvent) => { that.onConnectionStart.emit(event); }\n\t\tthat.nativeElement.addEventListener('connectionStart', that.eventHandlers['connectionStartHandler']);\n\n\t\tthat.eventHandlers['connectionEndHandler'] = (event: CustomEvent) => { that.onConnectionEnd.emit(event); }\n\t\tthat.nativeElement.addEventListener('connectionEnd', that.eventHandlers['connectionEndHandler']);\n\n\t\tthat.eventHandlers['changeHandler'] = (event: CustomEvent) => { that.onChange.emit(event); }\n\t\tthat.nativeElement.addEventListener('change', that.eventHandlers['changeHandler']);\n\n\t\tthat.eventHandlers['columnResizeHandler'] = (event: CustomEvent) => { that.onColumnResize.emit(event); }\n\t\tthat.nativeElement.addEventListener('columnResize', that.eventHandlers['columnResizeHandler']);\n\n\t\tthat.eventHandlers['closingHandler'] = (event: CustomEvent) => { that.onClosing.emit(event); }\n\t\tthat.nativeElement.addEventListener('closing', that.eventHandlers['closingHandler']);\n\n\t\tthat.eventHandlers['closeHandler'] = (event: CustomEvent) => { that.onClose.emit(event); }\n\t\tthat.nativeElement.addEventListener('close', that.eventHandlers['closeHandler']);\n\n\t\tthat.eventHandlers['collapseHandler'] = (event: CustomEvent) => { that.onCollapse.emit(event); }\n\t\tthat.nativeElement.addEventListener('collapse', that.eventHandlers['collapseHandler']);\n\n\t\tthat.eventHandlers['dragStartHandler'] = (event: CustomEvent) => { that.onDragStart.emit(event); }\n\t\tthat.nativeElement.addEventListener('dragStart', that.eventHandlers['dragStartHandler']);\n\n\t\tthat.eventHandlers['dragEndHandler'] = (event: CustomEvent) => { that.onDragEnd.emit(event); }\n\t\tthat.nativeElement.addEventListener('dragEnd', that.eventHandlers['dragEndHandler']);\n\n\t\tthat.eventHandlers['expandHandler'] = (event: CustomEvent) => { that.onExpand.emit(event); }\n\t\tthat.nativeElement.addEventListener('expand', that.eventHandlers['expandHandler']);\n\n\t\tthat.eventHandlers['filterHandler'] = (event: CustomEvent) => { that.onFilter.emit(event); }\n\t\tthat.nativeElement.addEventListener('filter', that.eventHandlers['filterHandler']);\n\n\t\tthat.eventHandlers['itemClickHandler'] = (event: CustomEvent) => { that.onItemClick.emit(event); }\n\t\tthat.nativeElement.addEventListener('itemClick', that.eventHandlers['itemClickHandler']);\n\n\t\tthat.eventHandlers['itemInsertHandler'] = (event: CustomEvent) => { that.onItemInsert.emit(event); }\n\t\tthat.nativeElement.addEventListener('itemInsert', that.eventHandlers['itemInsertHandler']);\n\n\t\tthat.eventHandlers['itemRemoveHandler'] = (event: CustomEvent) => { that.onItemRemove.emit(event); }\n\t\tthat.nativeElement.addEventListener('itemRemove', that.eventHandlers['itemRemoveHandler']);\n\n\t\tthat.eventHandlers['itemUpdateHandler'] = (event: CustomEvent) => { that.onItemUpdate.emit(event); }\n\t\tthat.nativeElement.addEventListener('itemUpdate', that.eventHandlers['itemUpdateHandler']);\n\n\t\tthat.eventHandlers['openingHandler'] = (event: CustomEvent) => { that.onOpening.emit(event); }\n\t\tthat.nativeElement.addEventListener('opening', that.eventHandlers['openingHandler']);\n\n\t\tthat.eventHandlers['openHandler'] = (event: CustomEvent) => { that.onOpen.emit(event); }\n\t\tthat.nativeElement.addEventListener('open', that.eventHandlers['openHandler']);\n\n\t\tthat.eventHandlers['progressChangeStartHandler'] = (event: CustomEvent) => { that.onProgressChangeStart.emit(event); }\n\t\tthat.nativeElement.addEventListener('progressChangeStart', that.eventHandlers['progressChangeStartHandler']);\n\n\t\tthat.eventHandlers['progressChangeEndHandler'] = (event: CustomEvent) => { that.onProgressChangeEnd.emit(event); }\n\t\tthat.nativeElement.addEventListener('progressChangeEnd', that.eventHandlers['progressChangeEndHandler']);\n\n\t\tthat.eventHandlers['resizeStartHandler'] = (event: CustomEvent) => { that.onResizeStart.emit(event); }\n\t\tthat.nativeElement.addEventListener('resizeStart', that.eventHandlers['resizeStartHandler']);\n\n\t\tthat.eventHandlers['resizeEndHandler'] = (event: CustomEvent) => { that.onResizeEnd.emit(event); }\n\t\tthat.nativeElement.addEventListener('resizeEnd', that.eventHandlers['resizeEndHandler']);\n\n\t\tthat.eventHandlers['sortHandler'] = (event: CustomEvent) => { that.onSort.emit(event); }\n\t\tthat.nativeElement.addEventListener('sort', that.eventHandlers['sortHandler']);\n\n\t\tthat.eventHandlers['scrollBottomReachedHandler'] = (event: CustomEvent) => { that.onScrollBottomReached.emit(event); }\n\t\tthat.nativeElement.addEventListener('scrollBottomReached', that.eventHandlers['scrollBottomReachedHandler']);\n\n\t\tthat.eventHandlers['scrollTopReachedHandler'] = (event: CustomEvent) => { that.onScrollTopReached.emit(event); }\n\t\tthat.nativeElement.addEventListener('scrollTopReached', that.eventHandlers['scrollTopReachedHandler']);\n\n\t\tthat.eventHandlers['scrollLeftReachedHandler'] = (event: CustomEvent) => { that.onScrollLeftReached.emit(event); }\n\t\tthat.nativeElement.addEventListener('scrollLeftReached', that.eventHandlers['scrollLeftReachedHandler']);\n\n\t\tthat.eventHandlers['scrollRightReachedHandler'] = (event: CustomEvent) => { that.onScrollRightReached.emit(event); }\n\t\tthat.nativeElement.addEventListener('scrollRightReached', that.eventHandlers['scrollRightReachedHandler']);\n\n\t}\n\n\t/** @description Remove event listeners. */\n\tprivate unlisten(): void {\n const that = this;\n\t\tif (that.eventHandlers['beginUpdateHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('beginUpdate', that.eventHandlers['beginUpdateHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['endUpdateHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('endUpdate', that.eventHandlers['endUpdateHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['connectionStartHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('connectionStart', that.eventHandlers['connectionStartHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['connectionEndHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('connectionEnd', that.eventHandlers['connectionEndHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['changeHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('change', that.eventHandlers['changeHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['columnResizeHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('columnResize', that.eventHandlers['columnResizeHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['closingHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('closing', that.eventHandlers['closingHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['closeHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('close', that.eventHandlers['closeHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['collapseHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('collapse', that.eventHandlers['collapseHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['dragStartHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('dragStart', that.eventHandlers['dragStartHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['dragEndHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('dragEnd', that.eventHandlers['dragEndHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['expandHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('expand', that.eventHandlers['expandHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['filterHandler']) {\n\t\t\tthat.nativeElement.onfilterHandler = null;\n\t\t}\n\n\t\tif (that.eventHandlers['itemClickHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('itemClick', that.eventHandlers['itemClickHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['itemInsertHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('itemInsert', that.eventHandlers['itemInsertHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['itemRemoveHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('itemRemove', that.eventHandlers['itemRemoveHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['itemUpdateHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('itemUpdate', that.eventHandlers['itemUpdateHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['openingHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('opening', that.eventHandlers['openingHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['openHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('open', that.eventHandlers['openHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['progressChangeStartHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('progressChangeStart', that.eventHandlers['progressChangeStartHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['progressChangeEndHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('progressChangeEnd', that.eventHandlers['progressChangeEndHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['resizeStartHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('resizeStart', that.eventHandlers['resizeStartHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['resizeEndHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('resizeEnd', that.eventHandlers['resizeEndHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['sortHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('sort', that.eventHandlers['sortHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['scrollBottomReachedHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('scrollBottomReached', that.eventHandlers['scrollBottomReachedHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['scrollTopReachedHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('scrollTopReached', that.eventHandlers['scrollTopReachedHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['scrollLeftReachedHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('scrollLeftReached', that.eventHandlers['scrollLeftReachedHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['scrollRightReachedHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('scrollRightReached', that.eventHandlers['scrollRightReachedHandler']);\n\t\t}\n\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { GanttChartComponent } from './smart.ganttchart';\nimport { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\n\n@NgModule({\n declarations: [GanttChartComponent],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\texports: [GanttChartComponent]\n})\n\nexport class GanttChartModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {BaseElement as ɵa} from './smart.element';"],"names":["tslib_1.__decorate","tslib_1.__extends"],"mappings":"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"}