@amcharts/amcharts5 5.14.0 → 5.14.2

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 (188) hide show
  1. package/.internal/charts/gantt/Gantt.d.ts +6 -0
  2. package/.internal/charts/gantt/Gantt.d.ts.map +1 -1
  3. package/.internal/charts/gantt/Gantt.js +23 -0
  4. package/.internal/charts/gantt/Gantt.js.map +1 -1
  5. package/.internal/charts/gantt/GanttCategoryAxis.d.ts.map +1 -1
  6. package/.internal/charts/gantt/GanttCategoryAxis.js +5 -9
  7. package/.internal/charts/gantt/GanttCategoryAxis.js.map +1 -1
  8. package/.internal/charts/gantt/GanttDefaultTheme.d.ts.map +1 -1
  9. package/.internal/charts/gantt/GanttDefaultTheme.js +15 -2
  10. package/.internal/charts/gantt/GanttDefaultTheme.js.map +1 -1
  11. package/.internal/charts/gantt/GanttSeries.d.ts.map +1 -1
  12. package/.internal/charts/gantt/GanttSeries.js +16 -8
  13. package/.internal/charts/gantt/GanttSeries.js.map +1 -1
  14. package/.internal/charts/xy/axes/CategoryAxis.d.ts.map +1 -1
  15. package/.internal/charts/xy/axes/CategoryAxis.js +13 -6
  16. package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
  17. package/.internal/charts/xy/axes/DateAxis.js +1 -1
  18. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  19. package/.internal/core/Registry.js +1 -1
  20. package/.internal/core/Registry.js.map +1 -1
  21. package/.internal/core/Root.d.ts +1 -0
  22. package/.internal/core/Root.d.ts.map +1 -1
  23. package/.internal/core/Root.js +13 -1
  24. package/.internal/core/Root.js.map +1 -1
  25. package/CHANGELOG.md +21 -1
  26. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  27. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  28. package/examples/javascript/flow-chord/package.json +1 -1
  29. package/examples/javascript/flow-chord-directed/package.json +1 -1
  30. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  31. package/examples/javascript/flow-sankey/package.json +1 -1
  32. package/examples/javascript/gantt/index.js +0 -5
  33. package/examples/javascript/gantt/package.json +1 -1
  34. package/examples/javascript/gantt-multilevel/index.js +27 -48
  35. package/examples/javascript/gantt-multilevel/package.json +1 -1
  36. package/examples/javascript/gantt-simple/index.js +0 -4
  37. package/examples/javascript/gantt-simple/package.json +1 -1
  38. package/examples/javascript/gauge/package.json +1 -1
  39. package/examples/javascript/gauge-bands/package.json +1 -1
  40. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  41. package/examples/javascript/hierarchy-pack/package.json +1 -1
  42. package/examples/javascript/hierarchy-partition/package.json +1 -1
  43. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  44. package/examples/javascript/hierarchy-tree/package.json +1 -1
  45. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  46. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  47. package/examples/javascript/jest/package.json +1 -1
  48. package/examples/javascript/json-pie/package.json +1 -1
  49. package/examples/javascript/json-xy/package.json +1 -1
  50. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  51. package/examples/javascript/map-clustered-points/package.json +1 -1
  52. package/examples/javascript/map-day-and-night/package.json +1 -1
  53. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  54. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  55. package/examples/javascript/map-with-bubbles/package.json +1 -1
  56. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  57. package/examples/javascript/misc-40-charts/package.json +1 -1
  58. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  59. package/examples/javascript/pie-chart/package.json +1 -1
  60. package/examples/javascript/pie-donut-chart/package.json +1 -1
  61. package/examples/javascript/pie-variable-radius/package.json +1 -1
  62. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  63. package/examples/javascript/radar-heat-map/package.json +1 -1
  64. package/examples/javascript/radar-line/package.json +1 -1
  65. package/examples/javascript/radar-time-line/package.json +1 -1
  66. package/examples/javascript/sliced-funnel/package.json +1 -1
  67. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  68. package/examples/javascript/sliced-pyramid/package.json +1 -1
  69. package/examples/javascript/stock-chart/package.json +1 -1
  70. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  71. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  72. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  73. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  74. package/examples/javascript/stock-chart-live/package.json +1 -1
  75. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  76. package/examples/javascript/timeline-horizontal-serpentine-chart/package.json +1 -1
  77. package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
  78. package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
  79. package/examples/javascript/timeline-spiral-chart/package.json +1 -1
  80. package/examples/javascript/venn-diagram/package.json +1 -1
  81. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  82. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  83. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  84. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  85. package/examples/javascript/xy-bubble/package.json +1 -1
  86. package/examples/javascript/xy-candlestick/package.json +1 -1
  87. package/examples/javascript/xy-clustered-column/package.json +1 -1
  88. package/examples/javascript/xy-column/package.json +1 -1
  89. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  90. package/examples/javascript/xy-data-grouping/package.json +1 -1
  91. package/examples/javascript/xy-draggable-range/package.json +1 -1
  92. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  93. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  94. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  95. package/examples/javascript/xy-line/package.json +1 -1
  96. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  97. package/examples/javascript/xy-live-data/package.json +1 -1
  98. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  99. package/examples/javascript/xy-ohlc/package.json +1 -1
  100. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  101. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  102. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  103. package/examples/javascript/xy-stacked-column/package.json +1 -1
  104. package/examples/javascript/xy-stacked-step/package.json +1 -1
  105. package/examples/javascript/xy-stock/package.json +1 -1
  106. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  107. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  108. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  109. package/examples/typescript/flow-chord/package.json +1 -1
  110. package/examples/typescript/flow-chord-directed/package.json +1 -1
  111. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  112. package/examples/typescript/flow-sankey/package.json +1 -1
  113. package/examples/typescript/gantt/index.ts +0 -5
  114. package/examples/typescript/gantt/package.json +1 -1
  115. package/examples/typescript/gantt-multilevel/index.ts +27 -48
  116. package/examples/typescript/gantt-multilevel/package.json +1 -1
  117. package/examples/typescript/gantt-simple/index.ts +0 -4
  118. package/examples/typescript/gantt-simple/package.json +1 -1
  119. package/examples/typescript/gauge/package.json +1 -1
  120. package/examples/typescript/gauge-bands/package.json +1 -1
  121. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  122. package/examples/typescript/hierarchy-pack/package.json +1 -1
  123. package/examples/typescript/hierarchy-partition/package.json +1 -1
  124. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  125. package/examples/typescript/hierarchy-tree/package.json +1 -1
  126. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  127. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  128. package/examples/typescript/jest/package.json +1 -1
  129. package/examples/typescript/json-pie/package.json +1 -1
  130. package/examples/typescript/json-xy/package.json +1 -1
  131. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  132. package/examples/typescript/map-clustered-points/package.json +1 -1
  133. package/examples/typescript/map-day-and-night/package.json +1 -1
  134. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  135. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  136. package/examples/typescript/map-with-bubbles/package.json +1 -1
  137. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  138. package/examples/typescript/misc-40-charts/package.json +1 -1
  139. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  140. package/examples/typescript/pie-chart/package.json +1 -1
  141. package/examples/typescript/pie-donut-chart/package.json +1 -1
  142. package/examples/typescript/pie-variable-radius/package.json +1 -1
  143. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  144. package/examples/typescript/radar-heat-map/package.json +1 -1
  145. package/examples/typescript/radar-line/package.json +1 -1
  146. package/examples/typescript/radar-time-line/package.json +1 -1
  147. package/examples/typescript/sliced-funnel/package.json +1 -1
  148. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  149. package/examples/typescript/sliced-pyramid/package.json +1 -1
  150. package/examples/typescript/stock-chart/package.json +1 -1
  151. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  152. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  153. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  154. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  155. package/examples/typescript/stock-chart-live/package.json +1 -1
  156. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  157. package/examples/typescript/timeline-horizontal-serpentine-chart/package.json +1 -1
  158. package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
  159. package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
  160. package/examples/typescript/timeline-spiral-chart/package.json +1 -1
  161. package/examples/typescript/venn-diagram/package.json +1 -1
  162. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  163. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  164. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  165. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  166. package/examples/typescript/xy-bubble/package.json +1 -1
  167. package/examples/typescript/xy-candlestick/package.json +1 -1
  168. package/examples/typescript/xy-clustered-column/package.json +1 -1
  169. package/examples/typescript/xy-column/package.json +1 -1
  170. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  171. package/examples/typescript/xy-data-grouping/package.json +1 -1
  172. package/examples/typescript/xy-draggable-range/package.json +1 -1
  173. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  174. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  175. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  176. package/examples/typescript/xy-line/package.json +1 -1
  177. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  178. package/examples/typescript/xy-live-data/package.json +1 -1
  179. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  180. package/examples/typescript/xy-ohlc/package.json +1 -1
  181. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  182. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  183. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  184. package/examples/typescript/xy-stacked-column/package.json +1 -1
  185. package/examples/typescript/xy-stacked-step/package.json +1 -1
  186. package/examples/typescript/xy-stock/package.json +1 -1
  187. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  188. package/package.json +1 -1
