@syncfusion/ej2-angular-gantt 34.2.8-ngcc → 34.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2835 -0
- package/README.md +85 -29
- package/esm2020/public_api.mjs +2 -0
- package/esm2020/src/gantt/adddialogfields.directive.mjs +58 -0
- package/esm2020/src/gantt/columns.directive.mjs +102 -0
- package/esm2020/src/gantt/dayworkingtime.directive.mjs +58 -0
- package/esm2020/src/gantt/editdialogfields.directive.mjs +58 -0
- package/esm2020/src/gantt/eventmarkers.directive.mjs +57 -0
- package/esm2020/src/gantt/gantt-all.module.mjs +77 -0
- package/esm2020/src/gantt/gantt.component.mjs +328 -0
- package/esm2020/src/gantt/gantt.module.mjs +88 -0
- package/esm2020/src/gantt/holidays.directive.mjs +58 -0
- package/esm2020/src/gantt/weekworkingtime.directive.mjs +58 -0
- package/esm2020/src/index.mjs +12 -0
- package/esm2020/syncfusion-ej2-angular-gantt.mjs +5 -0
- package/fesm2015/syncfusion-ej2-angular-gantt.mjs +903 -0
- package/fesm2015/syncfusion-ej2-angular-gantt.mjs.map +1 -0
- package/fesm2020/syncfusion-ej2-angular-gantt.mjs +903 -0
- package/fesm2020/syncfusion-ej2-angular-gantt.mjs.map +1 -0
- package/package.json +20 -7
- package/public_api.d.ts +1 -1
- package/src/gantt/adddialogfields.directive.d.ts +58 -53
- package/src/gantt/columns.directive.d.ts +242 -236
- package/src/gantt/dayworkingtime.directive.d.ts +41 -36
- package/src/gantt/editdialogfields.directive.d.ts +58 -53
- package/src/gantt/eventmarkers.directive.d.ts +54 -49
- package/src/gantt/gantt-all.module.d.ts +29 -23
- package/src/gantt/gantt.component.d.ts +169 -164
- package/src/gantt/gantt.module.d.ts +18 -5
- package/src/gantt/holidays.directive.d.ts +64 -59
- package/src/gantt/weekworkingtime.directive.d.ts +43 -38
- package/src/index.d.ts +11 -11
- package/styles/bds-lite.css +1 -0
- package/styles/bds-lite.scss +1 -0
- package/styles/bds.css +1 -0
- package/styles/bds.scss +1 -0
- package/styles/bootstrap-dark-lite.css +1 -0
- package/styles/bootstrap-dark-lite.scss +1 -0
- package/styles/bootstrap-dark.css +1 -0
- package/styles/bootstrap-dark.scss +1 -0
- package/styles/bootstrap-lite.css +1 -0
- package/styles/bootstrap-lite.scss +1 -0
- package/styles/bootstrap.css +1 -0
- package/styles/bootstrap.scss +1 -0
- package/styles/bootstrap4-lite.css +1 -0
- package/styles/bootstrap4-lite.scss +1 -0
- package/styles/bootstrap4.css +1 -0
- package/styles/bootstrap4.scss +1 -0
- package/styles/bootstrap5-dark-lite.css +1 -0
- package/styles/bootstrap5-dark-lite.scss +1 -0
- package/styles/bootstrap5-dark.css +1 -0
- package/styles/bootstrap5-dark.scss +1 -0
- package/styles/bootstrap5-lite.css +1 -0
- package/styles/bootstrap5-lite.scss +1 -0
- package/styles/bootstrap5.3-lite.css +1 -0
- package/styles/bootstrap5.3-lite.scss +1 -0
- package/styles/bootstrap5.3.css +1 -0
- package/styles/bootstrap5.3.scss +1 -0
- package/styles/bootstrap5.css +1 -0
- package/styles/bootstrap5.scss +1 -0
- package/styles/fabric-dark-lite.css +1 -0
- package/styles/fabric-dark-lite.scss +1 -0
- package/styles/fabric-dark.css +1 -0
- package/styles/fabric-dark.scss +1 -0
- package/styles/fabric-lite.css +1 -0
- package/styles/fabric-lite.scss +1 -0
- package/styles/fabric.css +1 -0
- package/styles/fabric.scss +1 -0
- package/styles/fluent-dark-lite.css +1 -0
- package/styles/fluent-dark-lite.scss +1 -0
- package/styles/fluent-dark.css +1 -0
- package/styles/fluent-dark.scss +1 -0
- package/styles/fluent-lite.css +1 -0
- package/styles/fluent-lite.scss +1 -0
- package/styles/fluent.css +1 -0
- package/styles/fluent.scss +1 -0
- package/styles/fluent2-lite.css +1 -0
- package/styles/fluent2-lite.scss +1 -0
- package/styles/fluent2.css +1 -0
- package/styles/fluent2.scss +1 -0
- package/styles/gantt/bds.css +1 -0
- package/styles/gantt/bds.scss +1 -0
- package/styles/gantt/bootstrap-dark.css +1 -0
- package/styles/gantt/bootstrap-dark.scss +1 -0
- package/styles/gantt/bootstrap.css +1 -0
- package/styles/gantt/bootstrap.scss +1 -0
- package/styles/gantt/bootstrap4.css +1 -0
- package/styles/gantt/bootstrap4.scss +1 -0
- package/styles/gantt/bootstrap5-dark.css +1 -0
- package/styles/gantt/bootstrap5-dark.scss +1 -0
- package/styles/gantt/bootstrap5.3.css +1 -0
- package/styles/gantt/bootstrap5.3.scss +1 -0
- package/styles/gantt/bootstrap5.css +1 -0
- package/styles/gantt/bootstrap5.scss +1 -0
- package/styles/gantt/fabric-dark.css +1 -0
- package/styles/gantt/fabric-dark.scss +1 -0
- package/styles/gantt/fabric.css +1 -0
- package/styles/gantt/fabric.scss +1 -0
- package/styles/gantt/fluent-dark.css +1 -0
- package/styles/gantt/fluent-dark.scss +1 -0
- package/styles/gantt/fluent.css +1 -0
- package/styles/gantt/fluent.scss +1 -0
- package/styles/gantt/fluent2.css +1 -0
- package/styles/gantt/fluent2.scss +1 -0
- package/styles/gantt/highcontrast-light.css +1 -0
- package/styles/gantt/highcontrast-light.scss +1 -0
- package/styles/gantt/highcontrast.css +1 -0
- package/styles/gantt/highcontrast.scss +1 -0
- package/styles/gantt/material-dark.css +1 -0
- package/styles/gantt/material-dark.scss +1 -0
- package/styles/gantt/material.css +1 -0
- package/styles/gantt/material.scss +1 -0
- package/styles/gantt/material3-dark.css +1 -0
- package/styles/gantt/material3-dark.scss +1 -0
- package/styles/gantt/material3.css +1 -0
- package/styles/gantt/material3.scss +1 -0
- package/styles/gantt/tailwind-dark.css +1 -0
- package/styles/gantt/tailwind-dark.scss +1 -0
- package/styles/gantt/tailwind.css +1 -0
- package/styles/gantt/tailwind.scss +1 -0
- package/styles/gantt/tailwind3.css +1 -0
- package/styles/gantt/tailwind3.scss +1 -0
- package/styles/highcontrast-light-lite.css +1 -0
- package/styles/highcontrast-light-lite.scss +1 -0
- package/styles/highcontrast-light.css +1 -0
- package/styles/highcontrast-light.scss +1 -0
- package/styles/highcontrast-lite.css +1 -0
- package/styles/highcontrast-lite.scss +1 -0
- package/styles/highcontrast.css +1 -0
- package/styles/highcontrast.scss +1 -0
- package/styles/material-dark-lite.css +1 -0
- package/styles/material-dark-lite.scss +1 -0
- package/styles/material-dark.css +1 -0
- package/styles/material-dark.scss +1 -0
- package/styles/material-lite.css +1 -0
- package/styles/material-lite.scss +1 -0
- package/styles/material.css +1 -0
- package/styles/material.scss +1 -0
- package/styles/material3-dark-lite.css +1 -0
- package/styles/material3-dark-lite.scss +1 -0
- package/styles/material3-dark.css +1 -0
- package/styles/material3-dark.scss +1 -0
- package/styles/material3-lite.css +1 -0
- package/styles/material3-lite.scss +1 -0
- package/styles/material3.css +1 -0
- package/styles/material3.scss +1 -0
- package/styles/tailwind-dark-lite.css +1 -0
- package/styles/tailwind-dark-lite.scss +1 -0
- package/styles/tailwind-dark.css +1 -0
- package/styles/tailwind-dark.scss +1 -0
- package/styles/tailwind-lite.css +1 -0
- package/styles/tailwind-lite.scss +1 -0
- package/styles/tailwind.css +1 -0
- package/styles/tailwind.scss +1 -0
- package/styles/tailwind3-lite.css +1 -0
- package/styles/tailwind3-lite.scss +1 -0
- package/styles/tailwind3.css +1 -0
- package/styles/tailwind3.scss +1 -0
- package/syncfusion-ej2-angular-gantt.d.ts +5 -0
- package/@syncfusion/ej2-angular-gantt.es5.js +0 -958
- package/@syncfusion/ej2-angular-gantt.es5.js.map +0 -1
- package/@syncfusion/ej2-angular-gantt.js +0 -906
- package/@syncfusion/ej2-angular-gantt.js.map +0 -1
- package/LICENSE +0 -10
- package/dist/ej2-angular-gantt.umd.js +0 -1087
- package/dist/ej2-angular-gantt.umd.js.map +0 -1
- package/dist/ej2-angular-gantt.umd.min.js +0 -11
- package/dist/ej2-angular-gantt.umd.min.js.map +0 -1
- package/ej2-angular-gantt.d.ts +0 -5
- package/ej2-angular-gantt.metadata.json +0 -1
package/README.md
CHANGED
|
@@ -1,23 +1,37 @@
|
|
|
1
1
|
# Angular Gantt Component
|
|
2
2
|
|
|
3
|
-
The [Angular Gantt](https://www.syncfusion.com/
|
|
3
|
+
The [Angular Gantt](https://www.syncfusion.com/gantt-sdk/angular-gantt-chart?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm) component is project planning and management tool used to display and manage hierarchical tasks with timeline details. It helps assess how long a project should take, determine the resources needed, manage the dependencies between tasks, and plan the order in which the tasks should be completed.
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<a href="https://
|
|
6
|
+
<a href="https://help.syncfusion.com/gantt-sdk/angular/gantt-chart/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm">Getting Started</a> .
|
|
7
7
|
<a href="https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/default">Online demos</a> .
|
|
8
|
-
<a href="https://www.syncfusion.com/
|
|
8
|
+
<a href="https://www.syncfusion.com/gantt-sdk/angular-gantt-chart?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm">Learn more</a>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
|
-
<img alt="Angular Gantt Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/angular/angular-gantt-chart.
|
|
12
|
+
<img alt="Angular Gantt Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/angular/angular-gantt-chart.webp"> </p>
|
|
13
13
|
|
|
14
14
|
<p align="center">
|
|
15
|
-
Trusted by the world's leading companies
|
|
15
|
+
Trusted by the world's leading companies<br>
|
|
16
16
|
<a href="https://www.syncfusion.com">
|
|
17
17
|
<img src="https://ej2.syncfusion.com/home/images/trusted_companies.png" alt="Bootstrap logo">
|
|
18
18
|
</a>
|
|
19
19
|
</p>
|
|
20
20
|
|
|
21
|
+
> **Using this package with an AI coding agent**
|
|
22
|
+
>
|
|
23
|
+
> Before generating Syncfusion code, ask your AI coding agent to run the Syncfusion setup using the following prompt:
|
|
24
|
+
>
|
|
25
|
+
> ```text
|
|
26
|
+
> Set up this project for Syncfusion before generating code. Fetch
|
|
27
|
+
> and follow the official instructions at https://ai.syncfusion.com,
|
|
28
|
+
> then report the detected platform, installed skill pack, MCP
|
|
29
|
+
> status, and any required licensing action.
|
|
30
|
+
> ```
|
|
31
|
+
> The setup detects your project’s platform and loads the appropriate Syncfusion skill pack. No Syncfusion account or MCP key is required to install or read Syncfusion agent skills.
|
|
32
|
+
>
|
|
33
|
+
> **Platform reference:** [https://ai.syncfusion.com/angular/llms.txt](https://ai.syncfusion.com/angular/llms.txt)
|
|
34
|
+
|
|
21
35
|
## Setup
|
|
22
36
|
|
|
23
37
|
### Create an Angular Application
|
|
@@ -57,10 +71,11 @@ In **src/app/app.component.ts**, use `<ejs-gantt>` selector in the `template` at
|
|
|
57
71
|
|
|
58
72
|
```typescript
|
|
59
73
|
import { Component, OnInit } from '@angular/core';
|
|
60
|
-
import { TaskFieldsModel } from '@syncfusion/ej2-angular-gantt';
|
|
74
|
+
import { GanttModule, TaskFieldsModel } from '@syncfusion/ej2-angular-gantt';
|
|
61
75
|
|
|
62
76
|
@Component({
|
|
63
77
|
selector: 'app-root',
|
|
78
|
+
imports: [GanttModule],
|
|
64
79
|
template: `<ejs-gantt [dataSource]="data" [taskFields]="taskSettings"></ejs-gantt>`
|
|
65
80
|
})
|
|
66
81
|
export class AppComponent implements OnInit {
|
|
@@ -76,23 +91,23 @@ export class AppComponent implements OnInit {
|
|
|
76
91
|
{
|
|
77
92
|
TaskID: 1,
|
|
78
93
|
TaskName: 'Project Initiation',
|
|
79
|
-
StartDate: new Date('04/02/
|
|
80
|
-
EndDate: new Date('04/21/
|
|
94
|
+
StartDate: new Date('04/02/2026'),
|
|
95
|
+
EndDate: new Date('04/21/2026'),
|
|
81
96
|
subtasks: [
|
|
82
|
-
{ TaskID: 2, TaskName: 'Identify Site location', StartDate: new Date('04/02/
|
|
83
|
-
{ TaskID: 3, TaskName: 'Perform Soil test', StartDate: new Date('04/02/
|
|
84
|
-
{ TaskID: 4, TaskName: 'Soil test approval', StartDate: new Date('04/02/
|
|
97
|
+
{ TaskID: 2, TaskName: 'Identify Site location', StartDate: new Date('04/02/2026'), Duration: 4, Progress: 50 },
|
|
98
|
+
{ TaskID: 3, TaskName: 'Perform Soil test', StartDate: new Date('04/02/2026'), Duration: 4, Progress: 50 },
|
|
99
|
+
{ TaskID: 4, TaskName: 'Soil test approval', StartDate: new Date('04/02/2026'), Duration: 4, Progress: 50 },
|
|
85
100
|
]
|
|
86
101
|
},
|
|
87
102
|
{
|
|
88
103
|
TaskID: 5,
|
|
89
104
|
TaskName: 'Project Estimation',
|
|
90
|
-
StartDate: new Date('04/02/
|
|
91
|
-
EndDate: new Date('04/21/
|
|
105
|
+
StartDate: new Date('04/02/2026'),
|
|
106
|
+
EndDate: new Date('04/21/2026'),
|
|
92
107
|
subtasks: [
|
|
93
|
-
{ TaskID: 6, TaskName: 'Develop floor plan for estimation', StartDate: new Date('04/04/
|
|
94
|
-
{ TaskID: 7, TaskName: 'List materials', StartDate: new Date('04/04/
|
|
95
|
-
{ TaskID: 8, TaskName: 'Estimation approval', StartDate: new Date('04/04/
|
|
108
|
+
{ TaskID: 6, TaskName: 'Develop floor plan for estimation', StartDate: new Date('04/04/2026'), Duration: 3, Progress: 50 },
|
|
109
|
+
{ TaskID: 7, TaskName: 'List materials', StartDate: new Date('04/04/2026'), Duration: 3, Progress: 50 },
|
|
110
|
+
{ TaskID: 8, TaskName: 'Estimation approval', StartDate: new Date('04/04/2026'), Duration: 3, Progress: 50 }
|
|
96
111
|
]
|
|
97
112
|
}];
|
|
98
113
|
}
|
|
@@ -103,16 +118,16 @@ export class AppComponent implements OnInit {
|
|
|
103
118
|
|
|
104
119
|
Gantt component is also offered in following list of frameworks.
|
|
105
120
|
|
|
106
|
-
| [<img src="https://ej2.syncfusion.com/github/images/js.svg" height="50" />](https://www.syncfusion.com/javascript-
|
|
121
|
+
| [<img src="https://ej2.syncfusion.com/github/images/js.svg" height="50" />](https://www.syncfusion.com/gantt-sdk/javascript-gantt-chart?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm)<br/> [JavaScript](https://www.syncfusion.com/gantt-sdk/javascript-gantt-chart?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm) | [<img src="https://ej2.syncfusion.com/github/images/react.svg" height="50" />](https://www.syncfusion.com/gantt-sdk/react-gantt-chart?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm)<br/> [React](https://www.syncfusion.com/gantt-sdk/react-gantt-chart?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm) | [<img src="https://ej2.syncfusion.com/github/images/vue.svg" height="50" />](https://www.syncfusion.com/gantt-sdk/vue-gantt-chart?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm)<br/> [Vue](https://www.syncfusion.com/gantt-sdk/vue-gantt-chart?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm) | [<img src="https://ej2.syncfusion.com/github/images/netcore.svg" height="50" />](https://www.syncfusion.com/gantt-sdk/aspnet-core-gantt-chart?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm)<br/> [ASP.NET Core](https://www.syncfusion.com/gantt-sdk/aspnet-core-gantt-chart?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm) | [<img src="https://ej2.syncfusion.com/github/images/netmvc.svg" height="50" />](https://www.syncfusion.com/gantt-sdk/aspnet-mvc-gantt-chart?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm)<br/> [ASP.NET MVC](https://www.syncfusion.com/gantt-sdk/aspnet-mvc-gantt-chart?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm) |
|
|
107
122
|
| :-----: | :-----: | :-----: | :-----: | :-----: |
|
|
108
123
|
|
|
109
124
|
## Key features
|
|
110
125
|
|
|
111
126
|
* [Data sources](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/local-data): Bind hierarchical or self-referential data to Gantt chart with an array of JSON objects or DataManager.
|
|
112
127
|
* [Timeline](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/timeline): Display timescale from minutes to decades easily, and also display custom texts in the timeline units. Timeline can be displayed in either one-tier or two-tier layout.
|
|
113
|
-
* [Task dependency](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/editing): Allows for the definition or update of dependencies between tasks in a project using four types of task dependencies: Finish – Start, Start – Finish, Finish – Finish, and Start – Start.
|
|
128
|
+
* [Task dependency](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/default-editing): Allows for the definition or update of dependencies between tasks in a project using four types of task dependencies: Finish – Start, Start – Finish, Finish – Finish, and Start – Start.
|
|
114
129
|
* [Resources](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/resource-view): Visualizes the list of tasks assigned to each resource in hierarchy manner and switch the resources as per user need by task editing.
|
|
115
|
-
* [Editing](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/editing): Provides the options to dynamically insert, delete and update tasks using columns, dialog and taskbar editing options.
|
|
130
|
+
* [Editing](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/default-editing): Provides the options to dynamically insert, delete and update tasks using columns, dialog and taskbar editing options.
|
|
116
131
|
* [Virtual scrolling](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/virtual-scroll): Improves the performance of the gantt control when binding large amounts of data by only rendering the currently visible parts of the user interface and rendering other elements as needed while scrolling.
|
|
117
132
|
* [Critical path](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/critical-path): The critical path in a project is displayed by a single task or a series of tasks. If a task in critical path is delayed, the entire project will be delayed. A task is considered to be critical if any delay to this task would affect the project end date.
|
|
118
133
|
* [Customizable taskbars](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/taskbar-template): Display various tasks in a project using parent and child taskbars, summary taskbars and milestone UI, which can be customized with templates.
|
|
@@ -128,13 +143,13 @@ Gantt component is also offered in following list of frameworks.
|
|
|
128
143
|
* [Row re-ordering](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/drag-and-drop): Allows rows to be rearranged through drag and drop actions, changing their position and hierarchy level. A child row can be moved as a sibling within the same parent row or as a child to a different parent row.
|
|
129
144
|
* [Selection](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/selection): Rows or cells can be selected in the Gantt Chart. One or more rows or cells can also be selected by holding Shift, Ctrl or Command, or programmatically.
|
|
130
145
|
* [Templates](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_campaign=angular-gantt-npm#/bootstrap5/gantt/column-template): Templates can be used to create custom user experiences in the gantt.
|
|
131
|
-
* [RTL support](https://
|
|
132
|
-
* [Localization](https://
|
|
146
|
+
* [RTL support](https://help.syncfusion.com/gantt-sdk/angular/gantt-chart/global-local#right-to-left-rtl-support): Provides the right-to-left mode which aligns content in the Gantt Chart component from right to left. This improves user experience and accessibility for those who work with RTL languages like Hebrew and Arabic.
|
|
147
|
+
* [Localization](https://help.syncfusion.com/gantt-sdk/angular/gantt-chart/global-local#localization-implementation): Provides inherent support to localize the UI.
|
|
133
148
|
|
|
134
149
|
## Resources
|
|
135
150
|
|
|
136
151
|
* [Theme Studio](https://ej2.syncfusion.com/themestudio/)
|
|
137
|
-
* [What's New](https://www.syncfusion.com/products/whatsnew/
|
|
152
|
+
* [What's New](https://www.syncfusion.com/products/whatsnew/gantt-sdk?utm_medium=listing&utm_source=github)
|
|
138
153
|
* [Road Map](https://www.syncfusion.com/products/roadmap/angular)
|
|
139
154
|
* [E-Books](https://www.syncfusion.com/succinctly-free-ebooks?searchkey=angular&type=all)
|
|
140
155
|
|
|
@@ -143,21 +158,62 @@ Gantt component is also offered in following list of frameworks.
|
|
|
143
158
|
Product support is available through following mediums.
|
|
144
159
|
|
|
145
160
|
* [Support ticket](https://support.syncfusion.com/support/tickets/create) - Guaranteed Response in 24 hours | Unlimited tickets | Holiday support
|
|
146
|
-
* [Community forum](https://www.syncfusion.com/forums/
|
|
161
|
+
* [Community forum](https://www.syncfusion.com/forums/gantt-sdk?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm)
|
|
147
162
|
* [GitHub issues](https://github.com/syncfusion/ej2-angular-ui-components/issues/new)
|
|
148
|
-
* [Request feature or report bug](https://www.syncfusion.com/feedback/
|
|
163
|
+
* [Request feature or report bug](https://www.syncfusion.com/feedback/gantt-sdk?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm)
|
|
149
164
|
* Live chat
|
|
150
165
|
|
|
166
|
+
## Other Popular Angular Components
|
|
167
|
+
|
|
168
|
+
Explore other popular Syncfusion<sup>®</sup> Angular components curated from UI components, standalone SDKs, and document solution suites.
|
|
169
|
+
|
|
170
|
+
<table>
|
|
171
|
+
<tr>
|
|
172
|
+
<td align="center">
|
|
173
|
+
<a href="https://www.syncfusion.com/angular-components/angular-data-grid">Angular DataGrid</a>
|
|
174
|
+
</td>
|
|
175
|
+
<td align="center">
|
|
176
|
+
<a href="https://www.syncfusion.com/angular-components/angular-charts">Angular Charts</a>
|
|
177
|
+
</td>
|
|
178
|
+
<td align="center">
|
|
179
|
+
<a href="https://www.syncfusion.com/scheduler-sdk/angular-scheduler">Angular Scheduler</a>
|
|
180
|
+
</td>
|
|
181
|
+
<td align="center">
|
|
182
|
+
<a href="https://www.syncfusion.com/angular-components/angular-file-manager">Angular File Manager</a>
|
|
183
|
+
</td>
|
|
184
|
+
<td align="center">
|
|
185
|
+
<a href="https://www.syncfusion.com/diagram-sdk/angular-diagram">Angular Diagram</a>
|
|
186
|
+
</td>
|
|
187
|
+
</tr>
|
|
188
|
+
<tr>
|
|
189
|
+
<td align="center">
|
|
190
|
+
<a href="https://www.syncfusion.com/rich-text-editor-sdk/angular-rich-text-editor">Angular Rich Text Editor</a>
|
|
191
|
+
</td>
|
|
192
|
+
<td align="center">
|
|
193
|
+
<a href="https://www.syncfusion.com/docx-editor-sdk/angular-docx-editor">Angular DOCX Editor</a>
|
|
194
|
+
</td>
|
|
195
|
+
<td align="center">
|
|
196
|
+
<a href="https://www.syncfusion.com/pdf-viewer-sdk/angular-pdf-viewer">Angular PDF Viewer</a>
|
|
197
|
+
</td>
|
|
198
|
+
<td align="center">
|
|
199
|
+
<a href="https://www.syncfusion.com/spreadsheet-editor-sdk/angular-spreadsheet-editor">Angular Spreadsheet Editor</a>
|
|
200
|
+
</td>
|
|
201
|
+
<td align="center">
|
|
202
|
+
<a href="https://www.syncfusion.com/angular-components/angular-maps-library">Angular Maps</a>
|
|
203
|
+
</td>
|
|
204
|
+
</tr>
|
|
205
|
+
</table>
|
|
206
|
+
|
|
151
207
|
## Changelog
|
|
152
208
|
|
|
153
|
-
Check the changelog [here](https://github.com/syncfusion/ej2-angular-ui-components/blob/master/components/gantt/CHANGELOG.md). Get minor improvements and bug fixes every week to stay up to date with frequent updates.
|
|
209
|
+
Check the changelog [here](https://github.com/syncfusion/ej2-angular-ui-components/blob/master/components/gantt/CHANGELOG.md?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm). Get minor improvements and bug fixes every week to stay up to date with frequent updates.
|
|
154
210
|
|
|
155
211
|
## License and copyright
|
|
156
212
|
|
|
157
|
-
> This is a commercial product and requires a paid license for possession or use. Syncfusion<sup>®</sup> licensed software, including this component, is subject to the terms and conditions of Syncfusion<sup>®</sup> [EULA](https://www.syncfusion.com/
|
|
213
|
+
> This is a commercial product and requires a paid license for possession or use. Syncfusion<sup>®</sup> licensed software, including this component, is subject to the terms and conditions of Syncfusion<sup>®</sup> [EULA](https://www.syncfusion.com/license/studio/33.2.3/syncfusion_essential_studio_eula.pdf?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm). To acquire a license for 150+ [Angular UI components](https://www.syncfusion.com/angular-components?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm), you can [purchase](https://www.syncfusion.com/sales/pricing?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm) or [start a free 30-day trial](https://www.syncfusion.com/downloads/angular?tag=es-seo-ft-angular-banner-trial).
|
|
158
214
|
|
|
159
|
-
> A free community [license](https://
|
|
215
|
+
> A free community [license](https://github.com/syncfusion/ej2-angular-ui-components/blob/master/license?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm) is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.
|
|
160
216
|
|
|
161
|
-
See [LICENSE FILE](https://github.com/syncfusion/ej2-angular-ui-components/blob/master/license) for more info.
|
|
217
|
+
See [LICENSE FILE](https://github.com/syncfusion/ej2-angular-ui-components/blob/master/license?utm_source=npm&utm_medium=listing&utm_campaign=angular-gantt-npm) for more info.
|
|
162
218
|
|
|
163
|
-
© Copyright 2026 Syncfusion<sup>®</sup> Inc. All Rights Reserved. The Syncfusion<sup>®</sup> Essential Studio<sup>®</sup> license and copyright applies to this distribution.
|
|
219
|
+
© Copyright 2026 Syncfusion<sup>®</sup> Inc. All Rights Reserved. The Syncfusion<sup>®</sup> Essential Studio<sup>®</sup> license and copyright applies to this distribution.
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './src/index';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9pbmRleCc7Il19
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Directive, ContentChildren } from '@angular/core';
|
|
2
|
+
import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
let input = ['additionalParams', 'fields', 'headerText', 'type'];
|
|
5
|
+
let outputs = [];
|
|
6
|
+
/**
|
|
7
|
+
* `e-add-dialog-field` directive represent a add dialog fields collection in Gantt task add dialog.
|
|
8
|
+
* It must be contained in a Gantt component(`ejs-gantt`).
|
|
9
|
+
* ```html
|
|
10
|
+
* <ejs-gantt [dataSource]='data' allowSelection='true' allowSorting='true'>
|
|
11
|
+
* <e-add-dialog-fields>
|
|
12
|
+
* <e-add-dialog-field type='General' headerText='General'></e-add-dialog-field>
|
|
13
|
+
* <e-add-dialog-field type='Dependency' headerText='Dependency'></e-add-dialog-field>
|
|
14
|
+
* </e-add-dialog-fields>
|
|
15
|
+
* </ejs-gantt>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export class AddDialogFieldDirective extends ComplexBase {
|
|
19
|
+
constructor(viewContainerRef) {
|
|
20
|
+
super();
|
|
21
|
+
this.viewContainerRef = viewContainerRef;
|
|
22
|
+
setValue('currentInstance', this, this.viewContainerRef);
|
|
23
|
+
this.registerEvents(outputs);
|
|
24
|
+
this.directivePropList = input;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
AddDialogFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AddDialogFieldDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
28
|
+
AddDialogFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: AddDialogFieldDirective, selector: "ejs-gantt>e-add-dialog-fields>e-add-dialog-field", inputs: { additionalParams: "additionalParams", fields: "fields", headerText: "headerText", type: "type" }, usesInheritance: true, ngImport: i0 });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AddDialogFieldDirective, decorators: [{
|
|
30
|
+
type: Directive,
|
|
31
|
+
args: [{
|
|
32
|
+
selector: 'ejs-gantt>e-add-dialog-fields>e-add-dialog-field',
|
|
33
|
+
inputs: input,
|
|
34
|
+
outputs: outputs,
|
|
35
|
+
queries: {}
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
|
|
38
|
+
/**
|
|
39
|
+
* AddDialogField Array Directive
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
export class AddDialogFieldsDirective extends ArrayBase {
|
|
43
|
+
constructor() {
|
|
44
|
+
super('adddialogfields');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
AddDialogFieldsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AddDialogFieldsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
48
|
+
AddDialogFieldsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: AddDialogFieldsDirective, selector: "ejs-gantt>e-add-dialog-fields", queries: [{ propertyName: "children", predicate: AddDialogFieldDirective }], usesInheritance: true, ngImport: i0 });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AddDialogFieldsDirective, decorators: [{
|
|
50
|
+
type: Directive,
|
|
51
|
+
args: [{
|
|
52
|
+
selector: 'ejs-gantt>e-add-dialog-fields',
|
|
53
|
+
queries: {
|
|
54
|
+
children: new ContentChildren(AddDialogFieldDirective)
|
|
55
|
+
},
|
|
56
|
+
}]
|
|
57
|
+
}], ctorParameters: function () { return []; } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkZGlhbG9nZmllbGRzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nYW50dC9hZGRkaWFsb2dmaWVsZHMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFJaEYsSUFBSSxLQUFLLEdBQWEsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzNFLElBQUksT0FBTyxHQUFhLEVBQUUsQ0FBQztBQUMzQjs7Ozs7Ozs7Ozs7R0FXRztBQVNILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxXQUFvQztJQWlDN0UsWUFBb0IsZ0JBQWlDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBRFEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUVqRCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOztvSEF0Q1EsdUJBQXVCO3dHQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFSbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0RBQWtEO29CQUM1RCxNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLEVBRVI7aUJBQ0o7O0FBMENEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxTQUFtQztJQUM3RTtRQUNJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzdCLENBQUM7O3FIQUhRLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDhGQUhDLHVCQUF1QjsyRkFHaEQsd0JBQXdCO2tCQU5wQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwrQkFBK0I7b0JBQ3pDLE9BQU8sRUFBRTt3QkFDTCxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsdUJBQXVCLENBQUM7cUJBQ3pEO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBDb250ZW50Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cblxuXG5sZXQgaW5wdXQ6IHN0cmluZ1tdID0gWydhZGRpdGlvbmFsUGFyYW1zJywgJ2ZpZWxkcycsICdoZWFkZXJUZXh0JywgJ3R5cGUnXTtcbmxldCBvdXRwdXRzOiBzdHJpbmdbXSA9IFtdO1xuLyoqXG4gKiBgZS1hZGQtZGlhbG9nLWZpZWxkYCBkaXJlY3RpdmUgcmVwcmVzZW50IGEgYWRkIGRpYWxvZyBmaWVsZHMgY29sbGVjdGlvbiBpbiBHYW50dCB0YXNrIGFkZCBkaWFsb2cuIFxuICogSXQgbXVzdCBiZSBjb250YWluZWQgaW4gYSBHYW50dCBjb21wb25lbnQoYGVqcy1nYW50dGApLiBcbiAqIGBgYGh0bWxcbiAqIDxlanMtZ2FudHQgW2RhdGFTb3VyY2VdPSdkYXRhJyBhbGxvd1NlbGVjdGlvbj0ndHJ1ZScgYWxsb3dTb3J0aW5nPSd0cnVlJz4gXG4gKiAgIDxlLWFkZC1kaWFsb2ctZmllbGRzPlxuICogICAgIDxlLWFkZC1kaWFsb2ctZmllbGQgdHlwZT0nR2VuZXJhbCcgaGVhZGVyVGV4dD0nR2VuZXJhbCc+PC9lLWFkZC1kaWFsb2ctZmllbGQ+XG4gKiAgICAgPGUtYWRkLWRpYWxvZy1maWVsZCB0eXBlPSdEZXBlbmRlbmN5JyBoZWFkZXJUZXh0PSdEZXBlbmRlbmN5Jz48L2UtYWRkLWRpYWxvZy1maWVsZD5cbiAqICAgPC9lLWFkZC1kaWFsb2ctZmllbGRzPlxuICogPC9lanMtZ2FudHQ+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtZ2FudHQ+ZS1hZGQtZGlhbG9nLWZpZWxkcz5lLWFkZC1kaWFsb2ctZmllbGQnLFxuICAgIGlucHV0czogaW5wdXQsXG4gICAgb3V0cHV0czogb3V0cHV0cywgICAgXG4gICAgcXVlcmllczoge1xuXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBBZGREaWFsb2dGaWVsZERpcmVjdGl2ZSBleHRlbmRzIENvbXBsZXhCYXNlPEFkZERpYWxvZ0ZpZWxkRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuXG5cbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSB0eXBlcyBvZiB0YWJzIHRoYXQgY29udGFpbiBlZGl0b3JzIGZvciBjb2x1bW5zLiBcbiAgICAgKiBBdmFpbGFibGUgdGFiIHR5cGVzOiBcbiAgICAgKiAqIGBHZW5lcmFsYCAtIFJlcHJlc2VudHMgdGhlIGdlbmVyYWwgaW5mb3JtYXRpb24gZWRpdG9yIHRhYi4gXG4gICAgICogKiBgRGVwZW5kZW5jeWAgLSBSZXByZXNlbnRzIHRoZSBkZXBlbmRlbmN5IGVkaXRvciB0YWIuIFxuICAgICAqICogYFJlc291cmNlc2AgLSBSZXByZXNlbnRzIHRoZSByZXNvdXJjZSBlZGl0b3IgdGFiLiBcbiAgICAgKiAqIGBOb3Rlc2AgLSBSZXByZXNlbnRzIHRoZSBub3RlcyBlZGl0b3IgdGFiLiBcbiAgICAgKiAqIGBTZWdtZW50c2AgLSBSZXByZXNlbnRzIHRoZSBzZWdtZW50cyBlZGl0b3IgdGFiLiBcbiAgICAgKiAqIGBDdXN0b21gIC0gUmVwcmVzZW50cyB0aGUgY3VzdG9tIGNvbHVtbiBlZGl0b3IgdGFiLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgdHlwZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgR3JpZCwgUmljaCBUZXh0IEVkaXRvciAoUlRFKSwgb3IgVHJlZUdyaWQgY29udHJvbHMgd2l0aGluIHRoZSBHYW50dCBlZGl0IGRpYWxvZy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGFkZGl0aW9uYWxQYXJhbXM6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBlZGl0ZWQgY29sdW1uIGZpZWxkcyB0byBiZSBwbGFjZWQgaW5zaWRlIHRoZSB0YWIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmaWVsZHM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBoZWFkZXIgdGV4dCBvZiB0YWIgaXRlbS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGhlYWRlclRleHQ6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjpWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHNldFZhbHVlKCdjdXJyZW50SW5zdGFuY2UnLCB0aGlzLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKG91dHB1dHMpO1xuICAgICAgICB0aGlzLmRpcmVjdGl2ZVByb3BMaXN0ID0gaW5wdXQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEFkZERpYWxvZ0ZpZWxkIEFycmF5IERpcmVjdGl2ZVxuICogQHByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtZ2FudHQ+ZS1hZGQtZGlhbG9nLWZpZWxkcycsXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZHJlbjogbmV3IENvbnRlbnRDaGlsZHJlbihBZGREaWFsb2dGaWVsZERpcmVjdGl2ZSlcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBZGREaWFsb2dGaWVsZHNEaXJlY3RpdmUgZXh0ZW5kcyBBcnJheUJhc2U8QWRkRGlhbG9nRmllbGRzRGlyZWN0aXZlPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdhZGRkaWFsb2dmaWVsZHMnKTtcbiAgICB9XG59Il19
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Directive, ContentChildren, ContentChild } from '@angular/core';
|
|
3
|
+
import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
|
|
4
|
+
import { Template } from '@syncfusion/ej2-angular-base';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
let input = ['allowEditing', 'allowFiltering', 'allowReordering', 'allowResizing', 'allowSorting', 'clipMode', 'customAttributes', 'disableHtmlEncode', 'displayAsCheckBox', 'edit', 'editType', 'field', 'filter', 'filterTemplate', 'format', 'formatter', 'freeze', 'headerTemplate', 'headerText', 'headerTextAlign', 'hideAtMedia', 'isFrozen', 'isPrimaryKey', 'lockColumn', 'maxWidth', 'minWidth', 'showColumnMenu', 'sortComparer', 'template', 'textAlign', 'type', 'validationRules', 'valueAccessor', 'visible', 'width'];
|
|
7
|
+
let outputs = [];
|
|
8
|
+
/**
|
|
9
|
+
* `e-column` directive represent a column of the Angular Gantt.
|
|
10
|
+
* It must be contained in a Gantt component(`ejs-gantt`).
|
|
11
|
+
* ```html
|
|
12
|
+
* <ejs-gantt [dataSource]='data' allowSelection='true' allowSorting='true'>
|
|
13
|
+
* <e-columns>
|
|
14
|
+
* <e-column field='ID' width='150'></e-column>
|
|
15
|
+
* <e-column field='taskName' headerText='Task Name' width='200'></e-column>
|
|
16
|
+
* </e-columns>
|
|
17
|
+
* </ejs-gantt>
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export class ColumnDirective extends ComplexBase {
|
|
21
|
+
constructor(viewContainerRef) {
|
|
22
|
+
super();
|
|
23
|
+
this.viewContainerRef = viewContainerRef;
|
|
24
|
+
setValue('currentInstance', this, this.viewContainerRef);
|
|
25
|
+
this.registerEvents(outputs);
|
|
26
|
+
this.directivePropList = input;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
ColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
30
|
+
ColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ColumnDirective, selector: "ejs-gantt>e-columns>e-column", inputs: { allowEditing: "allowEditing", allowFiltering: "allowFiltering", allowReordering: "allowReordering", allowResizing: "allowResizing", allowSorting: "allowSorting", clipMode: "clipMode", customAttributes: "customAttributes", disableHtmlEncode: "disableHtmlEncode", displayAsCheckBox: "displayAsCheckBox", edit: "edit", editType: "editType", field: "field", filter: "filter", filterTemplate: "filterTemplate", format: "format", formatter: "formatter", freeze: "freeze", headerTemplate: "headerTemplate", headerText: "headerText", headerTextAlign: "headerTextAlign", hideAtMedia: "hideAtMedia", isFrozen: "isFrozen", isPrimaryKey: "isPrimaryKey", lockColumn: "lockColumn", maxWidth: "maxWidth", minWidth: "minWidth", showColumnMenu: "showColumnMenu", sortComparer: "sortComparer", template: "template", textAlign: "textAlign", type: "type", validationRules: "validationRules", valueAccessor: "valueAccessor", visible: "visible", width: "width" }, queries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }, { propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true }, { propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true }, { propertyName: "editTemplate", first: true, predicate: ["editTemplate"], descendants: true }, { propertyName: "filter_itemTemplate", first: true, predicate: ["filterItemTemplate"], descendants: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true }, { propertyName: "emptyRecordTemplate", first: true, predicate: ["emptyRecordTemplate"], descendants: true }], usesInheritance: true, ngImport: i0 });
|
|
31
|
+
__decorate([
|
|
32
|
+
Template()
|
|
33
|
+
], ColumnDirective.prototype, "template", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
Template()
|
|
36
|
+
], ColumnDirective.prototype, "toolbarTemplate", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
Template()
|
|
39
|
+
], ColumnDirective.prototype, "headerTemplate", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
Template()
|
|
42
|
+
], ColumnDirective.prototype, "editTemplate", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
Template()
|
|
45
|
+
], ColumnDirective.prototype, "filter_itemTemplate", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
Template()
|
|
48
|
+
], ColumnDirective.prototype, "filterTemplate", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
Template()
|
|
51
|
+
], ColumnDirective.prototype, "emptyRecordTemplate", void 0);
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnDirective, decorators: [{
|
|
53
|
+
type: Directive,
|
|
54
|
+
args: [{
|
|
55
|
+
selector: 'ejs-gantt>e-columns>e-column',
|
|
56
|
+
inputs: input,
|
|
57
|
+
outputs: outputs,
|
|
58
|
+
queries: {}
|
|
59
|
+
}]
|
|
60
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { template: [{
|
|
61
|
+
type: ContentChild,
|
|
62
|
+
args: ['template']
|
|
63
|
+
}], toolbarTemplate: [{
|
|
64
|
+
type: ContentChild,
|
|
65
|
+
args: ['toolbarTemplate']
|
|
66
|
+
}], headerTemplate: [{
|
|
67
|
+
type: ContentChild,
|
|
68
|
+
args: ['headerTemplate']
|
|
69
|
+
}], editTemplate: [{
|
|
70
|
+
type: ContentChild,
|
|
71
|
+
args: ['editTemplate']
|
|
72
|
+
}], filter_itemTemplate: [{
|
|
73
|
+
type: ContentChild,
|
|
74
|
+
args: ['filterItemTemplate']
|
|
75
|
+
}], filterTemplate: [{
|
|
76
|
+
type: ContentChild,
|
|
77
|
+
args: ['filterTemplate']
|
|
78
|
+
}], emptyRecordTemplate: [{
|
|
79
|
+
type: ContentChild,
|
|
80
|
+
args: ['emptyRecordTemplate']
|
|
81
|
+
}] } });
|
|
82
|
+
/**
|
|
83
|
+
* Column Array Directive
|
|
84
|
+
* @private
|
|
85
|
+
*/
|
|
86
|
+
export class ColumnsDirective extends ArrayBase {
|
|
87
|
+
constructor() {
|
|
88
|
+
super('columns');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
ColumnsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
92
|
+
ColumnsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ColumnsDirective, selector: "ejs-gantt>e-columns", queries: [{ propertyName: "children", predicate: ColumnDirective }], usesInheritance: true, ngImport: i0 });
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnsDirective, decorators: [{
|
|
94
|
+
type: Directive,
|
|
95
|
+
args: [{
|
|
96
|
+
selector: 'ejs-gantt>e-columns',
|
|
97
|
+
queries: {
|
|
98
|
+
children: new ContentChildren(ColumnDirective)
|
|
99
|
+
},
|
|
100
|
+
}]
|
|
101
|
+
}], ctorParameters: function () { return []; } });
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2FudHQvY29sdW1ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUd4RCxJQUFJLEtBQUssR0FBYSxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hoQixJQUFJLE9BQU8sR0FBYSxFQUFFLENBQUM7QUFDM0I7Ozs7Ozs7Ozs7O0dBV0c7QUFTSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUE0QjtJQXVPN0QsWUFBb0IsZ0JBQWlDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBRFEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUVqRCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOzs0R0E1T1EsZUFBZTtnR0FBZixlQUFlO0FBME14QjtJQURDLFFBQVEsRUFBRTtpREFDVTtBQUdyQjtJQURDLFFBQVEsRUFBRTt3REFDaUI7QUFRNUI7SUFEQyxRQUFRLEVBQUU7dURBQ2dCO0FBRzNCO0lBREMsUUFBUSxFQUFFO3FEQUNjO0FBR3pCO0lBREMsUUFBUSxFQUFFOzREQUNxQjtBQU9oQztJQURDLFFBQVEsRUFBRTt1REFDZ0I7QUFHM0I7SUFEQyxRQUFRLEVBQUU7NERBQ3FCOzJGQXJPdkIsZUFBZTtrQkFSM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLEVBRVI7aUJBQ0o7dUdBMk1VLFFBQVE7c0JBRmQsWUFBWTt1QkFBQyxVQUFVO2dCQUtqQixlQUFlO3NCQUZyQixZQUFZO3VCQUFDLGlCQUFpQjtnQkFVeEIsY0FBYztzQkFGcEIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBS3ZCLFlBQVk7c0JBRmxCLFlBQVk7dUJBQUMsY0FBYztnQkFLckIsbUJBQW1CO3NCQUZ6QixZQUFZO3VCQUFDLG9CQUFvQjtnQkFTM0IsY0FBYztzQkFGcEIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBS3ZCLG1CQUFtQjtzQkFGekIsWUFBWTt1QkFBQyxxQkFBcUI7O0FBWXZDOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxTQUEyQjtJQUM3RDtRQUNJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQixDQUFDOzs2R0FIUSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixvRkFIUyxlQUFlOzJGQUd4QyxnQkFBZ0I7a0JBTjVCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsT0FBTyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyxlQUFlLENBQUM7cUJBQ2pEO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBDb250ZW50Q2hpbGRyZW4sIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcGxleEJhc2UsIEFycmF5QmFzZSwgc2V0VmFsdWUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cblxubGV0IGlucHV0OiBzdHJpbmdbXSA9IFsnYWxsb3dFZGl0aW5nJywgJ2FsbG93RmlsdGVyaW5nJywgJ2FsbG93UmVvcmRlcmluZycsICdhbGxvd1Jlc2l6aW5nJywgJ2FsbG93U29ydGluZycsICdjbGlwTW9kZScsICdjdXN0b21BdHRyaWJ1dGVzJywgJ2Rpc2FibGVIdG1sRW5jb2RlJywgJ2Rpc3BsYXlBc0NoZWNrQm94JywgJ2VkaXQnLCAnZWRpdFR5cGUnLCAnZmllbGQnLCAnZmlsdGVyJywgJ2ZpbHRlclRlbXBsYXRlJywgJ2Zvcm1hdCcsICdmb3JtYXR0ZXInLCAnZnJlZXplJywgJ2hlYWRlclRlbXBsYXRlJywgJ2hlYWRlclRleHQnLCAnaGVhZGVyVGV4dEFsaWduJywgJ2hpZGVBdE1lZGlhJywgJ2lzRnJvemVuJywgJ2lzUHJpbWFyeUtleScsICdsb2NrQ29sdW1uJywgJ21heFdpZHRoJywgJ21pbldpZHRoJywgJ3Nob3dDb2x1bW5NZW51JywgJ3NvcnRDb21wYXJlcicsICd0ZW1wbGF0ZScsICd0ZXh0QWxpZ24nLCAndHlwZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWVBY2Nlc3NvcicsICd2aXNpYmxlJywgJ3dpZHRoJ107XG5sZXQgb3V0cHV0czogc3RyaW5nW10gPSBbXTtcbi8qKlxuICogYGUtY29sdW1uYCBkaXJlY3RpdmUgcmVwcmVzZW50IGEgY29sdW1uIG9mIHRoZSBBbmd1bGFyIEdhbnR0LiBcbiAqIEl0IG11c3QgYmUgY29udGFpbmVkIGluIGEgR2FudHQgY29tcG9uZW50KGBlanMtZ2FudHRgKS4gXG4gKiBgYGBodG1sXG4gKiA8ZWpzLWdhbnR0IFtkYXRhU291cmNlXT0nZGF0YScgYWxsb3dTZWxlY3Rpb249J3RydWUnIGFsbG93U29ydGluZz0ndHJ1ZSc+IFxuICogICA8ZS1jb2x1bW5zPlxuICogICAgPGUtY29sdW1uIGZpZWxkPSdJRCcgd2lkdGg9JzE1MCc+PC9lLWNvbHVtbj5cbiAqICAgIDxlLWNvbHVtbiBmaWVsZD0ndGFza05hbWUnIGhlYWRlclRleHQ9J1Rhc2sgTmFtZScgd2lkdGg9JzIwMCc+PC9lLWNvbHVtbj5cbiAqICAgPC9lLWNvbHVtbnM+XG4gKiA8L2Vqcy1nYW50dD5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Vqcy1nYW50dD5lLWNvbHVtbnM+ZS1jb2x1bW4nLFxuICAgIGlucHV0czogaW5wdXQsXG4gICAgb3V0cHV0czogb3V0cHV0cywgICAgXG4gICAgcXVlcmllczoge1xuXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBDb2x1bW5EaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxDb2x1bW5EaXJlY3RpdmU+IHtcbiAgICBwdWJsaWMgZGlyZWN0aXZlUHJvcExpc3Q6IGFueTtcblx0XG5cblxuICAgIC8qKiBcbiAgICAgKiBUbyBkZWZpbmUgY29sdW1uIHR5cGUuXG4gICAgICovXG4gICAgcHVibGljIHR5cGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGFsbG93RWRpdGluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIGVkaXRpbmcgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBhcmUgZWRpdGFibGUuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd0VkaXRpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGFsbG93RmlsdGVyaW5nYCBzZXQgdG8gZmFsc2UsIHRoZW4gaXQgZGlzYWJsZXMgZmlsdGVyaW5nIG9wdGlvbiBhbmQgZmlsdGVyIGJhciBlbGVtZW50IG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGZpbHRlcmFibGUuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd0ZpbHRlcmluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgYWxsb3dSZW9yZGVyaW5nYCBzZXQgdG8gZmFsc2UsIHRoZW4gaXQgZGlzYWJsZXMgcmVvcmRlciBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGNhbiBiZSByZW9yZGVyLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dSZW9yZGVyaW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd1Jlc2l6aW5nYCBpcyBzZXQgdG8gZmFsc2UsIGl0IGRpc2FibGVzIHJlc2l6ZSBvcHRpb24gb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogQnkgZGVmYXVsdCBhbGwgdGhlIGNvbHVtbnMgY2FuIGJlIHJlc2l6ZWQuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd1Jlc2l6aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd1NvcnRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBzb3J0aW5nIG9wdGlvbiBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBzb3J0YWJsZS5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93U29ydGluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBvdmVyZmxvdyBtb2RlIGZvciBjZWxsIGNvbnRlbnQuIFRoZSBhdmFpbGFibGUgbW9kZXMgYXJlOiBcbiAgICAgKiAqIGBDbGlwYCAtICBUcnVuY2F0ZXMgdGhlIGNlbGwgY29udGVudCB3aGVuIGl0IG92ZXJmbG93cyBpdHMgYXJlYS4gXG4gICAgICogKiBgRWxsaXBzaXNgIC0gIERpc3BsYXlzIGFuIGVsbGlwc2lzIHdoZW4gdGhlIGNlbGwgY29udGVudCBvdmVyZmxvd3MgaXRzIGFyZWEuIFxuICAgICAqICogYEVsbGlwc2lzV2l0aFRvb2x0aXBgIC0gRGlzcGxheXMgYW4gZWxsaXBzaXMgd2hlbiB0aGUgY2VsbCBjb250ZW50IG92ZXJmbG93cyBpdHMgYXJlYSwgYW5kIHNob3dzIGEgdG9vbHRpcCBvbiBob3ZlciBvdmVyIHRoZSBlbGxpcHNpcy5cbiAgICAgKiBAZGVmYXVsdCBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5DbGlwTW9kZS5FbGxpcHNpc1dpdGhUb29sdGlwXG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLkdyaWRzLkNsaXBNb2RlXG4gICAgICovXG4gICAgcHVibGljIGNsaXBNb2RlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBDU1Mgc3R5bGVzIGFuZCBhdHRyaWJ1dGVzIG9mIHRoZSBjb250ZW50IGNlbGxzIG9mIGEgcGFydGljdWxhciBjb2x1bW4gY2FuIGJlIGN1c3RvbWl6ZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBjdXN0b21BdHRyaWJ1dGVzOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBkaXNhYmxlSHRtbEVuY29kZWAgaXMgc2V0IHRvIHRydWUsIGl0IGRpc2FibGVzIEhUTUwgZW5jb2RpbmcgZm9yIHRoZSBjb250ZW50IG9mIHNwZWNpZmljIGNvbHVtbi5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBkaXNhYmxlSHRtbEVuY29kZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgZGlzcGxheUFzQ2hlY2tCb3hgIGlzIHNldCB0byB0cnVlLCBpdCBkaXNwbGF5cyB0aGUgY29sdW1uIHZhbHVlIGFzIGEgY2hlY2sgYm94IGluc3RlYWQgb2YgQm9vbGVhbiB2YWx1ZS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBkaXNwbGF5QXNDaGVja0JveDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBgSUVkaXRDZWxsYCBvYmplY3QgdG8gY3VzdG9taXplIGRlZmF1bHQgZWRpdCBjZWxsLlxuICAgICAqIEBkZWZhdWx0IHt9XG4gICAgICovXG4gICAgcHVibGljIGVkaXQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgdHlwZSBvZiBjb21wb25lbnQgdXNlZCBmb3IgZWRpdGluZyB0aGUgZmllbGQuXG4gICAgICogQGRlZmF1bHQgJ3N0cmluZ2VkaXQnXG4gICAgICovXG4gICAgcHVibGljIGVkaXRUeXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGZpZWxkIG5hbWUgb2YgY29sdW1uIHdoaWNoIGlzIG1hcHBlZCB3aXRoIG1hcHBpbmcgbmFtZSBvZiBEYXRhU291cmNlLiBcbiAgICAgKiBUaGUgYGZpZWxkYCBuYW1lIG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGlkZW50aWZpZXIsIFxuICAgICAqIHRoZSBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhbiBhbHBoYWJldCBhbmQgc2hvdWxkIG5vdCBjb250YWluIHNwYWNlcyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgZmllbGQ6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgaXMgdXNlZCB0byBjdXN0b21pemUgdGhlIGRlZmF1bHQgZmlsdGVyIG9wdGlvbnMgZm9yIGEgc3BlY2lmaWMgY29sdW1ucy4gXG4gICAgICogKiB1aSAtIHRvIHJlbmRlciBjdXN0b20gY29tcG9uZW50IGZvciBzcGVjaWZpYyBjb2x1bW4uIEl0IGhhcyBmb2xsb3dpbmcgZnVuY3Rpb25zOiBcbiAgICAgKiAqIHVpLmNyZWF0ZSAtIEl0IGlzIHVzZWQgZm9yIGNyZWF0aW5nIGN1c3RvbSBjb21wb25lbnRzLiBcbiAgICAgKiAqIHVpLnJlYWQgLSBJdCBpcyB1c2VkIGZvciByZWFkIHRoZSB2YWx1ZSBmcm9tIHRoZSBjb21wb25lbnQuIFxuICAgICAqICogdWkud3JpdGUgLSBJdCBpcyB1c2VkIHRvIGFwcGx5IGNvbXBvbmVudCBtb2RlbCBhcyBkeW5hbWljYWxseS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZpbHRlcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJdCBpcyB1c2VkIHRvIGNoYW5nZSBkaXNwbGF5IHZhbHVlIHdpdGggdGhlIGdpdmVuIGZvcm1hdCBhbmQgZG9lcyBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCBkYXRhLiBcbiAgICAgKiBHZXRzIHRoZSBmb3JtYXQgZnJvbSB0aGUgdXNlciB3aGljaCBjYW4gYmUgc3RhbmRhcmQgb3IgY3VzdG9tIFxuICAgICAqIFtgbnVtYmVyYF0oaHR0cHM6Ly9lajIuc3luY2Z1c2lvbi5jb20vZG9jdW1lbnRhdGlvbi9jb21tb24vaW50ZXJuYXRpb25hbGl6YXRpb24vI251bWJlci1mb3JtYXR0aW5nKSBcbiAgICAgKiBhbmQgW2BkYXRlYF0oaHR0cHM6Ly9lajIuc3luY2Z1c2lvbi5jb20vZG9jdW1lbnRhdGlvbi9jb21tb24vaW50ZXJuYXRpb25hbGl6YXRpb24vI2RhdGUtZm9ybWF0dGluZykgZm9ybWF0cy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGZvcm1hdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtZXRob2Qgd2hpY2ggaXMgdXNlZCB0byBhY2hpZXZlIGN1c3RvbSBmb3JtYXR0aW5nIGZyb20gYW4gZXh0ZXJuYWwgZnVuY3Rpb24uIFxuICAgICAqIFRoaXMgZnVuY3Rpb24gdHJpZ2dlcnMgYmVmb3JlIHJlbmRlcmluZyBvZiBlYWNoIGNlbGwuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtYXR0ZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogRGV0ZXJtaW5lcyB3aGljaCBzaWRlIChsZWZ0LCByaWdodCwgb3IgZml4ZWQpIHRoZSBjb2x1bW4gc2hvdWxkIGJlIGZyb3plbiBvbi5cbiAgICAgKiBAZGVmYXVsdCBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5GcmVlemVEaXJlY3Rpb24uTm9uZVxuICAgICAqIEBpc2VudW1lcmF0aW9uIHRydWVcbiAgICAgKiBAYXNwdHlwZSBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5GcmVlemVEaXJlY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgZnJlZXplOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGhlYWRlciB0ZXh0IG9mIGNvbHVtbiB3aGljaCBpcyB1c2VkIHRvIGRpc3BsYXkgaW4gY29sdW1uIGhlYWRlci4gXG4gICAgICogSWYgYGhlYWRlclRleHRgIGlzIG5vdCBkZWZpbmVkLCB0aGVuIGZpZWxkIG5hbWUgdmFsdWUgd2lsbCBiZSBhc3NpZ25lZCB0byBoZWFkZXIgdGV4dC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGhlYWRlclRleHQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lIHRoZSBhbGlnbm1lbnQgb2YgY29sdW1uIGhlYWRlciB3aGljaCBpcyB1c2VkIHRvIGFsaWduIHRoZSB0ZXh0IG9mIGNvbHVtbiBoZWFkZXIuXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuVGV4dEFsaWduLkxlZnRcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuVGV4dEFsaWduXG4gICAgICovXG4gICAgcHVibGljIGhlYWRlclRleHRBbGlnbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBDb2x1bW4gdmlzaWJpbGl0eSBjYW4gY2hhbmdlIGJhc2VkIG9uIFtgTWVkaWEgUXVlcmllc2BdKGh0dHA6Ly9jc3NtZWRpYXF1ZXJpZXMuY29tL3doYXQtYXJlLWNzcy1tZWRpYS1xdWVyaWVzLmh0bWwpLiBcbiAgICAgKiBgaGlkZUF0TWVkaWFgIGFjY2VwdHMgb25seSB2YWxpZCBNZWRpYSBRdWVyaWVzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgaGlkZUF0TWVkaWE6IGFueTtcbiAgICAvKiogXG4gICAgICogRnJlZXplcyB0aGUgY29sdW1uIGlmIHNldCB0byBgdHJ1ZWAuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNGcm96ZW46IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGlzUHJpbWFyeUtleWAgaXMgc2V0IHRvIHRydWUsIGNvbnNpZGVycyB0aGlzIGNvbHVtbiBhcyB0aGUgcHJpbWFyeSBrZXkgY29uc3RyYWludC5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc1ByaW1hcnlLZXk6IGFueTtcbiAgICAvKiogXG4gICAgICogUHJldmVudHMgY29sdW1uIHJlb3JkZXJpbmcgd2hlbiBzZXQgdG8gdHJ1ZSwgbG9ja2luZyB0aGUgY29sdW1uIGludG8gYSBzZXQgcG9zaXRpb24uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9ja0NvbHVtbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4gaW4gcGl4ZWwgb3IgcGVyY2VudGFnZSwgd2hpY2ggd2lsbCByZXN0cmljdCByZXNpemluZyBiZXlvbmQgdGhpcyBwaXhlbCBvciBwZXJjZW50YWdlLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgbWF4V2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgbWluaW11bSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgbWluV2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVjaWRlcyBpZiB0aGUgY29sdW1uIG1lbnUgc2hvdWxkIGJlIGF2YWlsYWJsZSwgcHJvdmlkaW5nIG9wdGlvbnMgZm9yIGNvbHVtbiBjdXN0b21pemF0aW9uLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0NvbHVtbk1lbnU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgc29ydCBjb21wYXJlciBwcm9wZXJ0eS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHNvcnRDb21wYXJlcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBhbGlnbm1lbnQgb2YgdGhlIGNvbHVtbiBpbiBib3RoIGhlYWRlciBhbmQgY29udGVudCBjZWxscy5cbiAgICAgKiBAZGVmYXVsdCBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5UZXh0QWxpZ24uTGVmdFxuICAgICAqIEBpc2VudW1lcmF0aW9uIHRydWVcbiAgICAgKiBAYXNwdHlwZSBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5UZXh0QWxpZ25cbiAgICAgKi9cbiAgICBwdWJsaWMgdGV4dEFsaWduOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdmFsaWRhdGlvbiBydWxlcyBmb3IgZGF0YSBiZWZvcmUgY3JlYXRpbmcgb3IgdXBkYXRpbmcgcmVjb3Jkcy4gXG4gICAgICogVGhlIHJ1bGVzIGFyZSB1c2VkIHRvIGVuc3VyZSB0aGF0IGRhdGEgbWVldHMgc3BlY2lmaWMgY3JpdGVyaWEgYmVmb3JlIGl0IGlzIHNhdmVkIG9yIHVwZGF0ZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0aW9uUnVsZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgbWV0aG9kIHVzZWQgdG8gYXBwbHkgY3VzdG9tIGNlbGwgdmFsdWVzIGZyb20gZXh0ZXJuYWwgZnVuY3Rpb24gYW5kIGRpc3BsYXkgdGhpcyBvbiBlYWNoIGNlbGwgcmVuZGVyZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWx1ZUFjY2Vzc29yOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGB2aXNpYmxlYCBpcyBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbi4gQnkgZGVmYXVsdCwgY29sdW1ucyBhcmUgZGlzcGxheWVkLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgdmlzaWJsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgd2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgY29sdW1uIHRlbXBsYXRlIHRoYXQgcmVuZGVycyBjdXN0b21pemVkIGVsZW1lbnQgaW4gZWFjaCBjZWxsIG9mIHRoZSBjb2x1bW4uIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRlbXBsYXRlIHN0cmluZyBvciBIVE1MIGVsZW1lbnQgSUQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3RlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ3Rvb2xiYXJUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdG9vbGJhclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGhlYWRlciB0ZW1wbGF0ZSBhcyBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElEIHdoaWNoIGlzIHVzZWQgdG8gYWRkIGN1c3RvbWl6ZWQgZWxlbWVudCBpbiB0aGUgY29sdW1uIGhlYWRlci5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnZWRpdFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBlZGl0VGVtcGxhdGU6IGFueTtcbiAgICBAQ29udGVudENoaWxkKCdmaWx0ZXJJdGVtVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGZpbHRlcl9pdGVtVGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIGEgY3VzdG9tIHRlbXBsYXRlIG9yIFVJIGZvciBmaWx0ZXJpbmcgd2l0aGluIHRoaXMgY29sdW1uLCB1dGlsaXppbmcgZWl0aGVyIHN0cmluZyB0ZW1wbGF0ZXMgb3IgSFRNTCBlbGVtZW50IElEcy5cbiAgICAgKiBAYXNwaWdub3JlIFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2ZpbHRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBmaWx0ZXJUZW1wbGF0ZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ2VtcHR5UmVjb3JkVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGVtcHR5UmVjb3JkVGVtcGxhdGU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjpWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHNldFZhbHVlKCdjdXJyZW50SW5zdGFuY2UnLCB0aGlzLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKG91dHB1dHMpO1xuICAgICAgICB0aGlzLmRpcmVjdGl2ZVByb3BMaXN0ID0gaW5wdXQ7XG4gICAgfVxufVxuXG4vKipcbiAqIENvbHVtbiBBcnJheSBEaXJlY3RpdmVcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZWpzLWdhbnR0PmUtY29sdW1ucycsXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZHJlbjogbmV3IENvbnRlbnRDaGlsZHJlbihDb2x1bW5EaXJlY3RpdmUpXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uc0RpcmVjdGl2ZSBleHRlbmRzIEFycmF5QmFzZTxDb2x1bW5zRGlyZWN0aXZlPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdjb2x1bW5zJyk7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Directive, ContentChildren } from '@angular/core';
|
|
2
|
+
import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
let input = ['from', 'to'];
|
|
5
|
+
let outputs = [];
|
|
6
|
+
/**
|
|
7
|
+
* `e-day-working-time-collection` directive represent a working time ranges in a day.
|
|
8
|
+
* It must be contained in a Gantt component(`ejs-gantt`).
|
|
9
|
+
* ```html
|
|
10
|
+
* <ejs-gantt [dataSource]='data' allowSelection='true' allowSorting='true'>
|
|
11
|
+
* <e-day-working-time-collection>
|
|
12
|
+
* <e-day-working-time from='8' to='12'></e-day-working-time>
|
|
13
|
+
* <e-day-working-time from='13' to='17'></e-day-working-time>
|
|
14
|
+
* </e-day-working-time-collection>
|
|
15
|
+
* </ejs-gantt>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export class DayWorkingTimeDirective extends ComplexBase {
|
|
19
|
+
constructor(viewContainerRef) {
|
|
20
|
+
super();
|
|
21
|
+
this.viewContainerRef = viewContainerRef;
|
|
22
|
+
setValue('currentInstance', this, this.viewContainerRef);
|
|
23
|
+
this.registerEvents(outputs);
|
|
24
|
+
this.directivePropList = input;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
DayWorkingTimeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DayWorkingTimeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
28
|
+
DayWorkingTimeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: DayWorkingTimeDirective, selector: "ejs-gantt>e-day-working-time-collection>e-day-working-time", inputs: { from: "from", to: "to" }, usesInheritance: true, ngImport: i0 });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DayWorkingTimeDirective, decorators: [{
|
|
30
|
+
type: Directive,
|
|
31
|
+
args: [{
|
|
32
|
+
selector: 'ejs-gantt>e-day-working-time-collection>e-day-working-time',
|
|
33
|
+
inputs: input,
|
|
34
|
+
outputs: outputs,
|
|
35
|
+
queries: {}
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
|
|
38
|
+
/**
|
|
39
|
+
* DayWorkingTime Array Directive
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
export class DayWorkingTimeCollectionDirective extends ArrayBase {
|
|
43
|
+
constructor() {
|
|
44
|
+
super('dayworkingtime');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
DayWorkingTimeCollectionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DayWorkingTimeCollectionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
48
|
+
DayWorkingTimeCollectionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: DayWorkingTimeCollectionDirective, selector: "ejs-gantt>e-day-working-time-collection", queries: [{ propertyName: "children", predicate: DayWorkingTimeDirective }], usesInheritance: true, ngImport: i0 });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DayWorkingTimeCollectionDirective, decorators: [{
|
|
50
|
+
type: Directive,
|
|
51
|
+
args: [{
|
|
52
|
+
selector: 'ejs-gantt>e-day-working-time-collection',
|
|
53
|
+
queries: {
|
|
54
|
+
children: new ContentChildren(DayWorkingTimeDirective)
|
|
55
|
+
},
|
|
56
|
+
}]
|
|
57
|
+
}], ctorParameters: function () { return []; } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5d29ya2luZ3RpbWUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dhbnR0L2RheXdvcmtpbmd0aW1lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBSWhGLElBQUksS0FBSyxHQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JDLElBQUksT0FBTyxHQUFhLEVBQUUsQ0FBQztBQUMzQjs7Ozs7Ozs7Ozs7R0FXRztBQVNILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxXQUFvQztJQWdCN0UsWUFBb0IsZ0JBQWlDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBRFEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUVqRCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOztvSEFyQlEsdUJBQXVCO3dHQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFSbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNERBQTREO29CQUN0RSxNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLEVBRVI7aUJBQ0o7O0FBeUJEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxTQUE0QztJQUMvRjtRQUNJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVCLENBQUM7OzhIQUhRLGlDQUFpQztrSEFBakMsaUNBQWlDLHdHQUhSLHVCQUF1QjsyRkFHaEQsaUNBQWlDO2tCQU43QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5Q0FBeUM7b0JBQ25ELE9BQU8sRUFBRTt3QkFDTCxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsdUJBQXVCLENBQUM7cUJBQ3pEO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBDb250ZW50Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cblxuXG5sZXQgaW5wdXQ6IHN0cmluZ1tdID0gWydmcm9tJywgJ3RvJ107XG5sZXQgb3V0cHV0czogc3RyaW5nW10gPSBbXTtcbi8qKlxuICogYGUtZGF5LXdvcmtpbmctdGltZS1jb2xsZWN0aW9uYCBkaXJlY3RpdmUgcmVwcmVzZW50IGEgd29ya2luZyB0aW1lIHJhbmdlcyBpbiBhIGRheS4gXG4gKiBJdCBtdXN0IGJlIGNvbnRhaW5lZCBpbiBhIEdhbnR0IGNvbXBvbmVudChgZWpzLWdhbnR0YCkuIFxuICogYGBgaHRtbFxuICogPGVqcy1nYW50dCBbZGF0YVNvdXJjZV09J2RhdGEnIGFsbG93U2VsZWN0aW9uPSd0cnVlJyBhbGxvd1NvcnRpbmc9J3RydWUnPiBcbiAqICAgPGUtZGF5LXdvcmtpbmctdGltZS1jb2xsZWN0aW9uPlxuICogICAgIDxlLWRheS13b3JraW5nLXRpbWUgZnJvbT0nOCcgdG89JzEyJz48L2UtZGF5LXdvcmtpbmctdGltZT5cbiAqICAgICA8ZS1kYXktd29ya2luZy10aW1lIGZyb209JzEzJyB0bz0nMTcnPjwvZS1kYXktd29ya2luZy10aW1lPlxuICogICA8L2UtZGF5LXdvcmtpbmctdGltZS1jb2xsZWN0aW9uPlxuICogPC9lanMtZ2FudHQ+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtZ2FudHQ+ZS1kYXktd29ya2luZy10aW1lLWNvbGxlY3Rpb24+ZS1kYXktd29ya2luZy10aW1lJyxcbiAgICBpbnB1dHM6IGlucHV0LFxuICAgIG91dHB1dHM6IG91dHB1dHMsICAgIFxuICAgIHF1ZXJpZXM6IHtcblxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgRGF5V29ya2luZ1RpbWVEaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxEYXlXb3JraW5nVGltZURpcmVjdGl2ZT4ge1xuICAgIHB1YmxpYyBkaXJlY3RpdmVQcm9wTGlzdDogYW55O1xuXHRcblxuXG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHN0YXJ0IHRpbWUgb2YgdGhlIHdvcmtpbmcgdGltZSByYW5nZSBmb3IgdGhlIGRheS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZyb206IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZW5kIHRpbWUgb2YgdGhlIHdvcmtpbmcgdGltZSByYW5nZSBmb3IgdGhlIGRheS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHRvOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXJSZWY6Vmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBzZXRWYWx1ZSgnY3VycmVudEluc3RhbmNlJywgdGhpcywgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50cyhvdXRwdXRzKTtcbiAgICAgICAgdGhpcy5kaXJlY3RpdmVQcm9wTGlzdCA9IGlucHV0O1xuICAgIH1cbn1cblxuLyoqXG4gKiBEYXlXb3JraW5nVGltZSBBcnJheSBEaXJlY3RpdmVcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZWpzLWdhbnR0PmUtZGF5LXdvcmtpbmctdGltZS1jb2xsZWN0aW9uJyxcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkcmVuOiBuZXcgQ29udGVudENoaWxkcmVuKERheVdvcmtpbmdUaW1lRGlyZWN0aXZlKVxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIERheVdvcmtpbmdUaW1lQ29sbGVjdGlvbkRpcmVjdGl2ZSBleHRlbmRzIEFycmF5QmFzZTxEYXlXb3JraW5nVGltZUNvbGxlY3Rpb25EaXJlY3RpdmU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ2RheXdvcmtpbmd0aW1lJyk7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Directive, ContentChildren } from '@angular/core';
|
|
2
|
+
import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
let input = ['additionalParams', 'fields', 'headerText', 'type'];
|
|
5
|
+
let outputs = [];
|
|
6
|
+
/**
|
|
7
|
+
* `e-edit-dialog-field` directive represent a edit dialog fields collection in Gantt task add dialog.
|
|
8
|
+
* It must be contained in a Gantt component(`ejs-gantt`).
|
|
9
|
+
* ```html
|
|
10
|
+
* <ejs-gantt [dataSource]='data' allowSelection='true' allowSorting='true'>
|
|
11
|
+
* <e-edit-dialog-fields>
|
|
12
|
+
* <e-edit-dialog-field type='General' headerText='General'></e-edit-dialog-field>
|
|
13
|
+
* <e-edit-dialog-field type='Dependency' headerText='Dependency'></e-edit-dialog-field>
|
|
14
|
+
* </e-edit-dialog-fields>
|
|
15
|
+
* </ejs-gantt>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export class EditDialogFieldDirective extends ComplexBase {
|
|
19
|
+
constructor(viewContainerRef) {
|
|
20
|
+
super();
|
|
21
|
+
this.viewContainerRef = viewContainerRef;
|
|
22
|
+
setValue('currentInstance', this, this.viewContainerRef);
|
|
23
|
+
this.registerEvents(outputs);
|
|
24
|
+
this.directivePropList = input;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
EditDialogFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: EditDialogFieldDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
28
|
+
EditDialogFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: EditDialogFieldDirective, selector: "ejs-gantt>e-edit-dialog-fields>e-edit-dialog-field", inputs: { additionalParams: "additionalParams", fields: "fields", headerText: "headerText", type: "type" }, usesInheritance: true, ngImport: i0 });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: EditDialogFieldDirective, decorators: [{
|
|
30
|
+
type: Directive,
|
|
31
|
+
args: [{
|
|
32
|
+
selector: 'ejs-gantt>e-edit-dialog-fields>e-edit-dialog-field',
|
|
33
|
+
inputs: input,
|
|
34
|
+
outputs: outputs,
|
|
35
|
+
queries: {}
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
|
|
38
|
+
/**
|
|
39
|
+
* EditDialogField Array Directive
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
export class EditDialogFieldsDirective extends ArrayBase {
|
|
43
|
+
constructor() {
|
|
44
|
+
super('editdialogfields');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
EditDialogFieldsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: EditDialogFieldsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
48
|
+
EditDialogFieldsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: EditDialogFieldsDirective, selector: "ejs-gantt>e-edit-dialog-fields", queries: [{ propertyName: "children", predicate: EditDialogFieldDirective }], usesInheritance: true, ngImport: i0 });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: EditDialogFieldsDirective, decorators: [{
|
|
50
|
+
type: Directive,
|
|
51
|
+
args: [{
|
|
52
|
+
selector: 'ejs-gantt>e-edit-dialog-fields',
|
|
53
|
+
queries: {
|
|
54
|
+
children: new ContentChildren(EditDialogFieldDirective)
|
|
55
|
+
},
|
|
56
|
+
}]
|
|
57
|
+
}], ctorParameters: function () { return []; } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGRpYWxvZ2ZpZWxkcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2FudHQvZWRpdGRpYWxvZ2ZpZWxkcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUloRixJQUFJLEtBQUssR0FBYSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDM0UsSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO0FBQzNCOzs7Ozs7Ozs7OztHQVdHO0FBU0gsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFdBQXFDO0lBaUMvRSxZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBRWpELFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7O3FIQXRDUSx3QkFBd0I7eUdBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQVJwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvREFBb0Q7b0JBQzlELE1BQU0sRUFBRSxLQUFLO29CQUNiLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUUsRUFFUjtpQkFDSjs7QUEwQ0Q7OztHQUdHO0FBT0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFNBQW9DO0lBQy9FO1FBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDOUIsQ0FBQzs7c0hBSFEseUJBQXlCOzBHQUF6Qix5QkFBeUIsK0ZBSEEsd0JBQXdCOzJGQUdqRCx5QkFBeUI7a0JBTnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsT0FBTyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQztxQkFDMUQ7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIENvbnRlbnRDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcGxleEJhc2UsIEFycmF5QmFzZSwgc2V0VmFsdWUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcblxuXG5cbmxldCBpbnB1dDogc3RyaW5nW10gPSBbJ2FkZGl0aW9uYWxQYXJhbXMnLCAnZmllbGRzJywgJ2hlYWRlclRleHQnLCAndHlwZSddO1xubGV0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG4vKipcbiAqIGBlLWVkaXQtZGlhbG9nLWZpZWxkYCBkaXJlY3RpdmUgcmVwcmVzZW50IGEgZWRpdCBkaWFsb2cgZmllbGRzIGNvbGxlY3Rpb24gaW4gR2FudHQgdGFzayBhZGQgZGlhbG9nLiBcbiAqIEl0IG11c3QgYmUgY29udGFpbmVkIGluIGEgR2FudHQgY29tcG9uZW50KGBlanMtZ2FudHRgKS4gXG4gKiBgYGBodG1sXG4gKiA8ZWpzLWdhbnR0IFtkYXRhU291cmNlXT0nZGF0YScgYWxsb3dTZWxlY3Rpb249J3RydWUnIGFsbG93U29ydGluZz0ndHJ1ZSc+IFxuICogICA8ZS1lZGl0LWRpYWxvZy1maWVsZHM+XG4gKiAgICAgPGUtZWRpdC1kaWFsb2ctZmllbGQgdHlwZT0nR2VuZXJhbCcgaGVhZGVyVGV4dD0nR2VuZXJhbCc+PC9lLWVkaXQtZGlhbG9nLWZpZWxkPlxuICogICAgIDxlLWVkaXQtZGlhbG9nLWZpZWxkIHR5cGU9J0RlcGVuZGVuY3knIGhlYWRlclRleHQ9J0RlcGVuZGVuY3knPjwvZS1lZGl0LWRpYWxvZy1maWVsZD5cbiAqICAgPC9lLWVkaXQtZGlhbG9nLWZpZWxkcz5cbiAqIDwvZWpzLWdhbnR0PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZWpzLWdhbnR0PmUtZWRpdC1kaWFsb2ctZmllbGRzPmUtZWRpdC1kaWFsb2ctZmllbGQnLFxuICAgIGlucHV0czogaW5wdXQsXG4gICAgb3V0cHV0czogb3V0cHV0cywgICAgXG4gICAgcXVlcmllczoge1xuXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0RGlhbG9nRmllbGREaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxFZGl0RGlhbG9nRmllbGREaXJlY3RpdmU+IHtcbiAgICBwdWJsaWMgZGlyZWN0aXZlUHJvcExpc3Q6IGFueTtcblx0XG5cblxuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHR5cGVzIG9mIHRhYnMgdGhhdCBjb250YWluIGVkaXRvcnMgZm9yIGNvbHVtbnMuIFxuICAgICAqIEF2YWlsYWJsZSB0YWIgdHlwZXM6IFxuICAgICAqICogYEdlbmVyYWxgIC0gUmVwcmVzZW50cyB0aGUgZ2VuZXJhbCBpbmZvcm1hdGlvbiBlZGl0b3IgdGFiLiBcbiAgICAgKiAqIGBEZXBlbmRlbmN5YCAtIFJlcHJlc2VudHMgdGhlIGRlcGVuZGVuY3kgZWRpdG9yIHRhYi4gXG4gICAgICogKiBgUmVzb3VyY2VzYCAtIFJlcHJlc2VudHMgdGhlIHJlc291cmNlIGVkaXRvciB0YWIuIFxuICAgICAqICogYE5vdGVzYCAtIFJlcHJlc2VudHMgdGhlIG5vdGVzIGVkaXRvciB0YWIuIFxuICAgICAqICogYFNlZ21lbnRzYCAtIFJlcHJlc2VudHMgdGhlIHNlZ21lbnRzIGVkaXRvciB0YWIuIFxuICAgICAqICogYEN1c3RvbWAgLSBSZXByZXNlbnRzIHRoZSBjdXN0b20gY29sdW1uIGVkaXRvciB0YWIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciBHcmlkLCBSaWNoIFRleHQgRWRpdG9yIChSVEUpLCBvciBUcmVlR3JpZCBjb250cm9scyB3aXRoaW4gdGhlIEdhbnR0IGVkaXQgZGlhbG9nLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkaXRpb25hbFBhcmFtczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGVkaXRlZCBjb2x1bW4gZmllbGRzIHRvIGJlIHBsYWNlZCBpbnNpZGUgdGhlIHRhYi5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZpZWxkczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIGhlYWRlciB0ZXh0IG9mIHRhYiBpdGVtLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgaGVhZGVyVGV4dDogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogRWRpdERpYWxvZ0ZpZWxkIEFycmF5IERpcmVjdGl2ZVxuICogQHByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtZ2FudHQ+ZS1lZGl0LWRpYWxvZy1maWVsZHMnLFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgICAgY2hpbGRyZW46IG5ldyBDb250ZW50Q2hpbGRyZW4oRWRpdERpYWxvZ0ZpZWxkRGlyZWN0aXZlKVxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIEVkaXREaWFsb2dGaWVsZHNEaXJlY3RpdmUgZXh0ZW5kcyBBcnJheUJhc2U8RWRpdERpYWxvZ0ZpZWxkc0RpcmVjdGl2ZT4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcignZWRpdGRpYWxvZ2ZpZWxkcycpO1xuICAgIH1cbn0iXX0=
|