@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.
- package/package.json +1 -1
- package/src/{main/uilib/sap → sap}/zen/crosstab/.library +14 -13
- package/src/sap/zen/crosstab/BaseArea.js +933 -0
- package/src/sap/zen/crosstab/CellStyleHandler.js +109 -0
- package/src/sap/zen/crosstab/ColResizer.js +261 -0
- package/src/sap/zen/crosstab/ColumnHeaderArea.js +61 -0
- package/src/sap/zen/crosstab/Crosstab.js +1351 -0
- package/src/sap/zen/crosstab/CrosstabCellApi.js +141 -0
- package/src/sap/zen/crosstab/CrosstabContextMenu.js +96 -0
- package/src/sap/zen/crosstab/CrosstabHeaderInfo.js +699 -0
- package/src/sap/zen/crosstab/CrosstabRenderer.js +258 -0
- package/src/sap/zen/crosstab/CrosstabTestProxy.js +64 -0
- package/src/sap/zen/crosstab/DataArea.js +76 -0
- package/src/sap/zen/crosstab/DataCell.js +187 -0
- package/src/sap/zen/crosstab/DataCellRenderer.js +70 -0
- package/src/sap/zen/crosstab/DimensionHeaderArea.js +34 -0
- package/src/sap/zen/crosstab/EventHandler.js +664 -0
- package/src/sap/zen/crosstab/HeaderCell.js +357 -0
- package/src/sap/zen/crosstab/HeaderCellRenderer.js +333 -0
- package/src/sap/zen/crosstab/HeaderResizer.js +142 -0
- package/src/sap/zen/crosstab/IDataCell.js +34 -0
- package/src/sap/zen/crosstab/IHeaderCell.js +30 -0
- package/src/sap/zen/crosstab/PropertyBag.js +220 -0
- package/src/sap/zen/crosstab/RowHeaderArea.js +78 -0
- package/src/sap/zen/crosstab/SelectionHandler.js +892 -0
- package/src/sap/zen/crosstab/TextConstants.js +22 -0
- package/src/sap/zen/crosstab/TouchHandler.js +413 -0
- package/src/sap/zen/crosstab/datahandler/JsonDataHandler.js +777 -0
- package/src/sap/zen/crosstab/dragdrop/DragDropAreaRenderer.js +446 -0
- package/src/sap/zen/crosstab/dragdrop/DragDropHandler.js +674 -0
- package/src/sap/zen/crosstab/dragdrop/DragDropHoverManager.js +474 -0
- package/src/sap/zen/crosstab/dragdrop/DragDropUtils.js +579 -0
- package/src/sap/zen/crosstab/dragdrop/MemberDragDropHandler.js +1156 -0
- package/src/sap/zen/crosstab/keyboard/CrosstabKeyboardNavHandler.js +585 -0
- package/src/sap/zen/crosstab/library.js +49 -0
- package/src/sap/zen/crosstab/paging/CellMerger.js +266 -0
- package/src/sap/zen/crosstab/paging/Page.js +331 -0
- package/src/sap/zen/crosstab/paging/PageManager.js +396 -0
- package/src/sap/zen/crosstab/paging/PagingConstants.js +19 -0
- package/src/sap/zen/crosstab/paging/RequestHandler.js +103 -0
- package/src/sap/zen/crosstab/paging/RequestStack.js +112 -0
- package/src/sap/zen/crosstab/rendering/CrossRequestManager.js +468 -0
- package/src/sap/zen/crosstab/rendering/DataModel.js +260 -0
- package/src/sap/zen/crosstab/rendering/DomElementProvider.js +24 -0
- package/src/sap/zen/crosstab/rendering/HeaderScrollManager.js +93 -0
- package/src/sap/zen/crosstab/rendering/PixelScrollManager.js +189 -0
- package/src/sap/zen/crosstab/rendering/RenderEngine.js +2694 -0
- package/src/sap/zen/crosstab/rendering/RenderingConstants.js +60 -0
- package/src/sap/zen/crosstab/rendering/ScrollManager.js +614 -0
- package/src/sap/zen/crosstab/rendering/ScrollbarRenderer.js +560 -0
- package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/Chart.less +0 -4
- package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/InfoFeeding.less +120 -120
- package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/InfoFeeding.less +85 -85
- package/src/sap/zen/crosstab/utils/Measuring.js +236 -0
- package/src/sap/zen/crosstab/utils/Utils.js +485 -0
- package/ui5.yaml +4 -2
- package/src/main/uilib/sap/zen/crosstab/BaseArea.js +0 -1013
- package/src/main/uilib/sap/zen/crosstab/CellStyleHandler.js +0 -111
- package/src/main/uilib/sap/zen/crosstab/ColResizer.js +0 -264
- package/src/main/uilib/sap/zen/crosstab/ColumnHeaderArea.js +0 -52
- package/src/main/uilib/sap/zen/crosstab/Crosstab.js +0 -1662
- package/src/main/uilib/sap/zen/crosstab/CrosstabCellApi.js +0 -142
- package/src/main/uilib/sap/zen/crosstab/CrosstabContextMenu.js +0 -96
- package/src/main/uilib/sap/zen/crosstab/CrosstabHeaderInfo.js +0 -698
- package/src/main/uilib/sap/zen/crosstab/CrosstabRenderer.js +0 -274
- package/src/main/uilib/sap/zen/crosstab/CrosstabTestProxy.js +0 -59
- package/src/main/uilib/sap/zen/crosstab/DataArea.js +0 -74
- package/src/main/uilib/sap/zen/crosstab/DataCell.js +0 -196
- package/src/main/uilib/sap/zen/crosstab/DataCellRenderer.js +0 -71
- package/src/main/uilib/sap/zen/crosstab/DimensionHeaderArea.js +0 -25
- package/src/main/uilib/sap/zen/crosstab/EventHandler.js +0 -651
- package/src/main/uilib/sap/zen/crosstab/HeaderCell.js +0 -329
- package/src/main/uilib/sap/zen/crosstab/HeaderCellRenderer.js +0 -374
- package/src/main/uilib/sap/zen/crosstab/HeaderResizer.js +0 -131
- package/src/main/uilib/sap/zen/crosstab/IDataCell.js +0 -21
- package/src/main/uilib/sap/zen/crosstab/IHeaderCell.js +0 -21
- package/src/main/uilib/sap/zen/crosstab/PropertyBag.js +0 -209
- package/src/main/uilib/sap/zen/crosstab/RowHeaderArea.js +0 -71
- package/src/main/uilib/sap/zen/crosstab/SelectionHandler.js +0 -911
- package/src/main/uilib/sap/zen/crosstab/TextConstants.js +0 -9
- package/src/main/uilib/sap/zen/crosstab/TouchHandler.js +0 -438
- package/src/main/uilib/sap/zen/crosstab/datahandler/JsonDataHandler.js +0 -760
- package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropAreaRenderer.js +0 -436
- package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropHandler.js +0 -682
- package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropHoverManager.js +0 -467
- package/src/main/uilib/sap/zen/crosstab/dragdrop/DragDropUtils.js +0 -580
- package/src/main/uilib/sap/zen/crosstab/dragdrop/MemberDragDropHandler.js +0 -1154
- package/src/main/uilib/sap/zen/crosstab/keyboard/CrosstabKeyboardNavHandler.js +0 -635
- package/src/main/uilib/sap/zen/crosstab/library.js +0 -38
- package/src/main/uilib/sap/zen/crosstab/nonphx/logic.js +0 -11
- package/src/main/uilib/sap/zen/crosstab/paging/CellMerger.js +0 -284
- package/src/main/uilib/sap/zen/crosstab/paging/Page.js +0 -357
- package/src/main/uilib/sap/zen/crosstab/paging/PageManager.js +0 -437
- package/src/main/uilib/sap/zen/crosstab/paging/PagingConstants.js +0 -7
- package/src/main/uilib/sap/zen/crosstab/paging/RequestHandler.js +0 -97
- package/src/main/uilib/sap/zen/crosstab/paging/RequestStack.js +0 -108
- package/src/main/uilib/sap/zen/crosstab/rendering/CrossRequestManager.js +0 -462
- package/src/main/uilib/sap/zen/crosstab/rendering/DataModel.js +0 -250
- package/src/main/uilib/sap/zen/crosstab/rendering/DomElementProvider.js +0 -13
- package/src/main/uilib/sap/zen/crosstab/rendering/HeaderScrollManager.js +0 -97
- package/src/main/uilib/sap/zen/crosstab/rendering/PixelScrollManager.js +0 -180
- package/src/main/uilib/sap/zen/crosstab/rendering/RenderEngine.js +0 -2757
- package/src/main/uilib/sap/zen/crosstab/rendering/RenderingConstants.js +0 -56
- package/src/main/uilib/sap/zen/crosstab/rendering/ScrollManager.js +0 -638
- package/src/main/uilib/sap/zen/crosstab/rendering/ScrollbarRenderer.js +0 -542
- package/src/main/uilib/sap/zen/crosstab/utils/Measuring.js +0 -225
- package/src/main/uilib/sap/zen/crosstab/utils/Utils.js +0 -480
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/ChartTypeSwitch.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/Crosstab.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/FilterBar.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/FilterPanel.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/Footerbar.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/InfoChart.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/NavigationPanel.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/chartconfig.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/CornerTornEffect.png +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/HTornEffect.png +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/HTornEffectData.png +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/HTornEffectHeader.png +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/VTornEffect.png +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/loading.gif +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/img/loading_comp.gif +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/base/zen.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize_hcb/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize_hcw/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_belize_plus/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_bluecrystal/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3_dark/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3_hcb/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_fiori_3_hcw/library.source.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/Chart.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/ChartTypeSwitch.less +0 -0
- /package/src/{main/uilib/sap → sap}/zen/crosstab/themes/sap_hcb/library.source.less +0 -0
|
@@ -1,580 +0,0 @@
|
|
|
1
|
-
jQuery.sap.declare("sap.zen.crosstab.dragdrop.DragDropUtils");
|
|
2
|
-
jQuery.sap.require("sap.zen.crosstab.utils.Utils");
|
|
3
|
-
|
|
4
|
-
sap.zen.crosstab.dragdrop.DragDropUtils = function (oCrosstab) {
|
|
5
|
-
"use strict"
|
|
6
|
-
|
|
7
|
-
var oHeaderInfo = oCrosstab.getHeaderInfo();
|
|
8
|
-
var oCurrentJqDragCell;
|
|
9
|
-
var oDragDropHoverManager;
|
|
10
|
-
var oJqCurrentDragHelper;
|
|
11
|
-
var that = this;
|
|
12
|
-
var bOnlyMeasuresMode = false;
|
|
13
|
-
|
|
14
|
-
this.init = function(p_oDragDropHoverManager) {
|
|
15
|
-
oDragDropHoverManager = p_oDragDropHoverManager;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
this.setOnlyMeasuresMode = function(pbOnlyMeasuresMode) {
|
|
19
|
-
bOnlyMeasuresMode = pbOnlyMeasuresMode;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
this.isOnlyMeasuresMode = function() {
|
|
23
|
-
return bOnlyMeasuresMode;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
this.getDimensionNameDromDragDropPayload = function() {
|
|
27
|
-
var oPayload = sap.zen.Dispatcher.instance.getDragDropPayload();
|
|
28
|
-
var sDimensionName = null;
|
|
29
|
-
var oDragDropInfo = null;
|
|
30
|
-
|
|
31
|
-
if (oPayload) {
|
|
32
|
-
oDragDropInfo = oPayload.oDragDropInfo;
|
|
33
|
-
if (oDragDropInfo) {
|
|
34
|
-
sDimensionName = oDragDropInfo.sDimensionName;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return sDimensionName;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
this.getAreaInfo = function(oJqArea, sAxisName) {
|
|
41
|
-
var oAreaInfo = {};
|
|
42
|
-
var sCellId;
|
|
43
|
-
|
|
44
|
-
sCellId = oJqArea.data("xtabcellid");
|
|
45
|
-
oAreaInfo.oJqCell = $(document.getElementById(sCellId));
|
|
46
|
-
oAreaInfo.oCell = sap.ui.getCore().getControl(oAreaInfo.oJqCell.attr("id"));
|
|
47
|
-
oAreaInfo.oDimInfo = oCrosstab.getHeaderInfo().getDimensionInfoByRowCol(oAreaInfo.oCell, sAxisName);
|
|
48
|
-
return oAreaInfo;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
this.getCellInfoFromDropArea = function(e, sDropAreaSuffix) {
|
|
52
|
-
var oDimInfo;
|
|
53
|
-
var oCellInfo;
|
|
54
|
-
var oCell;
|
|
55
|
-
var sDragDimensionName;
|
|
56
|
-
var iCol = -1;
|
|
57
|
-
var iRow = -1;
|
|
58
|
-
var sSplitCellAxisName;
|
|
59
|
-
var oAreaInfo;
|
|
60
|
-
var oJqDropArea;
|
|
61
|
-
|
|
62
|
-
if (sDropAreaSuffix === "droparea_above" || sDropAreaSuffix === "droparea_below") {
|
|
63
|
-
sSplitCellAxisName = "COLS";
|
|
64
|
-
} else if (sDropAreaSuffix === "droparea_before" || sDropAreaSuffix === "droparea_after") {
|
|
65
|
-
sSplitCellAxisName = "ROWS";
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
oJqDropArea = $(document.getElementById(e.target.id));
|
|
69
|
-
oAreaInfo = this.getAreaInfo(oJqDropArea, sSplitCellAxisName);
|
|
70
|
-
oDimInfo = oAreaInfo.oDimInfo;
|
|
71
|
-
oCell = oAreaInfo.oCell;
|
|
72
|
-
|
|
73
|
-
sDragDimensionName = this.getDimensionNameDromDragDropPayload();
|
|
74
|
-
|
|
75
|
-
if (oCell && sDragDimensionName && oDimInfo) {
|
|
76
|
-
iRow = oCell.getTableRow();
|
|
77
|
-
iCol = oCell.getTableCol();
|
|
78
|
-
oCellInfo = {};
|
|
79
|
-
oCellInfo.sDropDimensionName = oDimInfo.sDimensionName;
|
|
80
|
-
oCellInfo.oDropCell = oCell;
|
|
81
|
-
oCellInfo.iDropCellTableRow = iRow;
|
|
82
|
-
oCellInfo.iDropCellTableCol = iCol;
|
|
83
|
-
oCellInfo.bDropCellIsBottomRight = (iRow === oCrosstab.getTableMaxDimHeaderRow() && iCol === oCrosstab.getTableMaxDimHeaderCol());
|
|
84
|
-
oCellInfo.sDragDimensionName = sDragDimensionName;
|
|
85
|
-
oCellInfo.sDropAxisName = oDimInfo.sAxisName;
|
|
86
|
-
|
|
87
|
-
if (oCellInfo.sDropAxisName === "ROWS") {
|
|
88
|
-
oCellInfo.iDropAxisIndex = oHeaderInfo.getAbsoluteColIndexForDimension(oCellInfo.sDropDimensionName);
|
|
89
|
-
} else if (oCellInfo.sDropAxisName === "COLS") {
|
|
90
|
-
oCellInfo.iDropAxisIndex = oHeaderInfo.getAbsoluteRowIndexForDimension(oCellInfo.sDropDimensionName);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return oCellInfo;
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
this.isExternalDropOnNonRemovableStructure = function(oDimInfo, oPayload) {
|
|
97
|
-
var bResult = false;
|
|
98
|
-
if (this.isInterComponentDrag(oPayload)) {
|
|
99
|
-
return oDimInfo.bIsStructure && !oDimInfo.bIsRemoveStructureAllowed;
|
|
100
|
-
}
|
|
101
|
-
return bResult;
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
this.isInterComponentDrag = function(oPayload) {
|
|
105
|
-
return (oPayload.sComponentId !== oCrosstab.getId());
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
this.checkAcceptCrossComponent = function(oPayload) {
|
|
109
|
-
if (!sap.zen.Dispatcher.instance.isInterComponentDragDropEnabled()) {
|
|
110
|
-
if (this.isInterComponentDrag(oPayload)) {
|
|
111
|
-
return false;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return true;
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
this.isDragFromOtherCrosstab = function(oPayload) {
|
|
118
|
-
var isXCrosstabDrag;
|
|
119
|
-
var oDragSource;
|
|
120
|
-
|
|
121
|
-
oDragSource = sap.zen.Dispatcher.instance.getControlForId(oPayload.sComponentId);
|
|
122
|
-
isXCrosstabDrag = (oDragSource.zenControlType && oDragSource.zenControlType === "xtable") && oPayload.sComponentId !== oCrosstab.getId();
|
|
123
|
-
|
|
124
|
-
return isXCrosstabDrag;
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
this.getCrosstabHeaderCellFromDraggable = function(oDraggable) {
|
|
128
|
-
var oCell = sap.ui.getCore().byId(oDraggable.attr("id"));
|
|
129
|
-
if (oCell) {
|
|
130
|
-
if (oCell.isHeaderCell && oCell.isHeaderCell()) {
|
|
131
|
-
return oCell;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
return null;
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
this.getAxisNameFromAreaType = function(sAreaType) {
|
|
139
|
-
if (sAreaType === "droparea_above" || sAreaType === "droparea_below") {
|
|
140
|
-
return "COLS";
|
|
141
|
-
}
|
|
142
|
-
return "ROWS";
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
this.checkDropAreaAccept = function(oDraggable, oDropCell, oPayload, sAreaType) {
|
|
146
|
-
var oDraggedCell;
|
|
147
|
-
var iDropCellRow = -1;
|
|
148
|
-
var iDropCellCol = -1;
|
|
149
|
-
var iLookAheadIndex = -1;
|
|
150
|
-
var iMaxDimHeaderRow = oCrosstab.getTableMaxDimHeaderRow();
|
|
151
|
-
var iMaxDimHeaderCol = oCrosstab.getTableMaxDimHeaderCol();
|
|
152
|
-
var oLookAheadDimInfo = null;
|
|
153
|
-
var sDraggedDimensionName;
|
|
154
|
-
var sDraggedDimensionAxisName;
|
|
155
|
-
var oDroppedDimInfo;
|
|
156
|
-
var sAxisName;
|
|
157
|
-
var bIsBeginArea;
|
|
158
|
-
|
|
159
|
-
if (this.isDragFromOtherCrosstab(oPayload) === true) {
|
|
160
|
-
return false;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
sAxisName = this.getAxisNameFromAreaType(sAreaType);
|
|
164
|
-
|
|
165
|
-
iDropCellRow = oDropCell.getTableRow();
|
|
166
|
-
iDropCellCol = oDropCell.getTableCol();
|
|
167
|
-
oDroppedDimInfo = oHeaderInfo.getDimensionInfoByRowCol(oDropCell, sAxisName);
|
|
168
|
-
|
|
169
|
-
sDraggedDimensionAxisName = oPayload.oDragDropInfo.sAxisName;
|
|
170
|
-
if (!sDraggedDimensionAxisName || sDraggedDimensionAxisName && sDraggedDimensionAxisName.length === 0) {
|
|
171
|
-
// in case of drop from outside of Crosstab (NAV PANEL, no axis may be provided)
|
|
172
|
-
sDraggedDimensionAxisName = sAxisName;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
if (oPayload.sComponentId === oCrosstab.getId()) {
|
|
176
|
-
// identical cell?
|
|
177
|
-
oDraggedCell = this.getCrosstabHeaderCellFromDraggable(oDraggable);
|
|
178
|
-
if (oDraggedCell.getId() === oDropCell.getId()) {
|
|
179
|
-
if (sDraggedDimensionAxisName !== oDroppedDimInfo.sAxisName) {
|
|
180
|
-
return true;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
if (oDroppedDimInfo) {
|
|
186
|
-
sDraggedDimensionName = oPayload.oDragDropInfo.sDimensionName;
|
|
187
|
-
if (sDraggedDimensionName === oDroppedDimInfo.sDimensionName) {
|
|
188
|
-
return false;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
var bIsBeginArea = (sAreaType === "droparea_above" || sAreaType === "droparea_before");
|
|
192
|
-
// not dragging just ahead or above of the same cell
|
|
193
|
-
if (!bIsBeginArea && sDraggedDimensionAxisName === oDroppedDimInfo.sAxisName) {
|
|
194
|
-
if (oDroppedDimInfo.sAxisName == "ROWS") {
|
|
195
|
-
iLookAheadIndex = iDropCellCol + oDropCell.getColSpan();
|
|
196
|
-
if (iLookAheadIndex <= iMaxDimHeaderCol) {
|
|
197
|
-
oLookAheadDimInfo = oHeaderInfo.getDimensionInfoByCol(iLookAheadIndex);
|
|
198
|
-
}
|
|
199
|
-
} else if (oDroppedDimInfo.sAxisName === "COLS") {
|
|
200
|
-
iLookAheadIndex = iDropCellRow + oDropCell.getRowSpan();
|
|
201
|
-
if (iLookAheadIndex <= iMaxDimHeaderRow) {
|
|
202
|
-
oLookAheadDimInfo = oHeaderInfo.getDimensionInfoByRow(iLookAheadIndex);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
if (oLookAheadDimInfo) {
|
|
206
|
-
if (oLookAheadDimInfo.sDimensionName === sDraggedDimensionName) {
|
|
207
|
-
return false;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
} else {
|
|
212
|
-
return false;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
return true;
|
|
216
|
-
};
|
|
217
|
-
|
|
218
|
-
this.returnFromGenericDimMoveToAreasCheck = function(oJqArea, bAccept) {
|
|
219
|
-
oJqArea.data("xtabrevertdrop", !bAccept);
|
|
220
|
-
sap.zen.Dispatcher.instance.setDropAccepted(oJqArea.attr("id"), bAccept);
|
|
221
|
-
return bAccept;
|
|
222
|
-
};
|
|
223
|
-
|
|
224
|
-
this.checkAcceptExternalDimension = function(oPayload) {
|
|
225
|
-
if (this.isInterComponentDrag(oPayload)) {
|
|
226
|
-
if (oCrosstab.getHeaderInfo().isDimensionInCrosstab(oPayload.oDragDropInfo.sDimensionName)) {
|
|
227
|
-
return false;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
return true;
|
|
232
|
-
};
|
|
233
|
-
|
|
234
|
-
this.checkGenericDimMoveToAreasAccept = function(oJqArea, oDraggable, oDimInfo, oCell, sAreaType, bCheckValidHeaderRect) {
|
|
235
|
-
var oPayload;
|
|
236
|
-
var oDragDropInfo;
|
|
237
|
-
var oJqCurrentDropArea = oDragDropHoverManager.getCurrentDropArea();
|
|
238
|
-
|
|
239
|
-
oPayload = sap.zen.Dispatcher.instance.getDragDropPayload();
|
|
240
|
-
|
|
241
|
-
if (oCrosstab.isBlocked() || !oPayload || oPayload && oPayload.oDragDropInfo.bIsMemberDrag) {
|
|
242
|
-
return this.returnFromGenericDimMoveToAreasCheck(oJqArea, false);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
// do not accept dimensions dropped from external if the dimension is already in the Crosstab drilldown
|
|
246
|
-
if (!this.checkAcceptExternalDimension(oPayload)) {
|
|
247
|
-
return this.returnFromGenericDimMoveToAreasCheck(oJqArea, false);
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
// do not accept any handle that is outside the header area. This only applies to
|
|
251
|
-
// vertical drop areas
|
|
252
|
-
if (bCheckValidHeaderRect) {
|
|
253
|
-
if (!this.checkDroppableInArea(oJqArea, this.determineValidHeaderRect())) {
|
|
254
|
-
return this.returnFromGenericDimMoveToAreasCheck(oJqArea, false);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
// only accept first drop handle. Crossing area drop handles may occur vertically/horizontally!
|
|
259
|
-
if (oJqCurrentDropArea) {
|
|
260
|
-
if (oJqArea.attr("id") !== oJqCurrentDropArea.attr("id")) {
|
|
261
|
-
return this.returnFromGenericDimMoveToAreasCheck(oJqArea, false);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
if (this.isInterComponentDrag(oPayload)) {
|
|
266
|
-
if (!this.checkAcceptCrossComponent(oPayload)) {
|
|
267
|
-
return this.returnFromGenericDimMoveToAreasCheck(oJqArea, false);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
if (!bOnlyMeasuresMode) {
|
|
271
|
-
if (!this.checkDropAreaAccept(oDraggable, oCell, oPayload, sAreaType)) {
|
|
272
|
-
return this.returnFromGenericDimMoveToAreasCheck(oJqArea, false);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
return this.returnFromGenericDimMoveToAreasCheck(oJqArea, true);
|
|
277
|
-
};
|
|
278
|
-
|
|
279
|
-
this.checkMouseInRenderSizeDiv = function(e) {
|
|
280
|
-
var bMouseInDiv = false;
|
|
281
|
-
var oRenderSizeDivRect;
|
|
282
|
-
|
|
283
|
-
oRenderSizeDivRect = oCrosstab.getRenderSizeDiv()[0].getBoundingClientRect();
|
|
284
|
-
bMouseInDiv = (e.clientX > oRenderSizeDivRect.left) && (e.clientX < oRenderSizeDivRect.right);
|
|
285
|
-
bMouseInDiv = bMouseInDiv && (e.clientY > oRenderSizeDivRect.top && e.clientY < oRenderSizeDivRect.bottom);
|
|
286
|
-
|
|
287
|
-
return bMouseInDiv;
|
|
288
|
-
};
|
|
289
|
-
|
|
290
|
-
// Dealing with header scrolling and hence potentially partly invisible header
|
|
291
|
-
|
|
292
|
-
this.determineValidHeaderRect = function() {
|
|
293
|
-
var oJqValidArea;
|
|
294
|
-
var oValidRect;
|
|
295
|
-
|
|
296
|
-
oJqValidArea = oCrosstab.getDimHeaderAreaDiv();
|
|
297
|
-
if (oJqValidArea.length === 0) {
|
|
298
|
-
oJqValidArea = oCrosstab.getRowHeaderAreaDiv();
|
|
299
|
-
}
|
|
300
|
-
oValidRect = this.getBoundingClientRect(oJqValidArea[0]);
|
|
301
|
-
return oValidRect;
|
|
302
|
-
};
|
|
303
|
-
|
|
304
|
-
this.checkDroppableInArea = function(oJqDroppable, oValidRect) {
|
|
305
|
-
var oRect;
|
|
306
|
-
|
|
307
|
-
if (!oCrosstab.isHeaderHScrolling()) {
|
|
308
|
-
return true;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
oRect = oJqDroppable[0].getBoundingClientRect();
|
|
312
|
-
|
|
313
|
-
if ((oRect.right > oValidRect.left && oRect.right < oValidRect.right) ||
|
|
314
|
-
(oRect.left < oValidRect.right && oRect.right > oValidRect.right ||
|
|
315
|
-
(oRect.left > oValidRect.left && oRect.right < oValidRect.right))) {
|
|
316
|
-
return true;
|
|
317
|
-
}
|
|
318
|
-
return false;
|
|
319
|
-
};
|
|
320
|
-
|
|
321
|
-
this.setCurrentJqDragCell = function(oJqDragCell) {
|
|
322
|
-
oCurrentJqDragCell = oJqDragCell;
|
|
323
|
-
};
|
|
324
|
-
|
|
325
|
-
this.getCurrentJqDragCell = function() {
|
|
326
|
-
return oCurrentJqDragCell;
|
|
327
|
-
};
|
|
328
|
-
|
|
329
|
-
this.checkDragRevert = function(oDroppable) {
|
|
330
|
-
var oCell;
|
|
331
|
-
var sId;
|
|
332
|
-
var bRevertDrop;
|
|
333
|
-
var oRevertPosInfo;
|
|
334
|
-
var oPos;
|
|
335
|
-
var oRect;
|
|
336
|
-
|
|
337
|
-
oRevertPosInfo = $(this).data("oRevertPosInfo");
|
|
338
|
-
if (oRevertPosInfo) {
|
|
339
|
-
oPos = that.getRevertPosition(oRevertPosInfo);
|
|
340
|
-
$(this).data("uiDraggable").originalPosition = oPos;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
if (!sap.zen.Dispatcher.instance.isDragDropCanceled()) {
|
|
344
|
-
sId = $(oDroppable).data("xtabcellid");
|
|
345
|
-
if (sId && sId.length > 0) {
|
|
346
|
-
bRevertDrop = $(oDroppable).data("xtabrevertdrop");
|
|
347
|
-
return bRevertDrop;
|
|
348
|
-
} else {
|
|
349
|
-
sId = $(oDroppable).attr("id");
|
|
350
|
-
oCell = sap.ui.getCore().getControl(sId);
|
|
351
|
-
if (oCell && oCell.isRevertDrop) {
|
|
352
|
-
return oCell.isRevertDrop();
|
|
353
|
-
}
|
|
354
|
-
return false;
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
return true;
|
|
358
|
-
};
|
|
359
|
-
|
|
360
|
-
this.resetDragDrop = function() {
|
|
361
|
-
sap.zen.Dispatcher.instance.setDragDropCanceled(false);
|
|
362
|
-
oCrosstab.setDragAction(false);
|
|
363
|
-
oJqCurrentDragHelper = null;
|
|
364
|
-
};
|
|
365
|
-
|
|
366
|
-
this.buildDimensionDragDropInfo = function(oDimInfo) {
|
|
367
|
-
var oDragDropInfo = {};
|
|
368
|
-
|
|
369
|
-
if (oDimInfo.sDimensionName && oDimInfo.sDimensionName.length > 0) {
|
|
370
|
-
oDragDropInfo.sDimensionName = oDimInfo.sDimensionName;
|
|
371
|
-
}
|
|
372
|
-
if (oDimInfo.sAttributeName && oDimInfo.sAttributeName.length > 0) {
|
|
373
|
-
oDragDropInfo.sAttributeName = oDimInfo.sAttributeName;
|
|
374
|
-
}
|
|
375
|
-
if (oDimInfo.sAxisName && oDimInfo.sAxisName.length > 0) {
|
|
376
|
-
oDragDropInfo.sAxisName = oDimInfo.sAxisName;
|
|
377
|
-
}
|
|
378
|
-
if (oDimInfo.bIsMeasureStructure === true) {
|
|
379
|
-
oDragDropInfo.bIsMeasureStructure = true;
|
|
380
|
-
}
|
|
381
|
-
if (oDimInfo.bIsStructure === true) {
|
|
382
|
-
oDragDropInfo.bIsStructure = true;
|
|
383
|
-
oDragDropInfo.bIsRemoveStructureAllowed = oDimInfo.bIsRemoveStructureAllowed;
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
oDragDropInfo.bIsMemberDrag = false;
|
|
387
|
-
oDragDropInfo.iMemberRow = -1;
|
|
388
|
-
oDragDropInfo.iMemberCol = -1;
|
|
389
|
-
|
|
390
|
-
return oDragDropInfo;
|
|
391
|
-
};
|
|
392
|
-
|
|
393
|
-
this.makeDropAreaDroppable = function(oJqArea, sHoverClass, fCheckAccept, fHandleDrop) {
|
|
394
|
-
oJqArea.droppable();
|
|
395
|
-
oJqArea.droppable("option", "hoverClass", sHoverClass + "Active");
|
|
396
|
-
oJqArea.droppable("option", "addClasses", false);
|
|
397
|
-
oJqArea.droppable("option", "greedy", true);
|
|
398
|
-
oJqArea.droppable("option", "tolerance", "pointer");
|
|
399
|
-
oJqArea.droppable("option", "accept", fCheckAccept);
|
|
400
|
-
oJqArea.droppable("option", "drop", fHandleDrop);
|
|
401
|
-
oJqArea.droppable("option", "over", oDragDropHoverManager.onDropAreaOver);
|
|
402
|
-
oJqArea.droppable("option", "out", oDragDropHoverManager.onDropAreaOut);
|
|
403
|
-
};
|
|
404
|
-
|
|
405
|
-
this.makeCellDroppable = function(oJqCell, fCheckAccept, fHandleDrop) {
|
|
406
|
-
oJqCell.droppable();
|
|
407
|
-
oJqCell.droppable("option", "addClasses", false);
|
|
408
|
-
oJqCell.droppable("option", "greedy", true);
|
|
409
|
-
oJqCell.droppable("option", "tolerance", "pointer");
|
|
410
|
-
oJqCell.droppable("option", "accept", fCheckAccept);
|
|
411
|
-
oJqCell.droppable("option", "drop", fHandleDrop);
|
|
412
|
-
oJqCell.droppable("option", "over", oDragDropHoverManager.onDropCellOver);
|
|
413
|
-
oJqCell.droppable("option", "out", oDragDropHoverManager.onDropCellOut);
|
|
414
|
-
};
|
|
415
|
-
|
|
416
|
-
this.makeCellDraggable = function(oJqCell, fHelper) {
|
|
417
|
-
oJqCell.draggable();
|
|
418
|
-
oJqCell.draggable("option", "cursor", "move");
|
|
419
|
-
oJqCell.draggable("option", "cursorAt", {top : -5});
|
|
420
|
-
oJqCell.draggable("option", "appendTo", document.getElementById(oCrosstab.getId()));
|
|
421
|
-
oJqCell.draggable("option", "addClasses", true);
|
|
422
|
-
oJqCell.draggable("option", "helper", fHelper);
|
|
423
|
-
oJqCell.draggable("option", "revert", this.checkDragRevert);
|
|
424
|
-
oJqCell.draggable("option", "stop", this.resetDragDrop);
|
|
425
|
-
|
|
426
|
-
oDragDropHoverManager.provideDraggableCellCursor(oJqCell);
|
|
427
|
-
|
|
428
|
-
// Prevent pagebook from swapping pages when D&D in Crosstab
|
|
429
|
-
$(oJqCell.draggable()).mousedown(function(e) {
|
|
430
|
-
if (sap.zen.crosstab.utils.Utils.isDispatcherAvailable) {
|
|
431
|
-
sap.zen.Dispatcher.instance.closeContextMenu();
|
|
432
|
-
}
|
|
433
|
-
sap.zen.crosstab.utils.Utils.cancelEvent(e);
|
|
434
|
-
});
|
|
435
|
-
};
|
|
436
|
-
|
|
437
|
-
this.getDropAreaTypeFromDropAreaId = function(sId) {
|
|
438
|
-
return sId.substring(sId.indexOf("droparea_"));
|
|
439
|
-
};
|
|
440
|
-
|
|
441
|
-
this.checkDropAllowedOnCrosstabElement = function(e) {
|
|
442
|
-
return (!sap.zen.Dispatcher.instance.isDragDropCanceled() && !e.buttons && this.checkMouseInRenderSizeDiv(e));
|
|
443
|
-
};
|
|
444
|
-
|
|
445
|
-
this.findCell = function(oJqSource) {
|
|
446
|
-
var oDiv = oJqSource.closest("div");
|
|
447
|
-
var oCellId = oCrosstab.getUtils().getCellIdFromContenDivId(oDiv.attr("id"));
|
|
448
|
-
var oCell = sap.ui.getCore().byId(oCellId);
|
|
449
|
-
return oCell;
|
|
450
|
-
};
|
|
451
|
-
|
|
452
|
-
this.getBoundingClientRect = function(oDomElement) {
|
|
453
|
-
return oCrosstab.getUtils().getRtlAwareBoundingClientRect(oDomElement);
|
|
454
|
-
};
|
|
455
|
-
|
|
456
|
-
this.getDeleteDragGhostCellRowHtml = function(iColSpan) {
|
|
457
|
-
var sHtml = "<tr><td colspan=" + iColSpan + ">";
|
|
458
|
-
sHtml += "<div id=\"" + oCrosstab.getId() + "_dragtrash\" class=\"sapzencrosstab-Trashcan\"></div>"
|
|
459
|
-
sHtml += "</td></tr>";
|
|
460
|
-
return sHtml;
|
|
461
|
-
};
|
|
462
|
-
|
|
463
|
-
this.setCurrentDragHelper = function(oJqHelper) {
|
|
464
|
-
oJqCurrentDragHelper = oJqHelper;
|
|
465
|
-
};
|
|
466
|
-
|
|
467
|
-
this.saveRevertCellPosInfo = function(oCell, aCells, sAxisName) {
|
|
468
|
-
var oPosInfo = {};
|
|
469
|
-
var oJqCell;
|
|
470
|
-
|
|
471
|
-
oPosInfo.oCell = oCell;
|
|
472
|
-
oPosInfo.aCells = aCells;
|
|
473
|
-
oPosInfo.sAxisName = sAxisName;
|
|
474
|
-
|
|
475
|
-
oJqCell = $(document.getElementById(oCell.getId()));
|
|
476
|
-
oJqCell.data("oRevertPosInfo", oPosInfo);
|
|
477
|
-
};
|
|
478
|
-
|
|
479
|
-
this.getRevertPosition = function(oRevertPosInfo) {
|
|
480
|
-
var oJqCell;
|
|
481
|
-
var oJqRevertCell;
|
|
482
|
-
var oPos;
|
|
483
|
-
var oRect;
|
|
484
|
-
var oRevertCell;
|
|
485
|
-
var iWidth;
|
|
486
|
-
var oCell = oRevertPosInfo.oCell;
|
|
487
|
-
var aCells = oRevertPosInfo.aCells;
|
|
488
|
-
var sAxisName = oRevertPosInfo.sAxisName;
|
|
489
|
-
|
|
490
|
-
// always take "top" from first cell to be correct on both rows and cols axis
|
|
491
|
-
oRevertCell = aCells[0];
|
|
492
|
-
oJqRevertCell = $(document.getElementById(oRevertCell.getId()));
|
|
493
|
-
oPos = oJqRevertCell.position();
|
|
494
|
-
|
|
495
|
-
// decide which cell contributes to the "left" coordinate
|
|
496
|
-
if (oCrosstab.getPropertyBag().isRtl() || oCell.isSplitPivotCell()) {
|
|
497
|
-
if (aCells.length > 1) {
|
|
498
|
-
oRevertCell = aCells[aCells.length - 1];
|
|
499
|
-
oJqRevertCell = $(document.getElementById(oRevertCell.getId()));
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
// RTL must take scrollbar at other end into account since jQuery revert coordinates always need to be "left" and "top".
|
|
504
|
-
// It does not work with specifying "right" in the position object which would make things a lot easier for RTL, hence we need to do some magic
|
|
505
|
-
if (oCrosstab.getPropertyBag().isRtl()) {
|
|
506
|
-
oPos.left = oJqRevertCell.position().left + (oCrosstab.isVScrolling() ? oCrosstab.getRenderEngine().getMeasuringHelper().getBrowserScrollbarWidth() : 0);
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
// fine tuning for split cell
|
|
510
|
-
if (oRevertCell.isSplitPivotCell() && sAxisName && sAxisName === "COLS") {
|
|
511
|
-
oRect = oCrosstab.getUtils().getRtlAwareBoundingClientRect(oJqRevertCell[0]);
|
|
512
|
-
if (oCrosstab.getPropertyBag().isRtl()) {
|
|
513
|
-
oPos.left = oPos.left - (oJqCurrentDragHelper ? Math.round(oJqCurrentDragHelper.outerWidth() / 2.0) : Math.round(oRect.width / 2.0));
|
|
514
|
-
} else {
|
|
515
|
-
oPos.left = oPos.left + Math.round(oRect.width / 2.0);
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
return oPos;
|
|
519
|
-
};
|
|
520
|
-
|
|
521
|
-
this.setCursorAt = function(oCell, oJqHelper) {
|
|
522
|
-
var iWidth = 0;
|
|
523
|
-
var iLeft = 0;
|
|
524
|
-
var oJqCrosstabDiv = $(document.getElementById(oCrosstab.getId()));
|
|
525
|
-
var oJqCell = $(document.getElementById(oCell.getId()));
|
|
526
|
-
|
|
527
|
-
oJqCrosstabDiv.append(oJqHelper);
|
|
528
|
-
iWidth = oJqHelper.outerWidth();
|
|
529
|
-
oJqHelper.remove();
|
|
530
|
-
|
|
531
|
-
iLeft = Math.round(iWidth / 2.0);
|
|
532
|
-
oJqCell.draggable("option", "cursorAt", {top: -5, left: iLeft});
|
|
533
|
-
};
|
|
534
|
-
|
|
535
|
-
this.getAllMemberCellsInRowOrCol = function(oCell) {
|
|
536
|
-
var oArea = oCell.getArea();
|
|
537
|
-
var i = 0;
|
|
538
|
-
var oTmpCell;
|
|
539
|
-
var aCells = [];
|
|
540
|
-
|
|
541
|
-
if (oArea.isRowHeaderArea()) {
|
|
542
|
-
while (i < oArea.getColCnt()) {
|
|
543
|
-
oTmpCell = oArea.getCellWithColSpan(oCell.getRow(), i);
|
|
544
|
-
if (oTmpCell) {
|
|
545
|
-
aCells.push(oTmpCell);
|
|
546
|
-
i = i + oTmpCell.getColSpan();
|
|
547
|
-
} else {
|
|
548
|
-
i++;
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
} else if (oArea.isColHeaderArea()) {
|
|
552
|
-
while (i < oArea.getRowCnt()) {
|
|
553
|
-
oTmpCell = oArea.getCellWithRowSpan(i, oCell.getCol());
|
|
554
|
-
if (oTmpCell) {
|
|
555
|
-
aCells.push(oTmpCell);
|
|
556
|
-
i = i + oTmpCell.getRowSpan();
|
|
557
|
-
} else {
|
|
558
|
-
i++;
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
}
|
|
562
|
-
return aCells;
|
|
563
|
-
};
|
|
564
|
-
|
|
565
|
-
this.getEffectiveCell = function(oCell) {
|
|
566
|
-
var oEffectiveCell = oCell;
|
|
567
|
-
var oArea = null;
|
|
568
|
-
|
|
569
|
-
if (oCell && oCrosstab.getPropertyBag().isRepeatTexts()) {
|
|
570
|
-
oArea = oCell.getArea();
|
|
571
|
-
if (oArea.isRowHeaderArea()) {
|
|
572
|
-
oEffectiveCell = oArea.getCellWithColSpan(oCell.getRow(), oArea.getColCnt() - 1);
|
|
573
|
-
} else if (oArea.isColHeaderArea()) {
|
|
574
|
-
oEffectiveCell = oArea.getCellWithRowSpan(oArea.getRowCnt() - 1, oCell.getCol());
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
|
|
578
|
-
return oEffectiveCell;
|
|
579
|
-
};
|
|
580
|
-
};
|