@danielgindi/dgtable.js 2.0.6 → 2.0.7
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/dist/lib.cjs.js +186 -193
- package/dist/lib.cjs.js.map +1 -1
- package/dist/lib.cjs.min.js +2 -2
- package/dist/lib.cjs.min.js.map +1 -1
- package/dist/lib.es6.js +186 -193
- package/dist/lib.es6.js.map +1 -1
- package/dist/lib.es6.min.js +2 -2
- package/dist/lib.es6.min.js.map +1 -1
- package/dist/lib.umd.js +184 -191
- package/dist/lib.umd.js.map +1 -1
- package/dist/lib.umd.min.js +2 -2
- package/dist/lib.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/index.js +183 -191
package/dist/lib.cjs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @danielgindi/dgtable.js 2.0.
|
|
2
|
+
* @danielgindi/dgtable.js 2.0.7
|
|
3
3
|
* git://github.com/danielgindi/dgtable.js.git
|
|
4
4
|
*/
|
|
5
5
|
'use strict';
|
|
@@ -2382,6 +2382,7 @@ const HoverOutEventSymbol = Symbol('hover_out');
|
|
|
2382
2382
|
const RowClickEventSymbol = Symbol('row_click');
|
|
2383
2383
|
const PreviewCellSymbol = Symbol('preview_cell');
|
|
2384
2384
|
const OriginalCellSymbol = Symbol('cell');
|
|
2385
|
+
const RelatedTouch = Symbol('related_touch');
|
|
2385
2386
|
|
|
2386
2387
|
function webkitRenderBugfix(el) {
|
|
2387
2388
|
// BUGFIX: WebKit has a bug where it does not relayout, and this affects us because scrollbars
|
|
@@ -2450,7 +2451,7 @@ class DGTable {
|
|
|
2450
2451
|
this.el.classList.add(options.className || 'dgtable-wrapper');
|
|
2451
2452
|
}
|
|
2452
2453
|
|
|
2453
|
-
p.eventsSink.add(this.el, 'dragend.colresize', this.
|
|
2454
|
+
p.eventsSink.add(this.el, 'dragend.colresize', this._onDragEndColumnHeader.bind(this));
|
|
2454
2455
|
|
|
2455
2456
|
/**
|
|
2456
2457
|
* @private
|
|
@@ -4899,10 +4900,10 @@ class DGTable {
|
|
|
4899
4900
|
/**previousElementSibling
|
|
4900
4901
|
* Reverse-calculate the column to resize from mouse position
|
|
4901
4902
|
* @private
|
|
4902
|
-
* @param {MouseEvent} event mouse event
|
|
4903
|
+
* @param {MouseEvent|TouchEvent} event mouse event
|
|
4903
4904
|
* @returns {string|null} name of the column which the mouse is over, or null if the mouse is not in resize position
|
|
4904
4905
|
*/
|
|
4905
|
-
_getColumnByResizePosition(event) {
|
|
4906
|
+
_getColumnByResizePosition(event) {var _ref, _event$RelatedTouch, _event$changedTouches;
|
|
4906
4907
|
let o = this._o,
|
|
4907
4908
|
rtl = this._isTableRtl();
|
|
4908
4909
|
|
|
@@ -4918,7 +4919,8 @@ class DGTable {
|
|
|
4918
4919
|
|
|
4919
4920
|
let firstCol = !previousElementSibling;
|
|
4920
4921
|
|
|
4921
|
-
|
|
4922
|
+
const positionHost = (_ref = (_event$RelatedTouch = event[RelatedTouch]) !== null && _event$RelatedTouch !== void 0 ? _event$RelatedTouch : (_event$changedTouches = event.changedTouches) === null || _event$changedTouches === void 0 ? void 0 : _event$changedTouches[0]) !== null && _ref !== void 0 ? _ref : event;
|
|
4923
|
+
let mouseX = (positionHost.pageX || positionHost.clientX) - Css_js.getElementOffset(headerCell).left;
|
|
4922
4924
|
|
|
4923
4925
|
if (rtl) {
|
|
4924
4926
|
if (!firstCol && Css_js.getElementWidth(headerCell, true, true, true) - mouseX <= o.resizeAreaWidth / 2) {
|
|
@@ -4962,36 +4964,8 @@ class DGTable {
|
|
|
4962
4964
|
clearTimeout(tapAndHoldTimeout);
|
|
4963
4965
|
};
|
|
4964
4966
|
|
|
4965
|
-
|
|
4966
|
-
|
|
4967
|
-
'clientX', 'clientY',
|
|
4968
|
-
'offsetX', 'offsetY',
|
|
4969
|
-
'screenX', 'screenY',
|
|
4970
|
-
'pageX', 'pageY',
|
|
4971
|
-
'button',
|
|
4972
|
-
'buttons',
|
|
4973
|
-
'which',
|
|
4974
|
-
'srcElement',
|
|
4975
|
-
'toElement',
|
|
4976
|
-
'relatedTarget',
|
|
4977
|
-
'ctrlKey', 'shiftKey', 'altKey', 'metaKey'];
|
|
4978
|
-
let fakeMouseEvent = (name, ...args) => {
|
|
4979
|
-
for (const k of fakeEventKeys)
|
|
4980
|
-
event[k];
|
|
4981
|
-
|
|
4982
|
-
for (const obj of args) {
|
|
4983
|
-
for (const key of fakeEventKeys) {
|
|
4984
|
-
if (obj[key] != null)
|
|
4985
|
-
obj[key];
|
|
4986
|
-
}
|
|
4987
|
-
}
|
|
4988
|
-
|
|
4989
|
-
return new MouseEvent(name, event);
|
|
4990
|
-
};
|
|
4991
|
-
|
|
4992
|
-
cellEl.dispatchEvent(
|
|
4993
|
-
fakeMouseEvent('mousedown', event.changedTouches[0], { button: 0, target: event.target })
|
|
4994
|
-
);
|
|
4967
|
+
event[RelatedTouch] = event.changedTouches[0];
|
|
4968
|
+
this._onMouseDownColumnHeader(event);
|
|
4995
4969
|
|
|
4996
4970
|
tapAndHoldTimeout = setTimeout(() => {
|
|
4997
4971
|
unbind();
|
|
@@ -5012,16 +4986,13 @@ class DGTable {
|
|
|
5012
4986
|
|
|
5013
4987
|
if (distanceTravelled < distanceTreshold) {
|
|
5014
4988
|
this.cancelColumnResize();
|
|
5015
|
-
|
|
5016
|
-
cellEl.dispatchEvent(
|
|
5017
|
-
fakeMouseEvent('mouseup', event.changedTouches[0], { button: 2, target: event.target })
|
|
5018
|
-
);
|
|
4989
|
+
this._triggerColumnHeaderContextMenu(event);
|
|
5019
4990
|
}
|
|
5020
4991
|
|
|
5021
4992
|
}, 500);
|
|
5022
4993
|
|
|
5023
4994
|
p.eventsSink.
|
|
5024
|
-
add(cellEl, 'touchend.colheader', (event) => {
|
|
4995
|
+
add(cellEl, 'touchend.colheader', (/**TouchEvent*/event) => {
|
|
5025
4996
|
let touch = find(event.changedTouches, (touch) => touch.identifier === p.currentTouchId);
|
|
5026
4997
|
if (!touch) return;
|
|
5027
4998
|
|
|
@@ -5035,18 +5006,13 @@ class DGTable {
|
|
|
5035
5006
|
let distanceTravelled = Math.sqrt(Math.pow(Math.abs(currentPos.x - startPos.x), 2) + Math.pow(Math.abs(currentPos.y - startPos.y), 2));
|
|
5036
5007
|
|
|
5037
5008
|
if (distanceTravelled < distanceTreshold || p.resizer) {
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
);
|
|
5041
|
-
|
|
5042
|
-
cellEl.dispatchEvent(
|
|
5043
|
-
fakeMouseEvent('click', touch, { button: 0, target: event.target })
|
|
5044
|
-
);
|
|
5009
|
+
event[RelatedTouch] = touch;
|
|
5010
|
+
this._onSortOnColumnHeaderEvent(event);
|
|
5045
5011
|
}
|
|
5046
5012
|
|
|
5047
5013
|
}).
|
|
5048
5014
|
add(cellEl, 'touchcancel.colheader', unbind).
|
|
5049
|
-
add(cellEl, 'touchmove.colheader', (event) => {
|
|
5015
|
+
add(cellEl, 'touchmove.colheader', (/**TouchEvent*/event) => {
|
|
5050
5016
|
let touch = find(event.changedTouches, (touch) => touch.identifier === p.currentTouchId);
|
|
5051
5017
|
if (!touch) return;
|
|
5052
5018
|
|
|
@@ -5056,18 +5022,18 @@ class DGTable {
|
|
|
5056
5022
|
if (p.resizer) {
|
|
5057
5023
|
event.preventDefault();
|
|
5058
5024
|
|
|
5059
|
-
|
|
5060
|
-
|
|
5061
|
-
);
|
|
5025
|
+
event[RelatedTouch] = touch;
|
|
5026
|
+
this._onMouseMoveColumnHeader(event);
|
|
5062
5027
|
}
|
|
5063
5028
|
});
|
|
5064
5029
|
}
|
|
5065
5030
|
|
|
5066
5031
|
/**
|
|
5067
|
-
* @param {MouseEvent} event
|
|
5032
|
+
* @param {MouseEvent|TouchEvent} event
|
|
5068
5033
|
*/
|
|
5069
5034
|
_onMouseDownColumnHeader(event) {
|
|
5070
|
-
if (event.button !== 0)
|
|
5035
|
+
if (event.type === 'mousedown' && event.button !== 0)
|
|
5036
|
+
return;
|
|
5071
5037
|
|
|
5072
5038
|
let o = this._o,
|
|
5073
5039
|
p = this._p,
|
|
@@ -5134,48 +5100,61 @@ class DGTable {
|
|
|
5134
5100
|
|
|
5135
5101
|
p.eventsSink.
|
|
5136
5102
|
add(document, 'mousemove.colresize', this._onMouseMoveResizeArea.bind(this)).
|
|
5137
|
-
add(document, '
|
|
5103
|
+
add(document, 'touchmove.colresize', this._onMouseMoveResizeArea.bind(this)).
|
|
5104
|
+
add(document, 'mouseup.colresize', this._onResizerPointerUpColumnHeader.bind(this)).
|
|
5105
|
+
add(document, 'touchend.colresize', this._onResizerPointerUpColumnHeader.bind(this));
|
|
5138
5106
|
|
|
5139
5107
|
event.preventDefault();
|
|
5140
5108
|
}
|
|
5141
5109
|
}
|
|
5142
5110
|
|
|
5143
5111
|
/**
|
|
5144
|
-
* @param {MouseEvent} event event
|
|
5112
|
+
* @param {MouseEvent|TouchEvent} event event
|
|
5145
5113
|
*/
|
|
5146
5114
|
_onMouseMoveColumnHeader(event) {
|
|
5147
|
-
|
|
5115
|
+
const o = this._o,
|
|
5148
5116
|
p = this._p;
|
|
5149
5117
|
|
|
5150
|
-
if (o.resizableColumns)
|
|
5151
|
-
|
|
5152
|
-
|
|
5153
|
-
|
|
5154
|
-
|
|
5155
|
-
|
|
5156
|
-
|
|
5157
|
-
|
|
5118
|
+
if (!o.resizableColumns)
|
|
5119
|
+
return;
|
|
5120
|
+
|
|
5121
|
+
let col = this._getColumnByResizePosition(event);
|
|
5122
|
+
let headerCell = event.target.closest(`div.${o.tableClassName}-header-cell,div.${o.cellPreviewClassName}`);
|
|
5123
|
+
if (!col || !p.columns.get(col).resizable) {
|
|
5124
|
+
headerCell.style.cursor = '';
|
|
5125
|
+
} else {
|
|
5126
|
+
headerCell.style.cursor = 'e-resize';
|
|
5158
5127
|
}
|
|
5159
5128
|
}
|
|
5160
5129
|
|
|
5161
5130
|
/**
|
|
5162
|
-
* @param {MouseEvent} event
|
|
5131
|
+
* @param {MouseEvent|TouchEvent} event
|
|
5163
5132
|
*/
|
|
5164
5133
|
_onMouseUpColumnHeader(event) {
|
|
5165
|
-
if (event.button
|
|
5166
|
-
|
|
5167
|
-
|
|
5168
|
-
|
|
5169
|
-
|
|
5170
|
-
|
|
5171
|
-
|
|
5172
|
-
|
|
5173
|
-
|
|
5174
|
-
|
|
5175
|
-
|
|
5176
|
-
|
|
5177
|
-
|
|
5178
|
-
|
|
5134
|
+
if (event.button !== 2)
|
|
5135
|
+
return;
|
|
5136
|
+
|
|
5137
|
+
this._triggerColumnHeaderContextMenu(event);
|
|
5138
|
+
}
|
|
5139
|
+
|
|
5140
|
+
/**
|
|
5141
|
+
* @param {MouseEvent|TouchEvent} event
|
|
5142
|
+
*/
|
|
5143
|
+
_triggerColumnHeaderContextMenu(event) {var _ref2, _event$RelatedTouch2, _event$changedTouches2;
|
|
5144
|
+
const o = this._o;
|
|
5145
|
+
|
|
5146
|
+
const positionHost = (_ref2 = (_event$RelatedTouch2 = event[RelatedTouch]) !== null && _event$RelatedTouch2 !== void 0 ? _event$RelatedTouch2 : (_event$changedTouches2 = event.changedTouches) === null || _event$changedTouches2 === void 0 ? void 0 : _event$changedTouches2[0]) !== null && _ref2 !== void 0 ? _ref2 : event;
|
|
5147
|
+
|
|
5148
|
+
let headerCell = event.target.closest(`div.${o.tableClassName}-header-cell,div.${o.cellPreviewClassName}`);
|
|
5149
|
+
let bounds = Css_js.getElementOffset(headerCell);
|
|
5150
|
+
bounds['width'] = Css_js.getElementWidth(headerCell, true, true, true);
|
|
5151
|
+
bounds['height'] = Css_js.getElementHeight(headerCell, true, true, true);
|
|
5152
|
+
this.emit('headercontextmenu', {
|
|
5153
|
+
columnName: headerCell['columnName'],
|
|
5154
|
+
pageX: positionHost.pageX,
|
|
5155
|
+
pageY: positionHost.pageY,
|
|
5156
|
+
bounds: bounds
|
|
5157
|
+
});
|
|
5179
5158
|
}
|
|
5180
5159
|
|
|
5181
5160
|
/**
|
|
@@ -5190,41 +5169,43 @@ class DGTable {
|
|
|
5190
5169
|
|
|
5191
5170
|
/**
|
|
5192
5171
|
* @private
|
|
5193
|
-
* @param {MouseEvent} event event
|
|
5172
|
+
* @param {MouseEvent|TouchEvent} event event
|
|
5194
5173
|
*/
|
|
5195
|
-
|
|
5174
|
+
_onSortOnColumnHeaderEvent(event) {
|
|
5196
5175
|
if (isInputElementEvent(event))
|
|
5197
5176
|
return;
|
|
5198
5177
|
|
|
5199
|
-
if (
|
|
5200
|
-
|
|
5201
|
-
p = this._p;
|
|
5178
|
+
if (this._getColumnByResizePosition(event))
|
|
5179
|
+
return;
|
|
5202
5180
|
|
|
5203
|
-
|
|
5204
|
-
|
|
5205
|
-
let column = p.columns.get(headerCell['columnName']);
|
|
5206
|
-
let currentSort = p.rows.sortColumn;
|
|
5207
|
-
if (column && column.sortable) {
|
|
5208
|
-
let shouldAdd = true;
|
|
5181
|
+
const o = this._o,
|
|
5182
|
+
p = this._p;
|
|
5209
5183
|
|
|
5210
|
-
|
|
5184
|
+
let headerCell = event.target.closest(`div.${o.tableClassName}-header-cell,div.${o.cellPreviewClassName}`);
|
|
5185
|
+
if (!o.sortableColumns)
|
|
5186
|
+
return;
|
|
5211
5187
|
|
|
5212
|
-
|
|
5213
|
-
|
|
5214
|
-
|
|
5215
|
-
|
|
5216
|
-
shouldAdd = false;
|
|
5217
|
-
currentSort.splice(currentSort.length - 1, 1);
|
|
5218
|
-
}
|
|
5219
|
-
}
|
|
5188
|
+
let column = p.columns.get(headerCell['columnName']);
|
|
5189
|
+
let currentSort = p.rows.sortColumn;
|
|
5190
|
+
if (column && column.sortable) {
|
|
5191
|
+
let shouldAdd = true;
|
|
5220
5192
|
|
|
5221
|
-
|
|
5222
|
-
|
|
5223
|
-
|
|
5224
|
-
|
|
5225
|
-
|
|
5193
|
+
let lastSort = currentSort.length ? currentSort[currentSort.length - 1] : null;
|
|
5194
|
+
|
|
5195
|
+
if (lastSort && lastSort.column === column.name) {
|
|
5196
|
+
if (!lastSort.descending || !o.allowCancelSort) {
|
|
5197
|
+
lastSort.descending = !lastSort.descending;
|
|
5198
|
+
} else {
|
|
5199
|
+
shouldAdd = false;
|
|
5200
|
+
currentSort.splice(currentSort.length - 1, 1);
|
|
5226
5201
|
}
|
|
5227
5202
|
}
|
|
5203
|
+
|
|
5204
|
+
if (shouldAdd) {
|
|
5205
|
+
this.sort(column.name, undefined, true).render();
|
|
5206
|
+
} else {
|
|
5207
|
+
this.sort(); // just refresh current situation
|
|
5208
|
+
}
|
|
5228
5209
|
}
|
|
5229
5210
|
}
|
|
5230
5211
|
|
|
@@ -5255,9 +5236,9 @@ class DGTable {
|
|
|
5255
5236
|
|
|
5256
5237
|
/**
|
|
5257
5238
|
* @private
|
|
5258
|
-
* @param {MouseEvent} event event
|
|
5239
|
+
* @param {MouseEvent|TouchEvent} event event
|
|
5259
5240
|
*/
|
|
5260
|
-
_onMouseMoveResizeArea(event) {
|
|
5241
|
+
_onMouseMoveResizeArea(event) {var _ref3, _event$RelatedTouch3, _event$changedTouches3;
|
|
5261
5242
|
|
|
5262
5243
|
let p = this._p;
|
|
5263
5244
|
|
|
@@ -5278,7 +5259,8 @@ class DGTable {
|
|
|
5278
5259
|
|
|
5279
5260
|
let isBoxing = selectedHeaderCellStyle.boxSizing === 'border-box';
|
|
5280
5261
|
|
|
5281
|
-
|
|
5262
|
+
const positionHost = (_ref3 = (_event$RelatedTouch3 = event[RelatedTouch]) !== null && _event$RelatedTouch3 !== void 0 ? _event$RelatedTouch3 : (_event$changedTouches3 = event.changedTouches) === null || _event$changedTouches3 === void 0 ? void 0 : _event$changedTouches3[0]) !== null && _ref3 !== void 0 ? _ref3 : event;
|
|
5263
|
+
let actualX = positionHost.pageX - posRelative.left;
|
|
5282
5264
|
let minX = posCol.left;
|
|
5283
5265
|
|
|
5284
5266
|
minX -= Math.ceil(resizerWidth / 2);
|
|
@@ -5315,125 +5297,136 @@ class DGTable {
|
|
|
5315
5297
|
* @private
|
|
5316
5298
|
* @param {DragEvent} event event
|
|
5317
5299
|
*/
|
|
5318
|
-
|
|
5300
|
+
_onDragEndColumnHeader(event) {
|
|
5301
|
+
let p = this._p;
|
|
5319
5302
|
|
|
5303
|
+
if (!p.resizer) {
|
|
5304
|
+
event.target.style.opacity = null;
|
|
5305
|
+
}
|
|
5306
|
+
}
|
|
5307
|
+
|
|
5308
|
+
/**
|
|
5309
|
+
* @private
|
|
5310
|
+
* @param {MouseEvent|TouchEvent} event event
|
|
5311
|
+
*/
|
|
5312
|
+
_onResizerPointerUpColumnHeader(event) {var _ref4, _event$RelatedTouch4, _event$changedTouches4;
|
|
5320
5313
|
let o = this._o,
|
|
5321
5314
|
p = this._p;
|
|
5322
5315
|
|
|
5323
|
-
if (!p.resizer)
|
|
5324
|
-
|
|
5325
|
-
} else {
|
|
5326
|
-
p.eventsSink.remove(document, '.colresize');
|
|
5316
|
+
if (!p.resizer)
|
|
5317
|
+
return;
|
|
5327
5318
|
|
|
5328
|
-
|
|
5329
|
-
let rtl = this._isTableRtl();
|
|
5319
|
+
p.eventsSink.remove(document, '.colresize');
|
|
5330
5320
|
|
|
5331
|
-
|
|
5332
|
-
|
|
5333
|
-
commonAncestor = p.resizer.parentNode;
|
|
5321
|
+
let column = p.columns.get(p.resizer['columnName']);
|
|
5322
|
+
let rtl = this._isTableRtl();
|
|
5334
5323
|
|
|
5335
|
-
|
|
5336
|
-
|
|
5324
|
+
let selectedHeaderCell = column.element,
|
|
5325
|
+
selectedHeaderCellInner = selectedHeaderCell.firstChild,
|
|
5326
|
+
commonAncestor = p.resizer.parentNode;
|
|
5337
5327
|
|
|
5338
|
-
|
|
5339
|
-
|
|
5340
|
-
posRelative.left += parseFloat(commonAncestorStyle.borderLeftWidth) || 0;
|
|
5341
|
-
posCol.left -= posRelative.left;
|
|
5342
|
-
let resizerWidth = Css_js.getElementWidth(p.resizer, true, true, true);
|
|
5328
|
+
const commonAncestorStyle = getComputedStyle(commonAncestor);
|
|
5329
|
+
const selectedHeaderCellStyle = getComputedStyle(selectedHeaderCell);
|
|
5343
5330
|
|
|
5344
|
-
|
|
5331
|
+
let posCol = Css_js.getElementOffset(selectedHeaderCell),
|
|
5332
|
+
posRelative = Css_js.getElementOffset(commonAncestor);
|
|
5333
|
+
posRelative.left += parseFloat(commonAncestorStyle.borderLeftWidth) || 0;
|
|
5334
|
+
posCol.left -= posRelative.left;
|
|
5335
|
+
let resizerWidth = Css_js.getElementWidth(p.resizer, true, true, true);
|
|
5345
5336
|
|
|
5346
|
-
|
|
5347
|
-
let baseX = posCol.left,minX = posCol.left;
|
|
5348
|
-
let width = 0;
|
|
5337
|
+
let isBoxing = selectedHeaderCellStyle.boxSizing === 'border-box';
|
|
5349
5338
|
|
|
5350
|
-
|
|
5339
|
+
const positionHost = (_ref4 = (_event$RelatedTouch4 = event[RelatedTouch]) !== null && _event$RelatedTouch4 !== void 0 ? _event$RelatedTouch4 : (_event$changedTouches4 = event.changedTouches) === null || _event$changedTouches4 === void 0 ? void 0 : _event$changedTouches4[0]) !== null && _ref4 !== void 0 ? _ref4 : event;
|
|
5340
|
+
let actualX = positionHost.pageX - posRelative.left;
|
|
5341
|
+
let baseX = posCol.left,minX = posCol.left;
|
|
5342
|
+
let width = 0;
|
|
5351
5343
|
|
|
5352
|
-
|
|
5353
|
-
if (!isBoxing) {
|
|
5354
|
-
actualX += this._horizontalPadding(selectedHeaderCell);
|
|
5355
|
-
const innerComputedStyle = getComputedStyle(selectedHeaderCellInner || selectedHeaderCell);
|
|
5356
|
-
actualX += parseFloat(innerComputedStyle.borderLeftWidth) || 0;
|
|
5357
|
-
actualX += parseFloat(innerComputedStyle.borderRightWidth) || 0;
|
|
5358
|
-
actualX += column.arrowProposedWidth || 0; // Sort-arrow width
|
|
5359
|
-
}
|
|
5344
|
+
baseX -= Math.ceil(resizerWidth / 2);
|
|
5360
5345
|
|
|
5361
|
-
|
|
5346
|
+
if (rtl) {
|
|
5347
|
+
if (!isBoxing) {
|
|
5348
|
+
actualX += this._horizontalPadding(selectedHeaderCell);
|
|
5349
|
+
const innerComputedStyle = getComputedStyle(selectedHeaderCellInner || selectedHeaderCell);
|
|
5350
|
+
actualX += parseFloat(innerComputedStyle.borderLeftWidth) || 0;
|
|
5351
|
+
actualX += parseFloat(innerComputedStyle.borderRightWidth) || 0;
|
|
5352
|
+
actualX += column.arrowProposedWidth || 0; // Sort-arrow width
|
|
5353
|
+
}
|
|
5362
5354
|
|
|
5363
|
-
|
|
5364
|
-
if (actualX > minX) {
|
|
5365
|
-
actualX = minX;
|
|
5366
|
-
}
|
|
5355
|
+
baseX += Css_js.getElementWidth(selectedHeaderCell, true, true, true);
|
|
5367
5356
|
|
|
5368
|
-
|
|
5369
|
-
|
|
5370
|
-
|
|
5371
|
-
|
|
5372
|
-
const innerComputedStyle = getComputedStyle(selectedHeaderCellInner || selectedHeaderCell);
|
|
5373
|
-
actualX -= parseFloat(innerComputedStyle.borderLeftWidth) || 0;
|
|
5374
|
-
actualX -= parseFloat(innerComputedStyle.borderRightWidth) || 0;
|
|
5375
|
-
actualX -= column.arrowProposedWidth || 0; // Sort-arrow width
|
|
5376
|
-
}
|
|
5357
|
+
minX = baseX - (column.ignoreMin ? 0 : this._o.minColumnWidth);
|
|
5358
|
+
if (actualX > minX) {
|
|
5359
|
+
actualX = minX;
|
|
5360
|
+
}
|
|
5377
5361
|
|
|
5378
|
-
|
|
5379
|
-
|
|
5380
|
-
|
|
5381
|
-
|
|
5362
|
+
width = baseX - actualX;
|
|
5363
|
+
} else {
|
|
5364
|
+
if (!isBoxing) {
|
|
5365
|
+
actualX -= this._horizontalPadding(selectedHeaderCell);
|
|
5366
|
+
const innerComputedStyle = getComputedStyle(selectedHeaderCellInner || selectedHeaderCell);
|
|
5367
|
+
actualX -= parseFloat(innerComputedStyle.borderLeftWidth) || 0;
|
|
5368
|
+
actualX -= parseFloat(innerComputedStyle.borderRightWidth) || 0;
|
|
5369
|
+
actualX -= column.arrowProposedWidth || 0; // Sort-arrow width
|
|
5370
|
+
}
|
|
5382
5371
|
|
|
5383
|
-
|
|
5372
|
+
minX = baseX + (column.ignoreMin ? 0 : this._o.minColumnWidth);
|
|
5373
|
+
if (actualX < minX) {
|
|
5374
|
+
actualX = minX;
|
|
5384
5375
|
}
|
|
5385
5376
|
|
|
5386
|
-
|
|
5387
|
-
|
|
5377
|
+
width = actualX - baseX;
|
|
5378
|
+
}
|
|
5388
5379
|
|
|
5389
|
-
|
|
5380
|
+
p.resizer.remove();
|
|
5381
|
+
p.resizer = null;
|
|
5390
5382
|
|
|
5391
|
-
|
|
5392
|
-
let sizeLeft = this._calculateWidthAvailableForColumns();
|
|
5393
|
-
//sizeLeft -= p.table.offsetWidth - p.table.clientWidth;
|
|
5383
|
+
let sizeToSet = width;
|
|
5394
5384
|
|
|
5395
|
-
|
|
5396
|
-
|
|
5385
|
+
if (column.widthMode === ColumnWidthMode.RELATIVE) {
|
|
5386
|
+
let sizeLeft = this._calculateWidthAvailableForColumns();
|
|
5387
|
+
//sizeLeft -= p.table.offsetWidth - p.table.clientWidth;
|
|
5397
5388
|
|
|
5398
|
-
|
|
5399
|
-
|
|
5400
|
-
if (col.name === column.name) continue;
|
|
5389
|
+
let totalRelativePercentage = 0;
|
|
5390
|
+
let relatives = 0;
|
|
5401
5391
|
|
|
5402
|
-
|
|
5403
|
-
|
|
5404
|
-
|
|
5405
|
-
|
|
5406
|
-
|
|
5407
|
-
|
|
5392
|
+
for (let i = 0; i < p.visibleColumns.length; i++) {
|
|
5393
|
+
let col = p.visibleColumns[i];
|
|
5394
|
+
if (col.name === column.name) continue;
|
|
5395
|
+
|
|
5396
|
+
if (col.widthMode === ColumnWidthMode.RELATIVE) {
|
|
5397
|
+
totalRelativePercentage += col.width;
|
|
5398
|
+
relatives++;
|
|
5399
|
+
} else {
|
|
5400
|
+
sizeLeft -= col.actualWidth;
|
|
5408
5401
|
}
|
|
5402
|
+
}
|
|
5409
5403
|
|
|
5410
|
-
|
|
5411
|
-
|
|
5412
|
-
|
|
5413
|
-
|
|
5404
|
+
sizeLeft = Math.max(1, sizeLeft);
|
|
5405
|
+
if (sizeLeft === 1)
|
|
5406
|
+
sizeLeft = p.table.clientWidth;
|
|
5407
|
+
sizeToSet = width / sizeLeft;
|
|
5414
5408
|
|
|
5415
|
-
|
|
5416
|
-
|
|
5417
|
-
|
|
5418
|
-
|
|
5409
|
+
if (relatives > 0) {
|
|
5410
|
+
// When there's more than one relative overall,
|
|
5411
|
+
// we can do relative enlarging/shrinking.
|
|
5412
|
+
// Otherwise, we can end up having a 0 width.
|
|
5419
5413
|
|
|
5420
|
-
|
|
5414
|
+
let unNormalizedSizeToSet = sizeToSet / ((1 - sizeToSet) / totalRelativePercentage);
|
|
5421
5415
|
|
|
5422
|
-
|
|
5416
|
+
totalRelativePercentage += sizeToSet;
|
|
5423
5417
|
|
|
5424
|
-
|
|
5425
|
-
|
|
5426
|
-
|
|
5427
|
-
|
|
5428
|
-
}
|
|
5418
|
+
// Account for relative widths scaling later
|
|
5419
|
+
if (totalRelativePercentage < 1 && o.relativeWidthGrowsToFillWidth ||
|
|
5420
|
+
totalRelativePercentage > 1 && o.relativeWidthShrinksToFillWidth) {
|
|
5421
|
+
sizeToSet = unNormalizedSizeToSet;
|
|
5429
5422
|
}
|
|
5430
|
-
|
|
5431
|
-
sizeToSet *= 100;
|
|
5432
|
-
sizeToSet += '%';
|
|
5433
5423
|
}
|
|
5434
5424
|
|
|
5435
|
-
|
|
5425
|
+
sizeToSet *= 100;
|
|
5426
|
+
sizeToSet += '%';
|
|
5436
5427
|
}
|
|
5428
|
+
|
|
5429
|
+
this.setColumnWidth(column.name, sizeToSet);
|
|
5437
5430
|
}
|
|
5438
5431
|
|
|
5439
5432
|
/**
|
|
@@ -5662,7 +5655,7 @@ class DGTable {
|
|
|
5662
5655
|
columnEl.addEventListener('mouseleave', this._onMouseLeaveColumnHeader.bind(this));
|
|
5663
5656
|
columnEl.addEventListener('touchstart', this._onTouchStartColumnHeader.bind(this));
|
|
5664
5657
|
columnEl.addEventListener('dragstart', this._onStartDragColumnHeader.bind(this));
|
|
5665
|
-
columnEl.addEventListener('click', this.
|
|
5658
|
+
columnEl.addEventListener('click', this._onSortOnColumnHeaderEvent.bind(this));
|
|
5666
5659
|
columnEl.addEventListener('contextmenu', (event) => {event.preventDefault();});
|
|
5667
5660
|
inner.addEventListener('dragenter', this._onDragEnterColumnHeader.bind(this));
|
|
5668
5661
|
inner.addEventListener('dragover', this._onDragOverColumnHeader.bind(this));
|