@sapui5/sap.zen.crosstab 1.84.33 → 1.84.50

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 (136) hide show
  1. package/package.json +1 -1
  2. package/src/{main/uilib/sap → sap}/zen/crosstab/.library +14 -13
  3. package/src/sap/zen/crosstab/BaseArea.js +933 -0
  4. package/src/sap/zen/crosstab/CellStyleHandler.js +109 -0
  5. package/src/sap/zen/crosstab/ColResizer.js +261 -0
  6. package/src/sap/zen/crosstab/ColumnHeaderArea.js +61 -0
  7. package/src/sap/zen/crosstab/Crosstab.js +1351 -0
  8. package/src/sap/zen/crosstab/CrosstabCellApi.js +141 -0
  9. package/src/sap/zen/crosstab/CrosstabContextMenu.js +96 -0
  10. package/src/sap/zen/crosstab/CrosstabHeaderInfo.js +699 -0
  11. package/src/sap/zen/crosstab/CrosstabRenderer.js +258 -0
  12. package/src/sap/zen/crosstab/CrosstabTestProxy.js +64 -0
  13. package/src/sap/zen/crosstab/DataArea.js +76 -0
  14. package/src/sap/zen/crosstab/DataCell.js +187 -0
  15. package/src/sap/zen/crosstab/DataCellRenderer.js +70 -0
  16. package/src/sap/zen/crosstab/DimensionHeaderArea.js +34 -0
  17. package/src/sap/zen/crosstab/EventHandler.js +664 -0
  18. package/src/sap/zen/crosstab/HeaderCell.js +357 -0
  19. package/src/sap/zen/crosstab/HeaderCellRenderer.js +333 -0
  20. package/src/sap/zen/crosstab/HeaderResizer.js +142 -0
  21. package/src/sap/zen/crosstab/IDataCell.js +34 -0
  22. package/src/sap/zen/crosstab/IHeaderCell.js +30 -0
  23. package/src/sap/zen/crosstab/PropertyBag.js +220 -0
  24. package/src/sap/zen/crosstab/RowHeaderArea.js +78 -0
  25. package/src/sap/zen/crosstab/SelectionHandler.js +892 -0
  26. package/src/sap/zen/crosstab/TextConstants.js +22 -0
  27. package/src/sap/zen/crosstab/TouchHandler.js +413 -0
  28. package/src/sap/zen/crosstab/datahandler/JsonDataHandler.js +777 -0
  29. package/src/sap/zen/crosstab/dragdrop/DragDropAreaRenderer.js +446 -0
  30. package/src/sap/zen/crosstab/dragdrop/DragDropHandler.js +674 -0
  31. package/src/sap/zen/crosstab/dragdrop/DragDropHoverManager.js +474 -0
  32. package/src/sap/zen/crosstab/dragdrop/DragDropUtils.js +579 -0
  33. package/src/sap/zen/crosstab/dragdrop/MemberDragDropHandler.js +1156 -0
  34. package/src/sap/zen/crosstab/keyboard/CrosstabKeyboardNavHandler.js +585 -0
  35. package/src/sap/zen/crosstab/library.js +49 -0
  36. package/src/sap/zen/crosstab/paging/CellMerger.js +266 -0
  37. package/src/sap/zen/crosstab/paging/Page.js +331 -0
  38. package/src/sap/zen/crosstab/paging/PageManager.js +396 -0
  39. package/src/sap/zen/crosstab/paging/PagingConstants.js +19 -0
  40. package/src/sap/zen/crosstab/paging/RequestHandler.js +103 -0
  41. package/src/sap/zen/crosstab/paging/RequestStack.js +112 -0
  42. package/src/sap/zen/crosstab/rendering/CrossRequestManager.js +468 -0
  43. package/src/sap/zen/crosstab/rendering/DataModel.js +260 -0
  44. package/src/sap/zen/crosstab/rendering/DomElementProvider.js +24 -0
  45. package/src/sap/zen/crosstab/rendering/HeaderScrollManager.js +93 -0
  46. package/src/sap/zen/crosstab/rendering/PixelScrollManager.js +189 -0
  47. package/src/sap/zen/crosstab/rendering/RenderEngine.js +2694 -0
  48. package/src/sap/zen/crosstab/rendering/RenderingConstants.js +60 -0
  49. package/src/sap/zen/crosstab/rendering/ScrollManager.js +614 -0
  50. package/src/sap/zen/crosstab/rendering/ScrollbarRenderer.js +560 -0
  51. package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/Chart.less +0 -4
  52. package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/InfoFeeding.less +120 -120
  53. package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/InfoFeeding.less +85 -85
  54. package/src/sap/zen/crosstab/utils/Measuring.js +236 -0
  55. package/src/sap/zen/crosstab/utils/Utils.js +485 -0
  56. package/ui5.yaml +4 -2
  57. package/src/main/uilib/sap/zen/crosstab/BaseArea.js +0 -1013
  58. package/src/main/uilib/sap/zen/crosstab/CellStyleHandler.js +0 -111
  59. package/src/main/uilib/sap/zen/crosstab/ColResizer.js +0 -264
  60. package/src/main/uilib/sap/zen/crosstab/ColumnHeaderArea.js +0 -52
  61. package/src/main/uilib/sap/zen/crosstab/Crosstab.js +0 -1662
  62. package/src/main/uilib/sap/zen/crosstab/CrosstabCellApi.js +0 -142
  63. package/src/main/uilib/sap/zen/crosstab/CrosstabContextMenu.js +0 -96
  64. package/src/main/uilib/sap/zen/crosstab/CrosstabHeaderInfo.js +0 -698
  65. package/src/main/uilib/sap/zen/crosstab/CrosstabRenderer.js +0 -274
  66. package/src/main/uilib/sap/zen/crosstab/CrosstabTestProxy.js +0 -59
  67. package/src/main/uilib/sap/zen/crosstab/DataArea.js +0 -74
  68. package/src/main/uilib/sap/zen/crosstab/DataCell.js +0 -196
  69. package/src/main/uilib/sap/zen/crosstab/DataCellRenderer.js +0 -71
  70. package/src/main/uilib/sap/zen/crosstab/DimensionHeaderArea.js +0 -25
  71. package/src/main/uilib/sap/zen/crosstab/EventHandler.js +0 -651
  72. package/src/main/uilib/sap/zen/crosstab/HeaderCell.js +0 -329
  73. package/src/main/uilib/sap/zen/crosstab/HeaderCellRenderer.js +0 -374
  74. package/src/main/uilib/sap/zen/crosstab/HeaderResizer.js +0 -131
  75. package/src/main/uilib/sap/zen/crosstab/IDataCell.js +0 -21
  76. package/src/main/uilib/sap/zen/crosstab/IHeaderCell.js +0 -21
  77. package/src/main/uilib/sap/zen/crosstab/PropertyBag.js +0 -209
  78. package/src/main/uilib/sap/zen/crosstab/RowHeaderArea.js +0 -71
  79. package/src/main/uilib/sap/zen/crosstab/SelectionHandler.js +0 -911
  80. package/src/main/uilib/sap/zen/crosstab/TextConstants.js +0 -9
  81. package/src/main/uilib/sap/zen/crosstab/TouchHandler.js +0 -438
  82. package/src/main/uilib/sap/zen/crosstab/datahandler/JsonDataHandler.js +0 -760
  83. package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropAreaRenderer.js +0 -436
  84. package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropHandler.js +0 -682
  85. package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropHoverManager.js +0 -467
  86. package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropUtils.js +0 -580
  87. package/src/main/uilib/sap/zen/crosstab/dragdrop/MemberDragDropHandler.js +0 -1154
  88. package/src/main/uilib/sap/zen/crosstab/keyboard/CrosstabKeyboardNavHandler.js +0 -635
  89. package/src/main/uilib/sap/zen/crosstab/library.js +0 -38
  90. package/src/main/uilib/sap/zen/crosstab/nonphx/logic.js +0 -11
  91. package/src/main/uilib/sap/zen/crosstab/paging/CellMerger.js +0 -284
  92. package/src/main/uilib/sap/zen/crosstab/paging/Page.js +0 -357
  93. package/src/main/uilib/sap/zen/crosstab/paging/PageManager.js +0 -437
  94. package/src/main/uilib/sap/zen/crosstab/paging/PagingConstants.js +0 -7
  95. package/src/main/uilib/sap/zen/crosstab/paging/RequestHandler.js +0 -97
  96. package/src/main/uilib/sap/zen/crosstab/paging/RequestStack.js +0 -108
  97. package/src/main/uilib/sap/zen/crosstab/rendering/CrossRequestManager.js +0 -462
  98. package/src/main/uilib/sap/zen/crosstab/rendering/DataModel.js +0 -250
  99. package/src/main/uilib/sap/zen/crosstab/rendering/DomElementProvider.js +0 -13
  100. package/src/main/uilib/sap/zen/crosstab/rendering/HeaderScrollManager.js +0 -97
  101. package/src/main/uilib/sap/zen/crosstab/rendering/PixelScrollManager.js +0 -180
  102. package/src/main/uilib/sap/zen/crosstab/rendering/RenderEngine.js +0 -2757
  103. package/src/main/uilib/sap/zen/crosstab/rendering/RenderingConstants.js +0 -56
  104. package/src/main/uilib/sap/zen/crosstab/rendering/ScrollManager.js +0 -638
  105. package/src/main/uilib/sap/zen/crosstab/rendering/ScrollbarRenderer.js +0 -542
  106. package/src/main/uilib/sap/zen/crosstab/utils/Measuring.js +0 -225
  107. package/src/main/uilib/sap/zen/crosstab/utils/Utils.js +0 -480
  108. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/ChartTypeSwitch.less +0 -0
  109. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/Crosstab.less +0 -0
  110. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/FilterBar.less +0 -0
  111. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/FilterPanel.less +0 -0
  112. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/Footerbar.less +0 -0
  113. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/InfoChart.less +0 -0
  114. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/NavigationPanel.less +0 -0
  115. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/chartconfig.less +0 -0
  116. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/CornerTornEffect.png +0 -0
  117. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/HTornEffect.png +0 -0
  118. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/HTornEffectData.png +0 -0
  119. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/HTornEffectHeader.png +0 -0
  120. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/VTornEffect.png +0 -0
  121. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/loading.gif +0 -0
  122. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/loading_comp.gif +0 -0
  123. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/library.source.less +0 -0
  124. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/zen.less +0 -0
  125. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize/library.source.less +0 -0
  126. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize_hcb/library.source.less +0 -0
  127. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize_hcw/library.source.less +0 -0
  128. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize_plus/library.source.less +0 -0
  129. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_bluecrystal/library.source.less +0 -0
  130. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3/library.source.less +0 -0
  131. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3_dark/library.source.less +0 -0
  132. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3_hcb/library.source.less +0 -0
  133. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3_hcw/library.source.less +0 -0
  134. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/Chart.less +0 -0
  135. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/ChartTypeSwitch.less +0 -0
  136. /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/library.source.less +0 -0
