handsontable 0.0.0-next-662a118-20241017 → 0.0.0-next-627918e-20241025
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/calculator/index.js +1 -2
- package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
- package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
- package/3rdparty/walkontable/src/core/_base.js +3 -0
- package/3rdparty/walkontable/src/core/_base.mjs +3 -0
- package/3rdparty/walkontable/src/core/clone.js +1 -0
- package/3rdparty/walkontable/src/core/clone.mjs +1 -0
- package/3rdparty/walkontable/src/core/core.js +2 -0
- package/3rdparty/walkontable/src/core/core.mjs +2 -0
- package/3rdparty/walkontable/src/facade/core.js +3 -0
- package/3rdparty/walkontable/src/facade/core.mjs +3 -0
- package/3rdparty/walkontable/src/index.js +0 -1
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +3 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +3 -1
- package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
- package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/top.js +1 -1
- package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
- package/3rdparty/walkontable/src/settings.js +1 -2
- package/3rdparty/walkontable/src/settings.mjs +1 -2
- package/3rdparty/walkontable/src/table.js +11 -8
- package/3rdparty/walkontable/src/table.mjs +11 -8
- package/3rdparty/walkontable/src/types.js +1 -0
- package/3rdparty/walkontable/src/types.mjs +1 -0
- package/3rdparty/walkontable/src/utils/column.js +1 -1
- package/3rdparty/walkontable/src/utils/column.mjs +1 -1
- package/3rdparty/walkontable/src/utils/stylesHandler.js +179 -0
- package/3rdparty/walkontable/src/utils/stylesHandler.mjs +175 -0
- package/3rdparty/walkontable/src/viewport.js +1 -0
- package/3rdparty/walkontable/src/viewport.mjs +1 -0
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +14 -0
- package/core.mjs +14 -0
- package/dataMap/metaManager/metaSchema.js +17 -0
- package/dataMap/metaManager/metaSchema.mjs +17 -0
- package/dist/handsontable.css +17 -9
- package/dist/handsontable.full.css +17 -7
- package/dist/handsontable.full.js +3893 -3814
- package/dist/handsontable.full.min.css +5 -4
- package/dist/handsontable.full.min.js +26 -26
- package/dist/handsontable.js +3600 -3515
- package/dist/handsontable.min.css +5 -4
- package/dist/handsontable.min.js +24 -24
- package/editors/autocompleteEditor/autocompleteEditor.js +1 -1
- package/editors/autocompleteEditor/autocompleteEditor.mjs +1 -1
- package/editors/baseEditor/baseEditor.js +1 -1
- package/editors/baseEditor/baseEditor.mjs +1 -1
- package/editors/dateEditor/dateEditor.js +2 -0
- package/editors/dateEditor/dateEditor.mjs +2 -0
- package/editors/handsontableEditor/handsontableEditor.js +1 -1
- package/editors/handsontableEditor/handsontableEditor.mjs +1 -1
- package/editors/selectEditor/selectEditor.js +20 -9
- package/editors/selectEditor/selectEditor.mjs +20 -9
- package/editors/textEditor/textEditor.js +4 -11
- package/editors/textEditor/textEditor.mjs +4 -11
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/helpers/themes.js +17 -0
- package/helpers/themes.mjs +13 -0
- package/package.json +10 -3
- package/plugins/comments/commentEditor.js +8 -1
- package/plugins/comments/commentEditor.mjs +8 -1
- package/plugins/comments/comments.js +1 -1
- package/plugins/comments/comments.mjs +1 -1
- package/plugins/contextMenu/menu/menu.js +4 -4
- package/plugins/contextMenu/menu/menu.mjs +4 -4
- package/plugins/manualRowMove/manualRowMove.js +1 -1
- package/plugins/manualRowMove/manualRowMove.mjs +1 -1
- package/plugins/manualRowResize/manualRowResize.js +1 -2
- package/plugins/manualRowResize/manualRowResize.mjs +2 -3
- package/plugins/mergeCells/mergeCells.js +1 -1
- package/plugins/mergeCells/mergeCells.mjs +1 -1
- package/plugins/nestedRows/ui/headers.js +3 -1
- package/plugins/nestedRows/ui/headers.mjs +3 -1
- package/settings.d.ts +1 -0
- package/styles/handsontable.css +1983 -0
- package/styles/handsontable.min.css +30 -0
- package/styles/ht-theme-gemini.css +706 -0
- package/styles/ht-theme-gemini.min.css +30 -0
- package/styles/ht-theme-main.css +714 -0
- package/styles/ht-theme-main.min.css +30 -0
- package/stylesManager.js +1 -0
- package/stylesManager.mjs +0 -0
- package/tableView.js +34 -0
- package/tableView.mjs +34 -0
- package/utils/autoResize.js +4 -1
- package/utils/autoResize.mjs +4 -1
- package/utils/ghostTable.js +1 -1
- package/utils/ghostTable.mjs +1 -1
@@ -21,5 +21,4 @@ var _viewportColumns = require("./viewportColumns");
|
|
21
21
|
exports.ViewportColumnsCalculator = _viewportColumns.ViewportColumnsCalculator;
|
22
22
|
exports.DEFAULT_COLUMN_WIDTH = _viewportColumns.DEFAULT_WIDTH;
|
23
23
|
var _viewportRows = require("./viewportRows");
|
24
|
-
exports.ViewportRowsCalculator = _viewportRows.ViewportRowsCalculator;
|
25
|
-
exports.DEFAULT_ROW_HEIGHT = _viewportRows.DEFAULT_HEIGHT;
|
24
|
+
exports.ViewportRowsCalculator = _viewportRows.ViewportRowsCalculator;
|
@@ -7,5 +7,5 @@ import { RenderedAllRowsCalculationType } from "./calculationType/renderedAllRow
|
|
7
7
|
import { RenderedColumnsCalculationType } from "./calculationType/renderedColumns.mjs";
|
8
8
|
import { RenderedRowsCalculationType } from "./calculationType/renderedRows.mjs";
|
9
9
|
import { ViewportColumnsCalculator, DEFAULT_WIDTH } from "./viewportColumns.mjs";
|
10
|
-
import { ViewportRowsCalculator
|
11
|
-
export {
|
10
|
+
import { ViewportRowsCalculator } from "./viewportRows.mjs";
|
11
|
+
export { DEFAULT_WIDTH as DEFAULT_COLUMN_WIDTH, FullyVisibleColumnsCalculationType, FullyVisibleRowsCalculationType, PartiallyVisibleColumnsCalculationType, PartiallyVisibleRowsCalculationType, RenderedAllColumnsCalculationType, RenderedAllRowsCalculationType, RenderedColumnsCalculationType, RenderedRowsCalculationType, ViewportColumnsCalculator, ViewportRowsCalculator };
|
@@ -7,8 +7,6 @@ var _viewportBase = require("./viewportBase");
|
|
7
7
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
8
8
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
9
9
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
10
|
-
const DEFAULT_HEIGHT = exports.DEFAULT_HEIGHT = 23;
|
11
|
-
|
12
10
|
/**
|
13
11
|
* @typedef {object} ViewportRowsCalculatorOptions
|
14
12
|
* @property {Map<string, ViewportBaseCalculator>} calculationTypes The calculation types to be performed.
|
@@ -34,6 +32,7 @@ class ViewportRowsCalculator extends _viewportBase.ViewportBaseCalculator {
|
|
34
32
|
viewportHeight,
|
35
33
|
scrollOffset,
|
36
34
|
totalRows,
|
35
|
+
defaultRowHeight,
|
37
36
|
rowHeightFn,
|
38
37
|
overrideFn,
|
39
38
|
horizontalScrollbarHeight
|
@@ -51,6 +50,7 @@ class ViewportRowsCalculator extends _viewportBase.ViewportBaseCalculator {
|
|
51
50
|
_defineProperty(this, "totalCalculatedHeight", 0);
|
52
51
|
_defineProperty(this, "startPositions", []);
|
53
52
|
_defineProperty(this, "needReverse", true);
|
53
|
+
this.defaultHeight = defaultRowHeight;
|
54
54
|
this.viewportHeight = viewportHeight;
|
55
55
|
this.scrollOffset = scrollOffset;
|
56
56
|
this.zeroBasedScrollOffset = Math.max(scrollOffset, 0);
|
@@ -89,7 +89,7 @@ class ViewportRowsCalculator extends _viewportBase.ViewportBaseCalculator {
|
|
89
89
|
getRowHeight(row) {
|
90
90
|
const rowHeight = this.rowHeightFn(row);
|
91
91
|
if (isNaN(rowHeight)) {
|
92
|
-
return
|
92
|
+
return this.defaultHeight;
|
93
93
|
}
|
94
94
|
return rowHeight;
|
95
95
|
}
|
@@ -4,8 +4,6 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
|
|
4
4
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
5
5
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
6
6
|
import { ViewportBaseCalculator } from "./viewportBase.mjs";
|
7
|
-
export const DEFAULT_HEIGHT = 23;
|
8
|
-
|
9
7
|
/**
|
10
8
|
* @typedef {object} ViewportRowsCalculatorOptions
|
11
9
|
* @property {Map<string, ViewportBaseCalculator>} calculationTypes The calculation types to be performed.
|
@@ -31,6 +29,7 @@ export class ViewportRowsCalculator extends ViewportBaseCalculator {
|
|
31
29
|
viewportHeight,
|
32
30
|
scrollOffset,
|
33
31
|
totalRows,
|
32
|
+
defaultRowHeight,
|
34
33
|
rowHeightFn,
|
35
34
|
overrideFn,
|
36
35
|
horizontalScrollbarHeight
|
@@ -48,6 +47,7 @@ export class ViewportRowsCalculator extends ViewportBaseCalculator {
|
|
48
47
|
_defineProperty(this, "totalCalculatedHeight", 0);
|
49
48
|
_defineProperty(this, "startPositions", []);
|
50
49
|
_defineProperty(this, "needReverse", true);
|
50
|
+
this.defaultHeight = defaultRowHeight;
|
51
51
|
this.viewportHeight = viewportHeight;
|
52
52
|
this.scrollOffset = scrollOffset;
|
53
53
|
this.zeroBasedScrollOffset = Math.max(scrollOffset, 0);
|
@@ -86,7 +86,7 @@ export class ViewportRowsCalculator extends ViewportBaseCalculator {
|
|
86
86
|
getRowHeight(row) {
|
87
87
|
const rowHeight = this.rowHeightFn(row);
|
88
88
|
if (isNaN(rowHeight)) {
|
89
|
-
return
|
89
|
+
return this.defaultHeight;
|
90
90
|
}
|
91
91
|
return rowHeight;
|
92
92
|
}
|
@@ -305,6 +305,9 @@ export default class CoreAbstract {
|
|
305
305
|
get selectionManager() {
|
306
306
|
return wot.selectionManager; // TODO refactoring: move outside dao, use IOC
|
307
307
|
},
|
308
|
+
get stylesHandler() {
|
309
|
+
return wot.stylesHandler;
|
310
|
+
},
|
308
311
|
get drawn() {
|
309
312
|
return wot.drawn;
|
310
313
|
},
|
@@ -33,6 +33,7 @@ class Clone extends _base.default {
|
|
33
33
|
this.wtTable = this.cloneOverlay.createTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
|
34
34
|
this.wtViewport = clone.viewport;
|
35
35
|
this.selectionManager = clone.selectionManager;
|
36
|
+
this.stylesHandler = clone.stylesHandler;
|
36
37
|
this.wtEvent = new _event.default(facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable, this.selectionManager, clone.event);
|
37
38
|
this.findOriginalHeaders();
|
38
39
|
}
|
@@ -29,6 +29,7 @@ export default class Clone extends CoreAbstract {
|
|
29
29
|
this.wtTable = this.cloneOverlay.createTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
|
30
30
|
this.wtViewport = clone.viewport;
|
31
31
|
this.selectionManager = clone.selectionManager;
|
32
|
+
this.stylesHandler = clone.stylesHandler;
|
32
33
|
this.wtEvent = new Event(facadeGetter, this.domBindings, this.wtSettings, this.eventManager, this.wtTable, this.selectionManager, clone.event);
|
33
34
|
this.findOriginalHeaders();
|
34
35
|
}
|
@@ -12,6 +12,7 @@ var _base = _interopRequireDefault(require("./_base"));
|
|
12
12
|
var _manager = require("../selection/manager");
|
13
13
|
var _object = require("../../../../helpers/object");
|
14
14
|
var _element = require("../../../../helpers/dom/element");
|
15
|
+
var _stylesHandler = require("../utils/stylesHandler");
|
15
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
16
17
|
/**
|
17
18
|
* @class Walkontable
|
@@ -23,6 +24,7 @@ class Walkontable extends _base.default {
|
|
23
24
|
*/
|
24
25
|
constructor(table, settings) {
|
25
26
|
super(table, new _settings.default(settings));
|
27
|
+
this.stylesHandler = new _stylesHandler.StylesHandler(settings.themeName, this.domBindings);
|
26
28
|
const facadeGetter = this.wtSettings.getSetting('facade', this); // todo rethink. I would like to have no access to facade from the internal scope.
|
27
29
|
|
28
30
|
this.wtTable = new _master.default(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
|
@@ -9,6 +9,7 @@ import CoreAbstract from "./_base.mjs";
|
|
9
9
|
import { SelectionManager } from "../selection/manager.mjs";
|
10
10
|
import { objectEach } from "../../../../helpers/object.mjs";
|
11
11
|
import { addClass, removeClass } from "../../../../helpers/dom/element.mjs";
|
12
|
+
import { StylesHandler } from "../utils/stylesHandler.mjs";
|
12
13
|
/**
|
13
14
|
* @class Walkontable
|
14
15
|
*/
|
@@ -19,6 +20,7 @@ export default class Walkontable extends CoreAbstract {
|
|
19
20
|
*/
|
20
21
|
constructor(table, settings) {
|
21
22
|
super(table, new Settings(settings));
|
23
|
+
this.stylesHandler = new StylesHandler(settings.themeName, this.domBindings);
|
22
24
|
const facadeGetter = this.wtSettings.getSetting('facade', this); // todo rethink. I would like to have no access to facade from the internal scope.
|
23
25
|
|
24
26
|
this.wtTable = new MasterTable(this.getTableDao(), facadeGetter, this.domBindings, this.wtSettings);
|
@@ -110,6 +110,9 @@ class WalkontableFacade {
|
|
110
110
|
get eventManager() {
|
111
111
|
return this._wot.eventManager;
|
112
112
|
}
|
113
|
+
get stylesHandler() {
|
114
|
+
return this._wot.stylesHandler;
|
115
|
+
}
|
113
116
|
createCellCoords(row, column) {
|
114
117
|
return this._wot.createCellCoords(row, column);
|
115
118
|
}
|
@@ -106,6 +106,9 @@ export default class WalkontableFacade {
|
|
106
106
|
get eventManager() {
|
107
107
|
return this._wot.eventManager;
|
108
108
|
}
|
109
|
+
get stylesHandler() {
|
110
|
+
return this._wot.stylesHandler;
|
111
|
+
}
|
109
112
|
createCellCoords(row, column) {
|
110
113
|
return this._wot.createCellCoords(row, column);
|
111
114
|
}
|
@@ -4,7 +4,6 @@ exports.__esModule = true;
|
|
4
4
|
var _calculator = require("./calculator");
|
5
5
|
exports.ViewportColumnsCalculator = _calculator.ViewportColumnsCalculator;
|
6
6
|
exports.ViewportRowsCalculator = _calculator.ViewportRowsCalculator;
|
7
|
-
exports.DEFAULT_ROW_HEIGHT = _calculator.DEFAULT_ROW_HEIGHT;
|
8
7
|
exports.DEFAULT_COLUMN_WIDTH = _calculator.DEFAULT_COLUMN_WIDTH;
|
9
8
|
var _coords = _interopRequireDefault(require("./cell/coords"));
|
10
9
|
exports.CellCoords = _coords.default;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ViewportColumnsCalculator, ViewportRowsCalculator,
|
1
|
+
import { ViewportColumnsCalculator, ViewportRowsCalculator, DEFAULT_COLUMN_WIDTH } from "./calculator/index.mjs";
|
2
2
|
import CellCoords from "./cell/coords.mjs";
|
3
3
|
import CellRange from "./cell/range.mjs";
|
4
4
|
import Walkontable from "./facade/core.mjs";
|
@@ -6,4 +6,4 @@ import { Selection, ACTIVE_HEADER_TYPE, AREA_TYPE, FOCUS_TYPE, FILL_TYPE, HEADER
|
|
6
6
|
import * as Renderer from "./renderer/index.mjs";
|
7
7
|
import { OrderView, SharedOrderView } from "./utils/orderView/index.mjs";
|
8
8
|
import { getListenersCounter } from "../../../eventManager.mjs";
|
9
|
-
export {
|
9
|
+
export { DEFAULT_COLUMN_WIDTH, ViewportColumnsCalculator, ViewportRowsCalculator, CellCoords, CellRange, Walkontable as default, Walkontable as Core, Selection, ACTIVE_HEADER_TYPE as HIGHLIGHT_ACTIVE_HEADER_TYPE, AREA_TYPE as HIGHLIGHT_AREA_TYPE, FOCUS_TYPE as HIGHLIGHT_FOCUS_TYPE, FILL_TYPE as HIGHLIGHT_FILL_TYPE, HEADER_TYPE as HIGHLIGHT_HEADER_TYPE, ROW_TYPE as HIGHLIGHT_ROW_TYPE, COLUMN_TYPE as HIGHLIGHT_COLUMN_TYPE, CUSTOM_SELECTION_TYPE as HIGHLIGHT_CUSTOM_SELECTION_TYPE, Renderer, OrderView, SharedOrderView, getListenersCounter };
|
@@ -302,7 +302,9 @@ class Overlay {
|
|
302
302
|
// todo ioc , or factor func if used only here
|
303
303
|
event: this.wot.wtEvent,
|
304
304
|
// todo ioc , or factory func if used only here
|
305
|
-
selectionManager: this.wot.selectionManager
|
305
|
+
selectionManager: this.wot.selectionManager,
|
306
|
+
// todo ioc , or factory func if used only here
|
307
|
+
stylesHandler: this.wot.stylesHandler
|
306
308
|
});
|
307
309
|
}
|
308
310
|
|
@@ -298,7 +298,9 @@ export class Overlay {
|
|
298
298
|
// todo ioc , or factor func if used only here
|
299
299
|
event: this.wot.wtEvent,
|
300
300
|
// todo ioc , or factory func if used only here
|
301
|
-
selectionManager: this.wot.selectionManager
|
301
|
+
selectionManager: this.wot.selectionManager,
|
302
|
+
// todo ioc , or factory func if used only here
|
303
|
+
stylesHandler: this.wot.stylesHandler
|
302
304
|
});
|
303
305
|
}
|
304
306
|
|
@@ -144,9 +144,9 @@ class BottomOverlay extends _base.Overlay {
|
|
144
144
|
sumCellSizes(from, to) {
|
145
145
|
const {
|
146
146
|
wtTable,
|
147
|
-
|
147
|
+
stylesHandler
|
148
148
|
} = this.wot;
|
149
|
-
const defaultRowHeight =
|
149
|
+
const defaultRowHeight = stylesHandler.getDefaultRowHeight();
|
150
150
|
let row = from;
|
151
151
|
let sum = 0;
|
152
152
|
while (row < to) {
|
@@ -140,9 +140,9 @@ export class BottomOverlay extends Overlay {
|
|
140
140
|
sumCellSizes(from, to) {
|
141
141
|
const {
|
142
142
|
wtTable,
|
143
|
-
|
143
|
+
stylesHandler
|
144
144
|
} = this.wot;
|
145
|
-
const defaultRowHeight =
|
145
|
+
const defaultRowHeight = stylesHandler.getDefaultRowHeight();
|
146
146
|
let row = from;
|
147
147
|
let sum = 0;
|
148
148
|
while (row < to) {
|
@@ -138,7 +138,7 @@ class TopOverlay extends _base.Overlay {
|
|
138
138
|
* @returns {number} Height sum.
|
139
139
|
*/
|
140
140
|
sumCellSizes(from, to) {
|
141
|
-
const defaultRowHeight = this.
|
141
|
+
const defaultRowHeight = this.wot.stylesHandler.getDefaultRowHeight();
|
142
142
|
let row = from;
|
143
143
|
let sum = 0;
|
144
144
|
while (row < to) {
|
@@ -134,7 +134,7 @@ export class TopOverlay extends Overlay {
|
|
134
134
|
* @returns {number} Height sum.
|
135
135
|
*/
|
136
136
|
sumCellSizes(from, to) {
|
137
|
-
const defaultRowHeight = this.
|
137
|
+
const defaultRowHeight = this.wot.stylesHandler.getDefaultRowHeight();
|
138
138
|
let row = from;
|
139
139
|
let sum = 0;
|
140
140
|
while (row < to) {
|
@@ -19,7 +19,6 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
19
19
|
* @property {Option} currentRowClassName Option `currentRowClassName`.
|
20
20
|
* @property {Option} data Option `data`.
|
21
21
|
* @property {Option} defaultColumnWidth Option `defaultColumnWidth`.
|
22
|
-
* @property {Option} defaultRowHeight Option `defaultRowHeight`.
|
23
22
|
* @property {Option} externalRowCalculator Option `externalRowCalculator`.
|
24
23
|
* @property {Option} fixedColumnsStart Option `fixedColumnsStart`.
|
25
24
|
* @property {Option} fixedRowsBottom Option `fixedRowsBottom`.
|
@@ -46,6 +45,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
46
45
|
* @property {Option} shouldRenderTopOverlay Option `shouldRenderTopOverlay`.
|
47
46
|
* @property {Option} stretchH Option `stretchH`.
|
48
47
|
* @property {Option} table Option `table`.
|
48
|
+
* @property {Option} themeName Option `themeName`.
|
49
49
|
* @property {Option} totalColumns Option `totalColumns`.
|
50
50
|
* @property {Option} totalRows Option `totalRows`.
|
51
51
|
* @property {?Option} beforeDraw Option `beforeDraw`.
|
@@ -191,7 +191,6 @@ class Settings {
|
|
191
191
|
rowHeightByOverlayName() {
|
192
192
|
// return undefined means use default size for the rendered cell content
|
193
193
|
},
|
194
|
-
defaultRowHeight: 23,
|
195
194
|
defaultColumnWidth: 50,
|
196
195
|
selections: null,
|
197
196
|
hideBorderOnMouseDownOver: false,
|
@@ -16,7 +16,6 @@ import { objectEach } from "../../../helpers/object.mjs";
|
|
16
16
|
* @property {Option} currentRowClassName Option `currentRowClassName`.
|
17
17
|
* @property {Option} data Option `data`.
|
18
18
|
* @property {Option} defaultColumnWidth Option `defaultColumnWidth`.
|
19
|
-
* @property {Option} defaultRowHeight Option `defaultRowHeight`.
|
20
19
|
* @property {Option} externalRowCalculator Option `externalRowCalculator`.
|
21
20
|
* @property {Option} fixedColumnsStart Option `fixedColumnsStart`.
|
22
21
|
* @property {Option} fixedRowsBottom Option `fixedRowsBottom`.
|
@@ -43,6 +42,7 @@ import { objectEach } from "../../../helpers/object.mjs";
|
|
43
42
|
* @property {Option} shouldRenderTopOverlay Option `shouldRenderTopOverlay`.
|
44
43
|
* @property {Option} stretchH Option `stretchH`.
|
45
44
|
* @property {Option} table Option `table`.
|
45
|
+
* @property {Option} themeName Option `themeName`.
|
46
46
|
* @property {Option} totalColumns Option `totalColumns`.
|
47
47
|
* @property {Option} totalRows Option `totalRows`.
|
48
48
|
* @property {?Option} beforeDraw Option `beforeDraw`.
|
@@ -186,7 +186,6 @@ export default class Settings {
|
|
186
186
|
rowHeightByOverlayName() {
|
187
187
|
// return undefined means use default size for the rendered cell content
|
188
188
|
},
|
189
|
-
defaultRowHeight: 23,
|
190
189
|
defaultColumnWidth: 50,
|
191
190
|
selections: null,
|
192
191
|
hideBorderOnMouseDownOver: false,
|
@@ -367,7 +367,7 @@ class Table {
|
|
367
367
|
markIfOversizedColumnHeader(col) {
|
368
368
|
const sourceColIndex = this.columnFilter.renderedToSource(col);
|
369
369
|
let level = this.wtSettings.getSetting('columnHeaders').length;
|
370
|
-
const defaultRowHeight = this.
|
370
|
+
const defaultRowHeight = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
|
371
371
|
let previousColHeaderHeight;
|
372
372
|
let currentHeader;
|
373
373
|
let currentHeaderHeight;
|
@@ -645,10 +645,13 @@ class Table {
|
|
645
645
|
return;
|
646
646
|
}
|
647
647
|
let rowCount = this.TBODY.childNodes.length;
|
648
|
-
const expectedTableHeight = rowCount * this.
|
648
|
+
const expectedTableHeight = rowCount * this.dataAccessObject.stylesHandler.getDefaultRowHeight();
|
649
649
|
const actualTableHeight = (0, _element.innerHeight)(this.TBODY) - 1;
|
650
|
+
const borderBoxSizing = this.wot.stylesHandler.getStyleForTD('box-sizing') === 'border-box';
|
651
|
+
const rowHeightFn = borderBoxSizing ? _element.outerHeight : _element.innerHeight;
|
652
|
+
const borderCompensation = borderBoxSizing ? 0 : 1;
|
650
653
|
let previousRowHeight;
|
651
|
-
let
|
654
|
+
let rowCurrentHeight;
|
652
655
|
let sourceRowIndex;
|
653
656
|
let currentTr;
|
654
657
|
let rowHeader;
|
@@ -663,13 +666,13 @@ class Table {
|
|
663
666
|
currentTr = this.getTrForRow(sourceRowIndex);
|
664
667
|
rowHeader = currentTr.querySelector('th');
|
665
668
|
if (rowHeader) {
|
666
|
-
|
669
|
+
rowCurrentHeight = rowHeightFn(rowHeader);
|
667
670
|
} else {
|
668
|
-
|
671
|
+
rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
|
669
672
|
}
|
670
|
-
if (!previousRowHeight && this.
|
671
|
-
|
672
|
-
this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] =
|
673
|
+
if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight || previousRowHeight < rowCurrentHeight) {
|
674
|
+
rowCurrentHeight += 1;
|
675
|
+
this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] = rowCurrentHeight;
|
673
676
|
}
|
674
677
|
}
|
675
678
|
}
|
@@ -363,7 +363,7 @@ class Table {
|
|
363
363
|
markIfOversizedColumnHeader(col) {
|
364
364
|
const sourceColIndex = this.columnFilter.renderedToSource(col);
|
365
365
|
let level = this.wtSettings.getSetting('columnHeaders').length;
|
366
|
-
const defaultRowHeight = this.
|
366
|
+
const defaultRowHeight = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
|
367
367
|
let previousColHeaderHeight;
|
368
368
|
let currentHeader;
|
369
369
|
let currentHeaderHeight;
|
@@ -641,10 +641,13 @@ class Table {
|
|
641
641
|
return;
|
642
642
|
}
|
643
643
|
let rowCount = this.TBODY.childNodes.length;
|
644
|
-
const expectedTableHeight = rowCount * this.
|
644
|
+
const expectedTableHeight = rowCount * this.dataAccessObject.stylesHandler.getDefaultRowHeight();
|
645
645
|
const actualTableHeight = innerHeight(this.TBODY) - 1;
|
646
|
+
const borderBoxSizing = this.wot.stylesHandler.getStyleForTD('box-sizing') === 'border-box';
|
647
|
+
const rowHeightFn = borderBoxSizing ? outerHeight : innerHeight;
|
648
|
+
const borderCompensation = borderBoxSizing ? 0 : 1;
|
646
649
|
let previousRowHeight;
|
647
|
-
let
|
650
|
+
let rowCurrentHeight;
|
648
651
|
let sourceRowIndex;
|
649
652
|
let currentTr;
|
650
653
|
let rowHeader;
|
@@ -659,13 +662,13 @@ class Table {
|
|
659
662
|
currentTr = this.getTrForRow(sourceRowIndex);
|
660
663
|
rowHeader = currentTr.querySelector('th');
|
661
664
|
if (rowHeader) {
|
662
|
-
|
665
|
+
rowCurrentHeight = rowHeightFn(rowHeader);
|
663
666
|
} else {
|
664
|
-
|
667
|
+
rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
|
665
668
|
}
|
666
|
-
if (!previousRowHeight && this.
|
667
|
-
|
668
|
-
this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] =
|
669
|
+
if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight || previousRowHeight < rowCurrentHeight) {
|
670
|
+
rowCurrentHeight += 1;
|
671
|
+
this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] = rowCurrentHeight;
|
669
672
|
}
|
670
673
|
}
|
671
674
|
}
|
@@ -66,6 +66,7 @@
|
|
66
66
|
* @property {Walkontable} cloneSource CloneSource.
|
67
67
|
* @property {Walkontable} wot Wot.
|
68
68
|
* @property {number} parentTableOffset ParentTableOffset.
|
69
|
+
* @property {StylesHandler} stylesHandler StylesHandler.
|
69
70
|
* @property {number|null} startColumnRendered StartColumnRendered.
|
70
71
|
* @property {number|null} startColumnVisible StartColumnVisible.
|
71
72
|
* @property {number|null} endColumnRendered EndColumnRendered.
|
@@ -66,6 +66,7 @@
|
|
66
66
|
* @property {Walkontable} cloneSource CloneSource.
|
67
67
|
* @property {Walkontable} wot Wot.
|
68
68
|
* @property {number} parentTableOffset ParentTableOffset.
|
69
|
+
* @property {StylesHandler} stylesHandler StylesHandler.
|
69
70
|
* @property {number|null} startColumnRendered StartColumnRendered.
|
70
71
|
* @property {number|null} startColumnVisible StartColumnVisible.
|
71
72
|
* @property {number|null} endColumnRendered EndColumnRendered.
|
@@ -77,7 +77,7 @@ class ColumnUtils {
|
|
77
77
|
* @returns {number}
|
78
78
|
*/
|
79
79
|
getHeaderHeight(level) {
|
80
|
-
let height = this.
|
80
|
+
let height = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
|
81
81
|
const oversizedHeight = this.dataAccessObject.wtViewport.oversizedColumnHeaders[level];
|
82
82
|
if (oversizedHeight !== undefined) {
|
83
83
|
height = height ? Math.max(height, oversizedHeight) : oversizedHeight;
|
@@ -74,7 +74,7 @@ export default class ColumnUtils {
|
|
74
74
|
* @returns {number}
|
75
75
|
*/
|
76
76
|
getHeaderHeight(level) {
|
77
|
-
let height = this.
|
77
|
+
let height = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
|
78
78
|
const oversizedHeight = this.dataAccessObject.wtViewport.oversizedColumnHeaders[level];
|
79
79
|
if (oversizedHeight !== undefined) {
|
80
80
|
height = height ? Math.max(height, oversizedHeight) : oversizedHeight;
|
@@ -0,0 +1,179 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
require("core-js/modules/es.error.cause.js");
|
5
|
+
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
6
|
+
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
7
|
+
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
8
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
9
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
10
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
11
|
+
const CLASSIC_THEME_DEFAULT_HEIGHT = 23;
|
12
|
+
|
13
|
+
/**
|
14
|
+
* Handles the theme-related style operations.
|
15
|
+
*/
|
16
|
+
var _rootElement = /*#__PURE__*/new WeakMap();
|
17
|
+
var _rootComputedStyle = /*#__PURE__*/new WeakMap();
|
18
|
+
var _rootDocument = /*#__PURE__*/new WeakMap();
|
19
|
+
var _isClassicTheme = /*#__PURE__*/new WeakMap();
|
20
|
+
var _cssVars = /*#__PURE__*/new WeakMap();
|
21
|
+
var _computedStyles = /*#__PURE__*/new WeakMap();
|
22
|
+
var _StylesHandler_brand = /*#__PURE__*/new WeakSet();
|
23
|
+
class StylesHandler {
|
24
|
+
/**
|
25
|
+
* Initializes a new instance of the `StylesHandler` class.
|
26
|
+
*
|
27
|
+
* @param {string} themeName - The name of the theme.
|
28
|
+
* @param {object} domBindings - The DOM bindings for the instance.
|
29
|
+
*/
|
30
|
+
constructor(themeName, domBindings) {
|
31
|
+
/**
|
32
|
+
* Retrieves and processes the computed styles for a `td` element.
|
33
|
+
*
|
34
|
+
* This method creates a temporary table structure, appends it to the root element,
|
35
|
+
* retrieves the computed styles for the `td` element, and then removes the table
|
36
|
+
* from the DOM. The computed styles are passed to the provided callback function.
|
37
|
+
*
|
38
|
+
* @param {Array} cssProps - An array of CSS properties to retrieve.
|
39
|
+
* @returns {object} An object containing the requested computed styles for the `td` element.
|
40
|
+
* @private
|
41
|
+
*/
|
42
|
+
_classPrivateMethodInitSpec(this, _StylesHandler_brand);
|
43
|
+
/**
|
44
|
+
* The instance's root element.
|
45
|
+
*
|
46
|
+
* @type {HTMLElement}
|
47
|
+
*/
|
48
|
+
_classPrivateFieldInitSpec(this, _rootElement, void 0);
|
49
|
+
/**
|
50
|
+
* The computed style of the root element.
|
51
|
+
*
|
52
|
+
* @type {CSSStyleDeclaration}
|
53
|
+
* @private
|
54
|
+
*/
|
55
|
+
_classPrivateFieldInitSpec(this, _rootComputedStyle, void 0);
|
56
|
+
/**
|
57
|
+
* The root document of the instance.
|
58
|
+
*
|
59
|
+
* @type {Document}
|
60
|
+
* @private
|
61
|
+
*/
|
62
|
+
_classPrivateFieldInitSpec(this, _rootDocument, void 0);
|
63
|
+
/**
|
64
|
+
* `true` if the classic theme is enabled, `false` otherwise.
|
65
|
+
*
|
66
|
+
* @type {boolean}
|
67
|
+
*/
|
68
|
+
_classPrivateFieldInitSpec(this, _isClassicTheme, false);
|
69
|
+
/**
|
70
|
+
* An object to store CSS variable values.
|
71
|
+
*
|
72
|
+
* @type {object}
|
73
|
+
* @private
|
74
|
+
*/
|
75
|
+
_classPrivateFieldInitSpec(this, _cssVars, {});
|
76
|
+
/**
|
77
|
+
* Stores the computed styles for various elements.
|
78
|
+
*
|
79
|
+
* @type {object} - An object containing the computed styles if a nested structore of `element: { [element type]: {property: value} }`.
|
80
|
+
* @private
|
81
|
+
*/
|
82
|
+
_classPrivateFieldInitSpec(this, _computedStyles, {});
|
83
|
+
_classPrivateFieldSet(_rootElement, this, domBindings.rootTable.parentElement);
|
84
|
+
_classPrivateFieldSet(_rootComputedStyle, this, getComputedStyle(_classPrivateFieldGet(_rootElement, this)));
|
85
|
+
_classPrivateFieldSet(_rootDocument, this, domBindings.rootDocument);
|
86
|
+
if (!themeName) {
|
87
|
+
_classPrivateFieldSet(_isClassicTheme, this, true);
|
88
|
+
}
|
89
|
+
const stylesForTD = _assertClassBrand(_StylesHandler_brand, this, _getStylesForTD).call(this, ['box-sizing']);
|
90
|
+
_classPrivateFieldGet(_computedStyles, this).td = {
|
91
|
+
..._classPrivateFieldGet(_computedStyles, this).td,
|
92
|
+
...{
|
93
|
+
'box-sizing': stylesForTD['box-sizing']
|
94
|
+
}
|
95
|
+
};
|
96
|
+
}
|
97
|
+
|
98
|
+
/**
|
99
|
+
* Gets the value indicating whether the classic theme is enabled.
|
100
|
+
*
|
101
|
+
* @returns {boolean} `true` if the classic theme is enabled, `false` otherwise.
|
102
|
+
*/
|
103
|
+
isClassicTheme() {
|
104
|
+
return _classPrivateFieldGet(_isClassicTheme, this);
|
105
|
+
}
|
106
|
+
|
107
|
+
/**
|
108
|
+
* Retrieves the value of a specified CSS variable.
|
109
|
+
*
|
110
|
+
* @param {string} variableName - The name of the CSS variable to retrieve.
|
111
|
+
* @returns {number|undefined} The value of the specified CSS variable, or `undefined` if not found.
|
112
|
+
*/
|
113
|
+
getCSSVariableValue(variableName) {
|
114
|
+
if (_classPrivateFieldGet(_cssVars, this)[`--ht-${variableName}`]) {
|
115
|
+
return _classPrivateFieldGet(_cssVars, this)[`--ht-${variableName}`];
|
116
|
+
}
|
117
|
+
const acquiredValue = _assertClassBrand(_StylesHandler_brand, this, _getParsedCSSValue).call(this, `--ht-${variableName}`);
|
118
|
+
if (acquiredValue !== null) {
|
119
|
+
_classPrivateFieldGet(_cssVars, this)[`--ht-${variableName}`] = acquiredValue;
|
120
|
+
return acquiredValue;
|
121
|
+
}
|
122
|
+
}
|
123
|
+
|
124
|
+
/**
|
125
|
+
* Retrieves the computed style value for a specified CSS property of a `td` element.
|
126
|
+
*
|
127
|
+
* @param {string} cssProperty - The CSS property to retrieve the value for.
|
128
|
+
* @returns {number|string|undefined} The value of the specified CSS property, or `undefined` if not found.
|
129
|
+
*/
|
130
|
+
getStyleForTD(cssProperty) {
|
131
|
+
var _classPrivateFieldGet2;
|
132
|
+
return (_classPrivateFieldGet2 = _classPrivateFieldGet(_computedStyles, this)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.td[cssProperty];
|
133
|
+
}
|
134
|
+
|
135
|
+
/**
|
136
|
+
* Calculates the row height based on the current theme and CSS variables.
|
137
|
+
*
|
138
|
+
* @returns {number} The calculated row height.
|
139
|
+
*/
|
140
|
+
getDefaultRowHeight() {
|
141
|
+
if (_classPrivateFieldGet(_isClassicTheme, this)) {
|
142
|
+
return CLASSIC_THEME_DEFAULT_HEIGHT;
|
143
|
+
}
|
144
|
+
return this.getCSSVariableValue('row-height');
|
145
|
+
}
|
146
|
+
}
|
147
|
+
exports.StylesHandler = StylesHandler;
|
148
|
+
function _getStylesForTD(cssProps) {
|
149
|
+
const rootDocument = _classPrivateFieldGet(_rootDocument, this);
|
150
|
+
const rootElement = _classPrivateFieldGet(_rootElement, this);
|
151
|
+
const table = rootDocument.createElement('table');
|
152
|
+
const tbody = rootDocument.createElement('tbody');
|
153
|
+
const tr = rootDocument.createElement('tr');
|
154
|
+
// This needs not to be the first row in order to get "regular" vaules.
|
155
|
+
const tr2 = rootDocument.createElement('tr');
|
156
|
+
const td = rootDocument.createElement('td');
|
157
|
+
tr2.appendChild(td);
|
158
|
+
tbody.appendChild(tr);
|
159
|
+
tbody.appendChild(tr2);
|
160
|
+
table.appendChild(tbody);
|
161
|
+
rootElement.appendChild(table);
|
162
|
+
const computedStyle = getComputedStyle(td);
|
163
|
+
const returnObject = {};
|
164
|
+
cssProps.forEach(prop => {
|
165
|
+
returnObject[prop] = computedStyle.getPropertyValue(prop);
|
166
|
+
});
|
167
|
+
rootElement.removeChild(table);
|
168
|
+
return returnObject;
|
169
|
+
}
|
170
|
+
/**
|
171
|
+
* Parses the value of a specified CSS property from the root element's computed style.
|
172
|
+
*
|
173
|
+
* @param {string} property - The CSS property to retrieve and parse.
|
174
|
+
* @returns {number|null} The parsed value of the CSS property.
|
175
|
+
*/
|
176
|
+
function _getParsedCSSValue(property) {
|
177
|
+
const parsedValue = parseInt(_classPrivateFieldGet(_rootComputedStyle, this).getPropertyValue(property), 10);
|
178
|
+
return Number.isNaN(parsedValue) ? null : parsedValue;
|
179
|
+
}
|