@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,258 @@
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/utils/Utils"
11
+ ],
12
+ function(jQuery, RenderingConstants, Utils){
13
+ "use strict";
14
+ jQuery.sap.declare("sap.zen.crosstab.CrosstabRenderer");
15
+ /**
16
+ * @class Crosstab renderer.
17
+ * @static
18
+ */
19
+ sap.zen.crosstab.CrosstabRenderer = {};
20
+ /**
21
+ * Renders the HTML for the given control, using the provided {@link sap.ui.core.RenderManager}.
22
+ *
23
+ * @param {sap.ui.core.RenderManager}
24
+ * oRenderManager the RenderManager that can be used for writing to the Render-Output-Buffer
25
+ * @param {sap.ui.core.Control}
26
+ * oControl an object representation of the control that should be rendered
27
+ */
28
+ sap.zen.crosstab.CrosstabRenderer.render = function (oRenderManager, oControl) {
29
+ "use strict";
30
+
31
+ oControl.prepareContainer();
32
+
33
+ // convenience variable
34
+ var rm = oRenderManager;
35
+ var sClasses = "";
36
+
37
+ var sCrosstabWidth = oControl.getWidth();
38
+ if (sCrosstabWidth === "auto") {
39
+ sCrosstabWidth = "100%";
40
+ }
41
+ var sCrosstabHeight = oControl.getHeight();
42
+ if (sCrosstabHeight === "auto") {
43
+ sCrosstabHeight = "100%";
44
+ }
45
+
46
+ // write the HTML into the render manager
47
+ rm.write("<div");
48
+ rm.writeControlData(oControl);
49
+ rm.addStyle("overflow", "hidden");
50
+ if (sCrosstabWidth) {
51
+ rm.addStyle("width", sCrosstabWidth);
52
+ }
53
+ if (sCrosstabHeight) {
54
+ rm.addStyle("height", sCrosstabHeight);
55
+ }
56
+ if (Utils.isMainMode()) {
57
+ sClasses = "sapzencrosstab-FontSize-MainMode ";
58
+ }
59
+ sClasses += "sapzencrosstab-CrosstabComponent ";
60
+ if(oControl.getTransferDataCommand() && oControl.getTransferDataCommand().length > 0){
61
+ sClasses += "sapzencrosstab-InputEnabled ";
62
+ }
63
+ if (oControl.aCustomStyleClasses && oControl.aCustomStyleClasses.length > 0) {
64
+ var i = 0;
65
+ for (i = 0; i < oControl.aCustomStyleClasses.length; i++) {
66
+ sClasses = sClasses + oControl.aCustomStyleClasses[i] + " ";
67
+ }
68
+ }
69
+
70
+ if (oControl.getRenderMode() === RenderingConstants.RENDERMODE_FILL) {
71
+ rm.addStyle("visibility", "hidden");
72
+ sClasses += "sapzencrosstab-TableDiv sapzencrosstab-TableDivBackground";
73
+ }
74
+ rm.writeAttributeEscaped("class", sClasses);
75
+ rm.writeStyles();
76
+ rm.write(">");
77
+ if (oControl.getRenderMode() === RenderingConstants.RENDERMODE_COMPACT) {
78
+ rm.write("<div");
79
+ rm.writeAttributeEscaped("id", oControl.getId() + "_altRenderModeTableDiv");
80
+ rm.addStyle("visibility", "hidden");
81
+ rm.addStyle("width", "100%");
82
+ rm.addStyle("height", "100%");
83
+ rm.writeAttributeEscaped("class", "sapzencrosstab-TableDiv sapzencrosstab-TableDivBackground");
84
+ rm.writeStyles();
85
+ rm.write(">");
86
+ }
87
+ rm.write("<div");
88
+ rm.writeAttributeEscaped("id", oControl.getId() + "_renderSizeDiv");
89
+ rm.writeAttribute("class", "sapzencrosstab-RenderSizeDiv");
90
+ rm.write(">");
91
+
92
+ rm.write("<table");
93
+ rm.writeAttributeEscaped("id", oControl.getId() + "_table");
94
+ rm.writeAttribute("class", "sapzencrosstab-Crosstab");
95
+ rm.write(">"); // table element
96
+
97
+ // first row
98
+ rm.write("<tr");
99
+ rm.writeAttributeEscaped("id", oControl.getId() + "_upperSection");
100
+ rm.write(">");
101
+
102
+ sap.zen.crosstab.CrosstabRenderer.writeCell(
103
+ rm, oControl.getId() + "_upperLeft", oControl.getDimensionHeaderArea(),
104
+ oControl
105
+ );
106
+ sap.zen.crosstab.CrosstabRenderer.writeCell(
107
+ rm, oControl.getId() + "_upperRight", oControl.getColumnHeaderArea(),
108
+ oControl
109
+ );
110
+
111
+ rm.write("</tr>");
112
+
113
+ // second row
114
+ rm.write("<tr");
115
+ rm.writeAttributeEscaped("id", oControl.getId() + "_lowerSection");
116
+ rm.write(">");
117
+
118
+ sap.zen.crosstab.CrosstabRenderer.writeCell(
119
+ rm, oControl.getId() + "_lowerLeft", oControl.getRowHeaderArea(),
120
+ oControl
121
+ );
122
+ sap.zen.crosstab.CrosstabRenderer.writeCell(rm, oControl.getId() + "_lowerRight", oControl.getDataArea(), oControl);
123
+
124
+ rm.write("</tr>");
125
+
126
+ rm.write("</table>");
127
+ rm.write("</div>");
128
+
129
+ // Toolbar
130
+ if (oControl.getPropertyBag().hasToolbar()) {
131
+ rm.write("<div");
132
+ rm.writeAttributeEscaped("id", oControl.getId() + "_toolbar");
133
+ rm.writeAttributeEscaped("class", "sapzencrosstab-ToolbarDiv");
134
+ rm.addStyle("position", "absolute");
135
+ rm.addStyle("bottom", "0px");
136
+ rm.writeStyles();
137
+ rm.write(">");
138
+ rm.write("</div>");
139
+ }
140
+
141
+ rm.write("<div");
142
+ rm.writeAttribute("id", oControl.getId() + "_loadingAnimationDiv");
143
+ rm.writeAttribute("class", "sapzencrosstab-loadingAnimationDiv");
144
+ rm.addStyle("visibility", "hidden");
145
+ rm.writeStyles();
146
+ rm.write(">");
147
+
148
+ rm.write("<div");
149
+ rm.writeAttribute("class", "sapzencrosstab-loadingAnimation");
150
+ rm.write(">");
151
+ rm.write("</div>");
152
+
153
+ rm.write("</div>");
154
+
155
+ // measure div to determine hierarchy width/height
156
+ rm.write("<div");
157
+ rm.writeAttribute("id", oControl.getId() + "_measureDiv");
158
+ rm.writeAttribute("class", oControl.getPropertyBag().isCozyMode() ? "sapzencrosstab-HierarchyIndentCozy" : "sapzencrosstab-HierarchyIndent");
159
+ rm.addStyle("visibility", "none");
160
+ rm.writeStyles();
161
+ rm.write(">");
162
+ rm.write("</div>");
163
+
164
+ // exception measure div to determine symbol width
165
+ rm.write("<div");
166
+ rm.writeAttribute("id", oControl.getId() + "_exceptionMeasureDiv");
167
+ rm.writeAttribute("class", "sapzencrosstab-SymbolAlertDimensions");
168
+ rm.addStyle("visibility", "none");
169
+ rm.writeStyles();
170
+ rm.write(">");
171
+ rm.write("</div>");
172
+
173
+ // Resize div for moveable header resizer if the header can be resized by the user
174
+ if (oControl.isUserHeaderResizeAllowed() && (oControl.hasDataArea() || oControl.hasColHeaderArea()) && (oControl.hasDimensionHeaderArea() || oControl.hasRowHeaderArea())) {
175
+ rm.write("<div");
176
+ rm.writeAttribute("id", oControl.getId() + "_headerResizeHandle");
177
+ rm.writeAttribute("class", "sapzencrosstab-headerResizeHandleWidth");
178
+ rm.addStyle("position", "absolute");
179
+ rm.addStyle("top", "0px");
180
+ rm.addStyle("height", "100%");
181
+ rm.writeStyles();
182
+ rm.write(">");
183
+ rm.write("</div>");
184
+ }
185
+
186
+ // Column resize ruler
187
+ if (oControl.getPropertyBag().isEnableColResize()) {
188
+ rm.write("<div");
189
+ rm.writeAttribute("id", oControl.getId() + "_colResizeRuler");
190
+ rm.writeAttribute("class", "sapzencrosstab-colResizeRuler");
191
+ rm.addStyle("visibility", "hidden");
192
+ rm.writeStyles();
193
+ rm.write(">");
194
+ rm.write("</div>");
195
+ }
196
+
197
+ if (oControl.getRenderMode() === RenderingConstants.RENDERMODE_COMPACT) {
198
+ rm.write("</div>");
199
+ }
200
+
201
+ rm.write("<div");
202
+ rm.writeAttribute("id", oControl.getId() + "_resizeFrame");
203
+ rm.writeAttribute("class", "sapzencrosstab-TableDiv");
204
+ rm.addStyle("visibility", "hidden");
205
+ rm.addStyle("width", sCrosstabWidth);
206
+ rm.addStyle("height", sCrosstabHeight);
207
+ rm.writeStyles();
208
+ rm.write(">");
209
+ rm.write("</div>");
210
+
211
+ rm.write("<div");
212
+ rm.writeAttribute("id", oControl.getId() + "_resizeDiv");
213
+ rm.writeAttribute("class", "sapzencrosstab-ResizeDiv");
214
+ rm.addStyle("width", "100%");
215
+ rm.addStyle("height", "100%");
216
+ rm.addStyle("visibility", "hidden");
217
+ rm.writeStyles();
218
+ rm.write(">");
219
+ rm.write("</div>");
220
+
221
+ if (oControl.getGlassPane().length === 0) {
222
+ rm.write("<div");
223
+ rm.writeAttribute("id", oControl.getId() + "_glassPane");
224
+ rm.addStyle("position", "absolute");
225
+ rm.addStyle("top", "0px");
226
+ if (oControl.getPropertyBag().isRtl()) {
227
+ rm.addStyle("right", "0px");
228
+ } else {
229
+ rm.addStyle("left", "0px");
230
+ }
231
+ rm.addStyle("width", "100%");
232
+ rm.addStyle("height", "100%");
233
+ rm.writeStyles();
234
+ rm.write(">");
235
+ rm.write("</div>");
236
+ }
237
+
238
+ rm.write("</div>");
239
+ };
240
+
241
+ sap.zen.crosstab.CrosstabRenderer.writeCell = function (rm, sId, oArea, oControl) {
242
+ rm.write("<td");
243
+ rm.writeAttribute("id", sId);
244
+ rm.addStyle("padding", "0px");
245
+ rm.writeStyles();
246
+ rm.write(">");
247
+ rm.write("<div");
248
+ rm.writeAttribute("id", sId + "_scrollDiv");
249
+ rm.addStyle("overflow", "hidden");
250
+ rm.writeStyles();
251
+ rm.write(">");
252
+ oArea.renderArea(rm, oControl);
253
+ rm.write("</div>");
254
+ rm.write("</td>");
255
+ };
256
+ return sap.zen.crosstab.CrosstabRenderer;
257
+ }
258
+ );
@@ -0,0 +1,64 @@
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/ColResizer"
10
+ ],
11
+ function(jQuery, ColResizer){
12
+ "use strict";
13
+ jQuery.sap.declare("sap.zen.crosstab.CrosstabTestProxy");
14
+ sap.zen.crosstab.CrosstabTestProxy = function(oCrosstab, oEventHandler) {
15
+ var bTestAction = false;
16
+ var oColResizer = new ColResizer(oCrosstab);
17
+ function fireHoverOrSelect(oArea, iRow, iCol, fAction) {
18
+ var oCell = oArea.getDataModel().getCellWithSpan(iRow, iCol);
19
+ if (oCell) {
20
+ var e = {};
21
+ var oDomCell = jQuery(document.getElementById(oCell.getId()));
22
+ if (oDomCell && oDomCell.length > 0) {
23
+ e.target = oDomCell[0];
24
+ fAction(e);
25
+ }
26
+ }
27
+ }
28
+ this.hoverCell = function (oArea, iRow, iCol) {
29
+ fireHoverOrSelect(oArea, iRow, iCol, oEventHandler.executeOnMouseEnter);
30
+ };
31
+ this.selectCell = function (oArea, iRow, iCol) {
32
+ fireHoverOrSelect(oArea, iRow, iCol, oEventHandler.executeOnClickAction);
33
+ };
34
+ this.setTestAction = function(bIsTestAction) {
35
+ bTestAction = bIsTestAction;
36
+ };
37
+ this.getTestAction = function() {
38
+ return bTestAction;
39
+ };
40
+ this.testClickSortOrHierarchy = function(oArea, iRow, iCol) {
41
+ var oCell = oArea.getDataModel().getCellWithSpan(iRow, iCol);
42
+ if (oCell) {
43
+ var oTarget = jQuery("#sort_" + oCell.getId());
44
+ if (oTarget && oTarget.length > 0) {
45
+ var e = {};
46
+ e.target = oTarget[0];
47
+ oEventHandler.executeOnClickAction(e);
48
+ }
49
+ }
50
+ };
51
+ this.doubleClickColResize = function (iRow, iCol) {
52
+ var oCell = oCrosstab.getColumnHeaderArea().getCell(iRow, iCol);
53
+ if (oCell) {
54
+ var sId = "resi_" + oCell.getId();
55
+ var e = {};
56
+ e.target = {};
57
+ e.target.id = sId;
58
+ oColResizer.onDoubleClick(e);
59
+ }
60
+ };
61
+ };
62
+ return sap.zen.crosstab.CrosstabTestProxy;
63
+ }
64
+ );
@@ -0,0 +1,76 @@
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.DataArea");
15
+ sap.zen.crosstab.DataArea = function (oCrosstab) {
16
+ BaseArea.call(this, oCrosstab);
17
+ this.sAreaType = RenderingConstants.TYPE_DATA_AREA;
18
+ };
19
+
20
+ sap.zen.crosstab.DataArea.prototype = jQuery.sap.newObject(BaseArea.prototype);
21
+ sap.zen.crosstab.DataArea.prototype.renderArea = function (oRenderManager) {
22
+ this.renderContainerStructure(
23
+ oRenderManager, "sapzencrosstab-DataArea",
24
+ this.oCrosstab.isVCutOff(), this.oCrosstab.isHCutOff()
25
+ );
26
+ };
27
+ sap.zen.crosstab.DataArea.prototype.insertCell = function (oCell, iRow, iCol) {
28
+ sap.zen.crosstab.BaseArea.prototype.insertCell.call(this, oCell, iRow, iCol);
29
+ if (iCol === this.oDataModel.getColCnt() - 1 && oCell) {
30
+ oCell.addStyle(RenderingConstants.STYLE_LAST_IN_ROW);
31
+ }
32
+ if (iRow === this.oDataModel.getRowCnt() - 1 && oCell) {
33
+ oCell.addStyle(RenderingConstants.STYLE_LAST_IN_COL);
34
+ }
35
+ };
36
+ sap.zen.crosstab.DataArea.prototype.getSelectedCellsByHeaderSelection = function (oHeaderCell, bRemoveSelection) {
37
+ var oResultCells = {};
38
+ var oArea = oHeaderCell.getArea();
39
+ if (oArea.isRowHeaderArea()) {
40
+ var iStartRow = oHeaderCell.getRow();
41
+ var iEndRow = 0;
42
+ var iStartCol = 0;
43
+ if (!bRemoveSelection) {
44
+ iEndRow = Math.min((iStartRow + oHeaderCell.getRowSpan()), (this.getRenderStartRow() + this.getRenderRowCnt()));
45
+ iStartCol = this.getRenderStartCol();
46
+
47
+ } else {
48
+ iEndRow = iStartRow + oHeaderCell.getRowSpan();
49
+ }
50
+
51
+ for (var i = iStartRow; i < iEndRow; i++) {
52
+ var aCellsInRow = this.oDataModel.getAllLoadedCellsByRow(this, i);
53
+ for(var j = 0; j < aCellsInRow.length; j++) {
54
+ oResultCells[aCellsInRow[j].getId()] = aCellsInRow[j];
55
+ }
56
+ }
57
+ } else if (oArea.isColHeaderArea()) {
58
+ var iEndCol = 0;
59
+ if (!bRemoveSelection) {
60
+ iEndCol = Math.min((iStartCol + oHeaderCell.getColSpan()), (this.getRenderStartCol() + this.getRenderColCnt()));
61
+ iStartRow = this.getRenderStartRow();
62
+ } else {
63
+ iEndCol = iStartCol + oHeaderCell.getColSpan();
64
+ }
65
+ for (i = iStartCol; i < iEndCol; i++) {
66
+ var aCellsInCol = this.oDataModel.getAllLoadedCellsByCol(this, i);
67
+ for( j = 0; j < aCellsInCol.length; j++){
68
+ oResultCells[aCellsInCol[j].getId()] = aCellsInCol[j];
69
+ }
70
+ }
71
+ }
72
+ return oResultCells;
73
+ };
74
+ return sap.zen.crosstab.DataArea;
75
+ }
76
+ );
@@ -0,0 +1,187 @@
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/CellStyleHandler",
11
+ "sap/zen/crosstab/rendering/RenderingConstants",
12
+ "sap/zen/crosstab/utils/Utils",
13
+ "sap/zen/crosstab/library"
14
+ ],
15
+ function (jQuery, Control, CellStyleHandler, RenderingConstants, Utils) {
16
+ "use strict";
17
+ // Provides control sap.zen.crosstab.DataCell.
18
+ jQuery.sap.declare("sap.zen.crosstab.DataCell");
19
+ /**
20
+ * Constructor for a new DataCell.
21
+ *
22
+ * @param {string} [sId] id for the new control, generated automatically if no id is given
23
+ * @param {object} [mSettings] initial settings for the new control
24
+ *
25
+ * @class
26
+ * Add your documentation for the new DataCell
27
+ * @extends sap.ui.core.Control
28
+ *
29
+ * @constructor
30
+ * @public
31
+ * @name sap.zen.crosstab.DataCell
32
+ */
33
+ Control.extend("sap.zen.crosstab.DataCell", /** @lends sap.zen.crosstab.DataCell.prototype */ {
34
+ metadata: {
35
+ library: "sap.zen.crosstab",
36
+ properties: {
37
+ /**
38
+ * the text of the data cell
39
+ */
40
+ text: { type: "string", group: "Misc", defaultValue: null },
41
+
42
+ /**
43
+ * the area of the data cell
44
+ */
45
+ area: { type: "object", group: "Misc", defaultValue: null },
46
+
47
+ /**
48
+ * the row of the data cell
49
+ */
50
+ row: { type: "int", group: "Misc", defaultValue: null },
51
+
52
+ /**
53
+ * the column of the data cell
54
+ */
55
+ col: { type: "int", group: "Misc", defaultValue: null },
56
+
57
+ /**
58
+ * the table row of the data cell
59
+ */
60
+ tableRow: { type: "int", group: "Misc", defaultValue: null },
61
+
62
+ /**
63
+ * the table column of the data cell
64
+ */
65
+ tableCol: { type: "int", group: "Misc", defaultValue: null }
66
+ }
67
+ }
68
+ });
69
+
70
+
71
+ /**
72
+ *
73
+ * @name sap.zen.crosstab.DataCell#addStyle
74
+ * @function
75
+ * @param {string} sSStyle
76
+ * @type void
77
+ * @public
78
+ */
79
+
80
+ ///**
81
+ // * This file defines behavior for the control,
82
+ // */
83
+
84
+ sap.zen.crosstab.DataCell.prototype.init = function () {
85
+ "use strict";
86
+ this.aStyles = [];
87
+ this.bLoading = false;
88
+ this.bIsEntryEnabled = false;
89
+ this.sUnit = "";
90
+ this.sPassiveCellType = RenderingConstants.PASSIVE_CELL_TYPE_NORMAL;
91
+ this.iNumberOfLineBreaks = 0;
92
+ };
93
+ sap.zen.crosstab.DataCell.prototype.getCellType = function () {
94
+ return RenderingConstants.TYPE_DATA_CELL;
95
+ };
96
+ sap.zen.crosstab.DataCell.prototype.isHeaderCell = function () {
97
+ return false;
98
+ };
99
+ sap.zen.crosstab.DataCell.prototype.getCssClassNames = function (bIsIE8, bIsRtl, bIsMsIE) {
100
+ return CellStyleHandler.getCssClasses(this.aStyles, bIsIE8, bIsRtl, bIsMsIE);
101
+ };
102
+ sap.zen.crosstab.DataCell.prototype.getStyleIdList = function () {
103
+ return this.aStyles;
104
+ };
105
+ sap.zen.crosstab.DataCell.prototype.setStyleIdList = function (aNewStyles) {
106
+ this.aStyles = aNewStyles;
107
+ };
108
+ sap.zen.crosstab.DataCell.prototype.addStyle = function (sStyle) {
109
+ var iStyleId = CellStyleHandler.getStyleId(
110
+ sStyle,
111
+ RenderingConstants.TYPE_DATA_CELL
112
+ );
113
+ if (this.aStyles.indexOf(iStyleId) === -1) {
114
+ this.aStyles.push(iStyleId);
115
+ }
116
+ };
117
+ sap.zen.crosstab.DataCell.prototype.removeStyle = function (sStyle) {
118
+ var iStyleId = CellStyleHandler.getStyleId(
119
+ sStyle, RenderingConstants.TYPE_DATA_CELL
120
+ );
121
+ var iIndex = this.aStyles.indexOf(iStyleId);
122
+ if (iIndex !== -1) {
123
+ this.aStyles.splice(iIndex, 1);
124
+ }
125
+ };
126
+ sap.zen.crosstab.DataCell.prototype.hasStyle = function (sStyle) {
127
+ var iStyleId = CellStyleHandler.getStyleId(
128
+ sStyle, RenderingConstants.TYPE_DATA_CELL
129
+ );
130
+ var iIndex = this.aStyles.indexOf(iStyleId);
131
+ if (iIndex === -1) {
132
+ return false;
133
+ } else {
134
+ return true;
135
+ }
136
+ };
137
+ sap.zen.crosstab.DataCell.prototype.getColSpan = function () {
138
+ return 1;
139
+ };
140
+ sap.zen.crosstab.DataCell.prototype.getRowSpan = function () {
141
+ return 1;
142
+ };
143
+ sap.zen.crosstab.DataCell.prototype.getEffectiveColSpan = function () {
144
+ return 1;
145
+ };
146
+ sap.zen.crosstab.DataCell.prototype.getEffectiveRowSpan = function () {
147
+ return 1;
148
+ };
149
+ sap.zen.crosstab.DataCell.prototype.isLoading = function () {
150
+ return this.bLoading;
151
+ };
152
+ sap.zen.crosstab.DataCell.prototype.setLoading = function (bLoading) {
153
+ this.bLoading = bLoading;
154
+ };
155
+ sap.zen.crosstab.DataCell.prototype.isSelectable = function () {
156
+ return false;
157
+ };
158
+ sap.zen.crosstab.DataCell.prototype.getUnescapedText = function () {
159
+ return Utils.unEscapeDisplayString(this.getText());
160
+ };
161
+ sap.zen.crosstab.DataCell.prototype.setEntryEnabled = function (bIsEntryEnabled) {
162
+ this.bIsEntryEnabled = bIsEntryEnabled;
163
+ };
164
+ sap.zen.crosstab.DataCell.prototype.isEntryEnabled = function () {
165
+ return this.bIsEntryEnabled;
166
+ };
167
+ sap.zen.crosstab.DataCell.prototype.setUnit = function (sUnit) {
168
+ this.sUnit = sUnit;
169
+ };
170
+ sap.zen.crosstab.DataCell.prototype.getUnit = function () {
171
+ return this.sUnit;
172
+ };
173
+ sap.zen.crosstab.DataCell.prototype.getPassiveCellType = function () {
174
+ return this.sPassiveCellType;
175
+ };
176
+ sap.zen.crosstab.DataCell.prototype.setPassiveCellType = function (sPCellType) {
177
+ this.sPassiveCellType = sPCellType;
178
+ };
179
+ sap.zen.crosstab.DataCell.prototype.setNumberOfLineBreaks = function (iNumberOfLineBreaks) {
180
+ this.iNumberOfLineBreaks = iNumberOfLineBreaks;
181
+ };
182
+ sap.zen.crosstab.DataCell.prototype.getNumberOfLineBreaks = function () {
183
+ return this.iNumberOfLineBreaks;
184
+ };
185
+ return sap.zen.crosstab.DataCell;
186
+ }
187
+ );
@@ -0,0 +1,70 @@
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/IDataCell"
11
+ ],
12
+ function(jQuery, RenderingConstants, IDataCell){
13
+ "use strict";
14
+ jQuery.sap.declare("sap.zen.crosstab.DataCellRenderer");
15
+ /**
16
+ * @class DataCell renderer.
17
+ * @static
18
+ */
19
+ sap.zen.crosstab.DataCellRenderer = {};
20
+ /**
21
+ * Renders the HTML for the given control, using the provided {@link sap.ui.core.RenderManager}.
22
+ *
23
+ * @param {sap.ui.core.RenderManager}
24
+ * oRenderManager the RenderManager that can be used for writing to the Render-Output-Buffer
25
+ * @param {sap.ui.core.Control}
26
+ * oControl an object representation of the control that should be rendered
27
+ */
28
+ sap.zen.crosstab.DataCellRenderer.render = function (oRenderManager, oControl) {
29
+ "use strict";
30
+ var oArea = oControl.getArea();
31
+ var oCrosstab = oArea.getCrosstab();
32
+ var fRenderCallback = oArea.getRenderCellCallback();
33
+ var sRenderText = oControl.getText();
34
+ var oAdditionalStyles = null;
35
+ if (fRenderCallback) {
36
+ var oCallbackResult = fRenderCallback(new IDataCell(oControl));
37
+ oAdditionalStyles = oCallbackResult.additionalStyles;
38
+ sRenderText = oCallbackResult.renderText;
39
+ }
40
+ // convenience variable
41
+ var rm = oRenderManager;
42
+ // write the HTML into the render manager
43
+ rm.write("<td");
44
+ rm.writeControlData(oControl);
45
+ var sCssClasses = oControl.getCssClassNames(oCrosstab.isIE8Mode(), oCrosstab.getPropertyBag().isRtl(), oCrosstab.getUtils().isMsIE());
46
+ rm.writeAttributeEscaped("class", sCssClasses);
47
+ rm.writeAttributeEscaped("tabindex", RenderingConstants.TABINDEX);
48
+ rm.write(">"); // SPAN element
49
+ rm.write("<div");
50
+ rm.writeAttributeEscaped("id", oControl.getId() + "_contentDiv");
51
+ rm.writeAttributeEscaped("tabindex", RenderingConstants.TABINDEX);
52
+ var sClasses = "sapzencrosstab-DataCellContentDiv";
53
+ if (oControl.isLoading()) {
54
+ sClasses += " sapzencrosstab-LoadingCellContentDiv";
55
+ }
56
+ rm.writeAttributeEscaped("class", sClasses);
57
+ if (oAdditionalStyles) {
58
+ for ( var sStyleKey in oAdditionalStyles) {
59
+ rm.addStyle(sStyleKey, oAdditionalStyles[sStyleKey]);
60
+ }
61
+ }
62
+ rm.writeStyles();
63
+ rm.write(">");
64
+ rm.writeEscaped(sRenderText);
65
+ rm.write("</div>");
66
+ rm.write("</td>");
67
+ };
68
+ return sap.zen.crosstab.DataCellRenderer;
69
+ }
70
+ );
@@ -0,0 +1,34 @@
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.DimensionHeaderArea");
15
+ sap.zen.crosstab.DimensionHeaderArea = function (oCrosstab) {
16
+ BaseArea.call(this, oCrosstab);
17
+ this.sAreaType = RenderingConstants.TYPE_DIMENSION_HEADER_AREA;
18
+ };
19
+ sap.zen.crosstab.DimensionHeaderArea.prototype = jQuery.sap.newObject(BaseArea.prototype);
20
+ sap.zen.crosstab.DimensionHeaderArea.prototype.renderArea = function (oRenderManager) {
21
+ var sClasses = "sapzencrosstab-DimensionHeaderArea";
22
+ if (this.oCrosstab.getPropertyBag().isMobileMode()) {
23
+ sClasses += " sapzencrosstab-MobileHeaderSeparator";
24
+ }
25
+ this.renderContainerStructure(oRenderManager, sClasses, false, false);
26
+ };
27
+ sap.zen.crosstab.DimensionHeaderArea.prototype.getPageManager = function () {
28
+ // runtime contract: dim header will always be completely on the first page.
29
+ // Hence, we don't need a page manager.
30
+ return null;
31
+ };
32
+ return sap.zen.crosstab.DimensionHeaderArea;
33
+ }
34
+ );