@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
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @extends sap.gantt.simple.MultiActivityGroup
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.119.0
32
+ * @version 1.120.1
33
33
  * @since 1.109
34
34
  *
35
35
  * @constructor
@@ -130,16 +130,23 @@ sap.ui.define([
130
130
 
131
131
  if (bIsExpandRequired) {
132
132
  var sModelName = oTable.getBindingInfo("rows").model;
133
- var oTaskBindingInfo = oRowSettingsTemplate.getBindingInfo("tasks");
134
133
  var oSettings = oRow.getAggregation("_settings");
135
- var iCloneIndex = oSettings.getAggregation("tasks").length;
136
134
  oGantt.oOverlapShapeIds[oRow.getIndex()] = [];
135
+ var aPossibleShapes = oGantt._getPossibleShapesInGantt();
136
+ var aBindingInfos = [];
137
+ aPossibleShapes.forEach(function(shape){
138
+ var oBindingInfo = oRowSettingsTemplate.getBindingInfo(shape);
139
+ aBindingInfos.push(oBindingInfo);
140
+ });
137
141
  this.aShapeContexts.forEach(function (oContext) {
138
- var oClone = oTaskBindingInfo.template.clone();
139
- oClone.setBindingContext(oContext, sModelName);
140
- oSettings.addAggregation("tasks", oClone, true);
141
- oGantt.oOverlapShapeIds[oRow.getIndex()].push(oSettings.getAggregation("tasks")[iCloneIndex].getShapeId());
142
- iCloneIndex++;
142
+ var sAggrType = aPossibleShapes.indexOf(oContext.aggrType);
143
+ var oClone = aBindingInfos[sAggrType] && aBindingInfos[sAggrType].template.clone();
144
+ if (oClone){
145
+ oClone.setBindingContext(oContext, sModelName);
146
+ oSettings.addAggregation(oContext.aggrType, oClone, true);
147
+ oGantt.oOverlapShapeIds[iIndex].push(oSettings.getAggregation(oContext.aggrType)[oSettings.getAggregation(oContext.aggrType).length - 1].getShapeId());
148
+ // iCloneIndex++;
149
+ }
143
150
  });
144
151
 
145
152
  oGantt._expand(sScheme, iIndex, true);
@@ -149,17 +156,15 @@ sap.ui.define([
149
156
  * Formats the time of a shape given according to the formatter provided through template of binding.
150
157
  * @private
151
158
  */
152
- BasePseudoShape.prototype._timeFormatter = function (oTaskBindingInfo, oBasePseudo, oShape, oGantt) {
153
- var startTimeformatterMethod = oTaskBindingInfo.template.getBindingInfo("time").formatter;
154
- var endTimeformatterMethod = oTaskBindingInfo.template.getBindingInfo("endTime").formatter;
155
- var oTime = startTimeformatterMethod ? startTimeformatterMethod.call(oBasePseudo, oShape.startTime) : oShape.startTime,
156
- oEndTime = endTimeformatterMethod ? endTimeformatterMethod.call(oBasePseudo, oShape.endTime) : oShape.endTime;
157
-
159
+ BasePseudoShape.prototype._timeFormatter = function (oContext, oShapePropertyPath) {
160
+ var startTime = oContext.getProperty(oShapePropertyPath.startTime);
161
+ var endTime = oContext.getProperty(oShapePropertyPath.endTime);
162
+ var oTime = oContext.timeFormatter ? oContext.timeFormatter(startTime) : startTime,
163
+ oEndTime = oContext.endTimeFormatter ? oContext.endTimeFormatter(endTime) : endTime;
158
164
  if (Format._getEnableDateTimezoneFormatter()) {
159
165
  oTime = GanttUtils.getFormatedDateByTimeZone(oTime);
160
166
  oEndTime = GanttUtils.getFormatedDateByTimeZone(oEndTime);
161
167
  }
162
-
163
168
  return {
164
169
  time: oTime,
165
170
  endTime: oEndTime
@@ -169,7 +174,7 @@ sap.ui.define([
169
174
  * Creates a pseudo shape for the provided binding information
170
175
  * @private
171
176
  */
172
- BasePseudoShape.prototype._createPseudoShape = function (oShapeGroup, oTaskBindingInfo, oRow,oGantt,expanded) {
177
+ BasePseudoShape.prototype._createPseudoShape = function (oShapeGroup, oRow, oGantt, expanded) {
173
178
  var horizontalTextAlignment = sap.gantt.simple.horizontalTextAlignment,
174
179
  oPseudoShapeIcon;
175
180
  var obasePseudo = new BasePseudoShape();
@@ -184,10 +189,9 @@ sap.ui.define([
184
189
  endTime: oTask.getEndTime()
185
190
  });
186
191
  };
187
- var oFormatedTime = this._timeFormatter(oTaskBindingInfo, obasePseudo, oShapeGroup, oGantt);
188
192
  obasePseudo.setAggregation("task", new BaseRectangle({
189
- time: oFormatedTime.time,
190
- endTime: oFormatedTime.endTime,
193
+ time: oShapeGroup.startTime,
194
+ endTime: oShapeGroup.endTime,
191
195
  horizontalTextAlignment: horizontalTextAlignment.Start,
192
196
  fontSize: parseFloat(Parameters.get("sapUiChartAxisTitleFontSize"), 100) * 16,
193
197
  fontWeight: Parameters.get("sapUiChartTitleFontWeight")
@@ -197,14 +201,13 @@ sap.ui.define([
197
201
  if (obasePseudo.getTypeOfOverlapIndicator() != "Gradient") {
198
202
  oTask._iBaseRowHeight = oGantt._oExpandModel.getBaseRowHeight() ? oGantt._oExpandModel.getBaseRowHeight() : oTask._iBaseRowHeight;
199
203
  var iShapeHeight = oTask.getHeight();
200
- var oFormatedTime = this._timeFormatter(oTaskBindingInfo, obasePseudo, overlap, oGantt);
201
204
  obasePseudo.addAggregation("indicators", new BaseRectangle({
202
- time: oFormatedTime.time,
203
- endTime: oFormatedTime.endTime,
205
+ time: overlap.startTime,
206
+ endTime: overlap.endTime,
204
207
  yBias: iShapeHeight + 2
205
208
  }).addStyleClass("sapGanttPseudoShapeOverlapIndicatorStyle"));
206
209
  }
207
- }.bind(this));
210
+ });
208
211
  if (expanded && oGantt.oOverlapShapeIds && oGantt.oOverlapShapeIds[oRow.getIndex()] && oShapeGroup.aShapeIds && oShapeGroup.aShapeIds.some(function (shapeId) {
209
212
  return oGantt.oOverlapShapeIds[oRow.getIndex()].includes(shapeId);
210
213
  })) {
@@ -257,20 +260,27 @@ sap.ui.define([
257
260
  * Create shapes for the provided binding information from the context
258
261
  * @private
259
262
  */
260
- BasePseudoShape.prototype._createShapesFromContext = function(aContext, oRow,oTaskBindingInfo,oGantt,expanded,index, needGradientCalculations){
263
+ BasePseudoShape.prototype._createShapesFromContext = function(aContext, oRow, aBindingInfos, oGantt, expanded, index, needGradientCalculations){
261
264
  var oSettings = oRow.getAggregation("_settings");
262
- var oAxisTime = oGantt.getAxisTime();
263
- var oPseudoShapeTemplate = oSettings.getPseudoShapeTemplate();
265
+ var oAxisTime = oGantt.getAxisTime(), oShapePropertyPaths = {};
266
+ var oPseudoShapeTemplate = oSettings.getPseudoShapeTemplate && oSettings.getPseudoShapeTemplate();
264
267
  var sModelName = oGantt.getTable().getBindingInfo("rows").model;
268
+ var aPossibleShapes = oGantt._getPossibleShapesInGantt();
265
269
  // Getting start and end time and indicator binding.
266
- var oStartTimeBindingInfo = oTaskBindingInfo.template.getBindingInfo("time"),
267
- oEndTimeBindingIndo = oTaskBindingInfo.template.getBindingInfo("endTime"),
268
- oShapeIdBinding = oTaskBindingInfo.template.getBindingInfo("shapeId");
269
- var oShapePropertyPaths = {
270
- endTime: oEndTimeBindingIndo.parts[0].path || oEndTimeBindingIndo.path,
271
- startTime: oStartTimeBindingInfo.parts[0].path || oStartTimeBindingInfo.path,
272
- shapeId: oShapeIdBinding.parts[0].path || oShapeIdBinding.path
273
- };
270
+ aBindingInfos.forEach(function(oBindingInfo, index){
271
+ if (oBindingInfo){
272
+ var aShapes = oBindingInfo.template.getAggregation("shapes");
273
+ var oStartTimeBindingInfo = oBindingInfo.template.getBindingInfo("time") || aShapes && aShapes[0] && aShapes[0].getBindingInfo("time"),
274
+ oEndTimeBindingIndo = oBindingInfo.template.getBindingInfo("endTime") || aShapes && aShapes[0] && aShapes[0].getBindingInfo("endTime"),
275
+ oShapeIdBinding = oBindingInfo.template.getBindingInfo("shapeId");
276
+ oShapePropertyPaths[index] = {
277
+ endTime: oEndTimeBindingIndo.parts[0].path || oEndTimeBindingIndo.path,
278
+ startTime: oStartTimeBindingInfo.parts[0].path || oStartTimeBindingInfo.path,
279
+ shapeId: oShapeIdBinding.parts[0].path || oShapeIdBinding.path
280
+ };
281
+ }
282
+ });
283
+
274
284
  var getIcon = function(sIconSrc, oTask){
275
285
  return new BaseImage( {
276
286
  height:parseFloat(Parameters.get("sapUiChartAxisTitleFontSize"), 100) * 16,
@@ -282,8 +292,17 @@ sap.ui.define([
282
292
  endTime: oTask.getEndTime()
283
293
  });
284
294
  };
285
- aContext.sort(function(oContext1, oContext2){return oContext1.getProperty(oShapePropertyPaths.startTime) - oContext2.getProperty(oShapePropertyPaths.startTime);});
286
- var aFinalShapeGroupArray = this._findPseudoShapeContextArray(aContext, oShapePropertyPaths ,oRow, oGantt);
295
+ aContext.sort(function(oContext1, oContext2){
296
+ var oContext1StartTimeformatter = oContext1.timeFormatter;
297
+ var oContext2StartTimeformatter = oContext2.timeFormatter;
298
+ var oContext1StartTime = oContext1.getProperty(oShapePropertyPaths[aPossibleShapes.indexOf(oContext1.aggrType)].startTime);
299
+ var oContext2StartTime = oContext2.getProperty(oShapePropertyPaths[aPossibleShapes.indexOf(oContext2.aggrType)].startTime);
300
+ var oTime1 = oContext1StartTimeformatter ? oContext1StartTimeformatter(oContext1StartTime) : oContext1StartTime,
301
+ oTime2 = oContext2StartTimeformatter ? oContext2StartTimeformatter(oContext2StartTime) : oContext2StartTime;
302
+
303
+ return oTime1 - oTime2;
304
+ });
305
+ var aFinalShapeGroupArray = this._findPseudoShapeContextArray(aContext, oShapePropertyPaths ,oRow, oGantt, aBindingInfos);
287
306
  var title, oTask, oPseudoShapeIcon;
288
307
  oRow.aFinalShapeGroupArray = aFinalShapeGroupArray;
289
308
  aFinalShapeGroupArray.forEach(function(oShapeGroup) {
@@ -294,9 +313,8 @@ sap.ui.define([
294
313
  oShapeClone = oPseudoShapeTemplate.clone();
295
314
  oTask = oShapeClone.getTask();
296
315
  oShapeGroup.shapeFill = oTask.getFill() ? oTask.getFill() : oShapeClone.getFill();
297
- var oFormatedTime = this._timeFormatter(oTaskBindingInfo, this, oShapeGroup, oGantt);
298
- oTask.setTime(oFormatedTime.time);
299
- oTask.setEndTime(oFormatedTime.endTime);
316
+ oTask.setTime(oShapeGroup.startTime);
317
+ oTask.setEndTime(oShapeGroup.endTime);
300
318
  oTask.setSelectable(true);
301
319
  if (expanded && oGantt.oOverlapShapeIds && oGantt.oOverlapShapeIds[oRow.getIndex()] && oShapeGroup.aShapeIds && oShapeGroup.aShapeIds.some(function(shapeId){return oGantt.oOverlapShapeIds[oRow.getIndex()].includes(shapeId);})){
302
320
  oPseudoShapeIcon = getIcon("sap-icon://collapse", oTask);
@@ -311,16 +329,15 @@ sap.ui.define([
311
329
  indicator.addStyleClass("sapGanttPseudoShapeOverlapIndicatorStyle");
312
330
  oShapeGroup.overlapIndicatorFill = indicator.getFill() ? indicator.getFill() : oShapeClone.getOverlapFill();
313
331
  if (oShapeClone.getTypeOfOverlapIndicator() != "Gradient"){
314
- var oFormatedTime = this._timeFormatter(oTaskBindingInfo, this, overlap, oGantt);
315
- indicator.setTime(oFormatedTime.time);
316
- indicator.setEndTime(oFormatedTime.endTime);
332
+ indicator.setTime(overlap.startTime);
333
+ indicator.setEndTime(overlap.endTime);
317
334
  oShapeClone.addAggregation("indicators",indicator);
318
335
  }
319
- }.bind(this));
336
+ });
320
337
  oPseudoShapeIcon.aCustomStyleClasses = ["pseudoShapeIcon"];
321
338
  oShapeClone.addAggregation("button",oPseudoShapeIcon);
322
339
  } else {
323
- oShapeClone = this._createPseudoShape(oShapeGroup,oTaskBindingInfo,oRow,oGantt,expanded);
340
+ oShapeClone = this._createPseudoShape(oShapeGroup,oRow,oGantt,expanded);
324
341
  oTask = oShapeClone.getTask();
325
342
  }
326
343
  oShapeClone.isPseudoShape = true;
@@ -330,8 +347,8 @@ sap.ui.define([
330
347
  if (oShapeClone.getTypeOfOverlapIndicator() != "Indicator"){
331
348
  oShapeClone.getTask().setFill('url(#' + oShapeGroup.id + ')');
332
349
  }
333
- oSettings.addAggregation("tasks", oShapeClone, true);
334
- oShapeClone._birdEye(oTaskBindingInfo,oGantt,oShapeClone,oRow,index > -1 ? oGantt._aExpandedIndices.indexOf(oRow.getIndex()) == -1 : true);
350
+ oSettings.addAggregation("pseudoShapes", oShapeClone, true);
351
+ oShapeClone._birdEye(aBindingInfos,oGantt,oShapeClone,oRow,index > -1 ? oGantt._aExpandedIndices.indexOf(oRow.getIndex()) == -1 : true, oShapePropertyPaths);
335
352
  if (needGradientCalculations){
336
353
  var pseudoShapeStartTime = oShapeGroup.startTime,
337
354
  pseudoShapeEndTime = oShapeGroup.endTime;
@@ -370,13 +387,14 @@ sap.ui.define([
370
387
  } else {
371
388
  //if there are no overlaps, create original shape
372
389
  if (oShapeGroup.iShapeCount === 1) {
373
- var oClone = oTaskBindingInfo.template.clone();
390
+ var sAggrType = oShapeGroup.aShapeContexts[0].aggrType;
391
+ var oClone = aBindingInfos[aPossibleShapes.indexOf(sAggrType)].template.clone();
374
392
  oClone.setBindingContext(oShapeGroup.aShapeContexts[0], sModelName);
375
393
  // add back to the rows aggregation
376
- oSettings.addAggregation("tasks", oClone, true);
377
- var cloneIndex = oSettings.getAggregation("tasks").length - 1;
394
+ oSettings.addAggregation(sAggrType, oClone, true);
395
+ var cloneIndex = oSettings.getAggregation(sAggrType).length - 1;
378
396
  var iIndex = oRow.getIndex();
379
- var overlapIndex = oGantt.oOverlapShapeIds && oGantt.oOverlapShapeIds[iIndex] && oGantt.oOverlapShapeIds[iIndex].indexOf(oSettings.getAggregation("tasks")[cloneIndex].getShapeId());
397
+ var overlapIndex = oGantt.oOverlapShapeIds && oGantt.oOverlapShapeIds[iIndex] && oGantt.oOverlapShapeIds[iIndex].indexOf(oSettings.getAggregation(sAggrType)[cloneIndex].getShapeId());
380
398
  if (overlapIndex > -1){
381
399
  if (oGantt.oOverlapShapeIds[iIndex].length > 1){
382
400
  oGantt.oOverlapShapeIds[iIndex].splice(overlapIndex,1);
@@ -395,26 +413,29 @@ sap.ui.define([
395
413
  * Creates shape groups for the provided binding information from the context
396
414
  * @private
397
415
  */
398
- BasePseudoShape.prototype._findPseudoShapeContextArray = function(aContext, oShapePropertyPaths ,oRow, oGantt) {
399
- var aShapeGroups = [], iGroupIndex = 0, iOverlapIndex = 0, oGanttId = oGantt.getId();
416
+ BasePseudoShape.prototype._findPseudoShapeContextArray = function(aContext, oShapePropertyPaths, oRow, oGantt) {
417
+ var aShapeGroups = [], sAggrType, iGroupIndex = 0, iOverlapIndex = 0, oGanttId = oGantt.getId();
400
418
  // Verified that operations are sorted in ascending order of their start time. If not, we need to sort it that way.
419
+ var aPossibleShapes = oGantt._getPossibleShapesInGantt();
401
420
  if (aContext[0]){
421
+ sAggrType = aPossibleShapes.indexOf(aContext[0].aggrType);
402
422
  aShapeGroups.push({
403
423
  id: oGanttId + "_row-" + oRow.getIndex() + "group-" + iGroupIndex,
404
424
  iShapeCount: 1, //number of overlapping shapes
405
- startTime: aContext[0].getProperty(oShapePropertyPaths.startTime), //start time of pseudo shape
406
- endTime: aContext[0].getProperty(oShapePropertyPaths.endTime), //end time of pseudo shape
425
+ startTime: this._timeFormatter(aContext[0], oShapePropertyPaths[sAggrType], oGantt).time,//start time of pseudo shape
426
+ endTime: this._timeFormatter(aContext[0], oShapePropertyPaths[sAggrType], oGantt).endTime, //end time of pseudo shape
407
427
  overlaps: [], //array of overlap start and end time objects
408
428
  aShapeContexts: [aContext[0]], //mostly not needed in original implementation, adding so you get all necessary info here
409
- aShapeIds: [aContext[0].getProperty(oShapePropertyPaths.shapeId)]
429
+ aShapeIds: [aContext[0].getProperty(oShapePropertyPaths[sAggrType].shapeId)]
410
430
  });
411
431
  }
412
432
  for (var i = 1; i < aContext.length; i++) {
413
433
  var oOperation = aContext[i];
414
434
  //check for complete overlaps
415
435
  //incoming shape's start and end time
416
- var dShapeStartTime = oOperation.getProperty(oShapePropertyPaths.startTime),
417
- dShapeEndTime = oOperation.getProperty(oShapePropertyPaths.endTime),
436
+ sAggrType = aPossibleShapes.indexOf(oOperation.aggrType);
437
+ var dShapeStartTime = this._timeFormatter(oOperation, oShapePropertyPaths[sAggrType], oGantt).time,
438
+ dShapeEndTime = this._timeFormatter(oOperation, oShapePropertyPaths[sAggrType], oGantt).endTime,
418
439
  //Pseudo shape's start and end time
419
440
  oShapeGroup = aShapeGroups[iGroupIndex],
420
441
  dExistingShapeStartTime = oShapeGroup.startTime,
@@ -426,7 +447,7 @@ sap.ui.define([
426
447
  //fully coinciding do nothing to pseudo shape's start and end time
427
448
  oShapeGroup.aShapeContexts.push(oOperation);
428
449
  oShapeGroup.iShapeCount ++;
429
- oShapeGroup.aShapeIds.push(oOperation.getProperty(oShapePropertyPaths.shapeId));
450
+ oShapeGroup.aShapeIds.push(oOperation.getProperty(oShapePropertyPaths[aPossibleShapes.indexOf(oOperation.aggrType)].shapeId));
430
451
  //if overlap are not there yet, add first overlap
431
452
  //start time of overlap -> start time of incoming shape, end time of overlap -> end time of incoming shape
432
453
  if (oShapeGroup.overlaps.length === 0) {
@@ -456,7 +477,7 @@ sap.ui.define([
456
477
  //when incoming shape partially coincides with pseudo shape
457
478
  oShapeGroup.aShapeContexts.push(oOperation);
458
479
  oShapeGroup.iShapeCount++;
459
- oShapeGroup.aShapeIds.push(oOperation.getProperty(oShapePropertyPaths.shapeId));
480
+ oShapeGroup.aShapeIds.push(oOperation.getProperty(oShapePropertyPaths[aPossibleShapes.indexOf(oOperation.aggrType)].shapeId));
460
481
  //indicator endtime update
461
482
  if (oShapeGroup.overlaps.length === 0) {
462
483
  //if overlap are not there yet, add first overlap
@@ -499,7 +520,7 @@ sap.ui.define([
499
520
  endTime: dShapeEndTime,
500
521
  overlaps: [],
501
522
  aShapeContexts: [oOperation],
502
- aShapeIds: [oOperation.getProperty(oShapePropertyPaths.shapeId)]
523
+ aShapeIds: [oOperation.getProperty(oShapePropertyPaths[aPossibleShapes.indexOf(oOperation.aggrType)].shapeId)]
503
524
  });
504
525
  }
505
526
  }
@@ -510,30 +531,27 @@ sap.ui.define([
510
531
  *Calculates bird eye ranges
511
532
  * @private
512
533
  */
513
- BasePseudoShape.prototype._birdEye = function (oTaskBindingInfo, oGantt, oShapeClone, oRow,expanded) {
534
+ BasePseudoShape.prototype._birdEye = function (aBindingInfos, oGantt, oShapeClone, oRow, expanded, oShapePropertyPaths) {
514
535
  var iRowIndex = oRow.getIndex(),
515
536
  oSettings = oRow.getAggregation("_settings");
516
- var countInBirdEyeBindingInfo = oTaskBindingInfo.template.getBindingInfo("countInBirdEye"),
517
- countInBirdEyeVal;
518
- if (countInBirdEyeBindingInfo) {
519
- countInBirdEyeVal = countInBirdEyeBindingInfo.parts[0].path || countInBirdEyeBindingInfo.path;
520
- } else {
521
- countInBirdEyeVal = oTaskBindingInfo.template.getCountInBirdEye();
522
- }
523
- if (typeof (countInBirdEyeVal) == "boolean") {
524
- oShapeClone.setCountInBirdEye(countInBirdEyeVal);
525
- oShapeClone.groupBirdEyeRangeStartTime = oShapeClone.getAggregation("task").getTime();
526
- oShapeClone.groupBirdEyeRangeEndTime = oShapeClone.getAggregation("task").getEndTime();
527
- }
528
- var calculateBirdEyeRange = function () {
537
+ var aPossibleShapes = oGantt._getPossibleShapesInGantt();
538
+ var calculateBirdEyeRange = function (oShapePropertyPaths, oPseudoShape) {
529
539
  var pseudoCountInBirdEye = false,
530
540
  startTime, endTime;
531
541
  for (var i = 0; i < oShapeClone.aShapeContexts.length; i++) {
532
542
  var oShape = oShapeClone.aShapeContexts[i];
533
- if (oShape.getProperty(countInBirdEyeVal)) {
543
+ var sAggrType = aPossibleShapes.indexOf(oShape.aggrType);
544
+ var oShapeBindingInfo = aBindingInfos[sAggrType];
545
+ var countInBirdEyeBindingInfo = oShapeBindingInfo.template.getBindingInfo("countInBirdEye"), countInBirdEyeVal;
546
+ if (countInBirdEyeBindingInfo) {
547
+ countInBirdEyeVal = countInBirdEyeBindingInfo.parts[0].path || countInBirdEyeBindingInfo.path;
548
+ } else {
549
+ countInBirdEyeVal = oShapeBindingInfo.template.getCountInBirdEye();
550
+ }
551
+ if (typeof (countInBirdEyeVal) != "boolean" && oShape.getProperty(countInBirdEyeVal) || countInBirdEyeVal == true) {
534
552
  pseudoCountInBirdEye = true;
535
- var oCurrentStartTime = oShape.getProperty("StartDate");
536
- var oCurrentEndTime = oShape.getProperty("EndDate");
553
+ var oCurrentStartTime = oPseudoShape._timeFormatter(oShape, oShapePropertyPaths[sAggrType], oGantt).time;
554
+ var oCurrentEndTime = oPseudoShape._timeFormatter(oShape, oShapePropertyPaths[sAggrType], oGantt).endTime;
537
555
  if (!startTime || oCurrentStartTime < startTime) {
538
556
  startTime = oCurrentStartTime;
539
557
  }
@@ -553,16 +571,22 @@ sap.ui.define([
553
571
  return oGantt.oOverlapShapeIds[iRowIndex].includes(shapeId);
554
572
  }) && expanded) {
555
573
  var sModelName = oGantt.getTable().getBindingInfo("rows").model;
556
- var aTasks = oSettings.getAggregation("tasks");
557
- var cloneIndex = aTasks ? aTasks.length : 0;
558
574
  var pseudoCountInBirdEye = false,
559
575
  startTime, endTime;
560
- oShapeClone.aShapeContexts.forEach(function (oContext) {
576
+ oShapeClone.aShapeContexts.forEach(function (oContext) {
577
+ var sAggrType = aPossibleShapes.indexOf(oContext.aggrType);
578
+ var oShapeBindingInfo = aBindingInfos[sAggrType];
579
+ var countInBirdEyeBindingInfo = oShapeBindingInfo.template.getBindingInfo("countInBirdEye"), countInBirdEyeVal;
580
+ if (countInBirdEyeBindingInfo) {
581
+ countInBirdEyeVal = countInBirdEyeBindingInfo.parts[0].path || countInBirdEyeBindingInfo.path;
582
+ } else {
583
+ countInBirdEyeVal = oShapeBindingInfo.template.getCountInBirdEye();
584
+ }
561
585
  if (typeof (countInBirdEyeVal) != "boolean") {
562
586
  if (oContext.getProperty(countInBirdEyeVal)) {
563
587
  pseudoCountInBirdEye = true;
564
- var oCurrentStartTime = oContext.getProperty("StartDate");
565
- var oCurrentEndTime = oContext.getProperty("EndDate");
588
+ var oCurrentStartTime = this._timeFormatter(oContext, oShapePropertyPaths[sAggrType], oGantt).time;
589
+ var oCurrentEndTime = this._timeFormatter(oContext, oShapePropertyPaths[sAggrType], oGantt).endTime;
566
590
  if (!startTime || oCurrentStartTime < startTime) {
567
591
  startTime = oCurrentStartTime;
568
592
  }
@@ -571,23 +595,25 @@ sap.ui.define([
571
595
  }
572
596
  }
573
597
  }
574
- var oClone = oTaskBindingInfo.template.clone();
575
- oClone.setBindingContext(oContext, sModelName);
576
- oClone._parent = oShapeClone.getAggregation("task");
577
- // add back to the rows aggregation
578
- oSettings.addAggregation("tasks", oClone, true);
579
- oSettings.getAggregation("tasks")[cloneIndex].isPartOfExpandedPseudoShape = true;
598
+ var oClone;
599
+ var oBindingInfo = aBindingInfos[sAggrType];
600
+ if (oBindingInfo){
601
+ oClone = oBindingInfo.template.clone();
602
+ oClone.setBindingContext(oContext, sModelName);
603
+ // add back to the rows aggregation
604
+ oSettings.addAggregation(oContext.aggrType, oClone, true);
605
+ }
606
+ oSettings.getAggregation(oContext.aggrType)[oSettings.getAggregation(oContext.aggrType).length - 1].isPartOfExpandedPseudoShape = true;
580
607
  var index = index > -1 ? index : iRowIndex;
581
608
  oGantt.oOverlapShapeIds[index] = oShapeClone.aShapeIds;
582
- cloneIndex++;
583
- });
609
+ }.bind(this));
584
610
  if (typeof (countInBirdEyeVal) != "boolean") {
585
611
  oShapeClone.groupBirdEyeRangeStartTime = startTime;
586
612
  oShapeClone.groupBirdEyeRangeEndTime = endTime;
587
613
  oShapeClone.setCountInBirdEye(pseudoCountInBirdEye);
588
614
  }
589
- } else if (typeof (countInBirdEyeVal) != "boolean") {
590
- var oBirdEyeCalculationInfo = calculateBirdEyeRange();
615
+ } else {
616
+ var oBirdEyeCalculationInfo = calculateBirdEyeRange(oShapePropertyPaths, this);
591
617
  oShapeClone.groupBirdEyeRangeStartTime = oBirdEyeCalculationInfo.startTime;
592
618
  oShapeClone.groupBirdEyeRangeEndTime = oBirdEyeCalculationInfo.endTime;
593
619
  oShapeClone.setCountInBirdEye(oBirdEyeCalculationInfo.pseudoCountInBirdEye);
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.gantt.simple.BaseShape
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.119.0
26
+ * @version 1.120.1
27
27
  *
28
28
  * @constructor
29
29
  * @public
@@ -53,7 +53,7 @@ sap.ui.define([
53
53
  * @extends sap.ui.core.Element
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.119.0
56
+ * @version 1.120.1
57
57
  *
58
58
  * @abstract
59
59
  * @constructor
@@ -650,7 +650,13 @@ sap.ui.define([
650
650
  BaseShape.prototype._shallWriteElementData = function(oShape) {
651
651
  var bShallWrite = !oShape.getParent();
652
652
  if (bShallWrite === false) {
653
- bShallWrite = AggregationUtils.isParentRowSetting(oShape);
653
+ //since the overlay shape is nested inside GanttRowOverlay and overlay control, move up two level for rowsettings.
654
+ var oGanttRowOverlay = oShape.getParent().getParent();
655
+ if (oGanttRowOverlay && oGanttRowOverlay.isA("sap.gantt.overlays.GanttRowOverlay")){
656
+ bShallWrite = AggregationUtils.isParentRowSetting(oGanttRowOverlay);
657
+ } else {
658
+ bShallWrite = AggregationUtils.isParentRowSetting( oShape);
659
+ }
654
660
  }
655
661
  if (bShallWrite === false){
656
662
  bShallWrite = AggregationUtils.isAdhocLine(oShape);
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @extends sap.gantt.simple.BaseShape
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.119.0
37
+ * @version 1.120.1
38
38
  *
39
39
  * @constructor
40
40
  * @public
@@ -14,7 +14,7 @@ sap.ui.define(
14
14
  * @extends sap.gantt.simple.BaseRectangle
15
15
  *
16
16
  * @author SAP SE
17
- * @version 1.119.0
17
+ * @version 1.120.1
18
18
  * @since 1.84
19
19
  *
20
20
  * @constructor
@@ -77,7 +77,7 @@ sap.ui.define([
77
77
  * @extends sap.m.OverflowToolbar
78
78
  *
79
79
  * @author SAP SE
80
- * @version 1.119.0
80
+ * @version 1.120.1
81
81
  *
82
82
  * @constructor
83
83
  * @public
@@ -519,10 +519,12 @@ sap.ui.define([
519
519
  press: function () {
520
520
  if (this.getParent().getShowSearchSidePanel()) {
521
521
  var oInputField = this.getParent().getSearchSidePanel()._oSearchSidePanel.getItems()[1].getContent()[0];
522
- var iInputLength = oInputField.getValue().length;
523
- var oSearchTextDom = oInputField.getDomRef().getElementsByTagName("input")[0];
524
- oInputField.focus();
525
- oSearchTextDom.setSelectionRange(0, iInputLength);
522
+ if (oInputField.getDomRef()){
523
+ var iInputLength = oInputField.getValue().length;
524
+ var oSearchTextDom = oInputField.getDomRef().getElementsByTagName("input")[0];
525
+ oInputField.focus();
526
+ oSearchTextDom.setSelectionRange(0, iInputLength);
527
+ }
526
528
  } else {
527
529
  this.fireFindButtonPress();
528
530
  var findMode = library.config.FindMode;
@@ -1137,8 +1139,8 @@ sap.ui.define([
1137
1139
  ContainerToolbar.prototype.updateSettingItems = function(mChanges) {
1138
1140
  var aSettingItems = this._oSettingsBox.getItems();
1139
1141
  Object.keys(mChanges).forEach(function(property){
1140
- var oSettingItem = aSettingItems.filter(function(oItem){
1141
- return oItem.getName().endsWith(property);
1142
+ var oSettingItem = aSettingItems.filter(function(oCheckBox){
1143
+ return oCheckBox.getName().endsWith(property);
1142
1144
  })[0];
1143
1145
 
1144
1146
  if (oSettingItem) {
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @extends sap.ui.core.Control
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.119.0
30
+ * @version 1.120.1
31
31
  * @since 1.66.0
32
32
  *
33
33
  * @constructor
@@ -17,7 +17,7 @@ sap.ui.define(['sap/ui/thirdparty/jquery', "sap/ui/Device"], function(jQuery, De
17
17
  * @class Utility functionality to work with SVG coordination, e.g. find x position of cursor
18
18
  *
19
19
  * @author SAP SE
20
- * @version 1.119.0
20
+ * @version 1.120.1
21
21
  *
22
22
  * @private
23
23
  * @static
@@ -15,7 +15,7 @@ sap.ui.define([
15
15
  * @extends sap.ui.core.Element
16
16
  *
17
17
  * @author SAP SE
18
- * @version 1.119.0
18
+ * @version 1.120.1
19
19
  *
20
20
  * @constructor
21
21
  * @public
@@ -25,7 +25,7 @@ sap.ui.define(
25
25
  * @extends sap.ui.core.Element
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.119.0
28
+ * @version 1.120.1
29
29
  * @since 1.84
30
30
  *
31
31
  * @constructor
@@ -372,6 +372,8 @@ sap.ui.define(
372
372
  }
373
373
  // Rendering the Chart Delta Area between the lines
374
374
  var oChartDeltaArea = oDeltaLine._getChartDeltaArea();
375
+ var iDiff = Math.abs(iX2 - iX1);
376
+ var iWidth = iDiff - (oDeltaLine.getVisibleDeltaStartEndLines() && iDiff >= 2 ? 2 : 0);
375
377
  if (oGantt.getDeltaAreaHighlightColor() === "") {
376
378
  oGantt.setDeltaAreaHighlightColor("@sapUiListSelectionBackgroundColor");
377
379
  }
@@ -380,14 +382,14 @@ sap.ui.define(
380
382
  x: iX1 + 1,
381
383
  y: 0,
382
384
  height: "100%",
383
- width: Math.abs(iX2 - iX1) - 2,
385
+ width: iWidth,
384
386
  fill: oGantt.getDeltaAreaHighlightColor(),
385
387
  opacity: opacity
386
388
  });
387
389
  oDeltaLine._setChartDeltaArea(oChartDeltaArea);
388
390
  } else {
389
391
  oChartDeltaArea.setProperty("x", iX1 + 1, true);
390
- oChartDeltaArea.setProperty("width", Math.abs(iX2 - iX1) - 2, true);
392
+ oChartDeltaArea.setProperty("width", iWidth, true);
391
393
  oChartDeltaArea.setProperty("opacity", opacity, true);
392
394
  }
393
395
  oChartDeltaArea.renderElement(oRm, oChartDeltaArea);
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.gantt.simple.ExpandModel
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.119.0
29
+ * @version 1.120.1
30
30
  *
31
31
  * @constructor
32
32
  * @private
@@ -59,15 +59,21 @@ sap.ui.define([
59
59
  var bExpandToggled = false;
60
60
  this.rowMaxLevelMap = {};
61
61
  var aShapeSchemeKeys = [];
62
+ var oGantt = oTable.getParent();
62
63
  Array.isArray(aExpandSchemes) && aExpandSchemes.forEach(function(scheme){
63
64
  aShapeSchemeKeys.push(scheme.getKey());
64
65
  });
65
66
  for (var iIndex = 0; iIndex < aSelectedIndices.length; iIndex++) {
66
67
  var iSelectedIndex = aSelectedIndices[iIndex];
67
68
 
68
- var oRowSettings = GanttUtils.getSelectedTableRowSettings(oTable, iSelectedIndex);
69
- var oGantt = oTable.getParent(),
70
- bUseParentShapesOnExpand = oGantt.getUseParentShapeOnExpand();
69
+ var oRowSettings = GanttUtils.getSelectedTableRowSettings(oTable, iSelectedIndex),overlayAggList;
70
+ if (oRowSettings){
71
+ //add expand or staticOverlay aggreagtion shapes
72
+ AggregationUtils._addExpandStaticOverlay(oRowSettings,bExpanded,oGantt);
73
+ //fetch overlay aggreagtion shapes
74
+ overlayAggList = AggregationUtils._fetchOverlayAggregation(oRowSettings,false);
75
+ }
76
+ var bUseParentShapesOnExpand = oGantt.getUseParentShapeOnExpand();
71
77
  if (!oGantt._bExpandRows && (oRowSettings == null)) {
72
78
  // possible that the Control haven't been placed At anywhere
73
79
  break;
@@ -87,7 +93,7 @@ sap.ui.define([
87
93
  aExpandableShapes.forEach(function(oMainshape){ // eslint-disable-line
88
94
  if (bUseParentShapesOnExpand) {
89
95
  //experimental code
90
- var aNonMultiActivityShapes = (aShapeSchemeKeys.indexOf(oMainshape.getScheme()) > -1) ? [oMainshape] : [];
96
+ var aNonMultiActivityShapes = (aShapeSchemeKeys.indexOf(oMainshape.getScheme()) > -1 || aShapeSchemeKeys.length == 0) ? [oMainshape] : [];
91
97
  aChild = oMainshape instanceof sap.gantt.simple.MultiActivityGroup ? AggregationUtils.getNonLazyElementsByScheme(oMainshape, aShapeSchemeKeys) : aNonMultiActivityShapes;
92
98
  childArraay = GanttUtils._getExpandedChildArray(aChild, oGantt, aShapeSchemeKeys, childArraay);
93
99
  if (childArraayLength != childArraay.length){
@@ -125,6 +131,7 @@ sap.ui.define([
125
131
  aLength.push(aChildWithLevels.maxLevel);
126
132
  var iMaxLength = Math.max.apply(null, aLength);
127
133
  if (iMaxLength > 0) {
134
+ iMaxLength = AggregationUtils._addLevelAndUpdateMaxLength(overlayAggList,iMaxLength,oRowSettings);
128
135
  this.toggle(bExpanded, oRowSettings, oPrimaryScheme, aExpandSchemes, iMaxLength, bUseParentShapesOnExpand);
129
136
  this.rowMaxLevelMap["row" + iSelectedIndex] = iMaxLength;
130
137
  bExpandToggled = true;
@@ -66,7 +66,7 @@ sap.ui.define([
66
66
  function _findShapeInRow () {
67
67
  that._oFoundShape = null;
68
68
  that._bExpandPseudoShape = false;
69
- var oRowSetting = sap.ui.getCore().byId(oRowDomRef.parentElement.id);
69
+ var oRowSetting = Core.byId(oRowDomRef.parentElement.id);
70
70
  if (oRowSetting) {
71
71
  var mAggregations = AggregationUtils.getAllNonLazyAggregations(oRowSetting);
72
72
  var aShapesInRow = Object.keys(mAggregations).filter(function(sName){
@@ -96,6 +96,12 @@ sap.ui.define([
96
96
  oRowDetails = Utility.parseUid(oShape.getShapeUid());
97
97
  if (that.rowIndex !== parseInt(oRowDetails.rowIndex, 10)) {
98
98
  that.rowIndex = parseInt(oRowDetails.rowIndex, 10);
99
+ if (oGantt){
100
+ if (!oGantt.pseudoShapeSpecificData){
101
+ oGantt.pseudoShapeSpecificData = {};
102
+ }
103
+ oGantt.pseudoShapeSpecificData.needUpdateForTasksInAggr = true;
104
+ }
99
105
  oGantt.getTable().setFirstVisibleRow(that.rowIndex);
100
106
  }
101
107
  }
@@ -15,7 +15,7 @@ sap.ui.define([
15
15
  * @extend sap.ui.core.CustomData
16
16
  *
17
17
  * @author SAP SE
18
- * @version 1.119.0
18
+ * @version 1.120.1
19
19
  * @since 1.90
20
20
  *
21
21
  * @constructor