handsontable 0.0.0-next-221e46b-20240307 → 0.0.0-next-200799f-20240311
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/cell/range.d.ts +1 -0
- package/3rdparty/walkontable/src/cell/range.js +22 -5
- package/3rdparty/walkontable/src/cell/range.mjs +22 -5
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/viewportScroll/index.js +4 -1
- package/core/viewportScroll/index.mjs +4 -1
- package/core/viewportScroll/scrollStrategies/focusScroll.js +15 -0
- package/core/viewportScroll/scrollStrategies/focusScroll.mjs +11 -0
- package/core.d.ts +4 -3
- package/core.js +78 -21
- package/core.mjs +78 -21
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +2645 -1363
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +152 -152
- package/dist/handsontable.js +2645 -1363
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +32 -32
- package/editorManager.js +12 -8
- package/editorManager.mjs +12 -8
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/pluginHooks.d.ts +1 -0
- package/pluginHooks.js +43 -1
- package/pluginHooks.mjs +43 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +7 -1
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +7 -1
- package/plugins/columnSorting/columnSorting.js +6 -0
- package/plugins/columnSorting/columnSorting.mjs +6 -0
- package/plugins/contextMenu/menu/defaultShortcutsList.js +26 -10
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +26 -10
- package/plugins/mergeCells/calculations/selection.js +1 -70
- package/plugins/mergeCells/calculations/selection.mjs +1 -70
- package/plugins/mergeCells/cellsCollection.js +116 -0
- package/plugins/mergeCells/cellsCollection.mjs +116 -0
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +11 -1
- package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +11 -1
- package/plugins/mergeCells/focusOrder.js +258 -0
- package/plugins/mergeCells/focusOrder.mjs +253 -0
- package/plugins/mergeCells/mergeCells.js +394 -199
- package/plugins/mergeCells/mergeCells.mjs +394 -199
- package/plugins/multiColumnSorting/multiColumnSorting.js +6 -0
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +6 -0
- package/plugins/nestedHeaders/nestedHeaders.js +1 -0
- package/plugins/nestedHeaders/nestedHeaders.mjs +1 -0
- package/plugins/nestedRows/nestedRows.js +7 -1
- package/plugins/nestedRows/nestedRows.mjs +7 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +4 -4
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -4
- package/selection/highlight/visualSelection.js +16 -2
- package/selection/highlight/visualSelection.mjs +16 -2
- package/selection/selection.js +225 -44
- package/selection/selection.mjs +224 -43
- package/selection/transformation.js +86 -32
- package/selection/transformation.mjs +86 -32
- package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
- package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
- package/shortcutContexts/commands/editor/open.js +18 -3
- package/shortcutContexts/commands/editor/open.mjs +18 -3
- package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +9 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +9 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +10 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +10 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +6 -1
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +6 -1
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +6 -1
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +6 -1
- package/shortcutContexts/grid.js +2 -2
- package/shortcutContexts/grid.mjs +2 -2
- package/shortcuts/context.js +2 -1
- package/shortcuts/context.mjs +2 -1
- package/tableView.js +20 -0
- package/tableView.mjs +20 -0
- package/utils/dataStructures/linkedList.js +6 -1
- package/utils/dataStructures/linkedList.mjs +6 -1
@@ -154,6 +154,18 @@ class CellRange {
|
|
154
154
|
return (this.from.row < 0 || this.from.col < 0) && this.from.row === this.to.row && this.from.col === this.to.col;
|
155
155
|
}
|
156
156
|
|
157
|
+
/**
|
158
|
+
* Checks if your range covers only headers range (negative coordinates, without any cells).
|
159
|
+
*
|
160
|
+
* @returns {boolean}
|
161
|
+
*/
|
162
|
+
isHeader() {
|
163
|
+
if (this.from.isHeader() && this.to.isHeader()) {
|
164
|
+
return true;
|
165
|
+
}
|
166
|
+
return this.from.col < 0 && this.to.col < 0 || this.from.row < 0 && this.to.row < 0;
|
167
|
+
}
|
168
|
+
|
157
169
|
/**
|
158
170
|
* Checks if your range overlaps headers range (negative coordinates).
|
159
171
|
*
|
@@ -338,9 +350,12 @@ class CellRange {
|
|
338
350
|
* Expand your range with another range (`expandingRange`).
|
339
351
|
*
|
340
352
|
* @param {CellRange} expandingRange A new range.
|
353
|
+
* @param {boolean} [changeDirection=true] If `true`, the direction of your range is changed to the direction
|
354
|
+
* of the `expandingRange` range.
|
341
355
|
* @returns {boolean}
|
342
356
|
*/
|
343
357
|
expandByRange(expandingRange) {
|
358
|
+
let changeDirection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
344
359
|
if (this.includesRange(expandingRange) || !this.overlaps(expandingRange)) {
|
345
360
|
return false;
|
346
361
|
}
|
@@ -358,11 +373,13 @@ class CellRange {
|
|
358
373
|
this.from = finalFrom;
|
359
374
|
this.to = finalTo;
|
360
375
|
this.setDirection(initialDirection);
|
361
|
-
if (
|
362
|
-
this.
|
363
|
-
|
364
|
-
|
365
|
-
this.
|
376
|
+
if (changeDirection) {
|
377
|
+
if (this.highlight.row === this.getOuterBottomRightCorner().row && this.getVerticalDirection() === 'N-S') {
|
378
|
+
this.flipDirectionVertically();
|
379
|
+
}
|
380
|
+
if (this.highlight.col === this.getOuterTopRightCorner().col && this.getHorizontalDirection() === 'W-E') {
|
381
|
+
this.flipDirectionHorizontally();
|
382
|
+
}
|
366
383
|
}
|
367
384
|
return true;
|
368
385
|
}
|
@@ -150,6 +150,18 @@ class CellRange {
|
|
150
150
|
return (this.from.row < 0 || this.from.col < 0) && this.from.row === this.to.row && this.from.col === this.to.col;
|
151
151
|
}
|
152
152
|
|
153
|
+
/**
|
154
|
+
* Checks if your range covers only headers range (negative coordinates, without any cells).
|
155
|
+
*
|
156
|
+
* @returns {boolean}
|
157
|
+
*/
|
158
|
+
isHeader() {
|
159
|
+
if (this.from.isHeader() && this.to.isHeader()) {
|
160
|
+
return true;
|
161
|
+
}
|
162
|
+
return this.from.col < 0 && this.to.col < 0 || this.from.row < 0 && this.to.row < 0;
|
163
|
+
}
|
164
|
+
|
153
165
|
/**
|
154
166
|
* Checks if your range overlaps headers range (negative coordinates).
|
155
167
|
*
|
@@ -334,9 +346,12 @@ class CellRange {
|
|
334
346
|
* Expand your range with another range (`expandingRange`).
|
335
347
|
*
|
336
348
|
* @param {CellRange} expandingRange A new range.
|
349
|
+
* @param {boolean} [changeDirection=true] If `true`, the direction of your range is changed to the direction
|
350
|
+
* of the `expandingRange` range.
|
337
351
|
* @returns {boolean}
|
338
352
|
*/
|
339
353
|
expandByRange(expandingRange) {
|
354
|
+
let changeDirection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
340
355
|
if (this.includesRange(expandingRange) || !this.overlaps(expandingRange)) {
|
341
356
|
return false;
|
342
357
|
}
|
@@ -354,11 +369,13 @@ class CellRange {
|
|
354
369
|
this.from = finalFrom;
|
355
370
|
this.to = finalTo;
|
356
371
|
this.setDirection(initialDirection);
|
357
|
-
if (
|
358
|
-
this.
|
359
|
-
|
360
|
-
|
361
|
-
this.
|
372
|
+
if (changeDirection) {
|
373
|
+
if (this.highlight.row === this.getOuterBottomRightCorner().row && this.getVerticalDirection() === 'N-S') {
|
374
|
+
this.flipDirectionVertically();
|
375
|
+
}
|
376
|
+
if (this.highlight.col === this.getOuterTopRightCorner().col && this.getHorizontalDirection() === 'W-E') {
|
377
|
+
this.flipDirectionHorizontally();
|
378
|
+
}
|
362
379
|
}
|
363
380
|
return true;
|
364
381
|
}
|
package/base.js
CHANGED
@@ -45,8 +45,8 @@ Handsontable.hooks = _pluginHooks.default.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 = "11/03/2024 12:57:43";
|
49
|
+
Handsontable.version = "0.0.0-next-200799f-20240311";
|
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 = "11/03/2024 12:57:49";
|
39
|
+
Handsontable.version = "0.0.0-next-200799f-20240311";
|
40
40
|
Handsontable.languages = {
|
41
41
|
dictionaryKeys,
|
42
42
|
getLanguageDictionary,
|
@@ -4,6 +4,7 @@ exports.__esModule = true;
|
|
4
4
|
exports.createViewportScroller = createViewportScroller;
|
5
5
|
var _columnHeaderScroll = require("./scrollStrategies/columnHeaderScroll");
|
6
6
|
var _cornerHeaderScroll = require("./scrollStrategies/cornerHeaderScroll");
|
7
|
+
var _focusScroll = require("./scrollStrategies/focusScroll");
|
7
8
|
var _multipleScroll = require("./scrollStrategies/multipleScroll");
|
8
9
|
var _noncontiguousScroll = require("./scrollStrategies/noncontiguousScroll");
|
9
10
|
var _rowHeaderScroll = require("./scrollStrategies/rowHeaderScroll");
|
@@ -46,7 +47,9 @@ function createViewportScroller(hot) {
|
|
46
47
|
return;
|
47
48
|
}
|
48
49
|
let scrollStrategy;
|
49
|
-
if (selection.
|
50
|
+
if (selection.isFocusSelectionChanged()) {
|
51
|
+
scrollStrategy = (0, _focusScroll.focusScrollStrategy)(hot);
|
52
|
+
} else if (selection.isSelectedByCorner()) {
|
50
53
|
scrollStrategy = (0, _cornerHeaderScroll.cornerHeaderScrollStrategy)(hot);
|
51
54
|
} else if (selection.isSelectedByRowHeader()) {
|
52
55
|
scrollStrategy = (0, _rowHeaderScroll.rowHeaderScrollStrategy)(hot);
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { columnHeaderScrollStrategy } from "./scrollStrategies/columnHeaderScroll.mjs";
|
2
2
|
import { cornerHeaderScrollStrategy } from "./scrollStrategies/cornerHeaderScroll.mjs";
|
3
|
+
import { focusScrollStrategy } from "./scrollStrategies/focusScroll.mjs";
|
3
4
|
import { multipleScrollStrategy } from "./scrollStrategies/multipleScroll.mjs";
|
4
5
|
import { noncontiguousScrollStrategy } from "./scrollStrategies/noncontiguousScroll.mjs";
|
5
6
|
import { rowHeaderScrollStrategy } from "./scrollStrategies/rowHeaderScroll.mjs";
|
@@ -42,7 +43,9 @@ export function createViewportScroller(hot) {
|
|
42
43
|
return;
|
43
44
|
}
|
44
45
|
let scrollStrategy;
|
45
|
-
if (selection.
|
46
|
+
if (selection.isFocusSelectionChanged()) {
|
47
|
+
scrollStrategy = focusScrollStrategy(hot);
|
48
|
+
} else if (selection.isSelectedByCorner()) {
|
46
49
|
scrollStrategy = cornerHeaderScrollStrategy(hot);
|
47
50
|
} else if (selection.isSelectedByRowHeader()) {
|
48
51
|
scrollStrategy = rowHeaderScrollStrategy(hot);
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.focusScrollStrategy = focusScrollStrategy;
|
5
|
+
/**
|
6
|
+
* Scroll strategy for changed the focus position of the selection.
|
7
|
+
*
|
8
|
+
* @param {Core} hot Handsontable instance.
|
9
|
+
* @returns {function(): function(CellCoords): void}
|
10
|
+
*/
|
11
|
+
function focusScrollStrategy(hot) {
|
12
|
+
return cellCoords => {
|
13
|
+
hot.scrollViewportTo(cellCoords.toObject());
|
14
|
+
};
|
15
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/**
|
2
|
+
* Scroll strategy for changed the focus position of the selection.
|
3
|
+
*
|
4
|
+
* @param {Core} hot Handsontable instance.
|
5
|
+
* @returns {function(): function(CellCoords): void}
|
6
|
+
*/
|
7
|
+
export function focusScrollStrategy(hot) {
|
8
|
+
return cellCoords => {
|
9
|
+
hot.scrollViewportTo(cellCoords.toObject());
|
10
|
+
};
|
11
|
+
}
|
package/core.d.ts
CHANGED
@@ -3,6 +3,7 @@ import { Events } from './pluginHooks';
|
|
3
3
|
import {
|
4
4
|
CellValue,
|
5
5
|
RowObject,
|
6
|
+
SimpleCellCoords,
|
6
7
|
} from './common';
|
7
8
|
import {
|
8
9
|
GridSettings,
|
@@ -135,12 +136,12 @@ export default class Core {
|
|
135
136
|
scrollViewportTo(options: { row?: number, col?: number, verticalSnap?: 'top' | 'bottom', horizontalSnap?: 'start' | 'end', considerHiddenIndexes?: boolean }): boolean;
|
136
137
|
scrollViewportTo(row?: number, column?: number, snapToBottom?: boolean, snapToRight?: boolean, considerHiddenIndexes?: boolean): boolean;
|
137
138
|
scrollToFocusedCell(callback?: () => void): void;
|
138
|
-
selectAll(includeRowHeaders?: boolean, includeColumnHeaders?: boolean, options?: { focusPosition?:
|
139
|
+
selectAll(includeRowHeaders?: boolean, includeColumnHeaders?: boolean, options?: { focusPosition?: SimpleCellCoords | CellCoords, disableHeadersHighlight?: boolean }): void;
|
139
140
|
selectCell(row: number, column: number, endRow?: number, endColumn?: number, scrollToCell?: boolean, changeListener?: boolean): boolean;
|
140
141
|
selectCellByProp(row: number, prop: string, endRow?: number, endProp?: string, scrollToCell?: boolean): boolean;
|
141
142
|
selectCells(coords: Array<[number, number | string, number, number | string]> | CellRange[], scrollToCell?: boolean, changeListener?: boolean): boolean;
|
142
|
-
selectColumns(startColumn: number | string, endColumn?: number | string, focusPosition?: number): boolean;
|
143
|
-
selectRows(startRow: number, endRow?: number, focusPosition?: number): boolean;
|
143
|
+
selectColumns(startColumn: number | string, endColumn?: number | string, focusPosition?: number | SimpleCellCoords | CellCoords): boolean;
|
144
|
+
selectRows(startRow: number, endRow?: number, focusPosition?: number | SimpleCellCoords | CellCoords): boolean;
|
144
145
|
setCellMeta(row: number, column: number, key: string, val: any): void;
|
145
146
|
setCellMeta<K extends keyof CellMeta>(row: number, column: number, key: K, val: CellMeta[K]): void;
|
146
147
|
setCellMetaObject(row: number, column: number, prop: CellMeta): void;
|
package/core.js
CHANGED
@@ -273,6 +273,26 @@ function Core(rootElement, userSettings) {
|
|
273
273
|
renderableRow >= 0 ? instance.rowIndexMapper.getVisualFromRenderableIndex(renderableRow) : renderableRow, renderableColumn >= 0 ? instance.columnIndexMapper.getVisualFromRenderableIndex(renderableColumn) : renderableColumn // eslint-disable-line max-len
|
274
274
|
);
|
275
275
|
};
|
276
|
+
const findFirstNonHiddenRenderableRow = (visualRowFrom, visualRowTo) => {
|
277
|
+
const dir = visualRowTo > visualRowFrom ? 1 : -1;
|
278
|
+
const minIndex = Math.min(visualRowFrom, visualRowTo);
|
279
|
+
const maxIndex = Math.max(visualRowFrom, visualRowTo);
|
280
|
+
const rowIndex = instance.rowIndexMapper.getNearestNotHiddenIndex(visualRowFrom, dir);
|
281
|
+
if (rowIndex === null || dir === 1 && rowIndex > maxIndex || dir === -1 && rowIndex < minIndex) {
|
282
|
+
return null;
|
283
|
+
}
|
284
|
+
return rowIndex >= 0 ? instance.rowIndexMapper.getRenderableFromVisualIndex(rowIndex) : rowIndex;
|
285
|
+
};
|
286
|
+
const findFirstNonHiddenRenderableColumn = (visualColumnFrom, visualColumnTo) => {
|
287
|
+
const dir = visualColumnTo > visualColumnFrom ? 1 : -1;
|
288
|
+
const minIndex = Math.min(visualColumnFrom, visualColumnTo);
|
289
|
+
const maxIndex = Math.max(visualColumnFrom, visualColumnTo);
|
290
|
+
const columnIndex = instance.columnIndexMapper.getNearestNotHiddenIndex(visualColumnFrom, dir);
|
291
|
+
if (columnIndex === null || dir === 1 && columnIndex > maxIndex || dir === -1 && columnIndex < minIndex) {
|
292
|
+
return null;
|
293
|
+
}
|
294
|
+
return columnIndex >= 0 ? instance.columnIndexMapper.getRenderableFromVisualIndex(columnIndex) : columnIndex;
|
295
|
+
};
|
276
296
|
let selection = new _selection.Selection(tableMeta, {
|
277
297
|
rowIndexMapper: instance.rowIndexMapper,
|
278
298
|
columnIndexMapper: instance.columnIndexMapper,
|
@@ -284,11 +304,19 @@ function Core(rootElement, userSettings) {
|
|
284
304
|
countRenderableRows: () => this.view.countRenderableRows(),
|
285
305
|
countRowHeaders: () => this.countRowHeaders(),
|
286
306
|
countColHeaders: () => this.countColHeaders(),
|
307
|
+
countRenderableRowsInRange: function () {
|
308
|
+
return _this.view.countRenderableRowsInRange(...arguments);
|
309
|
+
},
|
310
|
+
countRenderableColumnsInRange: function () {
|
311
|
+
return _this.view.countRenderableColumnsInRange(...arguments);
|
312
|
+
},
|
287
313
|
getShortcutManager: () => instance.getShortcutManager(),
|
288
314
|
createCellCoords: (row, column) => instance._createCellCoords(row, column),
|
289
315
|
createCellRange: (highlight, from, to) => instance._createCellRange(highlight, from, to),
|
290
316
|
visualToRenderableCoords,
|
291
317
|
renderableToVisualCoords,
|
318
|
+
findFirstNonHiddenRenderableRow,
|
319
|
+
findFirstNonHiddenRenderableColumn,
|
292
320
|
isDisabledCellSelection: (visualRow, visualColumn) => {
|
293
321
|
if (visualRow < 0 || visualColumn < 0) {
|
294
322
|
return instance.getSettings().disableVisualSelection;
|
@@ -339,6 +367,14 @@ function Core(rootElement, userSettings) {
|
|
339
367
|
}
|
340
368
|
this._refreshBorders(null);
|
341
369
|
});
|
370
|
+
this.selection.addLocalHook('afterSetFocus', cellCoords => {
|
371
|
+
const preventScrolling = (0, _object.createObjectPropListener)(false);
|
372
|
+
this.runHooks('afterSelectionFocusSet', cellCoords.row, cellCoords.col, preventScrolling);
|
373
|
+
if (!preventScrolling.isTouched() || preventScrolling.isTouched() && !preventScrolling.value) {
|
374
|
+
viewportScroller.scrollTo(cellCoords);
|
375
|
+
}
|
376
|
+
this._refreshBorders(null);
|
377
|
+
});
|
342
378
|
this.selection.addLocalHook('afterSelectionFinished', cellRanges => {
|
343
379
|
const selectionLayerLevel = cellRanges.length - 1;
|
344
380
|
const {
|
@@ -405,25 +441,40 @@ function Core(rootElement, userSettings) {
|
|
405
441
|
args[_key9] = arguments[_key9];
|
406
442
|
}
|
407
443
|
return _this.runHooks('afterModifyTransformStart', ...args);
|
408
|
-
}).addLocalHook('
|
444
|
+
}).addLocalHook('beforeModifyTransformFocus', function () {
|
409
445
|
for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
|
410
446
|
args[_key10] = arguments[_key10];
|
411
447
|
}
|
412
|
-
return _this.runHooks('
|
413
|
-
}).addLocalHook('
|
448
|
+
return _this.runHooks('modifyTransformFocus', ...args);
|
449
|
+
}).addLocalHook('afterModifyTransformFocus', function () {
|
414
450
|
for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
|
415
451
|
args[_key11] = arguments[_key11];
|
416
452
|
}
|
417
|
-
return _this.runHooks('
|
418
|
-
}).addLocalHook('
|
453
|
+
return _this.runHooks('afterModifyTransformFocus', ...args);
|
454
|
+
}).addLocalHook('beforeModifyTransformEnd', function () {
|
419
455
|
for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
|
420
456
|
args[_key12] = arguments[_key12];
|
421
457
|
}
|
422
|
-
return _this.runHooks('
|
423
|
-
}).addLocalHook('
|
458
|
+
return _this.runHooks('modifyTransformEnd', ...args);
|
459
|
+
}).addLocalHook('afterModifyTransformEnd', function () {
|
424
460
|
for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
|
425
461
|
args[_key13] = arguments[_key13];
|
426
462
|
}
|
463
|
+
return _this.runHooks('afterModifyTransformEnd', ...args);
|
464
|
+
}).addLocalHook('modifyTransformEndRestDelta', function () {
|
465
|
+
for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
|
466
|
+
args[_key14] = arguments[_key14];
|
467
|
+
}
|
468
|
+
return _this.runHooks('modifyTransformEndRestDelta', ...args);
|
469
|
+
}).addLocalHook('beforeRowWrap', function () {
|
470
|
+
for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
|
471
|
+
args[_key15] = arguments[_key15];
|
472
|
+
}
|
473
|
+
return _this.runHooks('beforeRowWrap', ...args);
|
474
|
+
}).addLocalHook('beforeColumnWrap', function () {
|
475
|
+
for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {
|
476
|
+
args[_key16] = arguments[_key16];
|
477
|
+
}
|
427
478
|
return _this.runHooks('beforeColumnWrap', ...args);
|
428
479
|
}).addLocalHook('insertRowRequire', totalRows => this.alter('insert_row_above', totalRows, 1, 'auto')).addLocalHook('insertColRequire', totalCols => this.alter('insert_col_start', totalCols, 1, 'auto'));
|
429
480
|
grid = {
|
@@ -1561,8 +1612,8 @@ function Core(rootElement, userSettings) {
|
|
1561
1612
|
* @returns {Array} Returns removed portion of columns.
|
1562
1613
|
*/
|
1563
1614
|
this.spliceCol = function (column, index, amount) {
|
1564
|
-
for (var
|
1565
|
-
elements[
|
1615
|
+
for (var _len17 = arguments.length, elements = new Array(_len17 > 3 ? _len17 - 3 : 0), _key17 = 3; _key17 < _len17; _key17++) {
|
1616
|
+
elements[_key17 - 3] = arguments[_key17];
|
1566
1617
|
}
|
1567
1618
|
return datamap.spliceCol(column, index, amount, ...elements);
|
1568
1619
|
};
|
@@ -1579,8 +1630,8 @@ function Core(rootElement, userSettings) {
|
|
1579
1630
|
* @returns {Array} Returns removed portion of rows.
|
1580
1631
|
*/
|
1581
1632
|
this.spliceRow = function (row, index, amount) {
|
1582
|
-
for (var
|
1583
|
-
elements[
|
1633
|
+
for (var _len18 = arguments.length, elements = new Array(_len18 > 3 ? _len18 - 3 : 0), _key18 = 3; _key18 < _len18; _key18++) {
|
1634
|
+
elements[_key18 - 3] = arguments[_key18];
|
1584
1635
|
}
|
1585
1636
|
return datamap.spliceRow(row, index, amount, ...elements);
|
1586
1637
|
};
|
@@ -2977,8 +3028,8 @@ function Core(rootElement, userSettings) {
|
|
2977
3028
|
*/
|
2978
3029
|
this.spliceCellsMeta = function (visualIndex) {
|
2979
3030
|
let deleteAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
2980
|
-
for (var
|
2981
|
-
cellMetaRows[
|
3031
|
+
for (var _len19 = arguments.length, cellMetaRows = new Array(_len19 > 2 ? _len19 - 2 : 0), _key19 = 2; _key19 < _len19; _key19++) {
|
3032
|
+
cellMetaRows[_key19 - 2] = arguments[_key19];
|
2982
3033
|
}
|
2983
3034
|
if (cellMetaRows.length > 0 && !Array.isArray(cellMetaRows[0])) {
|
2984
3035
|
throw new Error('The 3rd argument (cellMetaRows) has to be passed as an array of cell meta objects array.');
|
@@ -3900,6 +3951,8 @@ function Core(rootElement, userSettings) {
|
|
3900
3951
|
* hot.selectColumns(1, 2, -1);
|
3901
3952
|
* // Select range of columns using visual indexes and mark the second cell as highlighted.
|
3902
3953
|
* hot.selectColumns(2, 1, 1);
|
3954
|
+
* // Select range of columns using visual indexes and move the focus position somewhere in the middle of the range.
|
3955
|
+
* hot.selectColumns(2, 5, { row: 2, col: 3 });
|
3903
3956
|
* // Select range of columns using column properties.
|
3904
3957
|
* hot.selectColumns('id', 'last_name');
|
3905
3958
|
* ```
|
@@ -3909,10 +3962,11 @@ function Core(rootElement, userSettings) {
|
|
3909
3962
|
* @function selectColumns
|
3910
3963
|
* @param {number} startColumn The visual column index from which the selection starts.
|
3911
3964
|
* @param {number} [endColumn=startColumn] The visual column index to which the selection finishes. If `endColumn`
|
3912
|
-
*
|
3913
|
-
* @param {number} [focusPosition=0] The argument allows changing the cell/header focus
|
3914
|
-
*
|
3915
|
-
*
|
3965
|
+
* is not defined the column defined by `startColumn` will be selected.
|
3966
|
+
* @param {number | { row: number, col: number } | CellCoords} [focusPosition=0] The argument allows changing the cell/header focus
|
3967
|
+
* position. The value can take visual row index from -N to N, where negative values point to the headers and positive
|
3968
|
+
* values point to the cell range. An object with `row` and `col` properties also can be passed to change the focus
|
3969
|
+
* position horizontally.
|
3916
3970
|
* @returns {boolean} `true` if selection was successful, `false` otherwise.
|
3917
3971
|
*/
|
3918
3972
|
this.selectColumns = function (startColumn) {
|
@@ -3934,6 +3988,8 @@ function Core(rootElement, userSettings) {
|
|
3934
3988
|
* hot.selectRows(1, 2, -1);
|
3935
3989
|
* // Select range of rows using visual indexes and mark the second cell as highlighted.
|
3936
3990
|
* hot.selectRows(2, 1, 1);
|
3991
|
+
* // Select range of rows using visual indexes and move the focus position somewhere in the middle of the range.
|
3992
|
+
* hot.selectRows(2, 5, { row: 2, col: 3 });
|
3937
3993
|
* ```
|
3938
3994
|
*
|
3939
3995
|
* @memberof Core#
|
@@ -3941,10 +3997,11 @@ function Core(rootElement, userSettings) {
|
|
3941
3997
|
* @function selectRows
|
3942
3998
|
* @param {number} startRow The visual row index from which the selection starts.
|
3943
3999
|
* @param {number} [endRow=startRow] The visual row index to which the selection finishes. If `endRow`
|
3944
|
-
*
|
3945
|
-
* @param {number} [focusPosition=0] The argument allows changing the cell/header focus
|
3946
|
-
*
|
3947
|
-
*
|
4000
|
+
* is not defined the row defined by `startRow` will be selected.
|
4001
|
+
* @param {number | { row: number, col: number } | CellCoords} [focusPosition=0] The argument allows changing the cell/header focus
|
4002
|
+
* position. The value can take visual row index from -N to N, where negative values point to the headers and positive
|
4003
|
+
* values point to the cell range. An object with `row` and `col` properties also can be passed to change the focus
|
4004
|
+
* position vertically.
|
3948
4005
|
* @returns {boolean} `true` if selection was successful, `false` otherwise.
|
3949
4006
|
*/
|
3950
4007
|
this.selectRows = function (startRow) {
|
package/core.mjs
CHANGED
@@ -268,6 +268,26 @@ export default function Core(rootElement, userSettings) {
|
|
268
268
|
renderableRow >= 0 ? instance.rowIndexMapper.getVisualFromRenderableIndex(renderableRow) : renderableRow, renderableColumn >= 0 ? instance.columnIndexMapper.getVisualFromRenderableIndex(renderableColumn) : renderableColumn // eslint-disable-line max-len
|
269
269
|
);
|
270
270
|
};
|
271
|
+
const findFirstNonHiddenRenderableRow = (visualRowFrom, visualRowTo) => {
|
272
|
+
const dir = visualRowTo > visualRowFrom ? 1 : -1;
|
273
|
+
const minIndex = Math.min(visualRowFrom, visualRowTo);
|
274
|
+
const maxIndex = Math.max(visualRowFrom, visualRowTo);
|
275
|
+
const rowIndex = instance.rowIndexMapper.getNearestNotHiddenIndex(visualRowFrom, dir);
|
276
|
+
if (rowIndex === null || dir === 1 && rowIndex > maxIndex || dir === -1 && rowIndex < minIndex) {
|
277
|
+
return null;
|
278
|
+
}
|
279
|
+
return rowIndex >= 0 ? instance.rowIndexMapper.getRenderableFromVisualIndex(rowIndex) : rowIndex;
|
280
|
+
};
|
281
|
+
const findFirstNonHiddenRenderableColumn = (visualColumnFrom, visualColumnTo) => {
|
282
|
+
const dir = visualColumnTo > visualColumnFrom ? 1 : -1;
|
283
|
+
const minIndex = Math.min(visualColumnFrom, visualColumnTo);
|
284
|
+
const maxIndex = Math.max(visualColumnFrom, visualColumnTo);
|
285
|
+
const columnIndex = instance.columnIndexMapper.getNearestNotHiddenIndex(visualColumnFrom, dir);
|
286
|
+
if (columnIndex === null || dir === 1 && columnIndex > maxIndex || dir === -1 && columnIndex < minIndex) {
|
287
|
+
return null;
|
288
|
+
}
|
289
|
+
return columnIndex >= 0 ? instance.columnIndexMapper.getRenderableFromVisualIndex(columnIndex) : columnIndex;
|
290
|
+
};
|
271
291
|
let selection = new Selection(tableMeta, {
|
272
292
|
rowIndexMapper: instance.rowIndexMapper,
|
273
293
|
columnIndexMapper: instance.columnIndexMapper,
|
@@ -279,11 +299,19 @@ export default function Core(rootElement, userSettings) {
|
|
279
299
|
countRenderableRows: () => this.view.countRenderableRows(),
|
280
300
|
countRowHeaders: () => this.countRowHeaders(),
|
281
301
|
countColHeaders: () => this.countColHeaders(),
|
302
|
+
countRenderableRowsInRange: function () {
|
303
|
+
return _this.view.countRenderableRowsInRange(...arguments);
|
304
|
+
},
|
305
|
+
countRenderableColumnsInRange: function () {
|
306
|
+
return _this.view.countRenderableColumnsInRange(...arguments);
|
307
|
+
},
|
282
308
|
getShortcutManager: () => instance.getShortcutManager(),
|
283
309
|
createCellCoords: (row, column) => instance._createCellCoords(row, column),
|
284
310
|
createCellRange: (highlight, from, to) => instance._createCellRange(highlight, from, to),
|
285
311
|
visualToRenderableCoords,
|
286
312
|
renderableToVisualCoords,
|
313
|
+
findFirstNonHiddenRenderableRow,
|
314
|
+
findFirstNonHiddenRenderableColumn,
|
287
315
|
isDisabledCellSelection: (visualRow, visualColumn) => {
|
288
316
|
if (visualRow < 0 || visualColumn < 0) {
|
289
317
|
return instance.getSettings().disableVisualSelection;
|
@@ -334,6 +362,14 @@ export default function Core(rootElement, userSettings) {
|
|
334
362
|
}
|
335
363
|
this._refreshBorders(null);
|
336
364
|
});
|
365
|
+
this.selection.addLocalHook('afterSetFocus', cellCoords => {
|
366
|
+
const preventScrolling = createObjectPropListener(false);
|
367
|
+
this.runHooks('afterSelectionFocusSet', cellCoords.row, cellCoords.col, preventScrolling);
|
368
|
+
if (!preventScrolling.isTouched() || preventScrolling.isTouched() && !preventScrolling.value) {
|
369
|
+
viewportScroller.scrollTo(cellCoords);
|
370
|
+
}
|
371
|
+
this._refreshBorders(null);
|
372
|
+
});
|
337
373
|
this.selection.addLocalHook('afterSelectionFinished', cellRanges => {
|
338
374
|
const selectionLayerLevel = cellRanges.length - 1;
|
339
375
|
const {
|
@@ -400,25 +436,40 @@ export default function Core(rootElement, userSettings) {
|
|
400
436
|
args[_key9] = arguments[_key9];
|
401
437
|
}
|
402
438
|
return _this.runHooks('afterModifyTransformStart', ...args);
|
403
|
-
}).addLocalHook('
|
439
|
+
}).addLocalHook('beforeModifyTransformFocus', function () {
|
404
440
|
for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
|
405
441
|
args[_key10] = arguments[_key10];
|
406
442
|
}
|
407
|
-
return _this.runHooks('
|
408
|
-
}).addLocalHook('
|
443
|
+
return _this.runHooks('modifyTransformFocus', ...args);
|
444
|
+
}).addLocalHook('afterModifyTransformFocus', function () {
|
409
445
|
for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
|
410
446
|
args[_key11] = arguments[_key11];
|
411
447
|
}
|
412
|
-
return _this.runHooks('
|
413
|
-
}).addLocalHook('
|
448
|
+
return _this.runHooks('afterModifyTransformFocus', ...args);
|
449
|
+
}).addLocalHook('beforeModifyTransformEnd', function () {
|
414
450
|
for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
|
415
451
|
args[_key12] = arguments[_key12];
|
416
452
|
}
|
417
|
-
return _this.runHooks('
|
418
|
-
}).addLocalHook('
|
453
|
+
return _this.runHooks('modifyTransformEnd', ...args);
|
454
|
+
}).addLocalHook('afterModifyTransformEnd', function () {
|
419
455
|
for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
|
420
456
|
args[_key13] = arguments[_key13];
|
421
457
|
}
|
458
|
+
return _this.runHooks('afterModifyTransformEnd', ...args);
|
459
|
+
}).addLocalHook('modifyTransformEndRestDelta', function () {
|
460
|
+
for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
|
461
|
+
args[_key14] = arguments[_key14];
|
462
|
+
}
|
463
|
+
return _this.runHooks('modifyTransformEndRestDelta', ...args);
|
464
|
+
}).addLocalHook('beforeRowWrap', function () {
|
465
|
+
for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
|
466
|
+
args[_key15] = arguments[_key15];
|
467
|
+
}
|
468
|
+
return _this.runHooks('beforeRowWrap', ...args);
|
469
|
+
}).addLocalHook('beforeColumnWrap', function () {
|
470
|
+
for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {
|
471
|
+
args[_key16] = arguments[_key16];
|
472
|
+
}
|
422
473
|
return _this.runHooks('beforeColumnWrap', ...args);
|
423
474
|
}).addLocalHook('insertRowRequire', totalRows => this.alter('insert_row_above', totalRows, 1, 'auto')).addLocalHook('insertColRequire', totalCols => this.alter('insert_col_start', totalCols, 1, 'auto'));
|
424
475
|
grid = {
|
@@ -1556,8 +1607,8 @@ export default function Core(rootElement, userSettings) {
|
|
1556
1607
|
* @returns {Array} Returns removed portion of columns.
|
1557
1608
|
*/
|
1558
1609
|
this.spliceCol = function (column, index, amount) {
|
1559
|
-
for (var
|
1560
|
-
elements[
|
1610
|
+
for (var _len17 = arguments.length, elements = new Array(_len17 > 3 ? _len17 - 3 : 0), _key17 = 3; _key17 < _len17; _key17++) {
|
1611
|
+
elements[_key17 - 3] = arguments[_key17];
|
1561
1612
|
}
|
1562
1613
|
return datamap.spliceCol(column, index, amount, ...elements);
|
1563
1614
|
};
|
@@ -1574,8 +1625,8 @@ export default function Core(rootElement, userSettings) {
|
|
1574
1625
|
* @returns {Array} Returns removed portion of rows.
|
1575
1626
|
*/
|
1576
1627
|
this.spliceRow = function (row, index, amount) {
|
1577
|
-
for (var
|
1578
|
-
elements[
|
1628
|
+
for (var _len18 = arguments.length, elements = new Array(_len18 > 3 ? _len18 - 3 : 0), _key18 = 3; _key18 < _len18; _key18++) {
|
1629
|
+
elements[_key18 - 3] = arguments[_key18];
|
1579
1630
|
}
|
1580
1631
|
return datamap.spliceRow(row, index, amount, ...elements);
|
1581
1632
|
};
|
@@ -2972,8 +3023,8 @@ export default function Core(rootElement, userSettings) {
|
|
2972
3023
|
*/
|
2973
3024
|
this.spliceCellsMeta = function (visualIndex) {
|
2974
3025
|
let deleteAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
2975
|
-
for (var
|
2976
|
-
cellMetaRows[
|
3026
|
+
for (var _len19 = arguments.length, cellMetaRows = new Array(_len19 > 2 ? _len19 - 2 : 0), _key19 = 2; _key19 < _len19; _key19++) {
|
3027
|
+
cellMetaRows[_key19 - 2] = arguments[_key19];
|
2977
3028
|
}
|
2978
3029
|
if (cellMetaRows.length > 0 && !Array.isArray(cellMetaRows[0])) {
|
2979
3030
|
throw new Error('The 3rd argument (cellMetaRows) has to be passed as an array of cell meta objects array.');
|
@@ -3895,6 +3946,8 @@ export default function Core(rootElement, userSettings) {
|
|
3895
3946
|
* hot.selectColumns(1, 2, -1);
|
3896
3947
|
* // Select range of columns using visual indexes and mark the second cell as highlighted.
|
3897
3948
|
* hot.selectColumns(2, 1, 1);
|
3949
|
+
* // Select range of columns using visual indexes and move the focus position somewhere in the middle of the range.
|
3950
|
+
* hot.selectColumns(2, 5, { row: 2, col: 3 });
|
3898
3951
|
* // Select range of columns using column properties.
|
3899
3952
|
* hot.selectColumns('id', 'last_name');
|
3900
3953
|
* ```
|
@@ -3904,10 +3957,11 @@ export default function Core(rootElement, userSettings) {
|
|
3904
3957
|
* @function selectColumns
|
3905
3958
|
* @param {number} startColumn The visual column index from which the selection starts.
|
3906
3959
|
* @param {number} [endColumn=startColumn] The visual column index to which the selection finishes. If `endColumn`
|
3907
|
-
*
|
3908
|
-
* @param {number} [focusPosition=0] The argument allows changing the cell/header focus
|
3909
|
-
*
|
3910
|
-
*
|
3960
|
+
* is not defined the column defined by `startColumn` will be selected.
|
3961
|
+
* @param {number | { row: number, col: number } | CellCoords} [focusPosition=0] The argument allows changing the cell/header focus
|
3962
|
+
* position. The value can take visual row index from -N to N, where negative values point to the headers and positive
|
3963
|
+
* values point to the cell range. An object with `row` and `col` properties also can be passed to change the focus
|
3964
|
+
* position horizontally.
|
3911
3965
|
* @returns {boolean} `true` if selection was successful, `false` otherwise.
|
3912
3966
|
*/
|
3913
3967
|
this.selectColumns = function (startColumn) {
|
@@ -3929,6 +3983,8 @@ export default function Core(rootElement, userSettings) {
|
|
3929
3983
|
* hot.selectRows(1, 2, -1);
|
3930
3984
|
* // Select range of rows using visual indexes and mark the second cell as highlighted.
|
3931
3985
|
* hot.selectRows(2, 1, 1);
|
3986
|
+
* // Select range of rows using visual indexes and move the focus position somewhere in the middle of the range.
|
3987
|
+
* hot.selectRows(2, 5, { row: 2, col: 3 });
|
3932
3988
|
* ```
|
3933
3989
|
*
|
3934
3990
|
* @memberof Core#
|
@@ -3936,10 +3992,11 @@ export default function Core(rootElement, userSettings) {
|
|
3936
3992
|
* @function selectRows
|
3937
3993
|
* @param {number} startRow The visual row index from which the selection starts.
|
3938
3994
|
* @param {number} [endRow=startRow] The visual row index to which the selection finishes. If `endRow`
|
3939
|
-
*
|
3940
|
-
* @param {number} [focusPosition=0] The argument allows changing the cell/header focus
|
3941
|
-
*
|
3942
|
-
*
|
3995
|
+
* is not defined the row defined by `startRow` will be selected.
|
3996
|
+
* @param {number | { row: number, col: number } | CellCoords} [focusPosition=0] The argument allows changing the cell/header focus
|
3997
|
+
* position. The value can take visual row index from -N to N, where negative values point to the headers and positive
|
3998
|
+
* values point to the cell range. An object with `row` and `col` properties also can be passed to change the focus
|
3999
|
+
* position vertically.
|
3943
4000
|
* @returns {boolean} `true` if selection was successful, `false` otherwise.
|
3944
4001
|
*/
|
3945
4002
|
this.selectRows = function (startRow) {
|
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: 06/03/2024 (built at
|
28
|
+
* Version: 0.0.0-next-200799f-20240311
|
29
|
+
* Release date: 06/03/2024 (built at 11/03/2024 12:57:54)
|
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: 06/03/2024 (built at
|
28
|
+
* Version: 0.0.0-next-200799f-20240311
|
29
|
+
* Release date: 06/03/2024 (built at 11/03/2024 12:57:54)
|
30
30
|
*/
|
31
31
|
/**
|
32
32
|
* Fix for bootstrap styles
|