handsontable 12.1.1 → 12.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. package/3rdparty/walkontable/src/border.js +43 -28
  2. package/3rdparty/walkontable/src/border.mjs +43 -28
  3. package/3rdparty/walkontable/src/table.js +13 -10
  4. package/3rdparty/walkontable/src/table.mjs +13 -10
  5. package/CHANGELOG.md +31 -0
  6. package/base.js +2 -2
  7. package/base.mjs +2 -2
  8. package/core.d.ts +1 -3
  9. package/core.js +9 -1
  10. package/core.mjs +9 -1
  11. package/dataMap/dataMap.js +35 -16
  12. package/dataMap/dataMap.mjs +30 -13
  13. package/dataMap/metaManager/lazyFactoryMap.js +24 -5
  14. package/dataMap/metaManager/lazyFactoryMap.mjs +19 -4
  15. package/dataMap/metaManager/metaSchema.js +112 -80
  16. package/dataMap/metaManager/metaSchema.mjs +112 -80
  17. package/dist/handsontable.css +2 -2
  18. package/dist/handsontable.full.css +2 -2
  19. package/dist/handsontable.full.js +35200 -52208
  20. package/dist/handsontable.full.min.css +2 -2
  21. package/dist/handsontable.full.min.js +527 -284
  22. package/dist/handsontable.js +3046 -3279
  23. package/dist/handsontable.min.css +2 -2
  24. package/dist/handsontable.min.js +3 -3
  25. package/editorManager.js +69 -35
  26. package/editorManager.mjs +69 -35
  27. package/editors/baseEditor/baseEditor.js +1 -1
  28. package/editors/baseEditor/baseEditor.mjs +1 -1
  29. package/editors/dateEditor/dateEditor.js +17 -2
  30. package/editors/dateEditor/dateEditor.mjs +16 -0
  31. package/editors/textEditor/caretPositioner.js +0 -4
  32. package/editors/textEditor/caretPositioner.mjs +0 -2
  33. package/helpers/dom/element.js +2 -4
  34. package/helpers/dom/element.mjs +1 -2
  35. package/helpers/mixed.js +2 -4
  36. package/helpers/mixed.mjs +2 -3
  37. package/helpers/object.js +0 -4
  38. package/helpers/object.mjs +0 -2
  39. package/helpers/unicode.js +0 -4
  40. package/helpers/unicode.mjs +0 -2
  41. package/package.json +2 -2
  42. package/pluginHooks.d.ts +0 -1
  43. package/pluginHooks.js +17 -14
  44. package/pluginHooks.mjs +17 -14
  45. package/plugins/base/base.js +2 -4
  46. package/plugins/base/base.mjs +1 -2
  47. package/plugins/columnSorting/sortService/engine.js +2 -6
  48. package/plugins/columnSorting/sortService/engine.mjs +2 -2
  49. package/plugins/columnSummary/columnSummary.js +17 -11
  50. package/plugins/columnSummary/columnSummary.mjs +15 -9
  51. package/plugins/columnSummary/utils.js +14 -0
  52. package/plugins/columnSummary/utils.mjs +9 -0
  53. package/plugins/contextMenu/commandExecutor.js +0 -4
  54. package/plugins/contextMenu/commandExecutor.mjs +0 -2
  55. package/plugins/contextMenu/contextMenu.js +5 -1
  56. package/plugins/contextMenu/contextMenu.mjs +5 -1
  57. package/plugins/contextMenu/menu.js +4 -0
  58. package/plugins/contextMenu/menu.mjs +4 -0
  59. package/plugins/copyPaste/copyPaste.js +2 -0
  60. package/plugins/copyPaste/copyPaste.mjs +2 -0
  61. package/plugins/dropdownMenu/dropdownMenu.js +4 -0
  62. package/plugins/dropdownMenu/dropdownMenu.mjs +4 -0
  63. package/plugins/filters/component/condition.js +11 -29
  64. package/plugins/filters/component/condition.mjs +6 -21
  65. package/plugins/filters/component/value.js +12 -5
  66. package/plugins/filters/component/value.mjs +12 -5
  67. package/plugins/filters/filters.d.ts +1 -1
  68. package/plugins/filters/filters.js +62 -82
  69. package/plugins/filters/filters.mjs +63 -83
  70. package/plugins/hiddenColumns/hiddenColumns.js +0 -4
  71. package/plugins/hiddenColumns/hiddenColumns.mjs +0 -2
  72. package/plugins/hiddenRows/hiddenRows.js +0 -4
  73. package/plugins/hiddenRows/hiddenRows.mjs +0 -2
  74. package/plugins/multiColumnSorting/domHelpers.js +2 -4
  75. package/plugins/multiColumnSorting/domHelpers.mjs +1 -2
  76. package/plugins/nestedRows/nestedRows.js +1 -1
  77. package/plugins/nestedRows/nestedRows.mjs +1 -1
  78. package/plugins/search/search.js +0 -2
  79. package/plugins/search/search.mjs +0 -1
  80. package/plugins/trimRows/trimRows.js +3 -3
  81. package/plugins/trimRows/trimRows.mjs +3 -3
  82. package/renderers/numericRenderer/numericRenderer.js +0 -2
  83. package/renderers/numericRenderer/numericRenderer.mjs +0 -1
  84. package/renderers/textRenderer/textRenderer.js +1 -1
  85. package/renderers/textRenderer/textRenderer.mjs +1 -1
  86. package/shortcuts/recorder.js +14 -10
  87. package/shortcuts/recorder.mjs +13 -10
  88. package/shortcuts/utils.js +0 -4
  89. package/shortcuts/utils.mjs +0 -2
  90. package/translations/indexMapper.js +2 -2
  91. package/translations/indexMapper.mjs +2 -2
  92. package/utils/sortingAlgorithms/mergeSort.js +0 -120
  93. package/utils/sortingAlgorithms/mergeSort.mjs +0 -110
