@sapui5/sap.gantt 1.119.0 → 1.120.1

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 (208) hide show
  1. package/package.json +1 -1
  2. package/src/sap/gantt/.library +1 -1
  3. package/src/sap/gantt/AdhocLine.js +1 -1
  4. package/src/sap/gantt/GanttChart.js +1 -1
  5. package/src/sap/gantt/GanttChartBase.js +1 -1
  6. package/src/sap/gantt/GanttChartContainer.js +1 -1
  7. package/src/sap/gantt/GanttChartWithTable.js +6 -2
  8. package/src/sap/gantt/axistime/AxisTimeStrategyBase.js +6 -6
  9. package/src/sap/gantt/axistime/FullScreenStrategy.js +1 -1
  10. package/src/sap/gantt/axistime/ProportionZoomStrategy.js +1 -1
  11. package/src/sap/gantt/axistime/StepwiseTimeLineOptions.js +5 -4
  12. package/src/sap/gantt/axistime/StepwiseZoomStrategy.js +1 -1
  13. package/src/sap/gantt/changeHandlers/simple/AdhocLine.js +1 -1
  14. package/src/sap/gantt/changeHandlers/simple/DeltaLine.js +1 -1
  15. package/src/sap/gantt/changeHandlers/simple/GanttChartContainer.js +6 -4
  16. package/src/sap/gantt/changeHandlers/simple/GanttChartWithTable.js +6 -4
  17. package/src/sap/gantt/config/BirdEyeGroup.js +1 -1
  18. package/src/sap/gantt/config/ChartScheme.js +1 -1
  19. package/src/sap/gantt/config/ColumnAttribute.js +1 -1
  20. package/src/sap/gantt/config/ContainerLayout.js +1 -1
  21. package/src/sap/gantt/config/ExpandChart.js +1 -1
  22. package/src/sap/gantt/config/ExpandChartGroup.js +1 -1
  23. package/src/sap/gantt/config/GanttChartLayout.js +1 -1
  24. package/src/sap/gantt/config/Hierarchy.js +1 -1
  25. package/src/sap/gantt/config/HierarchyColumn.js +1 -1
  26. package/src/sap/gantt/config/LayoutGroup.js +1 -1
  27. package/src/sap/gantt/config/Locale.js +1 -1
  28. package/src/sap/gantt/config/Mode.js +1 -1
  29. package/src/sap/gantt/config/ModeGroup.js +1 -1
  30. package/src/sap/gantt/config/ObjectType.js +1 -1
  31. package/src/sap/gantt/config/SettingGroup.js +1 -1
  32. package/src/sap/gantt/config/SettingItem.js +4 -4
  33. package/src/sap/gantt/config/Shape.js +1 -1
  34. package/src/sap/gantt/config/TimeAxis.js +1 -1
  35. package/src/sap/gantt/config/TimeHorizon.js +1 -1
  36. package/src/sap/gantt/config/TimeZoomGroup.js +1 -1
  37. package/src/sap/gantt/config/ToolbarGroup.js +1 -1
  38. package/src/sap/gantt/config/ToolbarScheme.js +1 -1
  39. package/src/sap/gantt/control/AssociateContainer.js +1 -3
  40. package/src/sap/gantt/control/AssociateContainerRenderer.js +9 -12
  41. package/src/sap/gantt/control/Cell.js +1 -1
  42. package/src/sap/gantt/def/DefBase.js +1 -1
  43. package/src/sap/gantt/def/SvgDefs.js +1 -1
  44. package/src/sap/gantt/def/cal/Calendar.js +1 -1
  45. package/src/sap/gantt/def/cal/CalendarDefs.js +1 -1
  46. package/src/sap/gantt/def/cal/TimeInterval.js +1 -1
  47. package/src/sap/gantt/def/filter/MorphologyFilter.js +1 -1
  48. package/src/sap/gantt/def/gradient/LinearGradient.js +1 -1
  49. package/src/sap/gantt/def/gradient/RadialGradient.js +1 -1
  50. package/src/sap/gantt/def/gradient/Stop.js +1 -1
  51. package/src/sap/gantt/def/pattern/BackSlashPattern.js +1 -1
  52. package/src/sap/gantt/def/pattern/PatternBase.js +1 -1
  53. package/src/sap/gantt/def/pattern/SlashPattern.js +1 -1
  54. package/src/sap/gantt/drawer/Drawer.js +1 -1
  55. package/src/sap/gantt/drawer/SelectionPanel.js +1 -1
  56. package/src/sap/gantt/drawer/ShapeInRow.js +4 -4
  57. package/src/sap/gantt/eventHandler/AutoScrollHandler.js +1 -1
  58. package/src/sap/gantt/eventHandler/BirdEyeHandler.js +1 -1
  59. package/src/sap/gantt/eventHandler/MouseWheelHandler.js +2 -1
  60. package/src/sap/gantt/eventHandler/ShapeHoverHandler.js +1 -1
  61. package/src/sap/gantt/eventHandler/ShapeResizeHandler.js +1 -1
  62. package/src/sap/gantt/eventHandler/TimePeriodZoomHandler.js +1 -1
  63. package/src/sap/gantt/eventHandler/TimePopoverHandler.js +3 -3
  64. package/src/sap/gantt/legend/DimensionLegend.js +1 -1
  65. package/src/sap/gantt/legend/LegendBase.js +1 -1
  66. package/src/sap/gantt/legend/LegendContainer.js +1 -1
  67. package/src/sap/gantt/legend/ListLegend.js +1 -1
  68. package/src/sap/gantt/library.js +53 -12
  69. package/src/sap/gantt/messagebundle.properties +24 -0
  70. package/src/sap/gantt/messagebundle_ar.properties +1 -1
  71. package/src/sap/gantt/messagebundle_bg.properties +3 -3
  72. package/src/sap/gantt/messagebundle_ca.properties +35 -19
  73. package/src/sap/gantt/messagebundle_cnr.properties +427 -0
  74. package/src/sap/gantt/messagebundle_cs.properties +1 -1
  75. package/src/sap/gantt/messagebundle_el.properties +4 -4
  76. package/src/sap/gantt/messagebundle_en.properties +295 -19
  77. package/src/sap/gantt/messagebundle_en_US_saprigi.properties +212 -196
  78. package/src/sap/gantt/messagebundle_es.properties +7 -7
  79. package/src/sap/gantt/messagebundle_et.properties +2 -2
  80. package/src/sap/gantt/messagebundle_fr.properties +1 -1
  81. package/src/sap/gantt/messagebundle_hi.properties +2 -2
  82. package/src/sap/gantt/messagebundle_hr.properties +3 -3
  83. package/src/sap/gantt/messagebundle_ja.properties +2 -2
  84. package/src/sap/gantt/messagebundle_kk.properties +1 -1
  85. package/src/sap/gantt/messagebundle_lt.properties +2 -2
  86. package/src/sap/gantt/messagebundle_mk.properties +411 -0
  87. package/src/sap/gantt/messagebundle_ms.properties +1 -1
  88. package/src/sap/gantt/messagebundle_nl.properties +2 -2
  89. package/src/sap/gantt/messagebundle_no.properties +2 -2
  90. package/src/sap/gantt/messagebundle_pt.properties +2 -2
  91. package/src/sap/gantt/messagebundle_ro.properties +10 -10
  92. package/src/sap/gantt/messagebundle_ru.properties +1 -1
  93. package/src/sap/gantt/messagebundle_sk.properties +4 -4
  94. package/src/sap/gantt/messagebundle_th.properties +8 -8
  95. package/src/sap/gantt/messagebundle_uk.properties +3 -3
  96. package/src/sap/gantt/misc/AxisTime.js +65 -38
  97. package/src/sap/gantt/misc/Format.js +0 -22
  98. package/src/sap/gantt/misc/Memoizer.js +1 -1
  99. package/src/sap/gantt/misc/RelativeTimeFormatter.js +1 -1
  100. package/src/sap/gantt/misc/ShapeManager.js +5 -4
  101. package/src/sap/gantt/misc/ShapeSelectionModel.js +3 -3
  102. package/src/sap/gantt/overlays/GanttRowOverlay.js +88 -0
  103. package/src/sap/gantt/overlays/Overlay.js +73 -0
  104. package/src/sap/gantt/shape/Circle.js +1 -1
  105. package/src/sap/gantt/shape/ClipPath.js +1 -1
  106. package/src/sap/gantt/shape/Definitions.js +1 -1
  107. package/src/sap/gantt/shape/Group.js +1 -1
  108. package/src/sap/gantt/shape/Image.js +1 -1
  109. package/src/sap/gantt/shape/Line.js +1 -1
  110. package/src/sap/gantt/shape/Path.js +1 -1
  111. package/src/sap/gantt/shape/Polygon.js +1 -1
  112. package/src/sap/gantt/shape/Polyline.js +1 -1
  113. package/src/sap/gantt/shape/Rectangle.js +1 -1
  114. package/src/sap/gantt/shape/ResizeShadowShape.js +1 -1
  115. package/src/sap/gantt/shape/SelectedShape.js +1 -1
  116. package/src/sap/gantt/shape/Shape.js +1 -1
  117. package/src/sap/gantt/shape/Text.js +1 -1
  118. package/src/sap/gantt/shape/cal/Calendar.js +1 -1
  119. package/src/sap/gantt/shape/ext/Chevron.js +1 -1
  120. package/src/sap/gantt/shape/ext/Cursor.js +1 -1
  121. package/src/sap/gantt/shape/ext/Diamond.js +1 -1
  122. package/src/sap/gantt/shape/ext/Iconfont.js +1 -1
  123. package/src/sap/gantt/shape/ext/Pentangle.js +1 -1
  124. package/src/sap/gantt/shape/ext/TextRepeat.js +1 -1
  125. package/src/sap/gantt/shape/ext/Triangle.js +1 -1
  126. package/src/sap/gantt/shape/ext/rls/Relationship.js +1 -1
  127. package/src/sap/gantt/shape/ext/rls/SelectedRelationship.js +1 -1
  128. package/src/sap/gantt/shape/ext/ubc/UbcBorderPath.js +1 -1
  129. package/src/sap/gantt/shape/ext/ubc/UbcOverCapacityZonePolygon.js +1 -1
  130. package/src/sap/gantt/shape/ext/ubc/UbcPolygon.js +1 -1
  131. package/src/sap/gantt/shape/ext/ubc/UbcShortageCapacityPolygon.js +1 -1
  132. package/src/sap/gantt/shape/ext/ubc/UbcTooltipRectangle.js +1 -1
  133. package/src/sap/gantt/shape/ext/ubc/UbcUnderCapacityZonePolygon.js +1 -1
  134. package/src/sap/gantt/shape/ext/ubc/UbcUsedPolygon.js +1 -1
  135. package/src/sap/gantt/shape/ext/ubc/UtilizationBarChart.js +1 -1
  136. package/src/sap/gantt/shape/ext/ulc/UlcBorderPath.js +1 -1
  137. package/src/sap/gantt/shape/ext/ulc/UlcClipPath.js +1 -1
  138. package/src/sap/gantt/shape/ext/ulc/UlcClipingPath.js +1 -1
  139. package/src/sap/gantt/shape/ext/ulc/UlcDimension.js +1 -1
  140. package/src/sap/gantt/shape/ext/ulc/UlcMiddleLine.js +1 -1
  141. package/src/sap/gantt/shape/ext/ulc/UlcOverCapacityZoneRectangle.js +1 -1
  142. package/src/sap/gantt/shape/ext/ulc/UlcOverClipRectangle.js +1 -1
  143. package/src/sap/gantt/shape/ext/ulc/UlcRectangle.js +1 -1
  144. package/src/sap/gantt/shape/ext/ulc/UlcTooltipRectangle.js +1 -1
  145. package/src/sap/gantt/shape/ext/ulc/UlcUnderClipRectangle.js +1 -1
  146. package/src/sap/gantt/shape/ext/ulc/UtilizationLineChart.js +1 -1
  147. package/src/sap/gantt/simple/AdhocDiamond.js +1 -1
  148. package/src/sap/gantt/simple/AdhocLine.js +1 -1
  149. package/src/sap/gantt/simple/AggregationUtils.js +92 -0
  150. package/src/sap/gantt/simple/BaseCalendar.js +1 -1
  151. package/src/sap/gantt/simple/BaseChevron.js +1 -1
  152. package/src/sap/gantt/simple/BaseConditionalShape.js +1 -1
  153. package/src/sap/gantt/simple/BaseCursor.js +1 -1
  154. package/src/sap/gantt/simple/BaseDeltaRectangle.js +1 -1
  155. package/src/sap/gantt/simple/BaseDiamond.js +1 -1
  156. package/src/sap/gantt/simple/BaseGroup.js +1 -1
  157. package/src/sap/gantt/simple/BaseImage.js +1 -1
  158. package/src/sap/gantt/simple/BaseLine.js +1 -1
  159. package/src/sap/gantt/simple/BasePath.js +1 -1
  160. package/src/sap/gantt/simple/BasePseudoShape.js +118 -92
  161. package/src/sap/gantt/simple/BaseRectangle.js +1 -1
  162. package/src/sap/gantt/simple/BaseShape.js +8 -2
  163. package/src/sap/gantt/simple/BaseText.js +1 -1
  164. package/src/sap/gantt/simple/BaseTriangle.js +1 -1
  165. package/src/sap/gantt/simple/ContainerToolbar.js +9 -7
  166. package/src/sap/gantt/simple/ContainerToolbarPlaceholder.js +1 -1
  167. package/src/sap/gantt/simple/CoordinateUtils.js +1 -1
  168. package/src/sap/gantt/simple/CustomVariantHandler.js +1 -1
  169. package/src/sap/gantt/simple/DeltaLine.js +1 -1
  170. package/src/sap/gantt/simple/DeltaLineRenderer.js +4 -2
  171. package/src/sap/gantt/simple/ExpandModel.js +12 -5
  172. package/src/sap/gantt/simple/FindAndSelectUtils.js +7 -1
  173. package/src/sap/gantt/simple/GanttAdaptationData.js +1 -1
  174. package/src/sap/gantt/simple/GanttChartContainer.js +2 -2
  175. package/src/sap/gantt/simple/GanttChartWithTable.js +136 -64
  176. package/src/sap/gantt/simple/GanttDragDropExtension.js +22 -9
  177. package/src/sap/gantt/simple/GanttExtension.js +1 -1
  178. package/src/sap/gantt/simple/GanttHeader.js +2 -2
  179. package/src/sap/gantt/simple/GanttPointerExtension.js +1 -1
  180. package/src/sap/gantt/simple/GanttPopoverExtension.js +1 -1
  181. package/src/sap/gantt/simple/GanttPrinting.js +67 -47
  182. package/src/sap/gantt/simple/GanttResizeExtension.js +5 -12
  183. package/src/sap/gantt/simple/GanttRowAction.js +1 -1
  184. package/src/sap/gantt/simple/GanttRowSettings.js +55 -3
  185. package/src/sap/gantt/simple/GanttSearchSidePanel.js +7 -4
  186. package/src/sap/gantt/simple/GanttUtils.js +46 -10
  187. package/src/sap/gantt/simple/GanttZoomExtension.js +12 -2
  188. package/src/sap/gantt/simple/InnerGanttChart.js +17 -7
  189. package/src/sap/gantt/simple/InnerGanttChartRenderer.js +2 -26
  190. package/src/sap/gantt/simple/LegendContainer.js +1 -1
  191. package/src/sap/gantt/simple/LegendShapeGroup.js +1 -1
  192. package/src/sap/gantt/simple/MultiActivityGroup.js +1 -1
  193. package/src/sap/gantt/simple/MultiActivityRowSettings.js +2 -14
  194. package/src/sap/gantt/simple/Relationship.js +6 -6
  195. package/src/sap/gantt/simple/RenderUtils.js +23 -11
  196. package/src/sap/gantt/simple/SelectionModel.js +4 -3
  197. package/src/sap/gantt/simple/ShapeScheme.js +1 -1
  198. package/src/sap/gantt/simple/StockChart.js +1 -1
  199. package/src/sap/gantt/simple/StockChartDimension.js +1 -1
  200. package/src/sap/gantt/simple/StockChartPeriod.js +1 -1
  201. package/src/sap/gantt/simple/UtilizationBarChart.js +1 -1
  202. package/src/sap/gantt/simple/UtilizationChart.js +1 -1
  203. package/src/sap/gantt/simple/UtilizationDimension.js +1 -1
  204. package/src/sap/gantt/simple/UtilizationLineChart.js +1 -1
  205. package/src/sap/gantt/simple/UtilizationPeriod.js +1 -1
  206. package/src/sap/gantt/simple/shapes/Shape.js +10 -11
  207. package/src/sap/gantt/simple/shapes/Task.js +1 -1
  208. package/src/sap/gantt/utils/GanttCustomisationUtils.js +5 -3
