@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.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,23 +4964,8 @@ class DGTable {
|
|
|
4962
4964
|
clearTimeout(tapAndHoldTimeout);
|
|
4963
4965
|
};
|
|
4964
4966
|
|
|
4965
|
-
|
|
4966
|
-
|
|
4967
|
-
event[k];
|
|
4968
|
-
|
|
4969
|
-
for (const obj of args) {
|
|
4970
|
-
for (const key of ['target', 'clientX', 'clientY', 'offsetX', 'offsetY', 'screenX', 'screenY', 'pageX', 'pageY', 'which']) {
|
|
4971
|
-
if (obj[key] != null)
|
|
4972
|
-
obj[key];
|
|
4973
|
-
}
|
|
4974
|
-
}
|
|
4975
|
-
|
|
4976
|
-
return new MouseEvent(name, event);
|
|
4977
|
-
};
|
|
4978
|
-
|
|
4979
|
-
cellEl.dispatchEvent(
|
|
4980
|
-
fakeMouseEvent('mousedown', event.changedTouches[0], { button: 0, target: event.target })
|
|
4981
|
-
);
|
|
4967
|
+
event[RelatedTouch] = event.changedTouches[0];
|
|
4968
|
+
this._onMouseDownColumnHeader(event);
|
|
4982
4969
|
|
|
4983
4970
|
tapAndHoldTimeout = setTimeout(() => {
|
|
4984
4971
|
unbind();
|
|
@@ -4999,16 +4986,13 @@ class DGTable {
|
|
|
4999
4986
|
|
|
5000
4987
|
if (distanceTravelled < distanceTreshold) {
|
|
5001
4988
|
this.cancelColumnResize();
|
|
5002
|
-
|
|
5003
|
-
cellEl.dispatchEvent(
|
|
5004
|
-
fakeMouseEvent('mouseup', event.changedTouches[0], { button: 2, target: event.target })
|
|
5005
|
-
);
|
|
4989
|
+
this._triggerColumnHeaderContextMenu(event);
|
|
5006
4990
|
}
|
|
5007
4991
|
|
|
5008
4992
|
}, 500);
|
|
5009
4993
|
|
|
5010
4994
|
p.eventsSink.
|
|
5011
|
-
add(cellEl, 'touchend.colheader', (event) => {
|
|
4995
|
+
add(cellEl, 'touchend.colheader', (/**TouchEvent*/event) => {
|
|
5012
4996
|
let touch = find(event.changedTouches, (touch) => touch.identifier === p.currentTouchId);
|
|
5013
4997
|
if (!touch) return;
|
|
5014
4998
|
|
|
@@ -5022,18 +5006,13 @@ class DGTable {
|
|
|
5022
5006
|
let distanceTravelled = Math.sqrt(Math.pow(Math.abs(currentPos.x - startPos.x), 2) + Math.pow(Math.abs(currentPos.y - startPos.y), 2));
|
|
5023
5007
|
|
|
5024
5008
|
if (distanceTravelled < distanceTreshold || p.resizer) {
|
|
5025
|
-
|
|
5026
|
-
|
|
5027
|
-
);
|
|
5028
|
-
|
|
5029
|
-
cellEl.dispatchEvent(
|
|
5030
|
-
fakeMouseEvent('click', touch, { button: 0, target: event.target })
|
|
5031
|
-
);
|
|
5009
|
+
event[RelatedTouch] = touch;
|
|
5010
|
+
this._onSortOnColumnHeaderEvent(event);
|
|
5032
5011
|
}
|
|
5033
5012
|
|
|
5034
5013
|
}).
|
|
5035
5014
|
add(cellEl, 'touchcancel.colheader', unbind).
|
|
5036
|
-
add(cellEl, 'touchmove.colheader', (event) => {
|
|
5015
|
+
add(cellEl, 'touchmove.colheader', (/**TouchEvent*/event) => {
|
|
5037
5016
|
let touch = find(event.changedTouches, (touch) => touch.identifier === p.currentTouchId);
|
|
5038
5017
|
if (!touch) return;
|
|
5039
5018
|
|
|
@@ -5043,18 +5022,18 @@ class DGTable {
|
|
|
5043
5022
|
if (p.resizer) {
|
|
5044
5023
|
event.preventDefault();
|
|
5045
5024
|
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
);
|
|
5025
|
+
event[RelatedTouch] = touch;
|
|
5026
|
+
this._onMouseMoveColumnHeader(event);
|
|
5049
5027
|
}
|
|
5050
5028
|
});
|
|
5051
5029
|
}
|
|
5052
5030
|
|
|
5053
5031
|
/**
|
|
5054
|
-
* @param {MouseEvent} event
|
|
5032
|
+
* @param {MouseEvent|TouchEvent} event
|
|
5055
5033
|
*/
|
|
5056
5034
|
_onMouseDownColumnHeader(event) {
|
|
5057
|
-
if (event.button !== 0)
|
|
5035
|
+
if (event.type === 'mousedown' && event.button !== 0)
|
|
5036
|
+
return;
|
|
5058
5037
|
|
|
5059
5038
|
let o = this._o,
|
|
5060
5039
|
p = this._p,
|
|
@@ -5121,48 +5100,61 @@ class DGTable {
|
|
|
5121
5100
|
|
|
5122
5101
|
p.eventsSink.
|
|
5123
5102
|
add(document, 'mousemove.colresize', this._onMouseMoveResizeArea.bind(this)).
|
|
5124
|
-
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));
|
|
5125
5106
|
|
|
5126
5107
|
event.preventDefault();
|
|
5127
5108
|
}
|
|
5128
5109
|
}
|
|
5129
5110
|
|
|
5130
5111
|
/**
|
|
5131
|
-
* @param {MouseEvent} event event
|
|
5112
|
+
* @param {MouseEvent|TouchEvent} event event
|
|
5132
5113
|
*/
|
|
5133
5114
|
_onMouseMoveColumnHeader(event) {
|
|
5134
|
-
|
|
5115
|
+
const o = this._o,
|
|
5135
5116
|
p = this._p;
|
|
5136
5117
|
|
|
5137
|
-
if (o.resizableColumns)
|
|
5138
|
-
|
|
5139
|
-
|
|
5140
|
-
|
|
5141
|
-
|
|
5142
|
-
|
|
5143
|
-
|
|
5144
|
-
|
|
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';
|
|
5145
5127
|
}
|
|
5146
5128
|
}
|
|
5147
5129
|
|
|
5148
5130
|
/**
|
|
5149
|
-
* @param {MouseEvent} event
|
|
5131
|
+
* @param {MouseEvent|TouchEvent} event
|
|
5150
5132
|
*/
|
|
5151
5133
|
_onMouseUpColumnHeader(event) {
|
|
5152
|
-
if (event.button
|
|
5153
|
-
|
|
5154
|
-
|
|
5155
|
-
|
|
5156
|
-
|
|
5157
|
-
|
|
5158
|
-
|
|
5159
|
-
|
|
5160
|
-
|
|
5161
|
-
|
|
5162
|
-
|
|
5163
|
-
|
|
5164
|
-
|
|
5165
|
-
|
|
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
|
+
});
|
|
5166
5158
|
}
|
|
5167
5159
|
|
|
5168
5160
|
/**
|
|
@@ -5177,41 +5169,43 @@ class DGTable {
|
|
|
5177
5169
|
|
|
5178
5170
|
/**
|
|
5179
5171
|
* @private
|
|
5180
|
-
* @param {MouseEvent} event event
|
|
5172
|
+
* @param {MouseEvent|TouchEvent} event event
|
|
5181
5173
|
*/
|
|
5182
|
-
|
|
5174
|
+
_onSortOnColumnHeaderEvent(event) {
|
|
5183
5175
|
if (isInputElementEvent(event))
|
|
5184
5176
|
return;
|
|
5185
5177
|
|
|
5186
|
-
if (
|
|
5187
|
-
|
|
5188
|
-
p = this._p;
|
|
5178
|
+
if (this._getColumnByResizePosition(event))
|
|
5179
|
+
return;
|
|
5189
5180
|
|
|
5190
|
-
|
|
5191
|
-
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5181
|
+
const o = this._o,
|
|
5182
|
+
p = this._p;
|
|
5183
|
+
|
|
5184
|
+
let headerCell = event.target.closest(`div.${o.tableClassName}-header-cell,div.${o.cellPreviewClassName}`);
|
|
5185
|
+
if (!o.sortableColumns)
|
|
5186
|
+
return;
|
|
5196
5187
|
|
|
5197
|
-
|
|
5188
|
+
let column = p.columns.get(headerCell['columnName']);
|
|
5189
|
+
let currentSort = p.rows.sortColumn;
|
|
5190
|
+
if (column && column.sortable) {
|
|
5191
|
+
let shouldAdd = true;
|
|
5198
5192
|
|
|
5199
|
-
|
|
5200
|
-
if (!lastSort.descending || !o.allowCancelSort) {
|
|
5201
|
-
lastSort.descending = !lastSort.descending;
|
|
5202
|
-
} else {
|
|
5203
|
-
shouldAdd = false;
|
|
5204
|
-
currentSort.splice(currentSort.length - 1, 1);
|
|
5205
|
-
}
|
|
5206
|
-
}
|
|
5193
|
+
let lastSort = currentSort.length ? currentSort[currentSort.length - 1] : null;
|
|
5207
5194
|
|
|
5208
|
-
|
|
5209
|
-
|
|
5210
|
-
|
|
5211
|
-
|
|
5212
|
-
|
|
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);
|
|
5213
5201
|
}
|
|
5214
5202
|
}
|
|
5203
|
+
|
|
5204
|
+
if (shouldAdd) {
|
|
5205
|
+
this.sort(column.name, undefined, true).render();
|
|
5206
|
+
} else {
|
|
5207
|
+
this.sort(); // just refresh current situation
|
|
5208
|
+
}
|
|
5215
5209
|
}
|
|
5216
5210
|
}
|
|
5217
5211
|
|
|
@@ -5242,9 +5236,9 @@ class DGTable {
|
|
|
5242
5236
|
|
|
5243
5237
|
/**
|
|
5244
5238
|
* @private
|
|
5245
|
-
* @param {MouseEvent} event event
|
|
5239
|
+
* @param {MouseEvent|TouchEvent} event event
|
|
5246
5240
|
*/
|
|
5247
|
-
_onMouseMoveResizeArea(event) {
|
|
5241
|
+
_onMouseMoveResizeArea(event) {var _ref3, _event$RelatedTouch3, _event$changedTouches3;
|
|
5248
5242
|
|
|
5249
5243
|
let p = this._p;
|
|
5250
5244
|
|
|
@@ -5265,7 +5259,8 @@ class DGTable {
|
|
|
5265
5259
|
|
|
5266
5260
|
let isBoxing = selectedHeaderCellStyle.boxSizing === 'border-box';
|
|
5267
5261
|
|
|
5268
|
-
|
|
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;
|
|
5269
5264
|
let minX = posCol.left;
|
|
5270
5265
|
|
|
5271
5266
|
minX -= Math.ceil(resizerWidth / 2);
|
|
@@ -5302,125 +5297,136 @@ class DGTable {
|
|
|
5302
5297
|
* @private
|
|
5303
5298
|
* @param {DragEvent} event event
|
|
5304
5299
|
*/
|
|
5305
|
-
|
|
5300
|
+
_onDragEndColumnHeader(event) {
|
|
5301
|
+
let p = this._p;
|
|
5302
|
+
|
|
5303
|
+
if (!p.resizer) {
|
|
5304
|
+
event.target.style.opacity = null;
|
|
5305
|
+
}
|
|
5306
|
+
}
|
|
5306
5307
|
|
|
5308
|
+
/**
|
|
5309
|
+
* @private
|
|
5310
|
+
* @param {MouseEvent|TouchEvent} event event
|
|
5311
|
+
*/
|
|
5312
|
+
_onResizerPointerUpColumnHeader(event) {var _ref4, _event$RelatedTouch4, _event$changedTouches4;
|
|
5307
5313
|
let o = this._o,
|
|
5308
5314
|
p = this._p;
|
|
5309
5315
|
|
|
5310
|
-
if (!p.resizer)
|
|
5311
|
-
|
|
5312
|
-
} else {
|
|
5313
|
-
p.eventsSink.remove(document, '.colresize');
|
|
5316
|
+
if (!p.resizer)
|
|
5317
|
+
return;
|
|
5314
5318
|
|
|
5315
|
-
|
|
5316
|
-
let rtl = this._isTableRtl();
|
|
5319
|
+
p.eventsSink.remove(document, '.colresize');
|
|
5317
5320
|
|
|
5318
|
-
|
|
5319
|
-
|
|
5320
|
-
commonAncestor = p.resizer.parentNode;
|
|
5321
|
+
let column = p.columns.get(p.resizer['columnName']);
|
|
5322
|
+
let rtl = this._isTableRtl();
|
|
5321
5323
|
|
|
5322
|
-
|
|
5323
|
-
|
|
5324
|
+
let selectedHeaderCell = column.element,
|
|
5325
|
+
selectedHeaderCellInner = selectedHeaderCell.firstChild,
|
|
5326
|
+
commonAncestor = p.resizer.parentNode;
|
|
5324
5327
|
|
|
5325
|
-
|
|
5326
|
-
|
|
5327
|
-
posRelative.left += parseFloat(commonAncestorStyle.borderLeftWidth) || 0;
|
|
5328
|
-
posCol.left -= posRelative.left;
|
|
5329
|
-
let resizerWidth = Css_js.getElementWidth(p.resizer, true, true, true);
|
|
5328
|
+
const commonAncestorStyle = getComputedStyle(commonAncestor);
|
|
5329
|
+
const selectedHeaderCellStyle = getComputedStyle(selectedHeaderCell);
|
|
5330
5330
|
|
|
5331
|
-
|
|
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);
|
|
5332
5336
|
|
|
5333
|
-
|
|
5334
|
-
let baseX = posCol.left,minX = posCol.left;
|
|
5335
|
-
let width = 0;
|
|
5337
|
+
let isBoxing = selectedHeaderCellStyle.boxSizing === 'border-box';
|
|
5336
5338
|
|
|
5337
|
-
|
|
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;
|
|
5338
5343
|
|
|
5339
|
-
|
|
5340
|
-
if (!isBoxing) {
|
|
5341
|
-
actualX += this._horizontalPadding(selectedHeaderCell);
|
|
5342
|
-
const innerComputedStyle = getComputedStyle(selectedHeaderCellInner || selectedHeaderCell);
|
|
5343
|
-
actualX += parseFloat(innerComputedStyle.borderLeftWidth) || 0;
|
|
5344
|
-
actualX += parseFloat(innerComputedStyle.borderRightWidth) || 0;
|
|
5345
|
-
actualX += column.arrowProposedWidth || 0; // Sort-arrow width
|
|
5346
|
-
}
|
|
5344
|
+
baseX -= Math.ceil(resizerWidth / 2);
|
|
5347
5345
|
|
|
5348
|
-
|
|
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
|
+
}
|
|
5349
5354
|
|
|
5350
|
-
|
|
5351
|
-
if (actualX > minX) {
|
|
5352
|
-
actualX = minX;
|
|
5353
|
-
}
|
|
5355
|
+
baseX += Css_js.getElementWidth(selectedHeaderCell, true, true, true);
|
|
5354
5356
|
|
|
5355
|
-
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
|
|
5359
|
-
const innerComputedStyle = getComputedStyle(selectedHeaderCellInner || selectedHeaderCell);
|
|
5360
|
-
actualX -= parseFloat(innerComputedStyle.borderLeftWidth) || 0;
|
|
5361
|
-
actualX -= parseFloat(innerComputedStyle.borderRightWidth) || 0;
|
|
5362
|
-
actualX -= column.arrowProposedWidth || 0; // Sort-arrow width
|
|
5363
|
-
}
|
|
5357
|
+
minX = baseX - (column.ignoreMin ? 0 : this._o.minColumnWidth);
|
|
5358
|
+
if (actualX > minX) {
|
|
5359
|
+
actualX = minX;
|
|
5360
|
+
}
|
|
5364
5361
|
|
|
5365
|
-
|
|
5366
|
-
|
|
5367
|
-
|
|
5368
|
-
|
|
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
|
+
}
|
|
5369
5371
|
|
|
5370
|
-
|
|
5372
|
+
minX = baseX + (column.ignoreMin ? 0 : this._o.minColumnWidth);
|
|
5373
|
+
if (actualX < minX) {
|
|
5374
|
+
actualX = minX;
|
|
5371
5375
|
}
|
|
5372
5376
|
|
|
5373
|
-
|
|
5374
|
-
|
|
5377
|
+
width = actualX - baseX;
|
|
5378
|
+
}
|
|
5375
5379
|
|
|
5376
|
-
|
|
5380
|
+
p.resizer.remove();
|
|
5381
|
+
p.resizer = null;
|
|
5377
5382
|
|
|
5378
|
-
|
|
5379
|
-
let sizeLeft = this._calculateWidthAvailableForColumns();
|
|
5380
|
-
//sizeLeft -= p.table.offsetWidth - p.table.clientWidth;
|
|
5383
|
+
let sizeToSet = width;
|
|
5381
5384
|
|
|
5382
|
-
|
|
5383
|
-
|
|
5385
|
+
if (column.widthMode === ColumnWidthMode.RELATIVE) {
|
|
5386
|
+
let sizeLeft = this._calculateWidthAvailableForColumns();
|
|
5387
|
+
//sizeLeft -= p.table.offsetWidth - p.table.clientWidth;
|
|
5384
5388
|
|
|
5385
|
-
|
|
5386
|
-
|
|
5387
|
-
if (col.name === column.name) continue;
|
|
5389
|
+
let totalRelativePercentage = 0;
|
|
5390
|
+
let relatives = 0;
|
|
5388
5391
|
|
|
5389
|
-
|
|
5390
|
-
|
|
5391
|
-
|
|
5392
|
-
|
|
5393
|
-
|
|
5394
|
-
|
|
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;
|
|
5395
5401
|
}
|
|
5402
|
+
}
|
|
5396
5403
|
|
|
5397
|
-
|
|
5398
|
-
|
|
5399
|
-
|
|
5400
|
-
|
|
5404
|
+
sizeLeft = Math.max(1, sizeLeft);
|
|
5405
|
+
if (sizeLeft === 1)
|
|
5406
|
+
sizeLeft = p.table.clientWidth;
|
|
5407
|
+
sizeToSet = width / sizeLeft;
|
|
5401
5408
|
|
|
5402
|
-
|
|
5403
|
-
|
|
5404
|
-
|
|
5405
|
-
|
|
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.
|
|
5406
5413
|
|
|
5407
|
-
|
|
5414
|
+
let unNormalizedSizeToSet = sizeToSet / ((1 - sizeToSet) / totalRelativePercentage);
|
|
5408
5415
|
|
|
5409
|
-
|
|
5416
|
+
totalRelativePercentage += sizeToSet;
|
|
5410
5417
|
|
|
5411
|
-
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
}
|
|
5418
|
+
// Account for relative widths scaling later
|
|
5419
|
+
if (totalRelativePercentage < 1 && o.relativeWidthGrowsToFillWidth ||
|
|
5420
|
+
totalRelativePercentage > 1 && o.relativeWidthShrinksToFillWidth) {
|
|
5421
|
+
sizeToSet = unNormalizedSizeToSet;
|
|
5416
5422
|
}
|
|
5417
|
-
|
|
5418
|
-
sizeToSet *= 100;
|
|
5419
|
-
sizeToSet += '%';
|
|
5420
5423
|
}
|
|
5421
5424
|
|
|
5422
|
-
|
|
5425
|
+
sizeToSet *= 100;
|
|
5426
|
+
sizeToSet += '%';
|
|
5423
5427
|
}
|
|
5428
|
+
|
|
5429
|
+
this.setColumnWidth(column.name, sizeToSet);
|
|
5424
5430
|
}
|
|
5425
5431
|
|
|
5426
5432
|
/**
|
|
@@ -5649,7 +5655,7 @@ class DGTable {
|
|
|
5649
5655
|
columnEl.addEventListener('mouseleave', this._onMouseLeaveColumnHeader.bind(this));
|
|
5650
5656
|
columnEl.addEventListener('touchstart', this._onTouchStartColumnHeader.bind(this));
|
|
5651
5657
|
columnEl.addEventListener('dragstart', this._onStartDragColumnHeader.bind(this));
|
|
5652
|
-
columnEl.addEventListener('click', this.
|
|
5658
|
+
columnEl.addEventListener('click', this._onSortOnColumnHeaderEvent.bind(this));
|
|
5653
5659
|
columnEl.addEventListener('contextmenu', (event) => {event.preventDefault();});
|
|
5654
5660
|
inner.addEventListener('dragenter', this._onDragEnterColumnHeader.bind(this));
|
|
5655
5661
|
inner.addEventListener('dragover', this._onDragOverColumnHeader.bind(this));
|