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