handsontable 0.0.0-next-bb36dee-20241108 → 0.0.0-next-cf17948-20241113
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.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/table.js +3 -1
- package/3rdparty/walkontable/src/table.mjs +3 -1
- package/3rdparty/walkontable/src/utils/stylesHandler.js +23 -8
- package/3rdparty/walkontable/src/utils/stylesHandler.mjs +23 -8
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/hooks/constants.js +1 -0
- package/core/hooks/constants.mjs +1 -0
- package/core/hooks/index.d.ts +1 -1
- package/core.d.ts +1 -1
- package/core.js +1 -1
- package/core.mjs +1 -1
- package/dataMap/metaManager/metaSchema.js +1 -1
- package/dataMap/metaManager/metaSchema.mjs +1 -1
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +58 -27
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +6 -6
- package/dist/handsontable.js +58 -27
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +13 -13
- package/editors/dateEditor/dateEditor.js +5 -3
- package/editors/dateEditor/dateEditor.mjs +5 -3
- package/editors/handsontableEditor/handsontableEditor.js +4 -2
- package/editors/handsontableEditor/handsontableEditor.mjs +4 -2
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/plugins/comments/comments.js +6 -1
- package/plugins/comments/comments.mjs +6 -1
- package/plugins/contextMenu/menu/menu.js +5 -3
- package/plugins/contextMenu/menu/menu.mjs +5 -3
- package/plugins/filters/ui/multipleSelect.js +4 -2
- package/plugins/filters/ui/multipleSelect.mjs +4 -2
- package/styles/handsontable.css +137 -19
- package/styles/handsontable.min.css +3 -3
- package/styles/ht-theme-horizon.css +59 -39
- package/styles/ht-theme-horizon.min.css +3 -3
- package/styles/ht-theme-main.css +59 -39
- package/styles/ht-theme-main.min.css +3 -3
|
@@ -637,6 +637,7 @@ class Table {
|
|
|
637
637
|
const borderBoxSizing = this.wot.stylesHandler.areCellsBorderBox();
|
|
638
638
|
const rowHeightFn = borderBoxSizing ? _element.outerHeight : _element.innerHeight;
|
|
639
639
|
const borderCompensation = borderBoxSizing ? 0 : 1;
|
|
640
|
+
const firstRowBorderCompensation = borderBoxSizing ? 1 : 0;
|
|
640
641
|
let previousRowHeight;
|
|
641
642
|
let rowCurrentHeight;
|
|
642
643
|
let sourceRowIndex;
|
|
@@ -652,12 +653,13 @@ class Table {
|
|
|
652
653
|
previousRowHeight = this.getRowHeight(sourceRowIndex);
|
|
653
654
|
currentTr = this.getTrForRow(sourceRowIndex);
|
|
654
655
|
rowHeader = currentTr.querySelector('th');
|
|
656
|
+
const topBorderCompensation = sourceRowIndex === 0 ? firstRowBorderCompensation : 0;
|
|
655
657
|
if (rowHeader) {
|
|
656
658
|
rowCurrentHeight = rowHeightFn(rowHeader);
|
|
657
659
|
} else {
|
|
658
660
|
rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
|
|
659
661
|
}
|
|
660
|
-
if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight || previousRowHeight < rowCurrentHeight) {
|
|
662
|
+
if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight < rowCurrentHeight) {
|
|
661
663
|
if (!borderBoxSizing) {
|
|
662
664
|
rowCurrentHeight += 1;
|
|
663
665
|
}
|
|
@@ -633,6 +633,7 @@ class Table {
|
|
|
633
633
|
const borderBoxSizing = this.wot.stylesHandler.areCellsBorderBox();
|
|
634
634
|
const rowHeightFn = borderBoxSizing ? outerHeight : innerHeight;
|
|
635
635
|
const borderCompensation = borderBoxSizing ? 0 : 1;
|
|
636
|
+
const firstRowBorderCompensation = borderBoxSizing ? 1 : 0;
|
|
636
637
|
let previousRowHeight;
|
|
637
638
|
let rowCurrentHeight;
|
|
638
639
|
let sourceRowIndex;
|
|
@@ -648,12 +649,13 @@ class Table {
|
|
|
648
649
|
previousRowHeight = this.getRowHeight(sourceRowIndex);
|
|
649
650
|
currentTr = this.getTrForRow(sourceRowIndex);
|
|
650
651
|
rowHeader = currentTr.querySelector('th');
|
|
652
|
+
const topBorderCompensation = sourceRowIndex === 0 ? firstRowBorderCompensation : 0;
|
|
651
653
|
if (rowHeader) {
|
|
652
654
|
rowCurrentHeight = rowHeightFn(rowHeader);
|
|
653
655
|
} else {
|
|
654
656
|
rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
|
|
655
657
|
}
|
|
656
|
-
if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight || previousRowHeight < rowCurrentHeight) {
|
|
658
|
+
if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight < rowCurrentHeight) {
|
|
657
659
|
if (!borderBoxSizing) {
|
|
658
660
|
rowCurrentHeight += 1;
|
|
659
661
|
}
|
|
@@ -33,7 +33,9 @@ class StylesHandler {
|
|
|
33
33
|
*/
|
|
34
34
|
constructor(domBindings) {
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* Calculates the row height based on the current theme and CSS variables.
|
|
37
|
+
*
|
|
38
|
+
* @returns {number|null} The calculated row height, or `null` if any required CSS variable is not found.
|
|
37
39
|
*/
|
|
38
40
|
_classPrivateMethodInitSpec(this, _StylesHandler_brand);
|
|
39
41
|
/**
|
|
@@ -135,15 +137,15 @@ class StylesHandler {
|
|
|
135
137
|
if (_classPrivateFieldGet(_isClassicTheme, this)) {
|
|
136
138
|
return CLASSIC_THEME_DEFAULT_HEIGHT;
|
|
137
139
|
}
|
|
138
|
-
const
|
|
139
|
-
if (!
|
|
140
|
-
(0, _console.warn)(`The "${_classPrivateFieldGet(_themeName, this)}" theme is enabled, but its stylesheets are missing. \
|
|
140
|
+
const calculatedRowHeight = _assertClassBrand(_StylesHandler_brand, this, _calculateRowHeight).call(this);
|
|
141
|
+
if (!calculatedRowHeight) {
|
|
142
|
+
(0, _console.warn)(`The "${_classPrivateFieldGet(_themeName, this)}" theme is enabled, but its stylesheets are missing or not imported correctly. \
|
|
141
143
|
Import the correct CSS files in order to use that theme.`);
|
|
142
144
|
_classPrivateFieldSet(_isClassicTheme, this, true);
|
|
143
145
|
this.useTheme();
|
|
144
146
|
return CLASSIC_THEME_DEFAULT_HEIGHT;
|
|
145
147
|
}
|
|
146
|
-
return
|
|
148
|
+
return calculatedRowHeight;
|
|
147
149
|
}
|
|
148
150
|
|
|
149
151
|
/**
|
|
@@ -197,6 +199,18 @@ Import the correct CSS files in order to use that theme.`);
|
|
|
197
199
|
}
|
|
198
200
|
}
|
|
199
201
|
exports.StylesHandler = StylesHandler;
|
|
202
|
+
function _calculateRowHeight() {
|
|
203
|
+
const lineHeightVarValue = this.getCSSVariableValue('line-height');
|
|
204
|
+
const verticalPaddingVarValue = this.getCSSVariableValue('cell-vertical-padding');
|
|
205
|
+
const bottomBorderWidth = Math.ceil(parseFloat(this.getStyleForTD('border-bottom-width')));
|
|
206
|
+
if (lineHeightVarValue === null || verticalPaddingVarValue === null || isNaN(bottomBorderWidth)) {
|
|
207
|
+
return null;
|
|
208
|
+
}
|
|
209
|
+
return lineHeightVarValue + 2 * verticalPaddingVarValue + bottomBorderWidth;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Applies the necessary class names to the root element.
|
|
213
|
+
*/
|
|
200
214
|
function _applyClassNames() {
|
|
201
215
|
(0, _element.removeClass)(_classPrivateFieldGet(_rootElement, this), /ht-theme-.*/g);
|
|
202
216
|
(0, _element.addClass)(_classPrivateFieldGet(_rootElement, this), _classPrivateFieldGet(_themeName, this));
|
|
@@ -208,11 +222,12 @@ function _cacheStylesheetValues() {
|
|
|
208
222
|
if (!this.isClassicTheme()) {
|
|
209
223
|
_classPrivateFieldSet(_rootComputedStyle, this, getComputedStyle(_classPrivateFieldGet(_rootElement, this)));
|
|
210
224
|
}
|
|
211
|
-
const stylesForTD = _assertClassBrand(_StylesHandler_brand, this, _getStylesForTD).call(this, ['box-sizing']);
|
|
225
|
+
const stylesForTD = _assertClassBrand(_StylesHandler_brand, this, _getStylesForTD).call(this, ['box-sizing', 'border-bottom-width']);
|
|
212
226
|
_classPrivateFieldGet(_computedStyles, this).td = {
|
|
213
227
|
..._classPrivateFieldGet(_computedStyles, this).td,
|
|
214
228
|
...{
|
|
215
|
-
'box-sizing': stylesForTD['box-sizing']
|
|
229
|
+
'box-sizing': stylesForTD['box-sizing'],
|
|
230
|
+
'border-bottom-width': stylesForTD['border-bottom-width']
|
|
216
231
|
}
|
|
217
232
|
};
|
|
218
233
|
}
|
|
@@ -259,7 +274,7 @@ function _getParsedCSSValue(property) {
|
|
|
259
274
|
if (_classPrivateFieldGet(_isClassicTheme, this)) {
|
|
260
275
|
return null;
|
|
261
276
|
}
|
|
262
|
-
const parsedValue =
|
|
277
|
+
const parsedValue = Math.ceil(parseFloat(_classPrivateFieldGet(_rootComputedStyle, this).getPropertyValue(property)));
|
|
263
278
|
return Number.isNaN(parsedValue) ? null : parsedValue;
|
|
264
279
|
}
|
|
265
280
|
/**
|
|
@@ -30,7 +30,9 @@ export class StylesHandler {
|
|
|
30
30
|
*/
|
|
31
31
|
constructor(domBindings) {
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Calculates the row height based on the current theme and CSS variables.
|
|
34
|
+
*
|
|
35
|
+
* @returns {number|null} The calculated row height, or `null` if any required CSS variable is not found.
|
|
34
36
|
*/
|
|
35
37
|
_classPrivateMethodInitSpec(this, _StylesHandler_brand);
|
|
36
38
|
/**
|
|
@@ -132,15 +134,15 @@ export class StylesHandler {
|
|
|
132
134
|
if (_classPrivateFieldGet(_isClassicTheme, this)) {
|
|
133
135
|
return CLASSIC_THEME_DEFAULT_HEIGHT;
|
|
134
136
|
}
|
|
135
|
-
const
|
|
136
|
-
if (!
|
|
137
|
-
warn(`The "${_classPrivateFieldGet(_themeName, this)}" theme is enabled, but its stylesheets are missing. \
|
|
137
|
+
const calculatedRowHeight = _assertClassBrand(_StylesHandler_brand, this, _calculateRowHeight).call(this);
|
|
138
|
+
if (!calculatedRowHeight) {
|
|
139
|
+
warn(`The "${_classPrivateFieldGet(_themeName, this)}" theme is enabled, but its stylesheets are missing or not imported correctly. \
|
|
138
140
|
Import the correct CSS files in order to use that theme.`);
|
|
139
141
|
_classPrivateFieldSet(_isClassicTheme, this, true);
|
|
140
142
|
this.useTheme();
|
|
141
143
|
return CLASSIC_THEME_DEFAULT_HEIGHT;
|
|
142
144
|
}
|
|
143
|
-
return
|
|
145
|
+
return calculatedRowHeight;
|
|
144
146
|
}
|
|
145
147
|
|
|
146
148
|
/**
|
|
@@ -193,6 +195,18 @@ Import the correct CSS files in order to use that theme.`);
|
|
|
193
195
|
}
|
|
194
196
|
}
|
|
195
197
|
}
|
|
198
|
+
function _calculateRowHeight() {
|
|
199
|
+
const lineHeightVarValue = this.getCSSVariableValue('line-height');
|
|
200
|
+
const verticalPaddingVarValue = this.getCSSVariableValue('cell-vertical-padding');
|
|
201
|
+
const bottomBorderWidth = Math.ceil(parseFloat(this.getStyleForTD('border-bottom-width')));
|
|
202
|
+
if (lineHeightVarValue === null || verticalPaddingVarValue === null || isNaN(bottomBorderWidth)) {
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
return lineHeightVarValue + 2 * verticalPaddingVarValue + bottomBorderWidth;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Applies the necessary class names to the root element.
|
|
209
|
+
*/
|
|
196
210
|
function _applyClassNames() {
|
|
197
211
|
removeClass(_classPrivateFieldGet(_rootElement, this), /ht-theme-.*/g);
|
|
198
212
|
addClass(_classPrivateFieldGet(_rootElement, this), _classPrivateFieldGet(_themeName, this));
|
|
@@ -204,11 +218,12 @@ function _cacheStylesheetValues() {
|
|
|
204
218
|
if (!this.isClassicTheme()) {
|
|
205
219
|
_classPrivateFieldSet(_rootComputedStyle, this, getComputedStyle(_classPrivateFieldGet(_rootElement, this)));
|
|
206
220
|
}
|
|
207
|
-
const stylesForTD = _assertClassBrand(_StylesHandler_brand, this, _getStylesForTD).call(this, ['box-sizing']);
|
|
221
|
+
const stylesForTD = _assertClassBrand(_StylesHandler_brand, this, _getStylesForTD).call(this, ['box-sizing', 'border-bottom-width']);
|
|
208
222
|
_classPrivateFieldGet(_computedStyles, this).td = {
|
|
209
223
|
..._classPrivateFieldGet(_computedStyles, this).td,
|
|
210
224
|
...{
|
|
211
|
-
'box-sizing': stylesForTD['box-sizing']
|
|
225
|
+
'box-sizing': stylesForTD['box-sizing'],
|
|
226
|
+
'border-bottom-width': stylesForTD['border-bottom-width']
|
|
212
227
|
}
|
|
213
228
|
};
|
|
214
229
|
}
|
|
@@ -255,7 +270,7 @@ function _getParsedCSSValue(property) {
|
|
|
255
270
|
if (_classPrivateFieldGet(_isClassicTheme, this)) {
|
|
256
271
|
return null;
|
|
257
272
|
}
|
|
258
|
-
const parsedValue =
|
|
273
|
+
const parsedValue = Math.ceil(parseFloat(_classPrivateFieldGet(_rootComputedStyle, this).getPropertyValue(property)));
|
|
259
274
|
return Number.isNaN(parsedValue) ? null : parsedValue;
|
|
260
275
|
}
|
|
261
276
|
/**
|
package/base.js
CHANGED
|
@@ -45,8 +45,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
|
|
|
45
45
|
Handsontable.CellCoords = _src.CellCoords;
|
|
46
46
|
Handsontable.CellRange = _src.CellRange;
|
|
47
47
|
Handsontable.packageName = 'handsontable';
|
|
48
|
-
Handsontable.buildDate = "
|
|
49
|
-
Handsontable.version = "0.0.0-next-
|
|
48
|
+
Handsontable.buildDate = "13/11/2024 12:54:48";
|
|
49
|
+
Handsontable.version = "0.0.0-next-cf17948-20241113";
|
|
50
50
|
Handsontable.languages = {
|
|
51
51
|
dictionaryKeys: _registry.dictionaryKeys,
|
|
52
52
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
package/base.mjs
CHANGED
|
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
|
|
|
35
35
|
Handsontable.CellCoords = CellCoords;
|
|
36
36
|
Handsontable.CellRange = CellRange;
|
|
37
37
|
Handsontable.packageName = 'handsontable';
|
|
38
|
-
Handsontable.buildDate = "
|
|
39
|
-
Handsontable.version = "0.0.0-next-
|
|
38
|
+
Handsontable.buildDate = "13/11/2024 12:54:53";
|
|
39
|
+
Handsontable.version = "0.0.0-next-cf17948-20241113";
|
|
40
40
|
Handsontable.languages = {
|
|
41
41
|
dictionaryKeys,
|
|
42
42
|
getLanguageDictionary,
|
package/core/hooks/constants.js
CHANGED
|
@@ -871,6 +871,7 @@ const REGISTERED_HOOKS = exports.REGISTERED_HOOKS = [/* eslint-disable jsdoc/req
|
|
|
871
871
|
* @since 15.0.0
|
|
872
872
|
* @event Hooks#afterSetTheme
|
|
873
873
|
* @param {string|boolean|undefined} themeName The theme name.
|
|
874
|
+
* @param {boolean} firstRun `true` if it's the initial setting of the theme, `false` otherwise.
|
|
874
875
|
*/
|
|
875
876
|
'afterSetTheme',
|
|
876
877
|
/**
|
package/core/hooks/constants.mjs
CHANGED
|
@@ -868,6 +868,7 @@ export const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-com
|
|
|
868
868
|
* @since 15.0.0
|
|
869
869
|
* @event Hooks#afterSetTheme
|
|
870
870
|
* @param {string|boolean|undefined} themeName The theme name.
|
|
871
|
+
* @param {boolean} firstRun `true` if it's the initial setting of the theme, `false` otherwise.
|
|
871
872
|
*/
|
|
872
873
|
'afterSetTheme',
|
|
873
874
|
/**
|
package/core/hooks/index.d.ts
CHANGED
|
@@ -134,7 +134,7 @@ export interface Events {
|
|
|
134
134
|
afterSetDataAtCell?: (changes: CellChange[], source?: ChangeSource) => void;
|
|
135
135
|
afterSetDataAtRowProp?: (changes: CellChange[], source?: ChangeSource) => void;
|
|
136
136
|
afterSetSourceDataAtCell?: (changes: CellChange[], source?: ChangeSource) => void;
|
|
137
|
-
afterSetTheme?: (themeName: string|boolean|undefined) => void;
|
|
137
|
+
afterSetTheme?: (themeName: string|boolean|undefined, firstRun: boolean) => void;
|
|
138
138
|
afterSheetAdded?: (addedSheetDisplayName: string) => void;
|
|
139
139
|
afterSheetRemoved?: (removedSheetDisplayName: string, changes: ExportedChange[]) => void;
|
|
140
140
|
afterSheetRenamed?: (oldDisplayName: string, newDisplayName: string) => void;
|
package/core.d.ts
CHANGED
|
@@ -180,7 +180,7 @@ export default class Core {
|
|
|
180
180
|
unlisten(): void;
|
|
181
181
|
updateData(data: CellValue[][] | RowObject[], source?: string): void;
|
|
182
182
|
updateSettings(settings: GridSettings, init?: boolean): void;
|
|
183
|
-
useTheme(themeName: string|undefined): void;
|
|
183
|
+
useTheme(themeName: string|boolean|undefined): void;
|
|
184
184
|
validateCell(value: any, cellProperties: CellProperties, callback: (valid: boolean) => void, source: string): void;
|
|
185
185
|
validateCells(callback?: (valid: boolean) => void): void;
|
|
186
186
|
validateColumns(columns: number[], callback?: (valid: boolean) => void): void;
|
package/core.js
CHANGED
|
@@ -4622,7 +4622,7 @@ function Core(rootElement, userSettings) {
|
|
|
4622
4622
|
*/
|
|
4623
4623
|
this.useTheme = themeName => {
|
|
4624
4624
|
this.view.getStylesHandler().useTheme(themeName);
|
|
4625
|
-
this.runHooks('afterSetTheme', themeName);
|
|
4625
|
+
this.runHooks('afterSetTheme', themeName, !!firstRun);
|
|
4626
4626
|
};
|
|
4627
4627
|
|
|
4628
4628
|
/**
|
package/core.mjs
CHANGED
|
@@ -4617,7 +4617,7 @@ export default function Core(rootElement, userSettings) {
|
|
|
4617
4617
|
*/
|
|
4618
4618
|
this.useTheme = themeName => {
|
|
4619
4619
|
this.view.getStylesHandler().useTheme(themeName);
|
|
4620
|
-
this.runHooks('afterSetTheme', themeName);
|
|
4620
|
+
this.runHooks('afterSetTheme', themeName, !!firstRun);
|
|
4621
4621
|
};
|
|
4622
4622
|
|
|
4623
4623
|
/**
|
|
@@ -3842,7 +3842,7 @@ var _default = () => {
|
|
|
3842
3842
|
/**
|
|
3843
3843
|
* The `rowHeights` option sets rows' heights, in pixels.
|
|
3844
3844
|
*
|
|
3845
|
-
* In the rendering process, the default row height is 23 px (in the classic theme: 22 px + 1 px of the row's bottom border) or
|
|
3845
|
+
* In the rendering process, the default row height is 23 px (in the classic theme: 22 px + 1 px of the row's bottom border) or whatever is defined in the used theme (based on the line height, vertical padding and cell borders).
|
|
3846
3846
|
* You can change it to equal or greater than the defautl value, by setting the `rowHeights` option to one of the following:
|
|
3847
3847
|
*
|
|
3848
3848
|
* | Setting | Description | Example |
|
|
@@ -3839,7 +3839,7 @@ export default () => {
|
|
|
3839
3839
|
/**
|
|
3840
3840
|
* The `rowHeights` option sets rows' heights, in pixels.
|
|
3841
3841
|
*
|
|
3842
|
-
* In the rendering process, the default row height is 23 px (in the classic theme: 22 px + 1 px of the row's bottom border) or
|
|
3842
|
+
* In the rendering process, the default row height is 23 px (in the classic theme: 22 px + 1 px of the row's bottom border) or whatever is defined in the used theme (based on the line height, vertical padding and cell borders).
|
|
3843
3843
|
* You can change it to equal or greater than the defautl value, by setting the `rowHeights` option to one of the following:
|
|
3844
3844
|
*
|
|
3845
3845
|
* | Setting | Description | Example |
|
package/dist/handsontable.css
CHANGED
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
|
27
27
|
*
|
|
28
|
-
* Version: 0.0.0-next-
|
|
29
|
-
* Release date: 17/10/2024 (built at
|
|
28
|
+
* Version: 0.0.0-next-cf17948-20241113
|
|
29
|
+
* Release date: 17/10/2024 (built at 13/11/2024 12:55:17)
|
|
30
30
|
*/
|
|
31
31
|
/**
|
|
32
32
|
* Fix for bootstrap styles
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
|
27
27
|
*
|
|
28
|
-
* Version: 0.0.0-next-
|
|
29
|
-
* Release date: 17/10/2024 (built at
|
|
28
|
+
* Version: 0.0.0-next-cf17948-20241113
|
|
29
|
+
* Release date: 17/10/2024 (built at 13/11/2024 12:55:17)
|
|
30
30
|
*/
|
|
31
31
|
/**
|
|
32
32
|
* Fix for bootstrap styles
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
|
27
27
|
*
|
|
28
|
-
* Version: 0.0.0-next-
|
|
29
|
-
* Release date: 17/10/2024 (built at
|
|
28
|
+
* Version: 0.0.0-next-cf17948-20241113
|
|
29
|
+
* Release date: 17/10/2024 (built at 13/11/2024 12:54:58)
|
|
30
30
|
*/
|
|
31
31
|
(function webpackUniversalModuleDefinition(root, factory) {
|
|
32
32
|
if(typeof exports === 'object' && typeof module === 'object')
|
|
@@ -42676,8 +42676,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
|
|
|
42676
42676
|
Handsontable.CellCoords = _src.CellCoords;
|
|
42677
42677
|
Handsontable.CellRange = _src.CellRange;
|
|
42678
42678
|
Handsontable.packageName = 'handsontable';
|
|
42679
|
-
Handsontable.buildDate = "
|
|
42680
|
-
Handsontable.version = "0.0.0-next-
|
|
42679
|
+
Handsontable.buildDate = "13/11/2024 12:54:58";
|
|
42680
|
+
Handsontable.version = "0.0.0-next-cf17948-20241113";
|
|
42681
42681
|
Handsontable.languages = {
|
|
42682
42682
|
dictionaryKeys: _registry.dictionaryKeys,
|
|
42683
42683
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
|
@@ -47322,7 +47322,7 @@ function Core(rootElement, userSettings) {
|
|
|
47322
47322
|
*/
|
|
47323
47323
|
this.useTheme = themeName => {
|
|
47324
47324
|
this.view.getStylesHandler().useTheme(themeName);
|
|
47325
|
-
this.runHooks('afterSetTheme', themeName);
|
|
47325
|
+
this.runHooks('afterSetTheme', themeName, !!firstRun);
|
|
47326
47326
|
};
|
|
47327
47327
|
|
|
47328
47328
|
/**
|
|
@@ -54203,7 +54203,7 @@ const domMessages = {
|
|
|
54203
54203
|
function _injectProductInfo(key, element) {
|
|
54204
54204
|
const hasValidType = !isEmpty(key);
|
|
54205
54205
|
const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
|
|
54206
|
-
const hotVersion = "0.0.0-next-
|
|
54206
|
+
const hotVersion = "0.0.0-next-cf17948-20241113";
|
|
54207
54207
|
let keyValidityDate;
|
|
54208
54208
|
let consoleMessageState = 'invalid';
|
|
54209
54209
|
let domMessageState = 'invalid';
|
|
@@ -64724,6 +64724,7 @@ const REGISTERED_HOOKS = exports.REGISTERED_HOOKS = [/* eslint-disable jsdoc/req
|
|
|
64724
64724
|
* @since 15.0.0
|
|
64725
64725
|
* @event Hooks#afterSetTheme
|
|
64726
64726
|
* @param {string|boolean|undefined} themeName The theme name.
|
|
64727
|
+
* @param {boolean} firstRun `true` if it's the initial setting of the theme, `false` otherwise.
|
|
64727
64728
|
*/
|
|
64728
64729
|
'afterSetTheme',
|
|
64729
64730
|
/**
|
|
@@ -74862,6 +74863,7 @@ class Table {
|
|
|
74862
74863
|
const borderBoxSizing = this.wot.stylesHandler.areCellsBorderBox();
|
|
74863
74864
|
const rowHeightFn = borderBoxSizing ? _element.outerHeight : _element.innerHeight;
|
|
74864
74865
|
const borderCompensation = borderBoxSizing ? 0 : 1;
|
|
74866
|
+
const firstRowBorderCompensation = borderBoxSizing ? 1 : 0;
|
|
74865
74867
|
let previousRowHeight;
|
|
74866
74868
|
let rowCurrentHeight;
|
|
74867
74869
|
let sourceRowIndex;
|
|
@@ -74877,12 +74879,13 @@ class Table {
|
|
|
74877
74879
|
previousRowHeight = this.getRowHeight(sourceRowIndex);
|
|
74878
74880
|
currentTr = this.getTrForRow(sourceRowIndex);
|
|
74879
74881
|
rowHeader = currentTr.querySelector('th');
|
|
74882
|
+
const topBorderCompensation = sourceRowIndex === 0 ? firstRowBorderCompensation : 0;
|
|
74880
74883
|
if (rowHeader) {
|
|
74881
74884
|
rowCurrentHeight = rowHeightFn(rowHeader);
|
|
74882
74885
|
} else {
|
|
74883
74886
|
rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
|
|
74884
74887
|
}
|
|
74885
|
-
if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight || previousRowHeight < rowCurrentHeight) {
|
|
74888
|
+
if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight < rowCurrentHeight) {
|
|
74886
74889
|
if (!borderBoxSizing) {
|
|
74887
74890
|
rowCurrentHeight += 1;
|
|
74888
74891
|
}
|
|
@@ -82737,7 +82740,9 @@ class StylesHandler {
|
|
|
82737
82740
|
*/
|
|
82738
82741
|
constructor(domBindings) {
|
|
82739
82742
|
/**
|
|
82740
|
-
*
|
|
82743
|
+
* Calculates the row height based on the current theme and CSS variables.
|
|
82744
|
+
*
|
|
82745
|
+
* @returns {number|null} The calculated row height, or `null` if any required CSS variable is not found.
|
|
82741
82746
|
*/
|
|
82742
82747
|
_classPrivateMethodInitSpec(this, _StylesHandler_brand);
|
|
82743
82748
|
/**
|
|
@@ -82839,15 +82844,15 @@ class StylesHandler {
|
|
|
82839
82844
|
if (_classPrivateFieldGet(_isClassicTheme, this)) {
|
|
82840
82845
|
return CLASSIC_THEME_DEFAULT_HEIGHT;
|
|
82841
82846
|
}
|
|
82842
|
-
const
|
|
82843
|
-
if (!
|
|
82844
|
-
(0, _console.warn)(`The "${_classPrivateFieldGet(_themeName, this)}" theme is enabled, but its stylesheets are missing. \
|
|
82847
|
+
const calculatedRowHeight = _assertClassBrand(_StylesHandler_brand, this, _calculateRowHeight).call(this);
|
|
82848
|
+
if (!calculatedRowHeight) {
|
|
82849
|
+
(0, _console.warn)(`The "${_classPrivateFieldGet(_themeName, this)}" theme is enabled, but its stylesheets are missing or not imported correctly. \
|
|
82845
82850
|
Import the correct CSS files in order to use that theme.`);
|
|
82846
82851
|
_classPrivateFieldSet(_isClassicTheme, this, true);
|
|
82847
82852
|
this.useTheme();
|
|
82848
82853
|
return CLASSIC_THEME_DEFAULT_HEIGHT;
|
|
82849
82854
|
}
|
|
82850
|
-
return
|
|
82855
|
+
return calculatedRowHeight;
|
|
82851
82856
|
}
|
|
82852
82857
|
|
|
82853
82858
|
/**
|
|
@@ -82901,6 +82906,18 @@ Import the correct CSS files in order to use that theme.`);
|
|
|
82901
82906
|
}
|
|
82902
82907
|
}
|
|
82903
82908
|
exports.StylesHandler = StylesHandler;
|
|
82909
|
+
function _calculateRowHeight() {
|
|
82910
|
+
const lineHeightVarValue = this.getCSSVariableValue('line-height');
|
|
82911
|
+
const verticalPaddingVarValue = this.getCSSVariableValue('cell-vertical-padding');
|
|
82912
|
+
const bottomBorderWidth = Math.ceil(parseFloat(this.getStyleForTD('border-bottom-width')));
|
|
82913
|
+
if (lineHeightVarValue === null || verticalPaddingVarValue === null || isNaN(bottomBorderWidth)) {
|
|
82914
|
+
return null;
|
|
82915
|
+
}
|
|
82916
|
+
return lineHeightVarValue + 2 * verticalPaddingVarValue + bottomBorderWidth;
|
|
82917
|
+
}
|
|
82918
|
+
/**
|
|
82919
|
+
* Applies the necessary class names to the root element.
|
|
82920
|
+
*/
|
|
82904
82921
|
function _applyClassNames() {
|
|
82905
82922
|
(0, _element.removeClass)(_classPrivateFieldGet(_rootElement, this), /ht-theme-.*/g);
|
|
82906
82923
|
(0, _element.addClass)(_classPrivateFieldGet(_rootElement, this), _classPrivateFieldGet(_themeName, this));
|
|
@@ -82912,11 +82929,12 @@ function _cacheStylesheetValues() {
|
|
|
82912
82929
|
if (!this.isClassicTheme()) {
|
|
82913
82930
|
_classPrivateFieldSet(_rootComputedStyle, this, getComputedStyle(_classPrivateFieldGet(_rootElement, this)));
|
|
82914
82931
|
}
|
|
82915
|
-
const stylesForTD = _assertClassBrand(_StylesHandler_brand, this, _getStylesForTD).call(this, ['box-sizing']);
|
|
82932
|
+
const stylesForTD = _assertClassBrand(_StylesHandler_brand, this, _getStylesForTD).call(this, ['box-sizing', 'border-bottom-width']);
|
|
82916
82933
|
_classPrivateFieldGet(_computedStyles, this).td = {
|
|
82917
82934
|
..._classPrivateFieldGet(_computedStyles, this).td,
|
|
82918
82935
|
...{
|
|
82919
|
-
'box-sizing': stylesForTD['box-sizing']
|
|
82936
|
+
'box-sizing': stylesForTD['box-sizing'],
|
|
82937
|
+
'border-bottom-width': stylesForTD['border-bottom-width']
|
|
82920
82938
|
}
|
|
82921
82939
|
};
|
|
82922
82940
|
}
|
|
@@ -82963,7 +82981,7 @@ function _getParsedCSSValue(property) {
|
|
|
82963
82981
|
if (_classPrivateFieldGet(_isClassicTheme, this)) {
|
|
82964
82982
|
return null;
|
|
82965
82983
|
}
|
|
82966
|
-
const parsedValue =
|
|
82984
|
+
const parsedValue = Math.ceil(parseFloat(_classPrivateFieldGet(_rootComputedStyle, this).getPropertyValue(property)));
|
|
82967
82985
|
return Number.isNaN(parsedValue) ? null : parsedValue;
|
|
82968
82986
|
}
|
|
82969
82987
|
/**
|
|
@@ -94886,7 +94904,7 @@ var _default = () => {
|
|
|
94886
94904
|
/**
|
|
94887
94905
|
* The `rowHeights` option sets rows' heights, in pixels.
|
|
94888
94906
|
*
|
|
94889
|
-
* In the rendering process, the default row height is 23 px (in the classic theme: 22 px + 1 px of the row's bottom border) or
|
|
94907
|
+
* In the rendering process, the default row height is 23 px (in the classic theme: 22 px + 1 px of the row's bottom border) or whatever is defined in the used theme (based on the line height, vertical padding and cell borders).
|
|
94890
94908
|
* You can change it to equal or greater than the defautl value, by setting the `rowHeights` option to one of the following:
|
|
94891
94909
|
*
|
|
94892
94910
|
* | Setting | Description | Example |
|
|
@@ -102345,8 +102363,10 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
|
102345
102363
|
this.htEditor.destroy();
|
|
102346
102364
|
}
|
|
102347
102365
|
});
|
|
102348
|
-
this.hot.addHook('afterSetTheme', themeName => {
|
|
102349
|
-
|
|
102366
|
+
this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
|
|
102367
|
+
if (!firstRun) {
|
|
102368
|
+
this.htEditor.useTheme(themeName);
|
|
102369
|
+
}
|
|
102350
102370
|
});
|
|
102351
102371
|
}
|
|
102352
102372
|
|
|
@@ -102562,9 +102582,11 @@ class DateEditor extends _textEditor.TextEditor {
|
|
|
102562
102582
|
this.parentDestroyed = true;
|
|
102563
102583
|
this.destroyElements();
|
|
102564
102584
|
});
|
|
102565
|
-
this.hot.addHook('afterSetTheme', themeName => {
|
|
102566
|
-
(
|
|
102567
|
-
|
|
102585
|
+
this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
|
|
102586
|
+
if (!firstRun) {
|
|
102587
|
+
(0, _element.removeClass)(this.datePicker, /ht-theme-.*/g);
|
|
102588
|
+
(0, _element.addClass)(this.datePicker, themeName);
|
|
102589
|
+
}
|
|
102568
102590
|
});
|
|
102569
102591
|
}
|
|
102570
102592
|
|
|
@@ -118472,7 +118494,12 @@ class Comments extends _base.BasePlugin {
|
|
|
118472
118494
|
this.addHook('afterScroll', () => _assertClassBrand(_Comments_brand, this, _onAfterScroll).call(this));
|
|
118473
118495
|
this.addHook('afterBeginEditing', () => this.hide());
|
|
118474
118496
|
this.addHook('afterDocumentKeyDown', event => _assertClassBrand(_Comments_brand, this, _onAfterDocumentKeyDown).call(this, event));
|
|
118475
|
-
this.addHook('afterSetTheme', ()
|
|
118497
|
+
this.addHook('afterSetTheme', function () {
|
|
118498
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
118499
|
+
args[_key2] = arguments[_key2];
|
|
118500
|
+
}
|
|
118501
|
+
return _assertClassBrand(_Comments_brand, _this, _updateEditorThemeClassName).call(_this, ...args);
|
|
118502
|
+
});
|
|
118476
118503
|
_classPrivateFieldGet(_displaySwitch, this).addLocalHook('hide', () => this.hide());
|
|
118477
118504
|
_classPrivateFieldGet(_displaySwitch, this).addLocalHook('show', (row, col) => this.showAtCell(row, col));
|
|
118478
118505
|
this.registerShortcuts();
|
|
@@ -121621,9 +121648,11 @@ class Menu {
|
|
|
121621
121648
|
return _this.parentMenu.runLocalHooks('afterSelectionChange', ...args);
|
|
121622
121649
|
});
|
|
121623
121650
|
}
|
|
121624
|
-
this.hot.addHook('afterSetTheme', themeName => {
|
|
121625
|
-
|
|
121626
|
-
|
|
121651
|
+
this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
|
|
121652
|
+
if (!firstRun) {
|
|
121653
|
+
var _this$hotMenu;
|
|
121654
|
+
(_this$hotMenu = this.hotMenu) === null || _this$hotMenu === void 0 || _this$hotMenu.useTheme(themeName);
|
|
121655
|
+
}
|
|
121627
121656
|
});
|
|
121628
121657
|
}
|
|
121629
121658
|
|
|
@@ -131157,8 +131186,10 @@ class MultipleSelectUI extends _base.BaseUI {
|
|
|
131157
131186
|
layoutDirection: this.hot.isRtl() ? 'rtl' : 'ltr'
|
|
131158
131187
|
}));
|
|
131159
131188
|
_classPrivateFieldGet(_itemsBox, this).init();
|
|
131160
|
-
this.hot.addHook('afterSetTheme', () => {
|
|
131161
|
-
|
|
131189
|
+
this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
|
|
131190
|
+
if (!firstRun) {
|
|
131191
|
+
_classPrivateFieldGet(_itemsBox, this).useTheme(themeName);
|
|
131192
|
+
}
|
|
131162
131193
|
});
|
|
131163
131194
|
const shortcutManager = _classPrivateFieldGet(_itemsBox, this).getShortcutManager();
|
|
131164
131195
|
const gridContext = shortcutManager.getContext('grid');
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
|
27
27
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
|
28
28
|
*
|
|
29
|
-
* Version: 0.0.0-next-
|
|
30
|
-
* Release date: 17/10/2024 (built at
|
|
29
|
+
* Version: 0.0.0-next-cf17948-20241113
|
|
30
|
+
* Release date: 17/10/2024 (built at 13/11/2024 12:55:53)
|
|
31
31
|
*/.handsontable .table td,.handsontable .table th{border-top:none}.handsontable tr{background:#fff}.handsontable td{background-color:inherit}.handsontable .table caption+thead tr:first-child td,.handsontable .table caption+thead tr:first-child th,.handsontable .table colgroup+thead tr:first-child td,.handsontable .table colgroup+thead tr:first-child th,.handsontable .table thead:first-child tr:first-child td,.handsontable .table thead:first-child tr:first-child th{border-top:1px solid #ccc}.handsontable .table-bordered{border:0;border-collapse:separate}.handsontable .table-bordered td,.handsontable .table-bordered th{border-left:none}.handsontable .table-bordered td:first-child,.handsontable .table-bordered th:first-child{border-left:1px solid #ccc}.handsontable .table>tbody>tr>td,.handsontable .table>tbody>tr>th,.handsontable .table>tfoot>tr>td,.handsontable .table>tfoot>tr>th,.handsontable .table>thead>tr>td,.handsontable .table>thead>tr>th{line-height:21px;padding:0}.col-lg-1.handsontable,.col-lg-10.handsontable,.col-lg-11.handsontable,.col-lg-12.handsontable,.col-lg-2.handsontable,.col-lg-3.handsontable,.col-lg-4.handsontable,.col-lg-5.handsontable,.col-lg-6.handsontable,.col-lg-7.handsontable,.col-lg-8.handsontable,.col-lg-9.handsontable,.col-md-1.handsontable,.col-md-10.handsontable,.col-md-11.handsontable,.col-md-12.handsontable,.col-md-2.handsontable,.col-md-3.handsontable,.col-md-4.handsontable,.col-md-5.handsontable,.col-md-6.handsontable,.col-md-7.handsontable,.col-md-8.handsontable,.col-md-9.handsontable .col-sm-1.handsontable,.col-sm-10.handsontable,.col-sm-11.handsontable,.col-sm-12.handsontable,.col-sm-2.handsontable,.col-sm-3.handsontable,.col-sm-4.handsontable,.col-sm-5.handsontable,.col-sm-6.handsontable,.col-sm-7.handsontable,.col-sm-8.handsontable,.col-sm-9.handsontable .col-xs-1.handsontable,.col-xs-10.handsontable,.col-xs-11.handsontable,.col-xs-12.handsontable,.col-xs-2.handsontable,.col-xs-3.handsontable,.col-xs-4.handsontable,.col-xs-5.handsontable,.col-xs-6.handsontable,.col-xs-7.handsontable,.col-xs-8.handsontable,.col-xs-9.handsontable{padding-left:0;padding-right:0}.handsontable .table-striped>tbody>tr:nth-of-type(2n){background-color:#fff}.handsontable{position:relative}.handsontable .hide{display:none}.handsontable .relative{position:relative}.handsontable .wtHider{width:0}.handsontable .wtSpreader{height:auto;position:relative;width:0}.handsontable div,.handsontable input,.handsontable table,.handsontable tbody,.handsontable td,.handsontable textarea,.handsontable th,.handsontable thead{box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box}.handsontable input,.handsontable textarea{min-height:auto}.handsontable table.htCore{border-collapse:separate;border-spacing:0;border-width:0;cursor:default;margin:0;max-height:none;max-width:none;outline-width:0;table-layout:fixed;width:0}.handsontable col,.handsontable col.rowHeader{width:50px}.handsontable td,.handsontable th{background-color:#fff;border-bottom:1px solid #ccc;border-left-width:0;border-right:1px solid #ccc;border-top-width:0;empty-cells:show;height:22px;line-height:21px;outline:none;outline-width:0;overflow:hidden;padding:0 4px;vertical-align:top;white-space:pre-wrap}[dir=rtl].handsontable td,[dir=rtl].handsontable th{border-left:1px solid #ccc;border-right-width:0}.handsontable th:last-child{border-bottom:1px solid #ccc;border-left:none;border-right:1px solid #ccc}[dir=rtl].handsontable th:last-child{border-left:1px solid #ccc;border-right:none}.handsontable td:first-of-type,.handsontable th:first-child{border-left:1px solid #ccc}[dir=rtl].handsontable td:first-of-type,[dir=rtl].handsontable th:first-child{border-right:1px solid #ccc}.handsontable .ht_clone_top th:nth-child(2){border-left-width:0;border-right:1px solid #ccc}[dir=rtl].handsontable .ht_clone_top th:nth-child(2){border-left:1px solid #ccc;border-right-width:0}.handsontable.htRowHeaders thead tr th:nth-child(2){border-left:1px solid #ccc}[dir=rtl].handsontable.htRowHeaders thead tr th:nth-child(2){border-right:1px solid #ccc}.handsontable tr:first-child td,.handsontable tr:first-child th{border-top:1px solid #ccc}.ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child{border-left:1px solid #ccc;border-right-width:0}[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child{border-left-width:0;border-right:1px solid #ccc}.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr:last-child th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr:last-child th{border-bottom-width:0}.handsontable th{background-color:#f0f0f0;color:#222;font-weight:400;text-align:center;white-space:nowrap}.handsontable thead th{padding:0}.handsontable th.active{background-color:#ccc}.handsontable thead th .relative{padding:2px 4px}.handsontable span.colHeader{display:inline-block;line-height:1.1}.handsontable .wtBorder{font-size:0;position:absolute}.handsontable .wtBorder.hidden{display:none!important}.handsontable .wtBorder.current{z-index:10}.handsontable .wtBorder.area{z-index:8}.handsontable .wtBorder.fill{z-index:6}.handsontable .wtBorder.corner{cursor:crosshair;font-size:0}.ht_clone_master{z-index:100}.ht_clone_inline_start{z-index:120}.ht_clone_bottom{z-index:130}.ht_clone_bottom_inline_start_corner{z-index:150}.ht_clone_top{z-index:160}.ht_clone_top_inline_start_corner{z-index:180}.handsontable col.hidden{width:0!important}.handsontable tr.hidden,.handsontable tr.hidden td,.handsontable tr.hidden th{display:none}.ht_clone_bottom,.ht_clone_inline_start,.ht_clone_top,.ht_master{overflow:hidden}.ht_master .wtHolder{overflow:auto}.handsontable .ht_clone_inline_start table.htCore>thead,.handsontable .ht_master table.htCore>tbody>tr>th,.handsontable .ht_master table.htCore>thead{visibility:hidden}.ht_clone_bottom .wtHolder,.ht_clone_inline_start .wtHolder,.ht_clone_top .wtHolder{overflow:hidden}.handsontable{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:13px;font-weight:400;touch-action:manipulation}.handsontable a{color:#104acc}.handsontable.htAutoSize{left:-99000px;position:absolute;top:-99000px;visibility:hidden}.handsontable td.htInvalid{background-color:#ffbeba!important}.handsontable td.htNoWrap{white-space:nowrap}.handsontable td.invisibleSelection,.handsontable th.invisibleSelection{outline:none}.handsontable td.invisibleSelection::selection,.handsontable th.invisibleSelection::selection{background:hsla(0,0%,100%,0)}.hot-display-license-info{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:10px;font-weight:400;padding:5px 0 3px;text-align:left}.hot-display-license-info a{color:#104acc;font-size:10px}.handsontable .htFocusCatcher{border:0;height:0;margin:0;opacity:0;padding:0;position:absolute;width:0;z-index:-1}.handsontable .manualColumnResizer{cursor:col-resize;height:25px;position:absolute;top:0;width:5px;z-index:210}.handsontable .manualRowResizer{cursor:row-resize;height:5px;left:0;position:absolute;width:50px;z-index:210}.handsontable .manualColumnResizer.active,.handsontable .manualColumnResizer:hover,.handsontable .manualRowResizer.active,.handsontable .manualRowResizer:hover{background-color:#34a9db}.handsontable .manualColumnResizerGuide{background-color:#34a9db;border-left:none;border-right:1px dashed #777;display:none;margin-left:5px;margin-right:unset;position:absolute;right:unset;top:0;width:0}[dir=rtl].handsontable .manualColumnResizerGuide{border-left:1px dashed #777;border-right:none;left:unset;margin-left:unset;margin-right:5px}.handsontable .manualRowResizerGuide{background-color:#34a9db;border-bottom:1px dashed #777;bottom:0;display:none;height:0;left:0;margin-top:5px;position:absolute}.handsontable .manualColumnResizerGuide.active,.handsontable .manualRowResizerGuide.active{display:block;z-index:209}.handsontable td.area,.handsontable td.area-1,.handsontable td.area-2,.handsontable td.area-3,.handsontable td.area-4,.handsontable td.area-5,.handsontable td.area-6,.handsontable td.area-7{position:relative}.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before,.handsontable td.area:before{background:#005eff;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.handsontable td.area:before{opacity:.1}.handsontable td.area-1:before{opacity:.2}.handsontable td.area-2:before{opacity:.27}.handsontable td.area-3:before{opacity:.35}.handsontable td.area-4:before{opacity:.41}.handsontable td.area-5:before{opacity:.47}.handsontable td.area-6:before{opacity:.54}.handsontable td.area-7:before{opacity:.58}.handsontable tbody th.current,.handsontable thead th.current{box-shadow:inset 0 0 0 2px #4b89ff}.handsontable tbody th.ht__highlight,.handsontable thead th.ht__highlight{background-color:#dcdcdc}.handsontable tbody th.ht__active_highlight,.handsontable thead th.ht__active_highlight{background-color:#8eb0e7;color:#000}.handsontableInput{background-color:#fff;border:none;border-radius:0;box-shadow:inset 0 0 0 2px #5292f7;box-sizing:border-box!important;color:#000;display:block;font-family:inherit;font-size:inherit;line-height:21px;margin:0;outline-width:0;padding:1px 5px 0;resize:none}.handsontableInput:focus{outline:none}.handsontableInputHolder{left:0;position:absolute;top:0}.htSelectEditor{position:absolute;select{-webkit-appearance:menulist-button!important;border:2px solid #4b89ff;box-sizing:border-box!important;height:100%;width:100%}}.htSelectEditor select:focus{outline:none}.htSelectEditor .htAutocompleteArrow{display:none}.handsontable .htDimmed{color:#777}.handsontable .htSubmenu{position:relative}.handsontable .htSubmenu :after{color:#777;content:"▶";font-size:9px;position:absolute;right:5px}[dir=rtl].handsontable .htSubmenu :after{content:""}[dir=rtl].handsontable .htSubmenu :before{color:#777;content:"◀";font-size:9px;left:5px;position:absolute}.handsontable .htLeft{text-align:left}.handsontable .htCenter{text-align:center}.handsontable .htRight{text-align:right}.handsontable .htJustify{text-align:justify}.handsontable .htTop{vertical-align:top}.handsontable .htMiddle{vertical-align:middle}.handsontable .htBottom{vertical-align:bottom}.handsontable .htPlaceholder{color:#999}.handsontable.listbox{margin:0}.handsontable.listbox .ht_master table{background:#fff;border:1px solid #ccc;border-collapse:separate}.handsontable.listbox td,.handsontable.listbox th,.handsontable.listbox tr:first-child td,.handsontable.listbox tr:first-child th,.handsontable.listbox tr:last-child th{border-color:transparent!important}.handsontable.listbox td,.handsontable.listbox th{text-overflow:ellipsis;white-space:nowrap}.handsontable.listbox td.htDimmed{color:inherit;cursor:default;font-style:inherit}.handsontable.listbox .wtBorder{visibility:hidden}.handsontable.listbox tr td.current,.handsontable.listbox tr:hover td{background:#eee}.ht_editor_hidden{z-index:-1}.ht_editor_visible{z-index:200}.handsontable td.htSearchResult{background:#fcedd9;color:#583707}.handsontable.mobile,.handsontable.mobile .wtHolder{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-overflow-scrolling:touch}.handsontable.mobile .handsontableInput:focus{-webkit-appearance:none;-webkit-box-shadow:inset 0 0 0 2px #5292f7;-moz-box-shadow:inset 0 0 0 2px #5292f7;box-shadow:inset 0 0 0 2px #5292f7}.handsontable .bottomSelectionHandle,.handsontable .bottomSelectionHandle-HitArea,.handsontable .topSelectionHandle,.handsontable .topSelectionHandle-HitArea{left:-10000px;right:unset;top:-10000px;z-index:9999}[dir=rtl].handsontable .bottomSelectionHandle,[dir=rtl].handsontable .bottomSelectionHandle-HitArea,[dir=rtl].handsontable .topSelectionHandle,[dir=rtl].handsontable .topSelectionHandle-HitArea{left:unset;right:-10000px}.handsontable.hide-tween{-webkit-animation:opacity-hide .3s;animation:opacity-hide .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}.handsontable.show-tween{-webkit-animation:opacity-show .3s;animation:opacity-show .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}.handsontable .htAutocompleteArrow{color:#bbb;cursor:default;float:right;font-size:10px;text-align:center;width:16px}[dir=rtl].handsontable .htAutocompleteArrow{float:left}.handsontable td.htInvalid .htAutocompleteArrow{color:#555}.handsontable td.htInvalid .htAutocompleteArrow:hover{color:#1a1a1a}.handsontable td .htAutocompleteArrow:hover{color:#777}.handsontable td.area .htAutocompleteArrow{color:#d3d3d3}.handsontable .htCheckboxRendererInput{display:inline-block}.handsontable .htCheckboxRendererInput.noValue{opacity:.5}.handsontable .htCheckboxRendererLabel{cursor:pointer;display:inline-block;font-size:inherit;vertical-align:middle}.handsontable .htCheckboxRendererLabel.fullWidth{width:100%}.handsontable .collapsibleIndicator{background:#eee;border:1px solid #a6a6a6;border-radius:10px;-webkit-box-shadow:0 0 0 6px #eee;-moz-box-shadow:0 0 0 6px #eee;box-shadow:0 0 0 3px #eee;color:#222;cursor:pointer;font-size:10px;height:10px;left:unset;line-height:8px;position:absolute;right:5px;text-align:center;top:50%;transform:translateY(-50%);width:10px}[dir=rtl].handsontable .collapsibleIndicator{left:5px;right:unset}.handsontable[dir=ltr] thead th:has(.collapsibleIndicator) div.htRight span.colHeader{margin-right:20px}.handsontable[dir=rtl] thead th:has(.collapsibleIndicator) div.htLeft span.colHeader{margin-left:20px}.handsontable .columnSorting{position:relative}.handsontable[dir=ltr] div.htRight span[class*=ascending],.handsontable[dir=ltr] div.htRight span[class*=descending]{margin-left:-10px;margin-right:10px}.handsontable[dir=rtl] div.htLeft span[class*=ascending],.handsontable[dir=rtl] div.htLeft span[class*=descending]{margin-left:10px;margin-right:-10px}.handsontable[dir=ltr] div.htRight span[class*=ascending]:only-child,.handsontable[dir=ltr] div.htRight span[class*=descending]:only-child{margin-left:-15px;margin-right:15px}.handsontable[dir=rtl] div.htLeft span[class*=ascending]:only-child,.handsontable[dir=rtl] div.htLeft span[class*=descending]:only-child{margin-left:15px;margin-right:-15px}.handsontable .columnSorting.sortAction:hover{cursor:pointer;text-decoration:underline}.handsontable span.colHeader.columnSorting:before{background-position-x:right;background-repeat:no-repeat;background-size:contain;content:"";height:10px;left:unset;margin-top:-6px;padding-left:8px;padding-right:0;position:absolute;right:-9px;top:50%;width:5px}[dir=rtl].handsontable span.colHeader.columnSorting:before{background-position-x:left;left:-9px;padding-left:0;padding-right:8px;right:unset}.handsontable span.colHeader.columnSorting.ascending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC)}.handsontable span.colHeader.columnSorting.descending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=)}.htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled):before{content:"*";display:inline-block;padding-right:20px;position:relative}.handsontable .htCommentCell{position:relative}.handsontable .htCommentCell:after{border-left:6px solid transparent;border-right:none;border-top:6px solid #000;content:"";left:unset;position:absolute;right:0;top:0}[dir=rtl].handsontable .htCommentCell:after{border-left:none;border-right:6px solid transparent;left:0;right:unset}.htCommentsContainer .htComments{display:none;position:absolute;z-index:1059}.htCommentsContainer .htCommentTextArea{-webkit-appearance:none;background-color:#fff;border:none;border-left:3px solid #ccc;box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:12px;height:90px;outline:0!important;padding:5px;width:215px}[dir=rtl].htCommentsContainer .htCommentTextArea{border-left:none;border-right:3px solid #ccc}.htCommentsContainer .htCommentTextArea:focus{border-left:3px solid #5292f7;border-right:none;box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239),inset 0 0 0 1px #5292f7}[dir=rtl].htCommentsContainer .htCommentTextArea:focus{border-left:none;border-right:3px solid #5292f7}
|
|
32
32
|
/*!
|
|
33
33
|
* Handsontable ContextMenu
|