@@ -0,0 +1,109 @@
1
+ /*!
2
+ * SAPUI5
3
+ * (c) Copyright 2009-2024 SAP SE. All rights reserved.
4
+ */
5
+ /*global sap*/
6
+ sap.ui.define(
7
+ "sap/zen/crosstab/CellStyleHandler",
8
+ [
9
+ "sap/zen/crosstab/rendering/RenderingConstants",
10
+ "sap/zen/crosstab/utils/Utils"
11
+ ],
12
+ function(RenderingConstants, Utils){
13
+ "use strict";
14
+ sap.zen.crosstab.CellStyleHandler = {};
15
+ sap.zen.crosstab.CellStyleHandler.aStyles = [];
16
+ sap.zen.crosstab.CellStyleHandler.iDataCellAlternatingIndex = -1;
17
+ sap.zen.crosstab.CellStyleHandler.iHeaderCellAlternatingIndex = -1;
18
+ sap.zen.crosstab.CellStyleHandler.oExceptionVisualizationMapping = {};
19
+ sap.zen.crosstab.CellStyleHandler.oExceptionVisualizationMapping[RenderingConstants.ALERT_TYPE_BACKGROUND] = "Background";
20
+ sap.zen.crosstab.CellStyleHandler.oExceptionVisualizationMapping[RenderingConstants.ALERT_TYPE_FONT_COLOR] = "FontColor";
21
+ sap.zen.crosstab.CellStyleHandler.oExceptionVisualizationMapping[RenderingConstants.ALERT_TYPE_STATUS_SYMBOL] = "StatusSymbol";
22
+ sap.zen.crosstab.CellStyleHandler.oExceptionVisualizationMapping[RenderingConstants.ALERT_TYPE_TREND_ASCENDING_SYMBOL] = "TrendAscendingSymbol";
23
+ sap.zen.crosstab.CellStyleHandler.oExceptionVisualizationMapping[RenderingConstants.ALERT_TYPE_TREND_DESCENDING_SYMBOL] = "TrendDescendingSymbol";
24
+ sap.zen.crosstab.CellStyleHandler.oExceptionVisualizationMapping[RenderingConstants.ALERT_TYPE_TREND_GREY_SYMBOL] = "TrendGreySymbol";
25
+ sap.zen.crosstab.CellStyleHandler.getCompleteStyleName = function(sStyle, sCellType) {
26
+ var sCompleteStyle = "";
27
+ if (sCellType === RenderingConstants.TYPE_DATA_CELL) {
28
+ sCompleteStyle = RenderingConstants.STYLE_PREFIX_DATA_CELL + sStyle;
29
+ } else {
30
+ sCompleteStyle =RenderingConstants.STYLE_PREFIX_HEADER_CELL + sStyle;
31
+ }
32
+ return sCompleteStyle;
33
+ };
34
+ sap.zen.crosstab.CellStyleHandler.pushStyle = function(sCompleteStyle) {
35
+ var iIndex = sap.zen.crosstab.CellStyleHandler.aStyles.push(sCompleteStyle);
36
+ // array.push returns the new length of the array, not the index of the new element
37
+ iIndex--;
38
+ return iIndex;
39
+ };
40
+ sap.zen.crosstab.CellStyleHandler.getStyleId = function (sStyle, sCellType) {
41
+ var sCompleteStyle = sap.zen.crosstab.CellStyleHandler.getCompleteStyleName(sStyle, sCellType);
42
+ var iIndex = sap.zen.crosstab.CellStyleHandler.aStyles.indexOf(sCompleteStyle);
43
+ if (iIndex === -1) {
44
+ iIndex = sap.zen.crosstab.CellStyleHandler.pushStyle(sCompleteStyle);
45
+ }
46
+ return iIndex;
47
+ };
48
+ sap.zen.crosstab.CellStyleHandler.pushPresetStyle = function(sStyle, sCellType) {
49
+ var sCompleteStyle = sap.zen.crosstab.CellStyleHandler.getCompleteStyleName(sStyle, sCellType);
50
+ var iIndex = sap.zen.crosstab.CellStyleHandler.pushStyle(sCompleteStyle);
51
+ return iIndex;
52
+ };
53
+ sap.zen.crosstab.CellStyleHandler.translateStyleForMainMode = function(sStyle) {
54
+ if (sStyle.indexOf("CellEntryEnabled") > -1) {
55
+ sStyle = sStyle + "-MainMode";
56
+ }
57
+ return sStyle;
58
+ };
59
+ sap.zen.crosstab.CellStyleHandler.addTextAlignmentStyleForIE = function(sStyle, bIsRtl) {
60
+ if (bIsRtl) {
61
+ sStyle = sStyle + " sapzencrosstab-TextAlignmentIE_RTL";
62
+ } else {
63
+ sStyle = sStyle + " sapzencrosstab-TextAlignmentIE";
64
+ }
65
+ return sStyle;
66
+ };
67
+ //These styles are added in advance because they need special handling later on: IE8 doesn't support alternating styles
68
+ sap.zen.crosstab.CellStyleHandler.iDataCellAlternatingIndex = sap.zen.crosstab.CellStyleHandler.pushPresetStyle(RenderingConstants.STYLE_ALTERNATING, RenderingConstants.TYPE_DATA_CELL);
69
+ sap.zen.crosstab.CellStyleHandler.iHeaderCellAlternatingIndex = sap.zen.crosstab.CellStyleHandler.pushPresetStyle(RenderingConstants.STYLE_ALTERNATING, RenderingConstants.TYPE_HEADER_CELL);
70
+ sap.zen.crosstab.CellStyleHandler.getCssClasses = function (aCellStyles, bIsIE8, bIsRtl, bIsMsIE) {
71
+ var sCss = "";
72
+ var iStylesLength = aCellStyles.length;
73
+ for ( var i = 0; i < iStylesLength; i++) {
74
+ var iStyleId = aCellStyles[i];
75
+ if (iStyleId !== -1) {
76
+ if (!(bIsIE8 && (iStyleId === sap.zen.crosstab.CellStyleHandler.iDataCellAlternatingIndex || iStyleId === sap.zen.crosstab.CellStyleHandler.iHeaderCellAlternatingIndex))) {
77
+ var sStyle = sap.zen.crosstab.CellStyleHandler.aStyles[iStyleId];
78
+ if (sStyle) {
79
+ if (Utils.isMainMode()) {
80
+ sStyle = sap.zen.crosstab.CellStyleHandler.translateStyleForMainMode(sStyle);
81
+ }
82
+ if (bIsMsIE) {
83
+ sStyle = sap.zen.crosstab.CellStyleHandler.addTextAlignmentStyleForIE(sStyle, bIsRtl);
84
+ }
85
+ sCss += sStyle;
86
+ sCss += " ";
87
+ }
88
+ }
89
+ }
90
+ }
91
+ return sCss;
92
+ };
93
+ sap.zen.crosstab.CellStyleHandler.getStyleForExceptionViz = function (iFormatType, iAlertLevel) {
94
+ var style = "Alert" + iAlertLevel + sap.zen.crosstab.CellStyleHandler.oExceptionVisualizationMapping[iFormatType];
95
+ return style;
96
+ };
97
+ sap.zen.crosstab.CellStyleHandler.setExceptionStylesOnCell = function (oCell, iFormatType, iAlertLevel) {
98
+ if (iFormatType > 4) {
99
+ oCell.getArea().columnHasSymbolException(oCell.getCol());
100
+ oCell.addStyle("SymbolAlertBackground");
101
+ }
102
+ var sStyle = sap.zen.crosstab.CellStyleHandler.getStyleForExceptionViz(iFormatType, iAlertLevel);
103
+ if (sStyle) {
104
+ oCell.addStyle(sStyle);
105
+ }
106
+ };
107
+ return sap.zen.crosstab.CellStyleHandler;
108
+ }
109
+ );
@@ -0,0 +1,261 @@
1
+ /*!
2
+ * SAPUI5
3
+ * (c) Copyright 2009-2024 SAP SE. All rights reserved.
4
+ */
5
+ /*global sap*/
6
+ sap.ui.define(
7
+ [
8
+ "jquery.sap.global",
9
+ "sap/zen/crosstab/utils/Utils"
10
+ ],function(jQuery,Utils){
11
+ "use strict";
12
+ jQuery.sap.declare("sap.zen.crosstab.ColResizer");
13
+ sap.zen.crosstab.ColResizer = function (oCrosstab) {
14
+ var that = this;
15
+ var oDataArea = oCrosstab.getDataArea();
16
+ var oRowHeaderArea = oCrosstab.getRowHeaderArea();
17
+ var oResizeCell = null;
18
+ var oResizeCellRect = null;
19
+ var oRenderSizeDivRect = null;
20
+ var oJqResizeRuler = null;
21
+ var oJqTableDiv = null;
22
+ var oJqRenderSizeDiv = null;
23
+ var iMouseDownX = 0;
24
+ var iRulerX = 0;
25
+ var bRulerVisible = false;
26
+ var oUtils;
27
+
28
+ var bIsRtl = false;
29
+
30
+ /**
31
+ * initialize
32
+ */
33
+ this.initialize = function() {
34
+ oUtils = oCrosstab.getUtils();
35
+ bIsRtl = oCrosstab.getPropertyBag().isRtl();
36
+ oJqTableDiv = oCrosstab.getTableDiv();
37
+ oJqRenderSizeDiv = oCrosstab.getRenderSizeDiv();
38
+ oRenderSizeDivRect = oUtils.getRtlAwareBoundingClientRect(oJqRenderSizeDiv[0]);
39
+ oJqResizeRuler = jQuery(document.getElementById(oCrosstab.getId() + "_colResizeRuler"));
40
+ this.attachEvents();
41
+ };
42
+ /**
43
+ * attachEvents
44
+ */
45
+ this.attachEvents = function() {
46
+ oJqTableDiv.unbind("dblclick");
47
+ oJqTableDiv.bind("dblclick", this.onDoubleClick);
48
+ oJqResizeRuler.unbind("mousemove", this.onMouseMove);
49
+ oJqResizeRuler.bind("mousemove", this.onMouseMove);
50
+ var aResizers = oJqTableDiv.find(".sapzencrosstab-columnResizeHandleWithSort, .sapzencrosstab-columnResizeHandle");
51
+ jQuery.each(aResizers, function(iIndex, oDomResizer) {
52
+ var oJqResizer = jQuery(oDomResizer);
53
+ oJqResizer.unbind("mousedown", that.onMouseDown);
54
+ oJqResizer.bind("mousedown", that.onMouseDown);
55
+ oJqResizer.unbind("mouseup", that.executeonMouseUp);
56
+ oJqResizer.bind("mouseup", that.executeonMouseUp);
57
+
58
+ oJqResizer.unbind("mousemove", that.onMouseMove);
59
+ oJqResizer.bind("mousemove", that.onMouseMove);
60
+ });
61
+ };
62
+
63
+ /**
64
+ * onDoubleClick
65
+ */
66
+ this.onDoubleClick = function(e) {
67
+ that.determineResizeCell(e, true);
68
+ if (oResizeCell) {
69
+ that.resizeCol(oResizeCell, -1);
70
+ oResizeCell = null;
71
+
72
+ // handled
73
+ Utils.cancelEvent(e);
74
+ }
75
+ };
76
+
77
+ /**
78
+ * onMouseUp
79
+ */
80
+ this.onMouseUp = function(e) {
81
+ var iNewColWidth;
82
+
83
+ if (oResizeCell && oResizeCellRect) {
84
+ iNewColWidth = that.calculateNewColWidth(e);
85
+ if (iNewColWidth > 0) {
86
+ that.resizeCol(oResizeCell, iNewColWidth);
87
+ }
88
+
89
+ // cleanup
90
+ oResizeCell = null;
91
+ oResizeCellRect = null;
92
+ oJqResizeRuler.css("visibility", "hidden");
93
+ bRulerVisible = false;
94
+ jQuery(document).off("mouseup", that.onMouseUp);
95
+
96
+ // handled
97
+ Utils.cancelEvent(e);
98
+ }
99
+ };
100
+
101
+ /**
102
+ * onMouseDown
103
+ */
104
+ this.onMouseDown = function(e) {
105
+ if (!oResizeCell) {
106
+ that.determineResizeCell(e);
107
+ if (oResizeCell) {
108
+ oResizeCellRect = oUtils.getRtlAwareBoundingClientRect(document.getElementById(oResizeCell.getId()));
109
+
110
+ iMouseDownX = e.clientX;
111
+
112
+ // show ruler
113
+ oJqResizeRuler.outerHeight(oJqRenderSizeDiv.outerHeight());
114
+ iRulerX = oResizeCellRect.end - oJqResizeRuler.outerWidth() - oRenderSizeDivRect.begin;
115
+ oJqResizeRuler.css(bIsRtl ? "right" : "left", iRulerX + "px");
116
+ jQuery(document).on("mouseup", that.onMouseUp);
117
+ // handled
118
+ Utils.cancelEvent(e);
119
+ }
120
+ }
121
+ };
122
+
123
+ /**
124
+ * onMouseMove
125
+ */
126
+ this.onMouseMove = function(e) {
127
+ var iCurrentRulerX;
128
+
129
+ if (oResizeCell && oResizeCellRect) {
130
+ iCurrentRulerX = iRulerX + that.getDelta(e);
131
+ if (iCurrentRulerX !== iRulerX) {
132
+ iCurrentRulerX = Math.max(iCurrentRulerX, (oResizeCellRect.begin - oRenderSizeDivRect.begin));
133
+ if (!bRulerVisible) {
134
+ oJqResizeRuler.css("visibility", "visible");
135
+ bRulerVisible = true;
136
+ }
137
+ oJqResizeRuler.css(bIsRtl ? "right" : "left", iCurrentRulerX + "px");
138
+ }
139
+ // handled
140
+ Utils.cancelEvent(e);
141
+ }
142
+ };
143
+ /**
144
+ * isResizeAction
145
+ */
146
+ this.isResizeAction = function() {
147
+ if (oResizeCell && oResizeCellRect) {
148
+ return true;
149
+ }
150
+ return false;
151
+ };
152
+
153
+ /**
154
+ * determineResizeCell
155
+ */
156
+ this.determineResizeCell = function(e, bIsDoubleClick) {
157
+ var iLastCol;
158
+ var oArea;
159
+
160
+ oResizeCell = sap.ui.getCore().byId(e.target.id.slice(5));
161
+
162
+ // get cell with finest granularity in Area
163
+ if (!bIsDoubleClick && oResizeCell.getColSpan() > 1) {
164
+ iLastCol = oResizeCell.getCol() + oResizeCell.getColSpan() - 1;
165
+ oArea = oResizeCell.getArea();
166
+ oResizeCell = oArea.getCellWithColSpan(oArea.getRowCnt() - 1, iLastCol);
167
+ if (!oResizeCell) {
168
+ oResizeCell = oArea.getCellWithRowSpan(oArea.getRowCnt() - 1, iLastCol);
169
+ }
170
+ }
171
+ };
172
+
173
+ /**
174
+ * calculateNewColWidth
175
+ */
176
+ this.calculateNewColWidth = function(e) {
177
+ var iDeltaX;
178
+ var iNewColWidth = -1;
179
+
180
+ if (oResizeCell && oResizeCellRect) {
181
+ iDeltaX = that.getDelta(e);
182
+ if (iDeltaX !== 0) {
183
+ iNewColWidth = oResizeCellRect.width + iDeltaX;
184
+ // minimal cell width: 1 px -> will give default minimal cell width > 0 during rendering
185
+ iNewColWidth = Math.max(1, iNewColWidth);
186
+ }
187
+ }
188
+
189
+ return iNewColWidth;
190
+ };
191
+
192
+ /**
193
+ * getDelta
194
+ */
195
+ this.getDelta = function(e) {
196
+ if (bIsRtl) {
197
+ return (iMouseDownX - e.clientX);
198
+ } else {
199
+ return (e.clientX - iMouseDownX);
200
+ }
201
+ };
202
+
203
+ /**
204
+ * resizeCol
205
+ */
206
+ this.resizeCol = function(oCell, iWidth) {
207
+ var oUpperArea = oCell.getArea();
208
+ if (oUpperArea.isColHeaderArea()) {
209
+ this.setColWidths(oCell, oUpperArea, oDataArea, iWidth);
210
+ } else if (oUpperArea.isDimHeaderArea()) {
211
+ this.setColWidths(oCell, oUpperArea, oRowHeaderArea, iWidth);
212
+ }
213
+ this.sendUpdateColWidthCommand(oCell, iWidth);
214
+ oCrosstab.invalidate();
215
+ };
216
+
217
+ /**
218
+ * setColWidths
219
+ */
220
+ this.setColWidths = function(oCell, oUpperArea, oLowerArea, iWidth) {
221
+ var iEffectiveCol;
222
+ var iCol;
223
+ var iEndCol;
224
+
225
+ iEffectiveCol = oCell.getCol() + oCell.getColSpan() - 1;
226
+
227
+ if (iWidth > 0) {
228
+ oUpperArea.setColWidth(iEffectiveCol, iWidth);
229
+ oUpperArea.setUserResizedCol(iEffectiveCol);
230
+ oLowerArea.setColWidth(iEffectiveCol, iWidth);
231
+ oLowerArea.setUserResizedCol(iEffectiveCol);
232
+ } else {
233
+ // reset
234
+ iCol = 0;
235
+ iEndCol = oCell.getCol() + oCell.getColSpan() - oCell.getEffectiveColSpan();
236
+ for (iCol = iEffectiveCol; iCol >= iEndCol; iCol--) {
237
+ oUpperArea.resetColWidth(iCol);
238
+ oLowerArea.resetColWidth(iCol);
239
+ oUpperArea.setUserResizedCol(iCol);
240
+ oLowerArea.setUserResizedCol(iCol);
241
+ }
242
+ }
243
+ };
244
+
245
+ /**
246
+ * sendUpdateColWidthCommand
247
+ */
248
+ this.sendUpdateColWidthCommand = function(oCell, iWidth) {
249
+ var sCommand = oCrosstab.getUpdateColWidthCommand();
250
+ if (sCommand != null && sCommand.length > 0) {
251
+ var iTableCol = oCell.getTableCol();
252
+ sCommand = sCommand.replace("__COL__", iTableCol);
253
+ sCommand = sCommand.replace("__WIDTH__", Math.round(iWidth));
254
+ var fAction = new Function(sCommand);
255
+ fAction();
256
+ }
257
+ };
258
+ };
259
+ return sap.zen.crosstab.ColResizer;
260
+ }
261
+ );
@@ -0,0 +1,61 @@
1
+ /*!
2
+ * SAPUI5
3
+ * (c) Copyright 2009-2024 SAP SE. All rights reserved.
4
+ */
5
+ /*global sap*/
6
+ sap.ui.define(
7
+ [
8
+ "jquery.sap.global",
9
+ "sap/zen/crosstab/BaseArea",
10
+ "sap/zen/crosstab/rendering/RenderingConstants"
11
+ ],
12
+ function(jQuery,BaseArea,RenderingConstants){
13
+ "use strict";
14
+ jQuery.sap.declare("sap.zen.crosstab.ColumnHeaderArea");
15
+ sap.zen.crosstab.ColumnHeaderArea = function (oCrosstab) {
16
+ BaseArea.call(this, oCrosstab);
17
+ this.sAreaType = RenderingConstants.TYPE_COLUMN_HEADER_AREA;
18
+ this.iRenderStartCol = 0;
19
+ this.iRenderColCnt = 0;
20
+ this.bLastPageLoaded = false;
21
+ };
22
+ sap.zen.crosstab.ColumnHeaderArea.prototype = jQuery.sap.newObject(BaseArea.prototype);
23
+ sap.zen.crosstab.ColumnHeaderArea.prototype.renderArea = function (oRenderManager) {
24
+ this.renderContainerStructure(oRenderManager, "sapzencrosstab-ColumnHeaderArea", false, this.oCrosstab.isHCutOff());
25
+ };
26
+ sap.zen.crosstab.ColumnHeaderArea.prototype.getSelectedCellsBySelectionCoordinates = function (iRow, iCol) {
27
+ var oClickedCell = this.oDataModel.getCellWithSpan(iRow, iCol);
28
+ var oResultCells = {};
29
+ if(oClickedCell){
30
+ //Search all cells below the clicked cell
31
+ oResultCells[oClickedCell.getId()] = oClickedCell;
32
+ var iSpan = oClickedCell.getColSpan();
33
+ var iStartRow = oClickedCell.getRow()+1;
34
+ var iRowCnt = this.getRowCnt() - iStartRow;
35
+ var iSearchCol = 0;
36
+ var aCellsInCol = null;
37
+ for(var i = 0; i<iSpan; i++){
38
+ iSearchCol = oClickedCell.getCol()+i;
39
+ aCellsInCol = this.oDataModel.getCellsByCol(iSearchCol, iStartRow, iRowCnt);
40
+ for(var j = 0; j<aCellsInCol.length; j++){
41
+ oResultCells[aCellsInCol[j].getId()] = aCellsInCol[j];
42
+ }
43
+ }
44
+ return oResultCells;
45
+ }
46
+ return null;
47
+ };
48
+ sap.zen.crosstab.ColumnHeaderArea.prototype.getSelectedCellsByDataSelection = function (oDataCell) {
49
+ var oResultCells = {};
50
+ var iStartRow = 0;
51
+ var iEndRow = this.getRowCnt();
52
+ var iCol = oDataCell.getCol();
53
+ for(var iRow = iStartRow; iRow<iEndRow; iRow++){
54
+ var oCell = this.oDataModel.getCellWithSpan(iRow, iCol);
55
+ oResultCells[oCell.getId()] = oCell;
56
+ }
57
+ return oResultCells;
58
+ };
59
+ return sap.zen.crosstab.ColumnHeaderArea;
60
+ }
61
+ );