handsontable 15.3.0-next-175012b-20250429 → 16.0.0-next-f486b48-20250702
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdparty/walkontable/src/core/_base.js +0 -3
- package/3rdparty/walkontable/src/core/_base.mjs +0 -3
- package/3rdparty/walkontable/src/core/clone.js +0 -1
- package/3rdparty/walkontable/src/core/clone.mjs +0 -1
- package/3rdparty/walkontable/src/core/core.js +0 -2
- package/3rdparty/walkontable/src/core/core.mjs +0 -2
- package/3rdparty/walkontable/src/facade/core.js +0 -3
- package/3rdparty/walkontable/src/facade/core.mjs +0 -3
- package/3rdparty/walkontable/src/index.js +1 -2
- package/3rdparty/walkontable/src/overlay/_base.js +1 -3
- package/3rdparty/walkontable/src/overlay/_base.mjs +1 -3
- 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/renderer/columnHeaders.js +1 -1
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
- package/3rdparty/walkontable/src/selection/border/border.js +17 -11
- package/3rdparty/walkontable/src/selection/border/border.mjs +17 -11
- package/3rdparty/walkontable/src/selection/border/utils.js +1 -1
- package/3rdparty/walkontable/src/selection/border/utils.mjs +1 -1
- package/3rdparty/walkontable/src/settings.js +3 -1
- package/3rdparty/walkontable/src/settings.mjs +3 -1
- package/3rdparty/walkontable/src/table.js +9 -6
- package/3rdparty/walkontable/src/table.mjs +9 -6
- package/3rdparty/walkontable/src/types.js +0 -1
- package/3rdparty/walkontable/src/types.mjs +0 -1
- package/3rdparty/walkontable/src/utils/column.js +1 -1
- package/3rdparty/walkontable/src/utils/column.mjs +1 -1
- package/3rdparty/walkontable/src/viewport.js +1 -1
- package/3rdparty/walkontable/src/viewport.mjs +1 -1
- package/CHANGELOG.md +23 -0
- package/README.md +10 -4
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/cellTypes/registry.js +2 -3
- package/cellTypes/registry.mjs +1 -1
- package/core/coordsMapper/rangeToRenderableMapper.js +124 -0
- package/core/coordsMapper/rangeToRenderableMapper.mjs +120 -0
- package/core/focusCatcher/focusDetector.js +2 -2
- package/core/focusCatcher/focusDetector.mjs +2 -2
- package/core/hooks/constants.js +259 -1
- package/core/hooks/constants.mjs +259 -1
- package/core.d.ts +2 -0
- package/core.js +202 -58
- package/core.mjs +202 -58
- package/dataMap/dataMap.js +16 -30
- package/dataMap/dataMap.mjs +16 -30
- package/dataMap/metaManager/metaSchema.js +58 -0
- package/dataMap/metaManager/metaSchema.mjs +58 -0
- package/dist/handsontable.css +30 -4
- package/dist/handsontable.full.css +30 -4
- package/dist/handsontable.full.js +6073 -4352
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +206 -206
- package/dist/handsontable.js +5751 -4037
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +41 -41
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.min.js +1 -1
- package/dist/languages/cs-CZ.min.js +1 -1
- package/dist/languages/de-CH.min.js +1 -1
- package/dist/languages/de-DE.min.js +1 -1
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.min.js +1 -1
- package/dist/languages/fa-IR.min.js +1 -1
- package/dist/languages/fr-FR.min.js +1 -1
- package/dist/languages/hr-HR.min.js +1 -1
- package/dist/languages/it-IT.min.js +1 -1
- package/dist/languages/ja-JP.min.js +1 -1
- package/dist/languages/ko-KR.min.js +1 -1
- package/dist/languages/lv-LV.min.js +1 -1
- package/dist/languages/nb-NO.min.js +1 -1
- package/dist/languages/nl-NL.min.js +1 -1
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.min.js +1 -1
- package/dist/languages/ru-RU.min.js +1 -1
- package/dist/languages/sr-SP.min.js +1 -1
- package/dist/languages/zh-CN.min.js +1 -1
- package/dist/languages/zh-TW.min.js +1 -1
- package/editorManager.js +5 -1
- package/editorManager.mjs +5 -1
- package/editors/autocompleteEditor/autocompleteEditor.d.ts +0 -12
- package/editors/autocompleteEditor/autocompleteEditor.js +42 -69
- package/editors/autocompleteEditor/autocompleteEditor.mjs +43 -70
- package/editors/baseEditor/baseEditor.js +1 -1
- package/editors/baseEditor/baseEditor.mjs +1 -1
- package/editors/dateEditor/dateEditor.js +2 -8
- package/editors/dateEditor/dateEditor.mjs +3 -9
- package/editors/handsontableEditor/handsontableEditor.d.ts +8 -0
- package/editors/handsontableEditor/handsontableEditor.js +173 -17
- package/editors/handsontableEditor/handsontableEditor.mjs +173 -17
- package/editors/passwordEditor/passwordEditor.js +2 -0
- package/editors/passwordEditor/passwordEditor.mjs +2 -0
- package/editors/registry.js +2 -3
- package/editors/registry.mjs +1 -1
- package/editors/textEditor/textEditor.js +2 -0
- package/editors/textEditor/textEditor.mjs +2 -0
- package/helpers/a11y.js +2 -0
- package/helpers/a11y.mjs +1 -0
- package/helpers/dom/element.d.ts +1 -0
- package/helpers/dom/element.js +26 -1
- package/helpers/dom/element.mjs +25 -1
- package/helpers/mixed.js +4 -4
- package/helpers/mixed.mjs +4 -4
- package/i18n/languages/ar-AR.js +1 -2
- package/i18n/languages/cs-CZ.js +1 -2
- package/i18n/languages/de-CH.js +1 -2
- package/i18n/languages/de-DE.js +1 -2
- package/i18n/languages/en-US.js +1 -2
- package/i18n/languages/es-MX.js +1 -2
- package/i18n/languages/fa-IR.js +1 -2
- package/i18n/languages/fr-FR.js +1 -2
- package/i18n/languages/hr-HR.js +1 -2
- package/i18n/languages/it-IT.js +1 -2
- package/i18n/languages/ja-JP.js +1 -2
- package/i18n/languages/ko-KR.js +1 -2
- package/i18n/languages/lv-LV.js +1 -2
- package/i18n/languages/nb-NO.js +1 -2
- package/i18n/languages/nl-NL.js +1 -2
- package/i18n/languages/pl-PL.js +1 -2
- package/i18n/languages/pt-BR.js +1 -2
- package/i18n/languages/ru-RU.js +1 -2
- package/i18n/languages/sr-SP.js +1 -2
- package/i18n/languages/zh-CN.js +1 -2
- package/i18n/languages/zh-TW.js +1 -2
- package/i18n/phraseFormatters/index.js +2 -2
- package/i18n/phraseFormatters/index.mjs +1 -1
- package/i18n/registry.js +3 -4
- package/i18n/registry.mjs +1 -1
- package/index.js +1 -2
- package/package.json +10 -4
- package/plugins/autoColumnSize/autoColumnSize.js +47 -0
- package/plugins/autoColumnSize/autoColumnSize.mjs +47 -0
- package/plugins/autoRowSize/autoRowSize.js +45 -0
- package/plugins/autoRowSize/autoRowSize.mjs +45 -0
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +13 -0
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +13 -0
- package/plugins/collapsibleColumns/collapsibleColumns.js +31 -0
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +31 -0
- package/plugins/columnSorting/sortService/registry.js +3 -4
- package/plugins/columnSorting/sortService/registry.mjs +1 -1
- package/plugins/columnSummary/columnSummary.js +33 -0
- package/plugins/columnSummary/columnSummary.mjs +33 -0
- package/plugins/comments/commentEditor.js +8 -2
- package/plugins/comments/commentEditor.mjs +8 -2
- package/plugins/comments/comments.js +59 -15
- package/plugins/comments/comments.mjs +60 -16
- package/plugins/comments/contextMenuItem/addEditComment.js +1 -2
- package/plugins/comments/contextMenuItem/readOnlyComment.js +1 -2
- package/plugins/comments/contextMenuItem/removeComment.js +1 -2
- package/plugins/contextMenu/contextMenu.js +1 -1
- package/plugins/contextMenu/contextMenu.mjs +1 -1
- package/plugins/contextMenu/menu/menu.js +12 -6
- package/plugins/contextMenu/menu/menu.mjs +13 -7
- package/plugins/contextMenu/predefinedItems/alignment.js +1 -2
- package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -2
- package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -2
- package/plugins/contextMenu/predefinedItems/columnRight.js +1 -2
- package/plugins/contextMenu/predefinedItems/index.js +1 -2
- package/plugins/contextMenu/predefinedItems/readOnly.js +1 -2
- package/plugins/contextMenu/predefinedItems/redo.js +1 -2
- package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -2
- package/plugins/contextMenu/predefinedItems/removeRow.js +1 -2
- package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -2
- package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -2
- package/plugins/contextMenu/predefinedItems/undo.js +1 -2
- package/plugins/copyPaste/contextMenuItem/cut.js +1 -2
- package/plugins/customBorders/contextMenuItem/bottom.js +1 -2
- package/plugins/customBorders/contextMenuItem/left.js +1 -2
- package/plugins/customBorders/contextMenuItem/noBorders.js +1 -2
- package/plugins/customBorders/contextMenuItem/right.js +1 -2
- package/plugins/customBorders/contextMenuItem/top.js +1 -2
- package/plugins/customBorders/customBorders.js +1 -2
- package/plugins/dropdownMenu/dropdownMenu.js +16 -1
- package/plugins/dropdownMenu/dropdownMenu.mjs +16 -1
- package/plugins/exportFile/exportFile.js +59 -2
- package/plugins/exportFile/exportFile.mjs +58 -0
- package/plugins/filters/component/actionBar.js +1 -2
- package/plugins/filters/component/condition.js +1 -2
- package/plugins/filters/component/value.js +1 -2
- package/plugins/filters/condition/beginsWith.js +1 -2
- package/plugins/filters/condition/between.js +1 -2
- package/plugins/filters/condition/contains.js +1 -2
- package/plugins/filters/condition/date/after.js +1 -2
- package/plugins/filters/condition/date/before.js +1 -2
- package/plugins/filters/condition/date/today.js +1 -2
- package/plugins/filters/condition/date/tomorrow.js +1 -2
- package/plugins/filters/condition/date/yesterday.js +1 -2
- package/plugins/filters/condition/empty.js +1 -2
- package/plugins/filters/condition/endsWith.js +1 -2
- package/plugins/filters/condition/equal.js +1 -2
- package/plugins/filters/condition/greaterThan.js +1 -2
- package/plugins/filters/condition/greaterThanOrEqual.js +1 -2
- package/plugins/filters/condition/lessThan.js +1 -2
- package/plugins/filters/condition/lessThanOrEqual.js +1 -2
- package/plugins/filters/condition/none.js +1 -2
- package/plugins/filters/condition/notBetween.js +1 -2
- package/plugins/filters/condition/notContains.js +1 -2
- package/plugins/filters/condition/notEmpty.js +1 -2
- package/plugins/filters/condition/notEqual.js +1 -2
- package/plugins/filters/filters.js +76 -3
- package/plugins/filters/filters.mjs +75 -1
- package/plugins/filters/logicalOperations/conjunction.js +1 -2
- package/plugins/filters/logicalOperations/disjunction.js +1 -2
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -2
- package/plugins/filters/ui/_base.js +1 -2
- package/plugins/filters/ui/multipleSelect.js +1 -7
- package/plugins/filters/ui/multipleSelect.mjs +0 -5
- package/plugins/filters/ui/select.js +1 -2
- package/plugins/formulas/engine/register.js +3 -4
- package/plugins/formulas/engine/register.mjs +1 -1
- package/plugins/formulas/formulas.js +40 -41
- package/plugins/formulas/formulas.mjs +39 -40
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -2
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -2
- package/plugins/hiddenColumns/hiddenColumns.js +64 -0
- package/plugins/hiddenColumns/hiddenColumns.mjs +64 -0
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -2
- package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -2
- package/plugins/hiddenRows/hiddenRows.js +64 -0
- package/plugins/hiddenRows/hiddenRows.mjs +64 -0
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -2
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -2
- package/plugins/manualRowMove/manualRowMove.js +1 -1
- package/plugins/manualRowMove/manualRowMove.mjs +1 -1
- package/plugins/manualRowResize/manualRowResize.js +1 -1
- package/plugins/manualRowResize/manualRowResize.mjs +1 -1
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -2
- package/plugins/mergeCells/mergeCells.js +56 -38
- package/plugins/mergeCells/mergeCells.mjs +56 -38
- package/plugins/mergeCells/utils.js +3 -4
- package/plugins/mergeCells/utils.mjs +3 -4
- package/plugins/nestedHeaders/nestedHeaders.js +37 -12
- package/plugins/nestedHeaders/nestedHeaders.mjs +37 -12
- package/plugins/nestedRows/nestedRows.js +12 -12
- package/plugins/nestedRows/nestedRows.mjs +12 -12
- package/plugins/nestedRows/ui/contextMenu.js +1 -2
- package/plugins/nestedRows/ui/headers.js +2 -3
- package/plugins/nestedRows/ui/headers.mjs +2 -3
- package/plugins/persistentState/persistentState.js +1 -1
- package/plugins/persistentState/persistentState.mjs +1 -1
- package/plugins/stretchColumns/calculator.js +3 -2
- package/plugins/stretchColumns/calculator.mjs +3 -2
- package/plugins/stretchColumns/stretchColumns.js +13 -0
- package/plugins/stretchColumns/stretchColumns.mjs +13 -0
- package/plugins/trimRows/trimRows.js +61 -0
- package/plugins/trimRows/trimRows.mjs +61 -0
- package/renderers/baseRenderer/baseRenderer.js +4 -0
- package/renderers/baseRenderer/baseRenderer.mjs +4 -0
- package/renderers/registry.js +2 -3
- package/renderers/registry.mjs +1 -1
- package/selection/mouseEventHandler.js +48 -13
- package/selection/mouseEventHandler.mjs +47 -13
- package/selection/range.js +73 -6
- package/selection/range.mjs +73 -6
- package/selection/selection.js +46 -32
- package/selection/selection.mjs +45 -30
- package/settings.d.ts +1 -0
- package/styles/handsontable.css +131 -55
- package/styles/handsontable.min.css +3 -3
- package/styles/ht-theme-horizon.css +296 -181
- package/styles/ht-theme-horizon.min.css +3 -3
- package/styles/ht-theme-main.css +314 -205
- package/styles/ht-theme-main.min.css +3 -3
- package/tableView.js +9 -20
- package/tableView.mjs +9 -20
- package/translations/indexMapper.js +9 -5
- package/translations/indexMapper.mjs +9 -5
- package/utils/paginator.js +13 -0
- package/utils/paginator.mjs +13 -0
- package/utils/staticRegister.js +24 -2
- package/utils/staticRegister.mjs +23 -2
- package/{3rdparty/walkontable/src/utils → utils}/stylesHandler.js +16 -30
- package/{3rdparty/walkontable/src/utils → utils}/stylesHandler.mjs +16 -30
- package/validators/registry.js +2 -3
- package/validators/registry.mjs +1 -1
package/dataMap/dataMap.mjs
CHANGED
@@ -382,31 +382,20 @@ class DataMap {
|
|
382
382
|
}
|
383
383
|
const dataSource = this.dataSource;
|
384
384
|
const maxCols = this.tableMeta.maxCols;
|
385
|
-
const
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
const continueProcess = this.hot.runHooks('beforeCreateCol', columnIndex, amount, source);
|
391
|
-
if (continueProcess === false) {
|
385
|
+
const numberOfSourceCols = this.hot.countSourceCols();
|
386
|
+
const numberOfVisualCols = this.hot.countCols();
|
387
|
+
const numberOfSourceRows = this.hot.countSourceRows();
|
388
|
+
const visualColumnIndex = typeof index === 'number' && index <= numberOfSourceCols ? index : numberOfVisualCols;
|
389
|
+
if (this.hot.runHooks('beforeCreateCol', visualColumnIndex, amount, source) === false) {
|
392
390
|
return {
|
393
391
|
delta: 0
|
394
392
|
};
|
395
393
|
}
|
396
|
-
|
397
|
-
|
398
|
-
physicalColumnIndex = this.hot.toPhysicalColumn(columnIndex);
|
399
|
-
}
|
400
|
-
const numberOfSourceRows = this.hot.countSourceRows();
|
401
|
-
let nrOfColumns = this.hot.countCols();
|
394
|
+
const physicalColumnIndex = visualColumnIndex < numberOfVisualCols ? this.hot.toPhysicalColumn(visualColumnIndex) : numberOfSourceCols;
|
395
|
+
const firstNewPhysicalColumnIndex = mode === 'end' ? Math.min(physicalColumnIndex + 1, numberOfSourceCols) : physicalColumnIndex;
|
402
396
|
let numberOfCreatedCols = 0;
|
403
|
-
let
|
404
|
-
|
405
|
-
currentIndex = Math.min(currentIndex + 1, countSourceCols);
|
406
|
-
}
|
407
|
-
const startPhysicalIndex = currentIndex;
|
408
|
-
while (numberOfCreatedCols < amount && nrOfColumns < maxCols) {
|
409
|
-
if (typeof columnIndex !== 'number' || columnIndex >= nrOfColumns) {
|
397
|
+
for (let col = firstNewPhysicalColumnIndex; numberOfCreatedCols < amount && numberOfVisualCols + numberOfCreatedCols < maxCols; col++) {
|
398
|
+
if (typeof visualColumnIndex !== 'number' || visualColumnIndex >= numberOfVisualCols + numberOfCreatedCols) {
|
410
399
|
if (numberOfSourceRows > 0) {
|
411
400
|
for (let row = 0; row < numberOfSourceRows; row += 1) {
|
412
401
|
if (typeof dataSource[row] === 'undefined') {
|
@@ -419,29 +408,26 @@ class DataMap {
|
|
419
408
|
}
|
420
409
|
} else {
|
421
410
|
for (let row = 0; row < numberOfSourceRows; row++) {
|
422
|
-
dataSource[row].splice(
|
411
|
+
dataSource[row].splice(col, 0, null);
|
423
412
|
}
|
424
413
|
}
|
425
414
|
numberOfCreatedCols += 1;
|
426
|
-
currentIndex += 1;
|
427
|
-
nrOfColumns += 1;
|
428
415
|
}
|
429
|
-
this.hot.columnIndexMapper.insertIndexes(columnIndex, numberOfCreatedCols);
|
430
416
|
if (numberOfCreatedCols > 0) {
|
431
417
|
if (index === undefined || index === null) {
|
432
418
|
// Creates the meta columns at the end of the columns collection without shifting the cells
|
433
419
|
// that were defined out of the range of the dataset.
|
434
420
|
this.metaManager.createColumn(null, numberOfCreatedCols);
|
435
421
|
} else if (source !== 'auto') {
|
436
|
-
this.metaManager.createColumn(
|
422
|
+
this.metaManager.createColumn(firstNewPhysicalColumnIndex, amount);
|
437
423
|
}
|
438
424
|
}
|
439
|
-
|
440
|
-
this.hot.runHooks('afterCreateCol',
|
425
|
+
this.hot.columnIndexMapper.insertIndexes(visualColumnIndex, numberOfCreatedCols, mode);
|
426
|
+
this.hot.runHooks('afterCreateCol', this.hot.toVisualColumn(firstNewPhysicalColumnIndex), numberOfCreatedCols, source);
|
441
427
|
this.refreshDuckSchema();
|
442
428
|
return {
|
443
429
|
delta: numberOfCreatedCols,
|
444
|
-
startPhysicalIndex
|
430
|
+
startPhysicalIndex: firstNewPhysicalColumnIndex
|
445
431
|
};
|
446
432
|
}
|
447
433
|
|
@@ -681,7 +667,7 @@ class DataMap {
|
|
681
667
|
}
|
682
668
|
if (this.hot.hasHook('modifyData')) {
|
683
669
|
const valueHolder = createObjectPropListener(value);
|
684
|
-
this.hot.runHooks('modifyData',
|
670
|
+
this.hot.runHooks('modifyData', row, this.propToCol(prop), valueHolder, 'get');
|
685
671
|
if (valueHolder.isTouched()) {
|
686
672
|
value = valueHolder.value;
|
687
673
|
}
|
@@ -721,7 +707,7 @@ class DataMap {
|
|
721
707
|
|
722
708
|
if (this.hot.hasHook('modifyData')) {
|
723
709
|
const valueHolder = createObjectPropListener(newValue);
|
724
|
-
this.hot.runHooks('modifyData',
|
710
|
+
this.hot.runHooks('modifyData', row, this.propToCol(prop), valueHolder, 'set');
|
725
711
|
if (valueHolder.isTouched()) {
|
726
712
|
newValue = valueHolder.value;
|
727
713
|
}
|
@@ -83,6 +83,33 @@ var _object = require("../../helpers/object");
|
|
83
83
|
* ```
|
84
84
|
* :::
|
85
85
|
*
|
86
|
+
* ::: only-for angular
|
87
|
+
* ```ts
|
88
|
+
* settings = {
|
89
|
+
* data: [
|
90
|
+
* ["A1", "B1", "C1", "D1", "E1"],
|
91
|
+
* ["A2", "B2", "C2", "D2", "E2"],
|
92
|
+
* ["A3", "B3", "C3", "D3", "E3"],
|
93
|
+
* ["A4", "B4", "C4", "D4", "E4"],
|
94
|
+
* ["A5", "B5", "C5", "D5", "E5"],
|
95
|
+
* ],
|
96
|
+
* width: 400,
|
97
|
+
* height: 300,
|
98
|
+
* colHeaders: true,
|
99
|
+
* rowHeaders: true,
|
100
|
+
* customBorders: true,
|
101
|
+
* dropdownMenu: true,
|
102
|
+
* multiColumnSorting: true,
|
103
|
+
* filters: true,
|
104
|
+
* manualRowMove: true,
|
105
|
+
* };
|
106
|
+
* ```
|
107
|
+
*
|
108
|
+
* ```html
|
109
|
+
* <hot-table [settings]="settings" />
|
110
|
+
* ```
|
111
|
+
* :::
|
112
|
+
*
|
86
113
|
* Depending on your needs, you can apply [configuration options](@/api/options.md) to different elements of your grid:
|
87
114
|
* - [The entire grid](@/guides/getting-started/configuration-options/configuration-options.md#set-grid-options)
|
88
115
|
* - [Individual columns](@/guides/getting-started/configuration-options/configuration-options.md#set-column-options)
|
@@ -4330,6 +4357,37 @@ var _default = () => {
|
|
4330
4357
|
* ```
|
4331
4358
|
*/
|
4332
4359
|
tableClassName: undefined,
|
4360
|
+
/**
|
4361
|
+
* The `textEllipsis` option configures whether the text content in the cells should be truncated with an ellipsis (three dots).
|
4362
|
+
*
|
4363
|
+
* You can set the `textEllipsis` option to one of the following:
|
4364
|
+
*
|
4365
|
+
* | Setting | Description |
|
4366
|
+
* | ----------------- | --------------------------------------------- |
|
4367
|
+
* | `false` (default) | Don't truncate text content with an ellipsis |
|
4368
|
+
* | `true` | Truncate text content with an ellipsis |
|
4369
|
+
*
|
4370
|
+
* @since 16.0.0
|
4371
|
+
* @memberof Options#
|
4372
|
+
* @type {boolean}
|
4373
|
+
* @default false
|
4374
|
+
* @category Core
|
4375
|
+
*
|
4376
|
+
* @example
|
4377
|
+
* ```js
|
4378
|
+
* columns: [
|
4379
|
+
* {
|
4380
|
+
* // truncate text content with an ellipsis
|
4381
|
+
* textEllipsis: true,
|
4382
|
+
* },
|
4383
|
+
* {
|
4384
|
+
* // don't truncate text content with an ellipsis
|
4385
|
+
* textEllipsis: false,
|
4386
|
+
* }
|
4387
|
+
* ],
|
4388
|
+
* ```
|
4389
|
+
*/
|
4390
|
+
textEllipsis: false,
|
4333
4391
|
/**
|
4334
4392
|
* The `themeName` option allows enabling a theme by that name.
|
4335
4393
|
*
|
@@ -80,6 +80,33 @@ import { isObjectEqual } from "../../helpers/object.mjs";
|
|
80
80
|
* ```
|
81
81
|
* :::
|
82
82
|
*
|
83
|
+
* ::: only-for angular
|
84
|
+
* ```ts
|
85
|
+
* settings = {
|
86
|
+
* data: [
|
87
|
+
* ["A1", "B1", "C1", "D1", "E1"],
|
88
|
+
* ["A2", "B2", "C2", "D2", "E2"],
|
89
|
+
* ["A3", "B3", "C3", "D3", "E3"],
|
90
|
+
* ["A4", "B4", "C4", "D4", "E4"],
|
91
|
+
* ["A5", "B5", "C5", "D5", "E5"],
|
92
|
+
* ],
|
93
|
+
* width: 400,
|
94
|
+
* height: 300,
|
95
|
+
* colHeaders: true,
|
96
|
+
* rowHeaders: true,
|
97
|
+
* customBorders: true,
|
98
|
+
* dropdownMenu: true,
|
99
|
+
* multiColumnSorting: true,
|
100
|
+
* filters: true,
|
101
|
+
* manualRowMove: true,
|
102
|
+
* };
|
103
|
+
* ```
|
104
|
+
*
|
105
|
+
* ```html
|
106
|
+
* <hot-table [settings]="settings" />
|
107
|
+
* ```
|
108
|
+
* :::
|
109
|
+
*
|
83
110
|
* Depending on your needs, you can apply [configuration options](@/api/options.md) to different elements of your grid:
|
84
111
|
* - [The entire grid](@/guides/getting-started/configuration-options/configuration-options.md#set-grid-options)
|
85
112
|
* - [Individual columns](@/guides/getting-started/configuration-options/configuration-options.md#set-column-options)
|
@@ -4327,6 +4354,37 @@ export default () => {
|
|
4327
4354
|
* ```
|
4328
4355
|
*/
|
4329
4356
|
tableClassName: undefined,
|
4357
|
+
/**
|
4358
|
+
* The `textEllipsis` option configures whether the text content in the cells should be truncated with an ellipsis (three dots).
|
4359
|
+
*
|
4360
|
+
* You can set the `textEllipsis` option to one of the following:
|
4361
|
+
*
|
4362
|
+
* | Setting | Description |
|
4363
|
+
* | ----------------- | --------------------------------------------- |
|
4364
|
+
* | `false` (default) | Don't truncate text content with an ellipsis |
|
4365
|
+
* | `true` | Truncate text content with an ellipsis |
|
4366
|
+
*
|
4367
|
+
* @since 16.0.0
|
4368
|
+
* @memberof Options#
|
4369
|
+
* @type {boolean}
|
4370
|
+
* @default false
|
4371
|
+
* @category Core
|
4372
|
+
*
|
4373
|
+
* @example
|
4374
|
+
* ```js
|
4375
|
+
* columns: [
|
4376
|
+
* {
|
4377
|
+
* // truncate text content with an ellipsis
|
4378
|
+
* textEllipsis: true,
|
4379
|
+
* },
|
4380
|
+
* {
|
4381
|
+
* // don't truncate text content with an ellipsis
|
4382
|
+
* textEllipsis: false,
|
4383
|
+
* }
|
4384
|
+
* ],
|
4385
|
+
* ```
|
4386
|
+
*/
|
4387
|
+
textEllipsis: false,
|
4330
4388
|
/**
|
4331
4389
|
* The `themeName` option allows enabling a theme by that name.
|
4332
4390
|
*
|
package/dist/handsontable.css
CHANGED
@@ -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:
|
30
|
-
* Release date:
|
29
|
+
* Version: 16.0.0-next-f486b48-20250702
|
30
|
+
* Release date: 09/07/2025 (built at 02/07/2025 09:19:08)
|
31
31
|
*/
|
32
32
|
/**
|
33
33
|
* Fix for bootstrap styles
|
@@ -293,6 +293,16 @@ innerBorderBottom - Property controlled by bottom overlay
|
|
293
293
|
display: none !important;
|
294
294
|
}
|
295
295
|
|
296
|
+
.handsontable .wtBorder:nth-child(1),
|
297
|
+
.handsontable .wtBorder:nth-child(3) {
|
298
|
+
z-index: 2;
|
299
|
+
}
|
300
|
+
|
301
|
+
.handsontable .wtBorder:nth-child(2),
|
302
|
+
.handsontable .wtBorder:nth-child(4) {
|
303
|
+
z-index: 1;
|
304
|
+
}
|
305
|
+
|
296
306
|
/* A layer order of the selection types */
|
297
307
|
.handsontable .wtBorder.current {
|
298
308
|
z-index: 10;
|
@@ -422,7 +432,7 @@ innerBorderBottom - Property controlled by bottom overlay
|
|
422
432
|
font-size: 10px;
|
423
433
|
}
|
424
434
|
|
425
|
-
.
|
435
|
+
.ht-root-wrapper .htFocusCatcher {
|
426
436
|
position: absolute;
|
427
437
|
z-index: -1;
|
428
438
|
opacity: 0;
|
@@ -433,6 +443,12 @@ innerBorderBottom - Property controlled by bottom overlay
|
|
433
443
|
height: 0;
|
434
444
|
}
|
435
445
|
|
446
|
+
.handsontable .htTextEllipsis {
|
447
|
+
text-overflow: ellipsis;
|
448
|
+
overflow: hidden;
|
449
|
+
white-space: nowrap;
|
450
|
+
}
|
451
|
+
|
436
452
|
/* plugins */
|
437
453
|
/* row + column resizer */
|
438
454
|
.handsontable .manualColumnResizer {
|
@@ -699,15 +715,25 @@ TextRenderer placeholder value
|
|
699
715
|
* Handsontable listbox theme
|
700
716
|
*/
|
701
717
|
.handsontable.listbox {
|
718
|
+
border: 1px solid #ccc;
|
702
719
|
margin: 0;
|
703
720
|
}
|
704
721
|
|
722
|
+
.handsontable.listbox.autocompleteEditor,
|
723
|
+
.handsontable.listbox.dropdownEditor {
|
724
|
+
border-width: 0;
|
725
|
+
}
|
726
|
+
|
705
727
|
.handsontable.listbox .ht_master table {
|
706
|
-
border: 1px solid #ccc;
|
707
728
|
border-collapse: separate;
|
708
729
|
background: white;
|
709
730
|
}
|
710
731
|
|
732
|
+
.handsontable.listbox.autocompleteEditor .ht_master table,
|
733
|
+
.handsontable.listbox.dropdownEditor .ht_master table {
|
734
|
+
border: 1px solid #ccc;
|
735
|
+
}
|
736
|
+
|
711
737
|
.handsontable.listbox th,
|
712
738
|
.handsontable.listbox tr:first-child th,
|
713
739
|
.handsontable.listbox tr:last-child th,
|
@@ -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:
|
30
|
-
* Release date:
|
29
|
+
* Version: 16.0.0-next-f486b48-20250702
|
30
|
+
* Release date: 09/07/2025 (built at 02/07/2025 09:19:08)
|
31
31
|
*/
|
32
32
|
/**
|
33
33
|
* Fix for bootstrap styles
|
@@ -293,6 +293,16 @@ innerBorderBottom - Property controlled by bottom overlay
|
|
293
293
|
display: none !important;
|
294
294
|
}
|
295
295
|
|
296
|
+
.handsontable .wtBorder:nth-child(1),
|
297
|
+
.handsontable .wtBorder:nth-child(3) {
|
298
|
+
z-index: 2;
|
299
|
+
}
|
300
|
+
|
301
|
+
.handsontable .wtBorder:nth-child(2),
|
302
|
+
.handsontable .wtBorder:nth-child(4) {
|
303
|
+
z-index: 1;
|
304
|
+
}
|
305
|
+
|
296
306
|
/* A layer order of the selection types */
|
297
307
|
.handsontable .wtBorder.current {
|
298
308
|
z-index: 10;
|
@@ -422,7 +432,7 @@ innerBorderBottom - Property controlled by bottom overlay
|
|
422
432
|
font-size: 10px;
|
423
433
|
}
|
424
434
|
|
425
|
-
.
|
435
|
+
.ht-root-wrapper .htFocusCatcher {
|
426
436
|
position: absolute;
|
427
437
|
z-index: -1;
|
428
438
|
opacity: 0;
|
@@ -433,6 +443,12 @@ innerBorderBottom - Property controlled by bottom overlay
|
|
433
443
|
height: 0;
|
434
444
|
}
|
435
445
|
|
446
|
+
.handsontable .htTextEllipsis {
|
447
|
+
text-overflow: ellipsis;
|
448
|
+
overflow: hidden;
|
449
|
+
white-space: nowrap;
|
450
|
+
}
|
451
|
+
|
436
452
|
/* plugins */
|
437
453
|
/* row + column resizer */
|
438
454
|
.handsontable .manualColumnResizer {
|
@@ -699,15 +715,25 @@ TextRenderer placeholder value
|
|
699
715
|
* Handsontable listbox theme
|
700
716
|
*/
|
701
717
|
.handsontable.listbox {
|
718
|
+
border: 1px solid #ccc;
|
702
719
|
margin: 0;
|
703
720
|
}
|
704
721
|
|
722
|
+
.handsontable.listbox.autocompleteEditor,
|
723
|
+
.handsontable.listbox.dropdownEditor {
|
724
|
+
border-width: 0;
|
725
|
+
}
|
726
|
+
|
705
727
|
.handsontable.listbox .ht_master table {
|
706
|
-
border: 1px solid #ccc;
|
707
728
|
border-collapse: separate;
|
708
729
|
background: white;
|
709
730
|
}
|
710
731
|
|
732
|
+
.handsontable.listbox.autocompleteEditor .ht_master table,
|
733
|
+
.handsontable.listbox.dropdownEditor .ht_master table {
|
734
|
+
border: 1px solid #ccc;
|
735
|
+
}
|
736
|
+
|
711
737
|
.handsontable.listbox th,
|
712
738
|
.handsontable.listbox tr:first-child th,
|
713
739
|
.handsontable.listbox tr:last-child th,
|