@refinitiv-ui/efx-grid 6.0.122 → 6.0.123
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/lib/grid/index.js +1 -1
- package/lib/rt-grid/dist/rt-grid.js +37 -21
- package/lib/rt-grid/dist/rt-grid.min.js +1 -1
- package/lib/rt-grid/es6/Grid.js +34 -11
- package/lib/rt-grid/es6/RowDefinition.js +3 -10
- package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.d.ts +1 -1
- package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +10 -8
- package/lib/tr-grid-row-filtering/es6/RowFiltering.js +9 -1
- package/lib/tr-grid-util/es6/CellPainter.d.ts +1 -1
- package/lib/tr-grid-util/es6/CellPainter.js +35 -41
- package/lib/tr-grid-util/es6/Popup.d.ts +8 -3
- package/lib/tr-grid-util/es6/Popup.js +135 -35
- package/lib/versions.json +3 -3
- package/package.json +1 -1
package/lib/rt-grid/es6/Grid.js
CHANGED
@@ -2708,21 +2708,31 @@ Grid.prototype._removeRow = function(rowDef) {
|
|
2708
2708
|
}
|
2709
2709
|
this._dispatch("beforeRowRemoved", {});
|
2710
2710
|
|
2711
|
-
let connector = this._connector;
|
2712
|
-
let dt = this._dt;
|
2713
2711
|
let childRowDefs = rowDef.getDescendants(); // TODO: Support nested child
|
2714
|
-
if(childRowDefs) {
|
2715
|
-
|
2716
|
-
connector.removeRic(childRowDefs[i]);
|
2717
|
-
}
|
2718
|
-
let rowIds = childRowDefs.map(RowDefinition.toRowId);
|
2719
|
-
dt.removeRows(rowIds);
|
2712
|
+
if(childRowDefs) {
|
2713
|
+
this._removeConstituentRows(childRowDefs);
|
2720
2714
|
}
|
2721
|
-
|
2722
|
-
|
2715
|
+
this._connector.removeRic(rowDef);
|
2716
|
+
this._dt.removeRow(rowDef.getRowId()); // TODO: Merge this with the above removeRows() method
|
2723
2717
|
rowDef.dispose(); // WARNING: This does not remove child reference from its parent
|
2724
2718
|
};
|
2725
2719
|
|
2720
|
+
/** @private
|
2721
|
+
* @param {Array.<RowDefinition>} rowDefs
|
2722
|
+
*/
|
2723
|
+
Grid.prototype._removeConstituentRows = function(rowDefs) {
|
2724
|
+
let connector = this._connector;
|
2725
|
+
let rowIds = [];
|
2726
|
+
for(let i = 0; i < rowDefs.length; i++) {
|
2727
|
+
let childRowDef = rowDefs[i];
|
2728
|
+
rowIds.push(childRowDef.getRowId());
|
2729
|
+
connector.removeRic(childRowDef);
|
2730
|
+
childRowDef.dispose();
|
2731
|
+
}
|
2732
|
+
|
2733
|
+
this._dt.removeRows(rowIds);
|
2734
|
+
};
|
2735
|
+
|
2726
2736
|
/** @public
|
2727
2737
|
* @param {Grid~RowReference} rowRef
|
2728
2738
|
* @param {boolean=} hidden if false, show instead of hide
|
@@ -2827,7 +2837,20 @@ Grid.prototype.unlinkChain = function(rowRef) {
|
|
2827
2837
|
}
|
2828
2838
|
|
2829
2839
|
this._unlinking = true;
|
2840
|
+
|
2841
|
+
let childRowDefs = rowDef.getDescendants(); // TODO: Support nested child
|
2842
|
+
if(childRowDefs) {
|
2843
|
+
if(rowDef.isChainExpanded()) {
|
2844
|
+
for(let i = 0; i < childRowDefs.length; i++) {
|
2845
|
+
childRowDefs[i].toRealTimeRow();
|
2846
|
+
}
|
2847
|
+
} else {
|
2848
|
+
this._removeConstituentRows(childRowDefs);
|
2849
|
+
}
|
2850
|
+
}
|
2851
|
+
|
2830
2852
|
rowDef.unlinkChain();
|
2853
|
+
|
2831
2854
|
this._unlinking = false;
|
2832
2855
|
};
|
2833
2856
|
|
@@ -3596,7 +3619,7 @@ Grid.prototype._onDataChanged = function(e) {
|
|
3596
3619
|
let subId = rowData[SUB_ID]; // The constituent will share the same sub id as its parent
|
3597
3620
|
if(subId) {
|
3598
3621
|
let parentDef = this._getRowDefinitionById(subId);
|
3599
|
-
if(parentDef && parentDef.getRic() !== rowData["RIC"]) { // TODO: Check for delayed ric
|
3622
|
+
if(parentDef && parentDef.isChain() && parentDef.getRic() !== rowData["RIC"]) { // TODO: Check for delayed ric
|
3600
3623
|
if(!this._chainMembers) {
|
3601
3624
|
this._chainMembers = {};
|
3602
3625
|
}
|
@@ -1158,9 +1158,10 @@ RowDefinition.prototype.addConstituent = function(ric) {
|
|
1158
1158
|
};
|
1159
1159
|
|
1160
1160
|
/** Used to convert autogenerated row to regular real-time row
|
1161
|
-
* @
|
1161
|
+
* @public
|
1162
|
+
* @ignore
|
1162
1163
|
*/
|
1163
|
-
RowDefinition.prototype.
|
1164
|
+
RowDefinition.prototype.toRealTimeRow = function() {
|
1164
1165
|
if(!this._ric) { // Empty row
|
1165
1166
|
return;
|
1166
1167
|
}
|
@@ -1189,14 +1190,6 @@ RowDefinition.prototype.unlinkChain = function() {
|
|
1189
1190
|
return;
|
1190
1191
|
}
|
1191
1192
|
|
1192
|
-
if(this.isChainExpanded()) {
|
1193
|
-
let rowDefs = this.getDescendants();
|
1194
|
-
let len = rowDefs.length;
|
1195
|
-
for(let i = 0; i < len; i++) {
|
1196
|
-
rowDefs[i]._toRealTimeRow();
|
1197
|
-
}
|
1198
|
-
}
|
1199
|
-
|
1200
1193
|
let staticData = this._cloneStaticRowData();
|
1201
1194
|
this.unsubscribeForUpdates();
|
1202
1195
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import {Ext} from '../../tr-grid-util/es6/Ext.js';
|
2
2
|
import {GridPlugin} from '../../tr-grid-util/es6/GridPlugin.js';
|
3
|
-
import {extendObject, injectCss, prettifyCss} from '../../tr-grid-util/es6/Util.js';
|
3
|
+
import {extendObject, injectCss, prettifyCss, isEmptyObject} from '../../tr-grid-util/es6/Util.js';
|
4
4
|
import {CellPainter} from '../../tr-grid-util/es6/CellPainter.js';
|
5
5
|
import {FilterBuilder} from '../../tr-grid-util/es6/FilterBuilder.js';
|
6
6
|
import {ElfUtil} from '../../tr-grid-util/es6/ElfUtil.js';
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import {Ext} from '../../tr-grid-util/es6/Ext.js';
|
2
2
|
import {GridPlugin} from '../../tr-grid-util/es6/GridPlugin.js';
|
3
|
-
import {extendObject, injectCss, prettifyCss} from '../../tr-grid-util/es6/Util.js';
|
3
|
+
import {extendObject, injectCss, prettifyCss, isEmptyObject} from '../../tr-grid-util/es6/Util.js';
|
4
4
|
import {CellPainter} from '../../tr-grid-util/es6/CellPainter.js';
|
5
5
|
import {FilterBuilder} from '../../tr-grid-util/es6/FilterBuilder.js';
|
6
6
|
import {ElfUtil} from '../../tr-grid-util/es6/ElfUtil.js';
|
@@ -762,7 +762,7 @@ ConditionalColoringPlugin.prototype.setColumnBlinking = function (colIndex, blin
|
|
762
762
|
}
|
763
763
|
let blinkDuration = bOptions.duration || this._blinkingDuration;
|
764
764
|
painter.setBlinkingDuration(blinkDuration);
|
765
|
-
|
765
|
+
colData.levelBlinkingDisabled = bOptions.level === false; // Used in _onSectionBinding
|
766
766
|
if (bOptions.customColor) {
|
767
767
|
painter.addBlink(newBlinkingField, bOptions.up, bOptions.down, bOptions.level, bOptions.border);
|
768
768
|
} else {
|
@@ -1198,8 +1198,7 @@ ConditionalColoringPlugin.prototype._onSectionBinding = function (e) {
|
|
1198
1198
|
}
|
1199
1199
|
|
1200
1200
|
let prevDataRow, prevDataRows = host._prevDataRows;
|
1201
|
-
let
|
1202
|
-
let prevRowCount = prevIds.length;
|
1201
|
+
let isPrevRowExisted = !isEmptyObject(prevDataRows);
|
1203
1202
|
for (r = fromR; r < toR; ++r) {
|
1204
1203
|
dataRow = this._rowGetter(dataRows[r]);
|
1205
1204
|
if (!dataRow) continue; // prevent from null value access when using with RowGroupingExtension
|
@@ -1259,14 +1258,17 @@ ConditionalColoringPlugin.prototype._onSectionBinding = function (e) {
|
|
1259
1258
|
let prevValue = prevDataRow[field];
|
1260
1259
|
if (prevValue != null) {
|
1261
1260
|
if (changedCols && changedCols[field]) {
|
1262
|
-
|
1263
|
-
|
1261
|
+
let blinkSignal = painter.calcBlinkSignal(newValue, prevValue);
|
1262
|
+
if(blinkSignal !== 0 || (blinkSignal === 0 && !colData.levelBlinkingDisabled)) {
|
1263
|
+
blinking = true;
|
1264
|
+
bgBlinking = painter.blink(cell, blinkSignal, dataRow);
|
1265
|
+
}
|
1264
1266
|
}
|
1265
1267
|
}
|
1266
1268
|
} else {
|
1267
|
-
if(
|
1269
|
+
if(isPrevRowExisted && insertedRow){
|
1268
1270
|
blinking = true;
|
1269
|
-
bgBlinking = painter.
|
1271
|
+
bgBlinking = painter.blink(cell, 0, dataRow);
|
1270
1272
|
}
|
1271
1273
|
}
|
1272
1274
|
}
|
@@ -1607,6 +1607,7 @@ RowFilteringPlugin.prototype._getUniqueValues = function(field, dialogConfig, fo
|
|
1607
1607
|
let uniqueValues = {};
|
1608
1608
|
let formattedVal = null;
|
1609
1609
|
let rawVal = null;
|
1610
|
+
let blankAtLeastOne = false;
|
1610
1611
|
if(!Array.isArray(userItemList)) {
|
1611
1612
|
userItemList = null;
|
1612
1613
|
let dvs = this._getAvailableDataViews();
|
@@ -1631,6 +1632,10 @@ RowFilteringPlugin.prototype._getUniqueValues = function(field, dialogConfig, fo
|
|
1631
1632
|
|
1632
1633
|
if(!rawVal) { // Only valid values are accepted
|
1633
1634
|
if(rawVal !== 0 && rawVal !== false) {
|
1635
|
+
if(!blankAtLeastOne && BlankValues[rawVal]) {
|
1636
|
+
blankAtLeastOne = true;
|
1637
|
+
_collectUniqueValue(uniqueValues, BLANKS, rawVal);
|
1638
|
+
}
|
1634
1639
|
continue;
|
1635
1640
|
}
|
1636
1641
|
}
|
@@ -1914,7 +1919,6 @@ RowFilteringPlugin.prototype.openDialog = function(colIndex, runtimeDialogOption
|
|
1914
1919
|
);
|
1915
1920
|
|
1916
1921
|
if(dialogConfig.blankValues) {
|
1917
|
-
delete uniqueValues[BLANKS];
|
1918
1922
|
let dunmmySelectItem = {};
|
1919
1923
|
let blkVals = ["", null, undefined, NaN]; // eslint-disable-line
|
1920
1924
|
let dummyRow = {};
|
@@ -1927,7 +1931,11 @@ RowFilteringPlugin.prototype.openDialog = function(colIndex, runtimeDialogOption
|
|
1927
1931
|
break;
|
1928
1932
|
}
|
1929
1933
|
}
|
1934
|
+
if(!dialogConfig.blankValuesChecked && !uniqueValues[BLANKS]) {
|
1935
|
+
dialogConfig.blankValues = false; // doesn't display a blank item when the checkbox for it is unchecked and there's no blank value at least one item.
|
1936
|
+
}
|
1930
1937
|
}
|
1938
|
+
delete uniqueValues[BLANKS];
|
1931
1939
|
|
1932
1940
|
let keys = Object.keys(uniqueValues);
|
1933
1941
|
if(sortLogic) {
|
@@ -128,7 +128,7 @@ declare class CellPainter {
|
|
128
128
|
|
129
129
|
public renderColoring(cell: any, rowData: any): void;
|
130
130
|
|
131
|
-
public blink(cell: any, blinkSignal: number, rowData: any):
|
131
|
+
public blink(cell: any, blinkSignal: number, rowData: any): boolean;
|
132
132
|
|
133
133
|
public blinkCell(cell: any, newValue: number, oldValue: number, rowData: any): boolean;
|
134
134
|
|
@@ -77,10 +77,6 @@ CellPainter.prototype._scopes;
|
|
77
77
|
* @private
|
78
78
|
*/
|
79
79
|
CellPainter.prototype._columnStats = null;
|
80
|
-
/** @type {boolean}
|
81
|
-
* @private
|
82
|
-
*/
|
83
|
-
CellPainter.prototype._levelColorDisabled = false;
|
84
80
|
/** @type {number}
|
85
81
|
* @private
|
86
82
|
*/
|
@@ -729,7 +725,7 @@ CellPainter.prototype._getStyles = function(rowData, min, max) {
|
|
729
725
|
} else if(ret < 0) {
|
730
726
|
curCond["cssClass"] = curCond["downClass"];
|
731
727
|
} else {
|
732
|
-
curCond["cssClass"] =
|
728
|
+
curCond["cssClass"] = curCond["levelClass"];
|
733
729
|
}
|
734
730
|
curCond["cssClass"] = curCond["cssClass"] || "";
|
735
731
|
return curCond;
|
@@ -1029,42 +1025,11 @@ CellPainter.prototype._paintCell = function(cell, rowData, min, max) {
|
|
1029
1025
|
* @param {tr.grid.Cell} cell
|
1030
1026
|
* @param {number} blinkSignal
|
1031
1027
|
* @param {Object} rowData to calculate original style e.g. { PCTCHNG: 0.53, CF_NETCHNG: 0.75 }
|
1032
|
-
*/
|
1033
|
-
CellPainter.prototype.blink = function (cell, blinkSignal, rowData) {
|
1034
|
-
this._blinkCell(cell, rowData, blinkSignal);
|
1035
|
-
};
|
1036
|
-
|
1037
|
-
/**
|
1038
|
-
* @public
|
1039
|
-
* @param {tr.grid.Cell} cell
|
1040
|
-
* @param {number} newValue
|
1041
|
-
* @param {number} oldValue
|
1042
|
-
* @param {Object} rowData e.g. { PCTCHNG: 0.53, CF_NETCHNG: 0.75 }
|
1043
|
-
* @return {boolean}
|
1044
|
-
*/
|
1045
|
-
CellPainter.prototype.blinkCell = function(cell, newValue, oldValue, rowData) {
|
1046
|
-
let bc = this._blinkCondition;
|
1047
|
-
if (!bc) return false;
|
1048
|
-
|
1049
|
-
let blinkSignal = this._blinkCondition._fn(newValue, oldValue);
|
1050
|
-
return this._blinkCell(cell, rowData, blinkSignal);
|
1051
|
-
};
|
1052
|
-
|
1053
|
-
/** @private
|
1054
|
-
* @param {tr.grid.Cell} cell
|
1055
|
-
* @param {Object} rowData e.g. { PCTCHNG: 0.53, CF_NETCHNG: 0.75 }
|
1056
|
-
* @param {number} blinkSignal
|
1057
1028
|
* @return {boolean}
|
1058
1029
|
*/
|
1059
|
-
CellPainter.prototype.
|
1030
|
+
CellPainter.prototype.blink = function (cell, blinkSignal, rowData) {
|
1060
1031
|
if (!cell) return false;
|
1061
1032
|
|
1062
|
-
if (this._levelColorDisabled) {
|
1063
|
-
if(!blinkSignal) { // Disabled level color equivalent to no blinking for blink signal 0
|
1064
|
-
return false;
|
1065
|
-
}
|
1066
|
-
}
|
1067
|
-
|
1068
1033
|
let elem = cell.getElement();
|
1069
1034
|
if (!elem) return false; // Cell has been disposed
|
1070
1035
|
|
@@ -1117,6 +1082,36 @@ CellPainter.prototype._blinkCell = function(cell, rowData, blinkSignal) {
|
|
1117
1082
|
return bgBlinking;
|
1118
1083
|
};
|
1119
1084
|
|
1085
|
+
/**
|
1086
|
+
* @public
|
1087
|
+
* @param {tr.grid.Cell} cell
|
1088
|
+
* @param {number} newValue
|
1089
|
+
* @param {number} oldValue
|
1090
|
+
* @param {Object} rowData e.g. { PCTCHNG: 0.53, CF_NETCHNG: 0.75 }
|
1091
|
+
* @return {boolean}
|
1092
|
+
*/
|
1093
|
+
CellPainter.prototype.blinkCell = function(cell, newValue, oldValue, rowData) {
|
1094
|
+
let bc = this._blinkCondition;
|
1095
|
+
if (!bc) return false;
|
1096
|
+
|
1097
|
+
let blinkSignal = this._blinkCondition._fn(newValue, oldValue);
|
1098
|
+
return this.blink(cell, blinkSignal, rowData);
|
1099
|
+
};
|
1100
|
+
|
1101
|
+
/**
|
1102
|
+
* @public
|
1103
|
+
* @ignore
|
1104
|
+
* @param {number} newValue
|
1105
|
+
* @param {number} oldValue
|
1106
|
+
* @return {number}
|
1107
|
+
*/
|
1108
|
+
CellPainter.prototype.calcBlinkSignal = function(newValue, oldValue) {
|
1109
|
+
if (this._blinkCondition) {
|
1110
|
+
return this._blinkCondition._fn(newValue, oldValue);
|
1111
|
+
}
|
1112
|
+
return 0;
|
1113
|
+
};
|
1114
|
+
|
1120
1115
|
/**
|
1121
1116
|
* @public
|
1122
1117
|
* @param {tr.grid.Cell} cell
|
@@ -1133,13 +1128,12 @@ CellPainter.prototype.verifyBlinking = function(cell, rowData) {
|
|
1133
1128
|
}
|
1134
1129
|
}
|
1135
1130
|
};
|
1136
|
-
/**
|
1131
|
+
/** Deprecated, the state has been moved out to support prioritization.
|
1137
1132
|
* @public
|
1133
|
+
* @deprecated
|
1138
1134
|
* @param {boolean=} disabled
|
1139
1135
|
*/
|
1140
|
-
CellPainter.prototype.disableLevelColor = function(disabled) {
|
1141
|
-
this._levelColorDisabled = disabled !== false;
|
1142
|
-
};
|
1136
|
+
CellPainter.prototype.disableLevelColor = function(disabled) {};
|
1143
1137
|
/**
|
1144
1138
|
* @public
|
1145
1139
|
* @param {number} duration
|
@@ -16,7 +16,8 @@ declare namespace Popup {
|
|
16
16
|
contentElement?: Element|null,
|
17
17
|
popupChild?: Popup|null,
|
18
18
|
uiBlocking?: boolean|null,
|
19
|
-
hideOnScroll?: boolean|null
|
19
|
+
hideOnScroll?: boolean|null,
|
20
|
+
zIndexReference?: Element|null
|
20
21
|
};
|
21
22
|
|
22
23
|
type Positioning = string;
|
@@ -41,6 +42,8 @@ declare class Popup extends EventDispatcher {
|
|
41
42
|
|
42
43
|
public attachTo(elem: Element|null, positioning?: Popup.Positioning|null): void;
|
43
44
|
|
45
|
+
public getAttachedElement(): Element|null;
|
46
|
+
|
44
47
|
public setAttachedElement(elem: Element|null, positioning?: Popup.Positioning|null): void;
|
45
48
|
|
46
49
|
public addFocusElement(elem: Element|null): void;
|
@@ -53,6 +56,10 @@ declare class Popup extends EventDispatcher {
|
|
53
56
|
|
54
57
|
public setParentElement(parentElement: Element|null): Element|null;
|
55
58
|
|
59
|
+
public getZIndexReference(): Element|null;
|
60
|
+
|
61
|
+
public setZIndexReference(elem: Element|null): void;
|
62
|
+
|
56
63
|
public show(opt_shown?: boolean|null, parentElement?: Element|null): void;
|
57
64
|
|
58
65
|
public hide(opt_hidden?: boolean|null): void;
|
@@ -85,7 +92,5 @@ declare class Popup extends EventDispatcher {
|
|
85
92
|
|
86
93
|
declare function containElements(parentElem: Element|null, e: MouseEvent|null): boolean;
|
87
94
|
|
88
|
-
declare function fe(elem: Element|null, positioning?: Popup.Positioning|null): void;
|
89
|
-
|
90
95
|
export { Popup, containElements };
|
91
96
|
export default Popup;
|
@@ -4,7 +4,7 @@ import { Dom } from './Dom.js';
|
|
4
4
|
|
5
5
|
/** @typedef {Object} Popup~Options
|
6
6
|
* @description Popup options
|
7
|
-
* @property {Popup~Positioning=} positioning="under"
|
7
|
+
* @property {Popup~Positioning=} positioning="under" Avialable value are under, right, over, fixed, custom
|
8
8
|
* @property {boolean=} autoHiding=true Hide on blur or clicking outside of popup elements
|
9
9
|
* @property {boolean=} hoverToShow=false Show popup when mouse is over the attached element.
|
10
10
|
* @property {boolean=} autoClipping=true Clip popup element when there is not enough space to show popup
|
@@ -16,16 +16,17 @@ import { Dom } from './Dom.js';
|
|
16
16
|
* @property {Popup=} popupChild=null Popup instance that will be hidden when its parent is hidden
|
17
17
|
* @property {boolean=} uiBlocking=false To attach overlay to block user from interact with ui behind popup
|
18
18
|
* @property {boolean=} hideOnScroll=true If disabled, popup will not be hidden when scrolling
|
19
|
+
* @property {Element=} zIndexReference=null Popup will be opened with zIndex greater than the given element
|
19
20
|
*/
|
20
21
|
|
21
22
|
/** @typedef {string} Popup~Positioning
|
22
23
|
* @description Available positioning type are: <br>
|
23
|
-
* <b>under</b>
|
24
|
-
* <b>right</b>
|
25
|
-
* <b>over</b>
|
26
|
-
* <b>center</b
|
27
|
-
* <b>fixed</b>
|
28
|
-
* <b>custom</b
|
24
|
+
* <b>under</b> : Popup appears under the attached element (Default) <br>
|
25
|
+
* <b>right</b> : Popup appears on the right side of the attached element <br>
|
26
|
+
* <b>over</b> : Popup appears on the top left of the attached element (i.e. over the element) <br>
|
27
|
+
* <b>center</b>: Deprecated. Popup appears at the center of the screen. No element should be supplied <br>
|
28
|
+
* <b>fixed</b> : Popup appears without any positioning <br>
|
29
|
+
* <b>custom</b>: Popup appears without any positioning <br>
|
29
30
|
*
|
30
31
|
*/
|
31
32
|
|
@@ -167,6 +168,10 @@ Popup.prototype._resizeTimer = 0;
|
|
167
168
|
* @private
|
168
169
|
*/
|
169
170
|
Popup.prototype._attachedElem = null;
|
171
|
+
/** @type {Element}
|
172
|
+
* @private
|
173
|
+
*/
|
174
|
+
Popup.prototype._zIndexRef = null;
|
170
175
|
/** @type {string}
|
171
176
|
* @private
|
172
177
|
*/
|
@@ -178,7 +183,7 @@ Popup.prototype._focusElements;
|
|
178
183
|
/** @type {Element}
|
179
184
|
* @private
|
180
185
|
*/
|
181
|
-
Popup.prototype._parentElement;
|
186
|
+
Popup.prototype._parentElement = null;
|
182
187
|
/** @type {!Array.<Popup>}
|
183
188
|
* @private
|
184
189
|
*/
|
@@ -238,7 +243,7 @@ Popup.prototype.dispose = function () {
|
|
238
243
|
this._inDoc = false;
|
239
244
|
Dom.removeParent(this._elem);
|
240
245
|
Dom.removeParent(this._overlay);
|
241
|
-
this._elem = null;
|
246
|
+
this._elem = this._parentElement = this._attachedElem = this._zIndexRef = null;
|
242
247
|
};
|
243
248
|
/** @public
|
244
249
|
* @return {Element}
|
@@ -274,41 +279,53 @@ Popup.prototype.enable = function (opt_bool) {
|
|
274
279
|
Popup.prototype.init = function (options) {
|
275
280
|
if (!options) { return; }
|
276
281
|
|
277
|
-
|
278
|
-
|
282
|
+
let val = options["positioning"];
|
283
|
+
if (val) {
|
284
|
+
this._positioning = val;
|
279
285
|
}
|
280
|
-
|
281
|
-
|
286
|
+
val = options["autoHiding"];
|
287
|
+
if (val != null) {
|
288
|
+
this._autoHiding = val ? true : false;
|
282
289
|
}
|
283
|
-
|
284
|
-
|
290
|
+
val = options["uiBlocking"];
|
291
|
+
if (val != null) {
|
292
|
+
this.enableUIBlocking(val);
|
285
293
|
}
|
286
|
-
|
287
|
-
|
294
|
+
val = options["hoverToShow"];
|
295
|
+
if (val != null) {
|
296
|
+
this._hoverToShow = val ? true : false;
|
288
297
|
}
|
289
|
-
|
290
|
-
|
298
|
+
val = options["autoClipping"];
|
299
|
+
if (val != null) {
|
300
|
+
this._autoClipping = val ? true : false;
|
291
301
|
}
|
292
|
-
|
293
|
-
|
302
|
+
val = options["attachedElement"];
|
303
|
+
if (val !== undefined) { // eslint-disable-line
|
304
|
+
this.attachTo(val);
|
294
305
|
}
|
295
|
-
|
296
|
-
|
306
|
+
val = options["contentElement"];
|
307
|
+
if (val instanceof Element) {
|
308
|
+
this.appendChild(val);
|
297
309
|
}
|
298
|
-
|
299
|
-
|
310
|
+
val = options["parentElement"];
|
311
|
+
if (val !== undefined) { // eslint-disable-line
|
312
|
+
this.setParentElement(val);
|
300
313
|
}
|
301
|
-
|
302
|
-
if (
|
303
|
-
this.addPopupChild(
|
314
|
+
val = options["popupChild"];
|
315
|
+
if (val) {
|
316
|
+
this.addPopupChild(val);
|
304
317
|
}
|
305
|
-
|
306
|
-
if (
|
307
|
-
this._hideOnScroll = false;
|
318
|
+
val = options["hideOnScroll"];
|
319
|
+
if (val != null) {
|
320
|
+
this._hideOnScroll = val ? true : false;
|
308
321
|
}
|
309
|
-
|
310
|
-
if (
|
311
|
-
this._autoRepositioning = false;
|
322
|
+
val = options["autoRepositioning"];
|
323
|
+
if (val != null) {
|
324
|
+
this._autoRepositioning = val ? true : false;
|
325
|
+
}
|
326
|
+
val = options["zIndexReference"];
|
327
|
+
if (val !== undefined) { // eslint-disable-line
|
328
|
+
this.setZIndexReference(val);
|
312
329
|
}
|
313
330
|
|
314
331
|
this.addListener(options, "show");
|
@@ -358,6 +375,13 @@ Popup.prototype.attachTo = function (elem, positioning) {
|
|
358
375
|
};
|
359
376
|
/** @public
|
360
377
|
* @function
|
378
|
+
* @returns {Element}
|
379
|
+
*/
|
380
|
+
Popup.prototype.getAttachedElement = function() {
|
381
|
+
return this._attachedElem;
|
382
|
+
};
|
383
|
+
/** @public
|
384
|
+
* @function
|
361
385
|
* @param {Element} elem
|
362
386
|
* @param {Popup~Positioning=} positioning
|
363
387
|
*/
|
@@ -417,12 +441,73 @@ Popup.prototype.setPopupGap = function (gap) {
|
|
417
441
|
Popup.prototype.setParentElement = function (parentElement) {
|
418
442
|
if (parentElement instanceof Element) {
|
419
443
|
this._parentElement = parentElement;
|
420
|
-
} else
|
444
|
+
} else {
|
421
445
|
this._parentElement = document.body;
|
422
446
|
}
|
423
447
|
return this._parentElement;
|
424
448
|
};
|
425
449
|
|
450
|
+
/** @public
|
451
|
+
* @returns {Element}
|
452
|
+
*/
|
453
|
+
Popup.prototype.getZIndexReference = function () {
|
454
|
+
return this._zIndexRef;
|
455
|
+
};
|
456
|
+
/** @public
|
457
|
+
* @param {Element} elem
|
458
|
+
*/
|
459
|
+
Popup.prototype.setZIndexReference = function (elem) {
|
460
|
+
this._zIndexRef = elem || null;
|
461
|
+
};
|
462
|
+
/** @private
|
463
|
+
* @param {Element} elem
|
464
|
+
* @returns {number}
|
465
|
+
*/
|
466
|
+
let _getComputedZIndex = function (elem) {
|
467
|
+
if(elem) {
|
468
|
+
try {
|
469
|
+
let comp = getComputedStyle(elem);
|
470
|
+
let zIndex = comp.getPropertyValue("z-index");
|
471
|
+
if(zIndex) {
|
472
|
+
return (+zIndex) || 0;
|
473
|
+
}
|
474
|
+
} catch(err) {}
|
475
|
+
}
|
476
|
+
return 0;
|
477
|
+
};
|
478
|
+
/** @private
|
479
|
+
* @param {Element} elem
|
480
|
+
* @returns {number}
|
481
|
+
*/
|
482
|
+
let _getElementZIndex = function (elem) {
|
483
|
+
if(!elem) {
|
484
|
+
return 0;
|
485
|
+
}
|
486
|
+
|
487
|
+
let zIndex = _getComputedZIndex(elem);
|
488
|
+
if(elem.getRootNode) {
|
489
|
+
let rn = elem.getRootNode();
|
490
|
+
let host = rn ? rn.host : null;
|
491
|
+
if(host) {
|
492
|
+
let rnZIndex = _getComputedZIndex(host);
|
493
|
+
return zIndex >= rnZIndex ? zIndex : rnZIndex;
|
494
|
+
}
|
495
|
+
}
|
496
|
+
return zIndex;
|
497
|
+
};
|
498
|
+
/** @private
|
499
|
+
* @param {Element} elem
|
500
|
+
* @param {number} zIndex
|
501
|
+
*/
|
502
|
+
let _setElementZIndex = function (elem, zIndex) {
|
503
|
+
if(elem) {
|
504
|
+
if(zIndex) {
|
505
|
+
elem.style.zIndex = zIndex + "";
|
506
|
+
} else if(elem.style.zIndex) {
|
507
|
+
elem.style.zIndex = "";
|
508
|
+
}
|
509
|
+
}
|
510
|
+
};
|
426
511
|
/** @public
|
427
512
|
* @param {boolean=} opt_shown
|
428
513
|
* @param {Element=} parentElement
|
@@ -454,12 +539,27 @@ Popup.prototype.show = function (opt_shown, parentElement) {
|
|
454
539
|
|
455
540
|
if (shown) {
|
456
541
|
t._inDoc = true;
|
542
|
+
|
543
|
+
let zIndex = _getElementZIndex(parentElement);
|
457
544
|
if (!(parentElement instanceof Element)) {
|
458
545
|
parentElement = t._parentElement;
|
459
546
|
}
|
460
547
|
if (t._uiBlocking) {
|
461
548
|
t._attachOverlay(parentElement);
|
462
549
|
}
|
550
|
+
let aez = _getElementZIndex(t._attachedElem);
|
551
|
+
let rez = _getElementZIndex(t._zIndexRef);
|
552
|
+
if(zIndex < aez) {
|
553
|
+
zIndex = aez;
|
554
|
+
}
|
555
|
+
if(zIndex < rez) {
|
556
|
+
zIndex = rez;
|
557
|
+
}
|
558
|
+
if(zIndex) {
|
559
|
+
++zIndex;
|
560
|
+
}
|
561
|
+
_setElementZIndex(t._elem, zIndex);
|
562
|
+
_setElementZIndex(t._overlay, zIndex);
|
463
563
|
|
464
564
|
parentElement.appendChild(t._elem);
|
465
565
|
parentElement.addEventListener("scroll", t._onScroll, true); // TODO: Remove the listener
|
package/lib/versions.json
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
{
|
2
|
-
"tr-grid-util": "1.3.
|
2
|
+
"tr-grid-util": "1.3.159",
|
3
3
|
"tr-grid-printer": "1.0.18",
|
4
4
|
"@grid/column-dragging": "1.0.21",
|
5
5
|
"@grid/row-segmenting": "1.0.33",
|
@@ -14,7 +14,7 @@
|
|
14
14
|
"tr-grid-column-resizing": "1.0.29",
|
15
15
|
"tr-grid-column-selection": "1.0.33",
|
16
16
|
"tr-grid-column-stack": "1.0.76",
|
17
|
-
"tr-grid-conditional-coloring": "1.0.
|
17
|
+
"tr-grid-conditional-coloring": "1.0.71",
|
18
18
|
"tr-grid-content-wrap": "1.0.20",
|
19
19
|
"tr-grid-contextmenu": "1.0.44",
|
20
20
|
"tr-grid-filter-input": "0.9.42",
|
@@ -24,7 +24,7 @@
|
|
24
24
|
"tr-grid-percent-bar": "1.0.24",
|
25
25
|
"tr-grid-range-bar": "2.0.8",
|
26
26
|
"tr-grid-row-dragging": "1.0.36",
|
27
|
-
"tr-grid-row-filtering": "1.0.
|
27
|
+
"tr-grid-row-filtering": "1.0.81",
|
28
28
|
"tr-grid-row-grouping": "1.0.88",
|
29
29
|
"tr-grid-row-selection": "1.0.32",
|
30
30
|
"tr-grid-rowcoloring": "1.0.25",
|
package/package.json
CHANGED