@syncfusion/ej2-gantt 19.4.55 → 20.1.47-1460716

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.
Files changed (212) hide show
  1. package/CHANGELOG.md +1072 -1047
  2. package/README.md +75 -75
  3. package/dist/ej2-gantt.umd.min.js +1 -10
  4. package/dist/ej2-gantt.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-gantt.es2015.js +341 -240
  6. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  7. package/dist/es6/ej2-gantt.es5.js +713 -598
  8. package/dist/es6/ej2-gantt.es5.js.map +1 -1
  9. package/dist/global/ej2-gantt.min.js +1 -10
  10. package/dist/global/ej2-gantt.min.js.map +1 -1
  11. package/dist/global/index.d.ts +0 -9
  12. package/dist/ts/components.ts +4 -0
  13. package/dist/ts/gantt/actions/actions.ts +18 -0
  14. package/dist/ts/gantt/actions/cell-edit.ts +606 -0
  15. package/dist/ts/gantt/actions/chart-scroll.ts +167 -0
  16. package/dist/ts/gantt/actions/column-menu.ts +35 -0
  17. package/dist/ts/gantt/actions/column-reorder.ts +52 -0
  18. package/dist/ts/gantt/actions/column-resize.ts +52 -0
  19. package/dist/ts/gantt/actions/connector-line-edit.ts +829 -0
  20. package/dist/ts/gantt/actions/context-menu.ts +754 -0
  21. package/dist/ts/gantt/actions/day-markers.ts +80 -0
  22. package/dist/ts/gantt/actions/dependency.ts +692 -0
  23. package/dist/ts/gantt/actions/dialog-edit.ts +2208 -0
  24. package/dist/ts/gantt/actions/edit.ts +3499 -0
  25. package/dist/ts/gantt/actions/excel-export.ts +61 -0
  26. package/dist/ts/gantt/actions/filter.ts +302 -0
  27. package/dist/ts/gantt/actions/keyboard.ts +306 -0
  28. package/dist/ts/gantt/actions/pdf-export.ts +214 -0
  29. package/dist/ts/gantt/actions/rowdragdrop.ts +839 -0
  30. package/dist/ts/gantt/actions/selection.ts +536 -0
  31. package/dist/ts/gantt/actions/sort.ts +98 -0
  32. package/dist/ts/gantt/actions/taskbar-edit.ts +1940 -0
  33. package/dist/ts/gantt/actions/toolbar.ts +489 -0
  34. package/dist/ts/gantt/actions/virtual-scroll.ts +60 -0
  35. package/dist/ts/gantt/base/common.ts +9 -0
  36. package/dist/ts/gantt/base/constant.ts +13 -0
  37. package/dist/ts/gantt/base/css-constants.ts +148 -0
  38. package/dist/ts/gantt/base/date-processor.ts +1257 -0
  39. package/dist/ts/gantt/base/enum.ts +372 -0
  40. package/dist/ts/gantt/base/gantt-chart.ts +1248 -0
  41. package/dist/ts/gantt/base/gantt.ts +4069 -0
  42. package/dist/ts/gantt/base/interface.ts +955 -0
  43. package/dist/ts/gantt/base/splitter.ts +174 -0
  44. package/dist/ts/gantt/base/task-processor.ts +2217 -0
  45. package/dist/ts/gantt/base/tree-grid.ts +694 -0
  46. package/dist/ts/gantt/base/utils.ts +208 -0
  47. package/dist/ts/gantt/export/export-helper.ts +552 -0
  48. package/dist/ts/gantt/export/pdf-base/dictionary.ts +152 -0
  49. package/dist/ts/gantt/export/pdf-base/pdf-borders.ts +277 -0
  50. package/dist/ts/gantt/export/pdf-base/pdf-grid-table.ts +901 -0
  51. package/dist/ts/gantt/export/pdf-base/pdf-style/gantt-theme.ts +131 -0
  52. package/dist/ts/gantt/export/pdf-base/pdf-style/style.ts +91 -0
  53. package/dist/ts/gantt/export/pdf-base/treegrid-layouter.ts +414 -0
  54. package/dist/ts/gantt/export/pdf-connector-line.ts +422 -0
  55. package/dist/ts/gantt/export/pdf-gantt.ts +282 -0
  56. package/dist/ts/gantt/export/pdf-taskbar.ts +395 -0
  57. package/dist/ts/gantt/export/pdf-timeline.ts +202 -0
  58. package/dist/ts/gantt/export/pdf-treegrid.ts +406 -0
  59. package/dist/ts/gantt/models/add-dialog-field-settings.ts +33 -0
  60. package/dist/ts/gantt/models/column.ts +464 -0
  61. package/dist/ts/gantt/models/day-working-time.ts +22 -0
  62. package/dist/ts/gantt/models/edit-dialog-field-settings.ts +33 -0
  63. package/dist/ts/gantt/models/edit-settings.ts +79 -0
  64. package/dist/ts/gantt/models/event-marker.ts +27 -0
  65. package/dist/ts/gantt/models/filter-settings.ts +53 -0
  66. package/dist/ts/gantt/models/holiday.ts +34 -0
  67. package/dist/ts/gantt/models/label-settings.ts +30 -0
  68. package/dist/ts/gantt/models/models.ts +36 -0
  69. package/dist/ts/gantt/models/resource-fields.ts +38 -0
  70. package/dist/ts/gantt/models/search-settings.ts +77 -0
  71. package/dist/ts/gantt/models/selection-settings.ts +56 -0
  72. package/dist/ts/gantt/models/sort-settings.ts +50 -0
  73. package/dist/ts/gantt/models/splitter-settings.ts +47 -0
  74. package/dist/ts/gantt/models/task-fields.ts +171 -0
  75. package/dist/ts/gantt/models/timeline-settings.ts +112 -0
  76. package/dist/ts/gantt/models/tooltip-settings.ts +46 -0
  77. package/dist/ts/gantt/renderer/chart-rows.ts +1838 -0
  78. package/dist/ts/gantt/renderer/connector-line.ts +1025 -0
  79. package/dist/ts/gantt/renderer/edit-tooltip.ts +228 -0
  80. package/dist/ts/gantt/renderer/event-marker.ts +96 -0
  81. package/dist/ts/gantt/renderer/nonworking-day.ts +205 -0
  82. package/dist/ts/gantt/renderer/render.ts +5 -0
  83. package/dist/ts/gantt/renderer/timeline.ts +1397 -0
  84. package/dist/ts/gantt/renderer/tooltip.ts +450 -0
  85. package/dist/ts/gantt/renderer/virtual-content-render.ts +50 -0
  86. package/license +9 -9
  87. package/package.json +80 -80
  88. package/src/gantt/actions/cell-edit.js +2 -1
  89. package/src/gantt/actions/dialog-edit.js +2 -1
  90. package/src/gantt/actions/edit.js +36 -9
  91. package/src/gantt/actions/rowdragdrop.js +37 -15
  92. package/src/gantt/actions/selection.js +3 -2
  93. package/src/gantt/actions/taskbar-edit.js +24 -24
  94. package/src/gantt/base/date-processor.js +0 -1
  95. package/src/gantt/base/gantt-chart.js +36 -5
  96. package/src/gantt/base/gantt-model.d.ts +779 -779
  97. package/src/gantt/base/gantt.d.ts +27 -27
  98. package/src/gantt/base/gantt.js +35 -76
  99. package/src/gantt/base/splitter.js +1 -0
  100. package/src/gantt/base/task-processor.js +13 -13
  101. package/src/gantt/base/tree-grid.js +3 -1
  102. package/src/gantt/export/pdf-base/treegrid-layouter.js +13 -13
  103. package/src/gantt/export/pdf-connector-line.js +11 -11
  104. package/src/gantt/export/pdf-gantt.js +24 -24
  105. package/src/gantt/export/pdf-taskbar.js +11 -11
  106. package/src/gantt/export/pdf-treegrid.js +13 -13
  107. package/src/gantt/models/add-dialog-field-settings-model.d.ts +21 -21
  108. package/src/gantt/models/add-dialog-field-settings.js +19 -19
  109. package/src/gantt/models/day-working-time-model.d.ts +11 -11
  110. package/src/gantt/models/day-working-time.js +19 -19
  111. package/src/gantt/models/edit-dialog-field-settings-model.d.ts +21 -21
  112. package/src/gantt/models/edit-dialog-field-settings.js +19 -19
  113. package/src/gantt/models/edit-settings-model.d.ts +50 -50
  114. package/src/gantt/models/edit-settings.js +19 -19
  115. package/src/gantt/models/event-marker-model.d.ts +16 -16
  116. package/src/gantt/models/event-marker.js +19 -19
  117. package/src/gantt/models/filter-settings-model.d.ts +34 -34
  118. package/src/gantt/models/filter-settings.js +19 -19
  119. package/src/gantt/models/holiday-model.d.ts +21 -21
  120. package/src/gantt/models/holiday.js +19 -19
  121. package/src/gantt/models/label-settings-model.d.ts +16 -16
  122. package/src/gantt/models/label-settings.js +19 -19
  123. package/src/gantt/models/resource-fields-model.d.ts +21 -21
  124. package/src/gantt/models/resource-fields.js +19 -19
  125. package/src/gantt/models/search-settings-model.d.ts +56 -56
  126. package/src/gantt/models/search-settings.js +19 -19
  127. package/src/gantt/models/selection-settings-model.d.ts +35 -35
  128. package/src/gantt/models/selection-settings.js +19 -19
  129. package/src/gantt/models/sort-settings-model.d.ts +24 -24
  130. package/src/gantt/models/sort-settings.js +19 -19
  131. package/src/gantt/models/splitter-settings-model.d.ts +30 -30
  132. package/src/gantt/models/splitter-settings.js +19 -19
  133. package/src/gantt/models/task-fields-model.d.ts +110 -110
  134. package/src/gantt/models/task-fields.js +19 -19
  135. package/src/gantt/models/timeline-settings-model.d.ts +71 -71
  136. package/src/gantt/models/timeline-settings.js +19 -19
  137. package/src/gantt/models/tooltip-settings-model.d.ts +26 -26
  138. package/src/gantt/models/tooltip-settings.js +19 -19
  139. package/src/gantt/renderer/chart-rows.js +49 -37
  140. package/src/gantt/renderer/connector-line.js +22 -18
  141. package/src/gantt/renderer/event-marker.js +1 -0
  142. package/src/gantt/renderer/nonworking-day.js +13 -6
  143. package/src/gantt/renderer/timeline.d.ts +1 -0
  144. package/src/gantt/renderer/timeline.js +51 -12
  145. package/src/gantt/renderer/tooltip.js +11 -3
  146. package/styles/bootstrap-dark.css +442 -427
  147. package/styles/bootstrap.css +442 -433
  148. package/styles/bootstrap4.css +454 -479
  149. package/styles/bootstrap5-dark.css +457 -433
  150. package/styles/bootstrap5.css +457 -433
  151. package/styles/fabric-dark.css +438 -421
  152. package/styles/fabric.css +445 -428
  153. package/styles/fluent-dark.css +1938 -0
  154. package/styles/fluent-dark.scss +1 -0
  155. package/styles/fluent.css +1938 -0
  156. package/styles/fluent.scss +1 -0
  157. package/styles/gantt/_all.scss +2 -2
  158. package/styles/gantt/_bootstrap-dark-definition.scss +210 -156
  159. package/styles/gantt/_bootstrap-definition.scss +211 -157
  160. package/styles/gantt/_bootstrap4-definition.scss +213 -158
  161. package/styles/gantt/_bootstrap5-definition.scss +215 -162
  162. package/styles/gantt/_fabric-dark-definition.scss +211 -157
  163. package/styles/gantt/_fabric-definition.scss +211 -157
  164. package/styles/gantt/_fluent-dark-definition.scss +1 -0
  165. package/styles/gantt/_fluent-definition.scss +215 -162
  166. package/styles/gantt/_fusionnew-definition.scss +214 -0
  167. package/styles/gantt/_highcontrast-definition.scss +211 -157
  168. package/styles/gantt/_highcontrast-light-definition.scss +211 -157
  169. package/styles/gantt/_layout.scss +1446 -1027
  170. package/styles/gantt/_material-dark-definition.scss +212 -157
  171. package/styles/gantt/_material-definition.scss +212 -157
  172. package/styles/gantt/_material3-definition.scss +215 -0
  173. package/styles/gantt/_tailwind-definition.scss +215 -161
  174. package/styles/gantt/_theme.scss +702 -668
  175. package/styles/gantt/bootstrap-dark.css +442 -427
  176. package/styles/gantt/bootstrap.css +442 -433
  177. package/styles/gantt/bootstrap4.css +454 -479
  178. package/styles/gantt/bootstrap5-dark.css +457 -433
  179. package/styles/gantt/bootstrap5.css +457 -433
  180. package/styles/gantt/fabric-dark.css +438 -421
  181. package/styles/gantt/fabric.css +445 -428
  182. package/styles/gantt/fluent-dark.css +1938 -0
  183. package/styles/gantt/fluent-dark.scss +22 -0
  184. package/styles/gantt/fluent.css +1938 -0
  185. package/styles/gantt/fluent.scss +22 -0
  186. package/styles/gantt/highcontrast-light.css +405 -405
  187. package/styles/gantt/highcontrast.css +444 -456
  188. package/styles/gantt/icons/_bootstrap-dark.scss +124 -113
  189. package/styles/gantt/icons/_bootstrap.scss +124 -113
  190. package/styles/gantt/icons/_bootstrap4.scss +124 -113
  191. package/styles/gantt/icons/_bootstrap5.scss +124 -112
  192. package/styles/gantt/icons/_fabric-dark.scss +124 -112
  193. package/styles/gantt/icons/_fabric.scss +124 -112
  194. package/styles/gantt/icons/_fluent-dark.scss +1 -0
  195. package/styles/gantt/icons/_fluent.scss +124 -112
  196. package/styles/gantt/icons/_fusionnew.scss +120 -0
  197. package/styles/gantt/icons/_highcontrast.scss +124 -112
  198. package/styles/gantt/icons/_material-dark.scss +124 -112
  199. package/styles/gantt/icons/_material.scss +124 -112
  200. package/styles/gantt/icons/_material3.scss +124 -0
  201. package/styles/gantt/icons/_tailwind-dark.scss +124 -113
  202. package/styles/gantt/icons/_tailwind.scss +124 -113
  203. package/styles/gantt/material-dark.css +446 -417
  204. package/styles/gantt/material.css +445 -419
  205. package/styles/gantt/tailwind-dark.css +452 -482
  206. package/styles/gantt/tailwind.css +449 -479
  207. package/styles/highcontrast-light.css +405 -405
  208. package/styles/highcontrast.css +444 -456
  209. package/styles/material-dark.css +446 -417
  210. package/styles/material.css +445 -419
  211. package/styles/tailwind-dark.css +452 -482
  212. package/styles/tailwind.css +449 -479
