@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,357 @@
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/ui/core/Control",
10
+ "sap/zen/crosstab/IHeaderCell",
11
+ "sap/zen/crosstab/CellStyleHandler",
12
+ "sap/zen/crosstab/rendering/RenderingConstants",
13
+ "sap/zen/crosstab/utils/Utils",
14
+ "sap/zen/crosstab/library"
15
+ ],
16
+ function (
17
+ jQuery, Control, IHeaderCell, CellStyleHandler,
18
+ RenderingConstants
19
+ ) {
20
+ "use strict";
21
+ // Provides control sap.zen.crosstab.HeaderCell.
22
+ jQuery.sap.declare("sap.zen.crosstab.HeaderCell");
23
+ /**
24
+ * Constructor for a new HeaderCell.
25
+ *
26
+ * @param {string} [sId] id for the new control, generated automatically if no id is given
27
+ * @param {object} [mSettings] initial settings for the new control
28
+ *
29
+ * @class
30
+ * Add your documentation for the new HeaderCell
31
+ * @extends sap.ui.core.Control
32
+ *
33
+ * @constructor
34
+ * @public
35
+ * @name sap.zen.crosstab.HeaderCell
36
+
37
+ */
38
+ Control.extend("sap.zen.crosstab.HeaderCell", /** @lends sap.zen.crosstab.HeaderCell.prototype */ {
39
+ metadata: {
40
+
41
+ library: "sap.zen.crosstab",
42
+ properties: {
43
+
44
+ /**
45
+ Rowspan of the cell
46
+ */
47
+ rowSpan: { type: "int", group: "Misc", defaultValue: null },
48
+
49
+ /**
50
+ Colspan of the cell
51
+ */
52
+ colSpan: { type: "int", group: "Misc", defaultValue: null },
53
+
54
+ /**
55
+ Text of the cell
56
+ */
57
+ text: { type: "string", group: "Misc", defaultValue: null },
58
+
59
+ /**
60
+ helper to format the cell
61
+ */
62
+ formatter: { type: "object", group: "Misc", defaultValue: null },
63
+
64
+ /**
65
+ whether to merge the cell if the keys are equal
66
+ */
67
+ mergeKey: { type: "string", group: "Misc", defaultValue: null },
68
+
69
+ /**
70
+ sorting
71
+ */
72
+ sort: { type: "string", group: "Misc", defaultValue: null },
73
+
74
+ /**
75
+ sort action
76
+ */
77
+ sortAction: { type: "string", group: "Misc", defaultValue: null },
78
+
79
+ /**
80
+ area of the cell
81
+ */
82
+ area: { type: "object", group: "Misc", defaultValue: null },
83
+
84
+ /**
85
+ the effective col span
86
+ */
87
+ effectiveColSpan: { type: "int", group: "Misc", defaultValue: null },
88
+
89
+ /**
90
+ the effective row span
91
+ */
92
+ effectiveRowSpan: { type: "int", group: "Misc", defaultValue: null },
93
+
94
+ /**
95
+ the row of the cell in the crosstab
96
+ */
97
+ row: { type: "int", group: "Misc", defaultValue: null },
98
+
99
+ /**
100
+ the column of the cell in the crosstab
101
+ */
102
+ col: { type: "int", group: "Misc", defaultValue: null },
103
+
104
+ /**
105
+ the level of the cell
106
+ */
107
+ level: { type: "int", group: "Misc", defaultValue: null },
108
+
109
+ /**
110
+ the drillstate of the cell
111
+ */
112
+ drillState: { type: "string", group: "Misc", defaultValue: null },
113
+
114
+ /**
115
+ the hierarcyh action of the cell
116
+ */
117
+ hierarchyAction: { type: "string", group: "Misc", defaultValue: null },
118
+
119
+ /**
120
+ the hierarchy tooltip
121
+ */
122
+ hierarchyTooltip: { type: "string", group: "Misc", defaultValue: null },
123
+
124
+ /**
125
+ the IE8 row span
126
+ */
127
+ htmlIE8RowSpan: { type: "int", group: "Misc", defaultValue: 1 },
128
+
129
+ /**
130
+ the text sort index
131
+ */
132
+ sortTextIndex: { type: "int", group: "Misc", defaultValue: null },
133
+
134
+ /**
135
+ the row of the tabe
136
+ */
137
+ tableRow: { type: "int", group: "Misc", defaultValue: null },
138
+
139
+ /**
140
+ the column of the table
141
+ */
142
+ tableCol: { type: "int", group: "Misc", defaultValue: null },
143
+
144
+ /**
145
+ the alignment of the cell
146
+ */
147
+ alignment: { type: "string", group: "Misc", defaultValue: null },
148
+
149
+ /**
150
+ the id of the associated member
151
+ */
152
+ memberId: { type: "string", group: "Misc", defaultValue: null },
153
+
154
+ /**
155
+ the id of the parent of the associated member
156
+ */
157
+ parentMemberId: { type: "string", group: "Misc", defaultValue: null },
158
+
159
+ /**
160
+ the node alignment
161
+ */
162
+ nodeAlignment: { type: "string", group: "Misc", defaultValue: null }
163
+ }
164
+ }
165
+ });
166
+
167
+ sap.zen.crosstab.HeaderCell.prototype.init = function () {
168
+ this.aStyles = [];
169
+ this.bLoading = false;
170
+ this.bSelectable = false;
171
+ this.bIsResult = false;
172
+ this.bIsMobileResize = false;
173
+ this.sUnit = "";
174
+ this.bIsEntryEnabled = false;
175
+ this.sPassiveCellType = RenderingConstants.PASSIVE_CELL_TYPE_NORMAL;
176
+ this.iNumberOfLineBreaks = 0;
177
+ this.sScalingAxis = null;
178
+ this.bIsPivotCell = false;
179
+ this.bIsSplitPivotCell = false;
180
+ this.bIsRevertDrop = false;
181
+ };
182
+
183
+ sap.zen.crosstab.HeaderCell.prototype.getCellType = function () {
184
+ return RenderingConstants.TYPE_HEADER_CELL;
185
+ };
186
+
187
+ sap.zen.crosstab.HeaderCell.prototype.isHeaderCell = function () {
188
+ return true;
189
+ };
190
+
191
+ sap.zen.crosstab.HeaderCell.prototype.getCssClassNames = function (bIsIE8, bIsRtl, bIsMsIE) {
192
+ return CellStyleHandler.getCssClasses(this.aStyles, bIsIE8, bIsRtl, bIsMsIE);
193
+ };
194
+
195
+ sap.zen.crosstab.HeaderCell.prototype.getStyleIdList = function () {
196
+ return this.aStyles;
197
+ };
198
+
199
+ sap.zen.crosstab.HeaderCell.prototype.setStyleIdList = function (aNewStyles) {
200
+ this.aStyles = aNewStyles;
201
+ };
202
+
203
+ sap.zen.crosstab.HeaderCell.prototype.addStyle = function (sStyle) {
204
+ var iStyleId = CellStyleHandler.getStyleId(
205
+ sStyle,
206
+ RenderingConstants.TYPE_HEADER_CELL
207
+ );
208
+ if (this.aStyles.indexOf(iStyleId) === -1) {
209
+ this.aStyles.push(iStyleId);
210
+ }
211
+ };
212
+
213
+ sap.zen.crosstab.HeaderCell.prototype.removeStyle = function (sStyle) {
214
+ var iStyleId = CellStyleHandler.getStyleId(
215
+ sStyle,
216
+ RenderingConstants.TYPE_HEADER_CELL
217
+ );
218
+ var iIndex = this.aStyles.indexOf(iStyleId);
219
+ if (iIndex !== -1) {
220
+ this.aStyles.splice(iIndex, 1);
221
+ }
222
+ };
223
+
224
+ sap.zen.crosstab.HeaderCell.prototype.hasStyle = function (sStyle) {
225
+ var iStyleId = CellStyleHandler.getStyleId(
226
+ sStyle,
227
+ RenderingConstants.TYPE_HEADER_CELL
228
+ );
229
+ var iIndex = this.aStyles.indexOf(iStyleId);
230
+ if (iIndex === -1) {
231
+ return false;
232
+ } else {
233
+ return true;
234
+ }
235
+ };
236
+
237
+ sap.zen.crosstab.HeaderCell.prototype.isLoading = function () {
238
+ return this.bLoading;
239
+ };
240
+
241
+ sap.zen.crosstab.HeaderCell.prototype.setLoading = function (bLoading) {
242
+ this.bLoading = bLoading;
243
+ };
244
+
245
+ sap.zen.crosstab.HeaderCell.prototype.isSelectable = function () {
246
+ return this.bSelectable;
247
+ };
248
+
249
+ sap.zen.crosstab.HeaderCell.prototype.setSelectable = function (bSelectable) {
250
+ this.bSelectable = bSelectable;
251
+ };
252
+
253
+ sap.zen.crosstab.HeaderCell.prototype.setResult = function (bIsResult) {
254
+ this.bIsResult = bIsResult;
255
+ };
256
+
257
+ sap.zen.crosstab.HeaderCell.prototype.isResult = function () {
258
+ return this.bIsResult;
259
+ };
260
+
261
+ sap.zen.crosstab.HeaderCell.prototype.getUnescapedText = function () {
262
+ return sap.zen.crosstab.utils.Utils.unEscapeDisplayString(this.getText());
263
+ };
264
+
265
+ sap.zen.crosstab.HeaderCell.prototype.isMobileResize = function () {
266
+ return this.bIsMobileResize;
267
+ };
268
+
269
+ sap.zen.crosstab.HeaderCell.prototype.setMobileResize = function (pbMobileResize) {
270
+ this.bIsMobileResize = pbMobileResize;
271
+ };
272
+
273
+ sap.zen.crosstab.HeaderCell.prototype.setEntryEnabled = function (bIsEntryEnabled) {
274
+ this.bIsEntryEnabled = bIsEntryEnabled;
275
+ };
276
+
277
+ sap.zen.crosstab.HeaderCell.prototype.isEntryEnabled = function () {
278
+ return this.bIsEntryEnabled;
279
+ };
280
+
281
+ sap.zen.crosstab.HeaderCell.prototype.setUnit = function (sUnit) {
282
+ this.sUnit = sUnit;
283
+ };
284
+
285
+ sap.zen.crosstab.HeaderCell.prototype.getUnit = function () {
286
+ return this.sUnit;
287
+ };
288
+
289
+ sap.zen.crosstab.HeaderCell.prototype.getPassiveCellType = function () {
290
+ return this.sPassiveCellType;
291
+ };
292
+
293
+ sap.zen.crosstab.HeaderCell.prototype.setPassiveCellType = function (sPCellType) {
294
+ this.sPassiveCellType = sPCellType;
295
+ };
296
+
297
+ sap.zen.crosstab.HeaderCell.prototype.setNumberOfLineBreaks = function (iNumberOfLineBreaks) {
298
+ this.iNumberOfLineBreaks = iNumberOfLineBreaks;
299
+ };
300
+
301
+ sap.zen.crosstab.HeaderCell.prototype.getNumberOfLineBreaks = function () {
302
+ return this.iNumberOfLineBreaks;
303
+ };
304
+
305
+ sap.zen.crosstab.HeaderCell.prototype.getScalingAxis = function () {
306
+ return this.sScalingAxis;
307
+ };
308
+
309
+ sap.zen.crosstab.HeaderCell.prototype.setScalingAxis = function (sScalingAxis) {
310
+ this.sScalingAxis = sScalingAxis;
311
+ };
312
+
313
+ sap.zen.crosstab.HeaderCell.prototype.isPivotCell = function () {
314
+ return this.bIsPivotCell;
315
+ };
316
+
317
+ sap.zen.crosstab.HeaderCell.prototype.setPivotCell = function (bIsPivotCell) {
318
+ this.bIsPivotCell = bIsPivotCell;
319
+ };
320
+
321
+ sap.zen.crosstab.HeaderCell.prototype.isSplitPivotCell = function () {
322
+ return this.bIsSplitPivotCell;
323
+ };
324
+
325
+ sap.zen.crosstab.HeaderCell.prototype.setSplitPivotCell = function (bIsSplitPivotCell) {
326
+ this.bIsSplitPivotCell = bIsSplitPivotCell;
327
+ };
328
+
329
+ sap.zen.crosstab.HeaderCell.prototype.isRevertDrop = function () {
330
+ return this.bIsRevertDrop;
331
+ };
332
+
333
+ sap.zen.crosstab.HeaderCell.prototype.setRevertDrop = function (bIsRevertDrop) {
334
+ this.bIsRevertDrop = bIsRevertDrop;
335
+ };
336
+
337
+ sap.zen.crosstab.HeaderCell.prototype.getFormattedText = function () {
338
+ var lText = this.getText();
339
+
340
+ var oArea = this.getArea();
341
+ var fRenderCallback = oArea.getRenderCellCallback();
342
+ if (fRenderCallback) {
343
+ var oCallbackResult = fRenderCallback(
344
+ new IHeaderCell(
345
+ )
346
+ );
347
+ lText = oCallbackResult.renderText;
348
+ }
349
+ var oFormatter = this.getFormatter();
350
+ if (oFormatter) {
351
+ lText = oFormatter.format(lText);
352
+ }
353
+ return lText;
354
+ };
355
+ return sap.zen.crosstab.HeaderCell;
356
+ }
357
+ );
@@ -0,0 +1,333 @@
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/rendering/RenderingConstants",
10
+ "sap/zen/crosstab/IHeaderCell",
11
+ "sap/zen/crosstab/TextConstants",
12
+ "sap/zen/crosstab/utils/Utils"
13
+ ],
14
+ function(jQuery,RenderingConstants, IHeaderCell, TextConstants, Utils) {
15
+ "use strict";
16
+ jQuery.sap.declare("sap.zen.crosstab.HeaderCellRenderer");
17
+ /**
18
+ * @class HeaderCell renderer.
19
+ * @static
20
+ */
21
+ sap.zen.crosstab.HeaderCellRenderer = {};
22
+ /**
23
+ * Renders the HTML for the given control, using the provided {@link sap.ui.core.RenderManager}.
24
+ *
25
+ * @param {sap.ui.core.RenderManager}
26
+ * oRenderManager the RenderManager that can be used for writing to the Render-Output-Buffer
27
+ * @param {sap.ui.core.Control}
28
+ * oControl an object representation of the control that should be rendered
29
+ */
30
+ sap.zen.crosstab.HeaderCellRenderer.render = function (oRenderManager, oControl) {
31
+ // convenience variable
32
+ var rm = oRenderManager;
33
+ var oArea = oControl.getArea();
34
+ var fRenderCallback = oArea.getRenderCellCallback();
35
+ var oCrosstab = oArea.getCrosstab();
36
+ var iRowspan = oControl.getEffectiveRowSpan();
37
+ var iColspan = oControl.getEffectiveColSpan();
38
+ var oAdditionalStyles = null;
39
+ if (fRenderCallback) {
40
+ var oCallbackResult = fRenderCallback(new IHeaderCell(oControl));
41
+ oAdditionalStyles = oCallbackResult.additionalStyles;
42
+ }
43
+ // Text to be rendered
44
+ var sRenderText = oControl.getFormattedText();
45
+ var sSort = oControl.getSort();
46
+ var sDrillState = oControl.getDrillState();
47
+ // Styles
48
+ var sCssClasses = oControl.getCssClassNames(oCrosstab.isIE8Mode(), oCrosstab.getPropertyBag().isRtl(), oCrosstab.getUtils().isMsIE());
49
+ if (sSort) {
50
+ // Empty css class to enable hover effects
51
+ sCssClasses += " sapzencrosstab-HeaderCellSortable";
52
+ }
53
+ if (sDrillState) {
54
+ sCssClasses += " sapzencrosstab-HeaderCellHierarchy";
55
+ }
56
+ // write the HTML into the render manager
57
+ rm.write("<td");
58
+ rm.writeControlData(oControl);
59
+ rm.writeAttributeEscaped("class", sCssClasses);
60
+ rm.writeAttributeEscaped("tabindex", RenderingConstants.TABINDEX);
61
+ if (iColspan > 1) {
62
+ rm.writeAttributeEscaped("colspan", iColspan);
63
+ }
64
+ if (iRowspan > 1) {
65
+ rm.writeAttributeEscaped("rowspan", iRowspan);
66
+ }
67
+ rm.write(">"); // td element
68
+ // cell layout div
69
+ rm.write("<div");
70
+ rm.writeAttributeEscaped("id", oControl.getId() + "_cellLayoutDiv");
71
+ rm.writeAttributeEscaped("tabindex", RenderingConstants.TABINDEX);
72
+ rm.writeAttribute("class", "sapzencrosstab-cellLayoutDiv");
73
+ if (oControl.isEntryEnabled()) {
74
+ // prepare for postprocessing logic workaround in adjustColWidths of RenderEngine
75
+ rm.addStyle("width", "0px");
76
+ rm.writeStyles();
77
+ }
78
+ rm.write(">"); // div element
79
+ if (oControl.isEntryEnabled()) {
80
+ rm.write("<table style='width: 100%; border-spacing: 0px;'><tbody>");
81
+ rm.write("<tr>");
82
+ rm.write("<td style='width: 100%; padding: 0px 5px 0px 0px;'>");
83
+ }
84
+ // cell content div
85
+ rm.write("<div");
86
+ rm.writeAttributeEscaped("id", oControl.getId() + "_contentDiv");
87
+ rm.writeAttributeEscaped("tabindex",RenderingConstants.TABINDEX);
88
+ // tooltip
89
+ if (sRenderText) {
90
+ rm.writeAttributeEscaped("title", sRenderText);
91
+ }
92
+ var sClasses = "sapzencrosstab-HeaderCellContentDiv";
93
+ if (oControl.isLoading()) {
94
+ sClasses += " sapzencrosstab-LoadingCellContentDiv";
95
+ }
96
+ rm.writeAttributeEscaped("class", sClasses);
97
+ if (oAdditionalStyles) {
98
+ for ( var sStyleKey in oAdditionalStyles) {
99
+ rm.addStyle(sStyleKey, oAdditionalStyles[sStyleKey]);
100
+ }
101
+ }
102
+ rm.writeStyles();
103
+ if (oControl.isEntryEnabled()) {
104
+ rm.addStyle("width", "100%");
105
+ rm.writeStyles();
106
+ }
107
+ rm.write(">"); // div element
108
+ renderCellContent();
109
+ renderColResizer();
110
+ rm.write("</div>"); // cell content div
111
+ rm.write("</div>"); // cell layout div
112
+ if (oControl.isEntryEnabled()) {
113
+ rm.write("</td>");
114
+ rm.write("<td style='padding: 0px'>");
115
+ rm.write("<div");
116
+ rm.writeAttributeEscaped("id", "vhlp_" + oControl.getId());
117
+ var sClassString = "sapzencrosstab-HeaderCellDivValueHelp";
118
+ if (Utils.isMainMode()) {
119
+ sClassString += "-MainMode";
120
+ }
121
+ sClassString += " sapzencrosstab-HeaderCellValueHelp";
122
+ rm.writeAttributeEscaped("class", sClassString);
123
+ rm.write(">");
124
+ rm.write("</div>");
125
+ rm.write("</td>");
126
+ rm.write("</tr>");
127
+ rm.write("</tbody></table>");
128
+ }
129
+ rm.write("</td>");
130
+ function renderCellContent() {
131
+ if (sSort || sDrillState) {
132
+ createCellContentTable(sSort, sDrillState);
133
+ } else {
134
+ rm.write(sRenderText);
135
+ }
136
+ }
137
+ function createCellContent() {
138
+ rm.write("<div");
139
+ rm.writeAttributeEscaped("id", oControl.getId() + "_textContentDiv");
140
+ rm.writeAttributeEscaped("tabindex", RenderingConstants.TABINDEX);
141
+ // ellipsis handling when content is too large
142
+ rm.addStyle("overflow", "hidden");
143
+ rm.addStyle("text-overflow", "ellipsis");
144
+ rm.writeStyles();
145
+ rm.write(">");
146
+ rm.write(sRenderText);
147
+ rm.write("</div>");
148
+ }
149
+ function createCellContentTable() {
150
+ rm.write("<table><tbody>");
151
+ insertColHeaderHierarchySpacerLinesBefore();
152
+ rm.write("<tr>");
153
+ insertHierarchyActionImage();
154
+ insertTextContent();
155
+ insertSortingImage();
156
+ insertRowHeaderHierarchSpacerDivAfter();
157
+ rm.write("</tr>");
158
+ insertColHeaderHierarchySpacerLinesAfter();
159
+ rm.write("</tbody></table>");
160
+ }
161
+ function insertHierarchyActionImage() {
162
+ if (sDrillState) {
163
+ var iLevel = oControl.getLevel();
164
+ var isRowHeaderArea = oControl.getArea().isRowHeaderArea();
165
+ var sClass = "sapzencrosstab-HeaderCellDivHierarchy ";
166
+ if (oControl.getHierarchyAction()) {
167
+ if (sDrillState === "O") {
168
+ sClass += "sapzencrosstab-CollapseNode";
169
+ if (oControl.getNodeAlignment() === "bottom") {
170
+ sClass += " sapzencrosstab-BottomNode";
171
+ }
172
+ } else if (sDrillState === "C") {
173
+ sClass += "sapzencrosstab-ExpandNode";
174
+ if (sap.ui.getCore().getConfiguration().getRTL()) {
175
+ sClass += "-RTL";
176
+ }
177
+ }
178
+ if (sDrillState === "O" || sDrillState === "C") {
179
+ sClass += " sapzencrosstab-PointerCursor";
180
+ }
181
+ }
182
+ // insert space before text
183
+ if (iLevel > 0) {
184
+ if (isRowHeaderArea) {
185
+ var iWidth = iLevel * oCrosstab.getHierarchyIndentWidth();
186
+ rm.write("<td>");
187
+ rm.write("<div");
188
+ rm.writeAttributeEscaped("tabindex", RenderingConstants.TABINDEX);
189
+ rm.addStyle("width", iWidth + "px");
190
+ rm.writeAttribute("class", "sapzencrosstab-HierarchySpacerDivBefore");
191
+ rm.writeAttributeEscaped("xtabspacer-cellid", oControl.getId());
192
+ rm.writeStyles();
193
+ rm.write("></div>");
194
+ rm.write("</td>");
195
+ }
196
+ }
197
+ if ((sDrillState === "L" && iLevel > 0) || sDrillState !== "L") {
198
+ rm.write("<td>");
199
+ rm.write("<div");
200
+ if (oControl.getHierarchyAction()) {
201
+ rm.writeAttributeEscaped("id", "hier_" + oControl.getId());
202
+ }
203
+ rm.writeAttributeEscaped("class", sClass);
204
+ // Tooltip
205
+ var sHierarchyTooltip = oControl.getHierarchyTooltip();
206
+ if (sHierarchyTooltip) {
207
+ rm.writeAttributeEscaped("title", sHierarchyTooltip);
208
+ }
209
+ rm.write("></div>");
210
+ rm.write("</td>");
211
+ }
212
+ }
213
+ }
214
+ function insertTextContent() {
215
+ rm.write("<td>");
216
+ createCellContent();
217
+ rm.write("</td>");
218
+ }
219
+ function createSortingImage() {
220
+ if (sSort) {
221
+ var iTextIndex = 0;
222
+ var sClass = "sapzencrosstab-HeaderCellDivSortable ";
223
+ rm.write("<div");
224
+ if (sSort === "NONE") {
225
+ sClass += "sapzencrosstab-HeaderCellSortNone";
226
+ iTextIndex = 0;
227
+ } else if (sSort === "ASC") {
228
+ sClass += "sapzencrosstab-HeaderCellSortAsc";
229
+ iTextIndex = 1;
230
+ } else if (sSort === "DESC") {
231
+ sClass += "sapzencrosstab-HeaderCellSortDesc";
232
+ iTextIndex = 2;
233
+ }
234
+ rm.writeAttributeEscaped("class", sClass);
235
+ rm.writeAttribute("id", "sort_" + oControl.getId());
236
+ // Tooltip
237
+ var sSortTooltip = oCrosstab.getPropertyBag().getSortingToolTip(iTextIndex);
238
+ if (sSortTooltip) {
239
+ rm.writeAttributeEscaped("title", sSortTooltip);
240
+ }
241
+ rm.write("></div>");
242
+ }
243
+ }
244
+ function insertSortingImage() {
245
+ if (sSort) {
246
+ rm.write("<td>");
247
+ createSortingImage();
248
+ rm.write("</td>");
249
+ }
250
+ }
251
+ function insertRowHeaderHierarchSpacerDivAfter () {
252
+ if (sDrillState && oControl.getArea().isRowHeaderArea()) {
253
+ var iLevel = oControl.getLevel();
254
+ var iMaxLevel = oCrosstab.getRowHeaderHierarchyLevels()[oControl.getCol()];
255
+ var iDiff = iMaxLevel - iLevel;
256
+ if (iDiff > 0) {
257
+ var iWidth = iDiff * oCrosstab.getHierarchyIndentWidth();
258
+ rm.write("<td>");
259
+ rm.write("<div");
260
+ rm.writeAttributeEscaped("tabindex", RenderingConstants.TABINDEX);
261
+ rm.addStyle("width", iWidth + "px");
262
+ rm.writeAttribute("class", "sapzencrosstab-HierarchySpacerDivAfter");
263
+ rm.writeAttributeEscaped("xtabspacer-cellid", oControl.getId());
264
+ rm.writeStyles();
265
+ rm.write("></div>");
266
+ rm.write("</td>");
267
+ }
268
+ }
269
+ }
270
+ function insertColHeaderHierarchySpacerLinesBefore() {
271
+ if (sDrillState) {
272
+ var iLevel = oControl.getLevel();
273
+ if (iLevel > 0 && oControl.getArea().isColHeaderArea()) {
274
+ var iHeight = iLevel * oCrosstab.getHierarchyIndentHeight();
275
+ rm.write("<tr><td>");
276
+ rm.write("<div");
277
+ rm.writeAttributeEscaped("tabindex", RenderingConstants.TABINDEX);
278
+ rm.writeAttribute("class", "sapzencrosstab-HierarchySpacerLinesBefore");
279
+ rm.writeAttributeEscaped("xtabspacer-cellid", oControl.getId());
280
+ rm.addStyle("height", iHeight + "px");
281
+ rm.writeStyles();
282
+ rm.write("></div>");
283
+ rm.write("</td></tr>");
284
+ }
285
+ }
286
+ }
287
+ function insertColHeaderHierarchySpacerLinesAfter () {
288
+ if (sDrillState && oControl.getArea().isColHeaderArea()) {
289
+ var iLevel = oControl.getLevel();
290
+ var iMaxLevel = oCrosstab.getColHeaderHierarchyLevels()[oControl.getRow()];
291
+ var iDiff = iMaxLevel - iLevel;
292
+ if (iDiff > 0) {
293
+ var iHeight = iDiff * oCrosstab.getHierarchyIndentHeight();
294
+ rm.write("<tr><td>");
295
+ rm.write("<div");
296
+ rm.writeAttributeEscaped("tabindex", RenderingConstants.TABINDEX);
297
+ rm.writeAttribute("class", "sapzencrosstab-HierarchySpacerLinesAfter");
298
+ rm.writeAttributeEscaped("xtabspacer-cellid", oControl.getId());
299
+ rm.addStyle("height", iHeight + "px");
300
+ rm.writeStyles();
301
+ rm.write("></div>");
302
+ rm.write("</td></tr>");
303
+ }
304
+ }
305
+ }
306
+ function renderColResizer() {
307
+ if (oCrosstab.getPropertyBag().isEnableColResize() === true) {
308
+ if (oArea.isColHeaderArea() || oArea.isDimHeaderArea()) {
309
+ if (oCrosstab.getPropertyBag().isTestMobileMode() || oCrosstab.getPropertyBag().isMobileMode()) {
310
+ oControl.setMobileResize(true);
311
+ } else {
312
+ // resize handle div
313
+ rm.write("<div");
314
+ rm.writeAttributeEscaped("id", "resi_" + oControl.getId());
315
+ if(sSort){
316
+ //Some themes need a different spacing for the resize handle if a sort icon is present in the same cell
317
+ rm.writeAttribute("class", "sapzencrosstab-columnResizeHandleWithSort");
318
+ } else {
319
+ rm.writeAttribute("class", "sapzencrosstab-columnResizeHandle");
320
+ }
321
+ rm.writeAttributeEscaped("title", oCrosstab.getPropertyBag().getText(
322
+ TextConstants.COLWIDTH_ADJUST_TEXT_KEY));
323
+ rm.write(">"); // div element
324
+ rm.write("</div>");
325
+ oControl.setMobileResize(false);
326
+ }
327
+ }
328
+ }
329
+ }
330
+ };
331
+ return sap.zen.crosstab.HeaderCellRenderer;
332
+ }
333
+ );