@@ -52,7 +52,7 @@ sap.ui.define([
52
52
  * @extends sap.ui.core.Control
53
53
  *
54
54
  * @author SAP SE
55
- * @version 1.119.0
55
+ * @version 1.120.1
56
56
  *
57
57
  * @constructor
58
58
  * @public
@@ -81,7 +81,7 @@ sap.ui.define([
81
81
  * The GanttChartContainer use Splitter to manager the layout, it can have horizontal or vertical orientation.
82
82
  * <b>Note:</b> the property only take effect if GanttChartContainer has more than 1 ganttChart instances
83
83
  */
84
- layoutOrientation: {type : "sap.ui.core.Orientation", group : "Behavior", defaultValue : sap.ui.core.Orientation.Vertical},
84
+ layoutOrientation: {type : "sap.ui.core.Orientation", group : "Behavior", defaultValue : Orientation.Vertical},
85
85
 
86
86
  /**
87
87
  * Flag to enable and disable scroll synchronization by time on instances of aggregation <code>ganttCharts</code>.
@@ -58,7 +58,8 @@ sap.ui.define([
58
58
  "sap/gantt/simple/AggregationUtils",
59
59
  "sap/gantt/simple/BasePseudoShape",
60
60
  "sap/gantt/def/SvgDefs",
61
- "sap/base/util/UriParameters"
61
+ "sap/base/util/UriParameters",
62
+ "sap/ui/table/rowmodes/Auto"
62
63
  ], function (
63
64
  library,
64
65
  jQuery,
@@ -113,7 +114,8 @@ sap.ui.define([
113
114
  AggregationUtils,
114
115
  BasePseudoShape,
115
116
  SvgDefs,
116
- UriParameters
117
+ UriParameters,
118
+ AutoRowMode
117
119
  ) {
118
120
  "use strict";
119
121
 
@@ -159,7 +161,7 @@ sap.ui.define([
159
161
  * @extend sap.ui.core.Control
160
162
  *
161
163
  * @author SAP SE
162
- * @version 1.119.0
164
+ * @version 1.120.1
163
165
  * @since 1.60
164
166
  *
165
167
  * @constructor
@@ -1372,7 +1374,12 @@ sap.ui.define([
1372
1374
  var oRowActionTemplate = oTable.getRowActionTemplate();
1373
1375
  if (oRowActionTemplate && oRowActionTemplate.isA("sap.gantt.simple.GanttRowAction") &&
1374
1376
  oRowActionTemplate.getControlTemplate()) {
1375
- oTable.setRowHeight(80);
1377
+ GanttUtils.setTableRowMode(oTable);
1378
+ if (oTable.getRowMode()) {
1379
+ oTable.getRowMode().setRowContentHeight(80);
1380
+ } else {
1381
+ oTable.setRowHeight(80);
1382
+ }
1376
1383
  }
1377
1384
 
1378
1385
  if (oOldTableWrapper == null) {
@@ -2138,11 +2145,11 @@ sap.ui.define([
2138
2145
  oMatchedValue: {}
2139
2146
  };
2140
2147
  if (Array.isArray(aPropertyNames) && aPropertyNames.length > 0) {
2141
- findAndSelectData = updateFindAndSelectDataForArrayPropertyNames(oItem, findAndSelectData, oGantt);
2148
+ updateFindAndSelectDataForArrayPropertyNames(oItem, findAndSelectData, oGantt);
2142
2149
  } else if (typeof aPropertyNames === "string" && aPropertyNames !== "") {
2143
- findAndSelectData = updateFindAndSelectDataForSinglePropertyNames(oItem, findAndSelectData, oGantt);
2150
+ updateFindAndSelectDataForSinglePropertyNames(oItem, findAndSelectData, oGantt);
2144
2151
  } else {
2145
- findAndSelectData = updateFindAndSelectDataForAllPropertyNames(oItem, findAndSelectData, oGantt);
2152
+ updateFindAndSelectDataForAllPropertyNames(oItem, findAndSelectData, oGantt);
2146
2153
  }
2147
2154
  });
2148
2155
  }
@@ -2243,7 +2250,7 @@ sap.ui.define([
2243
2250
  if (shapeIDPath && !oPathList[oTemplateObj.path].shapeIDPath.includes(shapeIDPath)) {
2244
2251
  oPathList[oTemplateObj.path].shapeIDPath.push(shapeIDPath);
2245
2252
  }
2246
- if (oTemplateObj.template && oTemplateObj.template.getExpandable()) {
2253
+ if (oTemplateObj.template && oTemplateObj.template.getExpandable && oTemplateObj.template.getExpandable()) {
2247
2254
  oPathList[oTemplateObj.path].expandable = oTemplateObj.template && oTemplateObj.template.getExpandable();
2248
2255
  }
2249
2256
  if (isExpandable) {
@@ -2251,7 +2258,7 @@ sap.ui.define([
2251
2258
  } else {
2252
2259
  oPathList[oTemplateObj.path].showParentRowOnExpand = this.getShowParentRowOnExpand();
2253
2260
  }
2254
- this._getAllBindingPaths(oPathList[oTemplateObj.path], oTemplateObj.template, oTemplateObj.template.getExpandable());
2261
+ this._getAllBindingPaths(oPathList[oTemplateObj.path], oTemplateObj.template, oTemplateObj.template.getExpandable && oTemplateObj.template.getExpandable());
2255
2262
  }
2256
2263
  }
2257
2264
  }
@@ -2467,15 +2474,11 @@ sap.ui.define([
2467
2474
  sStartDate = oChildShape.getTime();
2468
2475
  sEndDate = oChildShape.getEndTime();
2469
2476
  } else {
2470
- if (oChildShape.getTime() >= sStartDate) {
2471
- sStartDate = sStartDate;
2472
- } else {
2477
+ if (oChildShape.getTime() < sStartDate) {
2473
2478
  sStartDate = oChildShape.getTime();
2474
2479
  }
2475
2480
  if (oChildShape.getEndTime() >= sEndDate) {
2476
2481
  sEndDate = oChildShape.getEndTime();
2477
- } else {
2478
- sEndDate = sEndDate;
2479
2482
  }
2480
2483
  }
2481
2484
  }
@@ -2526,7 +2529,8 @@ sap.ui.define([
2526
2529
  }
2527
2530
 
2528
2531
  this.setTimeForGroupShape(oShape);
2529
- if (!bCtrl) {
2532
+ var sShapeSelectionMode = this.getShapeSelectionMode();
2533
+ if ((sShapeSelectionMode !== library.SelectionMode.Multiple) && (sShapeSelectionMode !== library.SelectionMode.MultipleWithLasso) && !bCtrl) {
2530
2534
  this.oSelection.clearAllSelectedShapeIds();
2531
2535
  this.searchTxt = [];
2532
2536
  this.searchProperty = [];
@@ -2936,7 +2940,15 @@ sap.ui.define([
2936
2940
 
2937
2941
  performance.mark("GanttChartWithTable._onTableRowsUpdated--end");
2938
2942
  };
2939
-
2943
+ /**
2944
+ * @private
2945
+ */
2946
+ GanttChartWithTable.prototype._getPossibleShapesInGantt = function() {
2947
+ return Object.keys(this.getTable().getRowSettingsTemplate().getMetadata().getAllAggregations()).filter(function(aggr){
2948
+ return ['tooltip', 'customData', 'layoutData', 'dependents', 'dragDropConfig', 'relationships', 'pseudoShapeTemplate'].indexOf(aggr) == -1 &&
2949
+ aggr.indexOf("overlay") == -1 && aggr.indexOf("calendars") == -1;
2950
+ });
2951
+ };
2940
2952
  /**
2941
2953
  * @param {object} oParams , information about index and expand state
2942
2954
  * @private
@@ -2948,28 +2960,57 @@ sap.ui.define([
2948
2960
  var sModelName = oRowBindingInfo && oRowBindingInfo.model;
2949
2961
  var oModel = oTable.getModel(sModelName);
2950
2962
  var oRowSettingsTemplate = oTable.getRowSettingsTemplate();
2963
+ var aPossibleShapes = this._getPossibleShapesInGantt();
2964
+ var aBindingInfos = [], bIsValid = false;
2965
+ aPossibleShapes.forEach(function(shape){
2966
+ var oBindingInfo = oRowSettingsTemplate.getBindingInfo(shape);
2967
+ aBindingInfos.push(oBindingInfo);
2968
+ if (oBindingInfo){
2969
+ bIsValid = true;
2970
+ }
2971
+ });
2951
2972
  // Getting the task binding info because we get the template to clone and the path to fetch data from here
2952
- var oTaskBindingInfo = oRowSettingsTemplate.getBindingInfo("tasks");
2953
2973
  // Get visible rows
2954
2974
  var aRows = oTable.getRows();
2955
2975
  var oBasePseudoShape = new BasePseudoShape();
2956
- if (oTaskBindingInfo) {
2976
+ if (bIsValid) {
2957
2977
  var getContextArray = function(oRowBindingContext){
2958
2978
  //Get the list of shape's context paths
2959
- var aContext = [], oContext;
2960
- var aTaskContextPaths = oRowBindingContext.getProperty(oTaskBindingInfo.path);
2961
- aTaskContextPaths.forEach(function(sTaskContextPath, index) {
2962
- // loop through the shape's context paths and get the context objects for each
2963
- if (oModel.isA("sap.ui.model.json.JSONModel")){
2964
- var sContextPath = oRowBindingContext + "/" + oTaskBindingInfo.path + "/" + index;
2965
- // loop through the shape's context paths and get the context objects for each
2966
- oContext = oModel.getContext(sContextPath);
2979
+ var aContext = [], oContext, aContextPaths = [];
2980
+ aBindingInfos.forEach(function(oBindingInfo){
2981
+ if (oBindingInfo){
2982
+ aContextPaths.push(oRowBindingContext.getProperty(oBindingInfo.path));
2967
2983
  } else {
2968
- oContext = oModel.getContext("/" + sTaskContextPath);
2984
+ aContextPaths.push([]);
2969
2985
  }
2970
- aContext.push(oContext);
2971
2986
  });
2972
- return aContext;
2987
+ aContextPaths.forEach(function(aShapeContextPaths, shapeTypeIndex) {
2988
+ aShapeContextPaths.forEach(function(sShapeContextPath, index) {
2989
+ // loop through the shape's context paths and get the context objects for each
2990
+ if (oModel.isA("sap.ui.model.json.JSONModel")){
2991
+ var sContextPath = oRowBindingContext + "/" + aBindingInfos[shapeTypeIndex].path + "/" + index;
2992
+ // loop through the shape's context paths and get the context objects for each
2993
+ oContext = oModel.getContext(sContextPath);
2994
+ } else {
2995
+ oContext = oModel.getContext("/" + sShapeContextPath);
2996
+ }
2997
+ oContext.aggrType = aPossibleShapes[shapeTypeIndex];
2998
+ var oTime = aBindingInfos[shapeTypeIndex].template.getBindingInfo("time"),
2999
+ oEndTime = aBindingInfos[shapeTypeIndex].template.getBindingInfo("endTime"),
3000
+ aShapes = aBindingInfos[shapeTypeIndex].template.getAggregation("shapes"),
3001
+ oTask = aBindingInfos[shapeTypeIndex].template.getAggregation("task");
3002
+ oContext.timeFormatter = oTime && oTime.formatter ||
3003
+ aShapes && aShapes[index].getBindingInfo("time") && aShapes[index].getBindingInfo("time").formatter ||
3004
+ oTask && oTask.getBindingInfo("time") && oTask.getBindingInfo("time").formatter;
3005
+ oContext.endTimeFormatter = oEndTime && oEndTime.formatter ||
3006
+ aShapes && aShapes[index].getBindingInfo("endTime") && aShapes[index].getBindingInfo("endTime").formatter ||
3007
+ oTask && oTask.getBindingInfo("endTime") && oTask.getBindingInfo("endTime").formatter;
3008
+ aContext.push(oContext);
3009
+ });
3010
+ });
3011
+ return {
3012
+ aContext:aContext
3013
+ };
2973
3014
  };
2974
3015
  var pseudoShapeTemplate;
2975
3016
  if (oRowSettingsTemplate.getPseudoShapeTemplate){
@@ -2987,34 +3028,34 @@ sap.ui.define([
2987
3028
  aRows.forEach(function(oRow) {
2988
3029
  // loop through each row's settings
2989
3030
  var oSettings = oRow.getAggregation("_settings");
2990
- var aAggrTasks = oSettings.removeAllAggregation("tasks", true);
3031
+ aPossibleShapes.forEach(function(oShape){
3032
+ var aAggrShapes = oSettings.removeAllAggregation(oShape, true);
3033
+ Array.isArray(aAggrShapes) && aAggrShapes.forEach(function(oShape){
3034
+ oShape.destroy();
3035
+ });
3036
+ });
2991
3037
  this.bModifiedAggrTasks = true;
2992
- aAggrTasks.forEach(function(oTask){
2993
- oTask.destroy();
2994
- });
2995
3038
  // Get each rows binding context to get data for the shape's paths
2996
- var oRowBindingContext = oRow.getBindingContext(sModelName), aContext = [], cloneIndex;
3039
+ var oRowBindingContext = oRow.getBindingContext(sModelName), aContext = [];
2997
3040
  if (oRowBindingContext) {
2998
3041
  //Get the list of shape's context paths
2999
- aContext = getContextArray(oRowBindingContext);
3042
+ aContext = getContextArray(oRowBindingContext).aContext;
3000
3043
  //sort data based on start date, ascending
3001
3044
  bIncludePseudoShape = this.oOverlapShapeIds && this.oOverlapShapeIds[oRow.getIndex()] && this.oOverlapShapeIds[oRow.getIndex()].length > 0;
3002
3045
  if ((aExpandedIndices.indexOf(oRow.getIndex()) > -1 && !(bIncludePseudoShape)) || !this.getEnablePseudoShapes()) {
3003
3046
  //for expanded rows, add all shapes
3004
3047
  //collapse with pseudo shape display disabled
3005
- var aTasks = oSettings.getAggregation("tasks");
3006
- cloneIndex = aTasks ? aTasks.length : 0;
3007
3048
  aContext.forEach(function(oContext) {
3008
- var oClone = oTaskBindingInfo.template.clone();
3009
- oClone.setBindingContext(oContext, sModelName);
3010
- // add back to the rows aggregation
3011
- oSettings.addAggregation("tasks", oClone, true);
3012
- if (aExpandedIndices.indexOf(oRow.getIndex()) > -1 ){
3013
- cloneIndex++;
3049
+ var oBindingInfo = aBindingInfos[aPossibleShapes.indexOf(oContext.aggrType)];
3050
+ if (oBindingInfo){
3051
+ var oClone = oBindingInfo.template.clone();
3052
+ oClone.setBindingContext(oContext, sModelName);
3053
+ // add back to the rows aggregation
3054
+ oSettings.addAggregation(oContext.aggrType, oClone, true);
3014
3055
  }
3015
3056
  });
3016
3057
  } else {
3017
- oBasePseudoShape._createShapesFromContext(aContext, oRow,oTaskBindingInfo,this,true, -1, needGradientCalculations);
3058
+ oBasePseudoShape._createShapesFromContext(aContext, oRow,aBindingInfos,this,true, -1, needGradientCalculations);
3018
3059
  }
3019
3060
  }
3020
3061
  }.bind(this));
@@ -3026,27 +3067,32 @@ sap.ui.define([
3026
3067
  oParams.aIndices.forEach(function(index) {
3027
3068
  var oRow = aRows[index - this.getTable().getRows()[0].getIndex()];
3028
3069
  var oSettings = oRow.getAggregation("_settings");
3029
- var aAggrTasks = oSettings.removeAllAggregation("tasks", true);
3030
- aAggrTasks.forEach(function(oTask){
3031
- oTask.destroy();
3032
- });
3070
+ aPossibleShapes.forEach(function(oShape){
3071
+ var aAggrShapes = oSettings.removeAllAggregation(oShape, true);
3072
+ Array.isArray(aAggrShapes) && aAggrShapes.forEach(function(oShape){
3073
+ oShape.destroy();
3074
+ });
3075
+ });
3033
3076
  // Get each rows binding context to get data for the shape's paths
3034
3077
  var oRowBindingContext = oRow.getBindingContext(sModelName), aContext = [];
3035
3078
  if (oRowBindingContext) {
3036
- aContext = getContextArray(oRowBindingContext);
3079
+ aContext = getContextArray(oRowBindingContext).aContext;
3037
3080
  }
3038
3081
  if ((oParams.bExpanded && (!oParams.bPseudoExpand)) || !this.getEnablePseudoShapes()) {
3039
3082
  // Normal row collapse with disabled pseudoshape display
3040
3083
  //for expanded rows, add all shapes
3041
3084
  aContext.forEach(function(oContext) {
3042
- var oClone = oTaskBindingInfo.template.clone();
3043
- oClone.setBindingContext(oContext, sModelName);
3044
- // add back to the rows aggregation
3045
- oSettings.addAggregation("tasks", oClone, true);
3085
+ var oBindingInfo = aBindingInfos[aPossibleShapes.indexOf(oContext.aggrType)];
3086
+ if (oBindingInfo){
3087
+ var oClone = oBindingInfo.template.clone();
3088
+ oClone.setBindingContext(oContext, sModelName);
3089
+ // add back to the rows aggregation
3090
+ oSettings.addAggregation(oContext.aggrType, oClone, true);
3091
+ }
3046
3092
  });
3047
3093
  } else {
3048
3094
  var expanded = oParams.bExpanded;
3049
- oBasePseudoShape._createShapesFromContext(aContext, oRow,oTaskBindingInfo,this,expanded,index, needGradientCalculations);
3095
+ oBasePseudoShape._createShapesFromContext(aContext, oRow,aBindingInfos,this,expanded,index, needGradientCalculations);
3050
3096
  }
3051
3097
  }.bind(this));
3052
3098
  }
@@ -3335,7 +3381,7 @@ sap.ui.define([
3335
3381
  } else if (!this.getShowExportTableToExcel() && (oTable.getExtension().length > 0 && !(oTable.getExtension()[0].getContent().indexOf(this.oExportTableToExcelButton) === -1))) {//Check to remove the Export button when ShowExportTableToExcel = false
3336
3382
  if (oTable.getExtension()[0].getContent().length == 1) { //If only single content is present, remove the entire Table.extension.
3337
3383
  oTable.removeExtension(oTable.getExtension()[0]);
3338
- }else if (oTable.getExtension()[0].getContent().length > 1) {
3384
+ } else if (oTable.getExtension()[0].getContent().length > 1) {
3339
3385
  oTable.getExtension()[0].removeContent(this.oExportTableToExcelButton); //If multiple contents are present, remove only the Export button.
3340
3386
  }
3341
3387
  }
@@ -3468,8 +3514,11 @@ sap.ui.define([
3468
3514
  if (!this._aShapeRenderOrder && aShapeRenderOrder && aShapeRenderOrder.length > 0) {
3469
3515
  var aAggregations = Object.keys(this.getTable().getRowSettingsTemplate().getMetadata().getAllAggregations());
3470
3516
  this._aShapeRenderOrder = aAggregations.filter(function(sName){
3471
- return (aShapeRenderOrder.indexOf(sName) === -1);
3517
+ return (aShapeRenderOrder.indexOf(sName) === -1 && (sName.indexOf("overlay") == -1));
3472
3518
  }).concat(aShapeRenderOrder);
3519
+ if (this._aShapeRenderOrder.indexOf("pseudoShapes") == -1){
3520
+ this._aShapeRenderOrder.push("pseudoShapes");
3521
+ }
3473
3522
  }
3474
3523
 
3475
3524
  // at this point, there are no shapes rendered at all, so GanttScrollExtension.jumpToVisibleHorizon("initialRender")
@@ -3478,8 +3527,34 @@ sap.ui.define([
3478
3527
  //If a fixed height has been specified to GanttChartWithTable/GanttChartContainer
3479
3528
  //set the VisibleRowCountMode=Auto which makes the table calculate number of rows to be displayed within the given height and make the GanttChart displays the HorizontalScrollBar
3480
3529
  if ((this.mProperties.hasOwnProperty("height") || (this.getParent() && this.getParent().mProperties.hasOwnProperty("height"))) && !this._enableOptimisation) {
3481
- this.getTable().setVisibleRowCountMode(sap.ui.table.VisibleRowCountMode.Auto);
3482
- this.getTable().setMinAutoRowCount(1);//Change the default value of minAutoRowCount to 1 form the default vlue of 5 for GanttChart with minimal height.
3530
+ var oTable = this.getTable();
3531
+ var oRowMode = oTable.getRowMode();
3532
+ if (oRowMode){
3533
+ if (oRowMode.isA("sap.ui.table.rowmodes.Auto")){
3534
+ oRowMode.setMinRowCount(1);
3535
+ } else {
3536
+ if (oRowMode.isA("sap.ui.table.rowmodes.RowMode")){
3537
+ oTable.setRowMode(
3538
+ new AutoRowMode({
3539
+ rowContentHeight:oRowMode.getRowContentHeight(),
3540
+ fixedBottomRowCount:oRowMode.getFixedBottomRowCount(),
3541
+ fixedTopRowCount:oRowMode.getFixedTopRowCount(),
3542
+ minRowCount: 1
3543
+ })
3544
+ );
3545
+ } else {
3546
+ //safe block
3547
+ oTable.setRowMode(
3548
+ new AutoRowMode({
3549
+ minRowCount: 1
3550
+ })
3551
+ );
3552
+ }
3553
+ }
3554
+ } else {
3555
+ oTable.setVisibleRowCountMode(sap.ui.table.VisibleRowCountMode.Auto);
3556
+ oTable.setMinAutoRowCount(1);//Change the default value of minAutoRowCount to 1 form the default vlue of 5 for GanttChart with minimal height.
3557
+ }
3483
3558
  }
3484
3559
 
3485
3560
  performance.mark("GanttChartWithTable--end");
@@ -3553,7 +3628,8 @@ sap.ui.define([
3553
3628
  };
3554
3629
 
3555
3630
  GanttChartWithTable.prototype._updateRowHeightInExpandModel = function(oTable) {
3556
- var iTableRowHeight = Math.ceil(oTable.getRowHeight());
3631
+ GanttUtils.setTableRowMode(oTable);
3632
+ var iTableRowHeight = oTable.getRowMode() ? Math.ceil(oTable.getRowMode().getRowContentHeight()) : Math.ceil(oTable.getRowHeight());
3557
3633
  if (iTableRowHeight === 0) {
3558
3634
  iTableRowHeight = Math.ceil(oTable._getDefaultRowHeight());
3559
3635
  }
@@ -3813,10 +3889,6 @@ sap.ui.define([
3813
3889
  // both has value
3814
3890
  // start time fall in range OR end time fall in range OR start time and end time cross the range
3815
3891
  return fnFallInRange(oStartTime) || fnFallInRange(oEndTime) || (oStartTime <= oMinTime && oEndTime >= oMaxTime);
3816
- } else if (oStartTime && !oEndTime) {
3817
- return fnFallInRange(oStartTime);
3818
- } else if (!oStartTime && oEndTime) {
3819
- return fnFallInRange(oEndTime);
3820
3892
  }
3821
3893
  };
3822
3894
 
@@ -4353,7 +4425,7 @@ sap.ui.define([
4353
4425
  GanttChartWithTable.prototype.getChartOverflowToolbar = function () {
4354
4426
  var oOverflowToolbar;
4355
4427
  if (this.getEnableChartOverflowToolbar()) {
4356
- oOverflowToolbar = sap.ui.getCore().byId(this.getId() + "-ganttHeaderOverflowToolbar");
4428
+ oOverflowToolbar = Core.byId(this.getId() + "-ganttHeaderOverflowToolbar");
4357
4429
  }
4358
4430
  return oOverflowToolbar;
4359
4431
  };
@@ -96,7 +96,7 @@ sap.ui.define([
96
96
  *
97
97
  * @extends sap.gantt.simple.GanttExtension
98
98
  * @author SAP SE
99
- * @version 1.119.0
99
+ * @version 1.120.1
100
100
  * @constructor
101
101
  * @private
102
102
  * @alias sap.gantt.simple.GanttExtension
@@ -661,12 +661,6 @@ sap.ui.define([
661
661
  var srowIndex = oShape.getParentRowSettings().getParentRow().getIndex && oShape.getParentRowSettings().getParentRow().getIndex();
662
662
 
663
663
  oGantt.pseudoShapeSpecificData.draggedShapeTRowIndex = trowIndex == undefined ? srowIndex : trowIndex;
664
- var pseudoParent = oShape.getParent().isA("sap.gantt.simple.BaseConditionalShape") ? oShape.getParent().getParent()._parent : oShape.getParent()._parent;
665
-
666
- if (pseudoParent){
667
- var iShapeIndex = oGantt.oOverlapShapeIds && oGantt.oOverlapShapeIds[srowIndex] && oGantt.oOverlapShapeIds[srowIndex].indexOf(oShape.getShapeId());
668
- oGantt.oOverlapShapeIds && oGantt.oOverlapShapeIds[srowIndex] && oGantt.oOverlapShapeIds[srowIndex].splice(iShapeIndex,1);
669
- }
670
664
  });
671
665
  oGantt.pseudoShapeSpecificData.needUpdateForTasksInAggr = true;
672
666
  }
@@ -1315,7 +1309,26 @@ sap.ui.define([
1315
1309
  var oGantt = this.getGantt();
1316
1310
  var GanttPointerExtension = oGantt._getPointerExtension();
1317
1311
  var oAxisTime = oGantt.getAxisTime();
1318
- var currentTimeIntervalKey = oAxisTime.getCurrentTickTimeIntervalKey();
1312
+ var currentTimeIntervalKey;
1313
+ var oTimeLineOption = oAxisTime.getZoomStrategy().getTimeLineOption(),
1314
+ oTimeLineOptions = oAxisTime.getZoomStrategy().getTimeLineOptions();
1315
+ var sAttr;
1316
+ var found = false;
1317
+
1318
+ var keys = Object.keys(oTimeLineOptions);
1319
+ var currentIndex = 0;
1320
+
1321
+ while (!found && currentIndex < keys.length) {
1322
+ sAttr = keys[currentIndex];
1323
+ if (oTimeLineOptions[sAttr] === oTimeLineOption) {
1324
+ currentTimeIntervalKey = sAttr;
1325
+ found = true;
1326
+ }
1327
+ currentIndex++;
1328
+ }
1329
+
1330
+
1331
+
1319
1332
  var snapTimeInterval = oGantt.getSnapTimeInterval();
1320
1333
  var oZoomStrategy = oAxisTime.getZoomStrategy();
1321
1334
  this.snapVal = Number.MAX_SAFE_INTEGER / 2;
@@ -1564,7 +1577,7 @@ sap.ui.define([
1564
1577
  }
1565
1578
  if (this.deltaLineDrag) {
1566
1579
  //creating delta line ghost image.
1567
- var oDeltaLine = sap.ui.getCore().byId(this.oMouseDownTarget.id).getParent();
1580
+ var oDeltaLine = Core.byId(this.oMouseDownTarget.id).getParent();
1568
1581
  if (oDeltaLine.getVisibleDeltaStartEndLines()){
1569
1582
  var oClonedHeaderStartLine = deltaLineElms.headerStartLine.cloneNode(true);
1570
1583
  var oClonedStartLine = deltaLineElms.startLine.cloneNode(true);
@@ -18,7 +18,7 @@ sap.ui.define([ "sap/ui/base/Object" ],function(BaseObject) {
18
18
  * @abstract
19
19
  * @extends sap.ui.base.Object
20
20
  * @author SAP SE
21
- * @version 1.119.0
21
+ * @version 1.120.1
22
22
  * @constructor
23
23
  * @private
24
24
  * @alias sap.gantt.simple.GanttExtension
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @extend sap.ui.core.Element
34
34
  *
35
35
  * @author SAP SE
36
- * @version 1.119.0
36
+ * @version 1.120.1
37
37
  *
38
38
  * @constructor
39
39
  * @private
@@ -447,7 +447,7 @@ sap.ui.define([
447
447
  };
448
448
 
449
449
  GanttHeader.prototype.renderNowLineHeader = function(oRm, oGantt, mAttr) {
450
- var aAdhocLines = oGantt.getAdhocLines();
450
+ var aAdhocLines = oGantt.getSimpleAdhocLines();
451
451
  var aDeltaLines = oGantt.getDeltaLines();
452
452
  var nHeaderHeight = mAttr.headerHeight;
453
453
  var iMarkerArea = mAttr.iMarkerArea;
@@ -240,7 +240,7 @@ sap.ui.define([
240
240
  *
241
241
  * @extends sap.gantt.simple.GanttExtension
242
242
  * @author SAP SE
243
- * @version 1.119.0
243
+ * @version 1.120.1
244
244
  * @constructor
245
245
  * @private
246
246
  * @alias sap.gantt.simple.GanttPointerExtension
@@ -79,7 +79,7 @@ function(
79
79
  *
80
80
  * @extends sap.gantt.simple.GanttExtension
81
81
  * @author SAP SE
82
- * @version 1.119.0
82
+ * @version 1.120.1
83
83
  * @constructor
84
84
  * @private
85
85
  * @alias sap.gantt.simple.GanttPopoverExtension