@@ -0,0 +1,208 @@
1
+ /**
2
+ * Common methods used in Gantt
3
+ */
4
+ import { isNullOrUndefined, extend, getValue } from '@syncfusion/ej2-base';
5
+ import { AdaptorOptions, DataManager, UrlAdaptor, WebApiAdaptor, ODataAdaptor } from '@syncfusion/ej2-data';
6
+ import { WebMethodAdaptor, CacheAdaptor, RemoteSaveAdaptor, ODataV4Adaptor, JsonAdaptor } from '@syncfusion/ej2-data';
7
+ import { ITaskData, IGanttData, ITaskAddedEventArgs } from './interface';
8
+ import { Gantt } from './gantt';
9
+
10
+ /**
11
+ * @param {Element} elem .
12
+ * @param {string} selector .
13
+ * @param {boolean} isID .
14
+ * @returns {Element} .
15
+ * @hidden
16
+ */
17
+ export function parentsUntil(elem: Element, selector: string, isID?: boolean): Element {
18
+ let parent: Element = elem;
19
+ while (parent) {
20
+ if (isID ? parent.id === selector : parent.classList.contains(selector)) {
21
+ break;
22
+ }
23
+ parent = parent.parentElement;
24
+ }
25
+ return parent;
26
+ }
27
+
28
+ /**
29
+ * @param {ITaskData} ganttProp .
30
+ * @returns {boolean} .
31
+ * @hidden
32
+ */
33
+ export function isScheduledTask(ganttProp: ITaskData): boolean {
34
+ if (isNullOrUndefined(ganttProp.startDate) && isNullOrUndefined(ganttProp.endDate) &&
35
+ isNullOrUndefined(ganttProp.duration)) {
36
+ return null;
37
+ } else if (isNullOrUndefined(ganttProp.startDate) || isNullOrUndefined(ganttProp.endDate) ||
38
+ isNullOrUndefined(ganttProp.duration)) {
39
+ return false;
40
+ } else {
41
+ return true;
42
+ }
43
+ }
44
+ /**
45
+ * @param {Gantt} parent .
46
+ * @returns {boolean} .
47
+ * @hidden
48
+ */
49
+ export function isCountRequired(parent: Gantt): boolean {
50
+ if (parent.dataSource && !(parent.dataSource instanceof DataManager) &&
51
+ 'result' in parent.dataSource) {
52
+ return true;
53
+ }
54
+ return false;
55
+ }
56
+ /**
57
+ * @param {object} obj .
58
+ * @returns {object} .
59
+ * @hidden
60
+ */
61
+ export function getSwapKey(obj: Object): object {
62
+ const temp: Object = {};
63
+ for (const key of Object.keys(obj)) {
64
+ temp[obj[key]] = key;
65
+ }
66
+ return temp;
67
+ }
68
+
69
+ /**
70
+ * @param {object} dataSource .
71
+ * @returns {boolean} .
72
+ * @hidden
73
+ */
74
+ export function isRemoteData(dataSource: object): boolean {
75
+ if (dataSource instanceof DataManager) {
76
+ const adaptor: AdaptorOptions = dataSource.adaptor;
77
+ return (adaptor instanceof ODataAdaptor || (adaptor instanceof ODataV4Adaptor) ||
78
+ (adaptor instanceof WebApiAdaptor) || (adaptor instanceof WebMethodAdaptor) ||
79
+ (adaptor instanceof CacheAdaptor) || (adaptor instanceof RemoteSaveAdaptor) ||
80
+ adaptor instanceof UrlAdaptor);
81
+ }
82
+ return false;
83
+ }
84
+
85
+ /**
86
+ * @param {IGanttData[]} records .
87
+ * @param {boolean} isNotExtend .
88
+ * @param {ITaskAddedEventArgs} eventArgs .
89
+ * @param {Gantt} parent .
90
+ * @returns {object[]} .
91
+ * @hidden
92
+ */
93
+ export function getTaskData(
94
+ records: IGanttData[], isNotExtend?: boolean, eventArgs?: ITaskAddedEventArgs, parent?: Gantt): object[] | object {
95
+ if (eventArgs)
96
+ {
97
+ let result: object;
98
+ for (let i: number = 0; i < records.length; i++) {
99
+ let data: object;
100
+ // eslint-disable-next-line
101
+ data = isNotExtend ? (records[i].taskData) : extend({}, records[i].taskData, {}, true);
102
+ result = (data);
103
+ }
104
+ return result;
105
+ }
106
+ else {
107
+ const result: object[] = [];
108
+ for (let i: number = 0; i < records.length; i++) {
109
+ let data: object;
110
+ if (!isNullOrUndefined(parent) && parent.timezone) {
111
+ updateDates(records[i], parent);
112
+ }
113
+ // eslint-disable-next-line
114
+ data = isNotExtend ? (records[i].taskData) : extend({}, records[i].taskData, {}, true);
115
+ result.push(data);
116
+ }
117
+ return result;
118
+ }
119
+ }
120
+
121
+ /**
122
+ * @param {IGanttData} record .
123
+ * @param {Gantt} parent .
124
+ * @returns {null} .
125
+ * @hidden
126
+ */
127
+ export function updateDates(record: IGanttData, parent: Gantt): void {
128
+ // let startDate: Date = (record as IGanttData).taskData[parent.taskFields.startDate];
129
+ (record as IGanttData).taskData[parent.taskFields.startDate] = parent.dateValidationModule.remove(
130
+ (record as IGanttData).ganttProperties.startDate, parent.timezone);
131
+ if (parent.taskFields.endDate != null) {
132
+ (record as IGanttData).taskData[parent.taskFields.endDate] = parent.dateValidationModule.remove(
133
+ (record as IGanttData).ganttProperties.endDate, parent.timezone);
134
+ }
135
+ if (parent.taskFields.baselineEndDate || parent.taskFields.baselineStartDate) {
136
+ (record as IGanttData).taskData[parent.taskFields.baselineStartDate] = parent.dateValidationModule.remove(
137
+ (record as IGanttData).ganttProperties.baselineStartDate, parent.timezone);
138
+
139
+ (record as IGanttData).taskData[parent.taskFields.baselineEndDate] = parent.dateValidationModule.remove(
140
+ (record as IGanttData).ganttProperties.baselineEndDate, parent.timezone);
141
+ }
142
+ return null;
143
+ }
144
+
145
+ /**
146
+ * @param {string} str .
147
+ * @param {string[]} args .
148
+ * @returns {string} .
149
+ * @hidden
150
+ */
151
+ export function formatString(str: string, args: string[]): string {
152
+ let regx: RegExp;
153
+ for (let i: number = 0; i < args.length; i++) {
154
+ regx = new RegExp('\\{' + (i) + '\\}', 'gm');
155
+ str = str.replace(regx, args[i].toString());
156
+ }
157
+ return str;
158
+ }
159
+
160
+ /**
161
+ * @param {any} value .
162
+ * @param {string} key1 .
163
+ * @param {any} collection .
164
+ * @param {string} key2
165
+ * @returns {number} .
166
+ * @hidden
167
+ */
168
+ /* eslint-disable-next-line */
169
+ export function getIndex(value: any, key1: string, collection: any, key2?: string ): number {
170
+ let index: number = - 1;
171
+ for (let i: number = 0; i < collection.length; i++) {
172
+ if (getValue(key1, collection[i]) === getValue(key1, value) && isNullOrUndefined(key2)
173
+ || (!isNullOrUndefined(key2) && getValue(key1, collection[i]) === getValue(key1, value)
174
+ && getValue(key2, collection[i]) === getValue(key2, value))) {
175
+ index = i;
176
+ break;
177
+ }
178
+ }
179
+ return index;
180
+ }
181
+
182
+ /**
183
+ * @param {number} value .
184
+ * @returns {number} .
185
+ * @hidden
186
+ */
187
+ export function pixelToPoint(value: number): number {
188
+ return (value * 76) / 92;
189
+ }
190
+
191
+ /**
192
+ * @param {number} value .
193
+ * @returns {number} .
194
+ * @hidden
195
+ */
196
+ export function pointToPixel(value: number): number {
197
+ return (value * 92) / 76;
198
+ }
199
+
200
+ let uid: number = 0;
201
+
202
+ /**
203
+ * @returns {number} .
204
+ * @hidden
205
+ */
206
+ export function getUid(): number {
207
+ return uid++;
208
+ }