handsontable 16.2.0 → 17.0.0-rc1
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/calculator/calculationType/fullyVisibleColumns.js +0 -3
- package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs +0 -3
- package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.js +0 -3
- package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs +0 -3
- package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.js +0 -3
- package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs +0 -3
- package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.js +0 -3
- package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs +0 -3
- package/3rdparty/walkontable/src/calculator/calculationType/renderedAllColumns.js +0 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedAllColumns.mjs +0 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedAllRows.js +0 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedAllRows.mjs +0 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +0 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +0 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +0 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +0 -1
- package/3rdparty/walkontable/src/calculator/viewportBase.js +0 -3
- package/3rdparty/walkontable/src/calculator/viewportBase.mjs +0 -3
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +0 -2
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +0 -2
- package/3rdparty/walkontable/src/calculator/viewportRows.js +0 -2
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +0 -2
- package/3rdparty/walkontable/src/cell/coords.js +0 -1
- package/3rdparty/walkontable/src/cell/coords.mjs +0 -1
- package/3rdparty/walkontable/src/cell/range.js +0 -2
- package/3rdparty/walkontable/src/cell/range.mjs +0 -2
- package/3rdparty/walkontable/src/core/_base.js +0 -2
- package/3rdparty/walkontable/src/core/_base.mjs +0 -2
- 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 -1
- package/3rdparty/walkontable/src/core/core.mjs +0 -1
- package/3rdparty/walkontable/src/event.js +0 -1
- package/3rdparty/walkontable/src/event.mjs +0 -1
- package/3rdparty/walkontable/src/filter/column.js +0 -1
- package/3rdparty/walkontable/src/filter/column.mjs +0 -1
- package/3rdparty/walkontable/src/filter/row.js +0 -1
- package/3rdparty/walkontable/src/filter/row.mjs +0 -1
- package/3rdparty/walkontable/src/overlay/_base.js +6 -4
- package/3rdparty/walkontable/src/overlay/_base.mjs +6 -4
- package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
- package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/index.js +0 -2
- package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -2
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/top.js +2 -2
- package/3rdparty/walkontable/src/overlay/top.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +0 -1
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +0 -1
- package/3rdparty/walkontable/src/overlays.js +5 -8
- package/3rdparty/walkontable/src/overlays.mjs +5 -8
- package/3rdparty/walkontable/src/renderer/_base.js +0 -1
- package/3rdparty/walkontable/src/renderer/_base.mjs +0 -1
- package/3rdparty/walkontable/src/renderer/cells.js +0 -1
- package/3rdparty/walkontable/src/renderer/cells.mjs +0 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -2
- package/3rdparty/walkontable/src/renderer/rows.js +1 -12
- package/3rdparty/walkontable/src/renderer/rows.mjs +1 -12
- package/3rdparty/walkontable/src/renderer/table.js +0 -1
- package/3rdparty/walkontable/src/renderer/table.mjs +0 -1
- package/3rdparty/walkontable/src/scroll.js +0 -1
- package/3rdparty/walkontable/src/scroll.mjs +0 -1
- package/3rdparty/walkontable/src/selection/border/border.js +13 -26
- package/3rdparty/walkontable/src/selection/border/border.mjs +13 -26
- package/3rdparty/walkontable/src/selection/border/utils.js +0 -9
- package/3rdparty/walkontable/src/selection/border/utils.mjs +0 -9
- package/3rdparty/walkontable/src/selection/index.js +0 -2
- package/3rdparty/walkontable/src/selection/manager.js +0 -13
- package/3rdparty/walkontable/src/selection/manager.mjs +0 -13
- package/3rdparty/walkontable/src/selection/scanner.js +0 -8
- package/3rdparty/walkontable/src/selection/scanner.mjs +0 -8
- package/3rdparty/walkontable/src/settings.js +2 -2
- package/3rdparty/walkontable/src/settings.mjs +2 -2
- package/3rdparty/walkontable/src/table/master.js +1 -1
- package/3rdparty/walkontable/src/table/master.mjs +1 -1
- package/3rdparty/walkontable/src/table.js +3 -6
- package/3rdparty/walkontable/src/table.mjs +3 -6
- package/3rdparty/walkontable/src/utils/column.js +0 -1
- package/3rdparty/walkontable/src/utils/column.mjs +0 -1
- package/3rdparty/walkontable/src/utils/nodesPool.js +7 -1
- package/3rdparty/walkontable/src/utils/nodesPool.mjs +7 -1
- package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/differBasedRendererAdapter.js +100 -0
- package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/differBasedRendererAdapter.mjs +96 -0
- package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/directDomRendererAdapter.js +117 -0
- package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/directDomRendererAdapter.mjs +113 -0
- package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/index.js +19 -0
- package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/index.mjs +15 -0
- package/3rdparty/walkontable/src/utils/orderView/view.js +16 -58
- package/3rdparty/walkontable/src/utils/orderView/view.mjs +16 -58
- package/3rdparty/walkontable/src/utils/orderView/viewDiffer/index.js +0 -2
- package/3rdparty/walkontable/src/utils/orderView/viewDiffer/index.mjs +0 -2
- package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.js +0 -2
- package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.mjs +0 -2
- package/3rdparty/walkontable/src/utils/orderView/viewSize.js +0 -1
- package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +0 -1
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +0 -1
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +0 -1
- package/3rdparty/walkontable/src/utils/row.js +0 -1
- package/3rdparty/walkontable/src/utils/row.mjs +0 -1
- package/3rdparty/walkontable/src/viewport.js +0 -2
- package/3rdparty/walkontable/src/viewport.mjs +0 -2
- package/CHANGELOG.md +1 -1
- package/README.md +4 -23
- package/base.js +13 -2
- package/base.mjs +14 -3
- package/cellTypes/autocompleteType/accessors/valueSetter.js +2 -4
- package/cellTypes/autocompleteType/accessors/valueSetter.mjs +1 -3
- package/cellTypes/autocompleteType/autocompleteType.js +2 -1
- package/cellTypes/autocompleteType/autocompleteType.mjs +2 -1
- package/cellTypes/dropdownType/dropdownType.js +2 -1
- package/cellTypes/dropdownType/dropdownType.mjs +2 -1
- package/cellTypes/index.d.ts +6 -0
- package/cellTypes/index.js +12 -0
- package/cellTypes/index.mjs +7 -1
- package/cellTypes/intlDateType/index.d.ts +1 -0
- package/cellTypes/intlDateType/index.js +6 -0
- package/cellTypes/intlDateType/index.mjs +1 -0
- package/cellTypes/intlDateType/intlDateType.d.ts +23 -0
- package/cellTypes/intlDateType/intlDateType.js +16 -0
- package/cellTypes/intlDateType/intlDateType.mjs +13 -0
- package/cellTypes/intlTimeType/index.d.ts +1 -0
- package/cellTypes/intlTimeType/index.js +6 -0
- package/cellTypes/intlTimeType/index.mjs +1 -0
- package/cellTypes/intlTimeType/intlTimeType.d.ts +23 -0
- package/cellTypes/intlTimeType/intlTimeType.js +16 -0
- package/cellTypes/intlTimeType/intlTimeType.mjs +13 -0
- package/cellTypes/multiSelectType/accessors/index.js +7 -0
- package/cellTypes/multiSelectType/accessors/index.mjs +2 -0
- package/cellTypes/multiSelectType/accessors/valueGetter.js +20 -0
- package/cellTypes/multiSelectType/accessors/valueGetter.mjs +16 -0
- package/cellTypes/multiSelectType/accessors/valueSetter.js +27 -0
- package/cellTypes/multiSelectType/accessors/valueSetter.mjs +23 -0
- package/cellTypes/multiSelectType/index.js +6 -0
- package/cellTypes/multiSelectType/index.mjs +1 -0
- package/cellTypes/multiSelectType/multiSelectType.js +19 -0
- package/cellTypes/multiSelectType/multiSelectType.mjs +16 -0
- package/cellTypes/numericType/numericType.d.ts +3 -1
- package/cellTypes/numericType/numericType.js +2 -1
- package/cellTypes/numericType/numericType.mjs +3 -2
- package/cellTypes/registry.js +2 -2
- package/cellTypes/registry.mjs +2 -2
- package/common.d.ts +3 -1
- package/core/coordsMapper/index.js +0 -2
- package/core/coordsMapper/rangeToRenderableMapper.js +0 -1
- package/core/coordsMapper/rangeToRenderableMapper.mjs +0 -1
- package/core/hooks/bucket.js +0 -14
- package/core/hooks/bucket.mjs +0 -14
- package/core/hooks/constants.js +0 -28
- package/core/hooks/constants.mjs +0 -28
- package/core/hooks/index.d.ts +0 -3
- package/core/hooks/index.js +0 -2
- package/core/hooks/index.mjs +0 -2
- package/core/index.js +0 -2
- package/core.d.ts +0 -5
- package/core.js +193 -104
- package/core.mjs +194 -105
- package/dataMap/dataMap.js +6 -8
- package/dataMap/dataMap.mjs +6 -8
- package/dataMap/dataSource.js +0 -4
- package/dataMap/dataSource.mjs +0 -4
- package/dataMap/index.js +5 -0
- package/dataMap/index.mjs +3 -1
- package/dataMap/metaManager/index.js +2 -4
- package/dataMap/metaManager/index.mjs +2 -4
- package/dataMap/metaManager/lazyFactoryMap.js +0 -11
- package/dataMap/metaManager/lazyFactoryMap.mjs +0 -11
- package/dataMap/metaManager/metaLayers/cellMeta.js +0 -2
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +0 -2
- package/dataMap/metaManager/metaLayers/columnMeta.js +0 -1
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +0 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +0 -1
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +0 -1
- package/dataMap/metaManager/metaLayers/tableMeta.js +0 -1
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +0 -1
- package/dataMap/metaManager/metaSchema.js +862 -79
- package/dataMap/metaManager/metaSchema.mjs +862 -79
- package/dataMap/metaManager/mods/dynamicCellMeta.js +0 -8
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +0 -8
- package/dataMap/metaManager/mods/extendMetaProperties.js +23 -15
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +23 -15
- package/dataMap/metaManager/utils.js +2 -9
- package/dataMap/metaManager/utils.mjs +2 -9
- package/dataMap/replaceData.js +6 -3
- package/dataMap/replaceData.mjs +6 -3
- package/dataMap/sourceDataValidator.js +122 -0
- package/dataMap/sourceDataValidator.mjs +117 -0
- package/dist/handsontable.full.js +57523 -54761
- package/dist/handsontable.full.min.js +228 -213
- package/dist/handsontable.js +39604 -37938
- package/dist/handsontable.min.js +51 -51
- package/dist/languages/all.js +1 -1
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.js +1 -1
- package/dist/languages/ar-AR.min.js +1 -1
- package/dist/languages/cs-CZ.js +1 -1
- package/dist/languages/cs-CZ.min.js +1 -1
- package/dist/languages/de-CH.js +1 -1
- package/dist/languages/de-CH.min.js +1 -1
- package/dist/languages/de-DE.js +1 -1
- package/dist/languages/de-DE.min.js +1 -1
- package/dist/languages/en-US.js +1 -1
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.js +1 -1
- package/dist/languages/es-MX.min.js +1 -1
- package/dist/languages/fa-IR.js +1 -1
- package/dist/languages/fa-IR.min.js +1 -1
- package/dist/languages/fr-FR.js +1 -1
- package/dist/languages/fr-FR.min.js +1 -1
- package/dist/languages/hr-HR.js +1 -1
- package/dist/languages/hr-HR.min.js +1 -1
- package/dist/languages/it-IT.js +1 -1
- package/dist/languages/it-IT.min.js +1 -1
- package/dist/languages/ja-JP.js +1 -1
- package/dist/languages/ja-JP.min.js +1 -1
- package/dist/languages/ko-KR.js +1 -1
- package/dist/languages/ko-KR.min.js +1 -1
- package/dist/languages/lv-LV.js +1 -1
- package/dist/languages/lv-LV.min.js +1 -1
- package/dist/languages/nb-NO.js +1 -1
- package/dist/languages/nb-NO.min.js +1 -1
- package/dist/languages/nl-NL.js +1 -1
- package/dist/languages/nl-NL.min.js +1 -1
- package/dist/languages/pl-PL.js +1 -1
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.js +1 -1
- package/dist/languages/pt-BR.min.js +1 -1
- package/dist/languages/ru-RU.js +1 -1
- package/dist/languages/ru-RU.min.js +1 -1
- package/dist/languages/sr-SP.js +1 -1
- package/dist/languages/sr-SP.min.js +1 -1
- package/dist/languages/zh-CN.js +1 -1
- package/dist/languages/zh-CN.min.js +1 -1
- package/dist/languages/zh-TW.js +1 -1
- package/dist/languages/zh-TW.min.js +1 -1
- package/dist/themes/classic.js +467 -0
- package/dist/themes/classic.min.js +31 -0
- package/dist/themes/horizon.js +467 -0
- package/dist/themes/horizon.min.js +31 -0
- package/dist/themes/main.js +467 -0
- package/dist/themes/main.min.js +31 -0
- package/dist/themes/static/variables/colors/ant.js +137 -0
- package/dist/themes/static/variables/colors/ant.min.js +31 -0
- package/dist/themes/static/variables/colors/classic.js +137 -0
- package/dist/themes/static/variables/colors/classic.min.js +31 -0
- package/dist/themes/static/variables/colors/horizon.js +137 -0
- package/dist/themes/static/variables/colors/horizon.min.js +31 -0
- package/dist/themes/static/variables/colors/main.js +137 -0
- package/dist/themes/static/variables/colors/main.min.js +31 -0
- package/dist/themes/static/variables/colors/material.js +137 -0
- package/dist/themes/static/variables/colors/material.min.js +31 -0
- package/dist/themes/static/variables/colors/shadcn.js +137 -0
- package/dist/themes/static/variables/colors/shadcn.min.js +31 -0
- package/dist/themes/static/variables/density.js +163 -0
- package/dist/themes/static/variables/density.min.js +31 -0
- package/dist/themes/static/variables/helpers/iconsMap.js +240 -0
- package/dist/themes/static/variables/helpers/iconsMap.min.js +31 -0
- package/dist/themes/static/variables/icons/horizon.js +135 -0
- package/dist/themes/static/variables/icons/horizon.min.js +31 -0
- package/dist/themes/static/variables/icons/main.js +135 -0
- package/dist/themes/static/variables/icons/main.min.js +31 -0
- package/dist/themes/static/variables/sizing.js +126 -0
- package/dist/themes/static/variables/sizing.min.js +31 -0
- package/dist/themes/static/variables/tokens/classic.js +375 -0
- package/dist/themes/static/variables/tokens/classic.min.js +31 -0
- package/dist/themes/static/variables/tokens/horizon.js +375 -0
- package/dist/themes/static/variables/tokens/horizon.min.js +31 -0
- package/dist/themes/static/variables/tokens/main.js +375 -0
- package/dist/themes/static/variables/tokens/main.min.js +31 -0
- package/editorManager.js +0 -1
- package/editorManager.mjs +0 -1
- package/editors/autocompleteEditor/autocompleteEditor.js +5 -23
- package/editors/autocompleteEditor/autocompleteEditor.mjs +6 -24
- package/editors/baseEditor/baseEditor.js +18 -13
- package/editors/baseEditor/baseEditor.mjs +18 -13
- package/editors/dateEditor/dateEditor.js +9 -3
- package/editors/dateEditor/dateEditor.mjs +9 -3
- package/editors/dropdownEditor/dropdownEditor.js +0 -2
- package/editors/dropdownEditor/dropdownEditor.mjs +0 -2
- package/editors/factory.d.ts +48 -0
- package/editors/factory.js +372 -0
- package/editors/factory.mjs +368 -0
- package/editors/handsontableEditor/handsontableEditor.js +0 -1
- package/editors/handsontableEditor/handsontableEditor.mjs +0 -1
- package/editors/index.d.ts +7 -0
- package/editors/index.js +14 -0
- package/editors/index.mjs +9 -2
- package/editors/intlDateEditor/index.d.ts +1 -0
- package/editors/intlDateEditor/index.js +6 -0
- package/editors/intlDateEditor/index.mjs +1 -0
- package/editors/intlDateEditor/intlDateEditor.d.ts +7 -0
- package/editors/intlDateEditor/intlDateEditor.js +76 -0
- package/editors/intlDateEditor/intlDateEditor.mjs +72 -0
- package/editors/intlTimeEditor/index.d.ts +1 -0
- package/editors/intlTimeEditor/index.js +6 -0
- package/editors/intlTimeEditor/index.mjs +1 -0
- package/editors/intlTimeEditor/intlTimeEditor.d.ts +7 -0
- package/editors/intlTimeEditor/intlTimeEditor.js +72 -0
- package/editors/intlTimeEditor/intlTimeEditor.mjs +68 -0
- package/editors/multiSelectEditor/controllers/dropdownController.js +566 -0
- package/editors/multiSelectEditor/controllers/dropdownController.mjs +561 -0
- package/editors/multiSelectEditor/controllers/inputController.js +101 -0
- package/editors/multiSelectEditor/controllers/inputController.mjs +96 -0
- package/editors/multiSelectEditor/controllers/selectedItemsController.js +124 -0
- package/editors/multiSelectEditor/controllers/selectedItemsController.mjs +120 -0
- package/editors/multiSelectEditor/controllers/utils.js +275 -0
- package/editors/multiSelectEditor/controllers/utils.mjs +258 -0
- package/editors/multiSelectEditor/index.js +6 -0
- package/editors/multiSelectEditor/index.mjs +1 -0
- package/editors/multiSelectEditor/multiSelectEditor.js +509 -0
- package/editors/multiSelectEditor/multiSelectEditor.mjs +504 -0
- package/editors/multiSelectEditor/utils/utils.js +57 -0
- package/editors/multiSelectEditor/utils/utils.mjs +50 -0
- package/editors/passwordEditor/passwordEditor.js +0 -1
- package/editors/passwordEditor/passwordEditor.mjs +0 -1
- package/editors/registry.js +4 -4
- package/editors/registry.mjs +4 -4
- package/editors/selectEditor/selectEditor.js +1 -1
- package/editors/selectEditor/selectEditor.mjs +1 -1
- package/editors/textEditor/textEditor.js +4 -2
- package/editors/textEditor/textEditor.mjs +4 -2
- package/eventManager.js +0 -2
- package/eventManager.mjs +0 -2
- package/focusManager/grid.js +0 -1
- package/focusManager/grid.mjs +0 -1
- package/focusManager/index.js +0 -2
- package/focusManager/scopeManager.js +5 -8
- package/focusManager/scopeManager.mjs +5 -8
- package/focusManager/utils/focusDetector.js +5 -11
- package/focusManager/utils/focusDetector.mjs +5 -11
- package/helpers/a11y.js +2 -0
- package/helpers/a11y.mjs +1 -0
- package/helpers/array.js +26 -15
- package/helpers/array.mjs +25 -15
- package/helpers/console.js +33 -0
- package/helpers/console.mjs +32 -0
- package/helpers/constants.js +4 -0
- package/helpers/constants.mjs +1 -0
- package/helpers/data.js +0 -4
- package/helpers/data.mjs +0 -4
- package/helpers/dateTime.d.ts +5 -0
- package/helpers/dateTime.js +110 -0
- package/helpers/dateTime.mjs +102 -0
- package/helpers/dom/element.d.ts +1 -1
- package/helpers/dom/element.js +23 -20
- package/helpers/dom/element.mjs +23 -20
- package/helpers/errors.d.ts +1 -0
- package/helpers/errors.js +21 -0
- package/helpers/errors.mjs +17 -0
- package/helpers/index.d.ts +2 -1
- package/helpers/mixed.js +10 -7
- package/helpers/mixed.mjs +10 -6
- package/helpers/moves.js +0 -4
- package/helpers/moves.mjs +0 -4
- package/helpers/number.js +0 -9
- package/helpers/number.mjs +0 -9
- package/helpers/object.js +47 -6
- package/helpers/object.mjs +45 -6
- package/helpers/string.js +15 -2
- package/helpers/string.mjs +14 -2
- package/helpers/templateLiteralTag.js +0 -3
- package/helpers/templateLiteralTag.mjs +0 -3
- package/helpers/unicode.js +0 -1
- package/helpers/unicode.mjs +0 -1
- package/helpers/wrappers/jquery.js +2 -2
- package/helpers/wrappers/jquery.mjs +2 -2
- package/i18n/index.js +0 -2
- package/i18n/phraseFormatters/substituteVariables.js +0 -2
- package/i18n/phraseFormatters/substituteVariables.mjs +0 -2
- package/i18n/registry.js +0 -2
- package/i18n/registry.mjs +0 -2
- package/index.d.ts +85 -9
- package/index.js +18 -3
- package/index.mjs +18 -3
- package/languages/all.js +1 -1
- package/languages/ar-AR.js +1 -1
- package/languages/cs-CZ.js +1 -1
- package/languages/de-CH.js +1 -1
- package/languages/de-DE.js +1 -1
- package/languages/en-US.js +1 -1
- package/languages/es-MX.js +1 -1
- package/languages/fa-IR.js +1 -1
- package/languages/fr-FR.js +1 -1
- package/languages/hr-HR.js +1 -1
- package/languages/index.js +1 -1
- package/languages/it-IT.js +1 -1
- package/languages/ja-JP.js +1 -1
- package/languages/ko-KR.js +1 -1
- package/languages/lv-LV.js +1 -1
- package/languages/nb-NO.js +1 -1
- package/languages/nl-NL.js +1 -1
- package/languages/pl-PL.js +1 -1
- package/languages/pt-BR.js +1 -1
- package/languages/ru-RU.js +1 -1
- package/languages/sr-SP.js +1 -1
- package/languages/zh-CN.js +1 -1
- package/languages/zh-TW.js +1 -1
- package/mixins/hooksRefRegisterer.js +0 -1
- package/mixins/hooksRefRegisterer.mjs +0 -1
- package/mixins/localHooks.js +0 -1
- package/mixins/localHooks.mjs +0 -1
- package/package.json +184 -78
- package/plugins/autoColumnSize/autoColumnSize.js +4 -7
- package/plugins/autoColumnSize/autoColumnSize.mjs +4 -7
- package/plugins/autoRowSize/autoRowSize.js +8 -9
- package/plugins/autoRowSize/autoRowSize.mjs +8 -9
- package/plugins/autofill/autofill.js +7 -8
- package/plugins/autofill/autofill.mjs +7 -8
- package/plugins/base/base.js +3 -7
- package/plugins/base/base.mjs +3 -7
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +0 -1
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +0 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +2 -3
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +2 -3
- package/plugins/columnSorting/columnSorting.js +2 -64
- package/plugins/columnSorting/columnSorting.mjs +2 -64
- package/plugins/columnSorting/columnStatesManager.js +0 -3
- package/plugins/columnSorting/columnStatesManager.mjs +0 -3
- package/plugins/columnSorting/domHelpers.js +0 -1
- package/plugins/columnSorting/domHelpers.mjs +0 -1
- package/plugins/columnSorting/sortFunction/intlDate.js +17 -0
- package/plugins/columnSorting/sortFunction/intlDate.mjs +13 -0
- package/plugins/columnSorting/sortFunction/intlTime.js +17 -0
- package/plugins/columnSorting/sortFunction/intlTime.mjs +13 -0
- package/plugins/columnSorting/sortService/registry.js +5 -1
- package/plugins/columnSorting/sortService/registry.mjs +4 -0
- package/plugins/columnSorting/utils.js +107 -10
- package/plugins/columnSorting/utils.mjs +105 -10
- package/plugins/columnSummary/columnSummary.js +2 -2
- package/plugins/columnSummary/columnSummary.mjs +2 -2
- package/plugins/columnSummary/endpoints.js +0 -5
- package/plugins/columnSummary/endpoints.mjs +0 -5
- package/plugins/comments/commentEditor.js +0 -1
- package/plugins/comments/commentEditor.mjs +0 -1
- package/plugins/comments/comments.js +5 -6
- package/plugins/comments/comments.mjs +5 -6
- package/plugins/comments/displaySwitch.js +0 -1
- package/plugins/comments/displaySwitch.mjs +0 -1
- package/plugins/comments/editorResizeObserver.js +0 -3
- package/plugins/comments/editorResizeObserver.mjs +0 -3
- package/plugins/contextMenu/commandExecutor.js +2 -4
- package/plugins/contextMenu/commandExecutor.mjs +2 -4
- package/plugins/contextMenu/contextMenu.js +0 -1
- package/plugins/contextMenu/contextMenu.mjs +0 -1
- package/plugins/contextMenu/itemsFactory.js +0 -2
- package/plugins/contextMenu/itemsFactory.mjs +0 -2
- package/plugins/contextMenu/menu/cursor.js +0 -1
- package/plugins/contextMenu/menu/cursor.mjs +0 -1
- package/plugins/contextMenu/menu/index.js +0 -2
- package/plugins/contextMenu/menu/menu.js +3 -15
- package/plugins/contextMenu/menu/menu.mjs +3 -15
- package/plugins/contextMenu/menu/menuItemRenderer.js +4 -2
- package/plugins/contextMenu/menu/menuItemRenderer.mjs +4 -2
- package/plugins/contextMenu/menu/positioner.js +0 -1
- package/plugins/contextMenu/menu/positioner.mjs +0 -1
- package/plugins/contextMenu/menu/shortcuts.js +0 -3
- package/plugins/contextMenu/menu/shortcuts.mjs +0 -3
- package/plugins/contextMenu/menu/utils.js +0 -1
- package/plugins/contextMenu/menu/utils.mjs +0 -1
- package/plugins/copyPaste/copyPaste.js +53 -31
- package/plugins/copyPaste/copyPaste.mjs +54 -32
- package/plugins/copyPaste/copyableRanges.js +0 -2
- package/plugins/copyPaste/copyableRanges.mjs +0 -2
- package/plugins/customBorders/customBorders.js +3 -6
- package/plugins/customBorders/customBorders.mjs +3 -6
- package/plugins/customBorders/utils.js +0 -2
- package/plugins/customBorders/utils.mjs +0 -2
- package/plugins/dialog/dialog.js +3 -6
- package/plugins/dialog/dialog.mjs +3 -6
- package/plugins/dialog/templates/base.js +2 -2
- package/plugins/dialog/templates/base.mjs +2 -2
- package/plugins/dialog/templates/confirm.js +2 -5
- package/plugins/dialog/templates/confirm.mjs +2 -5
- package/plugins/dialog/ui.js +13 -8
- package/plugins/dialog/ui.mjs +13 -8
- package/plugins/dragToScroll/dragToScroll.js +0 -1
- package/plugins/dragToScroll/dragToScroll.mjs +0 -1
- package/plugins/dropdownMenu/dropdownMenu.js +0 -1
- package/plugins/dropdownMenu/dropdownMenu.mjs +0 -1
- package/plugins/emptyDataState/emptyDataState.js +0 -6
- package/plugins/emptyDataState/emptyDataState.mjs +0 -6
- package/plugins/emptyDataState/ui.js +0 -4
- package/plugins/emptyDataState/ui.mjs +0 -4
- package/plugins/exportFile/dataProvider.js +0 -2
- package/plugins/exportFile/dataProvider.mjs +0 -2
- package/plugins/exportFile/exportFile.js +3 -3
- package/plugins/exportFile/exportFile.mjs +3 -3
- package/plugins/exportFile/types/_base.js +0 -1
- package/plugins/exportFile/types/_base.mjs +0 -1
- package/plugins/exportFile/types/csv.js +0 -3
- package/plugins/exportFile/types/csv.mjs +0 -3
- package/plugins/filters/component/_base.js +3 -3
- package/plugins/filters/component/_base.mjs +3 -3
- package/plugins/filters/component/actionBar.js +0 -2
- package/plugins/filters/component/actionBar.mjs +0 -2
- package/plugins/filters/component/condition.js +2 -4
- package/plugins/filters/component/condition.mjs +2 -4
- package/plugins/filters/component/operators.js +2 -5
- package/plugins/filters/component/operators.mjs +2 -5
- package/plugins/filters/component/value.js +4 -12
- package/plugins/filters/component/value.mjs +4 -12
- package/plugins/filters/condition/intlDate/after.js +31 -0
- package/plugins/filters/condition/intlDate/after.mjs +26 -0
- package/plugins/filters/condition/intlDate/before.js +31 -0
- package/plugins/filters/condition/intlDate/before.mjs +26 -0
- package/plugins/filters/condition/intlDate/between.js +30 -0
- package/plugins/filters/condition/intlDate/between.mjs +25 -0
- package/plugins/filters/condition/intlDate/today.js +27 -0
- package/plugins/filters/condition/intlDate/today.mjs +22 -0
- package/plugins/filters/condition/intlDate/tomorrow.js +28 -0
- package/plugins/filters/condition/intlDate/tomorrow.mjs +23 -0
- package/plugins/filters/condition/intlDate/yesterday.js +28 -0
- package/plugins/filters/condition/intlDate/yesterday.mjs +23 -0
- package/plugins/filters/condition/intlTime/after.js +31 -0
- package/plugins/filters/condition/intlTime/after.mjs +26 -0
- package/plugins/filters/condition/intlTime/before.js +31 -0
- package/plugins/filters/condition/intlTime/before.mjs +26 -0
- package/plugins/filters/condition/intlTime/between.js +30 -0
- package/plugins/filters/condition/intlTime/between.mjs +25 -0
- package/plugins/filters/conditionCollection.js +3 -9
- package/plugins/filters/conditionCollection.mjs +3 -9
- package/plugins/filters/conditionRegisterer.js +3 -3
- package/plugins/filters/conditionRegisterer.mjs +3 -3
- package/plugins/filters/conditionUpdateObserver.js +3 -7
- package/plugins/filters/conditionUpdateObserver.mjs +3 -7
- package/plugins/filters/constants.js +14 -2
- package/plugins/filters/constants.mjs +14 -2
- package/plugins/filters/dataFilter.js +1 -3
- package/plugins/filters/dataFilter.mjs +1 -3
- package/plugins/filters/filters.js +36 -44
- package/plugins/filters/filters.mjs +36 -44
- package/plugins/filters/logicalOperationRegisterer.js +2 -2
- package/plugins/filters/logicalOperationRegisterer.mjs +2 -2
- package/plugins/filters/logicalOperations/conjunction.js +0 -2
- package/plugins/filters/logicalOperations/conjunction.mjs +0 -2
- package/plugins/filters/logicalOperations/disjunction.js +0 -2
- package/plugins/filters/logicalOperations/disjunction.mjs +0 -2
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -4
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -4
- package/plugins/filters/menu/focusController.js +0 -2
- package/plugins/filters/menu/focusController.mjs +0 -2
- package/plugins/filters/ui/_base.js +0 -1
- package/plugins/filters/ui/_base.mjs +0 -1
- package/plugins/filters/ui/input.js +1 -1
- package/plugins/filters/ui/input.mjs +1 -1
- package/plugins/filters/ui/link.js +0 -1
- package/plugins/filters/ui/link.mjs +0 -1
- package/plugins/filters/ui/multipleSelect.js +0 -6
- package/plugins/filters/ui/multipleSelect.mjs +0 -6
- package/plugins/filters/ui/radioInput.js +0 -1
- package/plugins/filters/ui/radioInput.mjs +0 -1
- package/plugins/filters/ui/select.js +0 -1
- package/plugins/filters/ui/select.mjs +0 -1
- package/plugins/filters/utils.js +0 -11
- package/plugins/filters/utils.mjs +0 -11
- package/plugins/formulas/engine/register.js +0 -4
- package/plugins/formulas/engine/register.mjs +0 -4
- package/plugins/formulas/engine/settings.js +0 -3
- package/plugins/formulas/engine/settings.mjs +0 -3
- package/plugins/formulas/formulas.js +0 -14
- package/plugins/formulas/formulas.mjs +0 -14
- package/plugins/formulas/indexSyncer/axisSyncer.js +0 -5
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +0 -5
- package/plugins/formulas/indexSyncer/index.js +0 -1
- package/plugins/formulas/indexSyncer/index.mjs +0 -1
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +0 -1
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +0 -1
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +0 -3
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +0 -3
- package/plugins/hiddenColumns/hiddenColumns.js +1 -13
- package/plugins/hiddenColumns/hiddenColumns.mjs +1 -13
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +0 -1
- package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +0 -1
- package/plugins/hiddenRows/contextMenuItem/showRow.js +0 -3
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +0 -3
- package/plugins/hiddenRows/hiddenRows.js +1 -13
- package/plugins/hiddenRows/hiddenRows.mjs +1 -13
- package/plugins/index.d.ts +0 -3
- package/plugins/index.js +0 -3
- package/plugins/index.mjs +1 -3
- package/plugins/loading/loading.js +0 -1
- package/plugins/loading/loading.mjs +0 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +0 -4
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +0 -4
- package/plugins/manualColumnMove/manualColumnMove.js +2 -36
- package/plugins/manualColumnMove/manualColumnMove.mjs +2 -36
- package/plugins/manualColumnMove/ui/_base.js +0 -1
- package/plugins/manualColumnMove/ui/_base.mjs +0 -1
- package/plugins/manualColumnResize/manualColumnResize.js +4 -39
- package/plugins/manualColumnResize/manualColumnResize.mjs +4 -39
- package/plugins/manualRowMove/manualRowMove.js +2 -37
- package/plugins/manualRowMove/manualRowMove.mjs +2 -37
- package/plugins/manualRowMove/ui/_base.js +0 -1
- package/plugins/manualRowMove/ui/_base.mjs +0 -1
- package/plugins/manualRowResize/manualRowResize.js +3 -38
- package/plugins/manualRowResize/manualRowResize.mjs +3 -38
- package/plugins/mergeCells/calculations/autofill.js +0 -3
- package/plugins/mergeCells/calculations/autofill.mjs +0 -3
- package/plugins/mergeCells/calculations/selection.js +0 -2
- package/plugins/mergeCells/calculations/selection.mjs +0 -2
- package/plugins/mergeCells/cellCoords.js +0 -1
- package/plugins/mergeCells/cellCoords.mjs +0 -1
- package/plugins/mergeCells/cellsCollection.js +0 -14
- package/plugins/mergeCells/cellsCollection.mjs +0 -14
- package/plugins/mergeCells/focusOrder.js +0 -4
- package/plugins/mergeCells/focusOrder.mjs +0 -4
- package/plugins/mergeCells/mergeCells.js +0 -14
- package/plugins/mergeCells/mergeCells.mjs +0 -14
- package/plugins/multiColumnSorting/domHelpers.js +0 -3
- package/plugins/multiColumnSorting/domHelpers.mjs +0 -3
- package/plugins/multiColumnSorting/multiColumnSorting.js +0 -1
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +0 -1
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +0 -2
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +0 -2
- package/plugins/nestedHeaders/nestedHeaders.js +0 -4
- package/plugins/nestedHeaders/nestedHeaders.mjs +0 -4
- package/plugins/nestedHeaders/stateManager/headersTree.js +0 -1
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +0 -1
- package/plugins/nestedHeaders/stateManager/index.js +0 -4
- package/plugins/nestedHeaders/stateManager/index.mjs +0 -4
- package/plugins/nestedHeaders/stateManager/matrixGenerator.js +0 -1
- package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +0 -1
- package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +0 -7
- package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +0 -7
- package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +0 -7
- package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +0 -7
- package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.js +3 -4
- package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs +3 -4
- package/plugins/nestedHeaders/stateManager/nodeModifiers/index.js +2 -2
- package/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs +2 -2
- package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.js +3 -3
- package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs +3 -3
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +0 -1
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +0 -1
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +3 -4
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +3 -4
- package/plugins/nestedHeaders/utils/ghostTable.js +1 -2
- package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -2
- package/plugins/nestedRows/data/dataManager.js +0 -2
- package/plugins/nestedRows/data/dataManager.mjs +0 -2
- package/plugins/nestedRows/nestedRows.js +0 -12
- package/plugins/nestedRows/nestedRows.mjs +0 -12
- package/plugins/nestedRows/ui/_base.js +0 -1
- package/plugins/nestedRows/ui/_base.mjs +0 -1
- package/plugins/nestedRows/ui/collapsing.js +0 -1
- package/plugins/nestedRows/ui/collapsing.mjs +0 -1
- package/plugins/nestedRows/ui/contextMenu.js +0 -1
- package/plugins/nestedRows/ui/contextMenu.mjs +0 -1
- package/plugins/nestedRows/ui/headers.js +2 -4
- package/plugins/nestedRows/ui/headers.mjs +2 -4
- package/plugins/nestedRows/utils/rowMoveController.js +0 -6
- package/plugins/nestedRows/utils/rowMoveController.mjs +0 -6
- package/plugins/pagination/pagination.js +1 -7
- package/plugins/pagination/pagination.mjs +1 -7
- package/plugins/pagination/strategies/autoPageSize.js +0 -2
- package/plugins/pagination/strategies/autoPageSize.mjs +0 -2
- package/plugins/pagination/strategies/fixedPageSize.js +0 -1
- package/plugins/pagination/strategies/fixedPageSize.mjs +0 -1
- package/plugins/pagination/strategies/index.js +2 -2
- package/plugins/pagination/strategies/index.mjs +2 -2
- package/plugins/pagination/ui.js +0 -3
- package/plugins/pagination/ui.mjs +0 -3
- package/plugins/registry.js +2 -2
- package/plugins/registry.mjs +2 -2
- package/plugins/search/search.js +0 -2
- package/plugins/search/search.mjs +0 -2
- package/plugins/stretchColumns/calculator.js +1 -6
- package/plugins/stretchColumns/calculator.mjs +1 -6
- package/plugins/stretchColumns/strategies/_base.js +0 -1
- package/plugins/stretchColumns/strategies/_base.mjs +0 -1
- package/plugins/stretchColumns/strategies/all.js +0 -4
- package/plugins/stretchColumns/strategies/all.mjs +0 -4
- package/plugins/stretchColumns/strategies/last.js +0 -3
- package/plugins/stretchColumns/strategies/last.mjs +0 -3
- package/plugins/stretchColumns/stretchColumns.js +0 -3
- package/plugins/stretchColumns/stretchColumns.mjs +0 -3
- package/plugins/touchScroll/touchScroll.js +0 -2
- package/plugins/touchScroll/touchScroll.mjs +0 -2
- package/plugins/trimRows/trimRows.js +1 -12
- package/plugins/trimRows/trimRows.mjs +1 -12
- package/plugins/undoRedo/actions/_base.js +3 -3
- package/plugins/undoRedo/actions/_base.mjs +3 -3
- package/plugins/undoRedo/actions/cellAlignment.js +0 -1
- package/plugins/undoRedo/actions/cellAlignment.mjs +0 -1
- package/plugins/undoRedo/actions/columnMove.js +0 -3
- package/plugins/undoRedo/actions/columnMove.mjs +0 -3
- package/plugins/undoRedo/actions/columnSort.js +0 -1
- package/plugins/undoRedo/actions/columnSort.mjs +0 -1
- package/plugins/undoRedo/actions/createColumn.js +0 -1
- package/plugins/undoRedo/actions/createColumn.mjs +0 -1
- package/plugins/undoRedo/actions/createRow.js +0 -1
- package/plugins/undoRedo/actions/createRow.mjs +0 -1
- package/plugins/undoRedo/actions/dataChange.js +0 -6
- package/plugins/undoRedo/actions/dataChange.mjs +0 -6
- package/plugins/undoRedo/actions/filters.js +0 -3
- package/plugins/undoRedo/actions/filters.mjs +0 -3
- package/plugins/undoRedo/actions/mergeCells.js +0 -1
- package/plugins/undoRedo/actions/mergeCells.mjs +0 -1
- package/plugins/undoRedo/actions/removeColumn.js +0 -4
- package/plugins/undoRedo/actions/removeColumn.mjs +0 -4
- package/plugins/undoRedo/actions/removeRow.js +0 -4
- package/plugins/undoRedo/actions/removeRow.mjs +0 -4
- package/plugins/undoRedo/actions/rowMove.js +0 -3
- package/plugins/undoRedo/actions/rowMove.mjs +0 -3
- package/plugins/undoRedo/actions/unmergeCells.js +0 -1
- package/plugins/undoRedo/actions/unmergeCells.mjs +0 -1
- package/plugins/undoRedo/undoRedo.js +0 -87
- package/plugins/undoRedo/undoRedo.mjs +0 -87
- package/plugins/undoRedo/utils.js +1 -13
- package/plugins/undoRedo/utils.mjs +1 -13
- package/renderers/baseRenderer/baseRenderer.js +3 -1
- package/renderers/baseRenderer/baseRenderer.mjs +3 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -7
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +2 -7
- package/renderers/dateRenderer/dateRenderer.js +6 -0
- package/renderers/dateRenderer/dateRenderer.mjs +6 -0
- package/renderers/factory.d.ts +20 -0
- package/renderers/factory.js +51 -0
- package/renderers/factory.mjs +47 -0
- package/renderers/htmlRenderer/htmlRenderer.js +1 -4
- package/renderers/htmlRenderer/htmlRenderer.mjs +1 -4
- package/renderers/index.d.ts +7 -0
- package/renderers/index.js +10 -0
- package/renderers/index.mjs +7 -2
- package/renderers/intlDateRenderer/index.d.ts +1 -0
- package/renderers/intlDateRenderer/index.js +7 -0
- package/renderers/intlDateRenderer/index.mjs +1 -0
- package/renderers/intlDateRenderer/intlDateRenderer.d.ts +6 -0
- package/renderers/intlDateRenderer/intlDateRenderer.js +58 -0
- package/renderers/intlDateRenderer/intlDateRenderer.mjs +53 -0
- package/renderers/intlTimeRenderer/index.d.ts +1 -0
- package/renderers/intlTimeRenderer/index.js +7 -0
- package/renderers/intlTimeRenderer/index.mjs +1 -0
- package/renderers/intlTimeRenderer/intlTimeRenderer.d.ts +6 -0
- package/renderers/intlTimeRenderer/intlTimeRenderer.js +57 -0
- package/renderers/intlTimeRenderer/intlTimeRenderer.mjs +52 -0
- package/renderers/multiSelectRenderer/index.js +7 -0
- package/renderers/multiSelectRenderer/index.mjs +1 -0
- package/renderers/multiSelectRenderer/multiSelectRenderer.js +60 -0
- package/renderers/multiSelectRenderer/multiSelectRenderer.mjs +56 -0
- package/renderers/multiSelectRenderer/utils/utils.js +270 -0
- package/renderers/multiSelectRenderer/utils/utils.mjs +258 -0
- package/renderers/numericRenderer/index.d.ts +1 -1
- package/renderers/numericRenderer/index.js +1 -1
- package/renderers/numericRenderer/index.mjs +1 -1
- package/renderers/numericRenderer/numericRenderer.d.ts +1 -0
- package/renderers/numericRenderer/numericRenderer.js +19 -22
- package/renderers/numericRenderer/numericRenderer.mjs +18 -20
- package/renderers/numericRenderer/utils.js +64 -0
- package/renderers/numericRenderer/utils.mjs +57 -0
- package/renderers/passwordRenderer/passwordRenderer.js +22 -12
- package/renderers/passwordRenderer/passwordRenderer.mjs +21 -12
- package/renderers/registry.d.ts +1 -1
- package/renderers/registry.js +51 -3
- package/renderers/registry.mjs +51 -3
- package/renderers/textRenderer/textRenderer.js +0 -2
- package/renderers/textRenderer/textRenderer.mjs +0 -2
- package/renderers/timeRenderer/timeRenderer.js +6 -0
- package/renderers/timeRenderer/timeRenderer.mjs +6 -0
- package/selection/highlight/highlight.js +0 -2
- package/selection/highlight/highlight.mjs +0 -2
- package/selection/highlight/visualSelection.js +0 -1
- package/selection/highlight/visualSelection.mjs +0 -1
- package/selection/index.js +0 -2
- package/selection/mouseEventHandler.js +0 -2
- package/selection/mouseEventHandler.mjs +0 -2
- package/selection/range.js +0 -7
- package/selection/range.mjs +0 -7
- package/selection/selection.js +6 -15
- package/selection/selection.mjs +6 -15
- package/selection/transformation/_base.js +6 -6
- package/selection/transformation/_base.mjs +6 -6
- package/selection/transformation/focus.js +2 -2
- package/selection/transformation/focus.mjs +2 -2
- package/selection/utils.js +3 -13
- package/selection/utils.mjs +3 -13
- package/settings.d.ts +9 -3
- package/shortcutContexts/commands/editor/open.js +0 -2
- package/shortcutContexts/commands/editor/open.mjs +0 -2
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -2
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -2
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -2
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -2
- package/shortcutContexts/grid.js +11 -12
- package/shortcutContexts/grid.mjs +11 -12
- package/shortcutContexts/index.js +0 -2
- package/shortcuts/context.js +4 -8
- package/shortcuts/context.mjs +4 -8
- package/shortcuts/keyObserver.js +0 -7
- package/shortcuts/keyObserver.mjs +0 -7
- package/shortcuts/manager.js +2 -2
- package/shortcuts/manager.mjs +2 -2
- package/shortcuts/recorder.js +0 -1
- package/shortcuts/recorder.mjs +0 -1
- package/shortcuts/utils.js +0 -2
- package/shortcuts/utils.mjs +0 -2
- package/styles/handsontable.css +302 -83
- package/styles/handsontable.min.css +3 -3
- package/styles/handsontableStyles.js +6 -0
- package/styles/handsontableStyles.mjs +4 -0
- package/styles/ht-icons-horizon.css +55 -61
- package/styles/ht-icons-horizon.min.css +3 -3
- package/styles/ht-icons-main.css +55 -61
- package/styles/ht-icons-main.min.css +3 -3
- package/styles/ht-theme-classic-no-icons.css +302 -374
- package/styles/ht-theme-classic-no-icons.min.css +3 -3
- package/styles/ht-theme-classic.css +383 -408
- package/styles/ht-theme-classic.min.css +3 -3
- package/styles/ht-theme-horizon-no-icons.css +300 -378
- package/styles/ht-theme-horizon-no-icons.min.css +3 -3
- package/styles/ht-theme-horizon.css +381 -412
- package/styles/ht-theme-horizon.min.css +3 -3
- package/styles/ht-theme-main-no-icons.css +302 -371
- package/styles/ht-theme-main-no-icons.min.css +3 -3
- package/styles/ht-theme-main.css +383 -405
- package/styles/ht-theme-main.min.css +3 -3
- package/tableView.js +16 -4
- package/tableView.mjs +16 -4
- package/themes/engine/builder.js +251 -0
- package/themes/engine/builder.mjs +246 -0
- package/themes/engine/index.js +7 -0
- package/themes/engine/index.mjs +2 -0
- package/themes/engine/manager.js +188 -0
- package/themes/engine/manager.mjs +183 -0
- package/themes/engine/utils/cssVariables.js +132 -0
- package/themes/engine/utils/cssVariables.mjs +128 -0
- package/themes/engine/utils/validation.js +348 -0
- package/themes/engine/utils/validation.mjs +342 -0
- package/themes/index.js +15 -0
- package/themes/index.mjs +2 -0
- package/themes/registry.js +131 -0
- package/themes/registry.mjs +122 -0
- package/themes/static/variables/colors/ant.d.ts +4 -0
- package/themes/static/variables/colors/ant.js +32 -0
- package/themes/static/variables/colors/ant.mjs +30 -0
- package/themes/static/variables/colors/classic.d.ts +4 -0
- package/themes/static/variables/colors/classic.js +32 -0
- package/themes/static/variables/colors/classic.mjs +30 -0
- package/themes/static/variables/colors/horizon.d.ts +4 -0
- package/themes/static/variables/colors/horizon.js +32 -0
- package/themes/static/variables/colors/horizon.mjs +30 -0
- package/themes/static/variables/colors/main.d.ts +4 -0
- package/themes/static/variables/colors/main.js +32 -0
- package/themes/static/variables/colors/main.mjs +30 -0
- package/themes/static/variables/colors/material.d.ts +4 -0
- package/themes/static/variables/colors/material.js +32 -0
- package/themes/static/variables/colors/material.mjs +30 -0
- package/themes/static/variables/colors/shadcn.d.ts +4 -0
- package/themes/static/variables/colors/shadcn.js +32 -0
- package/themes/static/variables/colors/shadcn.mjs +30 -0
- package/themes/static/variables/density.d.ts +4 -0
- package/themes/static/variables/density.js +59 -0
- package/themes/static/variables/density.mjs +57 -0
- package/themes/static/variables/helpers/iconsMap.d.ts +3 -0
- package/themes/static/variables/helpers/iconsMap.js +139 -0
- package/themes/static/variables/helpers/iconsMap.mjs +135 -0
- package/themes/static/variables/icons/horizon.d.ts +4 -0
- package/themes/static/variables/icons/horizon.js +29 -0
- package/themes/static/variables/icons/horizon.mjs +28 -0
- package/themes/static/variables/icons/main.d.ts +4 -0
- package/themes/static/variables/icons/main.js +29 -0
- package/themes/static/variables/icons/main.mjs +28 -0
- package/themes/static/variables/sizing.d.ts +4 -0
- package/themes/static/variables/sizing.js +22 -0
- package/themes/static/variables/sizing.mjs +20 -0
- package/themes/static/variables/tokens/classic.d.ts +4 -0
- package/themes/static/variables/tokens/classic.js +270 -0
- package/themes/static/variables/tokens/classic.mjs +268 -0
- package/themes/static/variables/tokens/horizon.d.ts +4 -0
- package/themes/static/variables/tokens/horizon.js +270 -0
- package/themes/static/variables/tokens/horizon.mjs +268 -0
- package/themes/static/variables/tokens/main.d.ts +4 -0
- package/themes/static/variables/tokens/main.js +270 -0
- package/themes/static/variables/tokens/main.mjs +268 -0
- package/themes/theme/classic.d.ts +3 -0
- package/themes/theme/classic.js +14 -0
- package/themes/theme/classic.mjs +11 -0
- package/themes/theme/horizon.d.ts +3 -0
- package/themes/theme/horizon.js +14 -0
- package/themes/theme/horizon.mjs +11 -0
- package/themes/theme/index.d.ts +5 -0
- package/themes/theme/index.js +9 -0
- package/themes/theme/index.mjs +3 -0
- package/themes/theme/main.d.ts +3 -0
- package/themes/theme/main.js +14 -0
- package/themes/theme/main.mjs +11 -0
- package/themes.d.ts +491 -0
- package/translations/changesObservable/observable.js +0 -10
- package/translations/changesObservable/observable.mjs +0 -10
- package/translations/changesObservable/observer.js +0 -1
- package/translations/changesObservable/observer.mjs +0 -1
- package/translations/changesObservable/utils.js +0 -1
- package/translations/changesObservable/utils.mjs +0 -1
- package/translations/index.js +0 -2
- package/translations/indexMapper.js +3 -14
- package/translations/indexMapper.mjs +3 -14
- package/translations/mapCollections/aggregatedCollection.js +0 -2
- package/translations/mapCollections/aggregatedCollection.mjs +0 -2
- package/translations/mapCollections/index.js +0 -2
- package/translations/mapCollections/mapCollection.js +0 -3
- package/translations/mapCollections/mapCollection.mjs +0 -3
- package/translations/maps/hidingMap.js +0 -1
- package/translations/maps/hidingMap.mjs +0 -1
- package/translations/maps/index.js +2 -4
- package/translations/maps/index.mjs +2 -2
- package/translations/maps/indexMap.js +0 -2
- package/translations/maps/indexMap.mjs +0 -2
- package/translations/maps/linkedPhysicalIndexToValueMap.js +0 -3
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +0 -3
- package/translations/maps/trimmingMap.js +0 -1
- package/translations/maps/trimmingMap.mjs +0 -1
- package/translations/maps/utils/actionsOnIndexes.js +0 -2
- package/translations/maps/utils/actionsOnIndexes.mjs +0 -2
- package/translations/maps/utils/index.js +2 -2
- package/translations/maps/utils/index.mjs +2 -2
- package/translations/maps/utils/physicallyIndexed.js +0 -2
- package/translations/maps/utils/physicallyIndexed.mjs +0 -2
- package/utils/dataStructures/linkedList.js +0 -1
- package/utils/dataStructures/linkedList.mjs +0 -1
- package/utils/dataStructures/priorityMap.js +3 -5
- package/utils/dataStructures/priorityMap.mjs +3 -5
- package/utils/dataStructures/queue.js +0 -1
- package/utils/dataStructures/queue.mjs +0 -1
- package/utils/dataStructures/stack.js +0 -1
- package/utils/dataStructures/stack.mjs +0 -1
- package/utils/dataStructures/tree.js +2 -3
- package/utils/dataStructures/tree.mjs +2 -3
- package/utils/dataStructures/uniqueMap.js +2 -4
- package/utils/dataStructures/uniqueMap.mjs +2 -4
- package/utils/dataStructures/uniqueSet.js +2 -9
- package/utils/dataStructures/uniqueSet.mjs +2 -9
- package/utils/ghostTable.js +3 -6
- package/utils/ghostTable.mjs +3 -6
- package/utils/interval.js +0 -1
- package/utils/interval.mjs +0 -1
- package/utils/paginator.js +0 -7
- package/utils/paginator.mjs +0 -7
- package/utils/parseTable.js +0 -6
- package/utils/parseTable.mjs +0 -6
- package/utils/samplesGenerator.js +2 -3
- package/utils/samplesGenerator.mjs +2 -3
- package/utils/stylesHandler.js +49 -60
- package/utils/stylesHandler.mjs +48 -60
- package/validators/autocompleteValidator/autocompleteValidator.js +9 -1
- package/validators/autocompleteValidator/autocompleteValidator.mjs +10 -2
- package/validators/dateValidator/dateValidator.js +2 -2
- package/validators/dateValidator/dateValidator.mjs +1 -1
- package/validators/index.d.ts +6 -0
- package/validators/index.js +12 -0
- package/validators/index.mjs +7 -1
- package/validators/intlDateValidator/index.d.ts +1 -0
- package/validators/intlDateValidator/index.js +8 -0
- package/validators/intlDateValidator/index.mjs +1 -0
- package/validators/intlDateValidator/intlDateValidator.d.ts +6 -0
- package/validators/intlDateValidator/intlDateValidator.js +39 -0
- package/validators/intlDateValidator/intlDateValidator.mjs +34 -0
- package/validators/intlTimeValidator/index.d.ts +1 -0
- package/validators/intlTimeValidator/index.js +8 -0
- package/validators/intlTimeValidator/index.mjs +1 -0
- package/validators/intlTimeValidator/intlTimeValidator.d.ts +6 -0
- package/validators/intlTimeValidator/intlTimeValidator.js +39 -0
- package/validators/intlTimeValidator/intlTimeValidator.mjs +34 -0
- package/validators/multiSelectValidator/index.js +6 -0
- package/validators/multiSelectValidator/index.mjs +1 -0
- package/validators/multiSelectValidator/multiSelectValidator.js +84 -0
- package/validators/multiSelectValidator/multiSelectValidator.mjs +80 -0
- package/validators/registry.js +2 -2
- package/validators/registry.mjs +2 -2
- package/dist/README.md +0 -54
- package/dist/handsontable.css +0 -2551
- package/dist/handsontable.full.css +0 -2781
- package/dist/handsontable.full.min.css +0 -51
- package/dist/handsontable.min.css +0 -46
- package/helpers/date.d.ts +0 -1
- package/helpers/date.js +0 -22
- package/helpers/date.mjs +0 -18
- package/plugins/persistentState/index.d.ts +0 -1
- package/plugins/persistentState/index.js +0 -7
- package/plugins/persistentState/index.mjs +0 -1
- package/plugins/persistentState/persistentState.d.ts +0 -16
- package/plugins/persistentState/persistentState.js +0 -159
- package/plugins/persistentState/persistentState.mjs +0 -154
- package/plugins/persistentState/storage.js +0 -120
- package/plugins/persistentState/storage.mjs +0 -117
|
@@ -923,7 +923,7 @@ var _default = () => {
|
|
|
923
923
|
* | `forceNumeric` | `true` \| `false` | [Treat non-numerics as numerics](@/guides/columns/column-summary/column-summary.md#force-numeric-values) |
|
|
924
924
|
* | `reversedRowCoords` | `true` \| `false` | [Reverse row coordinates](@/guides/columns/column-summary/column-summary.md#step-5-make-room-for-the-destination-cell) |
|
|
925
925
|
* | `suppressDataTypeErrors` | `true` \| `false` | [Suppress data type errors](@/guides/columns/column-summary/column-summary.md#throw-data-type-errors) |
|
|
926
|
-
* | `readOnly` | `true` \| `false` | Make summary cell read-only
|
|
926
|
+
* | `readOnly` | `true` \| `false` | Make summary cell [read-only](@/api/options.md#readonly) |
|
|
927
927
|
* | `roundFloat` | `true` \| `false` \| A number | [Round summary result](@/guides/columns/column-summary/column-summary.md#round-a-column-summary-result) |
|
|
928
928
|
* | `customFunction` | A function | [Custom summary function](@/guides/columns/column-summary/column-summary.md#implement-a-custom-summary-function) |
|
|
929
929
|
*
|
|
@@ -1292,6 +1292,7 @@ var _default = () => {
|
|
|
1292
1292
|
* - [Time cell type](@/guides/cell-types/time-cell-type/time-cell-type.md)
|
|
1293
1293
|
* - [`dateFormat`](#dateFormat)
|
|
1294
1294
|
*
|
|
1295
|
+
* @deprecated This option is deprecated and will be removed in the next major release.
|
|
1295
1296
|
* @memberof Options#
|
|
1296
1297
|
* @type {boolean}
|
|
1297
1298
|
* @default false
|
|
@@ -1641,61 +1642,239 @@ var _default = () => {
|
|
|
1641
1642
|
*/
|
|
1642
1643
|
dataSchema: undefined,
|
|
1643
1644
|
/**
|
|
1644
|
-
*
|
|
1645
|
+
* Configures the date format for date cells. Accepts either a string (legacy, for [`date`](@/guides/cell-types/date-cell-type/date-cell-type.md)
|
|
1646
|
+
* cells) or an object of [`Intl.DateTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat)
|
|
1647
|
+
* options (for [`intl-date`](@/guides/cell-types/date-cell-type/date-cell-type.md) cells).
|
|
1645
1648
|
*
|
|
1646
|
-
*
|
|
1649
|
+
* ::: warning
|
|
1650
|
+
* The string form of `dateFormat` is deprecated and will be removed in the next major release.
|
|
1651
|
+
* It is used only by the `date` cell type (moment.js-based). Use the `intl-date` cell type
|
|
1652
|
+
* with an `Intl.DateTimeFormat` options object instead. In the next major release, `intl-date`
|
|
1653
|
+
* will become the default `date` cell type, and `intl-date` will be an alias for `date`.
|
|
1654
|
+
* :::
|
|
1655
|
+
*
|
|
1656
|
+
* **Object form (Intl.DateTimeFormat options):**
|
|
1647
1657
|
*
|
|
1648
|
-
*
|
|
1658
|
+
* The object form is supported only when the cell type is `intl-date`. The locale is controlled separately via the [`locale`](@/api/options.md#locale) option.
|
|
1659
|
+
*
|
|
1660
|
+
* ::: tip Source data format
|
|
1661
|
+
* For `intl-date` cells, source data must be in an ISO 8601 date format (`YYYY-MM-DD`). Otherwise operations such
|
|
1662
|
+
* as sorting and filtering can be unstable or unpredictable. The `dateFormat` object affects only how dates are
|
|
1663
|
+
* displayed; the underlying value should remain ISO.
|
|
1664
|
+
* :::
|
|
1665
|
+
*
|
|
1666
|
+
* **Style shortcuts:**
|
|
1667
|
+
*
|
|
1668
|
+
* | Property | Possible values | Description |
|
|
1669
|
+
* | ------------ | -------------------------------------------------- | -------------------------------------------------------- |
|
|
1670
|
+
* | `dateStyle` | `'full'`, `'long'`, `'medium'`, `'short'` | Date formatting style (expands to weekday, day, month, year, era) |
|
|
1671
|
+
* | `timeStyle` | `'full'`, `'long'`, `'medium'`, `'short'` | Time formatting style (expands to hour, minute, second, timeZoneName) |
|
|
1672
|
+
*
|
|
1673
|
+
* **Date-time component options:**
|
|
1674
|
+
*
|
|
1675
|
+
* | Property | Possible values | Description |
|
|
1676
|
+
* | ------------------------ | ------------------------------------------------------------------------------- | ------------------------------------ |
|
|
1677
|
+
* | `weekday` | `'long'`, `'short'`, `'narrow'` | Representation of the weekday |
|
|
1678
|
+
* | `era` | `'long'`, `'short'`, `'narrow'` | Representation of the era |
|
|
1679
|
+
* | `year` | `'numeric'`, `'2-digit'` | Representation of the year |
|
|
1680
|
+
* | `month` | `'numeric'`, `'2-digit'`, `'long'`, `'short'`, `'narrow'` | Representation of the month |
|
|
1681
|
+
* | `day` | `'numeric'`, `'2-digit'` | Representation of the day |
|
|
1682
|
+
* | `dayPeriod` | `'narrow'`, `'short'`, `'long'` | Day period (e.g. "am", "noon") |
|
|
1683
|
+
* | `hour` | `'numeric'`, `'2-digit'` | Representation of the hour |
|
|
1684
|
+
* | `minute` | `'numeric'`, `'2-digit'` | Representation of the minute |
|
|
1685
|
+
* | `second` | `'numeric'`, `'2-digit'` | Representation of the second |
|
|
1686
|
+
* | `fractionalSecondDigits` | `1`, `2`, `3` | Fraction-of-second digits |
|
|
1687
|
+
* | `timeZoneName` | `'long'`, `'short'`, `'shortOffset'`, `'longOffset'`, `'shortGeneric'`, `'longGeneric'` | Time zone display |
|
|
1688
|
+
*
|
|
1689
|
+
* **Locale and other options:**
|
|
1690
|
+
*
|
|
1691
|
+
* | Property | Possible values | Description |
|
|
1692
|
+
* | ----------------- | -------------------------------------------------- | ------------------------------ |
|
|
1693
|
+
* | `localeMatcher` | `'best fit'` (default), `'lookup'` | Locale matching algorithm |
|
|
1694
|
+
* | `calendar` | `'chinese'`, `'gregory'`, `'persian'`, etc. | Calendar to use |
|
|
1695
|
+
* | `numberingSystem` | `'latn'`, `'arab'`, `'hans'`, etc. | Numbering system |
|
|
1696
|
+
* | `timeZone` | IANA time zone (e.g. `'UTC'`, `'America/New_York'`) | Time zone for formatting |
|
|
1697
|
+
* | `hour12` | `true`, `false` | Use 12-hour vs 24-hour time |
|
|
1698
|
+
* | `hourCycle` | `'h11'`, `'h12'`, `'h23'`, `'h24'` | Hour cycle |
|
|
1699
|
+
* | `formatMatcher` | `'basic'`, `'best fit'` (default) | Format matching algorithm |
|
|
1700
|
+
*
|
|
1701
|
+
* For complete reference, see [MDN: Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat).
|
|
1649
1702
|
*
|
|
1650
1703
|
* Read more:
|
|
1651
1704
|
* - [Date cell type](@/guides/cell-types/date-cell-type/date-cell-type.md)
|
|
1652
|
-
* - [`
|
|
1653
|
-
*
|
|
1705
|
+
* - [`locale`](@/api/options.md#locale)
|
|
1706
|
+
*
|
|
1707
|
+
* ---
|
|
1708
|
+
*
|
|
1709
|
+
* **Deprecated: string form**
|
|
1710
|
+
*
|
|
1711
|
+
* Passing a string (e.g. `'DD/MM/YYYY'`, `'YYYY-MM-DD'`) is deprecated and works only with the `date` cell type.
|
|
1712
|
+
* Migrate to the `intl-date` cell type and pass an `Intl.DateTimeFormat` options object.
|
|
1713
|
+
*
|
|
1714
|
+
* **Migration example:**
|
|
1715
|
+
*
|
|
1716
|
+
* ```js
|
|
1717
|
+
* // Before (deprecated)
|
|
1718
|
+
* columns: [{
|
|
1719
|
+
* type: 'date',
|
|
1720
|
+
* dateFormat: 'YYYY-MM-DD'
|
|
1721
|
+
* }]
|
|
1722
|
+
*
|
|
1723
|
+
* // After (recommended)
|
|
1724
|
+
* columns: [{
|
|
1725
|
+
* type: 'intl-date',
|
|
1726
|
+
* locale: 'en-US',
|
|
1727
|
+
* dateFormat: {
|
|
1728
|
+
* year: 'numeric',
|
|
1729
|
+
* month: '2-digit',
|
|
1730
|
+
* day: '2-digit'
|
|
1731
|
+
* }
|
|
1732
|
+
* }]
|
|
1733
|
+
* ```
|
|
1654
1734
|
*
|
|
1655
1735
|
* @memberof Options#
|
|
1656
|
-
* @type {string}
|
|
1736
|
+
* @type {string|object}
|
|
1657
1737
|
* @default 'DD/MM/YYYY'
|
|
1658
1738
|
* @category Core
|
|
1659
1739
|
*
|
|
1660
1740
|
* @example
|
|
1661
1741
|
* ```js
|
|
1742
|
+
* // intl-date cell type with Intl options
|
|
1662
1743
|
* columns: [
|
|
1663
1744
|
* {
|
|
1664
|
-
*
|
|
1665
|
-
*
|
|
1666
|
-
*
|
|
1667
|
-
*
|
|
1668
|
-
*
|
|
1669
|
-
*
|
|
1745
|
+
* type: 'intl-date',
|
|
1746
|
+
* locale: 'en-US',
|
|
1747
|
+
* dateFormat: {
|
|
1748
|
+
* dateStyle: 'short'
|
|
1749
|
+
* }
|
|
1750
|
+
* }
|
|
1751
|
+
* ]
|
|
1752
|
+
* ```
|
|
1753
|
+
*
|
|
1754
|
+
* @example
|
|
1755
|
+
* ```js
|
|
1756
|
+
* // Legacy: date cell type with string format (deprecated)
|
|
1757
|
+
* columns: [
|
|
1758
|
+
* {
|
|
1759
|
+
* type: 'date',
|
|
1760
|
+
* dateFormat: 'YYYY-MM-DD'
|
|
1761
|
+
* }
|
|
1762
|
+
* ]
|
|
1670
1763
|
* ```
|
|
1671
1764
|
*/
|
|
1672
1765
|
dateFormat: 'DD/MM/YYYY',
|
|
1673
1766
|
/**
|
|
1674
|
-
*
|
|
1767
|
+
* Configures the time format for time cells. Accepts either a string (legacy, for [`time`](@/guides/cell-types/time-cell-type/time-cell-type.md)
|
|
1768
|
+
* cells) or an object of [`Intl.DateTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat)
|
|
1769
|
+
* options (for [`intl-time`](@/guides/cell-types/time-cell-type/time-cell-type.md) cells).
|
|
1770
|
+
*
|
|
1771
|
+
* ::: warning
|
|
1772
|
+
* The string form of `timeFormat` is deprecated and will be removed in the next major release.
|
|
1773
|
+
* It is used only by the `time` cell type. Use the `intl-time` cell type with an `Intl.DateTimeFormat`
|
|
1774
|
+
* options object instead.
|
|
1775
|
+
* :::
|
|
1675
1776
|
*
|
|
1676
|
-
*
|
|
1777
|
+
* **Object form (Intl.DateTimeFormat options):**
|
|
1677
1778
|
*
|
|
1678
|
-
*
|
|
1779
|
+
* The object form is supported only when the cell type is `intl-time`. The locale is controlled separately
|
|
1780
|
+
* via the [`locale`](@/api/options.md#locale) option.
|
|
1781
|
+
*
|
|
1782
|
+
* ::: tip Source data format
|
|
1783
|
+
* For `intl-time` cells, source data must be in 24-hour time format (`HH:mm`, `HH:mm:ss`, or `HH:mm:ss.SSS`), matching
|
|
1784
|
+
* the HTML `input type="time"` value. Otherwise operations such as sorting and filtering can be unstable or unpredictable.
|
|
1785
|
+
* The `timeFormat` object affects only how times are displayed; the underlying value should remain in that format.
|
|
1786
|
+
* :::
|
|
1787
|
+
*
|
|
1788
|
+
* **Style shortcuts:**
|
|
1789
|
+
*
|
|
1790
|
+
* | Property | Possible values | Description |
|
|
1791
|
+
* | ------------ | -------------------------------------------------- | -------------------------------------------------------- |
|
|
1792
|
+
* | `timeStyle` | `'full'`, `'long'`, `'medium'`, `'short'` | Time formatting style (expands to hour, minute, second, timeZoneName) |
|
|
1793
|
+
*
|
|
1794
|
+
* **Time component options:**
|
|
1795
|
+
*
|
|
1796
|
+
* | Property | Possible values | Description |
|
|
1797
|
+
* | ------------------------ | ------------------------------------------------------------------------------- | ------------------------------------ |
|
|
1798
|
+
* | `hour` | `'numeric'`, `'2-digit'` | Representation of the hour |
|
|
1799
|
+
* | `minute` | `'numeric'`, `'2-digit'` | Representation of the minute |
|
|
1800
|
+
* | `second` | `'numeric'`, `'2-digit'` | Representation of the second |
|
|
1801
|
+
* | `fractionalSecondDigits` | `1`, `2`, `3` | Fraction-of-second digits |
|
|
1802
|
+
* | `dayPeriod` | `'narrow'`, `'short'`, `'long'` | Day period (e.g. "am", "noon") |
|
|
1803
|
+
* | `timeZoneName` | `'long'`, `'short'`, `'shortOffset'`, `'longOffset'`, `'shortGeneric'`, `'longGeneric'` | Time zone display |
|
|
1804
|
+
*
|
|
1805
|
+
* **Locale and other options:**
|
|
1806
|
+
*
|
|
1807
|
+
* | Property | Possible values | Description |
|
|
1808
|
+
* | ----------------- | -------------------------------------------------- | ------------------------------ |
|
|
1809
|
+
* | `localeMatcher` | `'best fit'` (default), `'lookup'` | Locale matching algorithm |
|
|
1810
|
+
* | `timeZone` | IANA time zone (e.g. `'UTC'`, `'America/New_York'`) | Time zone for formatting |
|
|
1811
|
+
* | `hour12` | `true`, `false` | Use 12-hour vs 24-hour time |
|
|
1812
|
+
* | `hourCycle` | `'h11'`, `'h12'`, `'h23'`, `'h24'` | Hour cycle |
|
|
1813
|
+
* | `formatMatcher` | `'basic'`, `'best fit'` (default) | Format matching algorithm |
|
|
1814
|
+
*
|
|
1815
|
+
* For complete reference, see [MDN: Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat).
|
|
1679
1816
|
*
|
|
1680
1817
|
* Read more:
|
|
1681
1818
|
* - [Time cell type](@/guides/cell-types/time-cell-type/time-cell-type.md)
|
|
1682
|
-
* - [`
|
|
1819
|
+
* - [`locale`](@/api/options.md#locale)
|
|
1820
|
+
*
|
|
1821
|
+
* ---
|
|
1822
|
+
*
|
|
1823
|
+
* **Deprecated: string form**
|
|
1824
|
+
*
|
|
1825
|
+
* Passing a string (e.g. `'h:mm:ss a'`) is deprecated and works only with the `time` cell type.
|
|
1826
|
+
* Migrate to the `intl-time` cell type and pass an `Intl.DateTimeFormat` options object.
|
|
1827
|
+
*
|
|
1828
|
+
* **Migration example:**
|
|
1829
|
+
*
|
|
1830
|
+
* ```js
|
|
1831
|
+
* // Before (deprecated)
|
|
1832
|
+
* columns: [{
|
|
1833
|
+
* type: 'time',
|
|
1834
|
+
* timeFormat: 'h:mm:ss a'
|
|
1835
|
+
* }]
|
|
1836
|
+
*
|
|
1837
|
+
* // After (recommended)
|
|
1838
|
+
* columns: [{
|
|
1839
|
+
* type: 'intl-time',
|
|
1840
|
+
* locale: 'en-US',
|
|
1841
|
+
* timeFormat: {
|
|
1842
|
+
* hour: 'numeric',
|
|
1843
|
+
* minute: '2-digit',
|
|
1844
|
+
* second: '2-digit',
|
|
1845
|
+
* hour12: true
|
|
1846
|
+
* }
|
|
1847
|
+
* }]
|
|
1848
|
+
* ```
|
|
1683
1849
|
*
|
|
1684
1850
|
* @memberof Options#
|
|
1685
|
-
* @type {string}
|
|
1851
|
+
* @type {string|object}
|
|
1686
1852
|
* @default 'h:mm:ss a'
|
|
1687
1853
|
* @category Core
|
|
1688
1854
|
*
|
|
1689
1855
|
* @example
|
|
1690
1856
|
* ```js
|
|
1857
|
+
* // intl-time cell type with Intl options
|
|
1691
1858
|
* columns: [
|
|
1692
1859
|
* {
|
|
1693
|
-
*
|
|
1694
|
-
*
|
|
1695
|
-
*
|
|
1696
|
-
*
|
|
1697
|
-
*
|
|
1698
|
-
*
|
|
1860
|
+
* type: 'intl-time',
|
|
1861
|
+
* locale: 'en-US',
|
|
1862
|
+
* timeFormat: {
|
|
1863
|
+
* timeStyle: 'medium'
|
|
1864
|
+
* }
|
|
1865
|
+
* }
|
|
1866
|
+
* ]
|
|
1867
|
+
* ```
|
|
1868
|
+
*
|
|
1869
|
+
* @example
|
|
1870
|
+
* ```js
|
|
1871
|
+
* // Legacy: time cell type with string format (deprecated)
|
|
1872
|
+
* columns: [
|
|
1873
|
+
* {
|
|
1874
|
+
* type: 'time',
|
|
1875
|
+
* timeFormat: 'h:mm:ss a'
|
|
1876
|
+
* }
|
|
1877
|
+
* ]
|
|
1699
1878
|
* ```
|
|
1700
1879
|
*/
|
|
1701
1880
|
timeFormat: 'h:mm:ss a',
|
|
@@ -1722,6 +1901,7 @@ var _default = () => {
|
|
|
1722
1901
|
* - [Cell editor](@/guides/cell-functions/cell-editor/cell-editor.md)
|
|
1723
1902
|
* - [All Pikaday options →](https://github.com/Pikaday/Pikaday/tree/1.8.2#configuration)
|
|
1724
1903
|
*
|
|
1904
|
+
* @deprecated This option is deprecated and will be removed in the next major release.
|
|
1725
1905
|
* @memberof Options#
|
|
1726
1906
|
* @type {object}
|
|
1727
1907
|
* @default undefined
|
|
@@ -1730,9 +1910,9 @@ var _default = () => {
|
|
|
1730
1910
|
datePickerConfig: undefined,
|
|
1731
1911
|
/**
|
|
1732
1912
|
* The `defaultDate` option configures the date displayed
|
|
1733
|
-
* in empty [`date`](@/guides/cell-types/date-cell-type/date-cell-type.md)
|
|
1913
|
+
* in the editor for an empty [`date`](@/guides/cell-types/date-cell-type/date-cell-type.md) cell.
|
|
1734
1914
|
*
|
|
1735
|
-
*
|
|
1915
|
+
* The option accepts a string in ISO 8601 format (`YYYY-MM-DD`).
|
|
1736
1916
|
*
|
|
1737
1917
|
* Read more:
|
|
1738
1918
|
* - [Date cell type](@/guides/cell-types/date-cell-type/date-cell-type.md)
|
|
@@ -1747,9 +1927,7 @@ var _default = () => {
|
|
|
1747
1927
|
* ```js
|
|
1748
1928
|
* columns: [
|
|
1749
1929
|
* {
|
|
1750
|
-
* // set the `type` of each cell in this column to `date`
|
|
1751
1930
|
* type: 'date',
|
|
1752
|
-
* // in every empty `date` cell of this column, display `2015-02-02`
|
|
1753
1931
|
* defaultDate: '2015-02-02'
|
|
1754
1932
|
* }
|
|
1755
1933
|
* ],
|
|
@@ -2058,6 +2236,7 @@ var _default = () => {
|
|
|
2058
2236
|
* | `'base'` | `BaseEditor` |
|
|
2059
2237
|
* | `'checkbox'` | `CheckboxEditor` |
|
|
2060
2238
|
* | `'date'` | `DateEditor` |
|
|
2239
|
+
* | `'intl-date'` | `IntlDateEditor` |
|
|
2061
2240
|
* | `'dropdown'` | `DropdownEditor` |
|
|
2062
2241
|
* | `'handsontable'` | `HandsontableEditor` |
|
|
2063
2242
|
* | `'numeric'` | `NumericEditor` |
|
|
@@ -2065,6 +2244,7 @@ var _default = () => {
|
|
|
2065
2244
|
* | `'select'` | `SelectEditor` |
|
|
2066
2245
|
* | `'text'` | `TextEditor` |
|
|
2067
2246
|
* | `'time'` | `TimeEditor` |
|
|
2247
|
+
* | `'intl-time'` | `IntlTimeEditor` |
|
|
2068
2248
|
*
|
|
2069
2249
|
* To disable editing cells through cell editors,
|
|
2070
2250
|
* set the `editor` option to `false`.
|
|
@@ -2216,6 +2396,29 @@ var _default = () => {
|
|
|
2216
2396
|
* ```
|
|
2217
2397
|
*/
|
|
2218
2398
|
enterBeginsEditing: true,
|
|
2399
|
+
/**
|
|
2400
|
+
* The `enterCommits` option configures whether the <kbd>**Enter**</kbd> key closes the [`multiSelect`](@/guides/cell-types/multiselect-cell-type/multiselect-cell-type.md) editor.
|
|
2401
|
+
*
|
|
2402
|
+
* @memberof Options#
|
|
2403
|
+
* @type {boolean}
|
|
2404
|
+
* @default true
|
|
2405
|
+
* @since 17.0.0
|
|
2406
|
+
* @category Core
|
|
2407
|
+
* @example
|
|
2408
|
+
* ```js
|
|
2409
|
+
* columns: [{
|
|
2410
|
+
* type: 'multiSelect',
|
|
2411
|
+
* // press Enter to close the `multiSelect` editor and Space to select an option
|
|
2412
|
+
* enterCommits: true,
|
|
2413
|
+
* }, {
|
|
2414
|
+
* type: 'multiSelect',
|
|
2415
|
+
* // press Enter to select an option
|
|
2416
|
+
* enterCommits: false,
|
|
2417
|
+
* }],
|
|
2418
|
+
* ],
|
|
2419
|
+
* ```
|
|
2420
|
+
*/
|
|
2421
|
+
enterCommits: true,
|
|
2219
2422
|
/**
|
|
2220
2423
|
* The `enterMoves` option configures the action of the <kbd>**Enter**</kbd> key.
|
|
2221
2424
|
*
|
|
@@ -2355,8 +2558,8 @@ var _default = () => {
|
|
|
2355
2558
|
*/
|
|
2356
2559
|
filter: true,
|
|
2357
2560
|
/**
|
|
2358
|
-
* The `filteringCaseSensitive` option configures whether [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md) cells'
|
|
2359
|
-
*
|
|
2561
|
+
* The `filteringCaseSensitive` option configures whether [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md) and [`multiSelect`](@/guides/cell-types/multiselect-cell-type/multiselect-cell-type.md)-typed cells'
|
|
2562
|
+
* search inputs are case-sensitive.
|
|
2360
2563
|
*
|
|
2361
2564
|
* You can set the `filteringCaseSensitive` option to one of the following:
|
|
2362
2565
|
*
|
|
@@ -2383,6 +2586,12 @@ var _default = () => {
|
|
|
2383
2586
|
* source: [ ... ],
|
|
2384
2587
|
* // match case while searching autocomplete options
|
|
2385
2588
|
* filteringCaseSensitive: true
|
|
2589
|
+
* },
|
|
2590
|
+
* {
|
|
2591
|
+
* type: 'multiSelect',
|
|
2592
|
+
* source: [ ... ],
|
|
2593
|
+
* // match case while searching multiSelect options
|
|
2594
|
+
* filteringCaseSensitive: true
|
|
2386
2595
|
* }
|
|
2387
2596
|
* ],
|
|
2388
2597
|
* ```
|
|
@@ -2424,6 +2633,23 @@ var _default = () => {
|
|
|
2424
2633
|
* ```
|
|
2425
2634
|
*/
|
|
2426
2635
|
filters: undefined,
|
|
2636
|
+
/**
|
|
2637
|
+
* The `filterSelectedItems` option configures whether the selected items are filtered out of the dropdown, when using the search input of the [`multiSelect`](@/guides/cell-types/multiselect-cell-type/multiselect-cell-type.md) editor.
|
|
2638
|
+
*
|
|
2639
|
+
* @memberof Options#
|
|
2640
|
+
* @type {boolean}
|
|
2641
|
+
* @default true
|
|
2642
|
+
* @category Core
|
|
2643
|
+
*
|
|
2644
|
+
* @example
|
|
2645
|
+
* ```js
|
|
2646
|
+
* // filter out the selected items from the dropdown
|
|
2647
|
+
* filterSelectedItems: true,
|
|
2648
|
+
*
|
|
2649
|
+
* // keep the selected items in the dropdown
|
|
2650
|
+
* filterSelectedItems: false,
|
|
2651
|
+
*/
|
|
2652
|
+
filterSelectedItems: true,
|
|
2427
2653
|
/**
|
|
2428
2654
|
* `fixedColumnsLeft` is a legacy option.
|
|
2429
2655
|
*
|
|
@@ -3337,6 +3563,26 @@ var _default = () => {
|
|
|
3337
3563
|
* ```
|
|
3338
3564
|
*/
|
|
3339
3565
|
maxRows: Infinity,
|
|
3566
|
+
/**
|
|
3567
|
+
* The `maxSelections` option sets a maximum number of selections for the [`multiSelect`](@/guides/cell-types/multiselect-cell-type/multiselect-cell-type.md)-typed cells.
|
|
3568
|
+
*
|
|
3569
|
+
* @since 17.0.0
|
|
3570
|
+
* @memberof Options#
|
|
3571
|
+
* @type {number}
|
|
3572
|
+
* @default undefined
|
|
3573
|
+
* @category Core
|
|
3574
|
+
*
|
|
3575
|
+
* @example
|
|
3576
|
+
* ```js
|
|
3577
|
+
* columns: [{
|
|
3578
|
+
* // set the `type` of each cell in this column to `multiSelect`
|
|
3579
|
+
* type: 'multiSelect',
|
|
3580
|
+
* // set the maximum number of selections to 3
|
|
3581
|
+
* maxSelections: 3,
|
|
3582
|
+
* }],
|
|
3583
|
+
* ```
|
|
3584
|
+
*/
|
|
3585
|
+
maxSelections: undefined,
|
|
3340
3586
|
/**
|
|
3341
3587
|
* @description
|
|
3342
3588
|
* The `mergeCells` option configures the [`MergeCells`](@/api/mergeCells.md) plugin.
|
|
@@ -3743,25 +3989,113 @@ var _default = () => {
|
|
|
3743
3989
|
*/
|
|
3744
3990
|
noWordWrapClassName: 'htNoWrap',
|
|
3745
3991
|
/**
|
|
3746
|
-
*
|
|
3747
|
-
*
|
|
3748
|
-
*
|
|
3992
|
+
* Configures the number format for [`numeric`](@/guides/cell-types/numeric-cell-type/numeric-cell-type.md)
|
|
3993
|
+
* cells, including currency, units, precision, and other display options.
|
|
3994
|
+
*
|
|
3995
|
+
* ::: warning
|
|
3996
|
+
* The `numericFormat.pattern` and `numericFormat.culture` options are deprecated and will be
|
|
3997
|
+
* removed in the next major release. Pass `Intl.NumberFormat` options directly to `numericFormat`
|
|
3998
|
+
* and use the `locale` cell property instead of `culture`.
|
|
3999
|
+
* :::
|
|
4000
|
+
*
|
|
4001
|
+
* Since v17.0.0, this option accepts all properties of the
|
|
4002
|
+
* [`Intl.NumberFormatOptions`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat)
|
|
4003
|
+
* object. The locale is controlled separately via the [`locale`](@/api/options.md#locale) option.
|
|
4004
|
+
*
|
|
4005
|
+
* **Style options:**
|
|
4006
|
+
*
|
|
4007
|
+
* | Property | Possible values | Description |
|
|
4008
|
+
* | ----------------- | --------------------------------------------------------- | -------------------------------------------------------------- |
|
|
4009
|
+
* | `style` | `'decimal'` (default), `'currency'`, `'percent'`, `'unit'`| The formatting style to use |
|
|
4010
|
+
* | `currency` | ISO 4217 currency codes (e.g., `'USD'`, `'EUR'`, `'PLN'`) | Required when `style` is `'currency'` |
|
|
4011
|
+
* | `currencyDisplay` | `'symbol'` (default), `'narrowSymbol'`, `'code'`, `'name'`| How to display the currency |
|
|
4012
|
+
* | `currencySign` | `'standard'` (default), `'accounting'` | Use parentheses for negative values in accounting format |
|
|
4013
|
+
* | `unit` | Unit identifiers (e.g., `'kilometer'`, `'liter'`) | Required when `style` is `'unit'` |
|
|
4014
|
+
* | `unitDisplay` | `'short'` (default), `'narrow'`, `'long'` | How to display the unit |
|
|
4015
|
+
*
|
|
4016
|
+
* **Notation options:**
|
|
4017
|
+
*
|
|
4018
|
+
* | Property | Possible values | Description |
|
|
4019
|
+
* | ----------------- | ------------------------------------------------------------- | -------------------------------------------------------- |
|
|
4020
|
+
* | `notation` | `'standard'` (default), `'scientific'`, `'engineering'`, `'compact'` | The formatting notation |
|
|
4021
|
+
* | `compactDisplay` | `'short'` (default), `'long'` | Display style for compact notation (e.g., `1.5M` vs `1.5 million`) |
|
|
3749
4022
|
*
|
|
3750
|
-
*
|
|
4023
|
+
* **Sign and grouping options:**
|
|
3751
4024
|
*
|
|
3752
|
-
* | Property
|
|
3753
|
-
* |
|
|
3754
|
-
* | `
|
|
3755
|
-
* | `
|
|
4025
|
+
* | Property | Possible values | Description |
|
|
4026
|
+
* | ----------------- | ------------------------------------------------------------------- | -------------------------------------------------- |
|
|
4027
|
+
* | `signDisplay` | `'auto'` (default), `'never'`, `'always'`, `'exceptZero'`, `'negative'` | When to display the sign |
|
|
4028
|
+
* | `useGrouping` | `true`, `false` (default), `'always'`, `'auto'`, `'min2'` | Whether to use grouping separators (e.g., `1,000`) |
|
|
3756
4029
|
*
|
|
3757
|
-
*
|
|
4030
|
+
* **Digit options:**
|
|
3758
4031
|
*
|
|
3759
|
-
*
|
|
4032
|
+
* | Property | Possible values | Description |
|
|
4033
|
+
* | ------------------------- | --------------- | ------------------------------------------------------------- |
|
|
4034
|
+
* | `minimumIntegerDigits` | `1` to `21` | Minimum number of integer digits (pads with zeros) |
|
|
4035
|
+
* | `minimumFractionDigits` | `0` to `100` | Minimum number of fraction digits |
|
|
4036
|
+
* | `maximumFractionDigits` | `0` to `100` | Maximum number of fraction digits |
|
|
4037
|
+
* | `minimumSignificantDigits`| `1` to `21` | Minimum number of significant digits |
|
|
4038
|
+
* | `maximumSignificantDigits`| `1` to `21` | Maximum number of significant digits |
|
|
4039
|
+
*
|
|
4040
|
+
* **Rounding options:**
|
|
4041
|
+
*
|
|
4042
|
+
* | Property | Possible values | Description |
|
|
4043
|
+
* | --------------------- | --------------------------------------------------------------------------------------------------- | ------------------------------------ |
|
|
4044
|
+
* | `roundingMode` | `'halfExpand'` (default), `'ceil'`, `'floor'`, `'expand'`, `'trunc'`, `'halfCeil'`, `'halfFloor'`, `'halfTrunc'`, `'halfEven'` | Rounding algorithm |
|
|
4045
|
+
* | `roundingPriority` | `'auto'` (default), `'morePrecision'`, `'lessPrecision'` | Priority between fraction and significant digits |
|
|
4046
|
+
* | `roundingIncrement` | `1`, `2`, `5`, `10`, `20`, `25`, `50`, `100`, `200`, `250`, `500`, `1000`, `2000`, `2500`, `5000` | Increment for rounding (e.g., nickel rounding) |
|
|
4047
|
+
* | `trailingZeroDisplay` | `'auto'` (default), `'stripIfInteger'` | Whether to strip trailing zeros for integers |
|
|
4048
|
+
*
|
|
4049
|
+
* **Locale options:**
|
|
4050
|
+
*
|
|
4051
|
+
* | Property | Possible values | Description |
|
|
4052
|
+
* | ----------------- | --------------------------------------------------------- | -------------------------------------------------- |
|
|
4053
|
+
* | `localeMatcher` | `'best fit'` (default), `'lookup'` | Locale matching algorithm |
|
|
4054
|
+
* | `numberingSystem` | `'latn'`, `'arab'`, `'hans'`, `'deva'`, `'thai'`, etc. | Numbering system to use |
|
|
4055
|
+
*
|
|
4056
|
+
* For complete reference, see [MDN: Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options).
|
|
4057
|
+
*
|
|
4058
|
+
* This option affects only the displayed output in the cell renderer.
|
|
4059
|
+
* It has no effect on the numeric cell editor. In the source data, numeric values
|
|
4060
|
+
* are stored as JavaScript numbers.
|
|
3760
4061
|
*
|
|
3761
4062
|
* Read more:
|
|
4063
|
+
* - [`locale`](@/api/options.md#locale)
|
|
3762
4064
|
* - [Numeric cell type](@/guides/cell-types/numeric-cell-type/numeric-cell-type.md)
|
|
4065
|
+
* - [Cell renderer](@/guides/cell-functions/cell-renderer/cell-renderer.md)
|
|
4066
|
+
* - [Numbro cell type](@/recipes/cell-types/numbro/numbro.md)
|
|
3763
4067
|
* - [Third-party licenses](@/guides/technical-specification/third-party-licenses/third-party-licenses.md)
|
|
3764
4068
|
*
|
|
4069
|
+
* ---
|
|
4070
|
+
*
|
|
4071
|
+
* **Deprecated options:**
|
|
4072
|
+
*
|
|
4073
|
+
* The `pattern` and `culture` properties (numbro.js-based formatting) are deprecated and will be
|
|
4074
|
+
* removed in the next major release. Migrate to the `Intl.NumberFormat` API shown above.
|
|
4075
|
+
*
|
|
4076
|
+
* | Deprecated property | Possible values | Replacement |
|
|
4077
|
+
* | ------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------- |
|
|
4078
|
+
* | `pattern` | All [`numbro.js` number formats](https://numbrojs.com/format.html#numbers) | Use `Intl.NumberFormat` options (see tables above) |
|
|
4079
|
+
* | `culture` | All [`numbro.js` currency formats](https://numbrojs.com/format.html#currency) | Use the [`locale`](@/api/options.md#locale) option |
|
|
4080
|
+
*
|
|
4081
|
+
* **Migration example:**
|
|
4082
|
+
*
|
|
4083
|
+
* ```js
|
|
4084
|
+
* // Before (deprecated)
|
|
4085
|
+
* numericFormat: {
|
|
4086
|
+
* pattern: '0,0.00 $',
|
|
4087
|
+
* culture: 'en-US'
|
|
4088
|
+
* }
|
|
4089
|
+
*
|
|
4090
|
+
* // After (recommended)
|
|
4091
|
+
* locale: 'en-US',
|
|
4092
|
+
* numericFormat: {
|
|
4093
|
+
* style: 'currency',
|
|
4094
|
+
* currency: 'USD',
|
|
4095
|
+
* minimumFractionDigits: 2
|
|
4096
|
+
* }
|
|
4097
|
+
* ```
|
|
4098
|
+
*
|
|
3765
4099
|
* @memberof Options#
|
|
3766
4100
|
* @since 0.35.0
|
|
3767
4101
|
* @type {object}
|
|
@@ -3772,14 +4106,11 @@ var _default = () => {
|
|
|
3772
4106
|
* ```js
|
|
3773
4107
|
* columns: [
|
|
3774
4108
|
* {
|
|
3775
|
-
* // set the `type` of each cell in this column to `numeric`
|
|
3776
4109
|
* type: 'numeric',
|
|
3777
|
-
*
|
|
4110
|
+
* locale: 'en-US',
|
|
3778
4111
|
* numericFormat: {
|
|
3779
|
-
*
|
|
3780
|
-
*
|
|
3781
|
-
* // set the currency format
|
|
3782
|
-
* culture: 'en-US'
|
|
4112
|
+
* style: 'currency',
|
|
4113
|
+
* currency: 'USD',
|
|
3783
4114
|
* }
|
|
3784
4115
|
* }
|
|
3785
4116
|
* ],
|
|
@@ -3881,33 +4212,6 @@ var _default = () => {
|
|
|
3881
4212
|
* ```
|
|
3882
4213
|
*/
|
|
3883
4214
|
pagination: undefined,
|
|
3884
|
-
/**
|
|
3885
|
-
* @description
|
|
3886
|
-
* The `persistentState` option configures the [`PersistentState`](@/api/persistentState.md) plugin.
|
|
3887
|
-
*
|
|
3888
|
-
* You can set the `persistentState` to one of the following:
|
|
3889
|
-
*
|
|
3890
|
-
* | Setting | Description |
|
|
3891
|
-
* | ----------------- | ---------------------------------------------------------------- |
|
|
3892
|
-
* | `false` (default) | Disable the [`PersistentState`](@/api/persistentState.md) plugin |
|
|
3893
|
-
* | `true` | Enable the [`PersistentState`](@/api/persistentState.md) plugin |
|
|
3894
|
-
*
|
|
3895
|
-
* Read more:
|
|
3896
|
-
* - [Saving data: Saving data locally](@/guides/getting-started/saving-data/saving-data.md#save-data-locally)
|
|
3897
|
-
* - [Plugins: `PersistentState`](@/api/persistentState.md)
|
|
3898
|
-
*
|
|
3899
|
-
* @memberof Options#
|
|
3900
|
-
* @type {boolean}
|
|
3901
|
-
* @default false
|
|
3902
|
-
* @category PersistentState
|
|
3903
|
-
*
|
|
3904
|
-
* @example
|
|
3905
|
-
* ```js
|
|
3906
|
-
* // enable the `PersistentState` plugin
|
|
3907
|
-
* persistentState: true,
|
|
3908
|
-
* ```
|
|
3909
|
-
*/
|
|
3910
|
-
persistentState: undefined,
|
|
3911
4215
|
/**
|
|
3912
4216
|
* The `placeholder` option lets you display placeholder text in every empty cell.
|
|
3913
4217
|
*
|
|
@@ -4172,12 +4476,14 @@ var _default = () => {
|
|
|
4172
4476
|
* | `'base'` | `BaseRenderer` |
|
|
4173
4477
|
* | `'checkbox'` | `CheckboxRenderer` |
|
|
4174
4478
|
* | `'date'` | `DateRenderer` |
|
|
4479
|
+
* | `'intl-date'` | `IntlDateRenderer` |
|
|
4175
4480
|
* | `'dropdown'` | `DropdownRenderer` |
|
|
4176
4481
|
* | `'html'` | `HtmlRenderer` |
|
|
4177
4482
|
* | `'numeric'` | `NumericRenderer` |
|
|
4178
4483
|
* | `'password'` | `PasswordRenderer` |
|
|
4179
4484
|
* | `'text'` | `TextRenderer` |
|
|
4180
4485
|
* | `'time'` | `TimeRenderer` |
|
|
4486
|
+
* | `'intl-time'` | `IntlTimeRenderer` |
|
|
4181
4487
|
*
|
|
4182
4488
|
* To set the [`renderer`](#renderer), [`editor`](#editor), and [`validator`](#validator)
|
|
4183
4489
|
* options all at once, use the [`type`](#type) option.
|
|
@@ -4218,6 +4524,165 @@ var _default = () => {
|
|
|
4218
4524
|
* ```
|
|
4219
4525
|
*/
|
|
4220
4526
|
renderer: undefined,
|
|
4527
|
+
/**
|
|
4528
|
+
* @description
|
|
4529
|
+
* The `valueFormatter` option sets a custom function for formatting cell values before display.
|
|
4530
|
+
*
|
|
4531
|
+
* Unlike the [`renderer`](#renderer) option, which is responsible for the complete cell rendering process
|
|
4532
|
+
* (DOM structure, performance-optimized content insertion via `innerText`/`innerHTML`, a11y attributes, applying
|
|
4533
|
+
* styles from `className`, `readOnlyCellClassName`, `textEllipsis`, and other options), the `valueFormatter`
|
|
4534
|
+
* focuses solely on transforming the cell's value.
|
|
4535
|
+
*
|
|
4536
|
+
* The `valueFormatter` function is called by the rendering engine right before the actual renderer function is
|
|
4537
|
+
* called. Separating the value formatting from the renderer logic allows for more flexibility and reuse.
|
|
4538
|
+
* This simplifies common formatting use cases where you only need to transform
|
|
4539
|
+
* the displayed value (e.g., adding units, formatting dates, or applying custom text transformations).
|
|
4540
|
+
*
|
|
4541
|
+
* **When to use `valueFormatter` vs `renderer`:**
|
|
4542
|
+
*
|
|
4543
|
+
* | Use case | Recommended option |
|
|
4544
|
+
* | ------------------------------------------------- | -------------------- |
|
|
4545
|
+
* | Transform displayed value (add prefix, units) | `valueFormatter` |
|
|
4546
|
+
* | Custom date/number/text formatting | `valueFormatter` |
|
|
4547
|
+
* | Modify DOM structure (add icons, custom elements) | `renderer` |
|
|
4548
|
+
*
|
|
4549
|
+
* The function receives the raw value and cell properties, and should return the formatted value
|
|
4550
|
+
* to be displayed. The formatting can be applied to a single cell, column, or the entire grid.
|
|
4551
|
+
*
|
|
4552
|
+
* **Function signature:**
|
|
4553
|
+
* ```js
|
|
4554
|
+
* valueFormatter(value, cellProperties) => formattedValue
|
|
4555
|
+
* ```
|
|
4556
|
+
*
|
|
4557
|
+
* | Parameter | Type | Description |
|
|
4558
|
+
* | ---------------- | ---------- | ---------------------------------------------- |
|
|
4559
|
+
* | `value` | `*` | The raw cell value |
|
|
4560
|
+
* | `cellProperties` | `object` | The cell's meta object (see {@link Core#getCellMeta}) |
|
|
4561
|
+
* | Returns | `*` | The formatted value to display |
|
|
4562
|
+
*
|
|
4563
|
+
* Read more:
|
|
4564
|
+
* - [Cell renderer](@/guides/cell-functions/cell-renderer/cell-renderer.md)
|
|
4565
|
+
* - [Configuration options: Cascading configuration](@/guides/getting-started/configuration-options/configuration-options.md#cascading-configuration)
|
|
4566
|
+
*
|
|
4567
|
+
* @memberof Options#
|
|
4568
|
+
* @since 17.0.0
|
|
4569
|
+
* @type {Function}
|
|
4570
|
+
* @default undefined
|
|
4571
|
+
* @category Core
|
|
4572
|
+
*
|
|
4573
|
+
* @example
|
|
4574
|
+
* ```js
|
|
4575
|
+
* // add a currency symbol to numeric values
|
|
4576
|
+
* valueFormatter(value, cellProperties) {
|
|
4577
|
+
* if (value === null || value === undefined) {
|
|
4578
|
+
* return '';
|
|
4579
|
+
* }
|
|
4580
|
+
*
|
|
4581
|
+
* return `$${value}`;
|
|
4582
|
+
* }
|
|
4583
|
+
*
|
|
4584
|
+
* // format dates in a custom format
|
|
4585
|
+
* valueFormatter(value, cellProperties) {
|
|
4586
|
+
* if (!value) {
|
|
4587
|
+
* return '';
|
|
4588
|
+
* }
|
|
4589
|
+
*
|
|
4590
|
+
* const date = new Date(value);
|
|
4591
|
+
*
|
|
4592
|
+
* return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });
|
|
4593
|
+
* }
|
|
4594
|
+
*
|
|
4595
|
+
* // apply valueFormatter to individual columns
|
|
4596
|
+
* columns: [
|
|
4597
|
+
* {
|
|
4598
|
+
* // add "kg" suffix to weight values
|
|
4599
|
+
* valueFormatter(value) {
|
|
4600
|
+
* return value ? `${value} kg` : '';
|
|
4601
|
+
* }
|
|
4602
|
+
* },
|
|
4603
|
+
* {
|
|
4604
|
+
* // format percentages
|
|
4605
|
+
* valueFormatter(value) {
|
|
4606
|
+
* return value !== null ? `${(value * 100).toFixed(1)}%` : '';
|
|
4607
|
+
* }
|
|
4608
|
+
* }
|
|
4609
|
+
* ]
|
|
4610
|
+
* ```
|
|
4611
|
+
*/
|
|
4612
|
+
valueFormatter: undefined,
|
|
4613
|
+
/**
|
|
4614
|
+
* @description
|
|
4615
|
+
* The `valueParser` option sets a custom function for converting editor output into the source data format.
|
|
4616
|
+
*
|
|
4617
|
+
* Unlike [`valueFormatter`](#valueformatter), which formats values for display, `valueParser` runs only when a
|
|
4618
|
+
* value comes from the [cell editor](@/guides/cell-functions/cell-editor/cell-editor.md) - after the user finishes
|
|
4619
|
+
* editing. It maps whatever the editor returns (e.g. a localized date string, a formatted number) into the
|
|
4620
|
+
* canonical shape stored in the data source (e.g. ISO date string, raw number).
|
|
4621
|
+
*
|
|
4622
|
+
* **When to use `valueParser` vs `valueFormatter`:**
|
|
4623
|
+
*
|
|
4624
|
+
* | Use case | Option |
|
|
4625
|
+
* | -------------------------------------- | ---------------- |
|
|
4626
|
+
* | Display: raw value -> shown text | `valueFormatter` |
|
|
4627
|
+
* | Edit: editor value -> source data | `valueParser` |
|
|
4628
|
+
*
|
|
4629
|
+
* **Function signature:**
|
|
4630
|
+
* ```js
|
|
4631
|
+
* valueParser(value, cellProperties) => sourceValue
|
|
4632
|
+
* ```
|
|
4633
|
+
*
|
|
4634
|
+
* | Parameter | Type | Description |
|
|
4635
|
+
* | ---------------- | -------- | ---------------------------------------------- |
|
|
4636
|
+
* | `value` | `*` | The value produced by the editor |
|
|
4637
|
+
* | `cellProperties` | `object` | The cell's meta object (see {@link Core#getCellMeta}) |
|
|
4638
|
+
* | Returns | `*` | The value to store in the source data |
|
|
4639
|
+
*
|
|
4640
|
+
* Read more:
|
|
4641
|
+
* - [Cell editor](@/guides/cell-functions/cell-editor/cell-editor.md)
|
|
4642
|
+
* - [`editor`](#editor)
|
|
4643
|
+
* - [`renderer`](#renderer)
|
|
4644
|
+
* - [`valueFormatter`](#valueformatter)
|
|
4645
|
+
* - [`sourceDataValidator`](#sourcedatavalidator)
|
|
4646
|
+
* - [Configuration options: Cascading configuration](@/guides/getting-started/configuration-options/configuration-options.md#cascading-configuration)
|
|
4647
|
+
*
|
|
4648
|
+
* @memberof Options#
|
|
4649
|
+
* @since 17.0.0
|
|
4650
|
+
* @type {Function}
|
|
4651
|
+
* @default undefined
|
|
4652
|
+
* @category Core
|
|
4653
|
+
*
|
|
4654
|
+
* @example
|
|
4655
|
+
* ```js
|
|
4656
|
+
* // parse editor string to ISO date (e.g. intl-date: display format => source format)
|
|
4657
|
+
* valueParser(value, cellProperties) {
|
|
4658
|
+
* if (value == null || value === '') {
|
|
4659
|
+
* return null;
|
|
4660
|
+
* }
|
|
4661
|
+
*
|
|
4662
|
+
* const date = new Date(value);
|
|
4663
|
+
*
|
|
4664
|
+
* return Number.isNaN(date.getTime()) ? value : date.toISOString().slice(0, 10);
|
|
4665
|
+
* }
|
|
4666
|
+
*
|
|
4667
|
+
* // parse formatted number string to number
|
|
4668
|
+
* valueParser(value, cellProperties) {
|
|
4669
|
+
* if (value == null || value === '') {
|
|
4670
|
+
* return null;
|
|
4671
|
+
* }
|
|
4672
|
+
*
|
|
4673
|
+
* const num = Number(value.replace(/[^\d.-]/g, ''));
|
|
4674
|
+
*
|
|
4675
|
+
* return Number.isNaN(num) ? value : num;
|
|
4676
|
+
* }
|
|
4677
|
+
*
|
|
4678
|
+
* // apply valueParser per column
|
|
4679
|
+
* columns: [
|
|
4680
|
+
* { data: 'date', valueParser: (value) => value ? new Date(value).toISOString().slice(0, 10) : null },
|
|
4681
|
+
* { data: 'amount', valueParser: (value) => value != null ? Number(value) : null }
|
|
4682
|
+
* ]
|
|
4683
|
+
* ```
|
|
4684
|
+
*/
|
|
4685
|
+
valueParser: undefined,
|
|
4221
4686
|
/**
|
|
4222
4687
|
* The `rowHeaders` option configures your grid's row headers.
|
|
4223
4688
|
*
|
|
@@ -4282,7 +4747,7 @@ var _default = () => {
|
|
|
4282
4747
|
/**
|
|
4283
4748
|
* The `rowHeights` option sets rows' heights, in pixels.
|
|
4284
4749
|
*
|
|
4285
|
-
* In the rendering process, the default row height is `classic
|
|
4750
|
+
* In the rendering process, the default row height is `classic: 26px`, `main: 29px`, `horizon: 37px` or whatever is defined in the used theme (based on the line height, vertical padding and cell borders).
|
|
4286
4751
|
* You can change it to equal or greater than the default value, by setting the `rowHeights` option to one of the following:
|
|
4287
4752
|
*
|
|
4288
4753
|
* | Setting | Description | Example |
|
|
@@ -4376,6 +4841,24 @@ var _default = () => {
|
|
|
4376
4841
|
* ```
|
|
4377
4842
|
*/
|
|
4378
4843
|
search: false,
|
|
4844
|
+
/**
|
|
4845
|
+
* The `searchInput` option configures whether the [`multiSelect`](@/guides/cell-types/multiselect-cell-type/multiselect-cell-type.md) editor's search input is visible.
|
|
4846
|
+
*
|
|
4847
|
+
* @since 17.0.0
|
|
4848
|
+
* @memberof Options#
|
|
4849
|
+
* @type {boolean}
|
|
4850
|
+
* @default true
|
|
4851
|
+
* @category Core
|
|
4852
|
+
* @example
|
|
4853
|
+
* ```js
|
|
4854
|
+
* columns: [{
|
|
4855
|
+
* type: 'multiSelect',
|
|
4856
|
+
* // hide the `multiSelect` editor's search input
|
|
4857
|
+
* searchInput: false,
|
|
4858
|
+
* }],
|
|
4859
|
+
* ```
|
|
4860
|
+
*/
|
|
4861
|
+
searchInput: true,
|
|
4379
4862
|
/**
|
|
4380
4863
|
* @description
|
|
4381
4864
|
* The `selectionMode` option configures how [selection](@/guides/cell-features/selection/selection.md) works.
|
|
@@ -4568,6 +5051,30 @@ var _default = () => {
|
|
|
4568
5051
|
* ```
|
|
4569
5052
|
*/
|
|
4570
5053
|
sortByRelevance: true,
|
|
5054
|
+
/**
|
|
5055
|
+
* The `sourceSortFunction` option sets a function to sort the options available in [`multiSelect`](@/guides/cell-types/multiselect-cell-type/multiselect-cell-type.md)-typed cells.
|
|
5056
|
+
*
|
|
5057
|
+
* @since 17.0.0
|
|
5058
|
+
* @memberof Options#
|
|
5059
|
+
* @type {Function}
|
|
5060
|
+
* @default undefined
|
|
5061
|
+
* @category Core
|
|
5062
|
+
*
|
|
5063
|
+
* @example
|
|
5064
|
+
* ```js
|
|
5065
|
+
* columns: [{
|
|
5066
|
+
* // set the `type` of each cell in this column to `multiSelect`
|
|
5067
|
+
* type: 'multiSelect',
|
|
5068
|
+
* // set options available in every `multiSelect` cell of this column
|
|
5069
|
+
* source: ['A', 'B', 'C', 'D'],
|
|
5070
|
+
* // sort the `multiSelect` options in this order: D, C, B, A
|
|
5071
|
+
* sourceSortFunction: (entries) => {
|
|
5072
|
+
* return entries.sort((a, b) => b.localeCompare(a));
|
|
5073
|
+
* }
|
|
5074
|
+
* }],
|
|
5075
|
+
* ```
|
|
5076
|
+
*/
|
|
5077
|
+
sourceSortFunction: undefined,
|
|
4571
5078
|
/**
|
|
4572
5079
|
* The `source` option sets options available in [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)
|
|
4573
5080
|
* and [`dropdown`](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md) cells.
|
|
@@ -4805,13 +5312,11 @@ var _default = () => {
|
|
|
4805
5312
|
/**
|
|
4806
5313
|
* The `themeName` option allows enabling a theme by that name.
|
|
4807
5314
|
*
|
|
4808
|
-
* If no `themeName` is provided, the table will use the classic (legacy) theme (if the correct CSS files are imported).
|
|
4809
|
-
*
|
|
4810
5315
|
* Read more:
|
|
4811
5316
|
* - [Themes](@/guides/styling/themes/themes.md)
|
|
4812
5317
|
*
|
|
4813
5318
|
* @memberof Options#
|
|
4814
|
-
* @type {string|
|
|
5319
|
+
* @type {string|undefined}
|
|
4815
5320
|
* @default undefined
|
|
4816
5321
|
* @category Core
|
|
4817
5322
|
* @since 15.0.0
|
|
@@ -4822,6 +5327,102 @@ var _default = () => {
|
|
|
4822
5327
|
* ```
|
|
4823
5328
|
*/
|
|
4824
5329
|
themeName: undefined,
|
|
5330
|
+
/**
|
|
5331
|
+
* The `theme` option configures the visual theme for your Handsontable instance.
|
|
5332
|
+
*
|
|
5333
|
+
* You can set the `theme` option to one of the following:
|
|
5334
|
+
*
|
|
5335
|
+
* | Setting | Description |
|
|
5336
|
+
* | ------------------------------------- | ------------------------------------------------------------------------------------- |
|
|
5337
|
+
* | `undefined` (default) | Don't apply any theme and use the default main theme |
|
|
5338
|
+
* | A string (e.g., `'ht-theme-horizon'`) | Apply a registered theme by name (required to import CSS file) |
|
|
5339
|
+
* | A plain theme config object | Apply a theme with default settings (import and pass the config, e.g. `horizonTheme`) |
|
|
5340
|
+
* | A `ThemeBuilder` object | Apply a theme with runtime configuration (recommended) |
|
|
5341
|
+
*
|
|
5342
|
+
* When using a `ThemeBuilder` object, you can configure the theme at runtime using these methods:
|
|
5343
|
+
*
|
|
5344
|
+
* | Method | Description |
|
|
5345
|
+
* | -------------------------------- | ------------------------------------------------------------------------------------------ |
|
|
5346
|
+
* | `setColorScheme(mode)` | Sets the color scheme: `'light'`, `'dark'`, or `'auto'` (default: `'auto'`) |
|
|
5347
|
+
* | `setDensityType(type)` | Sets the row density: `'compact'`, `'default'`, or `'comfortable'` (default: `'default'`) |
|
|
5348
|
+
* | `params(paramsObject)` | Sets custom theme parameters e.g. `icons`, `colors`, `tokens` |
|
|
5349
|
+
*
|
|
5350
|
+
* Read more:
|
|
5351
|
+
* - [Themes](@/guides/styling/themes/themes.md)
|
|
5352
|
+
* - [`themeName`](#themeName)
|
|
5353
|
+
*
|
|
5354
|
+
* @memberof Options#
|
|
5355
|
+
* @type {ThemeBuilder|string|undefined}
|
|
5356
|
+
* @default undefined
|
|
5357
|
+
* @category Core
|
|
5358
|
+
* @since 17.0.0
|
|
5359
|
+
*
|
|
5360
|
+
* @example
|
|
5361
|
+
* ```js
|
|
5362
|
+
* // Enable a theme by class name (requires loading the theme CSS)
|
|
5363
|
+
* theme: 'ht-theme-horizon',
|
|
5364
|
+
* ```
|
|
5365
|
+
* @example
|
|
5366
|
+
* ```js
|
|
5367
|
+
* // Pass a plain theme config object
|
|
5368
|
+
* import { horizonTheme } from 'handsontable/themes';
|
|
5369
|
+
*
|
|
5370
|
+
* const hot = new Handsontable(container, {
|
|
5371
|
+
* theme: horizonTheme,
|
|
5372
|
+
* });
|
|
5373
|
+
* ```
|
|
5374
|
+
*
|
|
5375
|
+
* @example
|
|
5376
|
+
* ```js
|
|
5377
|
+
* // Pass a ThemeBuilder object (for customization before initialization)
|
|
5378
|
+
* import { horizonTheme, registerTheme } from 'handsontable/themes';
|
|
5379
|
+
*
|
|
5380
|
+
* const theme = registerTheme(horizonTheme)
|
|
5381
|
+
* .setColorScheme('dark')
|
|
5382
|
+
* .setDensityType('compact')
|
|
5383
|
+
* .params({
|
|
5384
|
+
* tokens: {
|
|
5385
|
+
* fontSize: '14px',
|
|
5386
|
+
* iconSize: 'size_5',
|
|
5387
|
+
* borderColor: ['colors.palette.100', 'colors.palette.800'],
|
|
5388
|
+
* },
|
|
5389
|
+
* });
|
|
5390
|
+
*
|
|
5391
|
+
* const hot = new Handsontable(container, {
|
|
5392
|
+
* theme,
|
|
5393
|
+
* });
|
|
5394
|
+
* ```
|
|
5395
|
+
*/
|
|
5396
|
+
theme: undefined,
|
|
5397
|
+
/**
|
|
5398
|
+
* The `injectCoreCss` option controls whether Handsontable injects its core CSS into the document.
|
|
5399
|
+
*
|
|
5400
|
+
* You can set the `injectCoreCss` option to one of the following:
|
|
5401
|
+
*
|
|
5402
|
+
* | Setting | Description |
|
|
5403
|
+
* | ------------------ | ---------------------------------------------------------------------------------------------------------------- |
|
|
5404
|
+
* | `true` (default) | Inject core styles into the document head |
|
|
5405
|
+
* | `false` | Do not inject core styles (use when you load CSS yourself, e.g. `import 'handsontable/styles/handsontable.css'`) |
|
|
5406
|
+
*
|
|
5407
|
+
* Read more:
|
|
5408
|
+
* - [Themes](@/guides/styling/themes/themes.md)
|
|
5409
|
+
*
|
|
5410
|
+
* @memberof Options#
|
|
5411
|
+
* @type {boolean}
|
|
5412
|
+
* @default true
|
|
5413
|
+
* @category Core
|
|
5414
|
+
* @since 17.0.0
|
|
5415
|
+
*
|
|
5416
|
+
* @example
|
|
5417
|
+
* ```js
|
|
5418
|
+
* // inject core CSS (default)
|
|
5419
|
+
* injectCoreCss: true,
|
|
5420
|
+
*
|
|
5421
|
+
* // skip injection when you load Handsontable CSS yourself
|
|
5422
|
+
* injectCoreCss: false,
|
|
5423
|
+
* ```
|
|
5424
|
+
*/
|
|
5425
|
+
injectCoreCss: true,
|
|
4825
5426
|
/**
|
|
4826
5427
|
* The `tabMoves` option configures the action of the <kbd>**Tab**</kbd> key.
|
|
4827
5428
|
*
|
|
@@ -5000,12 +5601,14 @@ var _default = () => {
|
|
|
5000
5601
|
* | [`'autocomplete'`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md) | Renderer: `AutocompleteRenderer`<br>Editor: `AutocompleteEditor`<br>Validator: `AutocompleteValidator` |
|
|
5001
5602
|
* | [`'checkbox'`](@/guides/cell-types/checkbox-cell-type/checkbox-cell-type.md) | Renderer: `CheckboxRenderer`<br>Editor: `CheckboxEditor`<br>Validator: - |
|
|
5002
5603
|
* | [`'date'`](@/guides/cell-types/date-cell-type/date-cell-type.md) | Renderer: `DateRenderer`<br>Editor: `DateEditor`<br>Validator: `DateValidator` |
|
|
5604
|
+
* | [`'intl-date'`](@/guides/cell-types/date-cell-type/date-cell-type.md) | Renderer: `IntlDateRenderer`<br>Editor: `IntlDateEditor`<br>Validator: `IntlDateValidator` |
|
|
5003
5605
|
* | [`'dropdown'`](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md) | Renderer: `DropdownRenderer`<br>Editor: `DropdownEditor`<br>Validator: `DropdownValidator` |
|
|
5004
5606
|
* | [`'handsontable'`](@/guides/cell-types/handsontable-cell-type/handsontable-cell-type.md) | Renderer: `AutocompleteRenderer`<br>Editor: `HandsontableEditor`<br>Validator: - |
|
|
5005
5607
|
* | [`'numeric'`](@/guides/cell-types/numeric-cell-type/numeric-cell-type.md) | Renderer: `NumericRenderer`<br>Editor: `NumericEditor`<br>Validator: `NumericValidator` |
|
|
5006
5608
|
* | [`'password'`](@/guides/cell-types/password-cell-type/password-cell-type.md) | Renderer: `PasswordRenderer`<br>Editor: `PasswordEditor`<br>Validator: - |
|
|
5007
5609
|
* | `'text'` | Renderer: `TextRenderer`<br>Editor: `TextEditor`<br>Validator: - |
|
|
5008
5610
|
* | [`'time`'](@/guides/cell-types/time-cell-type/time-cell-type.md) | Renderer: `TimeRenderer`<br>Editor: `TimeEditor`<br>Validator: `TimeValidator` |
|
|
5611
|
+
* | [`'intl-time'`](@/guides/cell-types/time-cell-type/time-cell-type.md) | Renderer: `IntlTimeRenderer`<br>Editor: `IntlTimeEditor`<br>Validator: `IntlTimeValidator` |
|
|
5009
5612
|
*
|
|
5010
5613
|
* Read more:
|
|
5011
5614
|
* - [Cell type](@/guides/cell-types/cell-type/cell-type.md)
|
|
@@ -5016,6 +5619,8 @@ var _default = () => {
|
|
|
5016
5619
|
* - [`renderer`](#renderer)
|
|
5017
5620
|
* - [`editor`](#editor)
|
|
5018
5621
|
* - [`validator`](#validator)
|
|
5622
|
+
* - [`valueParser`](#valueparser)
|
|
5623
|
+
* - [`valueFormatter`](#valueformatter)
|
|
5019
5624
|
*
|
|
5020
5625
|
* @memberof Options#
|
|
5021
5626
|
* @type {string}
|
|
@@ -5132,9 +5737,11 @@ var _default = () => {
|
|
|
5132
5737
|
* | A custom alias | Your [custom cell validator](@/guides/cell-functions/cell-validator/cell-validator.md) |
|
|
5133
5738
|
* | `'autocomplete'` | `AutocompleteValidator` |
|
|
5134
5739
|
* | `'date'` | `DateValidator` |
|
|
5740
|
+
* | `'intl-date'` | `IntlDateValidator` |
|
|
5135
5741
|
* | `'dropdown'` | `DropdownValidator` |
|
|
5136
5742
|
* | `'numeric'` | `NumericValidator` |
|
|
5137
5743
|
* | `'time'` | `TimeValidator` |
|
|
5744
|
+
* | `'intl-time'` | `IntlTimeValidator` |
|
|
5138
5745
|
*
|
|
5139
5746
|
* To set the [`editor`](#editor), [`renderer`](#renderer), and [`validator`](#validator)
|
|
5140
5747
|
* options all at once, use the [`type`](#type) option.
|
|
@@ -5171,6 +5778,64 @@ var _default = () => {
|
|
|
5171
5778
|
* ```
|
|
5172
5779
|
*/
|
|
5173
5780
|
validator: undefined,
|
|
5781
|
+
/**
|
|
5782
|
+
* @description
|
|
5783
|
+
* The [`sourceDataValidator`](@/api/options.md#sourcedatavalidator) option sets a function that validates values
|
|
5784
|
+
* when they are written to the source data layer. Validation runs on table initialization and when calling
|
|
5785
|
+
* [`loadData`](@/api/core.md#loaddata), [`updateData`](@/api/core.md#updatedata), or
|
|
5786
|
+
* [`setSourceDataAtCell`](@/api/core.md#setsourcedataatcell). It does not run for the `setData*` family of methods.
|
|
5787
|
+
*
|
|
5788
|
+
* Return `true` from the function to mark the value as valid, or `false` to mark it invalid. When a value is
|
|
5789
|
+
* invalid and [`allowInvalid`](@/api/options.md#allowinvalid) is `false`, it is replaced with `null` in the
|
|
5790
|
+
* source (on initialization and when calling `loadData` or `updateData`). When `allowInvalid` is `true`, invalid
|
|
5791
|
+
* values are kept; a warning is still logged when the validator returns `false`. An exception:
|
|
5792
|
+
* [`setSourceDataAtCell`](@/api/core.md#setsourcedataatcell) - when the validator returns `false`, the write is
|
|
5793
|
+
* skipped and the cell is not nullified; the previous value in the source remains unchanged. Use
|
|
5794
|
+
* [`allowEmpty`](@/api/options.md#allowempty) to treat `null`, `undefined`, or `''` as valid when appropriate.
|
|
5795
|
+
*
|
|
5796
|
+
* Optionally set [`sourceDataWarningMessage`](@/api/options.md#sourcedatawarningmessage) to customize the
|
|
5797
|
+
* message logged for invalid values.
|
|
5798
|
+
*
|
|
5799
|
+
* @example
|
|
5800
|
+
* ```js
|
|
5801
|
+
* sourceDataWarningMessage: 'The source data is invalid.',
|
|
5802
|
+
* sourceDataValidator: (value, cellMeta) => {
|
|
5803
|
+
* if (cellMeta.allowEmpty && value == null) {
|
|
5804
|
+
* return true;
|
|
5805
|
+
* }
|
|
5806
|
+
*
|
|
5807
|
+
* if (typeof value === 'string') {
|
|
5808
|
+
* return true;
|
|
5809
|
+
* }
|
|
5810
|
+
*
|
|
5811
|
+
* return false;
|
|
5812
|
+
* }
|
|
5813
|
+
* ```
|
|
5814
|
+
*
|
|
5815
|
+
* @memberof Options#
|
|
5816
|
+
* @since 17.0.0
|
|
5817
|
+
* @type {function(*, CellMeta): (boolean)}
|
|
5818
|
+
* @default undefined
|
|
5819
|
+
* @category Core
|
|
5820
|
+
*/
|
|
5821
|
+
sourceDataValidator: undefined,
|
|
5822
|
+
/**
|
|
5823
|
+
* @description
|
|
5824
|
+
* The [`sourceDataWarningMessage`](@/api/options.md#sourcedatawarningmessage) option sets the message used when
|
|
5825
|
+
* a value fails [`sourceDataValidator`](@/api/options.md#sourcedatavalidator). When not set, no message is logged.
|
|
5826
|
+
*
|
|
5827
|
+
* @example
|
|
5828
|
+
* ```js
|
|
5829
|
+
* sourceDataWarningMessage: 'The source data is invalid.',
|
|
5830
|
+
* ```
|
|
5831
|
+
*
|
|
5832
|
+
* @memberof Options#
|
|
5833
|
+
* @since 17.0.0
|
|
5834
|
+
* @type {string}
|
|
5835
|
+
* @default undefined
|
|
5836
|
+
* @category Core
|
|
5837
|
+
*/
|
|
5838
|
+
sourceDataWarningMessage: undefined,
|
|
5174
5839
|
/**
|
|
5175
5840
|
* @description
|
|
5176
5841
|
* The `valueGetter` option configures a function that defines what value will be used when displaying the cell content.
|
|
@@ -5346,13 +6011,14 @@ var _default = () => {
|
|
|
5346
6011
|
viewportRowRenderingThreshold: 0,
|
|
5347
6012
|
/**
|
|
5348
6013
|
* The `visibleRows` option sets the height of the [`autocomplete`](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)
|
|
5349
|
-
*
|
|
6014
|
+
* , [`dropdown`](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md) and [`multiSelect`](@/guides/cell-types/multiselect-cell-type/multiselect-cell-type.md)-typed cells' lists.
|
|
5350
6015
|
*
|
|
5351
6016
|
* When the number of list options exceeds the `visibleRows` number, a scrollbar appears.
|
|
5352
6017
|
*
|
|
5353
6018
|
* Read more:
|
|
5354
6019
|
* - [Autocomplete cell type](@/guides/cell-types/autocomplete-cell-type/autocomplete-cell-type.md)
|
|
5355
6020
|
* - [Dropdown cell type](@/guides/cell-types/dropdown-cell-type/dropdown-cell-type.md)
|
|
6021
|
+
* - [MultiSelect cell type](@/guides/cell-types/multiselect-cell-type/multiselect-cell-type.md)
|
|
5356
6022
|
*
|
|
5357
6023
|
* @memberof Options#
|
|
5358
6024
|
* @type {number}
|
|
@@ -5373,6 +6039,12 @@ var _default = () => {
|
|
|
5373
6039
|
* // set the `dropdown` list's height to 5 options
|
|
5374
6040
|
* // for each cell of this column
|
|
5375
6041
|
* visibleRows: 5,
|
|
6042
|
+
* },
|
|
6043
|
+
* {
|
|
6044
|
+
* type: 'multiSelect',
|
|
6045
|
+
* // set the `multiSelect` list's height to 5 options
|
|
6046
|
+
* // for each cell of this column
|
|
6047
|
+
* visibleRows: 5,
|
|
5376
6048
|
* }
|
|
5377
6049
|
* ],
|
|
5378
6050
|
* ```
|
|
@@ -5449,7 +6121,118 @@ var _default = () => {
|
|
|
5449
6121
|
* ],
|
|
5450
6122
|
* ```
|
|
5451
6123
|
*/
|
|
5452
|
-
wordWrap: true
|
|
6124
|
+
wordWrap: true,
|
|
6125
|
+
/**
|
|
6126
|
+
* The `sanitizer` option configures the function used to sanitize HTML before it is written to the DOM.
|
|
6127
|
+
* Whenever Handsontable sets HTML (e.g. cell content, headers, context menu labels, dialog content,
|
|
6128
|
+
* paste from clipboard), it can pass the string through this function first. Sanitization is important
|
|
6129
|
+
* when content comes from users or external sources to prevent XSS (e.g. script injection, event handlers).
|
|
6130
|
+
* If no sanitizer is set, HTML is applied as-is. Set a sanitizer when you need to allow rich content
|
|
6131
|
+
* while stripping or neutralizing dangerous markup.
|
|
6132
|
+
*
|
|
6133
|
+
* The function receives the raw HTML string and an optional second argument (source) indicating where
|
|
6134
|
+
* the content is used (e.g. `'innerHTML'`, `'CopyPaste.paste'`), so you can apply different rules per source.
|
|
6135
|
+
* It must return a string that is safe to assign to `innerHTML`.
|
|
6136
|
+
*
|
|
6137
|
+
* This option is only respected when set in the table settings. It does not work when defined per column
|
|
6138
|
+
* or per cell (e.g. in `columns` or cell meta).
|
|
6139
|
+
*
|
|
6140
|
+
* @since 17.0.0
|
|
6141
|
+
* @memberof Options#
|
|
6142
|
+
* @type {function(string, string): string}
|
|
6143
|
+
* @default undefined
|
|
6144
|
+
* @category Core
|
|
6145
|
+
*
|
|
6146
|
+
* @example
|
|
6147
|
+
* ```js
|
|
6148
|
+
* // Allowlist-based sanitization based on the DOMPurify library
|
|
6149
|
+
* import DOMPurify from 'dompurify';
|
|
6150
|
+
*
|
|
6151
|
+
* sanitizer: (content, source) {
|
|
6152
|
+
* if (source === 'CopyPaste.paste') {
|
|
6153
|
+
* return DOMPurify.sanitize(content, {
|
|
6154
|
+
* ADD_TAGS: ['meta'],
|
|
6155
|
+
* ADD_ATTR: ['content'],
|
|
6156
|
+
* FORCE_BODY: true,
|
|
6157
|
+
* });
|
|
6158
|
+
* }
|
|
6159
|
+
*
|
|
6160
|
+
* return DOMPurify.sanitize(content);
|
|
6161
|
+
* },
|
|
6162
|
+
* ```
|
|
6163
|
+
*
|
|
6164
|
+
* @example
|
|
6165
|
+
* ```js
|
|
6166
|
+
* // Maximum safety: strip all tags and escape output (no rich HTML)
|
|
6167
|
+
* sanitizer: (content, source) => {
|
|
6168
|
+
* const tpl = document.createElement('template');
|
|
6169
|
+
*
|
|
6170
|
+
* tpl.innerHTML = content;
|
|
6171
|
+
*
|
|
6172
|
+
* const text = tpl.content.textContent ?? '';
|
|
6173
|
+
*
|
|
6174
|
+
* return text
|
|
6175
|
+
* .replace(/&/g, '&')
|
|
6176
|
+
* .replace(/</g, '<')
|
|
6177
|
+
* .replace(/>/g, '>')
|
|
6178
|
+
* .replace(/"/g, '"')
|
|
6179
|
+
* .replace(/'/g, ''');
|
|
6180
|
+
* },
|
|
6181
|
+
* ```
|
|
6182
|
+
*
|
|
6183
|
+
* @example
|
|
6184
|
+
* ```js
|
|
6185
|
+
* // Trusted Types: wrap sanitization in a policy so the sink accepts the result.
|
|
6186
|
+
* // Add the policy name to the CSP trusted-types directive (e.g. trusted-types default handsontable).
|
|
6187
|
+
* const policy = window.trustedTypes?.createPolicy('handsontable', {
|
|
6188
|
+
* createHTML: (input) => DOMPurify.sanitize(input),
|
|
6189
|
+
* });
|
|
6190
|
+
*
|
|
6191
|
+
* sanitizer: (content, source) =>
|
|
6192
|
+
* policy ? policy.createHTML(content) : DOMPurify.sanitize(content),
|
|
6193
|
+
* ```
|
|
6194
|
+
*/
|
|
6195
|
+
sanitizer: undefined,
|
|
6196
|
+
/**
|
|
6197
|
+
* The `parsePastedValue` option determines how pasted content is written to cells when the user pastes
|
|
6198
|
+
* from the clipboard into Handsontable (e.g. from another Handsontable instance or between cells in the same table).
|
|
6199
|
+
* It does not affect how other applications read or process the clipboard.
|
|
6200
|
+
*
|
|
6201
|
+
* When set to `false`, pasted content is written as plain strings. Non-scalar values (e.g. objects) are coerced
|
|
6202
|
+
* to string, so an object becomes `"[object Object]"`.
|
|
6203
|
+
*
|
|
6204
|
+
* When set to `true`, pasted text is parsed so that JSON-like (or other supported) values are converted to
|
|
6205
|
+
* JavaScript values and written to the data source. This allows copying and pasting more sophisticated JavaScript
|
|
6206
|
+
* structures (e.g. objects, arrays) between cells and between Handsontable instances. Cells then store the resulting
|
|
6207
|
+
* object (e.g. `{ id: 1, value: 'A1' }`). Schema validation is relaxed so object-based values can be pasted into
|
|
6208
|
+
* cells that would normally expect a scalar.
|
|
6209
|
+
*
|
|
6210
|
+
* You can set the `parsePastedValue` option to one of the following:
|
|
6211
|
+
*
|
|
6212
|
+
* | Setting | Description |
|
|
6213
|
+
* | ----------------- | ------------------------------------------------ |
|
|
6214
|
+
* | `false` (default) | Write pasted content as plain strings |
|
|
6215
|
+
* | `true` | Parse pasted text and write JavaScript values |
|
|
6216
|
+
*
|
|
6217
|
+
* @since 17.0.0
|
|
6218
|
+
* @memberof Options#
|
|
6219
|
+
* @type {boolean}
|
|
6220
|
+
* @default false
|
|
6221
|
+
* @category CopyPaste
|
|
6222
|
+
*
|
|
6223
|
+
* @example
|
|
6224
|
+
* ```js
|
|
6225
|
+
* // write pasted content as strings (objects become "[object Object]")
|
|
6226
|
+
* parsePastedValue: false,
|
|
6227
|
+
* ```
|
|
6228
|
+
*
|
|
6229
|
+
* @example
|
|
6230
|
+
* ```js
|
|
6231
|
+
* // parse pasted text so cells receive JavaScript objects when pasted content is object-like
|
|
6232
|
+
* parsePastedValue: true,
|
|
6233
|
+
* ```
|
|
6234
|
+
*/
|
|
6235
|
+
parsePastedValue: false
|
|
5453
6236
|
|
|
5454
6237
|
/* eslint-enable jsdoc/require-description-complete-sentence */
|
|
5455
6238
|
};
|