@@ -113,10 +113,14 @@ var _default = function _default() {
113
113
  *
114
114
  * You can set the `allowEmpty` option to one of the following:
115
115
  *
116
- * | Setting | Description |
117
- * | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
118
- * | `true` (default) | - Accept `null`, `undefined` and `''` values<br>- Mark cells that contain `null`, `undefined` and `''` values as `valid` |
119
- * | `false` | - Don't accept `null`, `undefined` and `''` values<br>- Mark cells that contain `null`, `undefined` and `''` values with as `invalid` |
116
+ * | Setting | Description |
117
+ * | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
118
+ * | `true` (default) | - Accept `null`, `undefined` and `''` values<br>- Mark cells that contain `null`, `undefined` or `''` values as `valid` |
119
+ * | `false` | - Don't accept `null`, `undefined` and `''` values<br>- Mark cells that contain `null`, `undefined` or `''` values with as `invalid` |
120
+ *
121
+ * ::: tip
122
+ * To use the [`allowEmpty`](#allowempty) option, you need to set the [`validator`](#validator) option (or the [`type`](#type) option).
123
+ * :::
120
124
  *
121
125
  * @memberof Options#
122
126
  * @type {boolean}
@@ -125,15 +129,15 @@ var _default = function _default() {
125
129
  *
126
130
  * @example
127
131
  * ```js
128
- * // allow empty values in every cell of the entire grid
132
+ * // allow empty values in each cell of the entire grid
129
133
  * allowEmpty: true,
130
134
  *
131
135
  * // or
132
136
  * columns: [
133
137
  * {
134
- * data: 'date',
138
+ * type: 'date',
135
139
  * dateFormat: 'DD/MM/YYYY',
136
- * // allow empty values in every cell of the 'date' column
140
+ * // allow empty values in each cell of the 'date' column
137
141
  * allowEmpty: true
138
142
  * }
139
143
  * ],
@@ -169,7 +173,7 @@ var _default = function _default() {
169
173
  * ```js
170
174
  * columns: [
171
175
  * {
172
- * // set the `type` of every cell in this column to `autocomplete`
176
+ * // set the `type` of each cell in this column to `autocomplete`
173
177
  * type: 'autocomplete',
174
178
  * // set options available in every `autocomplete` cell of this column
175
179
  * source: ['<strong>foo</strong>', '<strong>bar</strong>']
@@ -486,7 +490,7 @@ var _default = function _default() {
486
490
 
487
491
  /**
488
492
  * @description
489
- * The `cells` option lets you apply [configuration options](@/guides/getting-started/setting-options.md) to
493
+ * The `cells` option lets you apply any other [configuration options](@/guides/getting-started/setting-options.md) to
490
494
  * individual grid elements (columns, rows, cells), based on any logic you implement.
491
495
  *
492
496
  * The `cells` option overwrites all other options (including options set by [`columns`](#columns) and [`cell`](#cell)).
@@ -552,13 +556,13 @@ var _default = function _default() {
552
556
  * ```js
553
557
  * columns: [
554
558
  * {
555
- * // set the `type` of every cell in this column to `checkbox`
559
+ * // set the `type` of each cell in this column to `checkbox`
556
560
  * // when checked, the cell's value is `true`
557
561
  * // when unchecked, the cell's value is `false`
558
562
  * type: 'checkbox',
559
563
  * },
560
564
  * {
561
- * // set the `type` of every cell in this column to `checkbox`
565
+ * // set the `type` of each cell in this column to `checkbox`
562
566
  * type: 'checkbox',
563
567
  * // when checked, the cell's value is `'Yes'`
564
568
  * checkedTemplate: 'Yes',
@@ -712,7 +716,7 @@ var _default = function _default() {
712
716
 
713
717
  /**
714
718
  * @description
715
- * The `columns` option lets you apply [configuration options](@/guides/getting-started/setting-options.md) to individual columns (or ranges of columns).
719
+ * The `columns` option lets you apply any other [configuration options](@/guides/getting-started/setting-options.md) to individual columns (or ranges of columns).
716
720
  *
717
721
  * You can set the `columns` option to one of the following:
718
722
  * - An array of objects (each object represents one column)
@@ -720,13 +724,14 @@ var _default = function _default() {
720
724
  *
721
725
  * The `columns` option overwrites the [top-level grid options](@/guides/getting-started/setting-options.md#setting-grid-options).
722
726
  *
723
- * When you use the `columns` option, the [`startCols`](#startCols), [`minCols`](#minCols), and [`maxCols`](#maxCols) are ignored.
727
+ * When you use `columns`, the [`startCols`](#startCols), [`minCols`](#minCols), and [`maxCols`](#maxCols) options are ignored.
724
728
  *
725
729
  * Read more:
726
730
  * - [Configuration options: Setting column options](@/guides/getting-started/setting-options.md#setting-column-options)
727
731
  * - [`startCols`](#startCols)
728
732
  * - [`minCols`](#minCols)
729
733
  * - [`maxCols`](#maxCols)
734
+ * - [`data`](#data)
730
735
  *
731
736
  * @memberof Options#
732
737
  * @type {object[]|Function}
@@ -972,7 +977,7 @@ var _default = function _default() {
972
977
  * @example
973
978
  * ```js
974
979
  * // add a `has-comment` CSS class name
975
- * // to every cell that has a comment
980
+ * // to each cell that has a comment
976
981
  * commentedCellClassName: 'has-comment',
977
982
  * ```
978
983
  */
@@ -1102,10 +1107,10 @@ var _default = function _default() {
1102
1107
  *
1103
1108
  * You can set the `copyable` option to one of the following:
1104
1109
  *
1105
- * | Setting | Description |
1106
- * | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
1107
- * | `true` (default) | - Enable copying for this cell<br>- On pressing <kbd>**Ctrl**</kbd>/<kbd>**Cmd**</kbd> + <kbd>**C**</kbd>, add the cell's value to the clipboard |
1108
- * | `false`<br>(default for the [`password`](@/guides/cell-types/password-cell-type.md) [cell type](#type)) | - Disable copying for this cell |
1110
+ * | Setting | Description |
1111
+ * | -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
1112
+ * | `true` (default) | - On pressing <kbd>**Ctrl**</kbd>/<kbd>**Cmd**</kbd> + <kbd>**C**</kbd>, add the cell's value to the clipboard |
1113
+ * | `false`<br>(default for the [`password`](@/guides/cell-types/password-cell-type.md) [cell type](#type)) | - On pressing <kbd>**Ctrl**</kbd>/<kbd>**Cmd**</kbd> + <kbd>**C**</kbd>, add an empty string (`""`) to the clipboard |
1109
1114
  *
1110
1115
  * Read more:
1111
1116
  * - [Clipboard](@/guides/cell-features/clipboard.md)
@@ -1119,17 +1124,17 @@ var _default = function _default() {
1119
1124
  *
1120
1125
  * @example
1121
1126
  * ```js
1122
- * // enable copying for every cell of the entire grid
1127
+ * // enable copying for each cell of the entire grid
1123
1128
  * copyable: true,
1124
1129
  *
1125
1130
  * // enable copying for individual columns
1126
1131
  * columns: [
1127
1132
  * {
1128
- * // enable copying for every cell of this column
1133
+ * // enable copying for each cell of this column
1129
1134
  * copyable: true
1130
1135
  * },
1131
1136
  * {
1132
- * // disable copying for every cell of this column
1137
+ * // disable copying for each cell of this column
1133
1138
  * copyable: false
1134
1139
  * }
1135
1140
  * ]
@@ -1197,15 +1202,21 @@ var _default = function _default() {
1197
1202
  copyPaste: true,
1198
1203
 
1199
1204
  /**
1200
- * The `correctFormat` option configures what happens when the format of a date entered into a [`date`](@/guides/cell-types/date-cell-type.md) cell doesn't match the format specified by the [`dateFormat`](#dateFormat) option:
1205
+ * The `correctFormat` option configures whether incorrectly-formatted times and dates are amended or not.
1206
+ *
1207
+ * When the user enters dates and times, Handsontable can automatically adjust their format
1208
+ * to match the [`dateFormat`](#dateFormat) and [`timeFormat`](@/guides/cell-types/time-cell-type.md) settings.
1201
1209
  *
1202
- * | Setting | Description |
1203
- * | ----------------- | ---------------------------------------------------------------------------------- |
1204
- * | `false` (default) | Don't correct the entered date's format (treat the entered date as invalid) |
1205
- * | `true` | Correct the entered date's format to match the [`dateFormat`](#dateFormat) setting |
1210
+ * You can set the `correctFormat` option to one of the following:
1211
+ *
1212
+ * | Setting | Description |
1213
+ * | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
1214
+ * | `false` (default) | Don't correct the format of the entered date or time (treat the entered date or time as invalid) |
1215
+ * | `true` | Correct the format of the entered date or time to match the [`dateFormat`](#dateFormat) or [`timeFormat`](@/guides/cell-types/time-cell-type.md) settings |
1206
1216
  *
1207
1217
  * Read more:
1208
1218
  * - [Date cell type](@/guides/cell-types/date-cell-type.md)
1219
+ * - [Time cell type](@/guides/cell-types/time-cell-type.md)
1209
1220
  * - [`dateFormat`](#dateFormat)
1210
1221
  *
1211
1222
  * @memberof Options#
@@ -1217,13 +1228,22 @@ var _default = function _default() {
1217
1228
  * ```js
1218
1229
  * columns: [
1219
1230
  * {
1220
- * // set the `type` of every cell in this column to `date`
1231
+ * // set the `type` of each cell in this column to `date`
1221
1232
  * type: 'date',
1222
1233
  * // for every `date` cell of this column, set the date format to `YYYY-MM-DD`
1223
1234
  * dateFormat: 'YYYY-MM-DD',
1224
1235
  * // enforce the `YYYY-MM-DD` date format
1225
1236
  * correctFormat: true
1226
1237
  * },
1238
+ *
1239
+ * {
1240
+ * // set the `type` of each cell in this column to `time`
1241
+ * type: 'time',
1242
+ * // for every `time` cell of this column, set the time format to `h:mm:ss a`
1243
+ * timeFormat: 'h:mm:ss a',
1244
+ * // enforce the `h:mm:ss a` time format
1245
+ * correctFormat: true
1246
+ * },
1227
1247
  * ],
1228
1248
  * ```
1229
1249
  */
@@ -1231,7 +1251,7 @@ var _default = function _default() {
1231
1251
 
1232
1252
  /**
1233
1253
  * The `currentColClassName` option lets you add a CSS class name
1234
- * to every cell of the currently-visible, currently-selected columns.
1254
+ * to each cell of the currently-visible, currently-selected columns.
1235
1255
  *
1236
1256
  * Read more:
1237
1257
  * - [`currentRowClassName`](#currentRowClassName)
@@ -1253,7 +1273,7 @@ var _default = function _default() {
1253
1273
  * @example
1254
1274
  * ```js
1255
1275
  * // add a `your-class-name` CSS class name
1256
- * // to every cell of the currently-visible, currently-selected columns
1276
+ * // to each cell of the currently-visible, currently-selected columns
1257
1277
  * currentColClassName: 'your-class-name',
1258
1278
  * ```
1259
1279
  */
@@ -1290,7 +1310,7 @@ var _default = function _default() {
1290
1310
 
1291
1311
  /**
1292
1312
  * The `currentRowClassName` option lets you add a CSS class name
1293
- * to every cell of the currently-visible, currently-selected rows.
1313
+ * to each cell of the currently-visible, currently-selected rows.
1294
1314
  *
1295
1315
  * Read more:
1296
1316
  * - [`currentColClassName`](#currentColClassName)
@@ -1312,7 +1332,7 @@ var _default = function _default() {
1312
1332
  * @example
1313
1333
  * ```js
1314
1334
  * // add a `your-class-name` CSS class name
1315
- * // to every cell of the currently-visible, currently-selected rows
1335
+ * // to each cell of the currently-visible, currently-selected rows
1316
1336
  * currentRowClassName: 'your-class-name',
1317
1337
  * ```
1318
1338
  */
@@ -1441,9 +1461,13 @@ var _default = function _default() {
1441
1461
  * - Either to an [array of arrays](@/guides/getting-started/binding-to-data.md#array-of-arrays).
1442
1462
  * - Or to an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects).
1443
1463
  *
1464
+ * If you don't set the `data` option (or set it to `null`), Handsontable renders as an empty 5x5 grid by default.
1465
+ *
1444
1466
  * Read more:
1445
1467
  * - [Binding to data](@/guides/getting-started/binding-to-data.md)
1446
1468
  * - [`dataSchema`](#dataSchema)
1469
+ * - [`startRows`](#startRows)
1470
+ * - [`startCols`](#startCols)
1447
1471
  *
1448
1472
  * @memberof Options#
1449
1473
  * @type {Array[]|object[]}
@@ -1473,15 +1497,22 @@ var _default = function _default() {
1473
1497
 
1474
1498
  /**
1475
1499
  * @description
1476
- * If the [`data`](#data) option is set to an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects)
1500
+ * When the [`data`](#data) option is set to an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects)
1477
1501
  * (or is empty), the `dataSchema` option defines the structure of new rows.
1478
1502
  *
1503
+ * Using the `dataSchema` option, you can start out with an empty grid.
1504
+ *
1505
+ * You can set the `dataSchema` option to one of the following:
1506
+ * - An object
1507
+ * - A function
1508
+ *
1479
1509
  * Read more:
1480
1510
  * - [Binding to data: Array of objects with custom data schema](@/guides/getting-started/binding-to-data.md#array-of-objects-with-custom-data-schema)
1511
+ * - [Binding to data: Function data source and schema](@/guides/getting-started/binding-to-data.md#function-data-source-and-schema)
1481
1512
  * - [`data`](#data)
1482
1513
  *
1483
1514
  * @memberof Options#
1484
- * @type {object}
1515
+ * @type {object|Function}
1485
1516
  * @default undefined
1486
1517
  * @category Core
1487
1518
  *
@@ -1524,7 +1555,7 @@ var _default = function _default() {
1524
1555
  * ```js
1525
1556
  * columns: [
1526
1557
  * {
1527
- * // set the `type` of every cell in this column to `date`
1558
+ * // set the `type` of each cell in this column to `date`
1528
1559
  * type: 'date',
1529
1560
  * // for every `date` cell of this column, set the date format to `YYYY-MM-DD`
1530
1561
  * dateFormat: 'YYYY-MM-DD',
@@ -1535,16 +1566,16 @@ var _default = function _default() {
1535
1566
  dateFormat: 'DD/MM/YYYY',
1536
1567
 
1537
1568
  /**
1538
- * The `datePickerConfig` option configures the `date` [cell editor](@/guides/cell-functions/cell-editor.md)'s date picker, which uses an external dependency: [Pikaday](https://github.com/Pikaday/Pikaday/tree/1.8.0).
1569
+ * The `datePickerConfig` option configures the `date` [cell editor](@/guides/cell-functions/cell-editor.md)'s date picker, which uses an external dependency: [Pikaday](https://github.com/Pikaday/Pikaday/tree/1.8.2).
1539
1570
  *
1540
- * You can set the `datePickerConfig` option to an object with any of the available [Pikaday options](https://github.com/Pikaday/Pikaday/tree/1.8.0#configuration),
1571
+ * You can set the `datePickerConfig` option to an object with any of the available [Pikaday options](https://github.com/Pikaday/Pikaday/tree/1.8.2#configuration),
1541
1572
  * except for the following, which are always overwritten by the `date` [cell editor](@/guides/cell-functions/cell-editor.md):
1542
1573
  * - `bound`
1543
1574
  * - `container`
1544
1575
  * - `field`
1545
1576
  * - `trigger`
1546
1577
  *
1547
- * If the `datePickerConfig` option is not defined, the `date` [cell editor](@/guides/cell-functions/cell-editor.md) overwrites the following [Pikaday options](https://github.com/Pikaday/Pikaday/tree/1.8.0#configuration) as well:
1578
+ * If the `datePickerConfig` option is not defined, the `date` [cell editor](@/guides/cell-functions/cell-editor.md) overwrites the following [Pikaday options](https://github.com/Pikaday/Pikaday/tree/1.8.2#configuration) as well:
1548
1579
  *
1549
1580
  * | Pikaday option | Handsontable's setting |
1550
1581
  * | -------------------- | ---------------------- |
@@ -1555,7 +1586,7 @@ var _default = function _default() {
1555
1586
  * - [`editor`](#editor)
1556
1587
  * - [`dateFormat`](#dateFormat)
1557
1588
  * - [Cell editor](@/guides/cell-functions/cell-editor.md)
1558
- * - [All Pikaday options &#8594;](https://github.com/Pikaday/Pikaday/tree/1.8.0#configuration)
1589
+ * - [All Pikaday options &#8594;](https://github.com/Pikaday/Pikaday/tree/1.8.2#configuration)
1559
1590
  *
1560
1591
  * @memberof Options#
1561
1592
  * @type {object}
@@ -1583,7 +1614,7 @@ var _default = function _default() {
1583
1614
  * ```js
1584
1615
  * columns: [
1585
1616
  * {
1586
- * // set the `type` of every cell in this column to `date`
1617
+ * // set the `type` of each cell in this column to `date`
1587
1618
  * type: 'date',
1588
1619
  * // in every empty `date` cell of this column, display `2015-02-02`
1589
1620
  * defaultDate: '2015-02-02'
@@ -1764,17 +1795,17 @@ var _default = function _default() {
1764
1795
  *
1765
1796
  * @example
1766
1797
  * ```js
1767
- * // use the `numeric` editor for every cell of the entire grid
1798
+ * // use the `numeric` editor for each cell of the entire grid
1768
1799
  * editor: 'numeric',
1769
1800
  *
1770
1801
  * // apply the `editor` option to individual columns
1771
1802
  * columns: [
1772
1803
  * {
1773
- * // use the `autocomplete` editor for every cell of this column
1804
+ * // use the `autocomplete` editor for each cell of this column
1774
1805
  * editor: 'autocomplete'
1775
1806
  * },
1776
1807
  * {
1777
- * // disable editing cells through cell editors for every cell of this column
1808
+ * // disable editing cells through cell editors for each cell of this column
1778
1809
  * editor: false
1779
1810
  * }
1780
1811
  * ]
@@ -1940,7 +1971,7 @@ var _default = function _default() {
1940
1971
  * @example
1941
1972
  * ```js
1942
1973
  * columns: [{
1943
- * // set the `type` of every cell in this column to `autocomplete`
1974
+ * // set the `type` of each cell in this column to `autocomplete`
1944
1975
  * type: 'autocomplete',
1945
1976
  * // set options available in every `autocomplete` cell of this column
1946
1977
  * source: ['A', 'B', 'C'],
@@ -3145,7 +3176,7 @@ var _default = function _default() {
3145
3176
 
3146
3177
  /**
3147
3178
  * The `noWordWrapClassName` option lets you add a CSS class name
3148
- * to every cell that has the [`wordWrap`](#wordWrap) option set to `false`.
3179
+ * to each cell that has the [`wordWrap`](#wordWrap) option set to `false`.
3149
3180
  *
3150
3181
  * Read more:
3151
3182
  * - [`wordWrap`](#wordWrap)
@@ -3167,7 +3198,7 @@ var _default = function _default() {
3167
3198
  * @example
3168
3199
  * ```js
3169
3200
  * // add an `is-noWrapCell` CSS class name
3170
- * // to every cell that doesn't wrap content
3201
+ * // to each cell that doesn't wrap content
3171
3202
  * noWordWrapClassName: 'is-noWrapCell',
3172
3203
  * ```
3173
3204
  */
@@ -3175,7 +3206,8 @@ var _default = function _default() {
3175
3206
 
3176
3207
  /**
3177
3208
  * The `numericFormat` option configures the number format and the currency format
3178
- * of [`numeric`](@/guides/cell-types/numeric-cell-type.md) cells` displayed output.
3209
+ * of [`numeric`](@/guides/cell-types/numeric-cell-type.md) cells` displayed output
3210
+ * in the numeric cell renderer.
3179
3211
  *
3180
3212
  * You can set the `numericFormat` option to an object with the following properties:
3181
3213
  *
@@ -3184,10 +3216,7 @@ var _default = function _default() {
3184
3216
  * | `pattern` | All [`numbro.js` number formats](https://numbrojs.com/format.html#numbers) | Number format |
3185
3217
  * | `culture` | All [`numbro.js` currency formats](https://numbrojs.com/format.html#currency) | Currency format |
3186
3218
  *
3187
- * The `numericFormat` option as no effect on cells' input data.
3188
- * To enter numeric data into Handsontable, use:
3189
- * - Either floats (separated by a dot, or a comma)
3190
- * - Or integers
3219
+ * The `numericFormat` option as no effect on the numeric cell editor.
3191
3220
  *
3192
3221
  * In the source data, numeric data is stored as JavaScript numbers.
3193
3222
  *
@@ -3205,7 +3234,7 @@ var _default = function _default() {
3205
3234
  * ```js
3206
3235
  * columns: [
3207
3236
  * {
3208
- * // set the `type` of every cell in this column to `numeric`
3237
+ * // set the `type` of each cell in this column to `numeric`
3209
3238
  * type: 'numeric',
3210
3239
  * // set the `numericFormat` option for every `numeric` cell of this column
3211
3240
  * numericFormat: {
@@ -3366,7 +3395,7 @@ var _default = function _default() {
3366
3395
  * @example
3367
3396
  * ```js
3368
3397
  * // add a `has-placeholder` CSS class name
3369
- * // to every cell that contains `placeholder` text
3398
+ * // to each cell that contains `placeholder` text
3370
3399
  * placeholderCellClassName: 'has-placeholder',
3371
3400
  * ```
3372
3401
  */
@@ -3433,6 +3462,8 @@ var _default = function _default() {
3433
3462
  * | `false` (default) | Set as editable |
3434
3463
  * | `true` | - Set as read-only<br>- Add the [`readOnlyCellClassName`](#readOnlyCellClassName) CSS class name (by default: `htDimmed`) |
3435
3464
  *
3465
+ * `readOnly` cells can't be changed by the [`populateFromArray()`](@/api/core.md#populatefromarray) method.
3466
+ *
3436
3467
  * Read more:
3437
3468
  * - [Configuration options: Cascading configuration](@/guides/getting-started/setting-options.md#cascading-configuration)
3438
3469
  *
@@ -3542,7 +3573,7 @@ var _default = function _default() {
3542
3573
  *
3543
3574
  * @example
3544
3575
  * ```js
3545
- * // use the `numeric` renderer for every cell of the entire grid
3576
+ * // use the `numeric` renderer for each cell of the entire grid
3546
3577
  * renderer: `'numeric'`,
3547
3578
  *
3548
3579
  * // add a custom renderer function
@@ -3554,11 +3585,11 @@ var _default = function _default() {
3554
3585
  * // apply the `renderer` option to individual columns
3555
3586
  * columns: [
3556
3587
  * {
3557
- * // use the `autocomplete` renderer for every cell of this column
3588
+ * // use the `autocomplete` renderer for each cell of this column
3558
3589
  * renderer: 'autocomplete'
3559
3590
  * },
3560
3591
  * {
3561
- * // use the `myCustomRenderer` renderer for every cell of this column
3592
+ * // use the `myCustomRenderer` renderer for each cell of this column
3562
3593
  * renderer: 'myCustomRenderer'
3563
3594
  * }
3564
3595
  * ]
@@ -3785,7 +3816,7 @@ var _default = function _default() {
3785
3816
  * ```js
3786
3817
  * columns: [
3787
3818
  * {
3788
- * // set the `type` of every cell in this column to `select`
3819
+ * // set the `type` of each cell in this column to `select`
3789
3820
  * type: 'select',
3790
3821
  * // set the first option's value and label to `A`
3791
3822
  * // set the second option's value and label to `B`
@@ -3793,7 +3824,7 @@ var _default = function _default() {
3793
3824
  * selectOptions: ['A', 'B', 'C'],
3794
3825
  * },
3795
3826
  * {
3796
- * // set the `type` of every cell in this column to `select`
3827
+ * // set the `type` of each cell in this column to `select`
3797
3828
  * type: 'select',
3798
3829
  * selectOptions: {
3799
3830
  * // set the first option's value to `value1` and label to `Label 1`
@@ -3805,7 +3836,7 @@ var _default = function _default() {
3805
3836
  * },
3806
3837
  * },
3807
3838
  * {
3808
- * // set the `type` of every cell in this column to `select`
3839
+ * // set the `type` of each cell in this column to `select`
3809
3840
  * type: 'select',
3810
3841
  * // set `selectOption` to a function that returns available options as an object
3811
3842
  * selectOptions(visualRow, visualColumn, prop) {
@@ -3914,7 +3945,7 @@ var _default = function _default() {
3914
3945
  * @example
3915
3946
  * ```js
3916
3947
  * columns: [{
3917
- * // set the `type` of every cell in this column to `autocomplete`
3948
+ * // set the `type` of each cell in this column to `autocomplete`
3918
3949
  * type: 'autocomplete',
3919
3950
  * // set options available in every `autocomplete` cell of this column
3920
3951
  * source: ['D', 'C', 'B', 'A'],
@@ -3951,7 +3982,7 @@ var _default = function _default() {
3951
3982
  * ```js
3952
3983
  * // set `source` to an array
3953
3984
  * columns: [{
3954
- * // set the `type` of every cell in this column to `autocomplete`
3985
+ * // set the `type` of each cell in this column to `autocomplete`
3955
3986
  * type: 'autocomplete',
3956
3987
  * // set options available in every `autocomplete` cell of this column
3957
3988
  * source: ['A', 'B', 'C', 'D']
@@ -3959,7 +3990,7 @@ var _default = function _default() {
3959
3990
  *
3960
3991
  * // set `source` to a function
3961
3992
  * columns: [{
3962
- * // set the `type` of every cell in this column to `autocomplete`
3993
+ * // set the `type` of each cell in this column to `autocomplete`
3963
3994
  * type: 'autocomplete',
3964
3995
  * // for every `autocomplete` cell in this column, fetch data from an external source
3965
3996
  * source(query, callback) {
@@ -4063,7 +4094,7 @@ var _default = function _default() {
4063
4094
  * ```js
4064
4095
  * columns: [
4065
4096
  * {
4066
- * // set the `type` of every cell in this column to `autocomplete`
4097
+ * // set the `type` of each cell in this column to `autocomplete`
4067
4098
  * type: 'autocomplete',
4068
4099
  * // set options available in every `autocomplete` cell of this column
4069
4100
  * source: ['A', 'B', 'C'],
@@ -4209,13 +4240,13 @@ var _default = function _default() {
4209
4240
  * columns: [
4210
4241
  * {
4211
4242
  * type: 'autocomplete',
4212
- * // for every cell of this column
4243
+ * // for each cell of this column
4213
4244
  * // make the `autocomplete` list's width the same as the edited cell's width
4214
4245
  * trimDropdown: true,
4215
4246
  * },
4216
4247
  * {
4217
4248
  * type: 'dropdown',
4218
- * // for every cell of this column
4249
+ * // for each cell of this column
4219
4250
  * // scale the `dropdown` list's width to the list's content
4220
4251
  * trimDropdown: false,
4221
4252
  * }
@@ -4230,11 +4261,11 @@ var _default = function _default() {
4230
4261
  *
4231
4262
  * You can set the `trimRows` option to one of the following:
4232
4263
  *
4233
- * | Setting | Description |
4234
- * | -------- | --------------------------------------------------------------------------------------------- |
4235
- * | `false` | Disable the [`TrimRows`](@/api/trimRows.md) plugin |
4236
- * | `true` | Enable the [`TrimRows`](@/api/trimRows.md) plugin |
4237
- * | An array | - Enable the [`TrimRows`](@/api/trimRows.md) plugin<br>- Trim selected rows at initialization |
4264
+ * | Setting | Description |
4265
+ * | -------------------------------- | --------------------------------------------------------------------------------------------- |
4266
+ * | `false` | Disable the [`TrimRows`](@/api/trimRows.md) plugin |
4267
+ * | `true` | Enable the [`TrimRows`](@/api/trimRows.md) plugin |
4268
+ * | An array of physical row indexes | - Enable the [`TrimRows`](@/api/trimRows.md) plugin<br>- Trim selected rows at initialization |
4238
4269
  *
4239
4270
  * Read more:
4240
4271
  * - [Plugins: `TrimRows`](@/api/trimRows.md)
@@ -4251,23 +4282,24 @@ var _default = function _default() {
4251
4282
  * trimRows: true,
4252
4283
  *
4253
4284
  * // enable the `TrimRows` plugin
4254
- * // trim rows 5, 10, and 15 at Handsontable's initialization
4285
+ * // at Handsontable's initialization, trim rows 5, 10, and 15
4255
4286
  * trimRows: [5, 10, 15],
4256
4287
  * ```
4257
4288
  */
4258
4289
  trimRows: void 0,
4259
4290
 
4260
4291
  /**
4261
- * The `trimWhitespace` option configures automatic whitespace removal.
4292
+ * The `trimWhitespace` option configures automatic whitespace removal. This option
4293
+ * affects the cell renderer and the cell editor.
4262
4294
  *
4263
4295
  * You can set the `trimWhitespace` option to one of the following:
4264
4296
  *
4265
4297
  * | Setting | Description |
4266
4298
  * | ---------------- | --------------------------------------------------------------- |
4267
- * | `true` (default) | Remove whitespace at the beginning and at the end of every cell |
4299
+ * | `true` (default) | Remove whitespace at the beginning and at the end of each cell |
4268
4300
  * | `false` | Don't remove whitespace |
4269
4301
  *
4270
- * @memberof Options#tr
4302
+ * @memberof Options#
4271
4303
  * @type {boolean}
4272
4304
  * @default true
4273
4305
  * @category Core
@@ -4322,17 +4354,17 @@ var _default = function _default() {
4322
4354
  *
4323
4355
  * @example
4324
4356
  * ```js
4325
- * // use the `numeric` cell type for every cell of the entire grid
4357
+ * // set the `numeric` cell type for each cell of the entire grid
4326
4358
  * type: `'numeric'`,
4327
4359
  *
4328
4360
  * // apply the `type` option to individual columns
4329
4361
  * columns: [
4330
4362
  * {
4331
- * // use the `autocomplete` cell type for every cell of this column
4363
+ * // set the `autocomplete` cell type for each cell of this column
4332
4364
  * type: 'autocomplete'
4333
4365
  * },
4334
4366
  * {
4335
- * // use the `myCustomCellType` cell type for every cell of this column
4367
+ * // set the `myCustomCellType` cell type for each cell of this column
4336
4368
  * type: 'myCustomCellType'
4337
4369
  * }
4338
4370
  * ]
@@ -4365,13 +4397,13 @@ var _default = function _default() {
4365
4397
  * ```js
4366
4398
  * columns: [
4367
4399
  * {
4368
- * // set the `type` of every cell in this column to `checkbox`
4400
+ * // set the `type` of each cell in this column to `checkbox`
4369
4401
  * // when unchecked, the cell's value is `false`
4370
4402
  * // when checked, the cell's value is `true`
4371
4403
  * type: 'checkbox',
4372
4404
  * },
4373
4405
  * {
4374
- * // set the `type` of every cell in this column to `checkbox`
4406
+ * // set the `type` of each cell in this column to `checkbox`
4375
4407
  * // when unchecked, the cell's value is `'No'`
4376
4408
  * // when checked, the cell's value is `'Yes'`
4377
4409
  * type: 'checkbox',
@@ -4552,13 +4584,13 @@ var _default = function _default() {
4552
4584
  * {
4553
4585
  * type: 'autocomplete',
4554
4586
  * // set the `autocomplete` list's height to 15 options
4555
- * // for every cell of this column
4587
+ * // for each cell of this column
4556
4588
  * visibleRows: 15,
4557
4589
  * },
4558
4590
  * {
4559
4591
  * type: 'dropdown',
4560
4592
  * // set the `dropdown` list's height to 5 options
4561
- * // for every cell of this column
4593
+ * // for each cell of this column
4562
4594
  * visibleRows: 5,
4563
4595
  * }
4564
4596
  * ],