@@ -173,6 +173,12 @@ export declare class Gantt extends Container {
173
173
  * The [[Button]] element to zoom out the X axis.
174
174
  */
175
175
  readonly zoomOutButton: Button;
176
+ /**
177
+ * The [[Button]] element to toggle edit mode.
178
+ *
179
+ * @since 5.14.1
180
+ */
181
+ readonly editButton: Button;
176
182
  /**
177
183
  * The [[Button]] element to clear all tasks.
178
184
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Gantt.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/Gantt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAW,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAS,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAa,SAAS,EAAW,MAAM,UAAU,CAAC;AAC/J,OAAO,EAAE,iBAAiB,EAA8B,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAOhF,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IAEzD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAEhF;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhC;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC;IAElB;;;;OAIG;IACH,aAAa,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,CAAA;KAAE,CAAC;IAE1D;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;CAAI;AAE5D,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACrD,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAA;KAAE,CAAC;IACrF,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAA;KAAE,CAAC;IACxF,aAAa,EAAE,EAAE,CAAC;CAClB;AAED;;;;;;GAMG;AACH,qBAAa,KAAM,SAAQ,SAAS;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,gBAAgB,EAAE,aAAa,CAAC;IAChC,OAAO,EAAE,YAAY,CAAC;IACrC,OAAc,SAAS,EAAE,MAAM,CAAW;IAC1C,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAkD;IAEzF;;OAEG;IACI,UAAU,EAAE,SAAS,CAEzB;IAEH;;OAEG;IACI,UAAU,EAAE,SAAS,CAEzB;IAEH;;OAEG;IACI,OAAO,EAAG,OAAO,CAAC;IAEzB;;OAEG;IACI,MAAM,EAAG,WAAW,CAAC;IAE5B;;OAEG;IACI,KAAK,EAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAEpD;;OAEG;IACI,UAAU,EAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAEzD;;OAEG;IACI,KAAK,EAAG,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IAE5D;;OAEG;IACI,QAAQ,EAAE,SAAS,CAGxB;IAEK,YAAY,EAAE,SAAS,CAE3B;IAEH;;OAEG;IACH,SAAgB,SAAS,EAAE,MAAM,CAI7B;IAEJ;;OAEG;IACH,SAAgB,iBAAiB,EAAE,iBAAiB,CAGhD;IAEJ;;OAEG;IACH,SAAgB,YAAY,EAAE,MAAM,CAIhC;IAEJ;;OAEG;IACH,SAAgB,cAAc,EAAE,MAAM,CAIlC;IAEJ;;OAEG;IACH,SAAgB,UAAU,EAAE,MAAM,CAI9B;IAEJ;;OAEG;IACH,SAAgB,SAAS,EAAE,MAAM,CAI7B;IAEJ;;OAEG;IACH,SAAgB,aAAa,EAAE,MAAM,CAIjC;IAEJ;;OAEG;IACH,SAAgB,WAAW,EAAE,aAAa,CAKtC;IAEJ;;OAEG;IACH,SAAgB,WAAW,EAAE,WAAW,CAAuE;IAE/G,SAAS,CAAC,YAAY,EAAE,KAAK,GAAG,SAAS,CAAC;IAI1C,SAAS,CAAC,SAAS;IAkUZ,gBAAgB,IAAI,IAAI;IAOxB,QAAQ;IAqBR,eAAe;IA2BtB,SAAS,CAAC,gBAAgB;IAQ1B;;;;;;;;;OASG;IACI,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,EAAE,cAAc,CAAC,EAAE,OAAO;IAuJjI,UAAU,IAAI,KAAK,GAAG,SAAS;IAUtC;;;;OAIG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM;IAa5B;;;;OAIG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM;IAgB9B,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO;CA4BxC"}
1
+ {"version":3,"file":"Gantt.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/Gantt.ts"],"names":[],"mappings":"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"}
@@ -204,6 +204,21 @@ export class Gantt extends Container {
204
204
  tooltip: this.root.systemTooltip
205
205
  }))
206
206
  });
207
+ /**
208
+ * The [[Button]] element to toggle edit mode.
209
+ *
210
+ * @since 5.14.1
211
+ */
212
+ Object.defineProperty(this, "editButton", {
213
+ enumerable: true,
214
+ configurable: true,
215
+ writable: true,
216
+ value: this.controls.children.push(Button.new(this._root, {
217
+ themeTags: ["edit", "secondary", "fixedwidth"],
218
+ icon: Graphics.new(this._root, { themeTags: ["icon"] }),
219
+ tooltip: this.root.systemTooltip
220
+ }))
221
+ });
207
222
  /**
208
223
  * The [[Button]] element to clear all tasks.
209
224
  */
@@ -456,6 +471,9 @@ export class Gantt extends Container {
456
471
  this.colorPicker.on("color", (c) => {
457
472
  this.yAxis.setDataItemColor(this.yAxis.get("selectedDataItem"), c);
458
473
  });
474
+ this.editButton.on("active", (active) => {
475
+ this.set("editable", active);
476
+ });
459
477
  this.fitButton.events.on("click", () => {
460
478
  let min = series.getPrivate("selectionMinX", 0);
461
479
  let max = series.getPrivate("selectionMaxX", 0);
@@ -528,6 +546,9 @@ export class Gantt extends Container {
528
546
  if (this.isDirty("linkNewTasks")) {
529
547
  this.linkButton.set("active", this.get("linkNewTasks", false));
530
548
  }
549
+ if (this.isDirty("editable")) {
550
+ this.editButton.set("active", this.get("editable", true));
551
+ }
531
552
  if (this._sizeDirty || this.isDirty("sidebarWidth")) {
532
553
  let width = $utils.relativeToValue(this.get("sidebarWidth", percent(20)), this.innerWidth());
533
554
  width = Math.max(width, this.yAxis.get("minWidth", 100));
@@ -739,6 +760,7 @@ export class Gantt extends Container {
739
760
  const forceHidden = "forceHidden";
740
761
  const forceInactive = "forceInactive";
741
762
  const draggable = "draggable";
763
+ this.series.markDirtyValues();
742
764
  this.addButton.set(forceHidden, !value);
743
765
  this.colorPickerButton.set(forceHidden, !value);
744
766
  this.clearButton.set(forceHidden, !value);
@@ -754,6 +776,7 @@ export class Gantt extends Container {
754
776
  this.series.progressGrips.template.set(forceHidden, !value);
755
777
  this.series.startBullets.template.set(forceHidden, !value);
756
778
  this.series.endBullets.template.set(forceHidden, !value);
779
+ this.series.links.template.set(forceInactive, !value);
757
780
  this.xAxisMinor.set(forceInactive, !value);
758
781
  }
759
782
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Gantt.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/Gantt.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ITimeInterval } from \"../../core/util/Time\";\r\nimport type { Grid } from \"../xy/axes/Grid\";\r\n\r\nimport { Button } from \"../../core/render/Button\";\r\nimport { ConfirmButton } from \"../../core/render/ConfirmButton\";\r\nimport { Graphics } from \"../../core/render/Graphics\";\r\nimport { Percent, percent } from \"../../core/util/Percent\";\r\nimport { GanttDateAxis, IGanttDateAxisDataItem } from \"./GanttDateAxis\";\r\nimport { XYChart } from \"../xy/XYChart\";\r\nimport { GanttDefaultTheme } from \"./GanttDefaultTheme\";\r\nimport { GanttSeries } from \"./GanttSeries\";\r\nimport { color, Color, ColorSet, Container, DataItem, IContainerEvents, IContainerPrivate, IContainerSettings, Rectangle, Scrollbar, Tooltip } from \"../../..\";\r\nimport { GanttCategoryAxis, IGanttCategoryAxisDataItem } from \"./GanttCategoryAxis\";\r\nimport { GanttCategoryAxisRenderer } from \"./GanttCategoryAxisRenderer\";\r\nimport { GanttDateAxisRenderer } from \"./GanttDateAxisRenderer\";\r\nimport { XYCursor } from \"../xy/XYCursor\";\r\nimport { ColorPicker } from \"../../plugins/colorPicker/ColorPicker\";\r\nimport { ColorPickerButton } from \"../../plugins/colorPicker/ColorPickerButton\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\nimport * as $utils from \"../../core/util/Utils\";\r\nimport * as $array from \"../../core/util/Array\";\r\nimport * as $time from \"../../core/util/Time\";\r\n\r\nexport interface IGanttSettings extends IContainerSettings {\r\n\r\n\t/**\r\n\t * If set to `true`, the user will be able to edit the chart via UI.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\teditable?: boolean;\r\n\r\n\t/**\r\n\t * A unit to be used for when calculating \"duration\" of Gantt items.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Duration_units} for more information\r\n\t * @default \"day\"\r\n\t */\r\n\tdurationUnit?: \"year\" | \"month\" | \"week\" | \"day\" | \"hour\" | \"minute\" | \"second\";\r\n\r\n\t/**\r\n\t * An array of weekend days, e.g. `[0, 6]` for Sunday and Saturday.\r\n\t *\r\n\t * @default [0, 6]\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Weekends_and_holidays} for more information\r\n\t */\r\n\tweekends?: Array<number>;\r\n\r\n\t/**\r\n\t * An array of dates to treat as a holiday.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Weekends_and_holidays} for more information\r\n\t */\r\n\tholidays?: Array<Date>;\r\n\r\n\t/**\r\n\t * If set to `true`, weekends will be excluded from the chart.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Weekends_and_holidays} for more information\r\n\t */\r\n\texcludeWeekends?: boolean;\r\n\r\n\t/**\r\n\t * An absolute or relative width of the left-side category column.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Category_axis_width} for more information\r\n\t * @default 30%\r\n\t */\r\n\tsidebarWidth?: number | Percent;\r\n\r\n\t/**\r\n\t * A relative vertical cell position to treat as the threshold for snapping\r\n\t * bars.\r\n\t *\r\n\t * Available range of values: `0` (left) to `1` (right).\r\n\t *\r\n\t * This will be used when resizing or dragging a bar. If the position is\r\n\t * bigger than `snapThreshold` the bar will snap to the right, if it is\r\n\t * smaller than `snapThreshold`, it will snap to the left.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Snapping_behavior} for more information\r\n\t * @default 0.5\r\n\t */\r\n\tsnapThreshold?: number;\r\n\r\n\t/**\r\n\t * A [[ColorSet]] to use when asigning colors for series.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/series/#Series_colors} for more info\r\n\t */\r\n\tcolors?: ColorSet;\r\n\r\n\t/**\r\n\t * Grid intervals.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Timeline_horizontal_axis} for more info\r\n\t */\r\n\tgridIntervals?: { [index: string]: Array<ITimeInterval> };\r\n\r\n\t/**\r\n\t * If this is set to `true`, when a new task is added, it will be automatically linked to the previous task.\r\n\t * \r\n\t * @default true\r\n\t */\r\n\tlinkNewTasks?: boolean;\r\n}\r\n\r\nexport interface IGanttPrivate extends IContainerPrivate { }\r\n\r\nexport interface IGanttEvents extends IContainerEvents {\r\n\tdatemarked: { date: number | undefined, dataItem: DataItem<IGanttDateAxisDataItem> };\r\n\tdateunmarked: { date: number | undefined, dataItem?: DataItem<IGanttDateAxisDataItem> };\r\n\tvalueschanged: {};\r\n}\r\n\r\n/**\r\n * Creates a [[Gantt]] chart.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/} for more info\r\n * @important\r\n * @since 5.14.0\r\n */\r\nexport class Gantt extends Container {\r\n\tdeclare public _settings: IGanttSettings;\r\n\tdeclare public _privateSettings: IGanttPrivate;\r\n\tdeclare public _events: IGanttEvents;\r\n\tpublic static className: string = \"Gantt\";\r\n\tpublic static classNames: Array<string> = Container.classNames.concat([Gantt.className]);\r\n\r\n\t/**\r\n\t * A scrollbar for horizontal scrolling.\r\n\t */\r\n\tpublic scrollbarX: Scrollbar = Scrollbar.new(this._root, {\r\n\t\torientation: \"horizontal\"\r\n\t});\r\n\r\n\t/**\r\n\t * A scrollbar for vertical scrolling.\r\n\t */\r\n\tpublic scrollbarY: Scrollbar = Scrollbar.new(this._root, {\r\n\t\torientation: \"vertical\"\r\n\t});\r\n\r\n\t/**\r\n\t * A reference to the [[XYChart]] that holds the Gantt chart.\r\n\t */\r\n\tpublic xyChart!: XYChart;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttSeries]] that shows the Gantt tasks bars.\r\n\t */\r\n\tpublic series!: GanttSeries;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttDateAxis]] used as the main X-axis.\r\n\t */\r\n\tpublic xAxis!: GanttDateAxis<GanttDateAxisRenderer>;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttDateAxis]] used as the secondary X-axis.\r\n\t */\r\n\tpublic xAxisMinor!: GanttDateAxis<GanttDateAxisRenderer>;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttCategoryAxis]] used as the Y-axis.\r\n\t */\r\n\tpublic yAxis!: GanttCategoryAxis<GanttCategoryAxisRenderer>;\r\n\r\n\t/**\r\n\t * Controls (add, color picker, expand, collaps, clear buttons) container.\r\n\t */\r\n\tpublic controls: Container = Container.new(this._root, {\r\n\t\tthemeTags: [\"controls\"],\r\n\t\tlayout: this._root.horizontalLayout,\r\n\t})\r\n\r\n\tpublic zoomControls: Container = Container.new(this._root, {\r\n\t\tthemeTagsSelf: [\"zoomcontrols\"]\r\n\t});\r\n\r\n\t/**\r\n\t * The [[Button]] element to add new tasks.\r\n\t */\r\n\tpublic readonly addButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"add\", \"plus\"],\r\n\t\ttooltip: this.root.systemTooltip,\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] })\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[ColorPickerButton]] element to select colors for tasks.\r\n\t */\r\n\tpublic readonly colorPickerButton: ColorPickerButton = this.controls.children.push(ColorPickerButton.new(this._root, {\r\n\t\tdisableOpacity: true,\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] elements to expand and collapse all tasks.\r\n\t */\r\n\tpublic readonly expandButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"expand\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] elements to collapse all tasks.\r\n\t */\r\n\tpublic readonly collapseButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"collapse\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to toggle `linkNewTasks` setting.\r\n\t */\r\n\tpublic readonly linkButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"link\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to horizontally fit visible tasks into a view.\r\n\t */\r\n\tpublic readonly fitButton: Button = this.zoomControls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"fit\", \"secondary\", \"zoombutton\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to zoom out the X axis.\r\n\t */\r\n\tpublic readonly zoomOutButton: Button = this.zoomControls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"zoomout\", \"secondary\", \"zoombutton\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to clear all tasks.\r\n\t */\r\n\tpublic readonly clearButton: ConfirmButton = this.controls.children.push(ConfirmButton.new(this._root, {\r\n\t\tthemeTags: [\"clear\", \"secondary\", \"confirm\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip,\r\n\t\tactive: false\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[ColorPicker]] element to select colors for tasks.\r\n\t */\r\n\tpublic readonly colorPicker: ColorPicker = this.children.push(ColorPicker.new(this._root, { visible: false }));\r\n\r\n\tprotected _customColor: Color | undefined;\r\n\r\n\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis.addTag(\"gantt\");\r\n\t\tthis._defaultThemes.push(GanttDefaultTheme.new(this._root));\r\n\r\n\t\tsuper._afterNew();\r\n\r\n\t\tconst root = this._root;\r\n\r\n\t\tthis.colorPickerButton.events.on(\"click\", () => {\r\n\t\t\tthis.yAxis.xButton.hide(0);\r\n\t\t\tthis.colorPicker.setAll({\r\n\t\t\t\tcolorButton: this.colorPickerButton\r\n\t\t\t})\r\n\t\t\tthis.children.moveValue(this.colorPicker, this.children.length - 1);\r\n\t\t\tthis.yAxis._disposeXHideDP();\r\n\t\t})\r\n\r\n\t\tthis.colorPicker.events.on(\"colorchanged\", () => {\r\n\t\t\tthis._customColor = this.colorPicker.get(\"color\");\r\n\t\t\tthis.yAxis.unselectDataItems();\r\n\t\t});\r\n\r\n\t\tthis.addButton.events.on(\"click\", () => {\r\n\t\t\tthis.addNewTask();\r\n\t\t})\r\n\r\n\t\tconst chart = this.children.push(XYChart.new(root, {}));\r\n\r\n\t\tchart.plotContainer.children.push(this.zoomControls);\r\n\t\tchart.zoomOutButton.set(\"forceHidden\", true);\r\n\r\n\t\tchart.children.push(this.controls);\r\n\r\n\t\tchart.set(\"cursor\", XYCursor.new(root, {\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis\r\n\t\t}));\r\n\r\n\t\tconst yRenderer = GanttCategoryAxisRenderer.new(root, {});\r\n\r\n\t\t// to prevent moving horizontally while dragging\r\n\t\tyRenderer.containers.template.adapters.add(\"x\", () => {\r\n\t\t\treturn 0;\r\n\t\t})\r\n\r\n\t\t// can't set fields in theme, as data is set before theme is applied\r\n\t\tconst yAxis = chart.yAxes.push(\r\n\t\t\tGanttCategoryAxis.new(root, {\r\n\t\t\t\tcategoryField: \"id\",\r\n\t\t\t\tcellSizeField: \"cellSize\",\r\n\t\t\t\tcollapsedField: \"collapsed\",\r\n\t\t\t\tparentIdField: \"parentId\",\r\n\t\t\t\tcolorField: \"color\",\r\n\t\t\t\tidField: \"id\",\r\n\t\t\t\tnameField: \"name\",\r\n\t\t\t\trenderer: yRenderer\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tyAxis.gantt = this;\r\n\r\n\t\t// update widht of scrollbar and controls container\r\n\t\tyAxis.events.on(\"boundschanged\", () => {\r\n\t\t\tthis._updateScrollbar();\r\n\t\t});\r\n\r\n\t\tchart.plotContainer.events.on(\"boundschanged\", () => {\r\n\t\t\tthis._updateScrollbar();\r\n\t\t});\r\n\r\n\t\tthis.on(\"visible\", () => {\r\n\t\t\tthis.root.events.once(\"frameended\", () => {\r\n\t\t\t\tthis._updateScrollbar();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// minor x axis\r\n\t\tconst ganttAxisRenderrerMinor = GanttDateAxisRenderer.new(root, { themeTags: [\"minor\"] });\r\n\r\n\t\t// so that grid would be hidden if axis range is added\r\n\t\tganttAxisRenderrerMinor.grid.template.adapters.add(\"forceHidden\", (forceHidden, target) => {\r\n\t\t\tconst dataItem = target.dataItem as DataItem<IGanttDateAxisDataItem>;\r\n\t\t\tif (dataItem && dataItem.get(\"active\")) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn forceHidden;\r\n\t\t})\r\n\r\n\t\tconst xAxisMinor = chart.xAxes.push(\r\n\t\t\tGanttDateAxis.new(root, {\r\n\t\t\t\tthemeTags: [\"minor\"],\r\n\t\t\t\tbaseInterval: { timeUnit: \"day\", count: 1 },\r\n\t\t\t\trenderer: ganttAxisRenderrerMinor,\r\n\t\t\t\tbackground: Rectangle.new(root, {\r\n\t\t\t\t\tfill: color(0xfff),\r\n\t\t\t\t\tfillOpacity: 0\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\txAxisMinor.gantt = this;\r\n\r\n\t\t// return default color for grid lines\r\n\t\txAxisMinor.events.on(\"pointerout\", () => {\r\n\t\t\tganttAxisRenderrerMinor.grid.each((grid) => {\r\n\t\t\t\tgrid.unhover();\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// add axis range on click\r\n\t\txAxisMinor.events.on(\"click\", () => {\r\n\t\t\tif (closestGrid) {\r\n\t\t\t\tconst dataItem = closestGrid.dataItem as DataItem<IGanttDateAxisDataItem>;\r\n\t\t\t\tif (dataItem) {\r\n\t\t\t\t\tconst value = dataItem.get(\"endValue\");\r\n\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\tlet found = false;\r\n\t\t\t\t\t\txAxisMinor.axisRanges.each((axisRange) => {\r\n\t\t\t\t\t\t\t// remove axis range if already exists\r\n\t\t\t\t\t\t\tif (axisRange.get(\"value\") === value) {\r\n\t\t\t\t\t\t\t\tthis.unmarkDate(value);\r\n\t\t\t\t\t\t\t\tfound = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t// add axis range if not exists\r\n\t\t\t\t\t\tif (!found) {\r\n\t\t\t\t\t\t\tdataItem.set(\"active\", true);\r\n\t\t\t\t\t\t\tthis.markDate(value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// find closest grid line on hover\r\n\t\tlet closestGrid: Grid | undefined;\r\n\t\txAxisMinor.events.on(\"globalpointermove\", (ev) => {\r\n\t\t\tif (xAxisMinor.isHover()) {\r\n\t\t\t\t// find most close grid line\r\n\t\t\t\tconst point = xAxisMinor.toLocal({ x: ev.point.x, y: ev.point.y });\r\n\t\t\t\tlet minX = Infinity;\r\n\t\t\t\tganttAxisRenderrerMinor.grid.each((grid) => {\r\n\t\t\t\t\tif (grid.isVisible()) {\r\n\t\t\t\t\t\tconst dataItem = grid.dataItem as DataItem<IGanttDateAxisDataItem>;\r\n\t\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\t\tif (!dataItem.get(\"isRange\")) {\r\n\t\t\t\t\t\t\t\tlet distance = Math.abs(grid.x() - point.x);\r\n\r\n\t\t\t\t\t\t\t\tif (!grid.get(\"active\")) {\r\n\t\t\t\t\t\t\t\t\tgrid.unhover();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (distance < minX) {\r\n\t\t\t\t\t\t\t\t\tminX = distance;\r\n\t\t\t\t\t\t\t\t\tclosestGrid = grid;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\tif (closestGrid) {\r\n\t\t\t\t\tclosestGrid.hover();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst ganttAxisRenderrer = GanttDateAxisRenderer.new(root, {});\r\n\t\tconst xAxis = chart.xAxes.push(\r\n\t\t\tGanttDateAxis.new(root, {\r\n\t\t\t\tbaseInterval: { timeUnit: \"day\", count: 1 },\r\n\t\t\t\trenderer: ganttAxisRenderrer,\r\n\t\t\t\ttooltip: Tooltip.new(root, {})\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\txAxis.gantt = this;\r\n\r\n\t\t// sync minor x axis with main x axis\r\n\t\txAxis.onPrivate(\"min\", (value) => {\r\n\t\t\txAxisMinor.setPrivate(\"min\", value);\r\n\t\t});\r\n\r\n\t\txAxis.onPrivate(\"max\", (value) => {\r\n\t\t\txAxisMinor.setPrivate(\"max\", value);\r\n\t\t});\r\n\r\n\t\t// sync minor x axis with main x axis\r\n\t\txAxis.on(\"start\", (value) => {\r\n\t\t\txAxisMinor.set(\"start\", value);\r\n\t\t});\r\n\r\n\t\txAxis.on(\"end\", (value) => {\r\n\t\t\txAxisMinor.set(\"end\", value);\r\n\t\t});\r\n\r\n\t\t// set min max if not set\r\n\t\tconst baseDuration = xAxis.baseDuration();\r\n\t\tif (xAxis.getPrivate(\"min\") === undefined) {\r\n\t\t\txAxis.setPrivate(\"min\", new Date().getTime());\r\n\t\t}\r\n\t\tif (xAxis.getPrivate(\"max\") === undefined) {\r\n\t\t\txAxis.setPrivate(\"max\", new Date().getTime() + baseDuration * 3);\r\n\t\t}\r\n\r\n\t\t// set grid interval\r\n\t\txAxis.onPrivate(\"gridInterval\", (value) => {\r\n\t\t\tconst gridIntervals = this.get(\"gridIntervals\");\r\n\t\t\tif (gridIntervals && gridIntervals[value.timeUnit]) {\r\n\t\t\t\txAxisMinor.set(\"gridIntervals\", gridIntervals[value.timeUnit]);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Add series\r\n\t\t// https://www.amcharts.com/docs/v5/charts/xy-chart/series/\r\n\t\tvar series = chart.series.push(GanttSeries.new(root, {\r\n\t\t\txAxis: xAxis,\r\n\t\t\tyAxis: yAxis,\r\n\t\t\tbaseAxis: yAxis,\r\n\t\t\topenValueXField: \"start\",\r\n\t\t\tvalueXField: \"end\",\r\n\t\t\tprogressField: \"progress\",\r\n\t\t\tdurationField: \"duration\",\r\n\t\t\tlinkToField: \"linkTo\",\r\n\t\t\tcategoryYField: \"id\",\r\n\t\t\tidField: \"id\"\r\n\t\t}));\r\n\r\n\t\tseries.gantt = this;\r\n\r\n\t\t// Add scrollbars\r\n\t\tthis.scrollbarX = chart.set(\"scrollbarX\", this.scrollbarX);\r\n\t\tthis.scrollbarY = chart.set(\"scrollbarY\", this.scrollbarY);\r\n\t\tthis.scrollbarY.startGrip.set(\"forceHidden\", true);\r\n\t\tthis.scrollbarY.endGrip.set(\"forceHidden\", true);\r\n\r\n\t\tthis.children.push(this.scrollbarX);\r\n\r\n\t\tthis.xyChart = chart;\r\n\t\tthis.series = series;\r\n\t\tthis.xAxis = xAxis;\r\n\t\tthis.yAxis = yAxis;\r\n\t\tthis.xAxisMinor = xAxisMinor;\r\n\r\n\t\tconst eventType = \"valueschanged\";\r\n\t\tthis.series.events.on(eventType, () => {\r\n\t\t\tif (this.get(\"editable\")) {\r\n\t\t\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\t\t\tthis.events.dispatch(eventType, { type: eventType, target: this });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// ad dbehavior to buttons\r\n\t\tthis.expandButton.events.on(\"click\", () => {\r\n\t\t\tthis.yAxis.expandAll();\r\n\t\t})\r\n\r\n\t\tthis.collapseButton.events.on(\"click\", () => {\r\n\t\t\tthis.yAxis.collapseAll();\r\n\t\t})\r\n\r\n\t\tthis.clearButton.events.on(\"confirmed\", () => {\r\n\t\t\tthis.clearAll();\r\n\t\t})\r\n\r\n\t\tthis.linkButton.on(\"active\", (active) => {\r\n\t\t\tthis.set(\"linkNewTasks\", active);\r\n\t\t})\r\n\r\n\t\tthis.colorPicker.on(\"color\", (c) => {\r\n\t\t\tthis.yAxis.setDataItemColor(this.yAxis.get(\"selectedDataItem\"), c);\r\n\t\t});\r\n\r\n\t\tthis.fitButton.events.on(\"click\", () => {\r\n\r\n\t\t\tlet min = series.getPrivate(\"selectionMinX\", 0);\r\n\t\t\tlet max = series.getPrivate(\"selectionMaxX\", 0);\r\n\t\t\tconst extraMin = xAxis.get(\"extraMin\", 0.1);\r\n\t\t\tconst extraMax = xAxis.get(\"extraMax\", 0.1);\r\n\r\n\t\t\txAxis.zoomToValues(min - (max - min) * extraMin, max + (max - min) * extraMax);\r\n\r\n\t\t\t/*\r\n\t\t\txAxis.setAll({\r\n\t\t\t\t\"strictMinMax\": false,\r\n\t\t\t\t\"strictMinMaxSelection\": false,\r\n\t\t\t\t\"autoZoom\": true,\r\n\t\t\t})\r\n\r\n\t\r\n\t\t\telse {\r\n\t\t\t\txAxis.setAll({\r\n\t\t\t\t\t\"strictMinMax\": true,\r\n\t\t\t\t\t\"strictMinMaxSelection\": true,\r\n\t\t\t\t\t\"autoZoom\": false\r\n\t\t\t\t})\r\n\r\n\t\t\t\txAxis.setPrivate(\"selectionMin\", undefined);\r\n\t\t\t\txAxis.setPrivate(\"selectionMax\", undefined);\r\n\t\t\t}*/\r\n\t\t});\r\n\r\n\t\tthis.zoomOutButton.events.on(\"click\", () => {\r\n\t\t\txAxis.zoom(0, 1);\r\n\t\t});\r\n\r\n\t\tlet license = false;\r\n\t\tfor (let i = 0; i < registry.licenses.length; i++) {\r\n\t\t\tif (registry.licenses[i].match(/^AM5G.{5,}/i)) {\r\n\t\t\t\tlicense = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!license) {\r\n\t\t\tthis._root._showBranding();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._root._licenseApplied();\r\n\t\t}\r\n\t}\r\n\t// end _afterNew()\r\n\r\n\tpublic _prepareChildren(): void {\r\n\t\tsuper._prepareChildren();\r\n\t\tif (this.isDirty(\"editable\")) {\r\n\t\t\tthis._toggleEditable(this.get(\"editable\", true));\r\n\t\t}\r\n\t}\r\n\r\n\tpublic clearAll() {\r\n\t\tthis.yAxis.deleteAll();\r\n\t\tthis._customColor = undefined;\r\n\t\tthis.get(\"colors\")?.reset();\r\n\t\tthis.colorPickerButton.set(\"color\", undefined);\r\n\t\tthis._nextColor();\r\n\r\n\t\tconst today = new Date();\r\n\t\ttoday.setHours(0, 0, 0, 0);\r\n\r\n\t\tthis.xAxis.setPrivate(\"min\", today.getTime());\r\n\t\tthis.xAxis.setPrivate(\"max\", today.getTime() + this.xAxis.baseDuration() * 5);\r\n\r\n\t\tfor (let i = this.xAxisMinor.axisRanges.length - 1; i >= 0; i--) {\r\n\t\t\tconst axisRange = this.xAxisMinor.axisRanges.getIndex(i);\r\n\t\t\tif (axisRange) {\r\n\t\t\t\tthis.unmarkDate(axisRange.get(\"value\") as number);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tif (this.isDirty(\"linkNewTasks\")) {\r\n\t\t\tthis.linkButton.set(\"active\", this.get(\"linkNewTasks\", false));\r\n\t\t}\r\n\r\n\t\tif (this._sizeDirty || this.isDirty(\"sidebarWidth\")) {\r\n\t\t\tlet width = $utils.relativeToValue(this.get(\"sidebarWidth\", percent(20)), this.innerWidth());\r\n\t\t\twidth = Math.max(width, this.yAxis.get(\"minWidth\", 100));\r\n\t\t\tthis.yAxis.labelsContainer.set(\"width\", width);\r\n\t\t\tthis._updateScrollbar();\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"durationUnit\")) {\r\n\t\t\tconst durationUnit = this.get(\"durationUnit\");\r\n\t\t\tif (durationUnit) {\r\n\t\t\t\tthis.xAxis.set(\"baseInterval\", { timeUnit: durationUnit, count: 1 });\r\n\t\t\t\tthis.xAxisMinor.set(\"baseInterval\", { timeUnit: durationUnit, count: 1 });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.colorPickerButton.getPrivate(\"color\") === undefined) {\r\n\t\t\tthis._nextColor();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _updateScrollbar() {\r\n\t\tconst point = this.xyChart.plotContainer.toGlobal({ x: 0, y: 0 });\r\n\t\tthis.scrollbarX.setAll({\r\n\t\t\tx: point.x,\r\n\t\t\twidth: this.xyChart.plotContainer.width()\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a new task to the Gantt chart.\r\n\t * \r\n\t * @param category The category name for the task. If not provided, will be auto-generated.\r\n\t * @param start The start time of the task in milliseconds. If not provided, will be determined based on context.\r\n\t * @param duration The duration of the task. If not provided, defaults to 1.\r\n\t * @param parentId The parent category if this is a subtask.\r\n\t * @param progress The initial progress of the task (0-1). Defaults to 0.\r\n\t * @param linkToPrevious Should the task automatically link to the previous one?\r\n\t */\r\n\tpublic addNewTask(name?: string, start?: number, duration: number = 1, parentId?: string, progress: number = 0, linkToPrevious?: boolean) {\r\n\t\t// Generate a unique ID for the new task\r\n\t\tlet len = this.series.dataItems.length;\r\n\t\tlet c = this.yAxis.dataItems.length;\r\n\r\n\t\t$array.each(this.yAxis.dataItems, (dataItem) => {\r\n\t\t\tif (dataItem.get(\"id\") == \"gantt_\" + c) {\r\n\t\t\t\tc++;\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tconst uid = \"gantt_\" + c;\r\n\r\n\t\tif (!name) {\r\n\t\t\tname = \"New Task\";\r\n\t\t}\r\n\r\n\t\tif (linkToPrevious === undefined) {\r\n\t\t\tlinkToPrevious = this.get(\"linkNewTasks\", false);\r\n\t\t}\r\n\r\n\t\tlet parentDataItem: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\t\t// Find parent data item either by specified category or selected item\r\n\t\tif (parentId != undefined) {\r\n\t\t\tparentDataItem = this.yAxis.getDataItemById(parentId);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tparentDataItem = this.yAxis.get(\"selectedDataItem\");\r\n\t\t}\r\n\r\n\t\tlet childCount = 0;\r\n\t\t// Handle parent-child relationship if a parent exists\r\n\t\tif (parentDataItem) {\r\n\t\t\tparentId = parentDataItem.get(\"id\");\r\n\t\t\tif (parentId) {\r\n\t\t\t\t// If start time not specified, try to use parent's start time\r\n\t\t\t\tif (start === undefined) {\r\n\t\t\t\t\tconst seriesDataItem = this.series.getDataItemById(parentId);\r\n\t\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\t\tstart = seriesDataItem.get(\"valueX\", new Date().getTime());\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Initialize or get the children array for the parent\r\n\t\t\tlet children = parentDataItem.get(\"children\");\r\n\t\t\tif (!children) {\r\n\t\t\t\tchildren = parentDataItem.set(\"children\", []);\r\n\t\t\t}\r\n\t\t\tchildCount = children.length;\r\n\t\t}\r\n\r\n\t\t// Determine start time if not specified\r\n\t\tif (start === undefined) {\r\n\t\t\tstart = $time.roun(this.xAxis.getPrivate(\"min\", 0), this.get(\"durationUnit\", \"day\"), 1, this.root);\r\n\r\n\t\t\tif (this.series.dataItems.length > 0) {\r\n\t\t\t\tstart = this.series.dataItems[len - 1].get(\"valueX\", new Date().getTime());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dataObject: any = {\r\n\t\t\tname: name,\r\n\t\t\tid: uid\r\n\t\t}\r\n\t\tif (parentId) {\r\n\t\t\tdataObject[\"parentId\"] = parentId;\r\n\t\t}\r\n\t\t// Add the category data\r\n\t\tlet index = 0;\r\n\t\tlet previousDataItem: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\t\tif (parentDataItem) {\r\n\t\t\tindex = this.yAxis.dataItems.indexOf(parentDataItem) + 1 + childCount;\r\n\t\t\tconst children = parentDataItem.get(\"children\", []);\r\n\t\t\tlet len = this.yAxis.dataItems.length;\r\n\t\t\tif (index >= len) {\r\n\t\t\t\tif (children.length > 0) {\r\n\t\t\t\t\tpreviousDataItem = children[children.length - 1];\r\n\t\t\t\t}\r\n\t\t\t\tthis.yAxis.data.push(dataObject);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (children.length > 0) {\r\n\t\t\t\t\tpreviousDataItem = this.yAxis.dataItems[index - 1];\r\n\t\t\t\t}\r\n\t\t\t\tthis.yAxis.data.insertIndex(index, dataObject);\r\n\t\t\t}\r\n\t\t\tindex++;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// go backwards and find the first item that has no parent\r\n\t\t\tfor (let i = this.yAxis.dataItems.length - 1; i >= 0; i--) {\r\n\t\t\t\tconst dataItem = this.yAxis.dataItems[i];\r\n\t\t\t\tif (!dataItem.get(\"parentId\")) {\r\n\t\t\t\t\tpreviousDataItem = dataItem;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.yAxis.data.push(dataObject);\r\n\t\t\tindex = this.yAxis.dataItems.length;\r\n\t\t}\r\n\r\n\t\t// Add the task data with slightly offset start time to avoid overlapping\r\n\t\tconst baseDuration = this.xAxis.baseDuration();\r\n\r\n\t\tconst seriesDataObject: any = {\r\n\t\t\tstart: start,\r\n\t\t\tend: start + 1,\r\n\t\t\tduration: duration,\r\n\t\t\tprogress: progress,\r\n\t\t\tid: uid,\r\n\t\t\tname: name\r\n\t\t}\r\n\r\n\t\t// create link to previous task if needed\r\n\t\tif (linkToPrevious && previousDataItem) {\r\n\t\t\tconst seriesDataItem = this.series.getDataItemById(previousDataItem.get(\"id\")!);\r\n\r\n\t\t\tif (seriesDataItem) {\r\n\t\t\t\tconst linkTo: Array<string> = seriesDataItem.get(\"linkTo\", []);\r\n\r\n\t\t\t\tif (!linkTo.includes(uid)) {\r\n\t\t\t\t\tlinkTo.push(uid);\r\n\t\t\t\t\tseriesDataItem.set(\"linkTo\", linkTo);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.series.data.moveValue(seriesDataObject, index - 1);\r\n\r\n\t\tconst newSeriesDataItem = this.series.dataItems[index - 1];\r\n\t\tnewSeriesDataItem.animate({ key: \"valueX\", to: start + baseDuration * duration, duration: this.series.get(\"interpolationDuration\", 0), easing: this.series.get(\"interpolationEasing\") });\r\n\r\n\t\tthis.yAxis._disposeXHideDP();\r\n\t\tthis.yAxis.xButton.hide(0);\r\n\r\n\t\tconst maxZoomCount = this.yAxis.get(\"maxZoomCount\", 20);\r\n\t\tlet startIndex = Math.max(0, Math.round(index - maxZoomCount / 2));\r\n\t\tlet endIndex = startIndex + maxZoomCount;\r\n\r\n\t\tlen = this.yAxis.dataItems.length;\r\n\t\tif (endIndex > len) {\r\n\t\t\tendIndex = len;\r\n\t\t\tstartIndex = Math.max(0, endIndex - maxZoomCount);\r\n\t\t}\r\n\r\n\t\tthis.yAxis.zoomToIndexes(startIndex, endIndex);\r\n\t\tthis.yAxis.adjustZoom();\r\n\t}\r\n\r\n\r\n\t// Get next color from the color set\r\n\tpublic _nextColor(): Color | undefined {\r\n\t\tif (this._customColor) {\r\n\t\t\treturn this._customColor;\r\n\t\t}\r\n\t\tconst fill = this.get(\"colors\")?.next();\r\n\t\tthis.colorPickerButton.setPrivate(\"color\", fill);\r\n\r\n\t\treturn fill;\r\n\t}\r\n\r\n\t/**\r\n\t * Marks a date on the minor date axis.\r\n\t * \r\n\t * @param date Date to be marked\r\n\t */\r\n\tpublic markDate(date: number) {\r\n\r\n\t\tconst xAxisMinor = this.xAxisMinor;\r\n\t\tconst dataItem = xAxisMinor.createAxisRange(xAxisMinor.makeDataItem({\r\n\t\t\tvalue: date\r\n\t\t}))\r\n\r\n\t\tconst eventType = \"datemarked\";\r\n\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\tthis.events.dispatch(eventType, { type: eventType, target: this, dataItem: dataItem, date: date });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Unmarks a date on the minor date axis.\r\n\t * \r\n\t * @param date Date to be unmarked\r\n\t */\r\n\tpublic unmarkDate(date: number) {\r\n\t\tconst xAxisMinor = this.xAxisMinor;\r\n\t\tlet dataItem = undefined;\r\n\t\txAxisMinor.axisRanges.each((axisRange) => {\r\n\t\t\t// remove axis range if already exists\r\n\t\t\tif (axisRange && axisRange.get(\"value\") === date) {\r\n\t\t\t\txAxisMinor.axisRanges.removeValue(axisRange);\r\n\t\t\t\tdataItem = axisRange;\r\n\t\t\t}\r\n\t\t})\r\n\t\tconst eventType = \"dateunmarked\";\r\n\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\tthis.events.dispatch(eventType, { type: eventType, target: this, dataItem: dataItem, date: date });\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _toggleEditable(value: boolean) {\r\n\t\tconst forceHidden = \"forceHidden\";\r\n\t\tconst forceInactive = \"forceInactive\";\r\n\t\tconst draggable = \"draggable\";\r\n\r\n\t\tthis.addButton.set(forceHidden, !value);\r\n\t\tthis.colorPickerButton.set(forceHidden, !value);\r\n\t\tthis.clearButton.set(forceHidden, !value);\r\n\t\tthis.linkButton.set(forceHidden, !value);\r\n\r\n\t\tconst renderer = this.yAxis.get(\"renderer\");\r\n\t\trenderer.labels.template.set(forceInactive, !value);\r\n\r\n\t\trenderer.grips.template.set(forceHidden, !value);\r\n\t\trenderer.containers.template.set(draggable, value);\r\n\r\n\t\trenderer.controlsContainers.template.set(forceInactive, !value);\r\n\r\n\t\tthis.series.columns.template.set(draggable, value);\r\n\t\tthis.series.startGrips.template.set(forceHidden, !value);\r\n\t\tthis.series.endGrips.template.set(forceHidden, !value);\r\n\t\tthis.series.progressGrips.template.set(forceHidden, !value);\r\n\r\n\t\tthis.series.startBullets.template.set(forceHidden, !value);\r\n\t\tthis.series.endBullets.template.set(forceHidden, !value);\r\n\r\n\t\tthis.xAxisMinor.set(forceInactive, !value);\r\n\t}\r\n}"]}
1
+ {"version":3,"file":"Gantt.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/Gantt.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ITimeInterval } from \"../../core/util/Time\";\r\nimport type { Grid } from \"../xy/axes/Grid\";\r\n\r\nimport { Button } from \"../../core/render/Button\";\r\nimport { ConfirmButton } from \"../../core/render/ConfirmButton\";\r\nimport { Graphics } from \"../../core/render/Graphics\";\r\nimport { Percent, percent } from \"../../core/util/Percent\";\r\nimport { GanttDateAxis, IGanttDateAxisDataItem } from \"./GanttDateAxis\";\r\nimport { XYChart } from \"../xy/XYChart\";\r\nimport { GanttDefaultTheme } from \"./GanttDefaultTheme\";\r\nimport { GanttSeries } from \"./GanttSeries\";\r\nimport { color, Color, ColorSet, Container, DataItem, IContainerEvents, IContainerPrivate, IContainerSettings, Rectangle, Scrollbar, Tooltip } from \"../../..\";\r\nimport { GanttCategoryAxis, IGanttCategoryAxisDataItem } from \"./GanttCategoryAxis\";\r\nimport { GanttCategoryAxisRenderer } from \"./GanttCategoryAxisRenderer\";\r\nimport { GanttDateAxisRenderer } from \"./GanttDateAxisRenderer\";\r\nimport { XYCursor } from \"../xy/XYCursor\";\r\nimport { ColorPicker } from \"../../plugins/colorPicker/ColorPicker\";\r\nimport { ColorPickerButton } from \"../../plugins/colorPicker/ColorPickerButton\";\r\nimport { registry } from \"../../core/Registry\";\r\n\r\nimport * as $utils from \"../../core/util/Utils\";\r\nimport * as $array from \"../../core/util/Array\";\r\nimport * as $time from \"../../core/util/Time\";\r\n\r\nexport interface IGanttSettings extends IContainerSettings {\r\n\r\n\t/**\r\n\t * If set to `true`, the user will be able to edit the chart via UI.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\teditable?: boolean;\r\n\r\n\t/**\r\n\t * A unit to be used for when calculating \"duration\" of Gantt items.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Duration_units} for more information\r\n\t * @default \"day\"\r\n\t */\r\n\tdurationUnit?: \"year\" | \"month\" | \"week\" | \"day\" | \"hour\" | \"minute\" | \"second\";\r\n\r\n\t/**\r\n\t * An array of weekend days, e.g. `[0, 6]` for Sunday and Saturday.\r\n\t *\r\n\t * @default [0, 6]\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Weekends_and_holidays} for more information\r\n\t */\r\n\tweekends?: Array<number>;\r\n\r\n\t/**\r\n\t * An array of dates to treat as a holiday.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Weekends_and_holidays} for more information\r\n\t */\r\n\tholidays?: Array<Date>;\r\n\r\n\t/**\r\n\t * If set to `true`, weekends will be excluded from the chart.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Weekends_and_holidays} for more information\r\n\t */\r\n\texcludeWeekends?: boolean;\r\n\r\n\t/**\r\n\t * An absolute or relative width of the left-side category column.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Category_axis_width} for more information\r\n\t * @default 30%\r\n\t */\r\n\tsidebarWidth?: number | Percent;\r\n\r\n\t/**\r\n\t * A relative vertical cell position to treat as the threshold for snapping\r\n\t * bars.\r\n\t *\r\n\t * Available range of values: `0` (left) to `1` (right).\r\n\t *\r\n\t * This will be used when resizing or dragging a bar. If the position is\r\n\t * bigger than `snapThreshold` the bar will snap to the right, if it is\r\n\t * smaller than `snapThreshold`, it will snap to the left.\r\n\t * \r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Snapping_behavior} for more information\r\n\t * @default 0.5\r\n\t */\r\n\tsnapThreshold?: number;\r\n\r\n\t/**\r\n\t * A [[ColorSet]] to use when asigning colors for series.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/series/#Series_colors} for more info\r\n\t */\r\n\tcolors?: ColorSet;\r\n\r\n\t/**\r\n\t * Grid intervals.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/#Timeline_horizontal_axis} for more info\r\n\t */\r\n\tgridIntervals?: { [index: string]: Array<ITimeInterval> };\r\n\r\n\t/**\r\n\t * If this is set to `true`, when a new task is added, it will be automatically linked to the previous task.\r\n\t * \r\n\t * @default true\r\n\t */\r\n\tlinkNewTasks?: boolean;\r\n}\r\n\r\nexport interface IGanttPrivate extends IContainerPrivate { }\r\n\r\nexport interface IGanttEvents extends IContainerEvents {\r\n\tdatemarked: { date: number | undefined, dataItem: DataItem<IGanttDateAxisDataItem> };\r\n\tdateunmarked: { date: number | undefined, dataItem?: DataItem<IGanttDateAxisDataItem> };\r\n\tvalueschanged: {};\r\n}\r\n\r\n/**\r\n * Creates a [[Gantt]] chart.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/gantt/} for more info\r\n * @important\r\n * @since 5.14.0\r\n */\r\nexport class Gantt extends Container {\r\n\tdeclare public _settings: IGanttSettings;\r\n\tdeclare public _privateSettings: IGanttPrivate;\r\n\tdeclare public _events: IGanttEvents;\r\n\tpublic static className: string = \"Gantt\";\r\n\tpublic static classNames: Array<string> = Container.classNames.concat([Gantt.className]);\r\n\r\n\t/**\r\n\t * A scrollbar for horizontal scrolling.\r\n\t */\r\n\tpublic scrollbarX: Scrollbar = Scrollbar.new(this._root, {\r\n\t\torientation: \"horizontal\"\r\n\t});\r\n\r\n\t/**\r\n\t * A scrollbar for vertical scrolling.\r\n\t */\r\n\tpublic scrollbarY: Scrollbar = Scrollbar.new(this._root, {\r\n\t\torientation: \"vertical\"\r\n\t});\r\n\r\n\t/**\r\n\t * A reference to the [[XYChart]] that holds the Gantt chart.\r\n\t */\r\n\tpublic xyChart!: XYChart;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttSeries]] that shows the Gantt tasks bars.\r\n\t */\r\n\tpublic series!: GanttSeries;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttDateAxis]] used as the main X-axis.\r\n\t */\r\n\tpublic xAxis!: GanttDateAxis<GanttDateAxisRenderer>;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttDateAxis]] used as the secondary X-axis.\r\n\t */\r\n\tpublic xAxisMinor!: GanttDateAxis<GanttDateAxisRenderer>;\r\n\r\n\t/**\r\n\t * A reference to the [[GanttCategoryAxis]] used as the Y-axis.\r\n\t */\r\n\tpublic yAxis!: GanttCategoryAxis<GanttCategoryAxisRenderer>;\r\n\r\n\t/**\r\n\t * Controls (add, color picker, expand, collaps, clear buttons) container.\r\n\t */\r\n\tpublic controls: Container = Container.new(this._root, {\r\n\t\tthemeTags: [\"controls\"],\r\n\t\tlayout: this._root.horizontalLayout,\r\n\t})\r\n\r\n\tpublic zoomControls: Container = Container.new(this._root, {\r\n\t\tthemeTagsSelf: [\"zoomcontrols\"]\r\n\t});\r\n\r\n\t/**\r\n\t * The [[Button]] element to add new tasks.\r\n\t */\r\n\tpublic readonly addButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"add\", \"plus\"],\r\n\t\ttooltip: this.root.systemTooltip,\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] })\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[ColorPickerButton]] element to select colors for tasks.\r\n\t */\r\n\tpublic readonly colorPickerButton: ColorPickerButton = this.controls.children.push(ColorPickerButton.new(this._root, {\r\n\t\tdisableOpacity: true,\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] elements to expand and collapse all tasks.\r\n\t */\r\n\tpublic readonly expandButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"expand\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] elements to collapse all tasks.\r\n\t */\r\n\tpublic readonly collapseButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"collapse\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to toggle `linkNewTasks` setting.\r\n\t */\r\n\tpublic readonly linkButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"link\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to horizontally fit visible tasks into a view.\r\n\t */\r\n\tpublic readonly fitButton: Button = this.zoomControls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"fit\", \"secondary\", \"zoombutton\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to zoom out the X axis.\r\n\t */\r\n\tpublic readonly zoomOutButton: Button = this.zoomControls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"zoomout\", \"secondary\", \"zoombutton\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to toggle edit mode.\r\n\t *\r\n\t * @since 5.14.1\r\n\t */\r\n\tpublic readonly editButton: Button = this.controls.children.push(Button.new(this._root, {\r\n\t\tthemeTags: [\"edit\", \"secondary\", \"fixedwidth\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[Button]] element to clear all tasks.\r\n\t */\r\n\tpublic readonly clearButton: ConfirmButton = this.controls.children.push(ConfirmButton.new(this._root, {\r\n\t\tthemeTags: [\"clear\", \"secondary\", \"confirm\"],\r\n\t\ticon: Graphics.new(this._root, { themeTags: [\"icon\"] }),\r\n\t\ttooltip: this.root.systemTooltip,\r\n\t\tactive: false\r\n\t}));\r\n\r\n\t/**\r\n\t * The [[ColorPicker]] element to select colors for tasks.\r\n\t */\r\n\tpublic readonly colorPicker: ColorPicker = this.children.push(ColorPicker.new(this._root, { visible: false }));\r\n\r\n\tprotected _customColor: Color | undefined;\r\n\r\n\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis.addTag(\"gantt\");\r\n\t\tthis._defaultThemes.push(GanttDefaultTheme.new(this._root));\r\n\r\n\t\tsuper._afterNew();\r\n\r\n\t\tconst root = this._root;\r\n\r\n\t\tthis.colorPickerButton.events.on(\"click\", () => {\r\n\t\t\tthis.yAxis.xButton.hide(0);\r\n\t\t\tthis.colorPicker.setAll({\r\n\t\t\t\tcolorButton: this.colorPickerButton\r\n\t\t\t})\r\n\t\t\tthis.children.moveValue(this.colorPicker, this.children.length - 1);\r\n\t\t\tthis.yAxis._disposeXHideDP();\r\n\t\t})\r\n\r\n\t\tthis.colorPicker.events.on(\"colorchanged\", () => {\r\n\t\t\tthis._customColor = this.colorPicker.get(\"color\");\r\n\t\t\tthis.yAxis.unselectDataItems();\r\n\t\t});\r\n\r\n\t\tthis.addButton.events.on(\"click\", () => {\r\n\t\t\tthis.addNewTask();\r\n\t\t})\r\n\r\n\t\tconst chart = this.children.push(XYChart.new(root, {}));\r\n\r\n\t\tchart.plotContainer.children.push(this.zoomControls);\r\n\t\tchart.zoomOutButton.set(\"forceHidden\", true);\r\n\r\n\t\tchart.children.push(this.controls);\r\n\r\n\t\tchart.set(\"cursor\", XYCursor.new(root, {\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis\r\n\t\t}));\r\n\r\n\t\tconst yRenderer = GanttCategoryAxisRenderer.new(root, {});\r\n\r\n\t\t// to prevent moving horizontally while dragging\r\n\t\tyRenderer.containers.template.adapters.add(\"x\", () => {\r\n\t\t\treturn 0;\r\n\t\t})\r\n\r\n\t\t// can't set fields in theme, as data is set before theme is applied\r\n\t\tconst yAxis = chart.yAxes.push(\r\n\t\t\tGanttCategoryAxis.new(root, {\r\n\t\t\t\tcategoryField: \"id\",\r\n\t\t\t\tcellSizeField: \"cellSize\",\r\n\t\t\t\tcollapsedField: \"collapsed\",\r\n\t\t\t\tparentIdField: \"parentId\",\r\n\t\t\t\tcolorField: \"color\",\r\n\t\t\t\tidField: \"id\",\r\n\t\t\t\tnameField: \"name\",\r\n\t\t\t\trenderer: yRenderer\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tyAxis.gantt = this;\r\n\r\n\t\t// update widht of scrollbar and controls container\r\n\t\tyAxis.events.on(\"boundschanged\", () => {\r\n\t\t\tthis._updateScrollbar();\r\n\t\t});\r\n\r\n\t\tchart.plotContainer.events.on(\"boundschanged\", () => {\r\n\t\t\tthis._updateScrollbar();\r\n\t\t});\r\n\r\n\t\tthis.on(\"visible\", () => {\r\n\t\t\tthis.root.events.once(\"frameended\", () => {\r\n\t\t\t\tthis._updateScrollbar();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// minor x axis\r\n\t\tconst ganttAxisRenderrerMinor = GanttDateAxisRenderer.new(root, { themeTags: [\"minor\"] });\r\n\r\n\t\t// so that grid would be hidden if axis range is added\r\n\t\tganttAxisRenderrerMinor.grid.template.adapters.add(\"forceHidden\", (forceHidden, target) => {\r\n\t\t\tconst dataItem = target.dataItem as DataItem<IGanttDateAxisDataItem>;\r\n\t\t\tif (dataItem && dataItem.get(\"active\")) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn forceHidden;\r\n\t\t})\r\n\r\n\t\tconst xAxisMinor = chart.xAxes.push(\r\n\t\t\tGanttDateAxis.new(root, {\r\n\t\t\t\tthemeTags: [\"minor\"],\r\n\t\t\t\tbaseInterval: { timeUnit: \"day\", count: 1 },\r\n\t\t\t\trenderer: ganttAxisRenderrerMinor,\r\n\t\t\t\tbackground: Rectangle.new(root, {\r\n\t\t\t\t\tfill: color(0xfff),\r\n\t\t\t\t\tfillOpacity: 0\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\txAxisMinor.gantt = this;\r\n\r\n\t\t// return default color for grid lines\r\n\t\txAxisMinor.events.on(\"pointerout\", () => {\r\n\t\t\tganttAxisRenderrerMinor.grid.each((grid) => {\r\n\t\t\t\tgrid.unhover();\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// add axis range on click\r\n\t\txAxisMinor.events.on(\"click\", () => {\r\n\t\t\tif (closestGrid) {\r\n\t\t\t\tconst dataItem = closestGrid.dataItem as DataItem<IGanttDateAxisDataItem>;\r\n\t\t\t\tif (dataItem) {\r\n\t\t\t\t\tconst value = dataItem.get(\"endValue\");\r\n\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\tlet found = false;\r\n\t\t\t\t\t\txAxisMinor.axisRanges.each((axisRange) => {\r\n\t\t\t\t\t\t\t// remove axis range if already exists\r\n\t\t\t\t\t\t\tif (axisRange.get(\"value\") === value) {\r\n\t\t\t\t\t\t\t\tthis.unmarkDate(value);\r\n\t\t\t\t\t\t\t\tfound = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t// add axis range if not exists\r\n\t\t\t\t\t\tif (!found) {\r\n\t\t\t\t\t\t\tdataItem.set(\"active\", true);\r\n\t\t\t\t\t\t\tthis.markDate(value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// find closest grid line on hover\r\n\t\tlet closestGrid: Grid | undefined;\r\n\t\txAxisMinor.events.on(\"globalpointermove\", (ev) => {\r\n\t\t\tif (xAxisMinor.isHover()) {\r\n\t\t\t\t// find most close grid line\r\n\t\t\t\tconst point = xAxisMinor.toLocal({ x: ev.point.x, y: ev.point.y });\r\n\t\t\t\tlet minX = Infinity;\r\n\t\t\t\tganttAxisRenderrerMinor.grid.each((grid) => {\r\n\t\t\t\t\tif (grid.isVisible()) {\r\n\t\t\t\t\t\tconst dataItem = grid.dataItem as DataItem<IGanttDateAxisDataItem>;\r\n\t\t\t\t\t\tif (dataItem) {\r\n\t\t\t\t\t\t\tif (!dataItem.get(\"isRange\")) {\r\n\t\t\t\t\t\t\t\tlet distance = Math.abs(grid.x() - point.x);\r\n\r\n\t\t\t\t\t\t\t\tif (!grid.get(\"active\")) {\r\n\t\t\t\t\t\t\t\t\tgrid.unhover();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (distance < minX) {\r\n\t\t\t\t\t\t\t\t\tminX = distance;\r\n\t\t\t\t\t\t\t\t\tclosestGrid = grid;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\tif (closestGrid) {\r\n\t\t\t\t\tclosestGrid.hover();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst ganttAxisRenderrer = GanttDateAxisRenderer.new(root, {});\r\n\t\tconst xAxis = chart.xAxes.push(\r\n\t\t\tGanttDateAxis.new(root, {\r\n\t\t\t\tbaseInterval: { timeUnit: \"day\", count: 1 },\r\n\t\t\t\trenderer: ganttAxisRenderrer,\r\n\t\t\t\ttooltip: Tooltip.new(root, {})\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\txAxis.gantt = this;\r\n\r\n\t\t// sync minor x axis with main x axis\r\n\t\txAxis.onPrivate(\"min\", (value) => {\r\n\t\t\txAxisMinor.setPrivate(\"min\", value);\r\n\t\t});\r\n\r\n\t\txAxis.onPrivate(\"max\", (value) => {\r\n\t\t\txAxisMinor.setPrivate(\"max\", value);\r\n\t\t});\r\n\r\n\t\t// sync minor x axis with main x axis\r\n\t\txAxis.on(\"start\", (value) => {\r\n\t\t\txAxisMinor.set(\"start\", value);\r\n\t\t});\r\n\r\n\t\txAxis.on(\"end\", (value) => {\r\n\t\t\txAxisMinor.set(\"end\", value);\r\n\t\t});\r\n\r\n\t\t// set min max if not set\r\n\t\tconst baseDuration = xAxis.baseDuration();\r\n\t\tif (xAxis.getPrivate(\"min\") === undefined) {\r\n\t\t\txAxis.setPrivate(\"min\", new Date().getTime());\r\n\t\t}\r\n\t\tif (xAxis.getPrivate(\"max\") === undefined) {\r\n\t\t\txAxis.setPrivate(\"max\", new Date().getTime() + baseDuration * 3);\r\n\t\t}\r\n\r\n\t\t// set grid interval\r\n\t\txAxis.onPrivate(\"gridInterval\", (value) => {\r\n\t\t\tconst gridIntervals = this.get(\"gridIntervals\");\r\n\t\t\tif (gridIntervals && gridIntervals[value.timeUnit]) {\r\n\t\t\t\txAxisMinor.set(\"gridIntervals\", gridIntervals[value.timeUnit]);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Add series\r\n\t\t// https://www.amcharts.com/docs/v5/charts/xy-chart/series/\r\n\t\tvar series = chart.series.push(GanttSeries.new(root, {\r\n\t\t\txAxis: xAxis,\r\n\t\t\tyAxis: yAxis,\r\n\t\t\tbaseAxis: yAxis,\r\n\t\t\topenValueXField: \"start\",\r\n\t\t\tvalueXField: \"end\",\r\n\t\t\tprogressField: \"progress\",\r\n\t\t\tdurationField: \"duration\",\r\n\t\t\tlinkToField: \"linkTo\",\r\n\t\t\tcategoryYField: \"id\",\r\n\t\t\tidField: \"id\"\r\n\t\t}));\r\n\r\n\t\tseries.gantt = this;\r\n\r\n\t\t// Add scrollbars\r\n\t\tthis.scrollbarX = chart.set(\"scrollbarX\", this.scrollbarX);\r\n\t\tthis.scrollbarY = chart.set(\"scrollbarY\", this.scrollbarY);\r\n\t\tthis.scrollbarY.startGrip.set(\"forceHidden\", true);\r\n\t\tthis.scrollbarY.endGrip.set(\"forceHidden\", true);\r\n\r\n\t\tthis.children.push(this.scrollbarX);\r\n\r\n\t\tthis.xyChart = chart;\r\n\t\tthis.series = series;\r\n\t\tthis.xAxis = xAxis;\r\n\t\tthis.yAxis = yAxis;\r\n\t\tthis.xAxisMinor = xAxisMinor;\r\n\r\n\t\tconst eventType = \"valueschanged\";\r\n\t\tthis.series.events.on(eventType, () => {\r\n\t\t\tif (this.get(\"editable\")) {\r\n\t\t\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\t\t\tthis.events.dispatch(eventType, { type: eventType, target: this });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// ad dbehavior to buttons\r\n\t\tthis.expandButton.events.on(\"click\", () => {\r\n\t\t\tthis.yAxis.expandAll();\r\n\t\t})\r\n\r\n\t\tthis.collapseButton.events.on(\"click\", () => {\r\n\t\t\tthis.yAxis.collapseAll();\r\n\t\t})\r\n\r\n\t\tthis.clearButton.events.on(\"confirmed\", () => {\r\n\t\t\tthis.clearAll();\r\n\t\t})\r\n\r\n\t\tthis.linkButton.on(\"active\", (active) => {\r\n\t\t\tthis.set(\"linkNewTasks\", active);\r\n\t\t})\r\n\r\n\t\tthis.colorPicker.on(\"color\", (c) => {\r\n\t\t\tthis.yAxis.setDataItemColor(this.yAxis.get(\"selectedDataItem\"), c);\r\n\t\t});\r\n\r\n\t\tthis.editButton.on(\"active\", (active) => {\r\n\t\t\tthis.set(\"editable\", active);\r\n\t\t});\r\n\r\n\t\tthis.fitButton.events.on(\"click\", () => {\r\n\r\n\t\t\tlet min = series.getPrivate(\"selectionMinX\", 0);\r\n\t\t\tlet max = series.getPrivate(\"selectionMaxX\", 0);\r\n\t\t\tconst extraMin = xAxis.get(\"extraMin\", 0.1);\r\n\t\t\tconst extraMax = xAxis.get(\"extraMax\", 0.1);\r\n\r\n\t\t\txAxis.zoomToValues(min - (max - min) * extraMin, max + (max - min) * extraMax);\r\n\r\n\t\t\t/*\r\n\t\t\txAxis.setAll({\r\n\t\t\t\t\"strictMinMax\": false,\r\n\t\t\t\t\"strictMinMaxSelection\": false,\r\n\t\t\t\t\"autoZoom\": true,\r\n\t\t\t})\r\n\r\n\t\r\n\t\t\telse {\r\n\t\t\t\txAxis.setAll({\r\n\t\t\t\t\t\"strictMinMax\": true,\r\n\t\t\t\t\t\"strictMinMaxSelection\": true,\r\n\t\t\t\t\t\"autoZoom\": false\r\n\t\t\t\t})\r\n\r\n\t\t\t\txAxis.setPrivate(\"selectionMin\", undefined);\r\n\t\t\t\txAxis.setPrivate(\"selectionMax\", undefined);\r\n\t\t\t}*/\r\n\t\t});\r\n\r\n\t\tthis.zoomOutButton.events.on(\"click\", () => {\r\n\t\t\txAxis.zoom(0, 1);\r\n\t\t});\r\n\r\n\t\tlet license = false;\r\n\t\tfor (let i = 0; i < registry.licenses.length; i++) {\r\n\t\t\tif (registry.licenses[i].match(/^AM5G.{5,}/i)) {\r\n\t\t\t\tlicense = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!license) {\r\n\t\t\tthis._root._showBranding();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._root._licenseApplied();\r\n\t\t}\r\n\t}\r\n\t// end _afterNew()\r\n\r\n\tpublic _prepareChildren(): void {\r\n\t\tsuper._prepareChildren();\r\n\t\tif (this.isDirty(\"editable\")) {\r\n\t\t\tthis._toggleEditable(this.get(\"editable\", true));\r\n\t\t}\r\n\t}\r\n\r\n\tpublic clearAll() {\r\n\t\tthis.yAxis.deleteAll();\r\n\t\tthis._customColor = undefined;\r\n\t\tthis.get(\"colors\")?.reset();\r\n\t\tthis.colorPickerButton.set(\"color\", undefined);\r\n\t\tthis._nextColor();\r\n\r\n\t\tconst today = new Date();\r\n\t\ttoday.setHours(0, 0, 0, 0);\r\n\r\n\t\tthis.xAxis.setPrivate(\"min\", today.getTime());\r\n\t\tthis.xAxis.setPrivate(\"max\", today.getTime() + this.xAxis.baseDuration() * 5);\r\n\r\n\t\tfor (let i = this.xAxisMinor.axisRanges.length - 1; i >= 0; i--) {\r\n\t\t\tconst axisRange = this.xAxisMinor.axisRanges.getIndex(i);\r\n\t\t\tif (axisRange) {\r\n\t\t\t\tthis.unmarkDate(axisRange.get(\"value\") as number);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tif (this.isDirty(\"linkNewTasks\")) {\r\n\t\t\tthis.linkButton.set(\"active\", this.get(\"linkNewTasks\", false));\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"editable\")) {\r\n\t\t\tthis.editButton.set(\"active\", this.get(\"editable\", true));\r\n\t\t}\r\n\r\n\t\tif (this._sizeDirty || this.isDirty(\"sidebarWidth\")) {\r\n\t\t\tlet width = $utils.relativeToValue(this.get(\"sidebarWidth\", percent(20)), this.innerWidth());\r\n\t\t\twidth = Math.max(width, this.yAxis.get(\"minWidth\", 100));\r\n\t\t\tthis.yAxis.labelsContainer.set(\"width\", width);\r\n\t\t\tthis._updateScrollbar();\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"durationUnit\")) {\r\n\t\t\tconst durationUnit = this.get(\"durationUnit\");\r\n\t\t\tif (durationUnit) {\r\n\t\t\t\tthis.xAxis.set(\"baseInterval\", { timeUnit: durationUnit, count: 1 });\r\n\t\t\t\tthis.xAxisMinor.set(\"baseInterval\", { timeUnit: durationUnit, count: 1 });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.colorPickerButton.getPrivate(\"color\") === undefined) {\r\n\t\t\tthis._nextColor();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _updateScrollbar() {\r\n\t\tconst point = this.xyChart.plotContainer.toGlobal({ x: 0, y: 0 });\r\n\t\tthis.scrollbarX.setAll({\r\n\t\t\tx: point.x,\r\n\t\t\twidth: this.xyChart.plotContainer.width()\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a new task to the Gantt chart.\r\n\t * \r\n\t * @param category The category name for the task. If not provided, will be auto-generated.\r\n\t * @param start The start time of the task in milliseconds. If not provided, will be determined based on context.\r\n\t * @param duration The duration of the task. If not provided, defaults to 1.\r\n\t * @param parentId The parent category if this is a subtask.\r\n\t * @param progress The initial progress of the task (0-1). Defaults to 0.\r\n\t * @param linkToPrevious Should the task automatically link to the previous one?\r\n\t */\r\n\tpublic addNewTask(name?: string, start?: number, duration: number = 1, parentId?: string, progress: number = 0, linkToPrevious?: boolean) {\r\n\t\t// Generate a unique ID for the new task\r\n\t\tlet len = this.series.dataItems.length;\r\n\t\tlet c = this.yAxis.dataItems.length;\r\n\r\n\t\t$array.each(this.yAxis.dataItems, (dataItem) => {\r\n\t\t\tif (dataItem.get(\"id\") == \"gantt_\" + c) {\r\n\t\t\t\tc++;\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tconst uid = \"gantt_\" + c;\r\n\r\n\t\tif (!name) {\r\n\t\t\tname = \"New Task\";\r\n\t\t}\r\n\r\n\t\tif (linkToPrevious === undefined) {\r\n\t\t\tlinkToPrevious = this.get(\"linkNewTasks\", false);\r\n\t\t}\r\n\r\n\t\tlet parentDataItem: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\t\t// Find parent data item either by specified category or selected item\r\n\t\tif (parentId != undefined) {\r\n\t\t\tparentDataItem = this.yAxis.getDataItemById(parentId);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tparentDataItem = this.yAxis.get(\"selectedDataItem\");\r\n\t\t}\r\n\r\n\t\tlet childCount = 0;\r\n\t\t// Handle parent-child relationship if a parent exists\r\n\t\tif (parentDataItem) {\r\n\t\t\tparentId = parentDataItem.get(\"id\");\r\n\t\t\tif (parentId) {\r\n\t\t\t\t// If start time not specified, try to use parent's start time\r\n\t\t\t\tif (start === undefined) {\r\n\t\t\t\t\tconst seriesDataItem = this.series.getDataItemById(parentId);\r\n\t\t\t\t\tif (seriesDataItem) {\r\n\t\t\t\t\t\tstart = seriesDataItem.get(\"valueX\", new Date().getTime());\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Initialize or get the children array for the parent\r\n\t\t\tlet children = parentDataItem.get(\"children\");\r\n\t\t\tif (!children) {\r\n\t\t\t\tchildren = parentDataItem.set(\"children\", []);\r\n\t\t\t}\r\n\t\t\tchildCount = children.length;\r\n\t\t}\r\n\r\n\t\t// Determine start time if not specified\r\n\t\tif (start === undefined) {\r\n\t\t\tstart = $time.roun(this.xAxis.getPrivate(\"min\", 0), this.get(\"durationUnit\", \"day\"), 1, this.root);\r\n\r\n\t\t\tif (this.series.dataItems.length > 0) {\r\n\t\t\t\tstart = this.series.dataItems[len - 1].get(\"valueX\", new Date().getTime());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dataObject: any = {\r\n\t\t\tname: name,\r\n\t\t\tid: uid\r\n\t\t}\r\n\t\tif (parentId) {\r\n\t\t\tdataObject[\"parentId\"] = parentId;\r\n\t\t}\r\n\t\t// Add the category data\r\n\t\tlet index = 0;\r\n\t\tlet previousDataItem: DataItem<IGanttCategoryAxisDataItem> | undefined;\r\n\t\tif (parentDataItem) {\r\n\t\t\tindex = this.yAxis.dataItems.indexOf(parentDataItem) + 1 + childCount;\r\n\t\t\tconst children = parentDataItem.get(\"children\", []);\r\n\t\t\tlet len = this.yAxis.dataItems.length;\r\n\t\t\tif (index >= len) {\r\n\t\t\t\tif (children.length > 0) {\r\n\t\t\t\t\tpreviousDataItem = children[children.length - 1];\r\n\t\t\t\t}\r\n\t\t\t\tthis.yAxis.data.push(dataObject);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (children.length > 0) {\r\n\t\t\t\t\tpreviousDataItem = this.yAxis.dataItems[index - 1];\r\n\t\t\t\t}\r\n\t\t\t\tthis.yAxis.data.insertIndex(index, dataObject);\r\n\t\t\t}\r\n\t\t\tindex++;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// go backwards and find the first item that has no parent\r\n\t\t\tfor (let i = this.yAxis.dataItems.length - 1; i >= 0; i--) {\r\n\t\t\t\tconst dataItem = this.yAxis.dataItems[i];\r\n\t\t\t\tif (!dataItem.get(\"parentId\")) {\r\n\t\t\t\t\tpreviousDataItem = dataItem;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.yAxis.data.push(dataObject);\r\n\t\t\tindex = this.yAxis.dataItems.length;\r\n\t\t}\r\n\r\n\t\t// Add the task data with slightly offset start time to avoid overlapping\r\n\t\tconst baseDuration = this.xAxis.baseDuration();\r\n\r\n\t\tconst seriesDataObject: any = {\r\n\t\t\tstart: start,\r\n\t\t\tend: start + 1,\r\n\t\t\tduration: duration,\r\n\t\t\tprogress: progress,\r\n\t\t\tid: uid,\r\n\t\t\tname: name\r\n\t\t}\r\n\r\n\t\t// create link to previous task if needed\r\n\t\tif (linkToPrevious && previousDataItem) {\r\n\t\t\tconst seriesDataItem = this.series.getDataItemById(previousDataItem.get(\"id\")!);\r\n\r\n\t\t\tif (seriesDataItem) {\r\n\t\t\t\tconst linkTo: Array<string> = seriesDataItem.get(\"linkTo\", []);\r\n\r\n\t\t\t\tif (!linkTo.includes(uid)) {\r\n\t\t\t\t\tlinkTo.push(uid);\r\n\t\t\t\t\tseriesDataItem.set(\"linkTo\", linkTo);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.series.data.moveValue(seriesDataObject, index - 1);\r\n\r\n\t\tconst newSeriesDataItem = this.series.dataItems[index - 1];\r\n\t\tnewSeriesDataItem.animate({ key: \"valueX\", to: start + baseDuration * duration, duration: this.series.get(\"interpolationDuration\", 0), easing: this.series.get(\"interpolationEasing\") });\r\n\r\n\t\tthis.yAxis._disposeXHideDP();\r\n\t\tthis.yAxis.xButton.hide(0);\r\n\r\n\t\tconst maxZoomCount = this.yAxis.get(\"maxZoomCount\", 20);\r\n\t\tlet startIndex = Math.max(0, Math.round(index - maxZoomCount / 2));\r\n\t\tlet endIndex = startIndex + maxZoomCount;\r\n\r\n\t\tlen = this.yAxis.dataItems.length;\r\n\t\tif (endIndex > len) {\r\n\t\t\tendIndex = len;\r\n\t\t\tstartIndex = Math.max(0, endIndex - maxZoomCount);\r\n\t\t}\r\n\r\n\t\tthis.yAxis.zoomToIndexes(startIndex, endIndex);\r\n\t\tthis.yAxis.adjustZoom();\r\n\t}\r\n\r\n\r\n\t// Get next color from the color set\r\n\tpublic _nextColor(): Color | undefined {\r\n\t\tif (this._customColor) {\r\n\t\t\treturn this._customColor;\r\n\t\t}\r\n\t\tconst fill = this.get(\"colors\")?.next();\r\n\t\tthis.colorPickerButton.setPrivate(\"color\", fill);\r\n\r\n\t\treturn fill;\r\n\t}\r\n\r\n\t/**\r\n\t * Marks a date on the minor date axis.\r\n\t * \r\n\t * @param date Date to be marked\r\n\t */\r\n\tpublic markDate(date: number) {\r\n\r\n\t\tconst xAxisMinor = this.xAxisMinor;\r\n\t\tconst dataItem = xAxisMinor.createAxisRange(xAxisMinor.makeDataItem({\r\n\t\t\tvalue: date\r\n\t\t}))\r\n\r\n\t\tconst eventType = \"datemarked\";\r\n\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\tthis.events.dispatch(eventType, { type: eventType, target: this, dataItem: dataItem, date: date });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Unmarks a date on the minor date axis.\r\n\t * \r\n\t * @param date Date to be unmarked\r\n\t */\r\n\tpublic unmarkDate(date: number) {\r\n\t\tconst xAxisMinor = this.xAxisMinor;\r\n\t\tlet dataItem = undefined;\r\n\t\txAxisMinor.axisRanges.each((axisRange) => {\r\n\t\t\t// remove axis range if already exists\r\n\t\t\tif (axisRange && axisRange.get(\"value\") === date) {\r\n\t\t\t\txAxisMinor.axisRanges.removeValue(axisRange);\r\n\t\t\t\tdataItem = axisRange;\r\n\t\t\t}\r\n\t\t})\r\n\t\tconst eventType = \"dateunmarked\";\r\n\t\tif (this.events.isEnabled(eventType)) {\r\n\t\t\tthis.events.dispatch(eventType, { type: eventType, target: this, dataItem: dataItem, date: date });\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _toggleEditable(value: boolean) {\r\n\t\tconst forceHidden = \"forceHidden\";\r\n\t\tconst forceInactive = \"forceInactive\";\r\n\t\tconst draggable = \"draggable\";\r\n\r\n\t\tthis.series.markDirtyValues();\r\n\r\n\t\tthis.addButton.set(forceHidden, !value);\r\n\t\tthis.colorPickerButton.set(forceHidden, !value);\r\n\t\tthis.clearButton.set(forceHidden, !value);\r\n\t\tthis.linkButton.set(forceHidden, !value);\r\n\r\n\t\tconst renderer = this.yAxis.get(\"renderer\");\r\n\t\trenderer.labels.template.set(forceInactive, !value);\r\n\r\n\t\trenderer.grips.template.set(forceHidden, !value);\r\n\t\trenderer.containers.template.set(draggable, value);\r\n\r\n\t\trenderer.controlsContainers.template.set(forceInactive, !value);\r\n\r\n\t\tthis.series.columns.template.set(draggable, value);\r\n\t\tthis.series.startGrips.template.set(forceHidden, !value);\r\n\t\tthis.series.endGrips.template.set(forceHidden, !value);\r\n\t\tthis.series.progressGrips.template.set(forceHidden, !value);\r\n\r\n\t\tthis.series.startBullets.template.set(forceHidden, !value);\r\n\t\tthis.series.endBullets.template.set(forceHidden, !value);\r\n\r\n\t\tthis.series.links.template.set(forceInactive, !value);\r\n\r\n\t\tthis.xAxisMinor.set(forceInactive, !value);\r\n\t}\r\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GanttCategoryAxis.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/GanttCategoryAxis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GanttCategoryAxis.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/gantt/GanttCategoryAxis.ts"],"names":[],"mappings":"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"}
@@ -1146,15 +1146,7 @@ export class GanttCategoryAxis extends CategoryAxis {
1146
1146
  bg.set("active", true);
1147
1147
  }
1148
1148
  const progressPie = dataItem.get("progressPie");
1149
- let point = { x: 0, y: 0 };
1150
- if (progressPie) {
1151
- point = progressPie.toGlobal(point);
1152
- point = this.toLocal(point);
1153
- }
1154
- this.xButton.setAll({
1155
- y: point.y,
1156
- x: point.x
1157
- });
1149
+ progressPie === null || progressPie === void 0 ? void 0 : progressPie.children.push(this.xButton);
1158
1150
  this.setRaw("selectedDataItem", dataItem);
1159
1151
  if (this._xHideDP) {
1160
1152
  this._xHideDP.dispose();
@@ -1169,6 +1161,10 @@ export class GanttCategoryAxis extends CategoryAxis {
1169
1161
  this._delDp.dispose();
1170
1162
  }
1171
1163
  this._delDp = this.xButton.events.once("click", () => {
1164
+ const parent = this.xButton.parent;
1165
+ if (parent) {
1166
+ parent.children.removeValue(this.xButton);
1167
+ }
1172
1168
  this.deleteDataItem(dataItem);
1173
1169
  this.unselectDataItems();
1174
1170
  });